Claims
- 1. An apparatus comprising:
at least one memory with a plurality of memory banks, coupled to a configuration of bus agents; at least one of the bus agents to reorder a memory transaction to the memory based at least in part on a page open status of the plurality of memory banks.
- 2. The apparatus of claim 1 wherein the configuration is a shared-bus configuration.
- 3. The apparatus of claim 1 wherein the configuration is an independent-bus configuration.
- 4. The apparatus of claim 1 wherein the configuration is a switching fabric configuration.
- 5. The apparatus of claim 1 wherein the configuration is a point-to-point configuration.
- 6. The apparatus of claim 1 wherein the memory is a dynamic access random memory (DRAM).
- 7. The apparatus of claim 1 wherein the page open status of the plurality of memory banks is based on other memory transactions from the configuration of bus agents.
- 8. The apparatus of claim 7 wherein the page open status of each memory bank is stored in one of a plurality of tracking registers within at least one of the bus agents.
- 9. The apparatus of claim 8 wherein the bus agents are either: a processor, a bus bridge, a memory controller, an Input/Output device (I/O device), or a graphics module.
- 10. The apparatus of claim 7 wherein the page open status of a memory bank is calculated by a decoder within each one of the bus agents that receives and decodes incoming snoop addresses from the other bus agents to determine the particular memory bank and to compare the status of the particular memory bank of the incoming snoop address to the status of one of the tracking registers based on the decoded bank.
- 11. An apparatus comprising:
at least one memory with a plurality of memory banks, coupled to a configuration of bus agents; at least one of the bus agents to determine whether to reorder a first and a second memory transaction to the memory based at least in part on a comparison of a plurality of tracking registers within the one bus agent to a decoded incoming snoop address from one of the other bus agents.
- 12. The apparatus of claim 11 wherein the configuration is a shared-bus configuration.
- 13. The apparatus of claim 11 wherein the configuration is an independent-bus configuration.
- 14. The apparatus of claim 11 wherein the configuration is a switching fabric configuration.
- 15. The apparatus of claim 11 wherein the configuration is a point-to-point configuration.
- 16. The apparatus of claim 11 wherein the memory is a dynamic access random memory (DRAM).
- 17. The apparatus of claim 11 wherein the reorder is to allow the second memory transaction to a memory bank with a page hit status to be processed before the first memory transaction to a memory bank with a page miss status.
- 18. The apparatus of claim 17 wherein the page hit status of each memory bank is stored in one of a plurality of tracking registers within at least one of the bus agents.
- 19. The apparatus of claim 18 wherein the bus agents are either: a processor, a bus bridge, a memory controller, an Input/Output (I/O), or a graphics module.
- 20. The apparatus of claim 17 wherein the page hit status of a memory bank is calculated by a decoder within each one of the bus agents that receives and decodes incoming snoop addresses from the other bus agents to determine the particular memory bank and to compare the status of the particular memory bank of the incoming snoop address to the status of one of the tracking registers based on the decoded bank.
- 21. A method comprising:
receiving a snoop address; decoding the snoop address to determine a memory bank; comparing the bank to a value; and updating the value of one of the tracking registers with the snoop address if there is no match from the comparing.
- 22. The method of claim 21 wherein comparing the bank to the value comprises selecting one of a plurality of registers based on the decoding of the snoop address.
- 22. A method comprising:
receiving a first and second memory transaction; reordering a first and second memory transaction based on a page open status of a memory bank as determined by decoding an incoming snoop address and comparing the incoming snoop address to a value.
- 23. The method of claim 22 wherein reordering the second memory transaction to be processed before the first memory transaction when the second memory transaction is for a memory bank with an open status and the first memory transaction is for a memory bank with a closed status.
- 24. A system comprising:
a configuration of a plurality of bus agents, coupled to a synchronous DRAM (SDRAM) or a double data rate (DDR DRAM with at least a first and a second memory bank, wherein one of the bus agents, agent X, is to generate a first and second memory operation to a first and second memory bank; and to reorder the second memory transaction to be processed before the first memory transaction based at least in part on a comparison between an incoming snoop address to agent X and a value stored within one of a plurality of registers of agent X.
- 25. The system of claim 24 wherein the value of the incoming snoop address is a page open status of either the first or second memory bank.
- 26. The system of claim 24 wherein one of the plurality of registers is selected by a decoded version of the incoming snoop address.
- 27. The system of claim 24 wherein the configuration is a shared-bus configuration.
- 28. The system of claim 24 wherein the configuration is an independent-bus configuration.
- 29. The system of claim 24 wherein the configuration is a switching fabric configuration.
- 30. The system of claim 24 wherein the configuration is a point-to-point configuration.
RELATED APPLICATION
[0001] This application is related to application Ser. No. ______ entitled “A Method and Apparatus for determining a dynamic random access memory page management implementation””, with inventors E. Sprangle and A. Rohillah, filed Dec. 24, 2002 and assigned to the assignee of the present application.