IP Library Granted Patent US 10,417,003
Granted Patent B1
US 10,417,003 · App. 14/840,311 · Granted Sep 17, 2019

Data unit synchronization between chained pipelines

Inventor: Kumarasamy Palanisamy (San Jose, CA)
Assignee: Ambarella, Inc.
G06F9/3867G06F9/30145
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,417,003
App. No.
14/840,311
Granted
Sep 17, 2019
Kind
B1
Abstract

An apparatus having an interface and a circuit is disclosed. The interface may be connectable to a plurality of counters and a plurality of chained pipelines. The circuit may be configured to (i) increment each of a plurality of counters associated with a data unit in a buffer in response to a request from a first pipeline of the chained pipelines to increment one of the counters. The first pipeline may generate the data unit in the buffer. A plurality of second pipelines of the chained pipelines may access the data in the buffer in response to the counters being incremented. The circuit may be further configured to (ii) receive a plurality of wake instructions from the counters and (iii) send another wake instruction to the first pipeline in response to reception of all of the wake instructions.

Claims (30)

1. An apparatus comprising:

a first circuit configured to interface to a bus that sends and receives data to and from a plurality of counters and a plurality of pipelines; and

a second circuit configured to (i) detect a first request on said bus from a first pipeline of said pipelines to increment one of said counters, (ii) send a plurality of second requests on said bus to said counters to increment each of two or more given counters of said counters associated with a data unit in a buffer in response to said first request, (iii) receive a plurality of wake instructions on said bus from said given counters after sending said second requests, (iv) send another wake instruction on said bus to said first pipeline in response to reception of all of said wake instructions generated by said given counters, (v) snoop said bus in search of said first request while said second circuit is in a single frame mode, (vi) snoop said bus in search of an end of frame and (vii) idle operation in said second circuit in response to detecting said end of frame after said first request is found,

wherein (a) said first pipeline generates said data unit stored in said buffer, (b) a plurality of second pipelines of said pipelines are configured to access said data unit in said buffer in response to said given counters being incremented and (c) each of said given counters are configured to tracks a status of a respective one of said second pipelines.

2. The apparatus according to claim 1 , wherein said first circuit and said second circuit are implemented in only hardware.

3. The apparatus according to claim 1 , wherein each of said second pipelines are configured to decrement a respective one of said given counters when finished with said data unit in said buffer.

4. The apparatus according to claim 3 , wherein said second circuit is further configured to enable said second pipelines to process an additional data unit in said buffer in response to a reception on said bus of an additional request from the first pipeline.

5. The apparatus according to claim 1 , wherein said second circuit is further configured to snoop said bus in search of (i) said first request while said second circuit is in a multiple frame mode, (ii) said end of frame and (iii) a next request in response to detecting said end of frame after said first request is found.

6. The apparatus according to claim 1 , wherein (i) said data unit generated by said first pipeline and stored in said buffer comprises a number of units, (ii) said number is greater than one and (iii) said second circuit is configured to increase each of said given counters by said number to grant said second pipelines access to said units.

7. The apparatus according to claim 6 , wherein at least one of said second pipelines is configured to read from a first of said units while at least another of said second pipelines is configured to read from a second of said units.

8. The apparatus according to claim 1 , wherein said first and said second circuit are part of a digital camera.

9. A method for data unit synchronization between pipelines, comprising the steps of:

interfacing to a bus that sends and receives data to and from a plurality of counters and a plurality of pipelines;

detecting a first request on said bus from a first pipeline of said pipelines to increment one of said counters;

sending a plurality of second requests on said bus to said counters to increment each of two or more given counters of said counters associated with a data unit in a buffer in response to said first request, wherein (a) said first pipeline generates said data unit stored in said buffer, (b) a plurality of second pipelines of said pipelines are configured to access said data in said buffer in response to said given counters being incremented and (c) each of said given counters are configured to track a status of a respective one of said second pipelines;

receiving at a circuit a plurality of wake instructions on said bus from said given counters after sending said second requests;

sending another wake instruction on said bus to said first pipeline in response to reception of all of said wake instructions generated by said given counters;

snooping said bus in search of said first request while said circuit is in a single frame mode;

snooping said bus in search of an end of frame; and

idling operation in said circuit in response to detecting said end of frame after said first request is found.

10. The method according to claim 9 , wherein said circuit is implemented in only hardware.

11. The method according to claim 9 , wherein each of said second pipelines is configured to decrement a respective one of said given counters when finished with said data unit in said buffer.

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

enabling said second pipelines to process an additional data unit in said buffer in response to reception on said bus at said circuit of an additional request from the first pipeline.

13. The method according to claim 9 , further comprising the steps of:

snooping said bus in search of said first request while said circuit is in a multiple frame mode;

snooping said bus in search of an end of frame; and

snooping said bus in search of a next request in response to detecting said end of a frame after said first request is found.

14. The method according to claim 9 , wherein (i) said data unit generated by said first pipeline and stored in said buffer comprises a number of units, (ii) said number is greater than one and (iii) said circuit is configured to increase each of said given counters by said number to grant said second pipelines access to said units.

15. The method according to claim 14 , wherein at least one of said second pipelines is configured to read from a first of said units while at least another of said second pipelines is configured to read from a second of said units.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 5, 2020
From: AMBARELLA, INC.
To: AMBARELLA INTERNATIONAL LP
Reel/Frame 051831/0041 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 31, 2015
From: PALANISAMY, KUMARASAMY
To: AMBARELLA, INC.
Reel/Frame 036456/0776 →