Method and apparatus for memory access scheduling in a video graphics system
First Claim
1. A video graphics circuit comprising:
- a memory having at least a first bank and a second bank;
at least one linear memory client, wherein linear memory clients store and retrieve data stored in the memory in a linear format at least one tiled memory client, wherein tiled memory clients store and retrieve data stored in the memory in a tiled format; and
a memory controller operably coupled to the memory, the linear memory client, and the tiled memory client, wherein when the memory controller receives a set of data from linear memory clients to store in the memory, the memory controller stores the set of linear data in the memory in a burst interleaved format such that successive portions of the set of linear data are stored in alternating banks of the memory, wherein size of the successive portions is determined based on a page fault time, wherein when the memory controller receives a set of data from tiled memory clients to store in the memory, the memory controller stores the set of tiled data in the memory in a tiled format such that successive tiles of the set of tiled data are stored in alternating banks of the memory, wherein a dimension of the tiles is determined based on the page fault time, wherein when the memory controller receives a request to retrieve data from linear clients and from tiled clients, the memory controller structures reads from the memory such that page faults are hidden.
2 Assignments
0 Petitions
Accused Products
Abstract
A method and apparatus for sequencing memory accesses in a video graphics system such that page faults are effectively hidden is accomplished by receiving a memory access request from one of a plurality of clients, where the plurality of clients includes both linear clients and tiled memory clients. The clients access data stored in a memory that includes at least two banks. Once the memory request has been received, it is evaluated based on other pending requests in order to determine the optimal ordering pattern for execution of the memory requests. The optimal ordering pattern typically includes sequencing alternating accesses between the two banks of the memory such that when a page fault is occurring in one bank of the memory, a memory access is occurring in the opposing bank. Once the ordering of the memory requests has been performed, the requests are executed.
-
Citations
20 Claims
-
1. A video graphics circuit comprising:
-
a memory having at least a first bank and a second bank;
at least one linear memory client, wherein linear memory clients store and retrieve data stored in the memory in a linear format at least one tiled memory client, wherein tiled memory clients store and retrieve data stored in the memory in a tiled format; and
a memory controller operably coupled to the memory, the linear memory client, and the tiled memory client, wherein when the memory controller receives a set of data from linear memory clients to store in the memory, the memory controller stores the set of linear data in the memory in a burst interleaved format such that successive portions of the set of linear data are stored in alternating banks of the memory, wherein size of the successive portions is determined based on a page fault time, wherein when the memory controller receives a set of data from tiled memory clients to store in the memory, the memory controller stores the set of tiled data in the memory in a tiled format such that successive tiles of the set of tiled data are stored in alternating banks of the memory, wherein a dimension of the tiles is determined based on the page fault time, wherein when the memory controller receives a request to retrieve data from linear clients and from tiled clients, the memory controller structures reads from the memory such that page faults are hidden. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
a scheduler, wherein the scheduler receives memory access requests from linear and tiled clients, and wherein the scheduler determines ordering of the memory access requests; and
a sequencer operably coupled to the scheduler, wherein the sequencer issues memory commands to the memory based on the memory access requests.
-
-
10. The video graphics circuit of claim 9, wherein the scheduler breaks up selected memory access requests into smaller requests, wherein the scheduler determines ordering of the memory access requests such that smaller requests of a selected memory access request are performed non-sequentially.
-
11. The video graphics circuit of claim 9, wherein the scheduler interleaves tiled memory access requests with linear memory access requests to minimize timing penalties associated with page faults.
-
12. The video graphics circuit of claim 1, wherein the memory is a two-bank synchronous dynamic random access memory, wherein during a memory access to the first bank, preparation for a subsequent second bank access occurs, and wherein during a memory access to the second bank, preparation for a subsequent first bank access occurs.
-
13. A method for memory control comprising:
-
receiving a plurality of memory access requests from a plurality of memory clients, wherein each of the plurality of memory clients accesses a memory, wherein the memory includes at least a first bank and a second bank;
performing the plurality of memory access requests in a sequence that minimizes penalties associated with page faults, wherein store memory access requests from linear clients of the plurality of clients are performed in such a way that linear data from the linear clients are stored in the memory in a burst interleaved format such that successive portions of the linear data are stored in alternating banks of the memory, wherein the size of the successive portions is determined based on a page fault time, wherein store memory access requests from tiled memory clients of the plurality of clients are performed in such a way that tiled data from the tiled clients is stored in the memory in a tiled format such that successive tiles of the tiled data are stored in alternating banks of the memory, wherein a dimension of the tiles is determined based on the page fault time, wherein retrieve memory access requests are performed such that data stored in the memory is presented to the plurality of clients in a format that matches a format corresponding to store memory access requests received from each of the plurality of clients. - View Dependent Claims (14, 15, 16, 17)
-
-
18. A memory controlling circuit comprising:
-
a memory having a first bank and a second bank, wherein the memory stores linear data in a burst interleaved format, wherein the burst interleaved format stores successive portions of the linear data in alternating banks of the memory, wherein size of the successive portions is determined based on a page fault time;
a client that performs linear memory accesses; and
a memory controller operably coupled to the memory and the client, wherein the memory controller receives requests from the client and accesses the memory based on the requests, wherein the memory controller determines ordering of the memory access requests such that smaller requests of a selected memory access request are performed non-sequentially. - View Dependent Claims (19, 20)
-
Specification