System and method for dynamically sizing hardware loops and executing nested loops in a digital signal processor
First Claim
1. For use in a digital signal processor comprising an instruction fetch stage, a decode stage, a dispatch stage, and an execute stage, an apparatus for dynamically sizing a hardware loop capable of executing a plurality of instruction sequences forming a plurality of instruction loops comprising:
- N pairs of loop start registers and loop end registers, each loop start register capable of storing a loop start address and each loop end register capable of storing a loop end address;
N comparators, each of said N comparators associated with one of said N pairs of loop start registers and loop end registers, wherein each of said N comparators is capable of comparing a selected one of a first loop start address and a first loop end address to a fetch program counter value to detect one of a loop start hit and a loop end hit; and
fetch address generation circuitry capable of detecting said loop start hit and said loop end hit and fetching from an address in a program memory an instruction associated with one of said loop start hit and said loop end hit and loading said fetched instruction into said hardware loop.
2 Assignments
0 Petitions
Accused Products
Abstract
There is disclosed, for use in a digital signal processor, an apparatus for dynamically sizing a hardware loop that executes a plurality of instruction sequences forming a plurality of instruction loops. The apparatus comprises: 1) N pairs of loop start registers and loop end registers, each loop start register for storing a loop start address and each loop end register for storing a loop end address; 2) N comparators, each of the N comparators associated with one of the N pairs of loop start registers and loop end registers, wherein each of the N comparators compares a selected one of a first loop start address and a first loop end address to a fetch program counter value to detect one of a loop start hit and a loop end hit; and 3) fetch address generation circuitry for detecting the loop start hit and the loop end hit and fetching from an address in a program memory an instruction associated with one of the loop start hit and the loop end hit and loading the fetched instruction into the hardware loop.
61 Citations
21 Claims
-
1. For use in a digital signal processor comprising an instruction fetch stage, a decode stage, a dispatch stage, and an execute stage, an apparatus for dynamically sizing a hardware loop capable of executing a plurality of instruction sequences forming a plurality of instruction loops comprising:
-
N pairs of loop start registers and loop end registers, each loop start register capable of storing a loop start address and each loop end register capable of storing a loop end address;
N comparators, each of said N comparators associated with one of said N pairs of loop start registers and loop end registers, wherein each of said N comparators is capable of comparing a selected one of a first loop start address and a first loop end address to a fetch program counter value to detect one of a loop start hit and a loop end hit; and
fetch address generation circuitry capable of detecting said loop start hit and said loop end hit and fetching from an address in a program memory an instruction associated with one of said loop start hit and said loop end hit and loading said fetched instruction into said hardware loop. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A digital signal processor comprising:
-
an instruction fetch stage;
a decode stage;
a dispatch stage;
an execution stage; and
an apparatus for dynamically sizing a hardware loop capable of executing a plurality of instruction sequences forming a plurality of instruction loops comprising;
N pairs of loop start registers and loop end registers, each loop start register capable of storing a loop start address and each loop end register capable of storing a loop end address;
N comparators, each of said N comparators associated with one of said N pairs of loop start registers and loop end registers, wherein each of said N comparators is capable of comparing a selected one of a first loop start address and a first loop end address to a fetch program counter value to detect one of a loop start hit and a loop end hit; and
fetch address generation circuitry capable of detecting said loop start hit and said loop end hit and fetching from an address in a program memory an instruction associated with one of said loop start hit and said loop end hit and loading said fetched instruction into said hardware loop. - View Dependent Claims (8, 9, 10, 11, 12)
-
-
13. A wireless communication device comprising:
-
a radio frequency(RF) transceiver capable of receiving an incoming RF signal and down-converting said incoming RF signal to an incoming intermediate frequency (IF) signal;
analog processing circuitry capable of receiving said incoming IF signal and down-converting said incoming IF signal to an incoming digital data stream; and
a digital signal processor capable of receiving said incoming digital data stream and generating therefrom an analog baseband signal, said digital signal processor comprising;
an apparatus for dynamically sizing a hardware loop capable of executing a plurality of instruction sequences forming a plurality of instruction loops comprising;
N pairs of loop start registers and loop end registers, each loop start register capable of storing a loop start address and each loop end register capable of storing a loop end address;
N comparators, each of said N comparators associated with one of said N pairs of loop start registers and loop end registers, wherein each of said N comparators is capable of comparing a selected one of a first loop start address and a first loop end address to a fetch program counter value to detect one of a loop start hit and a loop end hit; and
fetch address generation circuitry capable of detecting said loop start hit and said loop end hit and fetching from an address in a program memory an instruction associated with one of said loop start hit and said loop end hit and loading said fetched instruction into said hardware loop. - View Dependent Claims (14, 15, 16, 17, 18)
-
-
19. For use in a digital signal processor comprising an instruction fetch stage, a decode stage, a dispatch stage and an execute stage, a method of dynamically sizing a hardware loop capable of executing a plurality of instruction sequences forming a plurality of instruction loops comprising the steps of:
-
storing a loop start address and a loop end address in each of N pairs of loop start registers and loop end registers;
comparing in each of N comparators a selected one of a first loop start address and a first loop end address to a fetch program counter value to detect one of a loop start hit and a loop end hit, wherein the each of the N comparators is associated with one of the N pairs of loop start registers and loop end registers;
in response to detection of one of said loop start hit and said loop end hit, fetching from an address in a program memory an instruction associated with one of the loop start hit and the loop end hit; and
loading the fetched instruction into the hardware loop. - View Dependent Claims (20, 21)
-
Specification