IP Library › Granted Patent US 11,861,484
Granted Patent B2
US 11,861,484 · App. 16/147,189 · Granted Jan 2, 2024

Neural processing unit (NPU) direct memory access (NDMA) hardware pre-processing and post-processing

Inventors: Jinxia Bai (San Diego, CA); Rosario Cammarota (San Diego, CA); Michael Goldfarb (San Diego, CA)
Assignee: QUALCOMM Incorporated
G06N3/063G06F9/30098G06F15/7825
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,861,484
App. No.
16/147,189
Filed
Sep 28, 2018
Granted
Jan 2, 2024
Kind
B2
Art Unit
2183
USPC
706/15
Abstract

A neural processing unit (NPU) is described. The NPU includes an NPU direct memory access (NDMA) core. The NDMA core includes a read engine having a read buffer. The NDMA core also includes a write engine having a write buffer. The NPU also includes a controller. The controller is configured to direct the NDMA core to perform hardware pre-processing of NDMA data in the read buffer and post-processing of NDMA data in the write buffer on blocks of a data stripe to process tensors in artificial neural networks.

Claims (48)

1. A neural processing unit (NPU) chip, comprising:

an NPU direct memory access (NDMA) core comprising:

a read engine having a read buffer; and

a write engine having a write buffer;

a bus bridge coupled to the NDMA core;

a network on chip (NoC) coupled to the bus bridge;

a write client coupled to a first memory interface of the NDMA core, the write client comprising a write client buffer used to store NDMA data of the NDMA core;

a read client coupled to a second memory interface of the NDMA core, the read client comprising a read client buffer used to store the NDMA data of the NDMA core; and

a controller coupled to the NDMA core and configured to direct the NDMA core to move data stripes of an image, block by block, from external memory to the read buffer and to the external memory from the write buffer, and configured to direct the NDMA core to perform hardware pre-processing of NDMA data before the read client buffer and post-processing of NDMA data in the write buffer on blocks of a data stripe to process tensors in artificial neural networks.

2. The NPU chip of claim 1 , further comprising:

a read arbiter coupled to the read engine;

a write arbiter coupled to the write engine; and

the external memory coupled to the read arbiter and the write arbiter.

3. The NPU chip of claim 2 , in which the bus bridge is coupled between the external memory and the read arbiter and the write arbiter.

4. The NPU chip of claim 3 , in which the network on chip (NoC) is coupled between the external memory and the bus bridge.

5. The NPU chip of claim 1 , in which the controller is configured to direct the NDMA core to pad the NDMA data in the read buffer and/or the write buffer.

6. The NPU chip of claim 1 , in which the controller is configured to direct the NDMA core to crop the NDMA data in the read buffer and/or the write buffer.

7. The NPU chip of claim 6 , in which the controller is configured to direct the NDMA core to sign extend the NDMA data in the read buffer and/or the write buffer.

8. A method for hardware pre-processing and post-processing of direct memory access (DMA) data in artificial neural networks, comprising:

programming configuration registers of a neural processing unit (NPU) direct memory access (NDMA) core for a read client and/or a write client;

streaming data blocks of a data stripe of an image, block by block, over a bus bridge and a network on chip (NoC) between external memory and the NDMA core; and

pre-processing and post-processing the data blocks in buffers of the NDMA core during streaming of the data blocks between the external memory and the read client and/or write client.

9. The method of claim 8 , in which pre-processing and post-processing comprises padding NDMA data in a read buffer and/or a write buffer during streaming of the data blocks.

10. The method of claim 8 , in which pre-processing and post-processing comprises cropping NDMA data in a read buffer and/or a write buffer during the streaming of the data blocks.

11. The method of claim 8 , in which pre-processing and post-processing comprises sign extending NDMA data in a read buffer and/or a write buffer during streaming of the data blocks.

12. The method of claim 8 , further comprising:

unpacking NDMA data during the streaming of data blocks of the data stripe to/from the external memory; and

repacking NDMA data prior to the streaming of data blocks of the data stripe to the external memory.

13. An artificial neural network for hardware pre-processing and post-processing of direct memory access (DMA) data, the artificial neural network comprising:

means for programming configuration registers of a neural processing unit (NPU) direct memory access (NDMA) core for a read client and/or a write client;

means for streaming data blocks of a data stripe of an image, block by block, over a bus bridge and a network on chip (NoC) between external memory and the NDMA core; and

means for pre-processing and post-processing data blocks of the data stripe in buffers of the NDMA core during the streaming of data blocks of the data stripe between the external memory and the read client and/or write client.

14. The artificial neural network of claim 13 , in which the means for pre-processing and post-processing comprises means for padding NDMA data in a read buffer and/or a write buffer during the streaming of data blocks of the data stripe.

15. The artificial neural network of claim 13 , in which the means for pre-processing and post-processing comprises means for cropping NDMA data in a read buffer and/or a write buffer during the streaming of data blocks of the data stripe.

16. The artificial neural network of claim 13 , in which the means for pre-processing and post-processing comprises means for sign extending NDMA data in a read buffer and/or a write buffer during the streaming of data blocks of the data stripe.

17. The artificial neural network of claim 13 , further comprising:

means for unpacking NDMA data during the streaming of data blocks of the data stripe to/from the external memory of the NDMA core; and

means for repacking NDMA data prior to the streaming of data blocks of the data stripe to/from the external memory.

18. A non-transitory computer-readable medium having program code recorded thereon for hardware pre-processing and post-processing of direct memory access (DMA) data in an artificial neural network, the program code being executed by a processor and comprising:

program code to program configuration registers of a neural processing unit (NPU) direct memory access (NDMA) core for a read client and/or a write client;

program code to stream data blocks of a data stripe of an image, block by block, over a bus bridge and a network on chip (NoC) between an external memory and the NDMA core; and

program code to pre-process and post-process the data blocks of the data stripe in buffers of the NDMA core during streaming of the data blocks of the data stripe between the external memory and the read client and/or write client.

19. The non-transitory computer-readable medium of claim 18 , in which the program code to pre-process and post-process comprises program code to pad NDMA data in a read buffer and/or a write buffer during the program code to stream the data blocks.

20. The non-transitory computer-readable medium of claim 18 , in which the program code to pre-process and post-process comprises program code to crop NDMA data in a read buffer and/or a write buffer during the program code to stream the data blocks.

21. The non-transitory computer-readable medium of claim 18 , in which the program code to pre-process and post-process comprises program code to sign extend NDMA data in a read buffer and/or a write buffer during streaming of the data blocks.

22. The non-transitory computer-readable medium of claim 18 , further comprising:

program code to unpack NDMA data during streaming of the NDMA data from the external memory; and

program code to repack the NDMA data prior to streaming the data blocks to the external memory.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 13, 2018
From: BAI, JINXIA; CAMMAROTA, ROSARIO; GOLDFARB, MICHAEL
To: QUALCOMM INCORPORATED
Reel/Frame 047491/0361 →
Continuity (1)
Related Publication 20200104690A1 · Apr 2, 2020
Cited By (1)
US 12,608,319