IP Library Granted Patent US 10,134,172
Granted Patent B2
US 10,134,172 · App. 15/141,727 · Granted Nov 20, 2018

Methods for checking dependencies of data units and apparatuses using the same

Inventors: Heng Xiao (Shanghai, CN); Ying Liang (Shanghai, CN); Heng Que (Shanghai, CN)
Assignee: VIA ALLIANCE SEMICONDUCTOR CO., LTD.
G06T15/005G06F17/30321G06T1/60H04L5/0055H04L49/901
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 10,134,172
App. No.
15/141,727
Granted
Nov 20, 2018
Kind
B2
Abstract

A first request is received from a window checker, requesting to read cell data from a window buffer or write cell data into the window buffer, where the first request contains at least first cell index. A second request is received from a window releaser, requesting to read cell data from the window buffer or write cell data into the window buffer, where the second request contains at least second cell index. A register stores the first cell index, the second cell index, a first lock flag indicating whether the window checker has read cell data but hasn't written cell data back and a second lock flag indicating whether the window releaser has read cell data but hasn't written cell data back. One of the requests is granted according to the first and second cell indices and the first and second lock flags.

Claims (62)

1. A method for checking dependencies of data units, comprising:

receiving a first request from a window checker, requesting to read cell data from a window buffer or write cell data into the window buffer, wherein the first request comprises a first cell index;

storing the first cell index in a register, wherein the register further stores a first lock flag indicating whether the window checker has read cell data but hasn't written cell data back;

receiving a second request from a window releaser, requesting to read cell data from the window buffer or write cell data into the window buffer, wherein the second request comprises a second cell index;

storing the second cell index in the register, wherein the register further stores a second lock flag indicating whether the window releaser has read cell data but hasn't written cell data back; and

granting one of the first request and the second request according to the first and second cell indices and the first and second lock flags;

wherein the first lock flag being “true” indicates that the window checker has read cell data of the window buffer but hasn't written cell data back, the first lock flag being “false” indicates that the window checker hasn't read new cell data from the window buffer, the second lock flag being “true” indicates that the window releaser has read cell data of the window buffer but hasn't written cell data back, the second lock flag being “false” indicates that the window releaser hasn't read new cell data from the window buffer;

wherein the step for granting one of the first request and the second request according to the first and second cell indices and the first and second lock flags further comprises:

selecting and processing the second request when the first lock flag is “false” and the second lock flag is “true” and the first and second cell indices are the same.

2. The method of claim 1 , wherein the cell data comprises a plurality of bit values and each bit value indicates whether a data unit is being processed by a thread of a pixel shader.

3. The method of claim 1 , wherein the step for granting one of the first request and the second request according to the first and second cell indices and the first and second lock flags further comprises:

selecting and processing the second request when the first and second lock flags are “false” and the first and second cell indices are the same.

4. The method of claim 3 , wherein the step for selecting and processing the second request when the first and second lock flags are “false” and the first and second cell indices are the same further comprises:

directing an access interface to read cell data associated with the second cell index from the window buffer;

replying with the read cell data to the window releaser; and

updating the second lock flag with “true”.

5. The method of claim 1 , wherein the step for granting one of the first request and the second request according to the first and second cell indices and the first and second lock flags further comprises:

selecting and processing the second request when the first lock flag is “true” and the second lock flag is “false” and the first and second cell indices are different.

6. The method of claim 5 , wherein the step for selecting and processing the second request when the first lock flag is “true” and the second lock flag is “false” and the first and second cell indices are different further comprises:

directing an access interface to read cell data associated with the second cell index from the window buffer;

replying with the read cell data to the window releaser; and

updating the second lock flag with “true”.

7. The method of claim 1 , wherein the step for granting one of the first request and the second request according to the first and second cell indices and the first and second lock flags further comprises:

selecting and processing the first request when the first lock flag is “false” and the second lock flag is “true” and the first and second cell indices are different.

8. The method of claim 7 , wherein the step for selecting and processing the first request when the first lock flag is “false” and the second lock flag is “true” and the first and second cell indices are different further comprises:

directing an access interface to read cell data associated with the first cell index from the window buffer;

replying with the read cell data to the window checker; and

updating the first lock flag with “true”.

9. The method of claim 1 , wherein the step for granting one of the first request and the second request according to the first and second cell indices and the first and second lock flags further comprises:

