IP Library › Granted Patent US 12,204,475
Granted Patent B2
US 12,204,475 · App. 18/064,121 · Granted Jan 21, 2025

Using a hardware sequencer in a direct memory access system of a system on a chip

Inventors: Ahmad Itani (San Jose, CA); Yen-Te Shih (Zhubei, TW); Jagadeesh Sankaran (Dublin, CA); Ravi P Singh (Austin, TX); Ching-Yu Hung (Pleasanton, CA)
Assignee: NVIDIA Corporation
G06F13/28G06F2213/28
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 12,204,475
App. No.
18/064,121
Granted
Jan 21, 2025
Kind
B2
Abstract

In various examples, a VPU and associated components may be optimized to improve VPU performance and throughput. For example, the VPU may include a min/max collector, automatic store predication functionality, a SIMD data path organization that allows for inter-lane sharing, a transposed load/store with stride parameter functionality, a load with permute and zero insertion functionality, hardware, logic, and memory layout functionality to allow for two point and two by two point lookups, and per memory bank load caching capabilities. In addition, decoupled accelerators may be used to offload VPU processing tasks to increase throughput and performance, and a hardware sequencer may be included in a DMA system to reduce programming complexity of the VPU and the DMA system. The DMA and VPU may execute a VPU configuration mode that allows the VPU and DMA to operate without a processing controller for performing dynamic region based data movement operations.

Claims (64)

1. An autonomous or semi-autonomous machine that comprises at least one system-on-a-chip (SoC), the at least one SoC comprising a direct memory access (DMA) system that comprises processing circuitry to:

sequence retrieval, from a source, of tiles of a frame according a frame structure associated with the frame; and

write data corresponding to the tiles to a destination memory.

2. The autonomous or semi-autonomous machine of claim 1 , wherein the sequence of the retrieval based at least on a tile structure associated with the frame.

3. The autonomous or semi-autonomous machine of claim 2 , wherein:

the frame structure includes a description identifier; and

the tile structure is retrieved based at least on a descriptor associated with the tile structure corresponding to the description identifier.

4. The autonomous or semi-autonomous machine of claim 1 , wherein:

the frame structure associated with the frame is retrieved by at least receiving a structure that includes:

a tile structure associated with the frame, the tile structure indicating one or more descriptors associated with one or more frames; and

the frame structure associated with the frame, the frame structure indicating

at least one of one or more row descriptors or one or more column descriptors; and

the tiles of the frame are retrieved from the source based at least on the structure.

5. The autonomous or semi-autonomous machine of claim 1 , wherein the processing circuitry is further to determine, based at least on the frame structure, the sequence for retrieving the tiles of the frame.

6. The autonomous or semi-autonomous machine of claim 1 , wherein the source includes at least one of a source memory or a sequencing component.

7. The autonomous or semi-autonomous machine of claim 1 , wherein the processing circuitry is further to, based at least on the data corresponding to the tiles being written to the destination memory, cause a processor to process the data corresponding to the tiles in the destination memory.

8. The autonomous or semi-autonomous machine of claim 1 , wherein the processing circuitry is further to receive, from a processor, an indication that processing associated with the data corresponding to the tiles is complete.

9. A method comprising:

receiving, using a sequence controller, a tile structure associated with a frame;

receiving, using the sequence controller and from a source memory, and based at least on the tile structure, one or more tiles of the frame;

providing, using the sequence controller and to a direct memory access (DMA) engine, the one or more tiles of the frame; and

writing, using the DMA engine, data corresponding to the one or more tiles to a destination memory.

10. The method of claim 9 , further comprising:

receiving a frame structure associated with the frame,

wherein the receiving of the one or more tiles from the source memory is further based at least on the frame structure.

11. The method of claim 10 , wherein:

the frame structure includes a description identifier; and

the receiving the tile structure is based at least on a descriptor associated with the tile structure corresponding to the description identifier.

12. The method of claim 9 , wherein:

the receiving the tile structure associated with the frame comprises receiving, using the sequence controller, a structure that includes:

the tile structure associated with the frame, the tile structure indicating one or more descriptors associated with one or more frames; and

a frame structure associated with the frame, the frame structure indicating

at least one of one or more row descriptors or one or more column descriptors; and

the receiving the one or more tiles from the source memory is based at least on the structure.

13. The method of claim 9 , further comprising:

determining, based at least on the tile structure, a sequence for receiving the one or more tiles of the frame,

wherein the receiving the one or more tiles of the frame from the source memory is based at least on the sequence.

14. The method of claim 9 , further comprising, based at least on the data corresponding to the one or more tiles being written to the destination memory, causing a processor to process the data corresponding to the one or more tiles in the destination memory.

15. The method of claim 9 , further comprising:

receiving, from a processor, an indication that processing associated with the data corresponding to the one or more tiles is complete; and

based at least on the receiving the indication, writing second data corresponding to one or more second tiles of one or more second frames to the destination memory.

16. A direct memory access (DMA) system comprising:

a sequence controller to receive, based at least on a sequence defined in a frame structure corresponding to a frame, one or more tiles of the frame from a source memory; and

a DMA engine to:

receive the one or more tiles of the frame from the sequence controller; and

write data corresponding to the one or more tiles to a destination memory.

17. The DMA system of claim 16 , wherein the data being written to the destination memory causes a processor to process the data.

18. The DMA system of claim 16 , wherein the DMA system is comprised in at least one of:

a control system for an autonomous or semi-autonomous machine;

a perception system for an autonomous or semi-autonomous machine;

a system for performing simulation operations;

a system for performing deep learning operations;

a system on chip (SoC);

a system including a programmable vision accelerator (PVA);

a system including a vison processing unit;

