[go: up one dir, main page]

WO2005003955A2 - Sequential flow-control and fifo memory devices that are depth expandable in standard mode operation - Google Patents

Sequential flow-control and fifo memory devices that are depth expandable in standard mode operation Download PDF

Info

Publication number
WO2005003955A2
WO2005003955A2 PCT/US2004/019152 US2004019152W WO2005003955A2 WO 2005003955 A2 WO2005003955 A2 WO 2005003955A2 US 2004019152 W US2004019152 W US 2004019152W WO 2005003955 A2 WO2005003955 A2 WO 2005003955A2
Authority
WO
WIPO (PCT)
Prior art keywords
memory
fifo
port
data
read
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
PCT/US2004/019152
Other languages
French (fr)
Other versions
WO2005003955A3 (en
Inventor
Mario Au
Jiann-Jeng Duh
Chuen-Der Lien
Shih-Ked Lee
Tze-Yuan Fang
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Renesas Electronics America Inc
Original Assignee
Integrated Device Technology Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US10/612,849 external-priority patent/US7076610B2/en
Priority claimed from US10/639,163 external-priority patent/US20040047209A1/en
Priority claimed from US10/721,974 external-priority patent/US7209983B2/en
Application filed by Integrated Device Technology Inc filed Critical Integrated Device Technology Inc
Publication of WO2005003955A2 publication Critical patent/WO2005003955A2/en
Publication of WO2005003955A3 publication Critical patent/WO2005003955A3/en
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor

Definitions

  • the present invention relates to integrated circuit memory devices and methods of operating same, and more particularly to buffer memory devices and methods of operating buffer memory devices.
  • Background of the Invention Semiconductor memory devices can typically be classified on the basis of memory functionality, data access patterns and the nature of the data storage mechanism. For example, distinctions are typically made between read-only memory (ROM) devices and read-write memory (RWM) devices.
  • ROM read-only memory
  • RWM read-write memory
  • the RWM devices typically have the advantage of offering both read and write functionality with comparable data access times.
  • RWM devices data is stored either in flip-flops for "static” memory devices or as preset levels of charge on a capacitor in “dynamic” memory devices.
  • static memory devices retain their data as long as a supply of power is maintained, however, dynamic memory devices require periodic data refreshing to compensate for potential charge leakage.
  • RWM devices use active circuitry to store data, they belong to a class of memory devices known as “volatile” memory devices because data stored therein will be lost upon termination of the power supply.
  • ROM devices may encode data into circuit topology (e.g., by blowing fuses, removing diodes, etc.).
  • ROM devices typically belong to a class of memory devices known as “nonvolatile” memory devices because data stored therein will typically not be lost upon termination of the power supply.
  • Other types of memory devices that have been more recently developed are typically referred to as nonvolatile read- write (NVRWM) memory devices.
  • NVRWM nonvolatile read- write
  • EPROM erasable programmable read-only memory
  • E 2 PROM electrically erasable programmable read-only memory
  • flash memories for example.
  • An additional memory classification is typically based on the order in which data can be accessed.
  • RAM random-access memory
  • FIFO first-out
  • CAM content addressable memory
  • a final classification of semiconductor memories is based on the number of input and output ports associated with the memory cells therein. For example, although most memory devices have unit cells therein that provide only a single port which is shared to provide an input and output path for the transfer of data, memory devices with higher bandwidth requirements often have cells therein with multiple input and output ports. However, the addition of ports to individual memory cells typically increases the complexity and layout area requirements for these higher bandwidth memory devices. Single-port memory devices are typically made using static RAM cells if fast data access times are requiring, and dynamic RAM cells if low cost is a primary requirement.
  • FIFO memory devices use dual-port RAM- based designs with self-incrementing internal read and write pointers to achieve fast fall-through capability.
  • fall-through capability is typically measured as the time elapsing between the end of a write cycle into a previously empty FIFO and the time an operation to read that data may begin.
  • Exemplary FIFO memory devices are more fully described and illustrated at section 2.2.7 of a textbook by A.K. Sharma entitled "Semiconductor Memories: Technology,
  • dual-port SRAM-based FIFOs typically utilize separate read and write pointers to advantageously allow read and write operations to occur independently of each other and achieve fast fall-through capability since data written into a dual-port SRAM FIFO can be immediately accessed for reading. Since these read and write operations may occur independently, independent read and write clocks having different frequencies may be provided to enable the FIFO to act as a buffer between peripheral devices operating at different rates.
  • independent read and write clocks having different frequencies may be provided to enable the FIFO to act as a buffer between peripheral devices operating at different rates.
  • a major disadvantage of typical dual-port SRAM-based FIFOs is the relatively large unit cell size for each dual-port SRAM cell therein. Thus, for a given semiconductor chip size, dual-port buffer memory devices typically provide less memory capacity relative to single-port buffer memory devices.
  • a single-port SRAM unit cell typically may consume four (4) units of area and a dual-port SRAM unit cell typically may consume sixteen (16) units of area.
  • the relatively large unit cells of a dual- port SRAM FIFO may limit the degree to which the number of write operations can exceed the number of read operations, that is, limit the capacity of the FIFO.
  • single-port buffer memory devices have been developed to, among other things, achieve higher data capacities for a given semiconductor chip size. For example, U.S. Patent No. 5,546,347 to Ko et al.
  • a bypass switch is provided for transferring data from the write data register to the read data register so that the memory array can be bypassed during testing of the FIFO to detect the presence of defects therein.
  • simultaneous read and write access to data is not feasible.
  • Commonly assigned U.S. Patent Nos. 5,978,307, 5,982,700 and 5,999,478 disclose memory buffers having fast fall-through capability. These memory buffers contain a tri-port memory array of moderate capacity having nonlinear columns of tri-port cells therein which collectively form four separate registers, and a substantially larger capacity supplemental memory array (e.g., DRAM array) having cells therein with reduced unit cell size.
  • DRAM array substantially larger capacity supplemental memory array
  • the tri-port memory array has a read port, a write port and a bidirectional input/output port.
  • the tri-port memory array communicates internally with the supplemental memory array via the bidirectional input/output port and communicates with external devices (e.g., peripheral devices) via the read and write data ports.
  • Efficient steering circuitry is also provided by a bidirectional crosspoint switch that electrically couples terminals (lines IO and IOB) of the bidirectional input/output port in parallel to bit lines (BL and BLB) in the supplemental memory array during a write-to-memory time interval and vice versa during a read-from-memory time interval.
  • 6,546,461 also discloses FIFO memory devices that use multiple multi-port caches to support high rate reading operations.
  • multiple FIFO memory devices may be cascaded in a depth expansion configuration.
  • a pair of FIFO memory devices may be configured to provide a higher capacity FIFO system 10.
  • both devices operate in a conventional first-word fall-through (FWFT) mode.
  • FWFT first-word fall-through
  • the output ready pin (/OR) is used to indicate whether or not there is valid data at the data outputs (Qn) and the input ready pin (/IR) is used to indicate whether or not a FIFO memory device has any free space to support a writing operation.
  • the first word written to an empty FIFO memory device goes directly to the corresponding data outputs (Qn) after three rising edges of the read clock (RCLK) and any requirement that the read enable signal (/REN) be low to produce output data is not necessary.
  • the FIFO memory device on the left side of FIG. 1A has a write interface and a read interface.
  • the write interface receives a write clock signal WCLK, a write enable signal (/WEN) and input data (Dn) and generates the input ready flag (/IR).
  • the read interface receives a read clock signal RCLK and a read enable signal (/REN) and generates an output ready flag (/OR) and output data (Qn). This output ready flag (/OR) may be used as the write enable input signal (/WEN) to the next stage in the cascaded arrangement.
  • the read interface of the left FIFO memory device is electrically coupled to a write interface of the FIFO memory device on the right side of FIG. 1A and the read and write clock signal pins at these interfaces receive a transfer clock (TRANSFER CLOCK).
  • This transfer clock may be an independent clock signal or may constitute the write clock signal or read clock signal.
  • a transfer clock signal operating at maximum frequency is preferred.
  • the write or read clock signal is used in place of the transfer clock signal, then the read or write clock signal having the higher frequency should be used.
  • the read interface of the right FIFO memory device can be electrically coupled to a downstream peripheral device (not shown) or other device or system.
  • a downstream peripheral device not shown
  • the ability to increase the capacity of FIFO memory devices operating in the FWFT mode of operation does not translate to FIFO memory devices that are configured to operate in standard mode, which is another conventional mode of operation.
  • an empty flag (/EF) generated at an output of a FIFO memory device in standard mode may not be used as a write enable signal (/WEN) to the next stage in a cascaded arrangement, because there is a one cycie timing difference between the empty flag (/EF) generation and the output ready flag (/OR) generation when a FIFO memory device is disposed in the standard mode and FWFT mode, respectively.
  • This one cycle difference in flag generation precludes reliable operation of a depth expansion arrangement of FIFO memory devices when they are disposed in the standard mode.
  • Integrated circuit devices include a first-in first-out (FIFO) memory chip that is configured to support a pair of hybrid operating modes that enable the FIFO memory chip to be depth-expandable with other FIFO memory chips in a collective standard mode of operation.
  • This pair of hybrid operating modes includes a first hybrid mode that supports a write interface configured in standard mode and a read interface configured in first-word fall-through (FWFT) mode.
  • the second hybrid mode supports a write interface configured in FWFT mode and a read interface configured in standard mode.
  • the first hybrid mode eliminates the need to use an empty flag (/EF) associated with a read interface of an upstream device as a write enable input (/WEN) to a FIFO chip in the next stage in a depth cascaded arrangement.
  • the first hybrid mode supports a write interface having a full flag pin (/FF) that designates when the FIFO memory chip is full and a read interface having an output ready pin (/OR) that designates when the FIFO memory chip has at least one entry therein.
  • the second hybrid mode supports a write interface having an input ready pin (/IR) that designates when the FIFO memory chip can accept additional entries and a read interface having an empty flag pin (/EF) that designates when the FIFO memory chip is empty.
  • the FIFO memory chip also has an input pin that is responsive to a standard depth expansion mode signal (IDEM).
  • This pin operates with a FWFT pin to set one of four operating modes within the chip: full standard, full FWFT, first hybrid and second hybrid.
  • Integrated circuit memory devices include a quad-port cache memory device and a higher capacity supplemental memory device. These memory devices operate collectively as high speed buffer memory devices having fast fall through capability and extended data capacity. These devices do not require complex arbitration circuitry to oversee reading and writing operations.
  • the supplemental memory device may be an embedded on-chip memory device or a separate off-chip memory device.
  • Other embodiments of the present invention include buffer memory devices that support bus matching and variable data bus widths.
  • These memory devices include a memory array having a page of multi-port memory cells therein that spans at least X columns and Y rows.
  • the page of memory cells is configured to support writing and reading of first data vectors to and from the X columns and writing and reading of second data vectors to and from the Y rows, where X and Y are unequal integers.
  • the memory devices are first-in first-out (FIFO) memory devices.
  • Such FIFO memory devices may include a first cache memory device having a first page of quad-port memory cells therein. This first page is configured to support writing and reading of FIFO vectors to and from columns in the first page and writing and reading of memory vectors to and from rows in the first page, with each of the memory vectors including one bit of data from each of the FIFO vectors and vice versa.
  • These memory vectors may have widths that are compatible with the bus widths associated with off-chip supplemental memory devices (e.g., DRAM, SRAM, etc.) that operate with the first cache memory device to provide a large capacity FIFO memory device.
  • off-chip supplemental memory devices e.g., DRAM, SRAM, etc.
  • the FIFO memory device may also include a second cache memory device that is configured to operate in tandem with the first quad-port cache memory device so that FIFO write (and read) operations periodically switch back-and-forth between the first cache memory device and the second cache memory device.
  • Error detection and correction circuitry may also be provided within the FIFO memory device.
  • a check bit generation circuit may be provided that is configured to receive outgoing memory vectors from the first cache memory device.
  • An error detection and correction circuit may be provided that is configured to provide incoming memory vectors to the first cache memory device. These incoming memory vectors are checked for errors (e.g., soft errors) and, if necessary, corrected.
  • Methods of operating memory devices may include writing a page of FIFO data by transferring a plurality of first data vectors from a first bus to a respective plurality of columns of multi-port memory cells within a memory array.
  • the page of FIFO data is transferred to a higher capacity supplemental memory.
  • This transfer step may be performed by reading a plurality of second data vectors from respective rows of the memory array to a second bus.
  • the first and second data buses may be configured to have different widths.
  • the width of the second data bus may also be varied depending upon application. In some applications, the width of the first data bus may match the number of rows withing the memory array and the width of the second data bus may match the number of columns within the memory array.
  • each of the plurality of second data vectors may include a data bit from each of the plurality of first data vectors and vice versa.
  • Still further embodiments of the invention may include operating a first-in first-out (FIFO) memory device by writing a page of data into the FIFO memory device. This writing step may be performed by transferring a first plurality of FIFO data vectors into a respective plurality of columns of multi-port memory cells within a first cache memory array. Each of these FIFO data vectors may comprise one or more words that are received by the FIFO memory device during a respective write clock interval. Because the first cache memory array may have a relatively small capacity, a copying step is preferably performed.
  • This copying step includes copying a page of data from the first cache memory array into an embedded or external RAM array by transferring a plurality of memory data vectors from respective rows of the first cache memory array to the RAM array.
  • These memory data vectors may be narrower than the FIFO data vectors, to accord with the various bus constraints associated with the external RAM array.
  • the memory data vectors may be configured so that each of the plurality of memory data vectors within a copied page includes a respective data bit from each of the plurality of FIFO data vectors.
  • the embedded or external RAM array may store a plurality of words that comprise bits of interleaved data from multiple distinct words that are received by the FIFO during consecutive write clock intervals.
  • These operating methods may also include transferring the page of data back from the RAM array into a second cache memory array within the FIFO memory device. Then, in response to FIFO read operations, the page of data may be read from the second cache memory array by sequentially transferring a second plurality of FIFO data vectors from respective columns of multi-port memory cells within the second cache memory array to an output data bus.
  • the step of transferring the page of data from the RAM array into the second cache memory array may include writing a plurality of memory data vectors into rows of the second cache memory array.
  • the error detection and correction operations may be performed so that any error detection and/or correction latency is hidden from the FIFO read operations.
  • first and second memory devices may be provided that are electrically coupled together by a first data path and a second data path.
  • This first data path is configured to transfer write data from the first memory device to the second memory device when the first memory device is undergoing write operations.
  • the transferred write data may be supplemented with check bit data provided by a check bit generator within the first data path.
  • the second data path is configured to transfer read data from the second memory device to the first memory device when the first memory device is undergoing read operations.
  • An error detection and correction (EDC) circuit is provided within the second data path.
  • the EDC circuit is configured to check and correct "next-to- read" data in the second data path using operations that hide error correcting latency from the read operations.
  • a FIFO memory device having EDC circuits therein may be provided.
  • This FIFO memory device may include a multi-port cache memory device within a FIFO controller and a separate high capacity supplemental memory, which may be off-chip relative to the FIFO controller.
  • the multi-port cache memory device has a write port that is configured to receive write data during FIFO write operations and a read port that is configured to supply read data during FIFO read operations.
  • the supplemental memory device is configured to retain next-to-read FIFO data that was previously written into the multi-port cache memory device during the FIFO write operations.
  • a data transfer control circuit may also be provided.
  • This data transfer control circuit is configured to provide the multi-port cache memory device with a copy of the next-to-read FIFO data that is error checked and corrected during memory-to-cache data transfer operations, which advantageously hide error correcting latency from the FIFO read operations.
  • the FIFO read operations may be performed without incurring a latency penalty associated with checking and correcting one or more errors within the FIFO data that is being transferred from the supplemental memory device to the FIFO controller.
  • the multi- I port cache memory device may include at least first and second quad-port memory devices
  • the data transfer control circuit may include a first error detection and correction circuit that is coupled to the first quad-port memory device and a second error detection and correction circuit that is coupled to the second quad-port memory device.
  • the data transfer control circuit may further include a first check bit generation circuit that is coupled to the first quad-port memory device and a second check bit generation circuit that is coupled to the second quad-port memory device.
  • FIG. 1 B illustrates a conventional FIFO memory device that is disposed in a conventional standard mode operation.
  • FIG. 2 is a block diagram of a FIFO memory device having a FIFO controller and off-chip supplemental memory device therein, according to embodiments of the present invention.
  • FIG. 3A is an electrical schematic of a quad-port memory cell that may be used in the FIFO controller illustrated by FIG. 2.
  • FIG. 3B is an electrical schematic of an embodiment of a buffer, which may be used as illustrated by FIG. 3A.
  • FIG. 4 is a block diagram of a page of quad-port memory cells that may be used in the quad-port cache illustrated by FIG. 2.
  • FIG. 5 is a block diagram that illustrates a read/write data path associated with the FIFO controller of FIG. 2.
  • FIG. 5 includes FIGS. 5A and 5B.
  • FIG. 6A is a flow diagram that illustrates request signal arbitration operations according to embodiments of the present invention.
  • FIG. 6B is a detailed flow diagram that illustrates a portion of the request signal arbitration operations of FIG. 6A.
  • FIG. 6C is a detailed flow diagram that illustrates a portion of the request signal arbitration operations of FIG. 6A.
  • FIG. 6D is a detailed flow diagram that illustrates a portion of the request signal arbitration operations of FIG. 6A.
  • FIG. 7A is a block diagram of a plurality of FIFO memory devices that are arranged in a depth expansion configuration and collectively support standard mode operation.
  • FIG. 6A is a flow diagram that illustrates request signal arbitration operations according to embodiments of the present invention.
  • FIG. 6B is a detailed flow diagram that illustrates a portion of the request signal arbitration operations of FIG. 6A.
  • FIG. 6C is a detailed flow diagram that illustrates a portion of the request signal arbitration operations of FIG.
  • FIG. 7B is a block diagram of a plurality of FIFO memory controllers that are arranged in a depth expansion configuration and collectively support standard mode operation.
  • FIG. 7B includes FIGS. 7B_1 and 7B_2.
  • FIG. 8 is an electrical schematic of a quad-port cache memory cell according to additional embodiments of the present invention.
  • FIGS. 9A-9E are block diagrams of integrated circuit memory devices according to additional embodiments of the present invention. Description of Preferred Embodiments The present invention now will be described more fully herein with reference to the accompanying drawings, in which preferred embodiments of the invention are shown.
  • a buffer memory device may use a combination of integrated circuit memory devices that operate collectively as a FIFO memory device.
  • a FIFO memory device 100 having a multi-chip configuration is illustrated by FIG. 2.
  • This FIFO memory device 100 includes a FIFO controller 102, which may be formed on a first integrated circuit chip, and a supplemental memory device, which may be formed on a second integrated circuit chip.
  • the supplemental memory device is illustrated as a dual data rate (DDR) memory device 140.
  • the DDR memory device 140 may be a dynamic random access memory (DRAM) device or a static random access memory (SRAM) device.
  • DRAM dynamic random access memory
  • SRAM static random access memory
  • the FIFO controller 102 includes an input block 12', a quad-port cache control circuit 14' and an output block 16'. As illustrated, the input block 12' receives input data (DATA IN) having a first data width and provides a quad-port cache 130 within FIFO write data (DATA INPUT) having a second data width (shown as 144 bits/word). The first data width may vary depending on application.
  • Each 144-bit write word may be formed as sixteen 9-bit words, eight 18-bit words, four 36-bit words, twelve 12-bit words, six 24-bit words or three 48-bit words.
  • the output block 16' is also configured to map each 144-bit read word (DATA OUTPUT) into a corresponding plurality of output data words (DATA OUT).
  • the quad-port cache control circuit 14' performs various control operations, including operations to generate the DIRECTPATH and MEMPATH control signals. These control signals are provided to multiplexer circuitry within the quad-port cache 130.
  • the quad-port cache 130 is illustrated as including two pages (e.g., two arrays) of quad-port cache memory cells.
  • each 144-bit write word (DATA INPUT) that is received by the quad-port cache 130 may be written into either QPCACHE0 or QPCACHE1 as two consecutive x72 FIFO vectors.
  • each 144-bit read word (DATA OUTPUT) that is received from the quad-port cache 130 may result from operations to read two adjacent x72 FIFO vectors from either QPCACHE0 or QPCACHE1.
  • a data transfer control circuit 215 is electrically coupled between a bidirectional output port of the FIFO controller 102 and various ports of the quad-port cache 130.
  • the bidirectional output port of the FIFO controller 102 is illustrated as including a bidirectional bus, which is capable of handling x16, x32 and x36 data words that can be written to or read from the DDR memory device 140. Data words having a width of 64 bits (x64) may also be provided in the event the quad-port cache 130 is a 72x36x2x2 device.
  • the data transfer control circuit 215 is configured to perform various error detection and correction operations.
  • the data transfer control circuit 215 includes a first check bit generation circuit 210A and a second check bit generation circuit 210B.
  • the first check bit generation circuit 210A When enabled, the first check bit generation circuit 210A operates to generate a plurality of check bits for each word that is transferred from QPCACHE0 132a to the DDR memory device 140 during a cache-to-memory data transfer operation.
  • the second check bit generation circuit 210B operates to generate a plurality of check bits for each word that is transferred from QPCACHE1 132b to the DDR memory device 140 during a cache-to- memory data transfer operation.
  • These check bits may support the detection and correction of one (or more) errors when the corresponding word is read back from the DDR memory device 140 during a memory-to- cache data transfer operation.
  • the FIFO controller 102 may have a mode of operation that does not include check bit generation during a cache-to-memory data transfer operation, or error detection and correction during a memory-to-cache data transfer operation. Accordingly, circuitry may be provided so that both the first check bit generation circuit 210A and the second check bit generation circuit 210B may be bypassed. Operations and circuitry fo generating check bits for a given word length are well known to those skilled in the art and need not be further described herein.
  • the data transfer control circuit 215 further includes a first error detection and correction (EDC) circuit 220A, which provides verified data (without check bits) to QPCACHE0 132a, and a second error detection and correction circuit 220B, which provides verified data (without check bits) to
  • EDC error detection and correction
  • the FIFO controller 102 may have a mode of operation that does not include error detection and correction. Thus, circuitry may be provided so that both the first error detection and correction circuit 220A and the second error detection and correction circuit 220B may be bypassed. Additional embodiments of the FIFO controller
  • the 102 may include the error detection and correction circuits 220A and 220B, but omit (or bypass) the check bit generation circuits 210A and 210B. These embodiments may be useful in those applications where the input data (DATA IN) received by the input block includes its own check bit information.
  • the EDC circuits 220A and 220B may be configured to pass check bit information to the cache.
  • Each of the quad-port bit cells (QP-BC) within QPCACHEO 132a and QPCACHE1 132b may be configured as illustrated by the bit cell 130a of FIG. 3A.
  • the quad-port bit cell 130a has four ports, which include two unidirectional input ports and two unidirectional output ports.
  • the input ports include a "data input” port (DATA INPUT), which receives FIFO write data from the input block 12', and a “from memory” port (FROM MEMORY), which receives "next-to-read” data that is being transferred from the DDR memory device 140 to the quad-port cache 130 during a memory-to-cache data transfer operation.
  • DATA INPUT data input
  • FROM MEMORY "from memory” port
  • This next-to-read data may be error checked and corrected by the error detection and correction circuits
  • the two output ports include a "to memory” port (TO MEMORY), which is active when a page of recently written data is being transferred from the quad-port cache 130 to the DDR memory device 140 during a cache-to-memory data transfer operation, and a "data output” port (DATA OUTPUT), which is configured to transfer FIFO read data from either QPCACHEO 132a or QPCACHE1 132b to the output block 16'.
  • a data input register and memory data read register are provided to store the FIFO write data and the "next-to-read" data received from the
  • the data input register is illustrated as including a transmission gate, which is responsive to a write address, and a latch.
  • the memory data read register is illustrated as including a transmission gate, which is responsive to an enable signal (shown as FROM MEMORY ENABLE) and a latch.
  • a 2-input data multiplexer (DATA MUX) is also provided.
  • the data multiplexer can be configured so that the FIFO write data is directly passed (as FIFO read data) to the data output port (DATA OUTPUT), to thereby support fast fall through capability. This configuration is achieved by setting the direct path signal (DIRECTPATH) to an active high level.
  • the 2-input data multiplexer can be configured so that data retrieved from the DDR memory device 140 is available for reading at the data output port. This latter configuration is achieved by setting the memory path signal (MEMPATH) to an active high level.
  • MEMPATH memory path signal
  • the output of the data multiplexer is connected to an inverting latch 226.
  • An output of the latch 226 is electrically coupled to an input of a data output buffer 224, which is responsive to a read address (READ ADDRESS).
  • the data output register 224 has a pair of complementary outputs (shown as Q and QB) that are provided to a driver device 228b.
  • a memory write path is also provided within the quad-port bit cell 130a.
  • This memory write path extends from an output of the data input register to an input of a memory data write buffer 222.
  • the memory write path also includes an inverter and a driver device 228a, which is connected to complementary outputs of the memory data write buffer 222.
  • the memory data write buffer 222 is responsive to a memory enable signal (TO MEMORY ENABLE). When the memory enable signal is set to an active high level, FIFO write data is passed from the data input register to the "to memory” port (TO MEMORY). Thus, regardless of how the data multiplexer (DATA MUX) is set, the receipt of an active memory enable signal will enable transfer of FIFO write data from the quad-port cache 130 to the DDR memory device 140.
  • 3B is an electrical schematic of a register that may be used as the memory data write buffer 222 and the data output buffer 224.
  • the register is illustrated as including PMOS transistors P1-P3 and NMOS transistors N1-N3.
  • an input signal (D) is set to a high level
  • NMOS transistor N1 is turned on and the complementary output QB is pulled (or held) low.
  • the output enable signal OE is set high to an active level, then NMOS transistor N3 and PMOS transistor P3 will both be turned on and the true output Q will be pulled low by NMOS transistor N1.
  • both the true and complementary outputs Q and QB will be set low and the output of the driver device 228b will be pulled high to reflect the high level of the input signal D.
  • FIG. 4 illustrates an arrangement of quad-port bit cells (QP_BC) within a page of the quad-port cache 130.
  • QP_BC quad-port bit cells
  • the data input port (DATA INPUT) and the data output port (DATA OUTPUT) illustrated in the bit cell 130a of FIG. 3A correspond to the FIFO data input port (FIFO DATA INPUT (x144)) and FIFO data output port (FIFO DATA OUTPUT (x144)) illustrated in FIG. 4.
  • each FIFO write word (having 144 bits) can be written into two adjacent columns within the illustrated page of quad-port cells and each FIFO read word can be read from two adjacent columns.
  • This maximum value of 18 FIFO write words is reduced to 16 FIFO write words in the event the DDR memory device 140 is configured to accept 32-bit words instead of 36-bit words.
  • These 16 FIFO write words may be treated as filling the 32 leftmost columns in the illustrated page, whereas 18 FIFO write words may be treated as filling all 36 columns of the illustrated page.
  • FROM MEMORY illustrated in the bit cell 130a of FIG. 3A correspond to the "to memory” port (TO MEMORY (x64, x72)) and the “from memory” port (FROM MEMORY (x64, x72)) illustrated at the top FIG. 4. Accordingly, in the event the DDR memory device 140 accepts 32-bit words, then a maximum of 72 32-bit memory vectors (corresponding to 36 64-bit words) can be transferred out of the page during a cache-to-memory data transfer operation.
  • This cache-to-memory data transfer operation may include passing the page of data through one of the check bit generation circuits (CB GEN) illustrated by FIG. 2.
  • CB GEN check bit generation circuits
  • a maximum of 72 36-bit memory vectors (corresponding to 36 72-bit words) can be transferred out of the page during a cache-to-memory data transfer operation.
  • the same relationships apply to the filling of a page of quad-port bit cells during memory-to-cache data transfer operations (i.e., when a page is being loaded with next-to-read data from the DDR memory device 140).
  • This memory-to-cache data transfer operation may include passing the page of data through one of the error detection and correction circuits (EDC) illustrated by FIG. 2.
  • EDC error detection and correction circuits
  • efficient bus matching characteristics may be achieved using data rotation operations (horizontal-to-vertical and vertical-to-horizontal).
  • data rotation operations horizontal-to-vertical and vertical-to-horizontal.
  • the illustrated page enables 32 or 36 x72 FIFO vectors to be written into and read from columns of the page during FIFO write and read operations, respectively.
  • the page enables 72 x32 or x36 (or other widths) memory vectors to be read from or written to rows of the page during cache-to-memory and memory-to-cache data transfer operations, respectively. These operations represent vertical transfer operations.
  • each of the memory vectors will retain one bit of data from a corresponding x72 FIFO vector. Accordingly, each filled row of memory cells within the DDR memory device 140 may retain a memory vector that contains one bit of data from 32 or 36 distinct
  • the cache-to-memory and memory-to-cache data transfer operations require the DDR memory device 140 to undergo write and read operations, respectively.
  • the timing of these operations is controlled by the FIFO controller 102.
  • the FIFO controller 102 may also be required to control the timing of periodic refresh operations within the DRAM device.
  • the timing of these operations: DDR read, DDR write and DDR refresh may occur in any sequence and may repeatedly change sequence and frequency throughout operation. For example, if the FIFO memory device 100 is undergoing many write operations but very few read operations during a particular time interval, then the DDR memory device 140 will undergo many consecutive write and refresh operations that are interleaved, but very few read operations.
  • the DDR memory device 140 will undergo many consecutive read and refresh operations, but very few write operations.
  • the frequency of the refresh operations may be a dictated by particular requirements of the DDR memory device 140
  • the frequency, timing and order of the write and read operations will be influenced by the frequency at which the FIFO memory device 100 is accessed by external devices (not shown). This precludes the FIFO controller 102 from controlling all aspects of the read and write request signal generation.
  • FIG. 6A-6D illustrate operations to arbitrate the timing of when read, write and refresh commands are issued to the DDR memory device 140, in response to the asynchronous generation of read, write and refresh requests within the FIFO controller 102.
  • request detection and arbitration operations 400 are performed in response to any order or timing of read, write and refresh requests.
  • Blocks 402 and 404 checks are initially made to arbitrate between read, write and refresh requests in order to detect which request came first in time. If a read request was generated first, then operations associated with Block 430 are performed. However, if a write request was generated first, then operations associated with Block 410 are performed. Finally, if a refresh request was generated first, then operations associated with Block 420 are performed. As illustrated by Block 410 in FIG.
  • a write request is detected as a first request, then a write command is issued to the DDR memory device 140 and write operations are commenced. These write operations represent a portion of the cache-to-memory data transfer operations. Following detection of the write request, a continuous check is made to determine whether any other requests (read or refresh) are made prior to completion of the write operations. If no other requests are made prior to completion, then control is passed to the request detection and arbitration operations, Block 400. However, if another request is made, then operations associated with the additional request(s) are performed after completion of the write operation. The operations performed by Block 410 are more fully illustrated by FIG. 6B. As illustrated by Block 430 in FIG. 6A, if a read request is detected as a first request, then a read command is issued to the DDR memory device 140 and read operations are commenced. These read operations represent a portion of the memory-to-cache data transfer operations.
  • Block 430 Operations performed by Block 430 are more fully illustrated by FIG. 6C. As illustrated by Block 420 in FIG. 6A, if a refresh request is detected as a first request, then a refresh command is issued to the DDR memory device 140 and refresh operations are commenced within the DDR memory device 140.
  • FIG. 6B is a flow diagram that illustrates detection of a write request as a first request followed by various read and refresh request timing combinations.
  • a write command is issued by the FIFO controller 102 and write operations are performed as part of a cache-to-memory data transfer.
  • Block 400 If the write operations are completed before either a read or refresh request is detected, then control is returned to Block 400.
  • This sequence is illustrated at the top of FIG. 6B, where write operations are performed and then a WRITE_done signal is generated to signify completion of the write operations.
  • a read request may be received prior to completion of the write operations. If this occurs, then the read request is queued while further write operations are performed. If the write operations are completed prior to receipt of any refresh request, then read operations will be commenced. If the read operations are completed prior to receipt of any refresh request, then a READ_done signal is generated to signify completion of the read operations and then control is returned to Block 400.
  • This lower queue priority of the read request (and any write request) relative to a queued refresh request enables the refresh operations to be performed as soon as possible after a refresh request has been made. This insures that any requested refresh operation is performed in a timely manner so that data is not lost within the DDR memory device 140 for failure to timely refresh.
  • the generation of a REFRESH_done signal signifies completion of the refresh operations and prompts commencement of operations responsive to the remaining queued read request. Referring now to the right side of FIG. 6B, a refresh request may be received prior to completion of the write operations. If this occurs, then the refresh request is queued while further write operations are performed. If the write operations are completed prior to receipt of any read request, then refresh operations will be commenced.
  • 6C is a flow diagram that illustrates detection of a read request as a first request followed by various write and refresh request timing combinations.
  • a read command is issued by the FIFO controller 102 and read operations are performed as part of a memory-to-cache data transfer. If the read operations are completed before either a write or refresh request is detected, then control is returned to Block 400. This sequence is illustrated at the top of FIG. 6C, where read operations are performed and then a
  • READ_done signal is generated to signify completion of the read operations. Referring now to the left side of FIG. 6C, a write request may be received prior to completion of the read operations. If this occurs, then the write request is queued while further read operations are performed. If the read operations are completed prior to receipt of any refresh request, then write operations will be commenced upon completion of the read operations. If the write operations are completed prior to receipt of any refresh request, then a WRITE_done signal is generated to signify completion of the write operations and then control is returned to Block
  • REFRESH_done signal signifies completion of the refresh operations and prompts commencement of operations responsive to the remaining queued write request.
  • a refresh request may be received prior to completion of the read operations. If this occurs, then the refresh request is queued while further read operations are performed. If the read operations are completed prior to receipt of any write request, then refresh operations will be commenced. If the refresh operations are completed prior to receipt of any write request, then a REFRESH_done signal is generated to signify completion of the refresh operations and control is returned to Block 400.
  • FIG. 6D is a flow diagram that illustrates detection of a refresh request as a first request followed by various write and read request timing combinations. Because the read and write requests have equivalent queue priorities, the right side of FIG. 6D, which follows a write request being received after the refresh request, is similar to the left side of FIG. 6D, which follows a read request being received after the refresh request. In the flow diagram of FIG. 6D, the read and write requests are queued so that operations associated with the earlier of the two received requests is performed before operations associated with the later received request are performed. Thus, in FIG.
  • the read operations from the DDR memory device 140 represent a subset of the memory-to-cache data transfer operations and the memory- to-cache data transfer operations represent a subset of the operations to read FIFO vectors from the quad-port cache 130.
  • pages of read data from the DDR memory device 140 are routed through the error detection and correction (EDC) circuits 220A and 220B in an alternating sequence that is 180 degrees out- of-phase relative to the operations to read FIFO vectors from QPCACHEO 132a and QPCACHE1 132b, which are also performed in an alternating back-and-forth sequence between the pages of cache.
  • EDC error detection and correction
  • FIG. 5 illustrates a FIFO controller 102' having various arbitration control circuits and memory interface and control circuits therein.
  • a multi- request arbitration circuit 500 is provided that generates a plurality of start signals: REFRESH_START, MEMREAD_START and MEMWRITE_START. These start signals (commands) are received by a memory interface state machine 600 and the quad-port cache control circuit 14'.
  • the refresh start signal (REFRESH_START) is generated in response to a refresh request signal (REFCLK) that is received by the arbitration circuit 500.
  • the refresh request signal is generated by a refresh counter 502. This refresh counter is responsive to a clock signal (shown as CLK33M) and an active low global reset signal RSL.
  • the clock signal CLK33M may be an input clock signal having a frequency of 33.33 MHz.
  • This clock signal may be used with a phase locked loop (PLL), now shown, to generate another clock signal (e.g., MEMCLK) having a frequency of 133.33 MHz or 166.67 MHz, for example.
  • the arbitration circuit 500 is responsive to a read request signal (READ_REQUEST) and a write request signal (WRITE_REQUEST), which are generated by a FIFO control circuit 15.
  • the arbitration circuit 500 is synchronized with a clock signal, shown as MEMCLOCK.
  • This clock signal MEMCLOCK may have a frequency of about 166.67 MHz in some applications.
  • the arbitration circuit 500 is also responsive to various signals that reflect completion of read, write and refresh operations. These "completion" signals are illustrated as WRITE_DONE, READ_DONE and
  • the memory interface state machine 600 is configured to generate memory control signals (MEMORY_CONTROL) and data control signals (DATA_CONTROL) in response to the start signals. Moreover, the memory interface state machine 600 is configured to generate the
  • a memory interface control circuit 610 is also provided. This interface control circuit 610, which is responsive to the memory control signals, generates signals that are compatible with DRAM memory devices.
  • ADDR ⁇ 12:0> which represents a 13-bit row address
  • BANK ⁇ 1 :0> which represents a bank select signal
  • a plurality of single bit signals are shown as a chip select signal (/CS), a column address strobe signal (/CAS), a write enable signal (/WE) and a row address strobe signal (/RAS).
  • /CS chip select signal
  • /CAS column address strobe signal
  • /WE write enable signal
  • RAS row address strobe signal
  • Different signals will be used in the event the DDR memory device 140 is an SRAM device.
  • FIG. 5B the quad-port cache 130 and data transfer control circuit 215 are illustrated.
  • the data transfer control circuit 215 includes the check bit generation circuits 210 and error detection and correction circuits 220 illustrated in FIG.
  • a memory interface circuit 217 that is responsive to the data control signals (DATA_CONTROL).
  • the memory interface circuit 217 is coupled to the DDR memory device 140 by a data bus (shown as DQ ⁇ 63:0>) and data strobe bus (shown as DQS ⁇ 7:0>).
  • DQ ⁇ 63:0> data bus
  • DQS ⁇ 7:0> data strobe bus
  • FIG. 7A a plurality of FIFO memory devices 600a- 600d (FIFO 0 - FIFO 3) are arranged in a depth expansion configuration according to embodiments of the present invention. These devices collectively define a FIFO memory system 600 that supports standard mode operation.
  • the system 600 interfaces with a data supplying device (i.e., write side source, not shown) and a data receiving device (i.e., read side source, not shown) via interfaces that support standard mode operation.
  • a data supplying device i.e., write side source, not shown
  • a data receiving device i.e., read side source, not shown
  • the intermediate FIFO memory devices 600b and 600c are configured to support first-word fall- through (FWFT) mode operation at both their write and read interfaces.
  • the read interface of the first FIFO memory device 600a is configured to support FWFT mode operation.
  • the third FIFO memory device is configured to support communication between the third FIFO memory device
  • the write interface of the fourth FIFO memory device 600d is configured to support FWFT mode operation.
  • These memory devices may be configured as FIFO memory chips that are independently packaged or multiple chips may be arranged in a depth expansion configuration within a single integrated circuit package. Accordingly, in order for the FIFO memory devices 600a-600d to collectively support standard mode operation with respect to the data supplying device and the data receiving device, the first FIFO memory device 600a is set to support a first hybrid mode and the last FIFO memory device 600d is set to support a second hybrid mode.
  • the first hybrid mode supports a write interface configured in standard mode and a read interface configured in FWFT mode and the second hybrid mode supports a write interface in FWFT mode and a read interface in standard mode.
  • This first hybrid mode is achieved by setting the FWFT pin on the first FIFO memory device 600a to a logic 1 value (e.g., Vdd) and setting the standard depth expansion mode pin (IDEM) to a logic 1 value.
  • This first hybrid mode prevents any conflict between the generation of an empty flag (/EF) associated with an upstream device and write enable pin (/WEN) associated with an adjacent downstream device, by replacing an empty flag generation associated with standard mode with an output ready flag generation associated with FWFT mode.
  • the second hybrid mode is achieved by setting the FWFT pin on the last FIFO memory device 600d to a logic 0 value and setting the depth expansion mode pin IDEM pin on the last FIFO memory device to a logic 1 value.
  • the second and third FIFO memory devices 600b and 600c are set in a full FWFT mode by setting the
  • a FIFO memory device (not shown) may be set in full standard mode, where both write and read interfaces support standard mode, by setting the FWFT pin to a logic 0 value and setting the IDEM pin to a logic 0 value.
  • a transfer clock signal (TRANSFER CLOCK) may be provided as an independent high frequency clock signal (e.g., 166.7 MHz) or may constitute the write clock signal (WCLK) or read clock signal (RCLK). If the write or read clock signal is used as the transfer clock signal, then the write or read clock signal having the higher frequency should be used for better system performance. Referring now to FIG.
  • FIFO memory controllers 600a' - 600d' are illustrated as being arranged in a depth expansion configuration. These FIFO memory controllers 600a' - 600d" may be configured in accordance with the memory controllers of FIGS. 2-5. These controllers 600a' - 600d" collectively define a FIFO memory system 600' that supports standard mode operation. As described above with respect to FIG. 7A, the first and last FIFO memory controllers 600a' and 600d' are configured in the first and second hybrid modes, respectively, and the intermediate FIFO memory controllers 600b' and 600c' are configured in the FWFT mode. Each FIFO memory controller 600a' - 600d' is electrically coupled to an external memory device using control and interface logic.
  • These external memory devices 602a - 602d are shown as dual data rate (DDR) synchronous dynamic random access memory (SDRAM) devices, however, other devices may be used.
  • the pins at the external memory interface are illustrated as conventional pins: clock signal pins CK and /CK, data strobe signal pins DQS, write enable pin /WE, column address strobe pin /CAS, row address strobe pin /RAS, data pins (DQ) and address pins (ADDR).
  • These external memory devices may be configured to perform similar functions as embedded memory arrays within the FIFO memory devices 600a - 600d of FIG. 7A.
  • the references to a FIFO memory device include FIFO memory devices having high capacity embedded memory and FIFO memory controllers that utilize external high capacity memory.
  • the quad-port bit cell 130a of FIG. 3A may be configured using 42
  • this quad-port bit cell 130a may be replaced by the smaller quad-port bit cell 800 of FIG. 8, which is illustrated as including 19 transistors.
  • This quad-port bit cell 800 is illustrated as including two dual- port SRAM memory elements.
  • the first dual-port SRAM memory element is defined by NMOS access transistors N4-N7 and latch element L1 , which includes a pair of inverters connected in antiparallel. The output terminals of these inverters represent complementary storage nodes within the SRAM memory element.
  • the second dual-port SRAM memory element is defined by NMOS access transistors N11-N14 and latch element L2, which includes another pair of inverters connected in antiparallel.
  • the first dual-port SRAM memory element may undergo a write operation by driving a pair of FIFO WRITE bit lines FWBL and /FWBL with FIFO write data and turning on the NMOS access transistors N4-N5 by driving the FIFO WRITE word line to an active high level.
  • This FIFO write operation corresponds to the operation to load the data input register in FIG. 3A.
  • the second dual-port SRAM memory element may undergo a write operation by driving a pair of MEMORY READ bit lines MRBL and /MRBL with MEMORY READ data and turning on the NMOS access transistors N11-N12 by driving the MEMORY READ word line to an active high level.
  • This write operation corresponds to the operation to load the memory data read register in FIG. 3A.
  • a supplemental memory device e.g., embedded memory or off-chip memory (e.g., DRAM memory chip)
  • the MEMORY WRITE word line is driven to an active high level.
  • This transfer operation corresponds to the operation to transfer memory write data through the memory data buffer 222 of FIG. 3A.
  • an operation to read FIFO data from the bit cell 800 may be performed by driving the FIFO READ word line to an active high level to thereby turn on the NMOS access transistors N13-N14. This results in a transfer of FIFO read data to the FIFO READ bit lines FRBL and /FRBL.
  • This read operation corresponds to the operation to transfer FIFO read data to the data output buffer 224 illustrated by FIG. 3A.
  • NMOS pass transistors N9 and N10 and an NMOS pull-down transistor N8. These transistors N8-N10 define a data transfer circuit that may be used to transfer FIFO write data directly from the latch L1 in the first dual-port SRAM memory element to the latch element L2 in the second dual-port
  • the multi-port CACHE bit cell 800 of FIG. 8 includes a first SRAM memory element having a first pair of access transistors N4-N5 that are electrically coupled to a pair of FIFO WRITE bit lines FWBL and /FWBL.
  • a second dual-port SRAM memory element is also provided.
  • This second dual-port SRAM memory element includes a second pair of access transistors N13-N14, which are electrically coupled to a pair of FIFO READ bit lines FRBL and /FRBL, and a third pair of access transistors N 11 -N 12, which are electrically coupled to a pair of MEMORY READ bit lines MRBL and /MRBL.
  • a data transfer circuit is also provided by NMOS transistors N8-N10. This data transfer circuit supports a unidirectional data transfer path, which extends from storage nodes within the first SRAM memory element (outputs of latch element L1) to storage nodes within the second dual-port SRAM memory element (outputs of latch element L2).
  • This unidirectional data transfer path is enabled when the DIRECT PATH word line signal is driven to an active high level and NMOS pull-down transistor N8 turns on.
  • NMOS pull-down transistor N8 turns on.
  • the DIRECT PATH word line signal is driven to an active high level, one of the storage nodes within the first
  • the SRAM memory element operates to turn on either NMOS pass transistor N9 or NMOS pass transistor N10. This causes one of the storage nodes within the second SRAM memory element to be pulled low and the other storage node to be driven high.
  • the bit cell 800 of FIG. 8 may be modified by substituting a pair of NMOS pull-down transistors for the illustrated NMOS pull-down transistor N8.
  • the MEMORY WRITE word line, NMOS access transistors N6-N7 and MEMORY WRITE bit lines MWBL and /MWBL may be omitted in some embodiments of the bit cell.
  • FIGS. 9A-9E illustrate integrated circuit memory devices 600a - 600e according to additional embodiments of the present invention. In these embodiments, any latency associated with performing error detection and correction (EDC) operations can be hidden from operations to read data from the memory devices.
  • EDC error detection and correction
  • a first-in first-out (FIFO) memory device 600a is illustrated.
  • This FIFO memory device 600a includes an input register 602 that is configured to receive write data from an input port of the FIFO memory device 600a and an output register 604 that is configured to supply read data to an output port of the FIFO memory device 600a.
  • a bypass path (BYPASS) is also provided so that write data may be passed directly from the input register 602 to the output register 604 and fast fall through capability may be achieved within the FIFO memory device 600a.
  • a check bit generation (CBG) circuit 606 is provided in the register-to-memory data path and an error detection and correction (EDC) circuit 608 is provided in the memory-to-register data path.
  • CBG check bit generation
  • EDC error detection and correction
  • a high capacity supplemental memory 610 is provided to retain FIFO write data that can be passed to the output register 604 when needed.
  • the supplemental memory 610 can be on the same integrated circuit chip or a different integrated circuit chip relative to the other illustrated circuits.
  • the output register 604 may be configured into multiple registers so that read operations can be performed on one register while another register is being loaded with data from the EDC circuit 608 and vice versa. In this manner, any latency associated with the EDC circuit 608 can be hidden from the operations to read data from the output port.
  • FIG. 9B another FIFO memory device 600b having a cache memory array and a supplemental memory array 610 is illustrated. This FIFO memory device 600b may be configured as illustrated more fully by FIG. 2. In particular, the cache memory array in FIG.
  • FIG. 9B is illustrated as including two registers 602 and 604, which may each be quad-port cache memory arrays as illustrated by FIGS. 3A-3B and 4.
  • FIG. 9C another FIFO memory device 600c is illustrated having an additional register 607 in the register-to-memory data path.
  • a second bypass path (BYPASS 2) may be provided to expand the quantity of "recent" write data that is available for immediate reading at the output port.
  • BYPASS 2 may be provided to expand the quantity of "recent" write data that is available for immediate reading at the output port.
  • an additional register 609 may be provided in the memory-to-register data path along with a third bypass path (BYPASS 3) that bypasses the supplemental memory 610.
  • BYPASS 3 third bypass path
  • a plurality of memory devices are provided within a FIFO memory device 620.
  • the plurality of memory devices are similar to the FIFO memory device 600b illustrated by FIG. 9B.
  • the FIFO memory device 620 of FIG. 9E may be provided with write and read pointers that move sequentially from one memory device to the next in a repeating cycle. Because the read pointer sequence is known in advance, read data may be made available at each read port (R1 to Rn) well in advance of being passed to the output port of the memory device 620. In this manner, the EDC latencies associated with each local read path may be hidden from the global read operations.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Dram (AREA)
  • Static Random-Access Memory (AREA)
  • Communication Control (AREA)
  • Information Transfer Systems (AREA)

Abstract

FIFO memory devices are configured to support a pair of hybrid operating modes that enable the FIFO memory device to be depth-expandable with other FIFO memory devices in a collective standard mode of operation. The pair of hybrid operating modes including a first hybrid mode that supports a write interface configured in standard mode and a read interface configured in first-word fall-through (FWFT) mode and a second hybrid mode that supports a write interface configured in FWFT mode and a read interface configured in standard mode.

Description

SEQUENTIAL FLOW-CONTROL AND FIFO MEMORY DEVICES THAT ARE DEPTH EXPANDABLE IN STANDARD MODE OPERATION Field of the Invention The present invention relates to integrated circuit memory devices and methods of operating same, and more particularly to buffer memory devices and methods of operating buffer memory devices. Background of the Invention Semiconductor memory devices can typically be classified on the basis of memory functionality, data access patterns and the nature of the data storage mechanism. For example, distinctions are typically made between read-only memory (ROM) devices and read-write memory (RWM) devices. The RWM devices typically have the advantage of offering both read and write functionality with comparable data access times. Typically, in RWM devices, data is stored either in flip-flops for "static" memory devices or as preset levels of charge on a capacitor in "dynamic" memory devices. As will be understood by those skilled in the art, static memory devices retain their data as long as a supply of power is maintained, however, dynamic memory devices require periodic data refreshing to compensate for potential charge leakage. Because RWM devices use active circuitry to store data, they belong to a class of memory devices known as "volatile" memory devices because data stored therein will be lost upon termination of the power supply. ROM devices, on the other hand, may encode data into circuit topology (e.g., by blowing fuses, removing diodes, etc.). Since this latter type of data storage may be hardwired, the data cannot be modified, but can only be read. ROM devices typically belong to a class of memory devices known as "nonvolatile" memory devices because data stored therein will typically not be lost upon termination of the power supply. Other types of memory devices that have been more recently developed are typically referred to as nonvolatile read- write (NVRWM) memory devices. These types of memory devices include EPROM (erasable programmable read-only memory), E2PROM (electrically erasable programmable read-only memory), and flash memories, for example. An additional memory classification is typically based on the order in which data can be accessed. Here, most memory devices belong to the random-access class, which means that memory locations can be read from or written to in random order, typically by supplying a read or write address. Notwithstanding the fact that most memory devices provide random-access, typically only random-access RWM memories use the acronym RAM. Alternatively, memory devices may restrict the order of data access to achieve shorter data access times, reduce layout area and/or provide specialized functionality. Examples of such specialized memory devices include buffer memory devices such as first-in first-out
(FIFO) memory devices, last-in first-out (LIFO or "stack") memory devices, shift registers and content addressable memory (CAM) devices. A final classification of semiconductor memories is based on the number of input and output ports associated with the memory cells therein. For example, although most memory devices have unit cells therein that provide only a single port which is shared to provide an input and output path for the transfer of data, memory devices with higher bandwidth requirements often have cells therein with multiple input and output ports. However, the addition of ports to individual memory cells typically increases the complexity and layout area requirements for these higher bandwidth memory devices. Single-port memory devices are typically made using static RAM cells if fast data access times are requiring, and dynamic RAM cells if low cost is a primary requirement. Many FIFO memory devices use dual-port RAM- based designs with self-incrementing internal read and write pointers to achieve fast fall-through capability. As will be understood by those skilled in the art, fall-through capability is typically measured as the time elapsing between the end of a write cycle into a previously empty FIFO and the time an operation to read that data may begin. Exemplary FIFO memory devices are more fully described and illustrated at section 2.2.7 of a textbook by A.K. Sharma entitled "Semiconductor Memories: Technology,
Testing and Reliability", IEEE Press (1997). In particular, dual-port SRAM-based FIFOs typically utilize separate read and write pointers to advantageously allow read and write operations to occur independently of each other and achieve fast fall-through capability since data written into a dual-port SRAM FIFO can be immediately accessed for reading. Since these read and write operations may occur independently, independent read and write clocks having different frequencies may be provided to enable the FIFO to act as a buffer between peripheral devices operating at different rates. Unfortunately, a major disadvantage of typical dual-port SRAM-based FIFOs is the relatively large unit cell size for each dual-port SRAM cell therein. Thus, for a given semiconductor chip size, dual-port buffer memory devices typically provide less memory capacity relative to single-port buffer memory devices. For example, using a standard DRAM cell as a reference unit cell consuming one (1) unit of area, a single-port SRAM unit cell typically may consume four (4) units of area and a dual-port SRAM unit cell typically may consume sixteen (16) units of area. Moreover, the relatively large unit cells of a dual- port SRAM FIFO may limit the degree to which the number of write operations can exceed the number of read operations, that is, limit the capacity of the FIFO. To address these limitations of dual-port buffer memory devices, single-port buffer memory devices have been developed to, among other things, achieve higher data capacities for a given semiconductor chip size. For example, U.S. Patent No. 5,546,347 to Ko et al. entitled "Interleaving Architecture And Method For A High Density FIFO", assigned to the present assignee, discloses a memory device which has high capacity and uses relatively small single-port memory cells. However, the use of only single port memory cells typically precludes simultaneous read and write access to data in the same memory cell, which means that single-port buffer memory devices typically have slower fall-through time than comparable dual-port memory devices. Moreover, single-port buffer memory devices may use complicated arbitration hardware to control sequencing and queuing of reading and writing operations. U.S. Patent No. 5,371 ,708 to Kobayashi also discloses a FIFO memory device containing a single-port memory array, a read data register for holding read data from the memory array and a write data register for holding write data to the memory array. A bypass switch is provided for transferring data from the write data register to the read data register so that the memory array can be bypassed during testing of the FIFO to detect the presence of defects therein. However, like the above-described single- port buffer memory devices, simultaneous read and write access to data is not feasible. Commonly assigned U.S. Patent Nos. 5,978,307, 5,982,700 and 5,999,478 disclose memory buffers having fast fall-through capability. These memory buffers contain a tri-port memory array of moderate capacity having nonlinear columns of tri-port cells therein which collectively form four separate registers, and a substantially larger capacity supplemental memory array (e.g., DRAM array) having cells therein with reduced unit cell size. The tri-port memory array has a read port, a write port and a bidirectional input/output port. The tri-port memory array communicates internally with the supplemental memory array via the bidirectional input/output port and communicates with external devices (e.g., peripheral devices) via the read and write data ports. Efficient steering circuitry is also provided by a bidirectional crosspoint switch that electrically couples terminals (lines IO and IOB) of the bidirectional input/output port in parallel to bit lines (BL and BLB) in the supplemental memory array during a write-to-memory time interval and vice versa during a read-from-memory time interval. Commonly assigned U.S. Patent No. 6,546,461 also discloses FIFO memory devices that use multiple multi-port caches to support high rate reading operations. In order to increase the capacity of FIFO memory devices, multiple FIFO memory devices may be cascaded in a depth expansion configuration. As illustrated by FIG. 1A, a pair of FIFO memory devices may be configured to provide a higher capacity FIFO system 10. In this system 10, both devices operate in a conventional first-word fall-through (FWFT) mode. When disposed in the FWFT mode (pin FWFT = Vdd), the output ready pin (/OR) is used to indicate whether or not there is valid data at the data outputs (Qn) and the input ready pin (/IR) is used to indicate whether or not a FIFO memory device has any free space to support a writing operation. In the FWFT mode, the first word written to an empty FIFO memory device goes directly to the corresponding data outputs (Qn) after three rising edges of the read clock (RCLK) and any requirement that the read enable signal (/REN) be low to produce output data is not necessary. The FIFO memory device on the left side of FIG. 1A has a write interface and a read interface. The write interface receives a write clock signal WCLK, a write enable signal (/WEN) and input data (Dn) and generates the input ready flag (/IR). The read interface receives a read clock signal RCLK and a read enable signal (/REN) and generates an output ready flag (/OR) and output data (Qn). This output ready flag (/OR) may be used as the write enable input signal (/WEN) to the next stage in the cascaded arrangement. The read interface of the left FIFO memory device is electrically coupled to a write interface of the FIFO memory device on the right side of FIG. 1A and the read and write clock signal pins at these interfaces receive a transfer clock (TRANSFER CLOCK). This transfer clock may be an independent clock signal or may constitute the write clock signal or read clock signal. A transfer clock signal operating at maximum frequency is preferred. However, if the write or read clock signal is used in place of the transfer clock signal, then the read or write clock signal having the higher frequency should be used. The read interface of the right FIFO memory device can be electrically coupled to a downstream peripheral device (not shown) or other device or system. Unfortunately, the ability to increase the capacity of FIFO memory devices operating in the FWFT mode of operation does not translate to FIFO memory devices that are configured to operate in standard mode, which is another conventional mode of operation. This is because an empty flag (/EF) generated at an output of a FIFO memory device in standard mode may not be used as a write enable signal (/WEN) to the next stage in a cascaded arrangement, because there is a one cycie timing difference between the empty flag (/EF) generation and the output ready flag (/OR) generation when a FIFO memory device is disposed in the standard mode and FWFT mode, respectively. This one cycle difference in flag generation precludes reliable operation of a depth expansion arrangement of FIFO memory devices when they are disposed in the standard mode. Thus, as illustrated by FIG. 1 B, a FIFO memory device 12 that is disposed in a conventional standard mode (pin FWFT = GND) cannot be arranged in a depth expansion configuration. Accordingly, notwithstanding the above described FIFO memory devices, there continues to be a need for FIFO memory devices having enhanced features, including those that enable greater flexibility when designing systems requiring greater memory capacity. Summary of the Invention Integrated circuit devices according to some embodiments of the present include a first-in first-out (FIFO) memory chip that is configured to support a pair of hybrid operating modes that enable the FIFO memory chip to be depth-expandable with other FIFO memory chips in a collective standard mode of operation. This pair of hybrid operating modes includes a first hybrid mode that supports a write interface configured in standard mode and a read interface configured in first-word fall-through (FWFT) mode. The second hybrid mode supports a write interface configured in FWFT mode and a read interface configured in standard mode. These first and second hybrid mode eliminate the need to use an empty flag (/EF) associated with a read interface of an upstream device as a write enable input (/WEN) to a FIFO chip in the next stage in a depth cascaded arrangement. The first hybrid mode supports a write interface having a full flag pin (/FF) that designates when the FIFO memory chip is full and a read interface having an output ready pin (/OR) that designates when the FIFO memory chip has at least one entry therein. The second hybrid mode supports a write interface having an input ready pin (/IR) that designates when the FIFO memory chip can accept additional entries and a read interface having an empty flag pin (/EF) that designates when the FIFO memory chip is empty. The FIFO memory chip also has an input pin that is responsive to a standard depth expansion mode signal (IDEM). This pin operates with a FWFT pin to set one of four operating modes within the chip: full standard, full FWFT, first hybrid and second hybrid. Integrated circuit memory devices according to other embodiments of the present invention include a quad-port cache memory device and a higher capacity supplemental memory device. These memory devices operate collectively as high speed buffer memory devices having fast fall through capability and extended data capacity. These devices do not require complex arbitration circuitry to oversee reading and writing operations. In some cases, the supplemental memory device may be an embedded on-chip memory device or a separate off-chip memory device. Other embodiments of the present invention include buffer memory devices that support bus matching and variable data bus widths. These memory devices include a memory array having a page of multi-port memory cells therein that spans at least X columns and Y rows. The page of memory cells is configured to support writing and reading of first data vectors to and from the X columns and writing and reading of second data vectors to and from the Y rows, where X and Y are unequal integers. In some of these embodiments, the first data vectors are Y-bit words and the second data vectors are X-bit words (e.g., Y=72 and X=36 in a page having 2592 (=72x36) multi-port memory cells) and the multi-port memory cells are quad-port memory cells. In other ones of these embodiments, the memory devices are first-in first-out (FIFO) memory devices. Such FIFO memory devices may include a first cache memory device having a first page of quad-port memory cells therein. This first page is configured to support writing and reading of FIFO vectors to and from columns in the first page and writing and reading of memory vectors to and from rows in the first page, with each of the memory vectors including one bit of data from each of the FIFO vectors and vice versa. These memory vectors may have widths that are compatible with the bus widths associated with off-chip supplemental memory devices (e.g., DRAM, SRAM, etc.) that operate with the first cache memory device to provide a large capacity FIFO memory device. The FIFO memory device may also include a second cache memory device that is configured to operate in tandem with the first quad-port cache memory device so that FIFO write (and read) operations periodically switch back-and-forth between the first cache memory device and the second cache memory device. Error detection and correction circuitry may also be provided within the FIFO memory device. In particular, a check bit generation circuit may be provided that is configured to receive outgoing memory vectors from the first cache memory device. An error detection and correction circuit may be provided that is configured to provide incoming memory vectors to the first cache memory device. These incoming memory vectors are checked for errors (e.g., soft errors) and, if necessary, corrected. Methods of operating memory devices according to these embodiments of the present invention may include writing a page of FIFO data by transferring a plurality of first data vectors from a first bus to a respective plurality of columns of multi-port memory cells within a memory array. When the memory array has been filled, the page of FIFO data is transferred to a higher capacity supplemental memory. This transfer step may be performed by reading a plurality of second data vectors from respective rows of the memory array to a second bus. The first and second data buses may be configured to have different widths. The width of the second data bus may also be varied depending upon application. In some applications, the width of the first data bus may match the number of rows withing the memory array and the width of the second data bus may match the number of columns within the memory array. Thus, each of the plurality of second data vectors may include a data bit from each of the plurality of first data vectors and vice versa. Still further embodiments of the invention may include operating a first-in first-out (FIFO) memory device by writing a page of data into the FIFO memory device. This writing step may be performed by transferring a first plurality of FIFO data vectors into a respective plurality of columns of multi-port memory cells within a first cache memory array. Each of these FIFO data vectors may comprise one or more words that are received by the FIFO memory device during a respective write clock interval. Because the first cache memory array may have a relatively small capacity, a copying step is preferably performed. This copying step includes copying a page of data from the first cache memory array into an embedded or external RAM array by transferring a plurality of memory data vectors from respective rows of the first cache memory array to the RAM array. These memory data vectors may be narrower than the FIFO data vectors, to accord with the various bus constraints associated with the external RAM array. In particular, the memory data vectors may be configured so that each of the plurality of memory data vectors within a copied page includes a respective data bit from each of the plurality of FIFO data vectors. Thus, the embedded or external RAM array may store a plurality of words that comprise bits of interleaved data from multiple distinct words that are received by the FIFO during consecutive write clock intervals. These operating methods may also include transferring the page of data back from the RAM array into a second cache memory array within the FIFO memory device. Then, in response to FIFO read operations, the page of data may be read from the second cache memory array by sequentially transferring a second plurality of FIFO data vectors from respective columns of multi-port memory cells within the second cache memory array to an output data bus. Here, the step of transferring the page of data from the RAM array into the second cache memory array may include writing a plurality of memory data vectors into rows of the second cache memory array. In still further embodiments of the present invention, the error detection and correction operations may be performed so that any error detection and/or correction latency is hidden from the FIFO read operations. In these embodiments, first and second memory devices may be provided that are electrically coupled together by a first data path and a second data path. This first data path is configured to transfer write data from the first memory device to the second memory device when the first memory device is undergoing write operations. The transferred write data may be supplemented with check bit data provided by a check bit generator within the first data path. In contrast, the second data path is configured to transfer read data from the second memory device to the first memory device when the first memory device is undergoing read operations. An error detection and correction (EDC) circuit is provided within the second data path. The EDC circuit is configured to check and correct "next-to- read" data in the second data path using operations that hide error correcting latency from the read operations. Further according to these embodiments, a FIFO memory device having EDC circuits therein may be provided. This FIFO memory device may include a multi-port cache memory device within a FIFO controller and a separate high capacity supplemental memory, which may be off-chip relative to the FIFO controller. The multi-port cache memory device has a write port that is configured to receive write data during FIFO write operations and a read port that is configured to supply read data during FIFO read operations. The supplemental memory device is configured to retain next-to-read FIFO data that was previously written into the multi-port cache memory device during the FIFO write operations. A data transfer control circuit may also be provided. This data transfer control circuit is configured to provide the multi-port cache memory device with a copy of the next-to-read FIFO data that is error checked and corrected during memory-to-cache data transfer operations, which advantageously hide error correcting latency from the FIFO read operations. Thus, the FIFO read operations may be performed without incurring a latency penalty associated with checking and correcting one or more errors within the FIFO data that is being transferred from the supplemental memory device to the FIFO controller. According to further aspects of this embodiment, the multi- I port cache memory device may include at least first and second quad-port memory devices, and the data transfer control circuit may include a first error detection and correction circuit that is coupled to the first quad-port memory device and a second error detection and correction circuit that is coupled to the second quad-port memory device. The data transfer control circuit may further include a first check bit generation circuit that is coupled to the first quad-port memory device and a second check bit generation circuit that is coupled to the second quad-port memory device. Brief Description of the Drawings FIG. 1A illustrates a pair of conventional FIFO memory devices that are arranged in a depth expansion configuration and support conventional first-word fall-through (FWFT) mode operation. FIG. 1 B illustrates a conventional FIFO memory device that is disposed in a conventional standard mode operation. FIG. 2 is a block diagram of a FIFO memory device having a FIFO controller and off-chip supplemental memory device therein, according to embodiments of the present invention. FIG. 3A is an electrical schematic of a quad-port memory cell that may be used in the FIFO controller illustrated by FIG. 2. FIG. 3B is an electrical schematic of an embodiment of a buffer, which may be used as illustrated by FIG. 3A. FIG. 4 is a block diagram of a page of quad-port memory cells that may be used in the quad-port cache illustrated by FIG. 2. FIG. 5 is a block diagram that illustrates a read/write data path associated with the FIFO controller of FIG. 2. FIG. 5 includes FIGS. 5A and 5B. FIG. 6A is a flow diagram that illustrates request signal arbitration operations according to embodiments of the present invention. FIG. 6B is a detailed flow diagram that illustrates a portion of the request signal arbitration operations of FIG. 6A. FIG. 6C is a detailed flow diagram that illustrates a portion of the request signal arbitration operations of FIG. 6A. FIG. 6D is a detailed flow diagram that illustrates a portion of the request signal arbitration operations of FIG. 6A. FIG. 7A is a block diagram of a plurality of FIFO memory devices that are arranged in a depth expansion configuration and collectively support standard mode operation. FIG. 7B is a block diagram of a plurality of FIFO memory controllers that are arranged in a depth expansion configuration and collectively support standard mode operation. FIG. 7B includes FIGS. 7B_1 and 7B_2. FIG. 8 is an electrical schematic of a quad-port cache memory cell according to additional embodiments of the present invention. FIGS. 9A-9E are block diagrams of integrated circuit memory devices according to additional embodiments of the present invention. Description of Preferred Embodiments The present invention now will be described more fully herein with reference to the accompanying drawings, in which preferred embodiments of the invention are shown. This invention may, however, be embodied in many different forms and should not be construed as being limited to the embodiments set forth herein; rather, these embodiments are provided so that this disclosure will be thorough and complete, and will fully convey the scope of the invention to those skilled in the art. Like reference numerals refer to like elements throughout and signal lines and signals thereon may be referred to by the same reference characters. Signals may also be synchronized and/or undergo minor boolean operations (e.g., inversion) without being considered different signals. The suffix B (or prefix symbol "/") to a signal name may also denote a complementary data or information signal or an active low control signal, for example. A buffer memory device according to embodiments of the present invention may use a combination of integrated circuit memory devices that operate collectively as a FIFO memory device. One exemplary embodiment of a FIFO memory device 100 having a multi-chip configuration is illustrated by FIG. 2. This FIFO memory device 100 includes a FIFO controller 102, which may be formed on a first integrated circuit chip, and a supplemental memory device, which may be formed on a second integrated circuit chip. The supplemental memory device is illustrated as a dual data rate (DDR) memory device 140. In some embodiments of the present invention, the DDR memory device 140 may be a dynamic random access memory (DRAM) device or a static random access memory (SRAM) device. Memory devices that do not provide DDR operation may also be used as a supplemental memory device. For purposes of discussion herein, the DDR memory device 140 will be treated as a DRAM memory device that requires periodic refreshing of entries therein. The FIFO controller 102 includes an input block 12', a quad-port cache control circuit 14' and an output block 16'. As illustrated, the input block 12' receives input data (DATA IN) having a first data width and provides a quad-port cache 130 within FIFO write data (DATA INPUT) having a second data width (shown as 144 bits/word). The first data width may vary depending on application. Each 144-bit write word may be formed as sixteen 9-bit words, eight 18-bit words, four 36-bit words, twelve 12-bit words, six 24-bit words or three 48-bit words. The output block 16' is also configured to map each 144-bit read word (DATA OUTPUT) into a corresponding plurality of output data words (DATA OUT). As explained more fully hereinbelow, the quad-port cache control circuit 14' performs various control operations, including operations to generate the DIRECTPATH and MEMPATH control signals. These control signals are provided to multiplexer circuitry within the quad-port cache 130. The quad-port cache 130 is illustrated as including two pages (e.g., two arrays) of quad-port cache memory cells. These two pages are illustrated as QPCACHE0 132a and QPCACHE1 132b. Each page is illustrated as having 72 rows and 36 columns (i.e., 72x36). Based on this configuration, each 144-bit write word (DATA INPUT) that is received by the quad-port cache 130 may be written into either QPCACHE0 or QPCACHE1 as two consecutive x72 FIFO vectors. Similarly, each 144-bit read word (DATA OUTPUT) that is received from the quad-port cache 130 may result from operations to read two adjacent x72 FIFO vectors from either QPCACHE0 or QPCACHE1. A data transfer control circuit 215 is electrically coupled between a bidirectional output port of the FIFO controller 102 and various ports of the quad-port cache 130. The bidirectional output port of the FIFO controller 102 is illustrated as including a bidirectional bus, which is capable of handling x16, x32 and x36 data words that can be written to or read from the DDR memory device 140. Data words having a width of 64 bits (x64) may also be provided in the event the quad-port cache 130 is a 72x36x2x2 device. The data transfer control circuit 215 is configured to perform various error detection and correction operations. In particular, the data transfer control circuit 215 includes a first check bit generation circuit 210A and a second check bit generation circuit 210B. When enabled, the first check bit generation circuit 210A operates to generate a plurality of check bits for each word that is transferred from QPCACHE0 132a to the DDR memory device 140 during a cache-to-memory data transfer operation. Similarly, the second check bit generation circuit 210B operates to generate a plurality of check bits for each word that is transferred from QPCACHE1 132b to the DDR memory device 140 during a cache-to- memory data transfer operation. These check bits may support the detection and correction of one (or more) errors when the corresponding word is read back from the DDR memory device 140 during a memory-to- cache data transfer operation. In some cases, the FIFO controller 102 may have a mode of operation that does not include check bit generation during a cache-to-memory data transfer operation, or error detection and correction during a memory-to-cache data transfer operation. Accordingly, circuitry may be provided so that both the first check bit generation circuit 210A and the second check bit generation circuit 210B may be bypassed. Operations and circuitry fo generating check bits for a given word length are well known to those skilled in the art and need not be further described herein. The data transfer control circuit 215 further includes a first error detection and correction (EDC) circuit 220A, which provides verified data (without check bits) to QPCACHE0 132a, and a second error detection and correction circuit 220B, which provides verified data (without check bits) to
QPCACHE1 132b. In some cases, the FIFO controller 102 may have a mode of operation that does not include error detection and correction. Thus, circuitry may be provided so that both the first error detection and correction circuit 220A and the second error detection and correction circuit 220B may be bypassed. Additional embodiments of the FIFO controller
102 may include the error detection and correction circuits 220A and 220B, but omit (or bypass) the check bit generation circuits 210A and 210B. These embodiments may be useful in those applications where the input data (DATA IN) received by the input block includes its own check bit information. In this case, the EDC circuits 220A and 220B may be configured to pass check bit information to the cache. Each of the quad-port bit cells (QP-BC) within QPCACHEO 132a and QPCACHE1 132b may be configured as illustrated by the bit cell 130a of FIG. 3A. The quad-port bit cell 130a has four ports, which include two unidirectional input ports and two unidirectional output ports. The input ports include a "data input" port (DATA INPUT), which receives FIFO write data from the input block 12', and a "from memory" port (FROM MEMORY), which receives "next-to-read" data that is being transferred from the DDR memory device 140 to the quad-port cache 130 during a memory-to-cache data transfer operation. This next-to-read data may be error checked and corrected by the error detection and correction circuits
220A or 220B. Alternatively, the incoming next-to-read data may bypass the error detection and correction circuits 220A and 220B. The two output ports include a "to memory" port (TO MEMORY), which is active when a page of recently written data is being transferred from the quad-port cache 130 to the DDR memory device 140 during a cache-to-memory data transfer operation, and a "data output" port (DATA OUTPUT), which is configured to transfer FIFO read data from either QPCACHEO 132a or QPCACHE1 132b to the output block 16'. A data input register and memory data read register are provided to store the FIFO write data and the "next-to-read" data received from the
DDR memory device 140, respectively. The data input register is illustrated as including a transmission gate, which is responsive to a write address, and a latch. - Similarly, the memory data read register is illustrated as including a transmission gate, which is responsive to an enable signal (shown as FROM MEMORY ENABLE) and a latch. A 2-input data multiplexer (DATA MUX) is also provided. The data multiplexer can be configured so that the FIFO write data is directly passed (as FIFO read data) to the data output port (DATA OUTPUT), to thereby support fast fall through capability. This configuration is achieved by setting the direct path signal (DIRECTPATH) to an active high level. Alternatively, the 2-input data multiplexer can be configured so that data retrieved from the DDR memory device 140 is available for reading at the data output port. This latter configuration is achieved by setting the memory path signal (MEMPATH) to an active high level. The output of the data multiplexer is connected to an inverting latch 226. An output of the latch 226 is electrically coupled to an input of a data output buffer 224, which is responsive to a read address (READ ADDRESS). The data output register 224 has a pair of complementary outputs (shown as Q and QB) that are provided to a driver device 228b. A memory write path is also provided within the quad-port bit cell 130a. This memory write path extends from an output of the data input register to an input of a memory data write buffer 222. The memory write path also includes an inverter and a driver device 228a, which is connected to complementary outputs of the memory data write buffer 222. The memory data write buffer 222 is responsive to a memory enable signal (TO MEMORY ENABLE). When the memory enable signal is set to an active high level, FIFO write data is passed from the data input register to the "to memory" port (TO MEMORY). Thus, regardless of how the data multiplexer (DATA MUX) is set, the receipt of an active memory enable signal will enable transfer of FIFO write data from the quad-port cache 130 to the DDR memory device 140. FIG. 3B is an electrical schematic of a register that may be used as the memory data write buffer 222 and the data output buffer 224. The register is illustrated as including PMOS transistors P1-P3 and NMOS transistors N1-N3. When an input signal (D) is set to a high level, NMOS transistor N1 is turned on and the complementary output QB is pulled (or held) low. If the output enable signal OE is set high to an active level, then NMOS transistor N3 and PMOS transistor P3 will both be turned on and the true output Q will be pulled low by NMOS transistor N1. When this occurs, both the true and complementary outputs Q and QB will be set low and the output of the driver device 228b will be pulled high to reflect the high level of the input signal D. However, if the input signal D is set to a low level when the output enable signal OE is set high, then PMOS transistor P1 will be turned on and the true output will be pulled high. The complementary output QB will also be pulled high by NMOS transistor N3 and PMOS transistor P3. This will cause the output of the driver device 228b to be pulled low. Finally, when the output enable signal OE is set low, the true output Q will be pulled high and the complementary output QB will be pulled low and the output of the driver device 228b will be disposed in a high impedance state. FIG. 4 illustrates an arrangement of quad-port bit cells (QP_BC) within a page of the quad-port cache 130. Thus, as illustrated, QPCACHEO
132a and QPCACHE1 132b may each contain a total of 2592 bit cells that span 72 rows and 36 columns. Each of the 36 columns of bit cells is configured to retain a respective FIFO vector having a data width equal to 72 bits. Each of the 72 rows of bit cells is configured to retain a respective memory vector having a maximum data width equal to 36 bits. The data input port (DATA INPUT) and the data output port (DATA OUTPUT) illustrated in the bit cell 130a of FIG. 3A correspond to the FIFO data input port (FIFO DATA INPUT (x144)) and FIFO data output port (FIFO DATA OUTPUT (x144)) illustrated in FIG. 4. Accordingly, each FIFO write word (having 144 bits) can be written into two adjacent columns within the illustrated page of quad-port cells and each FIFO read word can be read from two adjacent columns. This means that a maximum of 18' FIFO write words (144 bits/word) can be written into an empty page before it becomes full. This maximum value of 18 FIFO write words is reduced to 16 FIFO write words in the event the DDR memory device 140 is configured to accept 32-bit words instead of 36-bit words. These 16 FIFO write words may be treated as filling the 32 leftmost columns in the illustrated page, whereas 18 FIFO write words may be treated as filling all 36 columns of the illustrated page. The "to memory" port (TO MEMORY) and the "from memory" port
(FROM MEMORY) illustrated in the bit cell 130a of FIG. 3A correspond to the "to memory" port (TO MEMORY (x64, x72)) and the "from memory" port (FROM MEMORY (x64, x72)) illustrated at the top FIG. 4. Accordingly, in the event the DDR memory device 140 accepts 32-bit words, then a maximum of 72 32-bit memory vectors (corresponding to 36 64-bit words) can be transferred out of the page during a cache-to-memory data transfer operation. This cache-to-memory data transfer operation may include passing the page of data through one of the check bit generation circuits (CB GEN) illustrated by FIG. 2. Alternatively, if the DDR memory device 140 accepts 36-bit words, then a maximum of 72 36-bit memory vectors (corresponding to 36 72-bit words) can be transferred out of the page during a cache-to-memory data transfer operation. The same relationships apply to the filling of a page of quad-port bit cells during memory-to-cache data transfer operations (i.e., when a page is being loaded with next-to-read data from the DDR memory device 140). This memory-to-cache data transfer operation may include passing the page of data through one of the error detection and correction circuits (EDC) illustrated by FIG. 2. By configuring the page of cache according to the layout of FIG. 4, efficient bus matching characteristics may be achieved using data rotation operations (horizontal-to-vertical and vertical-to-horizontal). For example, the illustrated page enables 32 or 36 x72 FIFO vectors to be written into and read from columns of the page during FIFO write and read operations, respectively. Moreover, the page enables 72 x32 or x36 (or other widths) memory vectors to be read from or written to rows of the page during cache-to-memory and memory-to-cache data transfer operations, respectively. These operations represent vertical transfer operations. Because of the data rotation operations, each of the memory vectors will retain one bit of data from a corresponding x72 FIFO vector. Accordingly, each filled row of memory cells within the DDR memory device 140 may retain a memory vector that contains one bit of data from 32 or 36 distinct
FIFO vectors. The cache-to-memory and memory-to-cache data transfer operations require the DDR memory device 140 to undergo write and read operations, respectively. The timing of these operations is controlled by the FIFO controller 102. Moreover, in the event the DDR memory device 140 is a DRAM device, the FIFO controller 102 may also be required to control the timing of periodic refresh operations within the DRAM device. The timing of these operations: DDR read, DDR write and DDR refresh, may occur in any sequence and may repeatedly change sequence and frequency throughout operation. For example, if the FIFO memory device 100 is undergoing many write operations but very few read operations during a particular time interval, then the DDR memory device 140 will undergo many consecutive write and refresh operations that are interleaved, but very few read operations. Alternatively, if the FIFO memory device 100 is undergoing many read operations but very few write operations during a particular time interval, then the DDR memory device 140 will undergo many consecutive read and refresh operations, but very few write operations. Moreover, whereas the frequency of the refresh operations may be a dictated by particular requirements of the DDR memory device 140, the frequency, timing and order of the write and read operations will be influenced by the frequency at which the FIFO memory device 100 is accessed by external devices (not shown). This precludes the FIFO controller 102 from controlling all aspects of the read and write request signal generation. FIGS. 6A-6D illustrate operations to arbitrate the timing of when read, write and refresh commands are issued to the DDR memory device 140, in response to the asynchronous generation of read, write and refresh requests within the FIFO controller 102. In FIG. 6A, request detection and arbitration operations 400 are performed in response to any order or timing of read, write and refresh requests. As illustrated by Blocks 402 and 404, checks are initially made to arbitrate between read, write and refresh requests in order to detect which request came first in time. If a read request was generated first, then operations associated with Block 430 are performed. However, if a write request was generated first, then operations associated with Block 410 are performed. Finally, if a refresh request was generated first, then operations associated with Block 420 are performed. As illustrated by Block 410 in FIG. 6A, if a write request is detected as a first request, then a write command is issued to the DDR memory device 140 and write operations are commenced. These write operations represent a portion of the cache-to-memory data transfer operations. Following detection of the write request, a continuous check is made to determine whether any other requests (read or refresh) are made prior to completion of the write operations. If no other requests are made prior to completion, then control is passed to the request detection and arbitration operations, Block 400. However, if another request is made, then operations associated with the additional request(s) are performed after completion of the write operation. The operations performed by Block 410 are more fully illustrated by FIG. 6B. As illustrated by Block 430 in FIG. 6A, if a read request is detected as a first request, then a read command is issued to the DDR memory device 140 and read operations are commenced. These read operations represent a portion of the memory-to-cache data transfer operations.
Following detection of the read request, a continuous check is made to determine whether any other requests (write or refresh) are made prior to-, completion of the read operations. If no other requests are made prior to completion, then control is passed to the request detection and arbitration operations, Block 400. However, if another request is made, then operations associated with the additional request(s) are performed after completion of the read operation. The operations performed by Block 430 are more fully illustrated by FIG. 6C. As illustrated by Block 420 in FIG. 6A, if a refresh request is detected as a first request, then a refresh command is issued to the DDR memory device 140 and refresh operations are commenced within the DDR memory device 140. Following detection of the refresh request, a continuous check is made to determine whether any other requests (write or read) are made prior to completion of the refresh operations. If no other requests are made prior to completion, then control is passed to the request detection and arbitration operations, Block 400. However, if another request is made, then operations associated with the additional request(s) are performed after completion of the refresh operation. The operations performed by Block 420 are more fully illustrated by FIG. 6D. FIG. 6B is a flow diagram that illustrates detection of a write request as a first request followed by various read and refresh request timing combinations. In response to detection of a write request as a first request, a write command is issued by the FIFO controller 102 and write operations are performed as part of a cache-to-memory data transfer. If the write operations are completed before either a read or refresh request is detected, then control is returned to Block 400. This sequence is illustrated at the top of FIG. 6B, where write operations are performed and then a WRITE_done signal is generated to signify completion of the write operations. Referring now to the left side of FIG. 6B, a read request may be received prior to completion of the write operations. If this occurs, then the read request is queued while further write operations are performed. If the write operations are completed prior to receipt of any refresh request, then read operations will be commenced. If the read operations are completed prior to receipt of any refresh request, then a READ_done signal is generated to signify completion of the read operations and then control is returned to Block 400. However, if a refresh request is received prior to completion of the read operations, then the refresh request will become queued until such time as the read operations are completed. Once the read operations have been completed and the READ_done signal has been issued, the refresh operations will be performed. Upon completion of the refresh operations, a REFRESH_done signal is generated and control is returned to Block 400. On the other hand, if a read request is received during write operations and then followed by a refresh request prior to completion of the write operations, the refresh and read requests will both be queued and the queued refresh request will have higher queue priority. Thus, upon completion of the write operations, refresh operations will be commenced while the earlier received read request remains queued because it has lower queue priority. This lower queue priority of the read request (and any write request) relative to a queued refresh request enables the refresh operations to be performed as soon as possible after a refresh request has been made. This insures that any requested refresh operation is performed in a timely manner so that data is not lost within the DDR memory device 140 for failure to timely refresh. The generation of a REFRESH_done signal signifies completion of the refresh operations and prompts commencement of operations responsive to the remaining queued read request. Referring now to the right side of FIG. 6B, a refresh request may be received prior to completion of the write operations. If this occurs, then the refresh request is queued while further write operations are performed. If the write operations are completed prior to receipt of any read request, then refresh operations will be commenced. If the refresh operations are completed prior to receipt of any read request, then a REFRESH_done. signal is generated to signify completion of the refresh operations and control is returned to Block 400. On the other hand, if a refresh request is received and then followed by a read request prior to completion of the write operations, the refresh and read requests will both be queued and the queued read request will have lower queue priority. Thus, upon completion of the write operations, refresh operations will be commenced while the later received read request remains queued. Once the refresh operations have been performed and a REFRESH_done signal is generated, then the read operations will be performed in response to the queued read request. Control is returned to Block 400 upon generation of the READ_done signal. FIG. 6C is a flow diagram that illustrates detection of a read request as a first request followed by various write and refresh request timing combinations. In response to detection of a read request as a first request, a read command is issued by the FIFO controller 102 and read operations are performed as part of a memory-to-cache data transfer. If the read operations are completed before either a write or refresh request is detected, then control is returned to Block 400. This sequence is illustrated at the top of FIG. 6C, where read operations are performed and then a
READ_done signal is generated to signify completion of the read operations. Referring now to the left side of FIG. 6C, a write request may be received prior to completion of the read operations. If this occurs, then the write request is queued while further read operations are performed. If the read operations are completed prior to receipt of any refresh request, then write operations will be commenced upon completion of the read operations. If the write operations are completed prior to receipt of any refresh request, then a WRITE_done signal is generated to signify completion of the write operations and then control is returned to Block
400. However, if a refresh request is received prior to completion of the write operations, then the refresh request will become queued until such time as the write operations are completed. Once the write operations have been completed and the WRITE_done signal has been issued, the refresh operations will be performed. Upon completion of the refresh operations, a REFRESH_done signal is generated and control is returned to Block 400. On the other hand, if a write request is received during read operations and then followed by a refresh request prior to completion of the read operations, the refresh and write requests will both be queued and the queued refresh request will have higher queue priority. Thus, upon completion of the read operations, refresh operations will be commenced while the earlier received write request remains queued because it has lower queue priority. The generation of a REFRESH_done signal signifies completion of the refresh operations and prompts commencement of operations responsive to the remaining queued write request. Referring now to the right side of FIG. 6C, a refresh request may be received prior to completion of the read operations. If this occurs, then the refresh request is queued while further read operations are performed. If the read operations are completed prior to receipt of any write request, then refresh operations will be commenced. If the refresh operations are completed prior to receipt of any write request, then a REFRESH_done signal is generated to signify completion of the refresh operations and control is returned to Block 400. On the other hand, if a refresh request is received and then followed by a write request prior to completion of the read operations, the refresh and write requests will both be queued and the queued write request will have lower queue priority. Thus, upon completion of the read operations, refresh operations will be commenced while the later received write request remains queued. Once the refresh operations have been performed and a REFRESH_done signal is generated, then the write operations will be performed in response to the queued write request.
Control is returned to Block 400 upon generation of the WRITE_done signal. FIG. 6D is a flow diagram that illustrates detection of a refresh request as a first request followed by various write and read request timing combinations. Because the read and write requests have equivalent queue priorities, the right side of FIG. 6D, which follows a write request being received after the refresh request, is similar to the left side of FIG. 6D, which follows a read request being received after the refresh request. In the flow diagram of FIG. 6D, the read and write requests are queued so that operations associated with the earlier of the two received requests is performed before operations associated with the later received request are performed. Thus, in FIG. 6D, if a REFRESH_done signal is generated prior to receipt of any read or write request, then control is returned to Block 400 upon completion of the refresh operations. However, if only a write request is received prior to completion of the refresh operations, then the write request is queued and write operations are performed upon completion of the refresh operations (i.e., when the REFRESH_done signal is generated). If no read request is received while the write operations are being performed, then control will be passed to Block 400 upon completion of the write operations, as illustrated by the right side of FIG. 6D. But, if a read request is received prior to completion of the write operations, then read operations will be performed in response to generation of the WRITE_done signal. Finally, if a write request and then a read request are queued prior to completion of the refresh operations, then the write operations will be performed in response to generation of the REFRESH_done signal and read operations will be performed in response to generation of the WRITE_done signal. In contrast, if only a read request is received prior to completion of the refresh operations, then the read request is queued and read operations are performed upon completion of the refresh operations (i.e., when the REFRESH_done signal is generated). If no write request is received while the read operations are being performed, then control will be passed to Block 400 upon completion of the read operations, as illustrated by the left side of FIG. 6D. But, if a write request is received prior to completion of the read operations, then write operations will be performed in response to generation of the READ_done signal. Finally, if a read request and then a write request are queued prior to completion of the refresh operations, then the read operations will be performed in response to generation of the REFRESH_done signal and write operations will be performed in response to generation of the READ_done signal. The read operations from the DDR memory device 140 represent a subset of the memory-to-cache data transfer operations and the memory- to-cache data transfer operations represent a subset of the operations to read FIFO vectors from the quad-port cache 130. During the memory-to- cache data transfer operations, pages of read data from the DDR memory device 140 are routed through the error detection and correction (EDC) circuits 220A and 220B in an alternating sequence that is 180 degrees out- of-phase relative to the operations to read FIFO vectors from QPCACHEO 132a and QPCACHE1 132b, which are also performed in an alternating back-and-forth sequence between the pages of cache. This out-of-phase relationship enables the latency associated with passing read data through the first EDC circuit 220A or the second EDC circuit 220B to be hidden entirely from the operations to read FIFO vectors from the quad-port cache 130. For example, when reading FIFO vectors from QPCACHEO 132a, the memory vectors within QPCACHE1 132b are being filled with next-to-read data that has been error checked. Similarly, when reading FIFO vectors from QPCACHE1 132b, the memory vectors within QPCACHEO 132a are being filled with next-to-read data that has been error checked. Thus, any EDC latency associated with filling memory vectors in one page of cache during a memory-to-cache data transfer operation is hidden from operations to read FIFO vectors from another page of cache. Aspects of the FIFO controller 102 of FIG. 2 will now be described more fully with respect to FIG. 5. In particular, FIG. 5 illustrates a FIFO controller 102' having various arbitration control circuits and memory interface and control circuits therein. As illustrated by FIG. 5A, a multi- request arbitration circuit 500 is provided that generates a plurality of start signals: REFRESH_START, MEMREAD_START and MEMWRITE_START. These start signals (commands) are received by a memory interface state machine 600 and the quad-port cache control circuit 14'. The refresh start signal (REFRESH_START) is generated in response to a refresh request signal (REFCLK) that is received by the arbitration circuit 500. The refresh request signal is generated by a refresh counter 502. This refresh counter is responsive to a clock signal (shown as CLK33M) and an active low global reset signal RSL. The clock signal CLK33M may be an input clock signal having a frequency of 33.33 MHz. This clock signal may be used with a phase locked loop (PLL), now shown, to generate another clock signal (e.g., MEMCLK) having a frequency of 133.33 MHz or 166.67 MHz, for example. The arbitration circuit 500 is responsive to a read request signal (READ_REQUEST) and a write request signal (WRITE_REQUEST), which are generated by a FIFO control circuit 15. The arbitration circuit 500 is synchronized with a clock signal, shown as MEMCLOCK. This clock signal MEMCLOCK may have a frequency of about 166.67 MHz in some applications. The arbitration circuit 500 is also responsive to various signals that reflect completion of read, write and refresh operations. These "completion" signals are illustrated as WRITE_DONE, READ_DONE and
REF_DONE. The memory interface state machine 600 is configured to generate memory control signals (MEMORY_CONTROL) and data control signals (DATA_CONTROL) in response to the start signals. Moreover, the memory interface state machine 600 is configured to generate the
WRITE_DONE, READ_DONE and REFRESH_DONE signals as active low pulses upon completion of the respective write, read and refresh operations. A memory interface control circuit 610 is also provided. This interface control circuit 610, which is responsive to the memory control signals, generates signals that are compatible with DRAM memory devices.
These signals are illustrated as ADDR<12:0>, which represents a 13-bit row address, BANK<1 :0>, which represents a bank select signal, and a plurality of single bit signals. These single bit signals are shown as a chip select signal (/CS), a column address strobe signal (/CAS), a write enable signal (/WE) and a row address strobe signal (/RAS). Different signals will be used in the event the DDR memory device 140 is an SRAM device. Referring now to FIG. 5B, the quad-port cache 130 and data transfer control circuit 215 are illustrated. The data transfer control circuit 215 includes the check bit generation circuits 210 and error detection and correction circuits 220 illustrated in FIG. 2 and a memory interface circuit 217 that is responsive to the data control signals (DATA_CONTROL). The memory interface circuit 217 is coupled to the DDR memory device 140 by a data bus (shown as DQ<63:0>) and data strobe bus (shown as DQS<7:0>). Referring now to FIG. 7A, a plurality of FIFO memory devices 600a- 600d (FIFO 0 - FIFO 3) are arranged in a depth expansion configuration according to embodiments of the present invention. These devices collectively define a FIFO memory system 600 that supports standard mode operation. As illustrated by the write interface of the system 600, which is shown as the write interface of the first FIFO memory device 600a, and the read interface of the system 600, which is shown as the read interface of the last FIFO memory device 600d, the system 600 interfaces with a data supplying device (i.e., write side source, not shown) and a data receiving device (i.e., read side source, not shown) via interfaces that support standard mode operation. In contrast, the intermediate FIFO memory devices 600b and 600c are configured to support first-word fall- through (FWFT) mode operation at both their write and read interfaces. To support communication between the first FIFO memory device 600a and the second FIFO memory device 600b, the read interface of the first FIFO memory device 600a is configured to support FWFT mode operation. Similarly, to support communication between the third FIFO memory device
600c and the fourth FIFO memory device 600d, the write interface of the fourth FIFO memory device 600d is configured to support FWFT mode operation. These memory devices may be configured as FIFO memory chips that are independently packaged or multiple chips may be arranged in a depth expansion configuration within a single integrated circuit package. Accordingly, in order for the FIFO memory devices 600a-600d to collectively support standard mode operation with respect to the data supplying device and the data receiving device, the first FIFO memory device 600a is set to support a first hybrid mode and the last FIFO memory device 600d is set to support a second hybrid mode. The first hybrid mode supports a write interface configured in standard mode and a read interface configured in FWFT mode and the second hybrid mode supports a write interface in FWFT mode and a read interface in standard mode. This first hybrid mode is achieved by setting the FWFT pin on the first FIFO memory device 600a to a logic 1 value (e.g., Vdd) and setting the standard depth expansion mode pin (IDEM) to a logic 1 value. This first hybrid mode prevents any conflict between the generation of an empty flag (/EF) associated with an upstream device and write enable pin (/WEN) associated with an adjacent downstream device, by replacing an empty flag generation associated with standard mode with an output ready flag generation associated with FWFT mode. The second hybrid mode is achieved by setting the FWFT pin on the last FIFO memory device 600d to a logic 0 value and setting the depth expansion mode pin IDEM pin on the last FIFO memory device to a logic 1 value. The second and third FIFO memory devices 600b and 600c are set in a full FWFT mode by setting the
FWFT pin to a logic 1 value and setting the IDEM pin to a logic 0 value. A FIFO memory device (not shown) may be set in full standard mode, where both write and read interfaces support standard mode, by setting the FWFT pin to a logic 0 value and setting the IDEM pin to a logic 0 value. A transfer clock signal (TRANSFER CLOCK) may be provided as an independent high frequency clock signal (e.g., 166.7 MHz) or may constitute the write clock signal (WCLK) or read clock signal (RCLK). If the write or read clock signal is used as the transfer clock signal, then the write or read clock signal having the higher frequency should be used for better system performance. Referring now to FIG. 7B, a plurality of FIFO memory controllers 600a' - 600d' are illustrated as being arranged in a depth expansion configuration. These FIFO memory controllers 600a' - 600d" may be configured in accordance with the memory controllers of FIGS. 2-5. These controllers 600a' - 600d" collectively define a FIFO memory system 600' that supports standard mode operation. As described above with respect to FIG. 7A, the first and last FIFO memory controllers 600a' and 600d' are configured in the first and second hybrid modes, respectively, and the intermediate FIFO memory controllers 600b' and 600c' are configured in the FWFT mode. Each FIFO memory controller 600a' - 600d' is electrically coupled to an external memory device using control and interface logic. These external memory devices 602a - 602d are shown as dual data rate (DDR) synchronous dynamic random access memory (SDRAM) devices, however, other devices may be used. The pins at the external memory interface are illustrated as conventional pins: clock signal pins CK and /CK, data strobe signal pins DQS, write enable pin /WE, column address strobe pin /CAS, row address strobe pin /RAS, data pins (DQ) and address pins (ADDR). These external memory devices may be configured to perform similar functions as embedded memory arrays within the FIFO memory devices 600a - 600d of FIG. 7A. As used herein and in the claims, the references to a FIFO memory device include FIFO memory devices having high capacity embedded memory and FIFO memory controllers that utilize external high capacity memory. The quad-port bit cell 130a of FIG. 3A may be configured using 42
MOS transistors, with two transistors being required by every transmission gate and every inverter and six transistors being required by each buffer. In some embodiments, this quad-port bit cell 130a may be replaced by the smaller quad-port bit cell 800 of FIG. 8, which is illustrated as including 19 transistors. This quad-port bit cell 800 is illustrated as including two dual- port SRAM memory elements. The first dual-port SRAM memory element is defined by NMOS access transistors N4-N7 and latch element L1 , which includes a pair of inverters connected in antiparallel. The output terminals of these inverters represent complementary storage nodes within the SRAM memory element. The second dual-port SRAM memory element is defined by NMOS access transistors N11-N14 and latch element L2, which includes another pair of inverters connected in antiparallel. The first dual-port SRAM memory element may undergo a write operation by driving a pair of FIFO WRITE bit lines FWBL and /FWBL with FIFO write data and turning on the NMOS access transistors N4-N5 by driving the FIFO WRITE word line to an active high level. This FIFO write operation corresponds to the operation to load the data input register in FIG. 3A. The second dual-port SRAM memory element may undergo a write operation by driving a pair of MEMORY READ bit lines MRBL and /MRBL with MEMORY READ data and turning on the NMOS access transistors N11-N12 by driving the MEMORY READ word line to an active high level. This write operation corresponds to the operation to load the memory data read register in FIG. 3A. During an operation to transfer FIFO write data from a quad-port cache memory array containing the bit cell 800 to a supplemental memory device (e.g., embedded memory or off-chip memory (e.g., DRAM memory chip)), the MEMORY WRITE word line is driven to an active high level. This transfers write data from the first dual-port SRAM memory element to the MEMORY WRITE bit lines MWBL and /MWBL. This transfer operation corresponds to the operation to transfer memory write data through the memory data buffer 222 of FIG. 3A. Finally, an operation to read FIFO data from the bit cell 800 may be performed by driving the FIFO READ word line to an active high level to thereby turn on the NMOS access transistors N13-N14. This results in a transfer of FIFO read data to the FIFO READ bit lines FRBL and /FRBL. This read operation corresponds to the operation to transfer FIFO read data to the data output buffer 224 illustrated by FIG. 3A. The bit cell 800 of FIG. 8 also includes a pair of NMOS pass transistors N9 and N10 and an NMOS pull-down transistor N8. These transistors N8-N10 define a data transfer circuit that may be used to transfer FIFO write data directly from the latch L1 in the first dual-port SRAM memory element to the latch element L2 in the second dual-port
SRAM memory element. This transfer operation may be performed by driving the DIRECT PATH word line to an active high level to thereby turn on the NMOS pull-down transistor N8. This transfer operation corresponds to the direct transfer operation through the DATA MUX element illustrated by FIG. 3A when the DIRECTPATH signal line is driven to an active high level. To avoid any data conflict between the two latch elements L1 and L2, the MEMORY READ word line and DIRECT PATH word line may not be active at the same time. Accordingly, the multi-port CACHE bit cell 800 of FIG. 8 includes a first SRAM memory element having a first pair of access transistors N4-N5 that are electrically coupled to a pair of FIFO WRITE bit lines FWBL and /FWBL. A second dual-port SRAM memory element is also provided. This second dual-port SRAM memory element includes a second pair of access transistors N13-N14, which are electrically coupled to a pair of FIFO READ bit lines FRBL and /FRBL, and a third pair of access transistors N 11 -N 12, which are electrically coupled to a pair of MEMORY READ bit lines MRBL and /MRBL. A data transfer circuit is also provided by NMOS transistors N8-N10. This data transfer circuit supports a unidirectional data transfer path, which extends from storage nodes within the first SRAM memory element (outputs of latch element L1) to storage nodes within the second dual-port SRAM memory element (outputs of latch element L2). This unidirectional data transfer path is enabled when the DIRECT PATH word line signal is driven to an active high level and NMOS pull-down transistor N8 turns on. In particular, when the DIRECT PATH word line signal is driven to an active high level, one of the storage nodes within the first
SRAM memory element operates to turn on either NMOS pass transistor N9 or NMOS pass transistor N10. This causes one of the storage nodes within the second SRAM memory element to be pulled low and the other storage node to be driven high. For layout convenience, the bit cell 800 of FIG. 8 may be modified by substituting a pair of NMOS pull-down transistors for the illustrated NMOS pull-down transistor N8. Moreover, because operations to write data into the multi-port cache during FIFO write operations typically do not conflict with cache-to-memory data transfer operations, the MEMORY WRITE word line, NMOS access transistors N6-N7 and MEMORY WRITE bit lines MWBL and /MWBL may be omitted in some embodiments of the bit cell. In this case, the FIFO WRITE word line and the FIFO WRITE bit lines FWBL and /FWBL are used during operations to write FIFO data into the multi- port cache and also when transferring this write data to the supplemental memory. Removal of the NMOS access transistors N6-N7 reduces the transistor count to 17 transistors per bit cell, or possibly 18 transistors if a pair of NMOS pull-down transistors N8 are used within the data transfer circuit. FIGS. 9A-9E illustrate integrated circuit memory devices 600a - 600e according to additional embodiments of the present invention. In these embodiments, any latency associated with performing error detection and correction (EDC) operations can be hidden from operations to read data from the memory devices. In FIG. 9A, a first-in first-out (FIFO) memory device 600a is illustrated. This FIFO memory device 600a includes an input register 602 that is configured to receive write data from an input port of the FIFO memory device 600a and an output register 604 that is configured to supply read data to an output port of the FIFO memory device 600a. A bypass path (BYPASS) is also provided so that write data may be passed directly from the input register 602 to the output register 604 and fast fall through capability may be achieved within the FIFO memory device 600a. A check bit generation (CBG) circuit 606 is provided in the register-to-memory data path and an error detection and correction (EDC) circuit 608 is provided in the memory-to-register data path. A high capacity supplemental memory 610 is provided to retain FIFO write data that can be passed to the output register 604 when needed. The supplemental memory 610 can be on the same integrated circuit chip or a different integrated circuit chip relative to the other illustrated circuits. The output register 604 may be configured into multiple registers so that read operations can be performed on one register while another register is being loaded with data from the EDC circuit 608 and vice versa. In this manner, any latency associated with the EDC circuit 608 can be hidden from the operations to read data from the output port. In FIG. 9B, another FIFO memory device 600b having a cache memory array and a supplemental memory array 610 is illustrated. This FIFO memory device 600b may be configured as illustrated more fully by FIG. 2. In particular, the cache memory array in FIG. 9B is illustrated as including two registers 602 and 604, which may each be quad-port cache memory arrays as illustrated by FIGS. 3A-3B and 4. In FIG. 9C, another FIFO memory device 600c is illustrated having an additional register 607 in the register-to-memory data path. A second bypass path (BYPASS 2) may be provided to expand the quantity of "recent" write data that is available for immediate reading at the output port. As illustrated by the FIFO memory device 600d of FIG. 9D, an additional register 609 may be provided in the memory-to-register data path along with a third bypass path (BYPASS 3) that bypasses the supplemental memory 610. In FIG. 9E, a plurality of memory devices (shown as "n" memory devices) are provided within a FIFO memory device 620. The plurality of memory devices are similar to the FIFO memory device 600b illustrated by FIG. 9B. The FIFO memory device 620 of FIG. 9E may be provided with write and read pointers that move sequentially from one memory device to the next in a repeating cycle. Because the read pointer sequence is known in advance, read data may be made available at each read port (R1 to Rn) well in advance of being passed to the output port of the memory device 620. In this manner, the EDC latencies associated with each local read path may be hidden from the global read operations. In the drawings and specification, there have been disclosed typical preferred embodiments of the invention and, although specific terms are employed, they are used in a generic and descriptive sense only and not for purposes of limitation, the scope of the invention being set forth in the following claims.

Claims

THAT WHICH IS CLAIMED IS:
1. An integrated circuit device, comprising: a first-in first-out (FIFO) memory chip configured to support a pair of hybrid operating modes that enable the FIFO memory chip to be depth- expandable with other FIFO memory chips in a collective standard mode of operation, said pair of hybrid operating modes including a first hybrid mode that supports a write interface configured in standard mode and a read interface configured in first-word fall-through (FWFT) mode and a second hybrid mode that supports a write interface configured in FWFT mode and a read interface configured in standard mode.
2. The device of Claim 1 , wherein the first hybrid mode supports a write interface having a full flag pin that designates when said FIFO memory chip is full and a read interface having an output ready pin that designates when said FIFO memory chip has at least one entry therein.
3. The device of Claim 2, wherein the second hybrid mode supports a write interface having an input ready pin that designates when said FIFO memory chip can accept additional entries and a read interface having an empty flag pin that designates when said FIFO memory chip is empty.
4. The device of Claim 3, wherein said FIFO memory chip has a pin that is responsive to a standard depth expansion mode signal.
5. The device of Claim 1 , wherein said FIFO memory chip comprises a FIFO memory controller chip having cache memory arrays therein and a external memory interface that supports read and write data transfers between the cache memory arrays and a random access memory device.
6. The device of Claim 1 , wherein said FIFO memory chip comprises: a first cache memory device having a first page of quad-port memory cells therein that is configured to support writing and reading of FIFO vectors to and from columns in the first page and writing and reading of memory vectors to and from rows in the first page.
7. An integrated circuit system, comprising: a plurality of first-in first-out (FIFO) memory controller chips that collectively support standard mode operation when cascaded in a depth expansion configuration.
8. The integrated circuit system of Claim 7, wherein said plurality of first-in first-out (FIFO) memory controller chips comprise a front-end FIFO memory controller chip disposed in a first hybrid mode that supports a corresponding write interface configured in standard mode and a corresponding read interface configured in first-word fall-through (FWFT) mode, and a back-end FIFO memory controller chip disposed in a second hybrid mode that supports a corresponding write interface configured in FWFT mode and a corresponding read interface configured in standard mode.
9. An integrated circuit device, comprising: a first-in first-out (FIFO) memory chip having cache and embedded memory elements therein, said FIFO memory chip configured to support a pair of hybrid operating modes that enable said FIFO memory chip to be depth-expandable with other FIFO memory chips in a collective standard mode of operation, said pair of hybrid operating modes including a first hybrid mode that supports a write interface configured in standard mode and a read interface configured in first-word fall-through (FWFT) mode and a second hybrid mode that supports a write interface configured in FWFT mode and a read interface configured in standard mode.
10. The device of Claim 9, wherein the first hybrid mode supports a write interface having a full flag pin that designates when said FIFO memory chip is full and a read interface having an output ready pin that designates when said FIFO memory chip has at least one entry therein.
11. The device of Claim 10, wherein the second hybrid mode supports a write interface having an input ready pin that designates when said FIFO memory chip can accept additional entries and a read interface having an empty flag pin that designates when said FIFO memory chip is empty.
12. The device of Claim 11 , wherein said FIFO memory chip has a pin that is responsive to a standard depth expansion mode signal.
13. An integrated circuit device, comprising: a first-in first-out (FIFO) memory chip configured to support at least one hybrid operating mode that enables said FIFO memory chip to be depth- expandable with another FIFO memory chip in a collective standard mode of operation, said at least one hybrid mode supporting a write interface configured in standard mode and a read interface configured in first-word fall-through (FWFT) mode.
14. An integrated circuit memory device, comprising: a memory array having a page of multi-port memory cells therein that spans at least X columns and Y rows, said page configured to support writing and reading of first data vectors to and from the X columns and writing and reading of second data vectors to and from the Y rows, where X and Y are unequal integers.
15. The memory device of Claim 14, wherein the first data vectors are Y-bit words; and wherein the second data vectors are X-bit words.
16. The memory device of Claim 15, wherein Y=72 and X=36.
17. The memory device of Claim 14, wherein the multi-port memory cells are quad-port memory cells.
18. The memory device of Claim 14, further comprising: a check bit generation circuit that is configured to receive outgoing second data vectors from said memory array; and an error detection and correction circuit that is configured to provide incoming second data vectors to said memory array.
19. A first-in first-out (FIFO) memory device, comprising: a first cache memory device having a first page of quad-port memory cells therein that is configured to support writing and reading of FIFO vectors to and from columns in the first page and writing and reading of memory vectors to and from rows in the first page.
20. The memory device of Claim 19, further comprising a second cache memory device that is configured to operate in tandem with said first quad-port cache memory device so that FIFO write operations periodically switch back-and-forth between said first cache memory device and said second cache memory device.
21. The memory device of Claim 19, wherein each of the memory vectors includes one bit of data from each of the FIFO vectors and vice versa.
22. The memory device of Claim 19, further comprising: a check bit generation circuit that is configured to receive outgoing FIFO vectors from said first cache memory device; and an error detection and correction circuit that is configured to provide incoming memory vectors to said first cache memory device.
23. A first-in first-out (FIFO) memory device, comprising: a multi-port cache memory device having a write port that is configured to receive write data during FIFO write operations and a read port that is configured to supply read data during FIFO read operations; a supplemental memory device that is configured to retain next-to-read FIFO data that was previously written into said multi-port cache memory device; and a data transfer control circuit that is configured to provide said multi- port cache memory device with a copy of the next-to-read FIFO data that is error checked and corrected during memory-to-cache read operations that hide error correcting latency from the FIFO read operations.
24. The FIFO memory device of Claim 23, wherein said multi-port cache memory device comprises at least first and second quad-port memory devices; and wherein said data transfer control circuit comprises a first error checking and correction circuit that is coupled to said first quad- port memory device and a second error checking and correction circuit that is coupled to said second quad-port memory device.
25. The FIFO memory device of Claim 23, wherein said multi-port cache memory device and said supplemental memory device are on first and second semiconductor chips, respectively.
26. The FIFO memory device of Claim 25, wherein said supplemental memory device is a random access memory (RAM) device.
27. The FIFO memory device of Claim 24, wherein said data transfer control circuit further comprises a first check bit generation circuit that is coupled to said first quad-port memory device and a second check bit generation circuit that is coupled to said second quad-port memory device.
28. The FIFO memory device of Claim 24, wherein said first quad-port memory device has a first page of quad-port memory cells therein that is configured to support writing and reading of FIFO vectors to and from columns in the first page and writing and reading of memory vectors to and from rows in the first page.
29. A FIFO controller having a unidirectional data input port, a unidirectional data output port and a bidirectional data port, said FIFO controller comprising: a check bit generation circuit having an output electrically coupled to the bidirectional data port; an error detection and correction circuit having an input electrically coupled to the bidirectional data port; and a quad-port data cache having a first port that is configured to accept FIFO write data received by the unidirectional data input port, a second port that is electrically coupled to an input of said check bit generation circuit, a third port that is electrically coupled to an output of said error detection and correction circuit and a fourth port that is configured to pass FIFO read data to the unidirectional data output port.
30. A FIFO controller having a unidirectional data input port, a unidirectional data output port and a bidirectional data port, said FIFO controller comprising: a first check bit generation circuit having an output electrically coupled to the bidirectional data port; a first error detection and correction circuit having an input electrically coupled to the bidirectional data port; a second check bit generation circuit having an output electrically coupled to the bidirectional data port; a second error detection and correction circuit having an input electrically coupled to the bidirectional data port; a first quad-port cache having a first port that is configured to accept FIFO write data received by the unidirectional data input port, a second port that is electrically coupled to an input of said first check bit generation circuit, a third port that is electrically coupled to an output of said first error detection and correction circuit and a fourth port; a second quad-port cache having a first port that is configured to accept FIFO write data received by the unidirectional data input port, a second port that is electrically coupled to an input of said second check bit generation circuit, a third port that is electrically coupled to an output of said second error detection and correction circuit and a fourth port; and a quad-port cache control circuit that is configured to hide error detection and correction latency in a read data path by passing FIFO read data from the fourth ports of said first and second quad-port caches to the unidirectional data output port in a back and forth manner.
31. An integrated circuit memory device, comprising: first and second memory devices that are electrically coupled together by a first data path that is configured to transfer write data from said first memory device to said second memory device when said first memory device is undergoing write operations and a second data path that is configured to transfer read data from said second memory device to said first memory device when said first memory device is undergoing read operations; and an error correction circuit that is configured to check and correct read data in the second data path using operations that hide error correcting latency from the read operations.
32. A multi-port CACHE bit cell, comprising: a first SRAM memory element having a first pair of access transistors that are electrically coupled to a pair of FIFO write bit lines; a second dual-port SRAM memory element having a second pair of access transistors that are electrically coupled to a pair of FIFO read bit lines and a third pair of access transistors that are electrically coupled to a pair of memory read bit lines; and a data transfer circuit that is configured to support a unidirectional data transfer path that extends from storage nodes within said first SRAM memory element to storage nodes within said second dual-port SRAM memory element and is responsive to a direct path word line signal.
33. The bit cell of Claim 32, where said first SRAM memory element comprises a dual-port SRAM memory element having a fourth pair of access transistors therein that are electrically coupled to a pair of memory write bit lines.
34. The bit cell of Claim 32, where said data transfer circuit comprises: a pair of pass transistors having gate terminals that are electrically connected to respective storage nodes within said first SRAM memory element and first current carrying terminals that are electrically connected to respective storage nodes within said second dual-port SRAM memory element; and a pull-down transistor having a current carrying terminal electrically connected to second current carrying terminals of said pair of pass transistors and a gate terminal that is responsive to the direct path word line signal.
PCT/US2004/019152 2003-07-03 2004-06-17 Sequential flow-control and fifo memory devices that are depth expandable in standard mode operation Ceased WO2005003955A2 (en)

Applications Claiming Priority (8)

Application Number Priority Date Filing Date Title
US10/612,849 2003-07-03
US10/612,849 US7076610B2 (en) 2000-11-22 2003-07-03 FIFO memory devices having multi-port cache memory arrays therein that support hidden EDC latency and bus matching and methods of operating same
US10/639,163 2003-08-11
US10/639,163 US20040047209A1 (en) 2000-11-22 2003-08-11 FIFO memory devices having multi-port cache memory arrays therein that support hidden EDC latency and bus matching and methods of operating same
US10/721,974 2003-11-24
US10/721,974 US7209983B2 (en) 2003-07-03 2003-11-24 Sequential flow-control and FIFO memory devices that are depth expandable in standard mode operation
US53629304P 2004-01-14 2004-01-14
US60/536,293 2004-01-14

Publications (2)

Publication Number Publication Date
WO2005003955A2 true WO2005003955A2 (en) 2005-01-13
WO2005003955A3 WO2005003955A3 (en) 2005-08-11

Family

ID=33568837

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2004/019152 Ceased WO2005003955A2 (en) 2003-07-03 2004-06-17 Sequential flow-control and fifo memory devices that are depth expandable in standard mode operation

Country Status (1)

Country Link
WO (1) WO2005003955A2 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006124300A1 (en) * 2005-05-17 2006-11-23 Intel Corporation Identical chips with different operations in a system
CN117911235A (en) * 2024-03-19 2024-04-19 湖北芯擎科技有限公司 Image acquisition low-delay caching method and system
WO2024113783A1 (en) * 2022-11-30 2024-06-06 苏州元脑智能科技有限公司 Depth setting method and system for fifo memory, and electronic device

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6055588A (en) * 1994-11-28 2000-04-25 Hewlett-Packard Company Single stage FIFO memory with a circuit enabling memory to be read from and written to during a single cycle from a single clock

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006124300A1 (en) * 2005-05-17 2006-11-23 Intel Corporation Identical chips with different operations in a system
US7269088B2 (en) 2005-05-17 2007-09-11 Intel Corporation Identical chips with different operations in a system
GB2441083A (en) * 2005-05-17 2008-02-20 Intel Corp Identical chips with different operations in a system
GB2441083B (en) * 2005-05-17 2011-02-09 Intel Corp Identical chips with different operations in a system
WO2024113783A1 (en) * 2022-11-30 2024-06-06 苏州元脑智能科技有限公司 Depth setting method and system for fifo memory, and electronic device
CN117911235A (en) * 2024-03-19 2024-04-19 湖北芯擎科技有限公司 Image acquisition low-delay caching method and system
CN117911235B (en) * 2024-03-19 2024-06-11 湖北芯擎科技有限公司 Image acquisition low-delay caching method and system

Also Published As

Publication number Publication date
WO2005003955A3 (en) 2005-08-11

Similar Documents

Publication Publication Date Title
US7209983B2 (en) Sequential flow-control and FIFO memory devices that are depth expandable in standard mode operation
US6754777B1 (en) FIFO memory devices and methods of operating FIFO memory devices having multi-port cache memory devices therein
US7093047B2 (en) Integrated circuit memory devices having clock signal arbitration circuits therein and methods of performing clock signal arbitration
US5204841A (en) Virtual multi-port RAM
US7907469B2 (en) Multi-port memory device for buffering between hosts and non-volatile memory devices
US6442098B1 (en) High performance multi-bank compact synchronous DRAM architecture
US7076610B2 (en) FIFO memory devices having multi-port cache memory arrays therein that support hidden EDC latency and bus matching and methods of operating same
KR102595588B1 (en) Apparatus and method for configurable memory array bank architecture
US20010010655A1 (en) Method and system for accessing rows in multiple memory banks within an integrated circuit
US7042792B2 (en) Multi-port memory cells for use in FIFO applications that support data transfers between cache and supplemental memory arrays
US6301322B1 (en) Balanced dual-edge triggered data bit shifting circuit and method
US6175905B1 (en) Method and system for bypassing pipelines in a pipelined memory command generator
KR100938187B1 (en) Semiconductor integrated circuit
US6415374B1 (en) System and method for supporting sequential burst counts in double data rate (DDR) synchronous dynamic random access memories (SDRAM)
US20040047209A1 (en) FIFO memory devices having multi-port cache memory arrays therein that support hidden EDC latency and bus matching and methods of operating same
US6459647B1 (en) Split-bank architecture for high performance SDRAMs
KR19980070330A (en) Variable standby memory circuit
USRE38955E1 (en) Memory device having a relatively wide data bus
US5892777A (en) Apparatus and method for observing the mode of a memory device
JP4079507B2 (en) Memory control system and memory control method
KR100605600B1 (en) Semiconductor memory device
WO2005003955A2 (en) Sequential flow-control and fifo memory devices that are depth expandable in standard mode operation
US7246300B1 (en) Sequential flow-control and FIFO memory devices having error detection and correction capability with diagnostic bit generation
US6044433A (en) DRAM cache
EP0471932B1 (en) Virtual multi-port ram

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A2

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BW BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE EG ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NA NI NO NZ OM PG PH PL PT RO RU SC SD SE SG SK SL SY TJ TM TN TR TT TZ UA UG US UZ VC VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A2

Designated state(s): BW GH GM KE LS MW MZ NA SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IT LU MC NL PL PT RO SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
DPEN Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed from 20040101)
122 Ep: pct application non-entry in european phase