IP Library Granted Patent US 11,216,307
Granted Patent B1
US 11,216,307 · App. 16/668,157 · Granted Jan 4, 2022

Scheduler for vector processing operator readiness

Inventor: Peter Verplaetse (Redwood City, CA)
Assignee: Chris Maiorana
G06F9/5011G06F9/4881G06T1/20
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 11,216,307
App. No.
16/668,157
Granted
Jan 4, 2022
Kind
B1
Abstract

An apparatus includes a processor and an operator readiness circuit. The processor may be configured to schedule one or more operators used to process a plurality of vectors based on one or more status signals indicating a readiness state of the one or more operators. The operator readiness circuit may be configured to (i) compare a target position and an actual position of each operand associated with the one or more operators to determine a readiness state of each operand, (ii) update the readiness state of the operands using a plurality of state machines, and (iii) generate the one or more status signals indicating the readiness state of the one or more operators based on the readiness state of each operand associated with the one or more operators.

Claims (29)

1. An apparatus comprising:

a processor configured to schedule one or more operators used to process a plurality of vectors based on one or more status signals indicating a readiness state of the one or more operators; and

an operator readiness circuit configured to (i) compare a target position and an actual position of each operand associated with the one or more operators to determine a readiness state of each operand, (ii) update said readiness state of said operands using a plurality of state machines, and (iii) generate said one or more status signals indicating said readiness state of the one or more operators based on the readiness state of each operand associated with said one or more operators, wherein said operator readiness circuit comprises a first table configured to store said target positions of said operands and a second table configured to store said actual positions of said operands.

2. The apparatus according to claim 1 , wherein said one or more operators are parsed from a directed acyclic graph defining a computer vision process.

3. The apparatus according to claim 1 , wherein for each modified actual position said operator readiness circuit is further configured to update the actual position in a plurality of tables and, if said actual position is an absolute actual position, determine whether to update said readiness state of each relevant operand.

4. The apparatus according to claim 1 , wherein (i) said actual position is at least one of (a) an absolute actual position and (b) a relative actual position and (ii) said target position is at least one of (a) an absolute target position and (b) a relative target position.

5. The apparatus according to claim 1 , wherein (i) said target positions comprise corresponding buffer locations established in a shared memory circuit and (ii) said actual positions comprise current locations of said operands.

6. The apparatus according to claim 1 , wherein said actual positions of one or more of said operands are reported to said processor by one or more hardware engines.

7. The apparatus according to claim 6 , wherein said one or more hardware engines, said operator readiness circuit and said processor are part of a computer vision system.

8. The apparatus according to claim 1 , wherein a given one of said operators is allocated to at least one of a plurality of hardware engines in response to said actual positions at least meeting said target positions of all of said operands associated with said given operator.

9. The apparatus according to claim 1 , wherein said operator readiness circuit further comprises a first finite state machine configured to update said first table each time one or more target positions are modified and a second finite state machine configured to update said second table each time one or more actual positions are modified.

10. The apparatus according to claim 9 , wherein said operator readiness circuit further comprises an operand to buffer lookup table and a buffer to operand lookup table (i) accessible to said finite state machines and (ii) used by said operator readiness circuit to store absolute actual positions on a per buffer basis instead of per operand.

11. The apparatus according to claim 1 , wherein said operator readiness circuit and said processor are part of a digital camera.

12. A method for scheduling operators, comprising the steps of:

utilizing an operator readiness circuit to (i) compare a target position and an actual position of each operand associated with one or more operators to determine a readiness state of each operand, (ii) update said readiness state of said operands using a plurality of state machines, and (iii) generate one or more status signals indicating a readiness state of the one or more operators based on the readiness state of each operand associated with the one or more operators, wherein a first table stored in memory is configured to store said target positions of said operands and a second table stored in memory is configured to store said actual positions of said operands;

scheduling said one or more operators based on said one or more status signals indicating said readiness state of the one or more operators; and

processing a plurality of vectors using said operators in at least one hardware engine.

13. The method according to claim 12 , further comprising:

for each modified actual position, updating the actual position in at least one table and, if said actual position is an absolute actual position, determining whether to update said readiness state of each relevant operand.

14. The method according to claim 12 , wherein (i) said actual position is at least one of (a) an absolute actual position and (b) a relative actual position and (ii) said target position is at least one of (a) an absolute target position and (b) a relative target position.

15. The method according to claim 12 , wherein a given one of said operators is allocated to the at least one hardware engine in response to said actual positions at least meeting said target positions of all of said operands associated with said given operator.

16. The method according to claim 12 , further comprising the step of:

tracking said actual positions of said operands on a per buffer basis using a buffer to operand mapping table and an operand to buffer mapping table.

17. The method according to claim 12 , further comprising:

utilizing a first finite state machine to update said first table storing said target positions each time one or more target positions are modified; and

utilizing a second finite state machine to update said second table storing said actual positions each time one or more actual positions are modified.

18. The method according to claim 12 , further comprising:

storing one or more of the readiness states of the operands and the readiness states of the one or more operators in respective tables; and

utilizing one or more of a plurality of finite state machines to update one or more of the readiness states of the operands and the readiness states of the one or more operators in the respective tables.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 24, 2020
From: AMBARELLA, INC.
To: AMBARELLA INTERNATIONAL LP
Reel/Frame 051692/0711 →
Continuity (1)
Continuation 15581341 · Apr 28, 2017