IP Library Granted Patent US 11,893,388
Granted Patent B2
US 11,893,388 · App. 17/719,942 · Granted Feb 6, 2024

Multiplier-accumulator processing pipelines and processing component, and methods of operating same

Inventors: Frederick A. Ware (Los Altos Hills, CA); Cheng C. Wang (San Jose, CA); Valentin Ossman (Livermore, CA)
Assignee: Flex Logix Technologies, Inc.
G06F9/3001
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,893,388
App. No.
17/719,942
Granted
Feb 6, 2024
Kind
B2
Abstract

An integrated circuit including a plurality of processing components to process image data of a plurality of image frames, wherein each image frame includes a plurality of stages. Each processing component includes a plurality of execution pipelines, wherein each pipeline includes a plurality of multiplier-accumulator circuits configurable to perform multiply and accumulate operations using image data and filter weights, wherein: (i) a first processing component is configured to process all of the data associated with a first plurality of stages of each image frame, and (ii) a second processing component of the plurality of processing components is configured to process all of the data associated with a second plurality of stages of each image frame. The first and second processing component processes data associated with the first and second plurality of stages, respectively, of a first image frame concurrently.

Claims (78)

1. An integrated circuit comprising:

a plurality of processing components to process image data of a plurality of image frames, wherein each image frame includes a plurality of stages, wherein each processing component includes:

a plurality of multiplier-accumulator execution pipelines, wherein each multiplier-accumulator execution pipeline includes a plurality of multiplier-accumulator circuits configurable to, in operation, perform multiply and accumulate operations using image data and filter weights; wherein:

a first processing component of the plurality of processing components is configured to process all of the data associated with a first plurality of stages of each image frame via the plurality of multiplier-accumulator execution pipelines of the first processing component, and

a second processing component of the plurality of processing components is configured to process all of the data associated with a second plurality of stages of each image frame via the plurality of multiplier-accumulator execution pipelines of the second processing component, wherein:

each stage of the first plurality of stages is different from each stage of the second plurality of stages, and

the first processing component processes data associated with the first plurality of stages of a first image frame concurrently with respect to the second processing component processing data associated with the second plurality of stages of the first image frame; and

wherein the first processing component is separate from the second processing component and the first and second processing components are electrically connected via a bus.

2. The integrated circuit of claim 1 wherein:

the bus is a ring bus.

3. The integrated circuit of claim 1 wherein:

the first plurality of stages of each image frame correspond to the same plurality of stages of each frame of the plurality of frames, and

the second plurality of stages of each image frame correspond to the same plurality of stages of each frame of the plurality of frames.

4. The integrated circuit of claim 1 wherein each of the processing components further includes:

a first memory to store image data, wherein the first image data is coupled to the inputs of a plurality of multiplier-accumulator execution pipelines of the associated processing component;

a second memory to store filter weight data; and

a plurality of third memories, coupled to the second memory, to store filter weight data received from the second memory, wherein each multiplier-accumulator circuit of each multiplier-accumulator execution pipeline of the plurality of multiplier-accumulator execution pipelines of the associated processing component is coupled to a dedicated one of the third memories.

5. The integrated circuit of claim 4 wherein:

the plurality of multiplier-accumulator execution pipelines of the first processing component are configured, in operation, to perform a portion of the first plurality of multiply and accumulate operations concurrently with respect to performance of a plurality of multiply and accumulate operations by the plurality of multiplier-accumulator execution pipeline of the second processing component.

6. An integrated circuit comprising:

a plurality of processing components to process image data of a plurality of image frames, wherein each image frame includes a plurality of stages, wherein each processing component includes a plurality of multiplier-accumulator execution pipelines, wherein each multiplier-accumulator execution pipeline includes a plurality of multiplier-accumulator circuits configured to, in operation, perform multiply and accumulate operations using image data and filter weights, wherein:

a first processing component of the plurality of processing components is configured to process all of the data associated with a first plurality of stages of each image frame via a first plurality of multiplier-accumulator execution pipelines of the first processing component, wherein:

the first plurality of multiplier-accumulator execution pipelines is configurable to: (i) input data corresponding to a first plurality of stages of a first image frame, (ii) perform a first plurality of multiply and accumulate operations using data corresponding to a first plurality of stages of the first image frame and a first set of filter weights, and (iii) output processed data of a final stage of the first plurality of stage of the first image frame; and

a second processing component of the plurality of processing components is configured to process all of the data associated with a second plurality of stages of each image frame via the first plurality of multiplier-accumulator execution pipelines of the second processing component, wherein:

the first plurality of multiplier-accumulator execution pipelines is configurable to: (i) input (a) the processed data of the final stage of the first plurality of stages of the first image frame and (b) data corresponding to a second plurality of stages of the first image frame, (ii) perform a first plurality of multiply and accumulate operations using (a) the processed data of the final stage of the first plurality of stage of the first image frame, (b) the data corresponding to the second plurality of stage of the first image frame, and (c) a second set of filter weights, and

each stage of the first plurality of stages is different from each stage of the second plurality of stages, and

wherein the first processing component is separate from the second processing component and the first and second processing components are electrically connected via a bus.

7. The integrated circuit of claim 6 wherein:

the first plurality of multiplier-accumulator execution pipelines of the first processing component output the processed data of a final stage of the first plurality of stage of the first image frame to the first plurality of multiplier-accumulator execution pipelines of the second processing component via the bus.

8. The integrated circuit of claim 7 wherein:

the bus is a ring bus.

9. The integrated circuit of claim 7 wherein:

the first plurality of multiplier-accumulator execution pipelines of the first processing component are configurable to input data corresponding to a first plurality of stages of a first image frame from memory of the first processing component, and

