IP Library › Granted Patent US 11,182,160
Granted Patent B1
US 11,182,160 · App. 17/103,000 · Granted Nov 23, 2021

Generating source and destination addresses for repeated accelerator instruction

Inventors: Maik Brett (Taufkirchen, DE); Christian Tuschen (Holzkirchen, DE); Sidhartha Taneja (New Delhi, IN); Tejbal Prasad (Greater Noida, IN); Saurabh Arora (Ghaziabad, IN); Anurag Jain (Greater Noida, IN); Pranshu Agrawal (New Delhi, IN); Mukul Aggarwal (New Delhi, IN); Ajay Sharma (Patiala, IN)
Assignee: NXP USA, Inc.
G06F9/30036G06F9/30065G06F9/30098G06F9/3836G06F9/3877
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,182,160
App. No.
17/103,000
Granted
Nov 23, 2021
Kind
B1
Abstract

A method and circuit for a data processing system provide a hardware accelerator repeat control instruction ( 402 A) which is executed with a hardware accelerator instruction ( 402 B) to extract and latch repeat parameters from the hardware accelerator repeat control instruction, such as a repeat count value (RPT_CNT), a source address offset value (ADDR_INCR0), and a destination address offset value (ADDR_INCR1), and to generate a command to the hardware accelerator ( 205 ) to execute the hardware accelerator instruction a specified plurality of times based on instruction parameters from the hardware accelerator instruction by using the repeat count value to track how many times the hardware accelerator instruction is executed and by automatically generating, at each execution of the hardware accelerator instruction, additional source and destination addresses for the hardware accelerator from the repeat parameters until the hardware accelerator instruction has been executed the specified plurality of times by the hardware accelerator.

Claims (42)

1. A non-transitory computer readable storage medium comprising:

a hardware accelerator repeat control instruction of an instruction set architecture, the hardware accelerator repeat control instruction executed on a processor with a hardware accelerator instruction to:

extract and latch repeat parameters from the hardware accelerator repeat control instruction, where the repeat parameters comprise a repeat count value, a source address offset value, and a destination address offset value;

extract and latch instruction parameters from the hardware accelerator instruction, where the instruction parameters comprise a base source address and a base destination address;

generate a command to the hardware accelerator to execute the hardware accelerator instruction based on the instruction parameters a specified plurality of times by using the repeat count value to track how many times the hardware accelerator instruction is executed by the hardware accelerator and by automatically generating, at each execution of the hardware accelerator instruction, additional source and destination addresses for the hardware accelerator from the repeat parameters until the hardware accelerator instruction has been executed the specified plurality of times by the hardware accelerator.

2. The computer readable storage medium of claim 1 , where the hardware accelerator repeat control instruction is a first instruction executed by the processor, and where the hardware accelerator instruction is a next instruction executed by the processor after the first instruction.

3. The computer readable storage medium of claim 1 , where the hardware accelerator repeat control instruction is executed to track how many times the hardware accelerator instruction is executed by:

storing the repeat count value in an execution counter;

decrementing the execution counter each time the hardware accelerator instruction is executed by the hardware accelerator; and

detecting that the hardware accelerator instruction has been executed the specified plurality of times by the hardware accelerator when the execution counter equals 0.

4. The computer readable storage medium of claim 1 , where generating additional source and destination addresses includes incrementing the base source address and base destination address, respectively, with the source address offset value and the destination address offset value.

5. The computer readable storage medium of claim 1 , where the hardware accelerator repeat control instruction is executed to extract the repeat count value as a constant value from the hardware accelerator repeat control instruction.

6. The computer readable storage medium of claim 1 , where the hardware accelerator repeat control instruction is executed to extract the repeat count value from a specified write register.

7. The computer readable storage medium of claim 1 , where the repeat parameters further comprise a twiddle or coefficient address offset value.

8. The computer readable storage medium of claim 1 , where the hardware accelerator comprises a fast Fourier transform hardware accelerator, a global/local maxima search hardware accelerator, a copy/transpose vector hardware accelerator, a vector math operation hardware accelerator, or a histogram calculation hardware accelerator.

9. A method comprising:

receiving a hardware accelerator repeat control instruction and a hardware accelerator instruction; and

executing the hardware accelerator repeat control instruction to:

