IP Library › Granted Patent US 9,437,172
Granted Patent B2
US 9,437,172 · App. 14/463,271 · Granted Sep 6, 2016

High-speed low-power access to register files

Inventors: Andrew M. Havlir (Austin, TX); Michael A. Geary (Round Rock, TX); Robert Kenney (Austin, TX)
Assignee: Apple Inc.
G09G5/399G09G5/393G06T1/60G09G2330/021
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,437,172
App. No.
14/463,271
Granted
Sep 6, 2016
Kind
B2
Abstract

Embodiments of a unified shading controller are disclosed. The embodiments may provide a first functional unit configured to send a write request to a second functional unit. The write request may include data and the data may include one or more control bits. Upon receiving the write request, the second functional unit may check the one or more control bits, and hold the data in a given queue dependent upon the control bits.

Claims (44)

1. An apparatus, comprising:

a first functional unit configured to send a write request, wherein the write request includes data to be stored, and wherein the data includes one or more control bits; and

a second functional unit including a plurality of queues, a register file, wherein the register file includes a plurality of banks, and wherein the second functional unit is configured to:

receive the write request;

check the one or more control bits;

hold the data in a given queue of the plurality of queues dependent upon the one or more control bits;

determine an oldest entry of a subset of entries stored in the given queue responsive to a determination that a number of available entries in the queue is less than a threshold value, wherein the one or more control bits of each entry of the subset of entries indicate the data of each entry should be held in the queue;

write the oldest entry of the subset of entries to the register file;

receive a read request for a given bank of the plurality of banks;

increment a victim count responsive to a determination the given bank of the plurality of banks is being accessed by a third functional unit and

send a signal to the third functional unit responsive to a determination that a value of the victim count is greater than a threshold value, wherein the signal indicates to the third functional unit to hold further accesses to the given bank of the plurality of banks.

2. The apparatus of claim 1 , wherein to hold the data in the given queue, the second functional unit is further configured to check a number of available entries in the given queue.

3. The apparatus of claim 1 , wherein the second functional unit is further configured to:

determine a status for each queue of the plurality of queues; and

send the status of each queue of the plurality of queues to the first functional unit.

4. The apparatus of claim 3 , wherein to send the status of each queue of the plurality of queues to the first functional unit, the second functional unit is further configured to encode a plurality of bits to indicate a number of pending transactions for each queue of the plurality of queues.

5. A method, comprising:

receiving, from a first functional unit, by a second functional unit, data to be stored, wherein the data includes one or more control bits;

checking the one or more control bits;

holding the data in a given queue of a plurality of queues, dependent upon the one or more control bits;

receiving, by the second functional unit, a read request data stored in a given bank of a plurality of banks, wherein each bank of the plurality of banks corresponds to a respective queue of the plurality of queues;

incrementing a victim count responsive to determining that the given bank of the plurality of banks is currently being accessed by a third functional unit; and

sending a signal to the third functional unit responsive to a determination that a value of the victim count is greater than a threshold value, wherein the signal indicates to the third functional unit to hold further accesses to the given bank of the plurality of bank.

6. The method of claim 5 , wherein holding the data in the given queue comprises checking a number of available entries in the given queue.

7. The method of claim 6 , further comprising:

determining an oldest entry of a subset of entries stored in the given queue responsive to determining the number of available entries in the queue is less than a threshold value, wherein the one or more control bits of each entry of the subset entries indicate the data of each entry should be held in the queue; and

writing the oldest entry of the subset of entries to a register file.

8. The method of claim 5 , further comprising determining, by the second functional unit, a status each queue of the plurality of queues, and sending the status of each queue of the plurality of queues to the first functional unit.

9. The method of claim 8 , wherein sending the status of each queue of the plurality of queues comprises encoding a plurality of bits to indicate a number of pending transactions for each queue of the plurality of queues.

10. The method of claim 8 , further comprising selecting, by the first functional unit, a given read request of a plurality of pending read requests to send to the second functional unit dependent upon the status of each queue of the plurality of queues.

11. A system, comprising:

a display; and

a graphics unit including a first functional unit, a second functional unit, and a register file including a plurality of banks, wherein the graphics unit is configured to:

send a write request from the first functional unit to the second functional unit, wherein the write request includes data to be stored, and wherein the data includes one or more control bits;

check the one or more control bits;

hold the data in a given queue of a plurality of queues dependent upon the one or more control bits;

determine an oldest entry of a subset of entries stored in the given queue responsive to a determination a number of available entries in the queue is less than a threshold value, wherein the one or more control bits of each entry of the subset entries indicate the data of each entry should be held in the queue;

write the oldest entry of the subset of entries to the register file;

receive a read request for a given bank of the plurality of banks;

increment a victim count responsive to a determination the given bank of the plurality of banks is being accessed by a third functional unit; and

send a signal to the third functional unit responsive to a determination that a value of the victim count is greater than a threshold value, wherein the signal indicates to the third functional unit to hold further accesses to the given bank of the plurality of banks.

12. The system of claim 11 , wherein to hold the data in the given queue, the graphics unit is further configured to check a number of available entries in the given queue.

13. The system of claim 11 , wherein the graphics unit is further configured to determine a status of each queue of the plurality of queues.

14. The system of claim 13 , wherein to determine the status of each queue of the plurality of queues, the graphics units is further configured to encode a plurality of bits to indicate a number of pending transactions for each queue of the plurality of queues.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 19, 2014
From: HAVLIR, ANDREW M.; GEARY, MICHAEL A.; KENNEY, ROBERT
To: APPLE INC.
Reel/Frame 033565/0722 →
Continuity (1)
Related Publication 20160055833A1 · Feb 25, 2016