US6769047B2 - Method and system for maximizing DRAM memory bandwidth through storing memory bank indexes in associated buffers - Google Patents
Method and system for maximizing DRAM memory bandwidth through storing memory bank indexes in associated buffers Download PDFInfo
- Publication number
- US6769047B2 US6769047B2 US10/103,956 US10395602A US6769047B2 US 6769047 B2 US6769047 B2 US 6769047B2 US 10395602 A US10395602 A US 10395602A US 6769047 B2 US6769047 B2 US 6769047B2
- Authority
- US
- United States
- Prior art keywords
- data unit
- buffer
- memory
- buffers
- stored
- 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.)
- Expired - Fee Related, expires
Links
- 239000000872 buffer Substances 0.000 title claims abstract description 129
- 230000015654 memory Effects 0.000 title claims abstract description 107
- 238000000034 method Methods 0.000 title claims abstract description 24
- 238000004519 manufacturing process Methods 0.000 claims 3
- 238000010586 diagram Methods 0.000 description 4
- 230000004075 alteration Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1078—Data input circuits, e.g. write amplifiers, data input buffers, data input registers, data input level conversion circuits
- G11C7/1087—Data input latches
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
- G11C11/4063—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
- G11C11/407—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
- G11C11/408—Address circuits
- G11C11/4082—Address Buffers; level conversion circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
- G11C11/4063—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
- G11C11/407—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
- G11C11/408—Address circuits
- G11C11/4087—Address decoders, e.g. bit - or word line decoders; Multiple line decoders
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
- G11C11/4063—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
- G11C11/407—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
- G11C11/409—Read-write [R-W] circuits
- G11C11/4093—Input/output [I/O] data interface arrangements, e.g. data buffers
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1078—Data input circuits, e.g. write amplifiers, data input buffers, data input registers, data input level conversion circuits
Definitions
- Embodiments of the invention relate to the field of Dynamic Random Access Memory (DRAM), and more specifically, to maximizing DRAM memory bandwidth.
- DRAM Dynamic Random Access Memory
- DRAM Dynamic Random Access Memory
- SRAM Static Random Access Memory
- DRAM needs to be refreshed after each access before another access can be made. Therefore, after a bank in the DRAM is accessed, a system must wait until the bank is refreshed, and therefore, usable again before another access to that same bank can be made. This lowers bandwidth usage and information processing rates.
- One solution is to duplicate entries in all the banks in the DRAM. However, this eliminates the cost advantage of using DRAMs instead of SRAMs.
- FIG. 1 is a block diagram illustrating one embodiment a system implementing the invention.
- FIG. 2 illustrates one embodiment of a buffer according to the invention.
- FIG. 3 is a flow chart that illustrates one embodiment of the method of the invention.
- FIG. 4 is a block diagram of a computer system which may be used to implement an embodiment of the invention.
- Embodiments of a system and method for maximizing DRAM memory bandwidth are described.
- numerous specific details are set forth. However, it is understood that embodiments of the invention may be practiced without these specific details. In other instances, well-known circuits, structures and techniques have not been shown in detail in order not to obscure the understanding of this description.
- System 100 contains a memory 116 .
- the memory 116 is a dynamic random access memory (DRAM).
- DRAM dynamic random access memory
- Memory 116 has a plurality of memory banks.
- System 100 has a plurality of buffers.
- the number of buffers is based on the number of memory banks in the memory 116 . In one embodiment of the invention, the number of buffers is equal to the number of memory banks in the memory. In one embodiment of the invention, each buffer corresponds to a different memory bank in the memory. For example, if memory 116 has four memory banks, system 100 may have four buffers 106 , 108 , 110 , and 112 .
- System 100 has a scheduler 114 to schedule accesses of memory based on the memory bank to be accessed.
- System 100 has a selector 104 .
- the selector is a demultiplexer (demux).
- the selector 104 selects the buffer to which a data unit 120 is to be stored based on at least a portion of the data unit.
- the selector selects the buffer that corresponds to the memory bank that will be accessed.
- the data unit 120 is an address.
- system 100 has an identification grant unit 102 that receives a data unit 120 from a requesting unit 118 and determines an identification number (ID) 122 for the data unit.
- the requesting unit is a processor or other computing device.
- the ID grant unit 102 sends the ID 122 back to the requesting unit 118 and sends the data unit 120 and the ID 122 to the selector 104 .
- the selector 104 then sends the data unit 120 and the ID 122 to the buffer corresponding to the bank to be accessed.
- the selector 104 determines if the data unit has already been stored in the selected buffer by searching the selected buffer. If a match is not found, the data unit is stored in the buffer. If a match is found, the data unit need not be stored, and the ID of the data unit is appended to the entry in the buffer comprising the data unit. Thus, a data unit may be associated with multiple different IDs.
- the buffers store data units until the data units are retrieved to access the memory.
- the scheduler 114 determines in which order the data units will be retrieved from the buffers. In one embodiment of the invention, the scheduler schedules the accesses of memory so that there are sequential accesses of different memory banks. In one embodiment of the invention, the scheduler schedules one access of memory for each entry in each buffer. Each entry in a buffer comprises a data unit and one or more IDs. Therefore, one scheduled access satisfies more than one request if multiple IDs are appended to the buffer entry. In one embodiment of the invention, after memory 116 is accessed with the data unit 120 , the data 121 retrieved from memory 116 is sent to the requesting unit 118 .
- FIG. 2 illustrates one embodiment of a buffer according to the invention.
- the buffer 116 has one or more entries. Each entry has a plurality of fields.
- One field stores the data unit 120 .
- the data unit 120 is an address.
- Another field stores the ID 122 .
- a third field stores a second ID 124 .
- Other fields may store further IDs and other information.
- FIG. 3 is a flow chart that illustrates one embodiment of the method of the invention.
- a data unit is received from a requesting unit.
- the data unit comprises an address.
- an ID is generated to identify the requester or the source of the data unit. The ID may be sent back to the requesting unit.
- an index is computed based on at least a portion of the data unit.
- a buffer is selected in which to store the data unit based on the index.
- the index corresponds to the bank in memory which will be accessed.
- the data unit is stored in the selected buffer.
- the data unit is stored along with an ID that identifies the source of the data unit.
- the selected buffer is searched to determine if there is an entry that comprises the data unit. If no is match found, then the data unit is stored in the selected buffer. If a match is found, then the data unit need not be stored, and the ID for the data unit is appended to the entry comprising the data unit.
- a memory bank access is scheduled based on the index.
- the memory access is scheduled so that sequential accesses to memory occur at different memory banks.
- the data unit from which the index was computed is read from the selected buffer.
- the data unit and the one or more IDs that identify the data unit are read from the selected buffer.
- the memory bank is accessed as scheduled to search for an entry in the memory bank matching the data unit.
- FIG. 4 illustrates a block diagram of a computer system 400 that may be used to implement an embodiment of the invention.
- the computer system 400 includes a processor 402 coupled through a bus 410 to a random access memory (RAM) 404 , a read-only memory (ROM) 406 , and a mass storage device 408 .
- Mass storage device 408 represents a persistent data storage device, such a floppy disk drive, fixed disk drive (e.g. magnetic, optical, magneto-optical, or the like), or streaming tape drive.
- Processor 402 may be embodied in a general purpose processor, a special purpose processor, or a specifically programmed logic device.
- Display device 412 is coupled to processor 402 through bus 410 and provides graphical output for computer system 400 .
- Keyboard 414 and cursor control unit 416 are coupled to bus 410 for communicating information and command selections to processor 402 .
- Also coupled to processor 402 through bus 410 is an input/output (I/O) interface 418 , which can be used to control and transfer data to electronic devices (printers, other computers, etc.) connected to computer system 400 .
- I/O input/output
- the requesting unit 118 is the processor 402 that requests access of one of the memory banks in memory 116 .
- the memory 116 is the random access memory 404 that is coupled to the processor 402 via bus 410 .
- FIG. 4 is provided only for purposes of illustration, and that a computer used in conjunction with embodiments of the invention are not limited to this specific architecture.
- the content for implementing an embodiment of the method of the invention may be provided by any machine-readable media which can store data that is accessible by system 100 , as part of or in addition to memory, including but not limited to cartridges, magnetic cassettes, flash memory cards, digital video disks, random access memories (RAMs), read-only memories (ROMs), and the like.
- the system 100 is equipped to communicate with such machine-readable media in a manner well-known in the art.
- the content for implementing an embodiment of the method of the invention may be provided to the system 100 from any external device capable of storing the content and communicating the content to the system 100 .
- the system 100 may be connected to a network, and the content may be stored on any device in the network.
- the memory 116 has four memory banks and the system 100 has four buffers 106 , 108 , 110 , and 112 .
- Each buffer corresponds to a different memory bank.
- the example uses a hashing scheme in which the two least significant bits (lsb) of an address determine which memory bank will be accessed. The same hashing scheme will be used to determine in which buffer to store the address. For example, if the two lsb are 00, then the address will be stored in the first buffer 106 , and the first memory bank will be accessed.
- the address will be stored in the second buffer 108 , and the second memory bank will be accessed. If the two lsb are 10, the address will be stored in the third buffer 110 , and the third memory bank will be accessed. If the two lsb are 11, the address will be stored in the last buffer 112 , and the last memory bank will be accessed.
- a first requesting unit requests an address of 010011. Since the two lsb of the address are 11, the address will be stored in the last buffer. An ID is generated to identify the request, for example, an ID of 000.
- the last buffer will be searched to determine if the address 010011 has already been stored in the last buffer. Suppose that the four buffers are empty. Therefore, no entry matching the address will be found. Thus, the address of 010011 and ID of 000 are stored in the last buffer.
- a second request is for the address 011111. Since the two lsb of the address are 11, the address will be stored in the last buffer. An ID of 001 is generated for the request. The last buffer will be searched to determine if the address 011111 has already been stored in the last buffer. No match is found, so the address 011111 and ID of 001 are stored in the last buffer.
- a third request is for the address 000001. Since the two lsb of the address are 01, the address will be stored in the second buffer. An ID of 010 is generated for the request. The second buffer will be searched to determine if the address 000001 has already been stored in the second buffer. No match is found, so the address 000001 and ID of 010 are stored in the second buffer.
- a fourth request is for address 011111. Since the two lsb of the address are 11, the address will be stored in the last buffer. An ID of 011 is generated for the request. The last buffer will be searched to determine if the address 011111 has already been stored in the last buffer. There is a match, since the address 011111 was stored in the last buffer after the second request. Therefore, the address 011111 need not be stored, and the second entry in the last buffer will be appended with the ID 011. Thus, the second entry in the last buffer will comprise the address 011111, the ID of 001, and the ID of 011.
- a fifth request is for address 000010. Since the two lsb of the address are 10, the address will be stored in the third buffer. An ID of 100 is generated for the request. The third buffer will be searched to determine if the address 000010 has already been stored in the third buffer. No match is found, so the address 000010 and ID of 100 is stored in the third buffer.
- the scheduler will schedule the five requests according to the buffers in which the addresses are stored.
- the scheduler will schedule the requests so that there are sequential accesses of different memory banks. This maximizes memory bandwidth for the accesses, since a memory bank may need time to recover from a memory access before it is capable of being accessed again.
- the scheduler will schedule the requests so that there is one access of memory for each entry in each buffer. Therefore, one access satisfies more than one request if multiple IDs are appended to the buffer entry.
- the scheduler will schedule the first access of memory using the first entry in the last buffer (from the first request).
- the address 010011 and the ID 000 are retrieved from the last buffer, and the last memory bank is accessed to search for the address 010011.
- the scheduler will schedule the second access of memory using the first entry in the second buffer (from the third request).
- the address 000001 and the ID 010 are retrieved from the second buffer, and the second memory bank is accessed to search for the address 000001.
- the scheduler will schedule the third access of memory using the second entry in the last buffer (from the second and fourth requests).
- the address 011111 and the IDs 001 and 011 are retrieved from the last buffer, and the last memory bank is accessed to search for the address 011111.
- the scheduler will schedule the fourth access of memory using the first entry in the third buffer (from the fifth request).
- the address 000010 and ID 100 are retrieved from the third buffer, and the third memory bank is accessed to search for the address 000010.
- the third request is scheduled before the second request because the second request accesses the same memory bank as the first request.
- the last memory bank will have time to refresh and recover from the first memory access while another memory bank is accessed to satisfy the third request.
- the scheduler can schedule them together so that one memory access satisfies both requests.
Landscapes
- Engineering & Computer Science (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Computer Hardware Design (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Reduction Or Emphasis Of Bandwidth Of Signals (AREA)
- Information Transfer Systems (AREA)
- Dram (AREA)
Abstract
Description
Claims (28)
Priority Applications (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/103,956 US6769047B2 (en) | 2002-03-21 | 2002-03-21 | Method and system for maximizing DRAM memory bandwidth through storing memory bank indexes in associated buffers |
PCT/US2003/007914 WO2003081598A2 (en) | 2002-03-21 | 2003-03-13 | Method and system for maximizing dram memory bandwidth |
AT03714158T ATE555478T1 (en) | 2002-03-21 | 2003-03-13 | METHOD AND DEVICE FOR MAXIMIZING THE BANDWIDTH OF A DRAM MEMORY |
EP03714158A EP1485919B1 (en) | 2002-03-21 | 2003-03-13 | Method and system for maximizing dram memory bandwidth |
AU2003218167A AU2003218167A1 (en) | 2002-03-21 | 2003-03-13 | Method and system for maximizing dram memory bandwidth |
CNB038108119A CN100487815C (en) | 2002-03-21 | 2003-03-13 | Method and system for maximizing DRAM memory bandwidth |
TW092105905A TWI301986B (en) | 2002-03-21 | 2003-03-18 | Method and system for maximizing dram memory bandwidth |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/103,956 US6769047B2 (en) | 2002-03-21 | 2002-03-21 | Method and system for maximizing DRAM memory bandwidth through storing memory bank indexes in associated buffers |
Publications (2)
Publication Number | Publication Date |
---|---|
US20030182490A1 US20030182490A1 (en) | 2003-09-25 |
US6769047B2 true US6769047B2 (en) | 2004-07-27 |
Family
ID=28040479
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US10/103,956 Expired - Fee Related US6769047B2 (en) | 2002-03-21 | 2002-03-21 | Method and system for maximizing DRAM memory bandwidth through storing memory bank indexes in associated buffers |
Country Status (7)
Country | Link |
---|---|
US (1) | US6769047B2 (en) |
EP (1) | EP1485919B1 (en) |
CN (1) | CN100487815C (en) |
AT (1) | ATE555478T1 (en) |
AU (1) | AU2003218167A1 (en) |
TW (1) | TWI301986B (en) |
WO (1) | WO2003081598A2 (en) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070156946A1 (en) * | 2005-12-29 | 2007-07-05 | Intel Corporation | Memory controller with bank sorting and scheduling |
US7492368B1 (en) * | 2006-01-24 | 2009-02-17 | Nvidia Corporation | Apparatus, system, and method for coalescing parallel memory requests |
US7523264B1 (en) | 2005-12-15 | 2009-04-21 | Nvidia Corporation | Apparatus, system, and method for dependent computations of streaming multiprocessors |
US20090113159A1 (en) * | 2007-10-29 | 2009-04-30 | Mekhiel Nagi N | Data processing with time-based memory access |
US20100070709A1 (en) * | 2008-09-16 | 2010-03-18 | Mosaid Technologies Incorporated | Cache filtering method and apparatus |
US8081184B1 (en) * | 2006-05-05 | 2011-12-20 | Nvidia Corporation | Pixel shader program thread assembly |
US20180239722A1 (en) * | 2010-09-14 | 2018-08-23 | Advanced Micro Devices, Inc. | Allocation of memory buffers in computing system with multiple memory channels |
TWI722278B (en) * | 2017-12-05 | 2021-03-21 | 南亞科技股份有限公司 | Dram and method of operating the same |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060064535A1 (en) * | 2004-09-22 | 2006-03-23 | Walker Robert M | Efficient multi-bank memory queuing system |
US7761669B2 (en) * | 2007-07-10 | 2010-07-20 | International Business Machines Corporation | Memory controller granular read queue dynamic optimization of command selection |
US20090019238A1 (en) * | 2007-07-10 | 2009-01-15 | Brian David Allison | Memory Controller Read Queue Dynamic Optimization of Command Selection |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20010033508A1 (en) | 2000-03-17 | 2001-10-25 | Craig Waller | Content addressable memory cells and systems and devices using the same |
US6510474B1 (en) * | 1998-11-16 | 2003-01-21 | Infineon Technologies Ag | Methods and apparatus for re-reordering command and data packets in order to restore an original order of out-of-order memory requests |
US6539440B1 (en) * | 1998-11-16 | 2003-03-25 | Infineon Ag | Methods and apparatus for prediction of the time between two consecutive memory accesses |
US6546453B1 (en) * | 2000-08-31 | 2003-04-08 | Compaq Information Technologies Group, L.P. | Proprammable DRAM address mapping mechanism |
US6571307B1 (en) * | 1999-10-19 | 2003-05-27 | Advanced Micro Devices, Inc. | Multiple purpose bus for a simultaneous operation flash memory device |
US6587894B1 (en) * | 1998-11-16 | 2003-07-01 | Infineon Technologies Ag | Apparatus for detecting data collision on data bus for out-of-order memory accesses with access execution time based in part on characterization data specific to memory |
US6587920B2 (en) * | 2000-11-30 | 2003-07-01 | Mosaid Technologies Incorporated | Method and apparatus for reducing latency in a memory system |
US6671788B2 (en) * | 2000-05-29 | 2003-12-30 | Fujitsu Ltd. | Synchronous semiconductor memory device having a burst mode for improving efficiency of using the data bus |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5598374A (en) * | 1995-07-14 | 1997-01-28 | Cirrus Logic, Inc. | Pipeland address memories, and systems and methods using the same |
-
2002
- 2002-03-21 US US10/103,956 patent/US6769047B2/en not_active Expired - Fee Related
-
2003
- 2003-03-13 AU AU2003218167A patent/AU2003218167A1/en not_active Abandoned
- 2003-03-13 WO PCT/US2003/007914 patent/WO2003081598A2/en not_active Application Discontinuation
- 2003-03-13 EP EP03714158A patent/EP1485919B1/en not_active Expired - Lifetime
- 2003-03-13 CN CNB038108119A patent/CN100487815C/en not_active Expired - Fee Related
- 2003-03-13 AT AT03714158T patent/ATE555478T1/en active
- 2003-03-18 TW TW092105905A patent/TWI301986B/en not_active IP Right Cessation
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6510474B1 (en) * | 1998-11-16 | 2003-01-21 | Infineon Technologies Ag | Methods and apparatus for re-reordering command and data packets in order to restore an original order of out-of-order memory requests |
US6539440B1 (en) * | 1998-11-16 | 2003-03-25 | Infineon Ag | Methods and apparatus for prediction of the time between two consecutive memory accesses |
US6587894B1 (en) * | 1998-11-16 | 2003-07-01 | Infineon Technologies Ag | Apparatus for detecting data collision on data bus for out-of-order memory accesses with access execution time based in part on characterization data specific to memory |
US6571307B1 (en) * | 1999-10-19 | 2003-05-27 | Advanced Micro Devices, Inc. | Multiple purpose bus for a simultaneous operation flash memory device |
US20010033508A1 (en) | 2000-03-17 | 2001-10-25 | Craig Waller | Content addressable memory cells and systems and devices using the same |
US6671788B2 (en) * | 2000-05-29 | 2003-12-30 | Fujitsu Ltd. | Synchronous semiconductor memory device having a burst mode for improving efficiency of using the data bus |
US6546453B1 (en) * | 2000-08-31 | 2003-04-08 | Compaq Information Technologies Group, L.P. | Proprammable DRAM address mapping mechanism |
US6587920B2 (en) * | 2000-11-30 | 2003-07-01 | Mosaid Technologies Incorporated | Method and apparatus for reducing latency in a memory system |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7899995B1 (en) | 2005-12-15 | 2011-03-01 | Nvidia Corporation | Apparatus, system, and method for dependent computations of streaming multiprocessors |
US7523264B1 (en) | 2005-12-15 | 2009-04-21 | Nvidia Corporation | Apparatus, system, and method for dependent computations of streaming multiprocessors |
US20070156946A1 (en) * | 2005-12-29 | 2007-07-05 | Intel Corporation | Memory controller with bank sorting and scheduling |
US7698498B2 (en) | 2005-12-29 | 2010-04-13 | Intel Corporation | Memory controller with bank sorting and scheduling |
US7492368B1 (en) * | 2006-01-24 | 2009-02-17 | Nvidia Corporation | Apparatus, system, and method for coalescing parallel memory requests |
US8081184B1 (en) * | 2006-05-05 | 2011-12-20 | Nvidia Corporation | Pixel shader program thread assembly |
US20090113159A1 (en) * | 2007-10-29 | 2009-04-30 | Mekhiel Nagi N | Data processing with time-based memory access |
US8914612B2 (en) | 2007-10-29 | 2014-12-16 | Conversant Intellectual Property Management Inc. | Data processing with time-based memory access |
US20100070709A1 (en) * | 2008-09-16 | 2010-03-18 | Mosaid Technologies Incorporated | Cache filtering method and apparatus |
US8627009B2 (en) | 2008-09-16 | 2014-01-07 | Mosaid Technologies Incorporated | Cache filtering method and apparatus |
US20180239722A1 (en) * | 2010-09-14 | 2018-08-23 | Advanced Micro Devices, Inc. | Allocation of memory buffers in computing system with multiple memory channels |
US10795837B2 (en) * | 2010-09-14 | 2020-10-06 | Advanced Micro Devices, Inc. | Allocation of memory buffers in computing system with multiple memory channels |
TWI722278B (en) * | 2017-12-05 | 2021-03-21 | 南亞科技股份有限公司 | Dram and method of operating the same |
Also Published As
Publication number | Publication date |
---|---|
EP1485919A2 (en) | 2004-12-15 |
AU2003218167A1 (en) | 2003-10-08 |
US20030182490A1 (en) | 2003-09-25 |
EP1485919B1 (en) | 2012-04-25 |
WO2003081598A3 (en) | 2003-11-13 |
CN100487815C (en) | 2009-05-13 |
TW200400515A (en) | 2004-01-01 |
AU2003218167A8 (en) | 2003-10-08 |
CN1723506A (en) | 2006-01-18 |
WO2003081598A2 (en) | 2003-10-02 |
TWI301986B (en) | 2008-10-11 |
ATE555478T1 (en) | 2012-05-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5535361A (en) | Cache block replacement scheme based on directory control bit set/reset and hit/miss basis in a multiheading multiprocessor environment | |
US6892273B1 (en) | Method and apparatus for storing mask values in a content addressable memory (CAM) device | |
US6769047B2 (en) | Method and system for maximizing DRAM memory bandwidth through storing memory bank indexes in associated buffers | |
CN101589374A (en) | Method and apparatus for setting cache policies in a processor | |
RU97117589A (en) | MEMORY CONTROLLER THAT PERFORMES READING AND RECORDING COMMANDS NOT IN ORDER SIMPLE QUEUE | |
US11899985B1 (en) | Virtual modules in TCAM | |
US20110066800A1 (en) | Data storage system including respective buffers for non-volatile memory and disc recording medium, and data access method thereof | |
US6009504A (en) | Apparatus and method for storing data associated with multiple addresses in a storage element using a base address and a mask | |
US20160110286A1 (en) | Data writing method and memory system | |
US6823426B2 (en) | System and method of data replacement in cache ways | |
US20040148466A1 (en) | Cache controller, cache control method, and computer system | |
US5940865A (en) | Apparatus and method for accessing plural storage devices in predetermined order by slot allocation | |
US7196961B2 (en) | Memory control device | |
CN105487988B (en) | The method for improving the effective access rate of SDRAM bus is multiplexed based on memory space | |
JPH0358150A (en) | Memory controller | |
US6687786B1 (en) | Automated free entry management for content-addressable memory using virtual page pre-fetch | |
CN116705101B (en) | Data processing method of multi-PSRAM (particle random Access memory) particle chip, electronic equipment and storage medium | |
US8812782B2 (en) | Memory management system and memory management method | |
US8484411B1 (en) | System and method for improving access efficiency to a dynamic random access memory | |
US7421536B2 (en) | Access control method, disk control unit and storage apparatus | |
US6742077B1 (en) | System for accessing a memory comprising interleaved memory modules having different capacities | |
US11895043B2 (en) | Method for accessing system memory and associated processing circuit within a network card | |
US9329791B2 (en) | File system and file system converting method | |
US20070016717A1 (en) | Cache system | |
US7167942B1 (en) | Dynamic random access memory controller |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: INTEL CORPORATION, CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:KURUPATI, SREENATH;REEL/FRAME:012948/0308 Effective date: 20020507 |
|
FEPP | Fee payment procedure |
Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
FPAY | Fee payment |
Year of fee payment: 4 |
|
REMI | Maintenance fee reminder mailed | ||
FPAY | Fee payment |
Year of fee payment: 8 |
|
REMI | Maintenance fee reminder mailed | ||
LAPS | Lapse for failure to pay maintenance fees | ||
STCH | Information on status: patent discontinuation |
Free format text: PATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362 |
|
FP | Lapsed due to failure to pay maintenance fee |
Effective date: 20160727 |