selecting and processing the first request when the first lock flag is “true” and the second lock flag is “false” and the first and second cell indices are the same.

10. The method of claim 9 , wherein the step for selecting and processing the first request when the first lock flag is “true” and the second lock flag is “false” and the first and second cell indices are the same further comprises:

directing an access interface to write cell data into an address of the window buffer, which is associated with the first cell index;

replying with a data-write success message to the window checker; and

updating the first lock flag with “false”.

11. The method of claim 1 , wherein the step for selecting and processing the second request when the first lock flag is “false” and the second lock flag is “true” and the first and second cell indices are the same further comprises:

directing an access interface to write cell data into an address of the window buffer, which is associated with the second cell index;

replying with a data-write success message to the window releaser; and

updating the second lock flag with “false”.

12. The method of claim 1 , wherein the step for granting one of the first request and the second request according to the first and second cell indices and the first and second lock flags further comprises:

selecting and processing the second request when the first and second lock flags are “true” and the first and second cell indices are different.

13. The method of claim 12 , wherein the step for selecting and processing the second request when the first and second lock flags are “true” and the first and second cell indices are different further comprises:

directing an access interface to write cell data into an address of the window buffer, which is associated with the second cell index;

replying with a data-write success message to the window releaser; and

updating the second lock flag with “false”.

14. An apparatus for checking dependencies of data units, comprising:

a register, storing a first lock flag indicating whether a window checker has read cell data but hasn't written cell data back and a second lock flag indicating whether a window releaser has read cell data but hasn't written cell data back;

a window buffer; and

a control unit, coupled to the register and the window buffer, receiving a first request from the window checker, requesting to read cell data from the window buffer or write cell data into the window buffer, wherein the first request comprises a first cell index; storing the first cell index in the register; receiving a second request from the window releaser, requesting to read cell data from the window buffer or write cell data into the window buffer, wherein the second request comprises a second cell index; storing the second cell index in the register; and granting one of the first request and the second request according to the first and second cell indices and the first and second lock flags;

wherein the first lock flag being “true” indicates that the window checker has read cell data of the window buffer but hasn't written cell data back, the first lock flag being “false” indicates that the window checker hasn't read new cell data from the window buffer, the second lock flag being “true” indicates that the window releaser has read cell data of the window buffer but hasn't written cell data back, the second lock flag being “false” indicates that the window releaser hasn't read new cell data from the window buffer;

wherein the control unit selects and processes the second request when the first lock flag is “false” and the second lock flag is “true” and the first and second cell indices are the same.

15. The apparatus of claim 14 , wherein the cell data comprises a plurality of bit values and each bit value indicates whether a data unit is being processed by a thread of a pixel shader.

16. The apparatus of claim 14 , wherein the control unit selects and processes the second request when the first and second lock flags are “false” and the first and second cell indices are the same.

17. The apparatus of claim 16 , further comprising:

an access interface, coupled between the window buffer and the control unit,

wherein the control unit directs the access interface to read cell data associated with the second cell index from the window buffer; replies with the read cell data to the window releaser; and updates the second lock flag with “true”.

18. The apparatus of claim 14 , wherein the control unit selects and processes the first request when the first lock flag is “true” and the second lock flag is “false” and the first and second cell indices are the same.

19. The apparatus of claim 18 , further comprising:

an access interface, coupled between the window buffer and the control unit,

wherein the control unit directs the access interface to write cell data into an address of the window buffer associated with the first cell index; replies with a data-write success message to the window checker; and updates the first lock flag with “false”.

20. The apparatus of claim 14 , further comprising:

an access interface, coupled between the window buffer and the control unit,

wherein the control unit directs the access interface to write cell data into an address of the window buffer associated with the second cell index; replies with a data-write success message to the window releaser; and updates the second lock flag with “false”.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 18, 2021
From: SHANGHAI ZHAOXIN SEMICONDUCTOR CO., LTD.
To: GLENFLY TECH CO., LTD.
Reel/Frame 058965/0042 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 28, 2016
From: XIAO, HENG; LIANG, YING; QUE, HENG
To: VIA ALLIANCE SEMICONDUCTOR CO., LTD.
Reel/Frame 038415/0330 →
Priority Claims (1)
CN 2015 1 0788165 · Nov 17, 2015 · national
Continuity (1)
Related Publication 20170140568A1 · May 18, 2017