US20050086420A1 - Low latency buffer control system and method - Google Patents
Low latency buffer control system and method Download PDFInfo
- Publication number
- US20050086420A1 US20050086420A1 US10/994,027 US99402704A US2005086420A1 US 20050086420 A1 US20050086420 A1 US 20050086420A1 US 99402704 A US99402704 A US 99402704A US 2005086420 A1 US2005086420 A1 US 2005086420A1
- Authority
- US
- United States
- Prior art keywords
- transaction
- memory
- buffers
- bus
- buffer
- 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.)
- Abandoned
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/161—Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
- G06F13/1615—Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement using a concurrent pipeline structrure
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Definitions
- the present invention is a Continuation of Application Ser. No. 10/133,908, filed Apr. 25, 2002.
- the present invention relates to electronic circuitry and, more particularly, to buffer circuits for use with memories.
- Memory controller circuits can be used in a variety of computer systems (e.g., desktop personal computers, notebook computers, personal digital assistants, etc.) to facilitate the computer system's processor in accessing memory chips.
- These memory chips generally include the main memory of the computer system, which typically includes several dynamic random access memory (DRAM) chips.
- DRAM chips include, for example, synchronous DRAM (SDRAM), extended data out (EDO) DRAM, Rambus (R)DRAM, DDR (double data rate) and DRAM chips.
- SDRAM synchronous DRAM
- EEO extended data out
- R Rambus
- DDR double data rate
- the memory controller typically includes a memory interface for communicating with one or more of such DRAM chips via a memory bus.
- the memory controller includes buffers to drive signals onto the memory bus.
- the memory controller typically includes a system interface to communicate with system processor(s) via a system bus. The memory controller uses these interfaces to route data between the processor and the DRAM chips using appropriate address, control and data signals.
- the memory bus is terminated with resistors to a mid-range voltage.
- the output buffers are enabled (i.e., pulling up or pulling down the voltage of the memory bus lines) during idle periods, the buffers dissipate power during the idle periods. This power dissipation is undesirable in many applications.
- One method of reducing power dissipation by the buffers during idle periods is to implement the buffers as three-state buffers that present a high impedance to the memory bus when disabled. Once the idle period ends, the buffers are enabled, allowing them to drive signals onto the memory bus. However, driving the voltage levels of the memory bus lines takes a finite amount of time. Thus, such systems typically have a time period between when the buffers are enabled and when the signals on the memory bus are at valid logic levels. This “buffer enable” delay if large enough can undesirably increase latency in accessing the memory in some memory designs.
- FIG. 1 is a block diagram illustrating a system with memory output buffer control, according to one embodiment of the present invention.
- FIG. 2 is a flow diagram illustrating the operation of the system depicted in FIG. 1 , according to one embodiment of the present invention.
- FIG. 3 is a block diagram illustrating a portion of the memory controller depicted in FIG. 1 , according to one embodiment of the present invention.
- FIG. 4 is a flow diagram illustrating the operation of the memory controller depicted in FIG. 3 , according to one embodiment of the present invention.
- FIG. 5 is a block diagram illustrating a portion of the memory controller depicted in FIG. 1 , according to another embodiment of the present invention.
- FIG. 6 is a flow diagram illustrating the operation of the memory controller of FIG. 5 , according to one embodiment of the present invention.
- FIG. 7 is a flow diagram illustrating the operation of the memory controller of FIG. 5 , according to another embodiment of the present invention.
- FIG. 1 illustrates a system 10 having low latency buffer control, according to one embodiment of the present invention.
- this embodiment of system 10 includes a processor 11 , a memory controller 12 and a memory 13 .
- Memory 13 is a DRAM memory in the illustrated embodiment, but can be any type of memory used with a memory bus for which power dissipation is reduced when buffers driving the memory bus are disabled.
- this embodiment of memory controller 12 includes a buffer control circuit 14 and a set of N buffers 16 .
- FIG. 1 shows a buffer 16 1 of the N buffers, with the remaining buffers being omitted for clarity.
- Buffer control circuit 14 typically includes circuitry (e.g., combinatorial logic circuits) to provide enable signals to buffers 16 , timed to reduce latency in memory accesses.
- Memory controller 12 is connected to memory 13 and processor 11 via system bus 18 and memory bus 17 , respectively. More particularly, buffer 16 of memory controller 12 are connected to memory bus 17 .
- memory bus 17 has N bus lines, each being resistively terminated to a mid-range voltage, and system bus 18 has M bus lines.
- buffer control circuit 14 is connected to buffers 16 .
- buffer control circuit 14 is connected to the enable input terminals of buffers 16 .
- buffer control circuit 14 is connected to detect transactions being communicated on system bus 18 .
- FIG. 2 illustrates the operational flow of system 10 ( FIG. 1 ) in selectively enabling buffers 16 to reduce latency, according to one embodiment of the present invention.
- system 10 operates as follows.
- the system bus is monitored for transactions.
- memory controller 12 monitors system bus 18 for transactions. More particularly, buffer control circuit 14 of memory controller 12 monitors system bus 18 to detect transactions. This operation is represented by blocks 21 and 22 .
- buffers 16 are enabled.
- buffer control circuit 14 provides enable signals to the N buffers of buffers 16 .
- buffers 16 are conventional three-state buffers that present a high impedance to memory bus 17 when disabled, and either pull up or pull down the voltages of the bus lines of memory bus 17 when enabled.
- buffers 16 are enabled before the transaction is decoded; thereby ensuring the buffers are enabled before they are needed to drive signals on memory bus 17 . In this way, the latency effects of the aforementioned “buffer enable” delay can be significantly reduced or even eliminated for memory accesses.
- decode circuitry in memory controller 12 decodes the transaction.
- One function of the decode circuitry is to determine the “target agent” of the transaction. For example, for memory transactions, the targeted agent would be memory 13 . Other types of transactions (e.g., PCI transactions), the targeted agent would be a different element (e.g., a PCI card).
- the “buffer enable” delay transpires concurrently with the delay of the decode process, which, as described above, reduces or eliminates the impact of the “buffer enable” delay on memory access latency.
- a block 25 represents this operation.
- buffer control circuit 14 determines whether the transaction is a memory transaction by determining whether the decoded address is within an address range allocated to memory. A block 26 represents this operation.
- memory controller 12 performs the memory transaction as represented by a block 27 .
- Buffers 16 are then disabled.
- buffer controller circuit 14 disables the buffers by de-asserting the aforementioned enable signals.
- a block 28 represents this operation.
- the transaction is handled by the targeted agent as represented by a block 29 .
- memory controller 12 can ignore the transaction, which will also be received by the targeted agent, thereby allowing the target agent to perform the transaction.
- the operational flow then returns to block 21 , with buffers 16 being disabled.
- FIG. 3 illustrates a portion of memory controller 12 ( FIG. 1 ), according to one embodiment of the present invention.
- memory controller 12 includes a transaction store 31 and a decoder 32 .
- buffer control circuit 14 ( FIG. 1 ) includes a logic circuit 33 .
- transaction store 31 stores transactions received from system bus 18 .
- transaction store 31 is implemented with a register.
- Decoder 32 determines, as one of its functions, the targeted agent of a received transaction.
- decoder 32 is substantially similar to transaction decoders used in existing memory controllers.
- logic circuit 33 includes standard logic gates to generate the enable signals provided to buffers 16 with the desired timing.
- Transaction store 31 is connected to receive transactions from system bus 18 .
- Decoder 32 is connected to the output port of transaction store 31 .
- logic circuit 33 is connected to an output port of decoder 32 . Further, in this embodiment, logic circuit 33 is connected to monitor transactions received by transaction store 31 .
- buffers 16 have output leads connected to memory bus 17 . The operation of this embodiment of memory controller 12 in enabling buffers 16 is described below in conjunction with FIG. 4 .
- FIG. 4 illustrates the operational flow of memory controller 12 ( FIG. 3 ) in enabling its memory interface buffers, according to one embodiment of the present invention. Referring to FIGS. 3 and 4 , this embodiment of memory controller 12 operates as follows.
- This embodiment of memory controller 12 operates in general as described above in conjunction with FIG. 2 , with block 24 being described in more detail. Although previously described, blocks 21 , 22 and 24 - 29 are described again to include the interactions with the elements of FIG. 3 .
- Memory controller 12 performs blocks 21 and 22 to monitor and detect transactions being sent over the system bus.
- logic circuit 33 of memory controller 12 monitors system bus 18 to detect transactions.
- logic circuit 33 If logic circuit 33 does not detect a transaction in block 22 , the operational flow returns to block 21 . However in this embodiment, if logic circuit 33 does detect a transaction, logic circuit 33 asserts enable signals provided to buffers 16 . The asserted enable signals enables the buffers as described above for block 24 . A block 41 represents this operation.
- Blocks 41 and 42 of this embodiment are operations of block 24 ( FIG. 1 ). Although block 42 is shown in FIG. 4 as being performed after block 41 , in practice block 42 may be performed before or concurrently with block 41 .
- buffers 16 are enabled before the transaction is decoded; the buffers are enabled before they are needed to drive signals on memory bus 17 .
- buffer enable the latency effects of the aforementioned “buffer enable” delay can be significantly reduced or even eliminated for memory accesses.
- Memory controller 12 then performs block 25 to decode the received transaction.
- decoder 32 of memory controller 12 decodes the transaction, which includes determining the “target agent” of the transaction.
- Memory controller 12 then performs block 26 to determine whether the transaction is a memory transaction.
- decoder 32 determines the targeted agent of the transaction.
- memory controller 12 performs block 27 .
- memory controller 12 performs the memory transaction using circuitry (not shown) similar to that in existing memory controllers. Then memory controller 12 performs block 28 to disable buffers 16 .
- logic circuit 33 disables the buffers by de-asserting the aforementioned enable signals.
- block 26 if in block 26 the transaction is not a memory transaction, memory controller 12 performs block 29 , allowing the targeted agent to handle the transaction. In one embodiment, memory controller 12 simply ignores the non-memory transaction. The operational flow then proceeds to block 21 , with buffers 16 remaining disabled. Although block 28 is shown as being performed after block 29 under these circumstances, in some embodiments block 28 is performed before or concurrently with block 29 .
- FIG. 5 illustrates a portion of memory controller 12 ( FIG. 1 ), according to another embodiment of the present invention.
- This embodiment is similar to the embodiment of FIG. 3 , except that the transaction store is implemented as a queue or pipeline and the buffer control circuit includes a memory transaction detector connected to monitor transaction via the transaction store instead of directly.
- memory controller 12 includes a transaction queue 31 A and decoder 32 .
- buffer control circuit 14 ( FIG. 1 ) includes a logic circuit 33 A and a memory transaction detector 51 .
- memory transaction detector 51 is implemented as a decoder configured to decode only the address signals needed determine whether the transaction is a memory transaction.
- transaction queue 31 A stores multiple transactions received from system bus 18 .
- transaction queue 31 A is implemented with a FIFO (first in first out) buffer.
- Decoder 32 operates as described above in conjunction with FIG. 3 .
- Logic circuit 33 A is used in generating the enable signals provided to buffers 16 , responsive to the output signal of memory transaction detector 51 .
- Transaction queue 31 A is connected to receive transactions from system bus 18 .
- transaction queue 31 A is connected to decoder 32 and to memory transaction detector 51 .
- Memory transaction detector 51 is connected to logic circuit 33 A, which in turn is connected to buffers 16 . The operation of this embodiment of memory controller 12 in enabling buffers 16 is described below in conjunction with FIG. 6 .
- FIG. 6 illustrates the operation of memory controller 12 ( FIG. 5 ) in enabling its memory interface buffers, according to one embodiment of the present invention. Referring to FIGS. 5 and 6 , this embodiment of memory controller 12 operates as follows.
- Memory controller 12 performs blocks 21 and 22 to monitor and detect transactions being sent over the system bus.
- transaction queue 31 A of memory controller 12 monitors system bus 18 to detect transactions.
- transaction queue 31 A does not detect a transaction in block 22 , the operational flow returns to block 21 . However in this embodiment, if transaction queue 31 A does detect a transaction, transaction queue 31 A receives and stores the transaction. Transaction queue 31 A can store more than one transaction. A block 61 represents this operation.
- Memory controller 12 then performs block 25 to decode a transaction stored in transaction queue 31 A. More particularly, decoder 32 receives the “oldest” transaction stored in the transaction queue and decodes it as previously described.
- Memory controller 12 then performs block 26 to determine whether the transaction is a memory transaction.
- decoder 32 determines the targeted agent of the transaction.
- memory controller performs block 29 (as described above) and the operational flow returns to block 21 .
- memory controller 12 determines whether buffers 16 are enabled. In this embodiment, logic circuit 33 A determines whether these buffers are enabled. A block 62 represents this operation.
- memory controller 12 performs block 41 (described above) to enable the buffers.
- logic circuit 33 A asserts the enable signals to enable buffers 16 .
- memory controller 12 enables the buffers as previously described in conjunction with FIG. 4 by monitoring transaction queue 31 A.
- memory controller 12 After the buffers are enabled (either after performing block 41 or if the buffers were already enabled as found in block 62 ), memory controller 12 then receives the memory transaction from transaction queue 31 A, as represented by a block 63 .
- decoder 32 receives the memory transaction from transaction queue 31 A. Then memory controller 12 performs block 27 (as described previously) to execute the memory transaction.
- Memory controller 12 then checks the contents of transaction queue 31 A and determines whether it contains any unexecuted memory transactions.
- memory transaction detector 51 checks each transaction stored in transaction queue 31 A to determine whether the transaction is a memory transaction.
- memory transaction detector 51 provides a signal to logic circuit 33 A that indicates whether transaction queue 31 A contains a memory transaction. Blocks 64 and 65 represent these operations.
- memory transaction detector 51 can be configured to check a subset of the transactions stored in transaction queue 31 A rather than all of the transactions. For example, only the next transaction (or some small number of transactions) to be performed is checked in one embodiment. This embodiment may be advantageous for relatively large transaction queues by allowing the buffers to be disabled if the next few transactions in the queue are non-memory transactions.
- transaction queue 31 A does not contain a memory transaction, memory controller 12 performs block 28 to disable buffers 16 .
- logic circuit 33 A receives the output signal from memory transaction detector 51 and if the signal indicates that there are no pending memory transaction, logic circuit 33 A de-asserts the enable signals.
- transaction queue 31 A does contain a memory transaction
- the operational flow returns to block 63 to receive the next transaction (which need not be a memory transaction) from transaction queue 31 A, leaving buffers 16 enabled.
- FIG. 7 illustrates the operation of memory controller 12 ( FIG. 5 ), according to another embodiment of the present invention.
- memory controller 12 operates as follows to enable buffers 16 .
- memory transaction detector 51 monitors the contents of transaction queue 31 A for transactions.
- a block 71 represents this operation.
- memory transaction detector 51 decodes a stored transaction to determine whether it is a memory transaction.
- memory transaction detector 51 may be configured to determine whether the transaction to be outputted by transaction queue 31 A during the next cycle is a memory transaction.
- a block 72 represents this operation.
- block 41 is performed as described above to enable the buffers.
- memory transaction detector 51 provides a signal to logic circuit 33 A to assert the enable signals provided to buffers 16 .
- Memory controller 12 then performs block 25 to decode a transaction stored in transaction queue 31 A. More particularly, decoder 32 receives the “oldest” transaction stored in the transaction queue and decodes it as previously described.
- Memory controller 12 then performs block 26 to determine whether this transaction is a memory transaction.
- decoder 32 determines this targeted agent of the transaction to determine whether the transaction is a memory transaction.
- memory controller 12 performs block 27 as previously described to execute the memory transaction and then block 28 to disable buffers 16 .
- logic circuit 33 A de-asserts the enable signals to disable buffers 16 .
- memory controller 12 performs block 29 as previously described, allowing the targeted agent to perform the transaction.
- embodiments of the present description may be implemented not only within a semiconductor chip but also within machine-readable media.
- the designs described above may be stored upon and/or embedded within machine readable media associated with a design tool used for designing semiconductor devices. Examples include a netlist formatted in the VHSIC Hardware Description Language (VHDL) language, Verilog language or SPICE language. Some netlist examples include: a behavioral level netlist, a register transfer level (RTL) netlist, a gate level netlist and a transistor level netlist.
- VHDL VHSIC Hardware Description Language
- RTL register transfer level
- Machine-readable media also include media having layout information such as a GDS-II file.
- netlist files or other machine-readable media for semiconductor chip design may be used in a simulation environment to perform the methods of the teachings described above.
- embodiments of this invention may be used as or to support a software program executed upon some form of processing core (such as the CPU of a computer) or otherwise implemented or realized upon or within a machine-readable medium.
- a machine-readable medium includes any mechanism for storing or transmitting information in a form readable by a machine (e.g., a computer).
- a machine-readable medium can include such as a read only memory (ROM); a random access memory (RAM); a magnetic disk storage media; an optical storage media; and a flash memory device, etc.
- a machine-readable medium can include propagated signals such as electrical, optical, acoustical or other form of propagated signals (e.g., carrier waves, infrared signals, digital signals, etc.).
Abstract
A memory controller (MC) includes a buffer control circuit (BCC) to enable/disable buffers coupled to a terminated bus. The BCC can detect transactions and speculatively enable the buffers before the transaction is completely decoded. If the transaction is targeted for the terminated bus, the buffers will be ready to drive signals onto the terminated bus by the time the transaction is ready to be performed, thereby eliminating the “enable buffer” delay incurred in some conventional MCs. If the transaction is not targeted for the terminated bus, the BCC disables the buffers to save power. In MCs that queue transactions, the BCC can snoop the queue to find transactions targeted for the terminated bus and begin enabling the buffers before these particular transactions are fully decoded.
Description
- The present invention is a Continuation of Application Ser. No. 10/133,908, filed Apr. 25, 2002.
- The present invention relates to electronic circuitry and, more particularly, to buffer circuits for use with memories.
- Memory controller circuits can be used in a variety of computer systems (e.g., desktop personal computers, notebook computers, personal digital assistants, etc.) to facilitate the computer system's processor in accessing memory chips. These memory chips generally include the main memory of the computer system, which typically includes several dynamic random access memory (DRAM) chips. DRAM chips include, for example, synchronous DRAM (SDRAM), extended data out (EDO) DRAM, Rambus (R)DRAM, DDR (double data rate) and DRAM chips. The memory controller typically includes a memory interface for communicating with one or more of such DRAM chips via a memory bus. The memory controller includes buffers to drive signals onto the memory bus. In addition, the memory controller typically includes a system interface to communicate with system processor(s) via a system bus. The memory controller uses these interfaces to route data between the processor and the DRAM chips using appropriate address, control and data signals.
- In some systems, the memory bus is terminated with resistors to a mid-range voltage. As a result, if the output buffers are enabled (i.e., pulling up or pulling down the voltage of the memory bus lines) during idle periods, the buffers dissipate power during the idle periods. This power dissipation is undesirable in many applications.
- One method of reducing power dissipation by the buffers during idle periods is to implement the buffers as three-state buffers that present a high impedance to the memory bus when disabled. Once the idle period ends, the buffers are enabled, allowing them to drive signals onto the memory bus. However, driving the voltage levels of the memory bus lines takes a finite amount of time. Thus, such systems typically have a time period between when the buffers are enabled and when the signals on the memory bus are at valid logic levels. This “buffer enable” delay if large enough can undesirably increase latency in accessing the memory in some memory designs.
- Non-limiting and non-exhaustive embodiments of the present invention are described with reference to the following figures, wherein like reference numerals refer to like parts throughout the various views unless otherwise specified.
-
FIG. 1 is a block diagram illustrating a system with memory output buffer control, according to one embodiment of the present invention. -
FIG. 2 is a flow diagram illustrating the operation of the system depicted inFIG. 1 , according to one embodiment of the present invention. -
FIG. 3 is a block diagram illustrating a portion of the memory controller depicted inFIG. 1 , according to one embodiment of the present invention. -
FIG. 4 is a flow diagram illustrating the operation of the memory controller depicted inFIG. 3 , according to one embodiment of the present invention. -
FIG. 5 is a block diagram illustrating a portion of the memory controller depicted inFIG. 1 , according to another embodiment of the present invention. -
FIG. 6 is a flow diagram illustrating the operation of the memory controller ofFIG. 5 , according to one embodiment of the present invention. -
FIG. 7 is a flow diagram illustrating the operation of the memory controller ofFIG. 5 , according to another embodiment of the present invention. -
FIG. 1 illustrates asystem 10 having low latency buffer control, according to one embodiment of the present invention. In particular, this embodiment ofsystem 10 includes aprocessor 11, amemory controller 12 and amemory 13.Memory 13 is a DRAM memory in the illustrated embodiment, but can be any type of memory used with a memory bus for which power dissipation is reduced when buffers driving the memory bus are disabled. - In addition, this embodiment of
memory controller 12 includes abuffer control circuit 14 and a set ofN buffers 16.FIG. 1 shows abuffer 16 1 of the N buffers, with the remaining buffers being omitted for clarity.Buffer control circuit 14 typically includes circuitry (e.g., combinatorial logic circuits) to provide enable signals tobuffers 16, timed to reduce latency in memory accesses. - The elements of this embodiment of
system 10 are interconnected as follows.Memory controller 12 is connected tomemory 13 andprocessor 11 viasystem bus 18 andmemory bus 17, respectively. More particularly,buffer 16 ofmemory controller 12 are connected tomemory bus 17. In this embodiment,memory bus 17 has N bus lines, each being resistively terminated to a mid-range voltage, andsystem bus 18 has M bus lines. - In this embodiment of
memory controller 12,buffer control circuit 14 is connected tobuffers 16. In particular,buffer control circuit 14 is connected to the enable input terminals ofbuffers 16. Further, in some embodiments,buffer control circuit 14 is connected to detect transactions being communicated onsystem bus 18. -
FIG. 2 illustrates the operational flow of system 10 (FIG. 1 ) in selectively enablingbuffers 16 to reduce latency, according to one embodiment of the present invention. Referring toFIGS. 1 and 2 ,system 10 operates as follows. - The system bus is monitored for transactions. In one embodiment,
memory controller 12monitors system bus 18 for transactions. More particularly,buffer control circuit 14 ofmemory controller 12monitors system bus 18 to detect transactions. This operation is represented byblocks - If a transaction is detected in
block 22, the operational flow proceeds to ablock 24; however, if no transaction is detected inblock 22, the operational flow returns toblock 21. - As shown in
block 24,buffers 16 are enabled. In one embodiment,buffer control circuit 14 provides enable signals to the N buffers ofbuffers 16. In this embodiment,buffers 16 are conventional three-state buffers that present a high impedance tomemory bus 17 when disabled, and either pull up or pull down the voltages of the bus lines ofmemory bus 17 when enabled. Thus, in this embodiment,buffers 16 are enabled before the transaction is decoded; thereby ensuring the buffers are enabled before they are needed to drive signals onmemory bus 17. In this way, the latency effects of the aforementioned “buffer enable” delay can be significantly reduced or even eliminated for memory accesses. - The detected transaction is then decoded. In one embodiment, decode circuitry in
memory controller 12 decodes the transaction. One function of the decode circuitry is to determine the “target agent” of the transaction. For example, for memory transactions, the targeted agent would bememory 13. Other types of transactions (e.g., PCI transactions), the targeted agent would be a different element (e.g., a PCI card). In one embodiment, the “buffer enable” delay transpires concurrently with the delay of the decode process, which, as described above, reduces or eliminates the impact of the “buffer enable” delay on memory access latency. Ablock 25 represents this operation. - The decoded transaction is then evaluated to determine whether the transaction is a memory transaction. In one embodiment,
buffer control circuit 14 determines whether the transaction is a memory transaction by determining whether the decoded address is within an address range allocated to memory. Ablock 26 represents this operation. - If the transaction is a memory transaction,
memory controller 12 performs the memory transaction as represented by ablock 27.Buffers 16 are then disabled. In one embodiment,buffer controller circuit 14 disables the buffers by de-asserting the aforementioned enable signals. Ablock 28 represents this operation. - However, if in
block 26 the transaction is determined to be a non-memory transaction (e.g., a PCI transaction), the transaction is handled by the targeted agent as represented by ablock 29. For example,memory controller 12 can ignore the transaction, which will also be received by the targeted agent, thereby allowing the target agent to perform the transaction. The operational flow then returns to block 21, withbuffers 16 being disabled. -
FIG. 3 illustrates a portion of memory controller 12 (FIG. 1 ), according to one embodiment of the present invention. In this embodiment,memory controller 12 includes atransaction store 31 and a decoder 32. In addition, buffer control circuit 14 (FIG. 1 ) includes a logic circuit 33. - In this embodiment,
transaction store 31 stores transactions received fromsystem bus 18. In one embodiment,transaction store 31 is implemented with a register. Decoder 32 determines, as one of its functions, the targeted agent of a received transaction. In one embodiment, decoder 32 is substantially similar to transaction decoders used in existing memory controllers. In this embodiment, logic circuit 33 includes standard logic gates to generate the enable signals provided tobuffers 16 with the desired timing. -
Transaction store 31 is connected to receive transactions fromsystem bus 18. Decoder 32 is connected to the output port oftransaction store 31. In addition tobuffers 16, logic circuit 33 is connected to an output port of decoder 32. Further, in this embodiment, logic circuit 33 is connected to monitor transactions received bytransaction store 31. As previously described, buffers 16 have output leads connected tomemory bus 17. The operation of this embodiment ofmemory controller 12 in enablingbuffers 16 is described below in conjunction withFIG. 4 . -
FIG. 4 illustrates the operational flow of memory controller 12 (FIG. 3 ) in enabling its memory interface buffers, according to one embodiment of the present invention. Referring toFIGS. 3 and 4 , this embodiment ofmemory controller 12 operates as follows. - This embodiment of
memory controller 12 operates in general as described above in conjunction withFIG. 2 , withblock 24 being described in more detail. Although previously described, blocks 21, 22 and 24-29 are described again to include the interactions with the elements ofFIG. 3 . -
Memory controller 12 performsblocks memory controller 12monitors system bus 18 to detect transactions. - If logic circuit 33 does not detect a transaction in
block 22, the operational flow returns to block 21. However in this embodiment, if logic circuit 33 does detect a transaction, logic circuit 33 asserts enable signals provided to buffers 16. The asserted enable signals enables the buffers as described above forblock 24. Ablock 41 represents this operation. - In addition, the transaction is received by the memory controller. In this embodiment,
transaction store 31 receives and stores the transaction. Ablock 42 represents this operation.Blocks FIG. 1 ). Althoughblock 42 is shown inFIG. 4 as being performed afterblock 41, inpractice block 42 may be performed before or concurrently withblock 41. - As previously described, because
buffers 16 are enabled before the transaction is decoded; the buffers are enabled before they are needed to drive signals onmemory bus 17. Thus, the latency effects of the aforementioned “buffer enable” delay can be significantly reduced or even eliminated for memory accesses. -
Memory controller 12 then performs block 25 to decode the received transaction. In this embodiment, decoder 32 ofmemory controller 12 decodes the transaction, which includes determining the “target agent” of the transaction. -
Memory controller 12 then performs block 26 to determine whether the transaction is a memory transaction. In this embodiment, decoder 32 determines the targeted agent of the transaction. - If the transaction is a memory transaction,
memory controller 12 performsblock 27. In one embodiment,memory controller 12 performs the memory transaction using circuitry (not shown) similar to that in existing memory controllers. Thenmemory controller 12 performsblock 28 to disablebuffers 16. In this embodiment, logic circuit 33 disables the buffers by de-asserting the aforementioned enable signals. - However, if in
block 26 the transaction is not a memory transaction,memory controller 12 performsblock 29, allowing the targeted agent to handle the transaction. In one embodiment,memory controller 12 simply ignores the non-memory transaction. The operational flow then proceeds to block 21, withbuffers 16 remaining disabled. Althoughblock 28 is shown as being performed afterblock 29 under these circumstances, in some embodiments block 28 is performed before or concurrently withblock 29. -
FIG. 5 illustrates a portion of memory controller 12 (FIG. 1 ), according to another embodiment of the present invention. This embodiment is similar to the embodiment ofFIG. 3 , except that the transaction store is implemented as a queue or pipeline and the buffer control circuit includes a memory transaction detector connected to monitor transaction via the transaction store instead of directly. More particularly, in this embodiment,memory controller 12 includes a transaction queue 31A and decoder 32. In addition, buffer control circuit 14 (FIG. 1 ) includes alogic circuit 33A and amemory transaction detector 51. In one embodiment,memory transaction detector 51 is implemented as a decoder configured to decode only the address signals needed determine whether the transaction is a memory transaction. - In this embodiment, transaction queue 31A stores multiple transactions received from
system bus 18. In one embodiment, transaction queue 31A is implemented with a FIFO (first in first out) buffer. Decoder 32 operates as described above in conjunction withFIG. 3 .Logic circuit 33A is used in generating the enable signals provided tobuffers 16, responsive to the output signal ofmemory transaction detector 51. - Transaction queue 31A is connected to receive transactions from
system bus 18. In addition, transaction queue 31A is connected to decoder 32 and tomemory transaction detector 51.Memory transaction detector 51 is connected tologic circuit 33A, which in turn is connected to buffers 16. The operation of this embodiment ofmemory controller 12 in enablingbuffers 16 is described below in conjunction withFIG. 6 . -
FIG. 6 illustrates the operation of memory controller 12 (FIG. 5 ) in enabling its memory interface buffers, according to one embodiment of the present invention. Referring toFIGS. 5 and 6 , this embodiment ofmemory controller 12 operates as follows. -
Memory controller 12 performsblocks memory controller 12monitors system bus 18 to detect transactions. - If transaction queue 31A does not detect a transaction in
block 22, the operational flow returns to block 21. However in this embodiment, if transaction queue 31A does detect a transaction, transaction queue 31A receives and stores the transaction. Transaction queue 31A can store more than one transaction. Ablock 61 represents this operation. -
Memory controller 12 then performs block 25 to decode a transaction stored in transaction queue 31A. More particularly, decoder 32 receives the “oldest” transaction stored in the transaction queue and decodes it as previously described. -
Memory controller 12 then performs block 26 to determine whether the transaction is a memory transaction. In this embodiment, decoder 32 determines the targeted agent of the transaction. In the transaction is not a memory transaction, memory controller performs block 29 (as described above) and the operational flow returns to block 21. - However, if the transaction is a memory transaction,
memory controller 12 determines whetherbuffers 16 are enabled. In this embodiment,logic circuit 33A determines whether these buffers are enabled. Ablock 62 represents this operation. - If the buffers are not enabled,
memory controller 12 performs block 41 (described above) to enable the buffers. In this embodiment,logic circuit 33A asserts the enable signals to enablebuffers 16. In one embodiment,memory controller 12 enables the buffers as previously described in conjunction withFIG. 4 by monitoring transaction queue 31A. - After the buffers are enabled (either after performing
block 41 or if the buffers were already enabled as found in block 62),memory controller 12 then receives the memory transaction from transaction queue 31A, as represented by a block 63. In this embodiment, decoder 32 receives the memory transaction from transaction queue 31A. Thenmemory controller 12 performs block 27 (as described previously) to execute the memory transaction. -
Memory controller 12 then checks the contents of transaction queue 31A and determines whether it contains any unexecuted memory transactions. In this embodiment,memory transaction detector 51 checks each transaction stored in transaction queue 31A to determine whether the transaction is a memory transaction. In one embodiment,memory transaction detector 51 provides a signal tologic circuit 33A that indicates whether transaction queue 31A contains a memory transaction.Blocks 64 and 65 represent these operations. In some embodiments,memory transaction detector 51 can be configured to check a subset of the transactions stored in transaction queue 31A rather than all of the transactions. For example, only the next transaction (or some small number of transactions) to be performed is checked in one embodiment. This embodiment may be advantageous for relatively large transaction queues by allowing the buffers to be disabled if the next few transactions in the queue are non-memory transactions. - If transaction queue 31A does not contain a memory transaction,
memory controller 12 performsblock 28 to disablebuffers 16. In this embodiment,logic circuit 33A receives the output signal frommemory transaction detector 51 and if the signal indicates that there are no pending memory transaction,logic circuit 33A de-asserts the enable signals. - However, if transaction queue 31A does contain a memory transaction, the operational flow returns to block 63 to receive the next transaction (which need not be a memory transaction) from transaction queue 31A, leaving
buffers 16 enabled. -
FIG. 7 illustrates the operation of memory controller 12 (FIG. 5 ), according to another embodiment of the present invention. Referring toFIGS. 5 and 7 ,memory controller 12 operates as follows to enablebuffers 16. - The transactions received and stored by
memory controller 12 are monitored for memory transactions. In one embodiment,memory transaction detector 51 monitors the contents of transaction queue 31A for transactions. Ablock 71 represents this operation. - The stored transactions are then checked to determine whether any are memory transactions. In one embodiment,
memory transaction detector 51 decodes a stored transaction to determine whether it is a memory transaction. For example,memory transaction detector 51 may be configured to determine whether the transaction to be outputted by transaction queue 31A during the next cycle is a memory transaction. Ablock 72 represents this operation. - If the transaction checked in
block 72 is not a memory transaction, the operational flow returns to block 71. However, if the transaction is a memory transaction, block 41 is performed as described above to enable the buffers. In this embodiment,memory transaction detector 51 provides a signal tologic circuit 33A to assert the enable signals provided to buffers 16. -
Memory controller 12 then performs block 25 to decode a transaction stored in transaction queue 31A. More particularly, decoder 32 receives the “oldest” transaction stored in the transaction queue and decodes it as previously described. -
Memory controller 12 then performs block 26 to determine whether this transaction is a memory transaction. In this embodiment, decoder 32 determines this targeted agent of the transaction to determine whether the transaction is a memory transaction. - If this transaction is a memory transaction,
memory controller 12 performsblock 27 as previously described to execute the memory transaction and then block 28 to disablebuffers 16. In this embodiment,logic circuit 33A de-asserts the enable signals to disablebuffers 16. However, if the transaction is not a memory transaction,memory controller 12 performsblock 29 as previously described, allowing the targeted agent to perform the transaction. - Reference throughout this specification to “one embodiment” or “an embodiment” means that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment of the present invention. Thus, the appearances of the phrases “in one embodiment” or “in an embodiment” in various places throughout this specification are not necessarily all referring to the same embodiment. Furthermore, the particular features, structures, or characteristics may be combined in any suitable manner in one or more embodiments.
- In addition, embodiments of the present description may be implemented not only within a semiconductor chip but also within machine-readable media. For example, the designs described above may be stored upon and/or embedded within machine readable media associated with a design tool used for designing semiconductor devices. Examples include a netlist formatted in the VHSIC Hardware Description Language (VHDL) language, Verilog language or SPICE language. Some netlist examples include: a behavioral level netlist, a register transfer level (RTL) netlist, a gate level netlist and a transistor level netlist. Machine-readable media also include media having layout information such as a GDS-II file. Furthermore, netlist files or other machine-readable media for semiconductor chip design may be used in a simulation environment to perform the methods of the teachings described above.
- Thus, embodiments of this invention may be used as or to support a software program executed upon some form of processing core (such as the CPU of a computer) or otherwise implemented or realized upon or within a machine-readable medium. A machine-readable medium includes any mechanism for storing or transmitting information in a form readable by a machine (e.g., a computer). For example, a machine-readable medium can include such as a read only memory (ROM); a random access memory (RAM); a magnetic disk storage media; an optical storage media; and a flash memory device, etc. In addition, a machine-readable medium can include propagated signals such as electrical, optical, acoustical or other form of propagated signals (e.g., carrier waves, infrared signals, digital signals, etc.).
- Although the present invention has been described in connection with a preferred form of practicing it and modifications thereto, those of ordinary skill in the art will understand that many other modifications can be made to the invention within the scope of the claims that follow. Accordingly, it is not intended that the scope of the invention in any way be limited by the above description, but instead be determined entirely by reference to the claims that follow.
Claims (27)
1. A method, comprising:
monitoring a first bus for transactions;
enabling at least one buffer when a transaction is detected, the at least one buffer to drive a signal on a second bus;
determining whether the detected transaction is a memory transaction; and
disabling the at least one buffer if the transaction is not a memory transaction.
2. The method of claim 1 , further comprising decoding the detected transaction.
3. The method of claim 1 , further comprising storing the detected transaction in a storage element.
4. The method of claim 1 , terminating the second bus to a mid-range voltage.
5. An apparatus, comprising:
means for monitoring a first bus for transactions;
a buffer to drive a signal on a targeted memory bus;
means for enabling the buffer when a transaction is detected;
means for determining whether the detected transaction is a transaction for a device coupled to the targeted memory bus; and
means for disabling the buffer if the detected transaction is determined not to be a transaction for a device coupled to the targeted memory bus.
6. The apparatus of claim 5 , further comprising means for receiving the transaction.
7. The apparatus of claim 6 , wherein the means for receiving includes a storage device.
8. The apparatus of claim 5 , wherein the second bus is terminated to a mid-range voltage.
9. A method, comprising:
monitoring a transaction queue;
decoding a transaction in the transaction queue;
determining whether the decoded transaction is a memory transaction; and
disabling at least one buffer coupled to a memory bus if the transaction is not a memory transaction.
10. The method of claim 9 , further comprising presenting a high impedance to the memory bus when the buffer is disabled.
11. The method of claim 9 , further comprising terminating the memory bus to a mid-range voltage.
12. A method, comprising:
monitoring a first bus to detect transactions;
storing detected transactions in a queue;
decoding a transaction being output by the queue;
determining whether the decoded transaction is targeted for a memory bus;
enabling at least one buffer if not already enabled if the decoded transaction is targeted for the memory bus, the at least one buffer being coupled to the memory bus; and
disabling the at least one buffer if the decoded transaction is not targeted for the memory bus.
13. The method of claim 12 , further comprising delaying performance of the decoded transaction until after enabling the at least one buffer.
14. The method of claim 13 , further comprising:
performing the decoded transaction; and
disabling the at least one buffer after performing the decoded transaction.
15. A method, comprising:
monitoring a first bus to detect transactions;
storing detected transactions in a queue;
decoding a transaction being output by the queue;
determining whether the transaction is a memory transaction;
determining whether a plurality of buffers are enabled, wherein the plurality of buffers are coupled to a second bus;
enabling the plurality of buffers if the transaction is a memory transaction;
determining whether the transactions stored in queue are memory transactions; and
disabling the plurality of buffers if the transaction is not a memory transaction.
16. The method of claim 15 , further comprising disabling the plurality of buffers after performing the memory transaction.
17. The method of claim 16 , further comprising the plurality of buffers presenting a high impedance to the memory bus.
18. The method of claim 17 , further comprising terminating the memory bus to a mid-range voltage.
19. The method of claim 16 , further comprising decoding the memory transaction.
20. The method of claim 19 , further comprising enabling the plurality of buffers while the memory transaction is being decoded.
21. A system comprising:
a processor;
a synchronous dynamic random access memory (SDRAM);
a memory controller coupled to the processor and to the SDRAM, wherein the memory controller includes:
a plurality of buffers coupled to a terminated memory bus;
a decoder to decode a transaction sent by the processor; and
a buffer control circuit, coupled to the decoder and the plurality of buffers, to detect the transaction and, in response thereto, to enable the plurality of buffers before the decoder completes decoding the transaction, wherein the buffer control circuit is configurable to determine whether the transaction is a memory transaction and to disable the plurality of buffers if the transaction is not a memory transaction.
22. The system of claim 21 , wherein the memory controller further comprises a transaction store coupled to the decoder.
23. The system of claim 22 , wherein the transaction store comprises a queue.
24. A system comprising:
a processor;
a synchronous dynamic random access memory (SDRAM);
a memory controller coupled to the processor and the SDRAM, wherein the memory controller includes:
a plurality of buffers coupled to a memory bus, the memory bus being terminated to a mid-range voltage;
a transaction store to store transactions sent by the processor;
a decoder coupled to the transaction store to decode a transaction being output by the transaction store; and
a buffer control circuit coupled to the transaction store and the plurality of buffers, wherein the buffer control circuit is configurable to disable the plurality of buffers after the transaction is performed if the transaction store does not contain other transactions targeted for the terminated memory bus,
wherein the buffer control circuit is further configurable to determine whether a decoded transaction from the transaction store is targeted for the memory bus and in response thereto enable the plurality of buffers if they are not already enabled.
25. The system of claim 24 , wherein the buffer control circuit is further configurable to allow the plurality of buffers to remain enabled after the transaction is performed if the transaction store does contain a transaction targeted for the memory bus.
26. The system of claim 24 , wherein the transaction store comprises a queue.
27. The system of claim 24 , wherein the buffer control circuit is further configurable to delay performance of the decoded transaction after enabling the plurality of buffers.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/994,027 US20050086420A1 (en) | 2002-04-25 | 2004-11-19 | Low latency buffer control system and method |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/133,908 US6842831B2 (en) | 2002-04-25 | 2002-04-25 | Low latency buffer control system and method |
US10/994,027 US20050086420A1 (en) | 2002-04-25 | 2004-11-19 | Low latency buffer control system and method |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US10/133,908 Continuation US6842831B2 (en) | 2002-04-25 | 2002-04-25 | Low latency buffer control system and method |
Publications (1)
Publication Number | Publication Date |
---|---|
US20050086420A1 true US20050086420A1 (en) | 2005-04-21 |
Family
ID=29249096
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US10/133,908 Expired - Lifetime US6842831B2 (en) | 2002-04-25 | 2002-04-25 | Low latency buffer control system and method |
US10/994,027 Abandoned US20050086420A1 (en) | 2002-04-25 | 2004-11-19 | Low latency buffer control system and method |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US10/133,908 Expired - Lifetime US6842831B2 (en) | 2002-04-25 | 2002-04-25 | Low latency buffer control system and method |
Country Status (1)
Country | Link |
---|---|
US (2) | US6842831B2 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090094389A1 (en) * | 2007-10-09 | 2009-04-09 | Seagate Technology, Llc | System and method of matching data rates |
US8122322B2 (en) | 2007-07-31 | 2012-02-21 | Seagate Technology Llc | System and method of storing reliability data |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7584311B2 (en) * | 2003-03-21 | 2009-09-01 | Lsi Corporation | Elasticity buffer restarting |
KR100825548B1 (en) * | 2004-08-17 | 2008-04-28 | 마쯔시다덴기산교 가부시키가이샤 | Information recording medium, data sorting device, and data reproducing device |
TWI377564B (en) * | 2004-08-17 | 2012-11-21 | Panasonic Corp | Information storage medium and multiplexing device |
US7552252B2 (en) * | 2006-07-18 | 2009-06-23 | Via Technologies, Inc. | Memory interface circuit and method |
KR101499118B1 (en) * | 2006-09-14 | 2015-03-05 | 마벨 월드 트레이드 리미티드 | Ad-hoc network power save system and method |
US8713259B2 (en) * | 2010-11-17 | 2014-04-29 | Advanced Micro Devices, Inc. | Method and apparatus for reacquiring lines in a cache |
US9361103B2 (en) * | 2012-11-02 | 2016-06-07 | Advanced Micro Devices, Inc. | Store replay policy |
KR102514717B1 (en) | 2016-10-24 | 2023-03-27 | 삼성전자주식회사 | Memory controller and memory system including the same |
Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5473572A (en) * | 1993-02-16 | 1995-12-05 | Chips And Technologies, Inc. | Power saving system for a memory controller |
US5784705A (en) * | 1996-07-15 | 1998-07-21 | Mosys, Incorporated | Method and structure for performing pipeline burst accesses in a semiconductor memory |
US5848022A (en) * | 1997-05-02 | 1998-12-08 | Integrated Silicon Solution Inc. | Address enable circuit in synchronous SRAM |
US5931938A (en) * | 1996-12-12 | 1999-08-03 | Sun Microsystems, Inc. | Multiprocessor computer having configurable hardware system domains |
US6038673A (en) * | 1998-11-03 | 2000-03-14 | Intel Corporation | Computer system with power management scheme for DRAM devices |
US6073204A (en) * | 1997-04-23 | 2000-06-06 | Micron Technology, Inc. | Memory system having flexible architecture and method |
US6111812A (en) * | 1999-07-23 | 2000-08-29 | Micron Technology, Inc. | Method and apparatus for adjusting control signal timing in a memory device |
US6233661B1 (en) * | 1998-04-28 | 2001-05-15 | Compaq Computer Corporation | Computer system with memory controller that hides the next cycle during the current cycle |
US6269433B1 (en) * | 1998-04-29 | 2001-07-31 | Compaq Computer Corporation | Memory controller using queue look-ahead to reduce memory latency |
US6357018B1 (en) * | 1999-01-26 | 2002-03-12 | Dell Usa, L.P. | Method and apparatus for determining continuity and integrity of a RAMBUS channel in a computer system |
US6510099B1 (en) * | 2001-09-28 | 2003-01-21 | Intel Corporation | Memory control with dynamic driver disabling |
US6523089B2 (en) * | 2000-07-19 | 2003-02-18 | Rambus Inc. | Memory controller with power management logic |
US6535450B1 (en) * | 2000-08-18 | 2003-03-18 | Micron Technology, Inc. | Method for selecting one or a bank of memory devices |
US6671815B2 (en) * | 1989-12-15 | 2003-12-30 | Hitachi, Ltd. | Low power consumption semiconductor integrated circuit device and microprocessor |
US6775756B1 (en) * | 1999-10-11 | 2004-08-10 | Ati International Srl | Method and apparatus for out of order memory processing within an in order processor |
-
2002
- 2002-04-25 US US10/133,908 patent/US6842831B2/en not_active Expired - Lifetime
-
2004
- 2004-11-19 US US10/994,027 patent/US20050086420A1/en not_active Abandoned
Patent Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6671815B2 (en) * | 1989-12-15 | 2003-12-30 | Hitachi, Ltd. | Low power consumption semiconductor integrated circuit device and microprocessor |
US5473572A (en) * | 1993-02-16 | 1995-12-05 | Chips And Technologies, Inc. | Power saving system for a memory controller |
US5784705A (en) * | 1996-07-15 | 1998-07-21 | Mosys, Incorporated | Method and structure for performing pipeline burst accesses in a semiconductor memory |
US5931938A (en) * | 1996-12-12 | 1999-08-03 | Sun Microsystems, Inc. | Multiprocessor computer having configurable hardware system domains |
US6073204A (en) * | 1997-04-23 | 2000-06-06 | Micron Technology, Inc. | Memory system having flexible architecture and method |
US5848022A (en) * | 1997-05-02 | 1998-12-08 | Integrated Silicon Solution Inc. | Address enable circuit in synchronous SRAM |
US6233661B1 (en) * | 1998-04-28 | 2001-05-15 | Compaq Computer Corporation | Computer system with memory controller that hides the next cycle during the current cycle |
US6269433B1 (en) * | 1998-04-29 | 2001-07-31 | Compaq Computer Corporation | Memory controller using queue look-ahead to reduce memory latency |
US6038673A (en) * | 1998-11-03 | 2000-03-14 | Intel Corporation | Computer system with power management scheme for DRAM devices |
US6357018B1 (en) * | 1999-01-26 | 2002-03-12 | Dell Usa, L.P. | Method and apparatus for determining continuity and integrity of a RAMBUS channel in a computer system |
US6111812A (en) * | 1999-07-23 | 2000-08-29 | Micron Technology, Inc. | Method and apparatus for adjusting control signal timing in a memory device |
US6775756B1 (en) * | 1999-10-11 | 2004-08-10 | Ati International Srl | Method and apparatus for out of order memory processing within an in order processor |
US6523089B2 (en) * | 2000-07-19 | 2003-02-18 | Rambus Inc. | Memory controller with power management logic |
US6535450B1 (en) * | 2000-08-18 | 2003-03-18 | Micron Technology, Inc. | Method for selecting one or a bank of memory devices |
US6510099B1 (en) * | 2001-09-28 | 2003-01-21 | Intel Corporation | Memory control with dynamic driver disabling |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8122322B2 (en) | 2007-07-31 | 2012-02-21 | Seagate Technology Llc | System and method of storing reliability data |
US20090094389A1 (en) * | 2007-10-09 | 2009-04-09 | Seagate Technology, Llc | System and method of matching data rates |
US9201790B2 (en) | 2007-10-09 | 2015-12-01 | Seagate Technology Llc | System and method of matching data rates |
Also Published As
Publication number | Publication date |
---|---|
US20030204668A1 (en) | 2003-10-30 |
US6842831B2 (en) | 2005-01-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10783104B2 (en) | Memory request management system | |
US6820169B2 (en) | Memory control with lookahead power management | |
US5873114A (en) | Integrated processor and memory control unit including refresh queue logic for refreshing DRAM during idle cycles | |
EP1754229B1 (en) | System and method for improving performance in computer memory systems supporting multiple memory access latencies | |
US6026464A (en) | Memory control system and method utilizing distributed memory controllers for multibank memory | |
US6940760B2 (en) | Data strobe gating for source synchronous communications interface | |
US6088772A (en) | Method and apparatus for improving system performance when reordering commands | |
KR101270848B1 (en) | Multi-ported memory controller with ports associated with traffic classes | |
US6510099B1 (en) | Memory control with dynamic driver disabling | |
US6640292B1 (en) | System and method for controlling retire buffer operation in a memory system | |
JP4846182B2 (en) | Memory device with post-write per command | |
KR20070049676A (en) | Method and apparatus for transmitting memory pre-fetch commands on a bus | |
US7436204B2 (en) | Apparatus and method for determining on die termination modes in memory device | |
US11474959B2 (en) | Memory module with reduced read/write turnaround overhead | |
US5519872A (en) | Fast address latch with automatic address incrementing | |
EP3805937A1 (en) | Memory device including interface circuit and method of operating the same | |
US6842831B2 (en) | Low latency buffer control system and method | |
US6279065B1 (en) | Computer system with improved memory access | |
US6816932B2 (en) | Bus precharge during a phase of a clock signal to eliminate idle clock cycle | |
US11829640B2 (en) | Asynchronous arbitration across clock domains for register writes in an integrated circuit chip | |
US7646649B2 (en) | Memory device with programmable receivers to improve performance | |
US20040117670A1 (en) | Apparatus and method for data bus power control | |
US20030217218A1 (en) | Interface for devices having different data bus widths and data transfer method using the interface | |
US5799161A (en) | Method and apparatus for concurrent data routing | |
US7873843B2 (en) | Static power reduction for midpoint-terminated busses |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |