WO1998013767A1 - Multimedia data controller - Google Patents
Multimedia data controller Download PDFInfo
- Publication number
- WO1998013767A1 WO1998013767A1 PCT/US1997/017197 US9717197W WO9813767A1 WO 1998013767 A1 WO1998013767 A1 WO 1998013767A1 US 9717197 W US9717197 W US 9717197W WO 9813767 A1 WO9813767 A1 WO 9813767A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- cpu
- data
- die
- buffer
- bus
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/10—Program control for peripheral devices
- G06F13/12—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
- G06F13/122—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware performs an I/O function other than control of data transfer
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4027—Coupling between buses using bus bridges
- G06F13/405—Coupling between buses using bus bridges where the bridge performs a synchronising function
- G06F13/4059—Coupling between buses using bus bridges where the bridge performs a synchronising function where the synchronisation uses buffers, e.g. for speed matching between buses
Definitions
- the present invention relates generally to the design and development of microprocessor and memory systems within computers. More particularly, the present invention relates to transmission of data between a CPU and devices external to the CPU. Still more particularly, the present invention relates to data transmission between a CPU and a multimedia device using receive and transmit FTFO buffers.
- multimedia computers may present video images and/or audio tracks from a medium such as a CD-ROM.
- FIG. 1 shows a typical prior art computer system depicting the elements relevant to the present discussion.
- a central processing unit (CPU) core 10 is coupled to an LI cache system 15 and a bus Input/Output (I O) device 16 over a CPU local bus 8.
- the LI cache system 15 typically includes a cache controller and a cache SRAM (not shown).
- the CPU core 10, LI cache system 15, and bus I/O 16 may be implemented as separate discrete components but preferably are integrated onto a single chip processor as indicated by dashed box 9.
- the bus I/O device 16 couples the CPU local bus 8 to a memory bus 11.
- a memory control unit or memory controller 12 also couples to the memory bus 11.
- a second level cache, referred to as an L2 cache 7, couples to the memory bus 11 and also couples to the memory control unit 12.
- the memory control unit 12 couples to a memory device 13.
- the memory device 13 typically is dynamic random access memory (DRAM).
- DRAM dynamic random access memory
- a bus bridge 17 couples the memory bus 11 to a peripheral bus 18.
- Peripheral devices 19 are coupled to the peripheral bus.
- a multimedia device 190 represents one type of peripheral device which is coupled to the peripheral bus 18. Examples of multimedia devices are CD-ROM drives, graphics cards, video recorders, sound cards, modems, and the like.
- a simple communication scheme allows data from the CPU core 10 to be placed on the CPU local bus 11 and tr.ansferred through the bus I/O device 16, memory bus 11, bus bridge 17, peripheral bus 18, and to a peripheral device/ multimedia device.
- Data communication from the peripheral devices 19 and 190 to the CPU core 10 follows the same path, albeit in the reverse order.
- the CPU core 10 typically engages in multiple activities such as access cycles to the memory device 13 through memory control unit 12, accesses to the LI cache SRAM 15, as well as receiving and transmitting data to a variety of peripheral devices 19/190.
- the CPU core 10 often performs digital signal processing (DSP) operations on video and audio data to and from the multimedia device 190.
- DSP digital signal processing
- Multimedia data often comprises real-time, isochronous data (i.e., video and audio data metered out in regular time periods).
- Buffering the multimedia data directly in the LI cache system instead of main memory might be beneficial as cache memory accesses are faster and more efficient than accesses to system memory.
- direcdy buffering the multimedia data in the LI cache system 15 and bypassing main memory storage is impractical because cache memories cannot be used direcdy by peripheral devices to store data.
- FIFO first-in-first-out
- data stored in the respective transmit and receive buffers is transferred direcdy to/from the peripheral devices.
- There data stored in the tr.ansmit FIFO buffer is read by the periphery or multimedia devices without passing through the bus bridge .and periphery bus.
- Data written into the receive FIFO buffer also is communicated direcdy between the peripheral device and FIFO buffer without passing through d e peripheral bus and bus brid ⁇ e.
- the FIFO buffer produces interrupt signals which reflect the amount of the FIFO buffer currendy in use for storing data. These interrupt signals are used by the CPU and the peripheral device as an indication of when to retrieve data from the FIFO buffers.
- Figure 2 is an exemplary block diagram of the parallel implementation of the preferred embodiment.
- Figure 3A is a block diagram of die receive FIFO contained in d e parallel implementation.
- Figure 5A is a block diagram of the receive FIFO contained in the serial implementation.
- Figure 5B is a block diagram of the transmit FIFO contained in die serial implementation.
- a central processing unit (CPU) core 100 is coupled to an LI cache system 150 and bus I/O device 160 over a CPU local bus 80. Also attached to die CPU local bus is a transmit first-in-first-out buffer (TX FIFO) 300 and receive FIFO buffer (RX FIFO) 200 according to the present invention.
- TX FIFO transmit first-in-first-out buffer
- RX FIFO receive FIFO buffer
- a parallel bus structure 175 couples the RX and TX FIFOs to die bus I/O 160.
- these components are integrated into a single processor chip, as indicated by the dashed box 20.
- the bus I/O 160 connects die CPU local bus 80 to a system bus or memory bus 110.
- a memory control unit 120 also couples to the system bus 110.
- the memory control unit 120 couples to a memory device 130 which preferably includes dynamic random access memory (DRAM).
- L2 cache 70 couples to the memory control unit 120 and to the system bus 110.
- data from the multimedia device 190 may flow over the peripheral bus 180, through the bus bridge 170 to die system bus 110, through the bus I/O 160, and over the bus structure 175 to the RX FIFO 200.
- the CPU retrieves the data over CPU local bus 80.
- Data to be transmitted to die multimedia device from the CPU core flows over the CPU local bus 80 to the TX FIFO 300.
- the multimedia device retrieves the data from die TX FIFO 300 via die bus structure 175, bus I/O 160, system bus 110, bus bridge 170, and peripheral bus 180.
- the RX and TX FIFOs appear to d e CPU 100 as if diey are LI cache units.
- the FIFO's have the same access rights as cache memory and generally are as fast as or faster than cache memory. Accesses to the FIFO's tirus is faster dian DRAM memory accesses with little of die latency problems inherent to DRAM memory accesses. In other words, FIFO accesses by the CPU 100 are similar to cache hits, and thus have reduced latency compared to main memory accesses.
- Multimedia devices typically have real time processing requirements and data rates. This is generally not true for other tasks handled by the CPU. Processing rate also varies among different multimedia devices. Differences in these real time dependencies make data communication problematic. For example, data in the FIFO buffers may be overwritten if the CPU stores data in the buffer faster than the multimedia device can retrieve it. Thus, in one embodiment die processor is programmed witii die isochronous rate of the multimedia device. Synchronizing processing rates between the CPU and die multimedia device efficiently enables data to be written into a FIFO buffer at the same rate the data is retrieved. Thus, valid data in the buffers will not be overwritten.
- die preferred embodiment includes several ways to overcome this problem including the use of interrupt signals, adjusting in real-time die effective data rate of the CPU, and adjusting the clock rate of the FIFO buffers.
- the RX FIFO 200 and TX FIFO 300 preferably contain logic circuitry to generate interrupt signals.
- the RX FIFO 200 includes a FIFO buffer 202 and a logic circuit 204.
- the FIFO buffer 202 is coupled to the CPU local bus 80 and die bus structure 175.
- Logic circuit 204 generates a plurality of signals shown collectively as signal 205. These signals preferably represent interrupt signals which ⁇ ue either received by die system interrupt controller or provided to a pin, such as die NMI pin, of the CPU core 100 as described below.
- the logic circuit 204 generates one or more of the interrupt signals in response to the excess capacity signal 203.
- Excess capacity signal 203 monitors me excess storage capacity of the FIFO buffer 202 to indicate the amount of me FIFO buffer available for storage of new data. Specifically, excess capacity signal 203 indicates whether only one memory position in FIFO buffer 202 contains valid data, whedier the FIFO buffer is half-full of data, whedier the FIFO buffer is completely full of data, or whedier some other number of memory locations contains valid data. This predetermined number of locations may be programmable or fixed (i.e. , hardwired).
- logic circuit 304 generates a plurality of signals shown collectively as signal 305. These signals preferably represent interrupt signals which are either received by the system interrupt controller or provided to a pin, such as die NMI pin, of the CPU core 100.
- the CPU core first fills the FIFO buffer 302.
- the multimedia device then begins retrieving the data from the buffer.
- Buffer level signal 303 indicates d e amount of data stored in die buffer that has yet to be retrieved by the multimedia device. Based on d e status of buffer level signal 303, logic circuit 304 generates one or more of die interrupt signals 310, 320, 330, and 340.
- Interrupt signal 310 is generated when d e buffer level signal 303 indicates only one position in the FIFO buffer 302 contains valid data; that is, all but one memory positions of the buffer have been retrieved by d e multimedia device.
- Interrupt signal 320 is generated when die buffer level signal 303 indicates that one-half of die FIFO's memory have yet to be read by die multimedia device.
- interrupt signal 330 is generated when die multimedia device has retrieved enough data from the buffer so that only a predetermined number of memory locations in the buffer have yet to be retrieved.
- the corresponding interrupt is generated and used by die CPU 100 as an indication of when to store more data in die buffer.
- interrupt signal 220 may be implemented exclusievely to indicate to die CPU core when the multimedia device has retrieved all but one memory positions, thereby signalling the CPU to store new data in the TX FIFO.
- Factors such as the data rate, type of data, and processing power of the CPU relative to die multimedia device influence the designer ' s choice of interrupt protocol.
- the multimedia data received on bus structure 175 from die system bus 110 is stored in FIFO buffer 202.
- some preferred level of capacity i.e. , only 1 position filled, half filled, completely filled, or X number of positions filled as described above
- excess capacity signal 203 signals the logic circuit 204 of this capacity condition.
- die logic circuit generates die corresponding interrupt signal 305 which is received by die CPU core 100. This interrupt signal triggers the CPU to retrieve multimedia data from the RX FIFO 200 over the CPU local 80.
- FIGS 2 and 3B illustrate the preferred embodiment for communicating data from the CPU core 100 to the multimedia device 190 and follows a similar scheme to that for multimedia device-to-CPU communication described above.
- the CPU core 100 begins filling die TX FIFO buffer 302 with data targeted for d e multimedia device.
- the multimedia device retrieves some or all of the data from the buffer through the bus I/O 160. system bus 110, bus bridge 170 and peripheral bus 180.
- buffer level signal 303 directs the logic circuit 304 to generate an interrupt signal reflective of die buffer's data level (i.e. , only 1 position filled, half filled, or X number of positions filled). This interrupt signal is received preferably by die CPU core 100 indicating a need for the CPU core to write more data to die transmit FIFO buffer 304.
- multimedia data may be communicated between multimedia device 190 and CPU core 100 through an RX FIFO 400 and TX FIFO 500 without passing through die bus I/O, system bus, and bus bridge 170.
- This architecture is beneficial when the data to an from the multimedia device constitutes a serial stream of data, and not parallel as in the embodiment described above.
- Serial data from the multimedia device can be written direcdy into the RX FIFO 400 over signal line 192 and ultimately retrieved by CPU core 100 via d e CPU local bus 80.
- Data from the CPU core 100 can be written into die TX FIFO 500 and retrieved by die multimedia device 190 over serial signal line 194.
- the parallel nature of the CPU local bus 80 necessitates the conversion of serial multimedia data received over signal line 192 to parallel form. Further, parallel data from the CPU core to be transmitted to the multimedia device 190 must be converted to serial form for transmission over serial signal line 194.
- the RX FIFO 400 and TX FIFO 500 preferably incorporate logic to convert data between serial and parallel forms. Parallel-to-serial and serial- to-parallel conversion blocks are shown in Figure 5A and 5B.
- a serial-to-parallel converter 401 converts serial data received from multimedia device 190 over signal line 192.
- the data is dien placed on a bus 406.
- die RX FIFO 400 performs identically to RX FIFO 200 with data being read from the FIFO buffer 402 over the CPU local bus 80.
- E-xcess capacity signal 403 is similar to excess capacity signal 203 in Figure 3A. Specifically, signal 403 reflects the excess capacity level of the FIFO buffer 402.
- Logic circuit 404 uses excess capacity signal 403 to generate one or more of the interrupts 410. 420, 430, and 440 shown collectively as signal 405.
- the interrupt signals are used by the CPU core 100 to indicate when to retrieve data from the FIFO buffer.
- TX FIFO 500 performs identically to TX FIFO 300 ejXcept that the parallel data read from a FIFO buffer 502 is placed on a parallel bus 507 and convened to a serial stream of data by parallel-to-serial convener 506.
- the functions of buffer level signal 503 and interrupt signal 505 comprising signals 510, 520, and 530 correspond to buffer signal 303 and interrupt signals 305 in Figure 3B.
- Figures 6A-6D show an alternative to the embodiment of Figures 3 A, 3B, 5 A, and 5B in which registers .are used instead of interrupt signals to overcome the problems of mismatched data rates, diereby ensuring the efficient flow of data between die CPU core 100 and multimedia device 190.
- registers instead of interrupt signals
- the CPU writes to and reads from die FIFO buffers at a predetermined nominal rate approximating the multimedia data rate.
- die RX FIFO's logic circuit 204 periodically updates a register 250 to indicate how full the FIFO buffer 202 is with data from the multimedia device.
- the logic circuit 204 may store in the register a number indicating the percentage of die total buffer space free for the multimedia device to store more data.
- the number stored in die register might reflect the percentage of the buffer space presently containing data to be read by die CPU.
- die register provides a way for die CPU to infer how full the buffer has become so that the CPU CM adjust its effective data rate if necessary.
- the CPU will increase temporarily its effective data retrieval rate.
- a faster effective rate can be achieved eidier by retrieving the same quantity of data more often man die nominal rate or retrieving less data at die same rate.
- the buffer is only 5% full, it may be desired for die CPU to slow down its effective retrieval rate to let the multimedia device 190 temporarily fill the buffer faster than die CPU 100 retrieves the data. Slower effective retrieval rates are achieved eidier by reading die same quantity of data less often tiian the nominal rate or reading more data at die same nominal rate.
- Figure 6B ejXempiifies die TX FIFO using a register 350 instead of interrupts.
- the CPU 100 writes data to d e TX FIFO buffer 302 at a nominal rate approximating the isochronous rate of the multimedia device.
- the CPU periodically checks the status of register 350.
- Register 350 is updated by logic circuit 304 to reflect die level of data in the FTFO buffer.
- registers 450 in Figure 6C and 550 in Figure 6D parallels that of registers 250 and 350, respectively, for die serial embodiment of d e present invention.
- An alternative embodiment to the use of interrupt signals or changing the effective data rate of the CPU is to dynamically change me TX or RX FIFO clock rate as needed to output more or less data depending on die amount of data stored in die FIFO.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Communication Control (AREA)
- Information Transfer Systems (AREA)
Abstract
Description
Claims
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP97943566A EP0928452A1 (en) | 1996-09-25 | 1997-09-25 | Multimedia data controller |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US71980196A | 1996-09-25 | 1996-09-25 | |
US08/719,801 | 1996-09-25 |
Publications (2)
Publication Number | Publication Date |
---|---|
WO1998013767A1 true WO1998013767A1 (en) | 1998-04-02 |
WO1998013767A9 WO1998013767A9 (en) | 1998-07-09 |
Family
ID=24891419
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/US1997/017197 WO1998013767A1 (en) | 1996-09-25 | 1997-09-25 | Multimedia data controller |
Country Status (2)
Country | Link |
---|---|
EP (1) | EP0928452A1 (en) |
WO (1) | WO1998013767A1 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1999052293A1 (en) * | 1998-04-03 | 1999-10-14 | Avid Technology, Inc. | Method and apparatus for controlling data flow between devices connected by a memory |
EP1187031A3 (en) * | 2000-09-08 | 2007-04-25 | Texas Instruments Inc. | Bus bridge interface system |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0166341A2 (en) * | 1984-06-27 | 1986-01-02 | International Business Machines Corporation | Multiprocessor system with fast path means for storage accesses |
WO1992001987A1 (en) * | 1990-07-16 | 1992-02-06 | Tekstar Systems Corporation | Interface system for data transfer with remote peripheral independently of host processor backplane |
-
1997
- 1997-09-25 WO PCT/US1997/017197 patent/WO1998013767A1/en not_active Application Discontinuation
- 1997-09-25 EP EP97943566A patent/EP0928452A1/en not_active Withdrawn
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0166341A2 (en) * | 1984-06-27 | 1986-01-02 | International Business Machines Corporation | Multiprocessor system with fast path means for storage accesses |
WO1992001987A1 (en) * | 1990-07-16 | 1992-02-06 | Tekstar Systems Corporation | Interface system for data transfer with remote peripheral independently of host processor backplane |
Non-Patent Citations (1)
Title |
---|
ANDREWS: "PCI promises solution to local-bus bottleneck", COMPUTER DESIGN., vol. 31, no. 8, August 1992 (1992-08-01), LITTLETON, MASSACHUSETTS US, pages 36 - 40, XP000307561 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1999052293A1 (en) * | 1998-04-03 | 1999-10-14 | Avid Technology, Inc. | Method and apparatus for controlling data flow between devices connected by a memory |
US6134607A (en) * | 1998-04-03 | 2000-10-17 | Avid Technology, Inc. | Method and apparatus for controlling data flow between devices connected by a memory |
EP1187031A3 (en) * | 2000-09-08 | 2007-04-25 | Texas Instruments Inc. | Bus bridge interface system |
Also Published As
Publication number | Publication date |
---|---|
EP0928452A1 (en) | 1999-07-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6032211A (en) | Method of mode control in a bus optimized for personal computer data traffic | |
US6192428B1 (en) | Method/apparatus for dynamically changing FIFO draining priority through asynchronous or isochronous DMA engines in response to packet type and predetermined high watermark being reached | |
US5430847A (en) | Method and system for extending system buses to external devices | |
US7457892B2 (en) | Data communication flow control device and methods thereof | |
US5918073A (en) | System and method for equalizing data buffer storage and fetch rates of peripheral devices | |
US5870627A (en) | System for managing direct memory access transfer in a multi-channel system using circular descriptor queue, descriptor FIFO, and receive status queue | |
US6115761A (en) | First-In-First-Out (FIFO) memories having dual descriptors and credit passing for efficient access in a multi-processor system environment | |
US6151651A (en) | Communication link with isochronous and asynchronous priority modes coupling bridge circuits in a computer system | |
EP1068734B1 (en) | Method and apparatus for controlling data flow between devices connected by a memory | |
US6148357A (en) | Integrated CPU and memory controller utilizing a communication link having isochronous and asynchronous priority modes | |
EP1318457B1 (en) | Bus bridge with a burst transfer mode bus and a single transfer mode bus | |
WO1999022302A1 (en) | Buffering data that flows between buses operating at different frequencies | |
EP1820309B1 (en) | Streaming memory controller | |
US5859649A (en) | Data processing system having display controller with bursting direct memory access | |
US5983299A (en) | Priority request and bypass bus | |
US5790811A (en) | System and method for performing data transfers during PCI idle clock cycles | |
US6199132B1 (en) | Communication link with isochronous and asynchronous priority modes | |
US8037254B2 (en) | Memory controller and method for coupling a network and a memory | |
US6425071B1 (en) | Subsystem bridge of AMBA's ASB bus to peripheral component interconnect (PCI) bus | |
WO2006134550A2 (en) | Memory controller | |
EP0928452A1 (en) | Multimedia data controller | |
US6134609A (en) | Method for using computer system memory as a modem data buffer by transferring modem I/O data directly to system controller and transferring corresponding system controller data directly to main memory | |
WO1998013767A9 (en) | Multimedia data controller | |
US6078973A (en) | System controller interfacing a main memory and a modem and transferring data directly between dedicated region of the memory and the modem I/O circuitry | |
JP4514411B2 (en) | Inter-bus communication interface device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AK | Designated states |
Kind code of ref document: A1 Designated state(s): JP KR |
|
AL | Designated countries for regional patents |
Kind code of ref document: A1 Designated state(s): AT BE CH DE DK ES FI FR GB GR IE IT LU MC NL PT SE |
|
WWE | Wipo information: entry into national phase |
Ref document number: 1997943566 Country of ref document: EP |
|
DFPE | Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101) | ||
COP | Corrected version of pamphlet |
Free format text: PAGES 1-15, DESCRIPTION, REPLACED BY NEW PAGES 1-7; PAGES 16-22, CLAIMS, REPLACED BY NEW PAGES 8-11; PAGES 1/11-11/11, DRAWINGS, REPLACED BY NEW PAGES 1/11-11/11; DUE TO LATE TRANSMITTAL BY THE RECEIVING OFFICE |
|
121 | Ep: the epo has been informed by wipo that ep was designated in this application | ||
NENP | Non-entry into the national phase |
Ref country code: JP Ref document number: 1998515891 Format of ref document f/p: F |
|
WWP | Wipo information: published in national office |
Ref document number: 1997943566 Country of ref document: EP |
|
WWW | Wipo information: withdrawn in national office |
Ref document number: 1997943566 Country of ref document: EP |