Graphics processing system with enhanced memory controller
First Claim
1. In a graphics system including a main processor and a graphics processing system for generating graphics images on a display in cooperation with said main processor, and a main memory, said system including a plurality of resources requesting access to said main memory, a memory controller comprising:
- a plurality of buffer memories, each of said buffer memories being operatively coupled to one of said plurality of resources requesting access to said main memory for storing information indicative of a request for main memory access;
a multiple resource buffer memory coupled to said plurality of buffer memories for storing requests for main memory access from each of said plurality of resources; and
a control circuit for controlling the transfer of information from said plurality of buffer memories to said multiple resource buffer memory, wherein said control circuit is operable to control the transfer of information from said plurality of buffer memories to said multiple resource buffer memory to reduce the frequency of switching from main memory write operations to main memory read operations,wherein said plurality of buffer memories and said multiple resource buffer memory are write request queues,wherein a resource that is writing to main memory generates a flush signal for initiating flushing of that resource'"'"'s write request queue, andwherein said memory controller further includes a flush acknowledge handshake signal generating circuit that generates a flush acknowledge handshake signal to thereby indicate to competing resources that data written to main memory is actually stored in main memory rather than in an associated resource'"'"'s buffer.
2 Assignments
0 Petitions
Accused Products
Abstract
A graphics system including a custom graphics and audio processor produces exciting 2D and 3D graphics and surround sound. The system includes a graphics and audio processor including a 3D graphics pipeline and an audio digital signal processor. A memory controller performs a wide range of memory control related functions including arbitrating between various competing resources seeking access to main memory, handling memory latency and bandwidth requirements of the resources requesting memory access, buffering writes to reduce bus turn around, refreshing main memory, and protecting main memory using programmable registers. The memory controller minimizes memory read/write switching using a “global” write queue which queues write requests from various diverse competing resources. In this fashion, multiple competing resources for memory writes are combined into one resource from which write requests are obtained. Memory coherency issues are addressed both within a single resource that has both read and write capabilities and among different resources by efficiently flushing write buffers associated with a resource.
481 Citations
45 Claims
-
1. In a graphics system including a main processor and a graphics processing system for generating graphics images on a display in cooperation with said main processor, and a main memory, said system including a plurality of resources requesting access to said main memory, a memory controller comprising:
-
a plurality of buffer memories, each of said buffer memories being operatively coupled to one of said plurality of resources requesting access to said main memory for storing information indicative of a request for main memory access; a multiple resource buffer memory coupled to said plurality of buffer memories for storing requests for main memory access from each of said plurality of resources; and a control circuit for controlling the transfer of information from said plurality of buffer memories to said multiple resource buffer memory, wherein said control circuit is operable to control the transfer of information from said plurality of buffer memories to said multiple resource buffer memory to reduce the frequency of switching from main memory write operations to main memory read operations, wherein said plurality of buffer memories and said multiple resource buffer memory are write request queues, wherein a resource that is writing to main memory generates a flush signal for initiating flushing of that resource'"'"'s write request queue, and wherein said memory controller further includes a flush acknowledge handshake signal generating circuit that generates a flush acknowledge handshake signal to thereby indicate to competing resources that data written to main memory is actually stored in main memory rather than in an associated resource'"'"'s buffer. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. In a graphics system including a main processor and a graphics processing system for generating graphics images on a display in cooperation with said main processor, and a main memory, said system including a plurality of resources requesting access to said main memory, a memory controller comprising:
-
a plurality of buffer memories, each of said buffer memories being operatively coupled to one of said plurality of resources requesting access to said main memory for storing information indicative of a request for main memory access; a multiple resource buffer memory coupled to said plurality of buffer memories for storing requests for main memory access from each of said plurality of resources; and a control circuit for controlling the transfer of information from said plurality of buffer memories to said multiple resource buffer memory, wherein said control circuit is operable to control the transfer of information from said plurality of buffer memories to said multiple resource buffer memory to reduce the frequency of switching from main memory write operations to main memory read operations; and at least one register associated with a main memory access requesting resource for storing data for said requesting resource indicative of wasted memory cycles due to granting main memory access to that resource.
-
-
12. In an information processing system including a main processor, a main memory, and at least a first and a second resource competing with said main processor for access to said main memory, a memory controller comprising:
-
a main processor related interface including a main processor read request queue and a main processor write request queue; a first resource related interface including at least one of a first resource read request queue and a first resource write request queue; a second resource related interface including at least one of a second resource read request queue and a second resource write request queue; a multiple resource write request queue for receiving requests for writing to said main memory; and a memory access control circuit for granting access to said main memory, said memory access control circuit being coupled to receive read requests from each of said read request queues and for receiving write requests from said multiple resource write request queues wherein a resource that is writing to main memory generates a flush signal for initiating flushing of that resource'"'"'s write request queue, and wherein said memory controller further includes a flush acknowledge handshake signal generating circuit to generate a flush acknowledge handshake signal and thereby indicate to competing resources that data written to main memory is actually stored in main memory rather than in an associated resource buffer. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19)
-
-
20. In an information processing system including a main processor, a main memory, and at least a first and a second resource competing with said main processor for access to said main memory, a memory controller comprising:
-
a main processor related interface including a main processor read request queue and a main processor write request queue; a first resource related interface including at least one of a first resource read request queue and a first resource write request queue; a second resource related interface including at least one of a second resource read request queue and a second resource write request queue; a multiple resource write request queue for receiving requests for writing to said main memory; a memory access control circuit for granting access to said main memory, said memory access control circuit being coupled to receive read requests from each of said read request queues and for receiving write requests from said multiple resource write request queue; and at least one performance related register associated with a main memory access requesting resource for storing data for said requesting resource indicative of wasted memory cycles due to granting main memory access to that resource.
-
-
21. In an information system including a main processor, a main memory, and at least a first and a second resource competing with said main processor for access to said main memory, a method of controlling access to said main memory comprising the steps of:
-
storing requests for main memory access from a first resource in a first resource request queue; storing requests for main memory access from a second resource in a second resource request queue; delaying forwarding requests for main memory access to a memory access control circuit to reduce the frequency of switching between memory read states and memory write states; granting requests for main memory access by said memory access control circuit; writing data by a resource to main memory; generating a buffer flush signal for initiating flushing of that resource'"'"'s write request queue; and
generating a flush acknowledge handshake signal to competing resources that data written to main memory is actually stored in main memory rather than in an associated resource'"'"'s buffer. - View Dependent Claims (22, 23, 24, 25, 26, 27, 28, 29, 30)
-
-
31. In an information system including a main processor, a main memory, and at least a first and a second resource competing with said main processor for access to said main memory, a method of controlling access to said main memory comprising the steps of:
-
storing requests for main memory access from a first resource in a first resource request queue; storing requests for main memory access from a second resource in a second resource request queue; delaying forwarding requests for main memory access to a memory access control circuit to reduce the frequency of switching between memory read states and memory write states; granting requests for main memory access by said memory access control circuit; and storing data for a requesting resource indicative of wasted memory cycles due to granting main memory access to that resource.
-
-
32. In an information system including a main processor, a main memory, and at least a first and a second resource competing with said main processor for access to said main memory, a method of controlling access to said main memory comprising the steps of:
-
storing requests for writing to main memory from a first resource in a first resource write request queue; writing to main memory by said first resource; generating a write queue flush signal by said first resource to initiate copying information in said first resource write request queue to main memory; flushing said first resource write request queue; and generating a flush acknowledge handshake signal to competing resources that data written to main memory is actually stored in main memory rather than in said first resource write queue. - View Dependent Claims (33, 34, 35, 36, 37, 38, 39, 40, 41, 42)
-
-
43. In an information system including a main processor, a main memory, and at least a first and a second resource competing with said main processor for access to said main memory, a method of controlling access to said main memory comprising the steps of:
-
storing requests for writing to main memory from a first resource in a first resource write request queue; writing to main memory by said first resource; generating a write queue flush signal by said first resource to initiate copying information in said first resource write request queue to main memory; flushing said first resource write request queue; storing requests for reading from main memory from a second resource in a second resource read request queue; comparing the main memory address associated with the read request with the addresses stored in at least one write queue; and flushing said at least one write queue if there is a match between the main memory address associated with the read request and any of the addresses stored in said at least one write queue.
-
-
44. In an information system including a main processor, a main memory, and at least a first and a second resource competing with said main processor for access to said main memory, a method of controlling access to said main memory comprising the steps of:
-
storing requests for writing to main memory from a first resource in a first resource write request queue; writing to main memory by said first resource; generating a write queue flush signal by said first resource to initiate copying information in said first resource write request queue to main memory; flushing said first resource write request queue; and storing data for a requesting resource indicative of wasted memory cycles due to granting main memory access to that resource.
-
-
45. In a graphics system including a main processor and a graphics processing system for generating graphics images on a display in cooperation with said main processor, and a main memory, said system including a plurality of resources requesting access to said main memory, a memory controller comprising:
-
a plurality of buffer memories, two or more of said buffer memories being operatively coupled to a different respective one of said plurality of resources requesting access to said main memory and storing information indicative of a request for main memory access from that one of said plurality of resources; a multiple resource buffer memory coupled to said plurality of buffer memories; and a control circuit for controlling the transfer of requests from said plurality of buffer memories to said multiple resource buffer memory, wherein said control circuit is operable to control the transfer of the requests from said plurality of buffer memories to said multiple resource buffer memory to reduce the frequency of switching from main memory write operations to main memory read operations, wherein said plurality of buffer memories and said multiple resource buffer memory are write request queues, wherein a resource that is writing to main memory generates a flush signal for initiating flushing of that resource'"'"'s write request queue, and wherein a flush acknowledge handshake signal indicates to competing resources that data written to main memory is actually stored in main memory rather than in an associated resource'"'"'s buffer.
-
Specification