a system implemented using an edge device;

a system implemented using a robot;

a system incorporating one or more virtual machines (VMs);

a system implemented at least partially in a data center; or

a system implemented at least partially using cloud computing resources.

19. The DMA system of claim 16 , wherein the frame structure indicating at least one of one or more row descriptors or one or more column descriptors.

20. The DMA system of claim 16 , wherein the sequence controller is further to:

receive a tile structure associated with the frame, the tile structure indicating one or more descriptors associated with one or more frames,

wherein the one or more tiles are further received based at least on the tile structure.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 12, 2022
From: ITANI, AHMAD; SHIH, YEN-TE; SANKARAN, JAGADEESH; SINGH, RAVI P.; HUNG, CHING-YU
To: NVIDIA CORPORATION
Reel/Frame 062060/0353 →
Continuity (2)
Continuation 17391867 · Aug 2, 2021
Related Publication 20230111014A1 · Apr 13, 2023
References Cited (45)
US 6124862A · Boyken et al. · 2000 [cited by applicant]
US 6256724B1 · Hocevar et al. · 2001 [cited by applicant]
US 6298366B1 · Gatherer et al. · 2001 [cited by applicant]
US 6526430B1 · Hung et al. · 2003 [cited by applicant]
US 6530010B1 · Hung et al. · 2003 [cited by applicant]
US 6829016B2 · Hung · 2004 [cited by applicant]
US 8032892B2 · Blocksome et al. · 2011 [cited by applicant]
US 8416251B2 · Gadre · 2013 [cited by examiner]
US 8424012B1 · Karandikar · 2013 [cited by examiner]
US 9501436B1 · Bruce et al. · 2016 [cited by applicant]
US 9519617B2 · Hung et al. · 2016 [cited by applicant]
US 9804844B2 · Ould-Ahmed-Vall et al. · 2017 [cited by applicant]
US 10803009B2 · Hung et al. · 2020 [cited by applicant]
US 10848459B2 · Kumar et al. · 2020 [cited by applicant]
US 10885698B2 · Muthler et al. · 2021 [cited by applicant]
US 11573795B1 · Itani et al. · 2023 [cited by applicant]
US 11593290B1 · Itani et al. · 2023 [cited by applicant]
US 11934829B2 · Itani et al. · 2024 [cited by applicant]
US 20070073921A1 · Vemula et al. · 2007 [cited by applicant]
US 20150006765A1 · Litch · 2015 [cited by examiner]
US 20150006768A1 · Litch et al. · 2015 [cited by applicant]
US 20160313445A1 · Bailey et al. · 2016 [cited by applicant]
US 20160321074A1 · Hung et al. · 2016 [cited by applicant]
US 20170169309A1 · Reddy et al. · 2017 [cited by applicant]
US 20180165546A1 · Skans et al. · 2018 [cited by applicant]
US 20200104076A1 · Bai et al. · 2020 [cited by applicant]
US 20200356757A1 · Ashbacher et al. · 2020 [cited by applicant]
US 20210201454A1 · Subramanya Naidu et al. · 2021 [cited by applicant]
US 20220112481A1 · Zhao et al. · 2022 [cited by applicant]
US 20220283985A1 · Bilski et al. · 2022 [cited by applicant]
US 20230042226A1 · Itani et al. · 2023 [cited by applicant]
US 20230048836A1 · Itani et al. · 2023 [cited by applicant]
US 20230111014A1 · Itani et al. · 2023 [cited by applicant]
US 20230124604A1 · Hung et al. · 2023 [cited by applicant]
US 20230185569A1 · Itani et al. · 2023 [cited by applicant]
US 20240134645A1 · Itani et al. · 2024 [cited by applicant]
Itani, Ahmad; Notice of Allowance for U.S. Appl. No. 17/391,867, filed Aug. 2, 2021, mailed Sep. 21, 2022, 17 pgs. [cited by applicant]
IEC 61508, “Functional Safety of Electrical/Electronic/Programmable Electronic Safety-related Systems,” https://en.wikipedia.org/wiki/IEC_61508, accessed on Apr. 1, 2022, 7 pgs. [cited by applicant]
ISO 26262, “Road vehicle—Functional safety,” International standard for functional safety of electronic system, https://en.wikipedia.org/wiki/ISO_26262, accessed on Sep. 13, 2021, 8 pgs. [cited by applicant]
Itani, Ahmad; Notice of Allowance for U.S. Appl. No. 17/391,875, filed Aug. 2, 2021, mailed Oct. 7, 2022, 18 pgs. [cited by applicant]
“Taxonomy and Definitions for Terms Related to Driving Automation Systems for On-Road Motor Vehicles”, Society of Automotive Engineers (SAE), Standard No. J3016-201609, pp. 30 (Sep. 30, 2016). [cited by applicant]
“Taxonomy and Definitions for Terms Related to Driving Automation Systems for On-Road Motor Vehicles”, Society of Automotive Engineers (SAE), Standard No. J3016-201806, pp. 35 (Jun. 15, 2018). [cited by applicant]
Itani, Ahmad; Final Office Action for U.S. Appl. No. 18/064,119, filed Dec. 9, 2022, mailed Oct. 19, 2023, 16 pgs. [cited by applicant]
Itani, Ahmad; Notice of Allowance for U.S. Appl. No. 18/064,119, filed Dec. 9, 2022, mailed Dec. 22, 2023, 9 pgs. [cited by applicant]
Itani, Ahmad; Non-Final Office Action for U.S. Appl. No. 18/064,119, filed Dec. 9, 2022, mailed Apr. 27, 2023, 16 pgs. [cited by applicant]
Cited By (2)
US 12,705,877 US 12,737,182