the first plurality of multiplier-accumulator execution pipelines of the second processing component are configurable to input data corresponding to a second plurality of stages of a first image frame from memory of the second processing component.

10. The integrated circuit of claim 6 wherein:

the first plurality of stages of each image frame correspond to the same plurality of stages of each frame of the plurality of frames, and

the second plurality of stages of each image frame correspond to the same plurality of stages of each frame of the plurality of frames.

11. The integrated circuit of claim 6 wherein each of the processing components further includes:

a first memory to store image data, wherein the first image data is coupled to the inputs of a plurality of multiplier-accumulator execution pipelines of the associated processing component;

a second memory to store filter weight data; and

a plurality of third memories, coupled to the second memory, to store filter weight data received from the second memory, wherein each multiplier-accumulator circuit of each multiplier-accumulator execution pipeline of the plurality of multiplier-accumulator execution pipelines of the associated processing component is coupled to a dedicated one of the third memories.

12. The integrated circuit of claim 11 wherein:

the first memory is L2 memory,

the second memory is L1 memory, and

the plurality of third memories are L0 memory.

13. The integrated circuit of claim 6 wherein:

the plurality of multiplier-accumulator execution pipelines of the first processing component are configured, in operation, to perform a portion of the first plurality of multiply and accumulate operations concurrently with respect to performance of a plurality of multiply and accumulate operations by the plurality of multiplier-accumulator execution pipeline of the second processing component.

14. A processing system comprising:

a plurality of processing components, each processing component disposed on a different die, wherein each processing component is configurable to process image data of a plurality of image frames, wherein each image frame includes a plurality of stages, wherein each processing component of the integrated circuit includes:

a plurality of multiplier-accumulator execution pipelines, wherein each multiplier-accumulator execution pipeline includes a plurality of multiplier-accumulator circuits configured to, in operation, perform multiply and accumulate operations using image data and filter weights; wherein:

a first processing component of the plurality of processing components is configured to process all of the data associated with a first plurality of stages of each image frame via a first plurality of multiplier-accumulator execution pipelines of the first processing component, wherein:

the first plurality of multiplier-accumulator execution pipelines is configurable to: (i) input data corresponding to a first plurality of stages of a first image frame, (ii) perform a first plurality of multiply and accumulate operations using data corresponding to a first plurality of stages of the first image frame and a first set of filter weights, and (iii) output processed data of a final stage of the first plurality of stage of the first image frame; and

a second processing component of the plurality of processing components is configured to process all of the data associated with a second plurality of stages of each image frame via the first plurality of multiplier-accumulator execution pipelines of the second processing component, wherein:

the first plurality of multiplier-accumulator execution pipelines is configurable to: (i) input (a) the processed data of the final stage of the first plurality of stages of the first image frame and (b) data corresponding to a second plurality of stages of the first image frame, (ii) perform a first plurality of multiply and accumulate operations using (a) the processed data of the final stage of the first plurality of stage of the first image frame, (b) the data corresponding to the second plurality of stage of the first image frame, and (c) a second set of filter weights, and

each stage of the first plurality of stages is different from each stage of the second plurality of stages, and

wherein the first and second processing components are electrically connected via a bus.

15. The processing system of claim 14 wherein:

the first plurality of multiplier-accumulator execution pipelines of the first processing component output the processed data of a final stage of the first plurality of stage of the first image frame to the first plurality of multiplier-accumulator execution pipelines of the second processing component via the bus.

16. The processing system of claim 15 wherein:

the bus is a ring bus.

17. The processing system of claim 15 wherein:

the first plurality of multiplier-accumulator execution pipelines of the first processing component are configurable to input data corresponding to a first plurality of stages of a first image frame from memory of the first processing component, and

the first plurality of multiplier-accumulator execution pipelines of the second processing component are configurable to input data corresponding to a second plurality of stages of a first image frame from memory of the second processing component.

18. The processing system of claim 14 wherein:

the first plurality of stages of each image frame correspond to the same plurality of stages of each frame of the plurality of frames, and

the second plurality of stages of each image frame correspond to the same plurality of stages of each frame of the plurality of frames.

19. The processing system of claim 14 wherein each of the processing components further includes:

a first memory to store image data, wherein the first image data is coupled to the inputs of a plurality of multiplier-accumulator execution pipelines of the associated processing component;

a second memory to store filter weight data; and

a plurality of third memories, coupled to the second memory, to store filter weight data received from the second memory, wherein each multiplier-accumulator circuit of each multiplier-accumulator execution pipeline of the plurality of multiplier-accumulator execution pipelines of the associated processing component is coupled to a dedicated one of the third memories.

20. The processing system of claim 19 wherein:

the first memory is L2 memory,

the second memory is L1 memory, and

the plurality of third memories are L0 memory.

21. The processing system of claim 14 wherein:

the plurality of multiplier-accumulator execution pipelines of the first processing component are configured, in operation, to perform a portion of the first plurality of multiply and accumulate operations concurrently with respect to performance of a plurality of multiply and accumulate operations by the plurality of multiplier-accumulator execution pipeline of the second processing component.

22. The processing system of claim 14 wherein:

the separate die are disposed on a printed circuit board and the bus is a ring bus that is integrated into the printed circuit board.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 21, 2024
From: FLEX LOGIX TECHNOLOGIES, INC.
To: ANALOG DEVICES, INC.
Reel/Frame 069409/0035 →
Continuity (3)
Division 16816164 · Mar 11, 2020
Provisional Application 62831413 · Apr 9, 2019
Related Publication 20220236986A1 · Jul 28, 2022