extract repeat parameters and instruction parameters from the hardware accelerator repeat control instruction, where the repeat parameters comprise a repeat count value, a source address offset value, and a destination address offset value, and where the instruction parameters comprise a base source address and a base destination address, and

generate a command to hardware accelerator device to execute the hardware accelerator instruction based on the instruction parameters a specified plurality of times by using the repeat count value to track how many times the hardware accelerator instruction is executed by the hardware accelerator device and by automatically generating, at each execution of the hardware accelerator instruction, additional source and destination addresses for the hardware accelerator device from the repeat parameters until the hardware accelerator instruction has been executed the specified plurality of times by the hardware accelerator device.

10. The method of claim 9 , where receiving the hardware accelerator repeat control instruction and the hardware accelerator instruction comprises receiving the hardware accelerator repeat control instruction as a first instruction at the hardware accelerator device, and receiving the hardware accelerator instruction as a next instruction at the hardware accelerator device after the first instruction.

11. The method of claim 9 , where using the repeat count value to track how many times the hardware accelerator instruction is executed comprises:

storing the repeat count value in an execution counter;

decrementing the execution counter each time the hardware accelerator instruction is executed by the hardware accelerator device; and

detecting that the hardware accelerator instruction has been executed the specified plurality of times by the hardware accelerator device when the execution counter equals 0.

12. The method of claim 9 , where generating additional source and destination addresses includes incrementing the base source address and base destination address, respectively, with the source address offset value and the destination address offset value.

13. The method of claim 9 , where executing the hardware accelerator repeat control instruction comprises extracting the repeat count value as a constant value from the hardware accelerator repeat control instruction.

14. The method of claim 9 , where executing the hardware accelerator repeat control instruction comprises extracting the repeat count value from a specified write register.

15. The method of claim 9 , where executing the hardware accelerator repeat control instruction to extract repeat parameters comprises extracting a twiddle or coefficient address offset value from the hardware accelerator repeat control instruction.

16. The method of claim 9 , where the hardware accelerator device comprises a fast Fourier transform hardware accelerator, a global/local maxima search hardware accelerator, a copy/transpose vector hardware accelerator, a vector math operation hardware accelerator, or a histogram calculation hardware accelerator.

17. A device, comprising:

a hardware accelerator device comprising a fast Fourier transform hardware accelerator, a global/local maxima search hardware accelerator, a copy/transpose vector hardware accelerator, a vector math operation hardware accelerator, or a histogram calculation hardware accelerator;

a memory for storing instructions comprising a repeat instruction and a target instruction; and

a processor configured to sequentially execute the repeat instruction and the target instruction to:

extract repeat parameters and instruction parameters from the repeat instruction, where the repeat parameters comprise a repeat count value, a source address offset value, and a destination address offset value, and where the instruction parameters comprise a base source address and a base destination address, and

generate a command to the hardware accelerator to execute the target instruction a specified plurality of times based on the instruction parameters by using the repeat count value to track how many times the target instruction is executed by the hardware accelerator device and by automatically generating, at each execution of the target instruction, additional source and destination addresses for the hardware accelerator device from the repeat parameters until the target instruction has been executed the specified plurality of times by the hardware accelerator device.

18. The device of claim 17 , where the repeat instruction is executed to track how many times the target instruction is executed by:

storing the repeat count value in an execution counter;

decrementing the execution counter each time the target instruction is executed by the hardware accelerator device; and

detecting that the target instruction has been executed the specified plurality of times by the hardware accelerator device when the execution counter equals 0.

19. The device of claim 17 , where generating additional source and destination addresses by includes incrementing the base source address and base destination address, respectively, with the source address offset value and the destination address offset value.

20. The device of claim 17 , where the repeat parameters further comprise a twiddle or coefficient address offset value, and where the repeat instruction is executed to extract the repeat count value as a constant value from the repeat instruction or from a specified write register.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 24, 2020
From: BRETT, MAIK; TUSCHEN, CHRISTIAN; TANEJA, SIDHARTHA; PRASAD, TEJBAL; ARORA, SAURABH; JAIN, ANURAG; AGRAWAL, PRANSHU; AGGARWAL, MUKUL; SHARMA, AJAY
To: NXP USA, INC.
Reel/Frame 054458/0725 →
Cited By (2)
US 12,346,343 US 12,645,380