US20020016886A1 - Method and apparatus for simultaneously accessing the tag and data arrays of a memory device - Google Patents
Method and apparatus for simultaneously accessing the tag and data arrays of a memory device Download PDFInfo
- Publication number
- US20020016886A1 US20020016886A1 US09/312,122 US31212299A US2002016886A1 US 20020016886 A1 US20020016886 A1 US 20020016886A1 US 31212299 A US31212299 A US 31212299A US 2002016886 A1 US2002016886 A1 US 2002016886A1
- Authority
- US
- United States
- Prior art keywords
- access
- array
- tag
- data
- data array
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0877—Cache access modes
- G06F12/0879—Burst mode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0844—Multiple simultaneous or quasi-simultaneous cache accessing
- G06F12/0855—Overlapped cache accessing, e.g. pipeline
Definitions
- This invention relates generally to memory devices, and more particularly, to a memory device having simultaneously accessible tag and data arrays.
- cache memories In many computer systems high speed, redundant memories have been used to store recently used or anticipated use data.
- the memories are referred to as cache memories.
- a cache memory mirrors data stored in the main memory of the computer system, but because of its significantly higher speed, cache data may can be retrieved quickly.
- DRAM dynamic random access memories
- Cache memories are typically static random access memories (SRAM). SRAMs have a lower density than DRAMs, but they are significantly faster.
- SRAM synchronous burst SRAM.
- This type of SRAM includes a burst counter for generating internal addresses to sequentially access a plurality of cells in the SRAM. These internal addresses may be generated, and the sequential cells may be accessed more quickly than if the SRAM were to be externally addressed. Typically these burst accesses may access four or eight internal accesses.
- Data is organized in a cache using tag and data arrays.
- the data array stores the redundant data corresponding to data stored in the main memory.
- the tag array stores identifying information to cross-reference the cache data stored in the data array to the main memory data.
- the tag array also stores status information regarding the status of the cache data (e.g., the cache data is valid or invalid, the cache data has been updated without having been written to the main memory, etc.).
- burst accesses do provide quicker access to the cache data, they also have at least one drawback in that the tag array cannot be accessed during the burst. For example, consider that an eight cycle burst is in progress, and the cache receives a subsequent request for a tag lookup to determine if certain data is stored in the data array. The cache must wait for the burst access to complete before the tag lookup can commence. If the tag lookup misses (i.e., the data is not present in the cache), the computer system must then issue a request to retrieve the data from the main memory, a relatively slow process. Waiting for the burst access to complete adds additional latency to the operation of the cache. As the length of burst accesses increases, corresponding to larger cache sizes, the latency problem is exacerbated.
- the present invention is directed to overcoming, or at least reducing the effects of, one or more of the problems set forth above.
- a memory device including a data array, a tag array, and control logic.
- the data array is adapted to store a plurality of data array entries.
- the tag array is adapted to store a plurality of data array entries corresponding to the data array entries.
- the control logic adapted to access a subset of the data array entries in the data array using a burst access and to access the tag array during the burst access.
- the memory device includes a data array and a tag array.
- the method includes receiving a data array burst access command.
- the data array is accessed in response to the data array burst access command.
- a tag array access is received.
- the tag array is accessed in response to the tag array access command while the data array is being accessed.
- FIG. 1 is a simplified block diagram of a computer system in accordance with the present invention.
- FIG. 2 is a block diagram of a memory device in the computer system of FIG. 1;
- FIG. 3 is a state diagram illustrating the operation of the control logic of the memory device of FIG. 2 for accessing tag and data arrays of the memory device;
- FIG. 4A is a timing diagram illustrating the operation of the memory device of FIG. 2 during a series of tag array and data array transactions.
- FIG. 4B is a continuation of the timing diagram of FIG. 4A.
- the computer system 10 includes a microprocessor 15 , which may include multiple processors (not shown), coupled to a host bus 20 .
- a system memory controller 25 is coupled to the host bus 20 and a main memory device 30 .
- a cache memory device 35 is coupled to the microprocessor 15 by a cache bus 37 .
- a host bridge 40 couples the host bus 20 to a primary bus 45 , such as a peripheral component interconnect (PCI) bus (PCI Specification, Rev. 2.1).
- PCI peripheral component interconnect
- a video controller 50 and other devices 55 are coupled to the primary bus 45 .
- the computer system 10 may include other buses such as a secondary PCI bus (not shown) or other peripheral devices (not shown) known in the art.
- the cache memory device 35 is a static random access memory (SRAM), and although the SRAM is described as it may be used in a cache application, the application of the invention is not so limited. The techniques and structure described herein may be applied to memory devices in other applications, as well as other types of memory devices. It is contemplated that the cache memory device 35 may include a plurality of devices operating in parallel, depending on the specific bandwidth or other design requirements of the computer system 10 . Hereinafter, the cache memory device 35 is referred to as simply the memory device 35 .
- the memory device 35 includes a data array 100 , a tag array 105 , and control logic 110 .
- the data array 100 stores cache data corresponding to data in the main memory device 30
- the tag array 105 stores tag data related to the identification and status of the cache data stored in the data array 100 .
- the data array 100 has a size of about 4.5 Mb and the tag array 105 has a size of about 128 kb.
- the control logic 110 controls, among other things, access to the data and tag arrays 100 , 105 .
- the operation of the control logic 110 related to accessing the data and tag arrays 100 , 105 is described in greater detail below in reference to the state diagram of FIG. 3 and the timing diagram of FIGS. 4A and 4B.
- a pound sign (#) suffix on a logic signal name indicates that the logic signal is asserted low (i.e., a logic 0 indicates assertion, a logic 1 indicates de-assertion).
- the data and tag arrays 100 , 105 share an address register 115 for receiving a shared address (SA), a read/write control line 120 for receiving a read/write signal (R/W#), and a clock line 125 for receiving a clock signal (CK).
- a data array command (DLD) register 130 is adapted to receive a data access command (DLD#)
- a tag array command (TLD) register 135 is adapted to receive a tag command (TLD#).
- the memory device 35 is capable of double data rate accesses to the data array 100 .
- a double data rate accesses data is read from or written to the data array 100 on both the rising and falling edges of the CK signal.
- accesses to the tag array 105 are performed using a single data rate (i.e., on the rising edge of the CK signal).
- the memory device 35 may be configured to operate using either a latency of either 1 or 1.5 clock cycles. Latency is typically defined as the number of clock cycles between when a read command is issued and when the data is output from the memory device 35 .
- a burst counter 140 is coupled to the address register 115 and the control logic 110 for providing sequential internal address for burst accesses.
- the address of the of the first location in the data array 100 to be accessed is loaded into the address register 115 , and subsequently, at least the three least significant bits are loaded into the burst counter 140 .
- the burst counter 140 is incremented to generate internal addresses for accessing the data array 100 .
- the burst counter 140 is a three-bit counter capable of generating internal addresses for four and eight beat bursts.
- the term “beat” refers to the cycle number of the burst access. Because the data array 100 is accessed in a double data rate manner, one beat corresponds to one half cycle of the CK signal.
- the burst counter 140 may increment the internal address in a linear format or an interleaved format.
- the data array 100 has an associated data-in register 145 and a data-out register 150 .
- the input of the data-in register 145 is coupled to a write buffer 155
- the output of the data-out register 150 is coupled to a read buffer 160 .
- the tag array 105 has an associated data-in register 165 and a data-out register 170 .
- the input of the data-in register 165 is coupled to a write buffer 175
- the output of the data-out register 170 is coupled to a read buffer 180 .
- the buffers 155 , 160 associated with the data array 100 are coupled to DQ lines 185
- the buffers 175 , 180 associated with the tag array 105 are coupled to tag DQ (TDQ) lines 190 .
- the memory device 35 further includes a data output clock (CQ) generator 195 for generating a data output clock signal (CQ) and a tag output clock (TCQ) generator 200 for generating a tag output clock signal (TCQ).
- CQ data output clock
- TCQ tag output clock
- alternative clocking schemes may be employed.
- the data output clock signal, CQ may be looped back to the memory device 35 as a data clock input to achieve a forwarded clock timing back to the microprocessor 15 .
- the control logic 110 receives the R/W#, DLD#, and TLD# signals, as well as the address output from the burst counter 140 .
- the control logic 110 is adapted to allow simultaneous data array 100 and tag array 105 accesses based on the control signals it receives.
- the R/W# signal determines if an access is a read access (i.e., when at a logic high level) or a write access (i.e., when at a logic low level).
- the DLD# signal is asserted low if the access targets the data array 100
- the TLD# signal is asserted low if the access targets the tag array 105 .
- the DLD# and TLD# signals may be asserted simultaneously to indicate that the access targets both the data array 100 and the tag array 105 .
- the control logic 110 allows the tag array 105 to be accessed on beats zero and four of an eight beat burst.
- FIG. 3 is a diagram of a bus cycle state machine 300 implemented by the control logic 110 for accessing the data array 100 and tag array 105 .
- FIGS. 4A and 4B show a timing diagram illustrating the timing of the command, address, and data signals during a series of bus cycles.
- the bus cycle state machine 300 After exiting the power up sequence, the bus cycle state machine 300 enters a no-operation (NOP) state 310 .
- NOP no-operation
- the output of the burst counter 140 (referred to as CNT) remains at 0.
- the bus cycle state machine 300 remains in the NOP state 310 until a command is received.
- the state machine 300 transitions to a tag access state 330 .
- the state machine 300 transitions to a data and tag access state 340 .
- the data access state 320 the data array 100 access is completed and the burst counter 140 is incremented by two (i.e., the burst counter 140 increments by two due to the double data rate nature of the data array 100 ).
- the data array 100 burst access continues, and the burst counter 140 keeps incrementing by two corresponding to the beats of the burst access.
- the burst counter 140 counts up to eight, it resets to zero.
- the state machine 300 may only leave the data access state 320 when the burst counter 140 has a value of zero or four (i.e., beats 0 or 4 of the burst access). It is contemplated that the state machine 300 may be modified to allow for concurrent data and tag array 105 accesses on other beats, depending on the specific design requirements and the length of the burst accesses.
- the tag access state 330 the tag array 105 access is completed, and the state machine 300 returns to the NOP state 310 .
- the burst counter 140 is not incremented in the tag access state 330 .
- the burst counter 140 is incremented by two. Similar to the data access state 320 , the data array 100 burst access continues, and the burst counter 140 keeps incrementing by two corresponding to the beats of the burst access. Again, when the burst counter 140 counts up to eight, it resets to zero. In the illustrated embodiment, the state machine 300 may only leave the data and tag access state 340 when the burst counter 140 has a value of zero or four. As stated above, it is contemplated that the state machine 300 may be modified to allow for concurrent data array 100 and tag array 105 accesses on other beats, depending on the specific design requirements and the length of the burst accesses.
- FIG. 4B is a continuation of the timing diagram of FIG. 4A.
- the timing diagram illustrates the timing of the clock signals, CK and CQ, the shared address signal, SA, the tag and data command signals, DLD# and TLD#, and the read/write signal, R/W#.
- the memory device 35 is operating using a read latency of 1.5 cycles. Transitions in the clock signal, CK, are referred to as edges, with a suffix of “r” designating a rising clock edge, and a suffix of “f” designating a falling clock edge.
- a first command is received at edge 1 r of the CK signal.
- the command initiates a concurrent read to the data and tag arrays 100 , 105 at shared address A 1 .
- the cache data burst Q 11 through Q 18 and the tag data Q 1 are output from the memory device 35 beginning at the CK edge 2 f (i. e., corresponding to the latency of 1.5 cycles) and are received by the microprocessor 15 on a later edge (not shown).
- the latency of 1.5 cycles does not impact write accesses.
- the tag data D 3 is registered into the memory device 35 at edge 4 r coincident with cache data Q 14 .
- the cache data Q 51 through Q 58 and the tag data Q 5 are output from the memory device 35 at the CK edge 6 f .
- the tag data D 7 is registered into the memory device 35 at edge 8 r.
- the cache data burst DA 1 through DA 8 begins at edge 11 r
- the tag data DA is registered written at edge 11 r
- the cache data burst DE 1 through DE 8 begins at edge 15 r .
- the tag data QG is read from the memory device at edge 17 f.
- the cache data burst QJ 1 through QJ 8 begins at edge 19 f , and the tag data QJ is read at edge 19 f.
- the previous illustration shown in FIG. 4 illustrates that reads and writes to the tag and data arrays 105 , 100 may be intermingled without restrictions. Accessing the tag array 105 during a burst access from the data 100 has numerous advantages. The overall speed of the memory device is increased, because commands can be issued before the end of a burst access. The microprocessor 15 can perform snooping operations on a different address from the tag array 105 during the burst access. Accordingly, the microprocessor 15 may be made aware of data not being present in the data array 100 before the end of the current burst, and a request may be issued to the system memory controller 25 to retrieve the data from the main memory device 30 . The programmable latency feature also improves the flexibility of the memory device 35 .
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
Description
- 1. Field of the Invention
- This invention relates generally to memory devices, and more particularly, to a memory device having simultaneously accessible tag and data arrays.
- 2. Description of the Related Art
- In many computer systems high speed, redundant memories have been used to store recently used or anticipated use data. The memories are referred to as cache memories. A cache memory mirrors data stored in the main memory of the computer system, but because of its significantly higher speed, cache data may can be retrieved quickly. Typically, dynamic random access memories (DRAM) are used as main memory devices due to their high density. Cache memories are typically static random access memories (SRAM). SRAMs have a lower density than DRAMs, but they are significantly faster.
- One type of SRAM is a synchronous burst SRAM. This type of SRAM includes a burst counter for generating internal addresses to sequentially access a plurality of cells in the SRAM. These internal addresses may be generated, and the sequential cells may be accessed more quickly than if the SRAM were to be externally addressed. Typically these burst accesses may access four or eight internal accesses.
- Data is organized in a cache using tag and data arrays. The data array stores the redundant data corresponding to data stored in the main memory. The tag array stores identifying information to cross-reference the cache data stored in the data array to the main memory data. The tag array also stores status information regarding the status of the cache data (e.g., the cache data is valid or invalid, the cache data has been updated without having been written to the main memory, etc.).
- While burst accesses do provide quicker access to the cache data, they also have at least one drawback in that the tag array cannot be accessed during the burst. For example, consider that an eight cycle burst is in progress, and the cache receives a subsequent request for a tag lookup to determine if certain data is stored in the data array. The cache must wait for the burst access to complete before the tag lookup can commence. If the tag lookup misses (i.e., the data is not present in the cache), the computer system must then issue a request to retrieve the data from the main memory, a relatively slow process. Waiting for the burst access to complete adds additional latency to the operation of the cache. As the length of burst accesses increases, corresponding to larger cache sizes, the latency problem is exacerbated.
- The present invention is directed to overcoming, or at least reducing the effects of, one or more of the problems set forth above.
- One aspect of the present invention is seen in a memory device including a data array, a tag array, and control logic. The data array is adapted to store a plurality of data array entries. The tag array is adapted to store a plurality of data array entries corresponding to the data array entries. The control logic adapted to access a subset of the data array entries in the data array using a burst access and to access the tag array during the burst access.
- Another aspect of the present invention is seen in a method for accessing a memory device. The memory device includes a data array and a tag array. The method includes receiving a data array burst access command. The data array is accessed in response to the data array burst access command. A tag array access is received. The tag array is accessed in response to the tag array access command while the data array is being accessed.
- The invention may be best understood by reference to the following description taken in conjunction with the accompanying drawings, in which like reference numerals identify like elements, and in which:
- FIG. 1 is a simplified block diagram of a computer system in accordance with the present invention;
- FIG. 2 is a block diagram of a memory device in the computer system of FIG. 1;
- FIG. 3 is a state diagram illustrating the operation of the control logic of the memory device of FIG. 2 for accessing tag and data arrays of the memory device;
- FIG. 4A is a timing diagram illustrating the operation of the memory device of FIG. 2 during a series of tag array and data array transactions; and
- FIG. 4B is a continuation of the timing diagram of FIG. 4A.
- While the invention is susceptible to various modifications and alternative forms, specific embodiments thereof have been shown by way of example in the drawings and are herein described in detail. It should be understood, however, that the description herein of specific embodiments is not intended to limit the invention to the particular forms disclosed, but on the contrary, the intention is to cover all modifications, equivalents, and alternatives falling within the spirit and scope of the invention as defined by the appended claims.
- Illustrative embodiments of the invention are described below. In the interest of clarity, not all features of an actual implementation are described in this specification. It will of course be appreciated that in the development of any such actual embodiment, numerous implementation-specific decisions must be made to achieve the developers' specific goals, such as compliance with system-related and business-related constraints, which will vary from one implementation to another. Moreover, it will be appreciated that such a development effort might be complex and time-consuming, but would nevertheless be a routine undertaking for those of ordinary skill in the art having the benefit of this disclosure.
- Referring to FIG. 1, a simplified block diagram of a
computer system 10 is provided. Thecomputer system 10 includes amicroprocessor 15, which may include multiple processors (not shown), coupled to ahost bus 20. Asystem memory controller 25 is coupled to thehost bus 20 and amain memory device 30. Acache memory device 35 is coupled to themicroprocessor 15 by acache bus 37. Ahost bridge 40 couples thehost bus 20 to aprimary bus 45, such as a peripheral component interconnect (PCI) bus (PCI Specification, Rev. 2.1). Avideo controller 50 and other devices 55 (e.g., PCI devices) are coupled to theprimary bus 45. Thecomputer system 10 may include other buses such as a secondary PCI bus (not shown) or other peripheral devices (not shown) known in the art. - Except for the
cache memory device 35 of the present invention, all other elements 15-30, 40-55 of thecomputer system 10 are intended to represent a broad category of these elements found in many computer systems. Their constitutions and functions are well known in the art, and for the sake of clarity, are not further described herein. - In the illustrated embodiment, the
cache memory device 35 is a static random access memory (SRAM), and although the SRAM is described as it may be used in a cache application, the application of the invention is not so limited. The techniques and structure described herein may be applied to memory devices in other applications, as well as other types of memory devices. It is contemplated that thecache memory device 35 may include a plurality of devices operating in parallel, depending on the specific bandwidth or other design requirements of thecomputer system 10. Hereinafter, thecache memory device 35 is referred to as simply thememory device 35. - Referring now to FIG. 2, a block diagram of the
memory device 35 is provided. Thememory device 35 includes adata array 100, atag array 105, andcontrol logic 110. As is well known in the art, thedata array 100 stores cache data corresponding to data in themain memory device 30, and thetag array 105 stores tag data related to the identification and status of the cache data stored in thedata array 100. In the illustrated embodiment, thedata array 100 has a size of about 4.5 Mb and thetag array 105 has a size of about 128 kb. - The
control logic 110 controls, among other things, access to the data andtag arrays control logic 110 related to accessing the data andtag arrays - As used herein, a pound sign (#) suffix on a logic signal name indicates that the logic signal is asserted low (i.e., a
logic 0 indicates assertion, alogic 1 indicates de-assertion). The data andtag arrays address register 115 for receiving a shared address (SA), a read/write control line 120 for receiving a read/write signal (R/W#), and aclock line 125 for receiving a clock signal (CK). A data array command (DLD) register 130 is adapted to receive a data access command (DLD#), and a tag array command (TLD) register 135 is adapted to receive a tag command (TLD#). In the illustrated embodiment, thememory device 35 is capable of double data rate accesses to thedata array 100. In a double data rate accesses data is read from or written to thedata array 100 on both the rising and falling edges of the CK signal. In the illustrated embodiment, accesses to thetag array 105 are performed using a single data rate (i.e., on the rising edge of the CK signal). - In the illustrated embodiment, the
memory device 35 may be configured to operate using either a latency of either 1 or 1.5 clock cycles. Latency is typically defined as the number of clock cycles between when a read command is issued and when the data is output from thememory device 35. - A
burst counter 140 is coupled to theaddress register 115 and thecontrol logic 110 for providing sequential internal address for burst accesses. The address of the of the first location in thedata array 100 to be accessed is loaded into theaddress register 115, and subsequently, at least the three least significant bits are loaded into theburst counter 140. On subsequent clock half-cycles of the CK signal, theburst counter 140 is incremented to generate internal addresses for accessing thedata array 100. - In the illustrated embodiment, the
burst counter 140 is a three-bit counter capable of generating internal addresses for four and eight beat bursts. As used herein the term “beat” refers to the cycle number of the burst access. Because thedata array 100 is accessed in a double data rate manner, one beat corresponds to one half cycle of the CK signal. Theburst counter 140 may increment the internal address in a linear format or an interleaved format. - The
data array 100 has an associated data-inregister 145 and a data-out register 150. The input of the data-inregister 145 is coupled to awrite buffer 155, and the output of the data-out register 150 is coupled to aread buffer 160. Likewise, thetag array 105 has an associated data-inregister 165 and a data-out register 170. The input of the data-inregister 165 is coupled to awrite buffer 175, and the output of the data-out register 170 is coupled to aread buffer 180. Thebuffers data array 100 are coupled to DQlines 185, and thebuffers tag array 105 are coupled to tag DQ (TDQ) lines 190. - The
memory device 35 further includes a data output clock (CQ)generator 195 for generating a data output clock signal (CQ) and a tag output clock (TCQ)generator 200 for generating a tag output clock signal (TCQ). It is contemplated that alternative clocking schemes may be employed. for example, the data output clock signal, CQ, may be looped back to thememory device 35 as a data clock input to achieve a forwarded clock timing back to themicroprocessor 15. - The
control logic 110 receives the R/W#, DLD#, and TLD# signals, as well as the address output from theburst counter 140. Thecontrol logic 110 is adapted to allowsimultaneous data array 100 andtag array 105 accesses based on the control signals it receives. The R/W# signal determines if an access is a read access (i.e., when at a logic high level) or a write access (i.e., when at a logic low level). The DLD# signal is asserted low if the access targets thedata array 100, and the TLD# signal is asserted low if the access targets thetag array 105. The DLD# and TLD# signals may be asserted simultaneously to indicate that the access targets both thedata array 100 and thetag array 105. Thecontrol logic 110 allows thetag array 105 to be accessed on beats zero and four of an eight beat burst. - The operation of the
control logic 110 is further described in reference to FIGS. 3, 4A and 4B. FIG. 3 is a diagram of a bus cycle state machine 300 implemented by thecontrol logic 110 for accessing thedata array 100 andtag array 105. FIGS. 4A and 4B show a timing diagram illustrating the timing of the command, address, and data signals during a series of bus cycles. - First, the general operation of the bus cycle state machine300 of FIG. 3 is discussed. After exiting the power up sequence, the bus cycle state machine 300 enters a no-operation (NOP)
state 310. In theNOP state 310, the output of the burst counter 140 (referred to as CNT) remains at 0. The bus cycle state machine 300 remains in theNOP state 310 until a command is received. In response to a data access (i.e., DLD#=0, TLD#=1), the state machine 300 transitions to adata access state 320. In response to a tag access (ie., DLD#=1, TLD#=0), the state machine 300 transitions to atag access state 330. In response to a concurrent data and tag access (i.e., DLD#=0, TLD#=0), the state machine 300 transitions to a data andtag access state 340. - In the
data access state 320, thedata array 100 access is completed and theburst counter 140 is incremented by two (i.e., theburst counter 140 increments by two due to the double data rate nature of the data array 100). Thedata array 100 burst access continues, and theburst counter 140 keeps incrementing by two corresponding to the beats of the burst access. When theburst counter 140 counts up to eight, it resets to zero. In the illustrated embodiment, the state machine 300 may only leave thedata access state 320 when theburst counter 140 has a value of zero or four (i.e., beats 0 or 4 of the burst access). It is contemplated that the state machine 300 may be modified to allow for concurrent data andtag array 105 accesses on other beats, depending on the specific design requirements and the length of the burst accesses. - On beats zero and four, the
control logic 110 reads the DLD#, TLD#, and R/W# signals to determine the next command. At all other times, the DLD#, TLD#, and R/W# signals are ignored. If the next command is another data access, the state machine 300 remains in thedata access state 320. If the next command is a tag only access (i.e., DLD#=1, TLD#=0, CNT=0), the state machine 300 transitions to thetag access state 330. If thecontrol logic 110 receives a concurrent data and tag access command (i.e., DLD#=0, TLD#=0, CNT=0, 4), the state machine 300 transitions to the data andtag access state 340. If a command is not received by the data array 100 (i.e., DLD#=1, TLD#=1, CNT=0), the state machine 300 returns to theNOP state 310 and waits for the next command. - In the
tag access state 330 thetag array 105 access is completed, and the state machine 300 returns to theNOP state 310. Theburst counter 140 is not incremented in thetag access state 330. - In the data and
tag access state 340, both the data and tag accesses are completed and theburst counter 140 is incremented by two. Similar to thedata access state 320, thedata array 100 burst access continues, and theburst counter 140 keeps incrementing by two corresponding to the beats of the burst access. Again, when theburst counter 140 counts up to eight, it resets to zero. In the illustrated embodiment, the state machine 300 may only leave the data andtag access state 340 when theburst counter 140 has a value of zero or four. As stated above, it is contemplated that the state machine 300 may be modified to allow forconcurrent data array 100 andtag array 105 accesses on other beats, depending on the specific design requirements and the length of the burst accesses. - On beats zero and four, the
control logic 110 reads the DLD#, TLD#, and R/W# signals to determine the next command. At all other times, the DLD#, TLD#, and R/W# signals are ignored. If the next command is a data only access (i.e., DLD#=0, TLD#=1, CNT=0, 4), the state machine 300 transitions to thedata access state 320. If the next command is a tag only access (ie., DLD#=1, TLD#=0, CNT=0), the state machine 300 transitions to thetag access state 330. If thecontrol logic 110 receives another concurrent data and tag access command (i. e., DLD#=0, TLD#=0, CNT=0, 4), the state machine 300 remains in the data andtag access state 340. If a command is not received by the data array 100 (i.e., DLD#=1, TLD#=1, CNT=0), the state machine 300 returns to theNOP state 310 and waits for the next command. - The operation of the
control logic 110 is further described in reference to the timing diagram of FIGS. 4A and 4B. FIG. 4B is a continuation of the timing diagram of FIG. 4A. The timing diagram illustrates the timing of the clock signals, CK and CQ, the shared address signal, SA, the tag and data command signals, DLD# and TLD#, and the read/write signal, R/W#. In the timing illustration of FIGS. 4A and 4B thememory device 35 is operating using a read latency of 1.5 cycles. Transitions in the clock signal, CK, are referred to as edges, with a suffix of “r” designating a rising clock edge, and a suffix of “f” designating a falling clock edge. - A first command is received at
edge 1 r of the CK signal. The command initiates a concurrent read to the data andtag arrays memory device 35 beginning at theCK edge 2 f (i. e., corresponding to the latency of 1.5 cycles) and are received by themicroprocessor 15 on a later edge (not shown). - At
edge 3 r, a tag array write command (i.e., R/W#=0, TLD#=0) is registered at shared address A3. The latency of 1.5 cycles does not impact write accesses. Accordingly, the tag data D3 is registered into thememory device 35 atedge 4 r coincident with cache data Q14. This timing of the tag access corresponds to CNT=4 during of the eight beat cache data burst from shared address A1. - At
edge 5 r another concurrent data and tag read command (i.e., DLD#=TLD#=0, R/W#=1) is registered for shared address A5. The cache data Q51 through Q58 and the tag data Q5 are output from thememory device 35 at theCK edge 6 f. A tag write (i.e., TLD#=0, R/W#=0) at shared address A7 is received at CNT=4 of the Q51 through Q58 burst. The tag data D7 is registered into thememory device 35 atedge 8 r. - A concurrent data and tag write (i.e., DLD#=TLD#=0, R/W#=0) to shared address AA is received at
edge 10 r. The cache data burst DA1 through DA8 begins atedge 11 r, and the tag data DA is registered written atedge 11 r. A tag read (i.e., TLD#=0, R/W#=1) at shared address AC is received at CNT=4 of the DA1 through DA8 burst. Due to the latencies involved with the read and write accesses, the tag access, which was issued on the CNT=4 beat (i.e., 4 half cycles after the write to shared address AA), results in the tag data QC being delivered by thememory device 35 atedge 13 f. - A
data array 100 only write (i.e., DLD#=0, R/W#=0) to shared address AE is registered atedge 14 r. The cache data burst DE1 through DE8 begins atedge 15 r. A tag read (i.e., TLD#=0, R/W#=1) at shared address AG is received at the CNT=4 beat of the DA1 through DA8 burst. The tag data QG is read from the memory device atedge 17 f. - A concurrent data and tag read (i.e., DLD#=TLD#=0, R/W#=1) to shared address AJ is received at
edge 18 r. The cache data burst QJ1 through QJ8 begins atedge 19 f, and the tag data QJ is read atedge 19 f. - The previous illustration shown in FIG. 4 illustrates that reads and writes to the tag and
data arrays tag array 105 during a burst access from thedata 100 has numerous advantages. The overall speed of the memory device is increased, because commands can be issued before the end of a burst access. Themicroprocessor 15 can perform snooping operations on a different address from thetag array 105 during the burst access. Accordingly, themicroprocessor 15 may be made aware of data not being present in thedata array 100 before the end of the current burst, and a request may be issued to thesystem memory controller 25 to retrieve the data from themain memory device 30. The programmable latency feature also improves the flexibility of thememory device 35. - The particular embodiments disclosed above are illustrative only, as the invention may be modified and practiced in different but equivalent manners apparent to those skilled in the art having the benefit of the teachings herein. Furthermore, no limitations are intended to the details of construction or design herein shown, other than as described in the claims below. It is therefore evident that the particular embodiments disclosed above may be altered or modified and all such variations are considered within the scope and spirit of the invention. Accordingly, the protection sought herein is as set forth in the claims below.
Claims (26)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/312,122 US6385687B2 (en) | 1999-05-14 | 1999-05-14 | Method and apparatus for simultaneously accessing the tag and data arrays of a memory device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/312,122 US6385687B2 (en) | 1999-05-14 | 1999-05-14 | Method and apparatus for simultaneously accessing the tag and data arrays of a memory device |
Publications (2)
Publication Number | Publication Date |
---|---|
US20020016886A1 true US20020016886A1 (en) | 2002-02-07 |
US6385687B2 US6385687B2 (en) | 2002-05-07 |
Family
ID=23209979
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US09/312,122 Expired - Lifetime US6385687B2 (en) | 1999-05-14 | 1999-05-14 | Method and apparatus for simultaneously accessing the tag and data arrays of a memory device |
Country Status (1)
Country | Link |
---|---|
US (1) | US6385687B2 (en) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050268024A1 (en) * | 2004-05-28 | 2005-12-01 | Samsung Electronics Co., Ltd. | Memory controller for use in multi-thread pipeline bus system and memory control method |
US20140208035A1 (en) * | 2011-12-30 | 2014-07-24 | Larisa Novakovsky | Cache circuit having a tag array with smaller latency than a data array |
US20180005826A1 (en) * | 2016-06-30 | 2018-01-04 | Globalfoundries Inc. | Forming a silicon based layer in a trench to prevent corner rounding |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
ATE185631T1 (en) * | 1991-08-16 | 1999-10-15 | Cypress Semiconductor Corp | HIGH PERFORMANCE DYNAMIC STORAGE SYSTEM |
JP3920931B2 (en) * | 1992-04-17 | 2007-05-30 | サン・マイクロシステムズ・インコーポレイテッド | Method for reading and writing cached data and apparatus for caching data |
US5603007A (en) * | 1994-03-14 | 1997-02-11 | Apple Computer, Inc. | Methods and apparatus for controlling back-to-back burst reads in a cache system |
US5809537A (en) * | 1995-12-08 | 1998-09-15 | International Business Machines Corp. | Method and system for simultaneous processing of snoop and cache operations |
US5960453A (en) * | 1996-06-13 | 1999-09-28 | Micron Technology, Inc. | Word selection logic to implement an 80 or 96-bit cache SRAM |
US5915262A (en) * | 1996-07-22 | 1999-06-22 | Advanced Micro Devices, Inc. | Cache system and method using tagged cache lines for matching cache strategy to I/O application |
US5924121A (en) * | 1996-12-23 | 1999-07-13 | International Business Machines Corporation | Adaptive writeback of cache line data in a computer operated with burst mode transfer cycles |
US5966343A (en) * | 1997-01-02 | 1999-10-12 | Texas Instruments Incorporated | Variable latency memory circuit |
-
1999
- 1999-05-14 US US09/312,122 patent/US6385687B2/en not_active Expired - Lifetime
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050268024A1 (en) * | 2004-05-28 | 2005-12-01 | Samsung Electronics Co., Ltd. | Memory controller for use in multi-thread pipeline bus system and memory control method |
US20140208035A1 (en) * | 2011-12-30 | 2014-07-24 | Larisa Novakovsky | Cache circuit having a tag array with smaller latency than a data array |
US9367464B2 (en) * | 2011-12-30 | 2016-06-14 | Intel Corporation | Cache circuit having a tag array with smaller latency than a data array |
US20180005826A1 (en) * | 2016-06-30 | 2018-01-04 | Globalfoundries Inc. | Forming a silicon based layer in a trench to prevent corner rounding |
Also Published As
Publication number | Publication date |
---|---|
US6385687B2 (en) | 2002-05-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6604180B2 (en) | Pipelined memory controller | |
US6622228B2 (en) | System and method of processing memory requests in a pipelined memory controller | |
KR920010950B1 (en) | Device and method of accessing information | |
US5390308A (en) | Method and apparatus for address mapping of dynamic random access memory | |
US7082491B2 (en) | Memory device having different burst order addressing for read and write operations | |
JP3841442B2 (en) | Method and system for storing and processing multiple memory addresses | |
US8730759B2 (en) | Devices and system providing reduced quantity of interconnections | |
JPH08263424A (en) | Computer system | |
US6219765B1 (en) | Memory paging control apparatus | |
US6519689B2 (en) | Method and system for processing pipelined memory commands | |
JPH0955081A (en) | Memory controller for control of dynamic random-access memory system and control method of access to dynamic random-access memory system | |
JPH09213070A (en) | Hidden ) type pseudcache dram | |
JPH04213142A (en) | High-speed access system | |
US6219764B1 (en) | Memory paging control method | |
US5987570A (en) | Performing overlapping burst memory accesses and interleaved memory accesses on cache misses | |
EP0730228A1 (en) | ECC protected memory organization with pipelined read-modify-write accesses | |
US6446169B1 (en) | SRAM with tag and data arrays for private external microprocessor bus | |
TW491970B (en) | Page collector for improving performance of a memory | |
EP0535701A1 (en) | Architecture and method for combining static cache memory and dynamic main memory on the same chip (CDRAM) | |
US6385687B2 (en) | Method and apparatus for simultaneously accessing the tag and data arrays of a memory device | |
EP0474356A1 (en) | Cache memory and operating method | |
JPH06282983A (en) | Method for access to data in memory, memory system and memory control system | |
US6408361B1 (en) | Autonomous way specific tag update | |
JPH09319657A (en) | Processor provided with buffer for reading instruction | |
JPH08227376A (en) | Computer system and its operating method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: MICRON TECHNOLOGY, INC., IDAHO Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:PAWLOWSKI, J. THOMAS;WATKINS, JOEL;REEL/FRAME:009978/0559;SIGNING DATES FROM 19990414 TO 19990507 |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
FPAY | Fee payment |
Year of fee payment: 4 |
|
FPAY | Fee payment |
Year of fee payment: 8 |
|
FPAY | Fee payment |
Year of fee payment: 12 |
|
AS | Assignment |
Owner name: U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT, CALIFORNIA Free format text: SECURITY INTEREST;ASSIGNOR:MICRON TECHNOLOGY, INC.;REEL/FRAME:038669/0001 Effective date: 20160426 Owner name: U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGEN Free format text: SECURITY INTEREST;ASSIGNOR:MICRON TECHNOLOGY, INC.;REEL/FRAME:038669/0001 Effective date: 20160426 |
|
AS | Assignment |
Owner name: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT, MARYLAND Free format text: PATENT SECURITY AGREEMENT;ASSIGNOR:MICRON TECHNOLOGY, INC.;REEL/FRAME:038954/0001 Effective date: 20160426 Owner name: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL Free format text: PATENT SECURITY AGREEMENT;ASSIGNOR:MICRON TECHNOLOGY, INC.;REEL/FRAME:038954/0001 Effective date: 20160426 |
|
AS | Assignment |
Owner name: U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT, CALIFORNIA Free format text: CORRECTIVE ASSIGNMENT TO CORRECT THE REPLACE ERRONEOUSLY FILED PATENT #7358718 WITH THE CORRECT PATENT #7358178 PREVIOUSLY RECORDED ON REEL 038669 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY INTEREST;ASSIGNOR:MICRON TECHNOLOGY, INC.;REEL/FRAME:043079/0001 Effective date: 20160426 Owner name: U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGEN Free format text: CORRECTIVE ASSIGNMENT TO CORRECT THE REPLACE ERRONEOUSLY FILED PATENT #7358718 WITH THE CORRECT PATENT #7358178 PREVIOUSLY RECORDED ON REEL 038669 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY INTEREST;ASSIGNOR:MICRON TECHNOLOGY, INC.;REEL/FRAME:043079/0001 Effective date: 20160426 |
|
AS | Assignment |
Owner name: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT, ILLINOIS Free format text: SECURITY INTEREST;ASSIGNORS:MICRON TECHNOLOGY, INC.;MICRON SEMICONDUCTOR PRODUCTS, INC.;REEL/FRAME:047540/0001 Effective date: 20180703 Owner name: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT, IL Free format text: SECURITY INTEREST;ASSIGNORS:MICRON TECHNOLOGY, INC.;MICRON SEMICONDUCTOR PRODUCTS, INC.;REEL/FRAME:047540/0001 Effective date: 20180703 |
|
AS | Assignment |
Owner name: MICRON TECHNOLOGY, INC., IDAHO Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT;REEL/FRAME:047243/0001 Effective date: 20180629 |
|
AS | Assignment |
Owner name: MICRON TECHNOLOGY, INC., IDAHO Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT;REEL/FRAME:050937/0001 Effective date: 20190731 |
|
AS | Assignment |
Owner name: MICRON SEMICONDUCTOR PRODUCTS, INC., IDAHO Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT;REEL/FRAME:051028/0001 Effective date: 20190731 Owner name: MICRON TECHNOLOGY, INC., IDAHO Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT;REEL/FRAME:051028/0001 Effective date: 20190731 |