CLAIMS What is claimed is: 1. A memory controller adapted to receive memory service instructions from a processor and adapted to communicate with an external memory organized in a plurality of banks, the memory controller comprising: a plurality of request queues corresponding respectively to the plurality of banks; means for monitoring status of the plurality of queues; means for discriminating characteristics of incoming memory service instructions; and means for allocating the incoming memory service instructions to the plurality of queues based on the status of the queues and the characteristics of the memory service instructions.
2. The memory controller of claim 1, further comprising means for reordering memory service instructions within the plurality of queues.
3. The memory controller of claim 1, further comprising arbiter logic operatively coupled to the plurality of queues and configured to execute the memory service instructions.
4. The memory controller of claim 1, wherein the characteristics comprise type of memory service instruction.
5. The memory controller of claim 1, wherein the characteristics comprise interdependency with other memory service instructions.
20
6. The memory controller of claim 4, wherein the means for allocating places a memory service instruction in a queue depending upon the type of memory service instruction.
7. The memory controller of claim 5, wherein the means for allocating places a memory service instruction in a queue depending upon interdependency with other memory service instructions.
8. The memory controller of claim 1, wherein the means for allocating further comprises means for maintaining a memory service instruction in a float state pending resolution of another operation.
9. A memory management system, comprising: a processor; a memory control unit coupled to the processor; and a memory coupled to the memory control unit, the memory being configured in a plurality of banks; wherein the memory control unit includes a dynamic queuing structure comprising: a pointer register defining a plurality of queues associated with the plurality of banks of the memory; an attributes register configured to store attributes of memory service instructions; a content addressable memory configured to store memory access addresses of the memory service instructions; and
21 a queue control configured to control placement of memory service instructions in the plurality of queues based upon the attributes and the memory access address thereof.
10. The memory management system of claim 9, wherein the memory control unit is integrated with the processor.
11. The memory management system of claim 9, further comprising memory service instruction execution arbiter logic.
12. A method of controlling memory service instructions in a computer system having a processor, a memory configured in a plurality of banks and a memory control unit defining a plurality of queues corresponding to the plurality of banks, the method comprising: monitoring a status of the plurality of queues; discriminating characteristics of an incoming memory service instruction; and placing the incoming memory service instruction in one of the plurality of queues based upon the characteristics thereof and the status of the queues.
13. The method of claim 12, wherein the act of discriminating comprises determining a type of instruction.
14. The method of claim 12, wherein the act of discriminating comprises
22 determining interdependency with other memory service instructions.
15. The method of claim 12, wherein the act of monitoring comprises determining current capacity of the plurality of queues.
16. The method of claim 12, wherein the act of monitoring comprises determining characteristics of memory service instructions in the queues.
17. The method of claim 16, wherein the characteristics include type of memory service instruction.
18. The method of claim 16, wherein the characteristics include interdependency with other memory service instructions.
19. The method of claim 12, wherein the act of placing comprises holding the incoming memory instruction in a float state pending outcome of another operation.
20. The method of claim 12, further comprising optimizing queuing by reordering memory service instructions in the plurality of queues.
23