IP Library Granted Patent US 7,765,533
Granted Patent B2
US 7,765,533 · App. 10/511,514 · Granted Jul 27, 2010

Automatic task distribution in scalable processors

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 7,765,533
App. No.
10/511,514
Granted
Jul 27, 2010
Kind
B2
Abstract

A processing method and apparatus for processing an information is based on a sequence of instructions, where a repeated sub-sequence is detected in the sequence of instructions and an allocation between a processing resource and the repeated sub-sequence is determined based on an index information indicating the repetition frequency of the repeated sub-sequence. Thus, a combination of a scalable signal processor with automatic task distribution is provided, where the number of memory accesses can be reduced, as the repeated sub-sequence can be allocated to external processing units, which are correspondingly programmed or which use their embedded memory.

Claims (44)

1. A method for processing an information based on a sequence of instructions in an apparatus for data processing comprising a processor, said method comprising the acts of:

detecting a repeated sub-sequence in said sequence of instructions by the apparatus for data processing;

determining a number of external processing units connected to ports of the apparatus, the external processing units being external to the apparatus;

providing an index information indicating a repetition rate of said repeated sub-sequence, wherein said index information comprises an integer number set in proportion with a ranking of the repetition rate of said repeated sub-sequence compared to the repetition rate of other detected repeated sub-sequences; and

determining an allocation between the external processing units and said repeated sub-sequence based on said index information;

wherein said allocation is determined by comparing said integer number with the number of the external processing units, and wherein all repeated sub-sequences for which said integer number is smaller than said number of the external processing units are allocated to a selected processing unit.

2. The method of claim 1 , including generating an instruction containing said index information, and adding said instruction to said sequence of instructions.

3. The method of claim 2 , including activating an external processing unit of the external processing units when said instruction containing said index information indicates that the corresponding repeated sub-sequence has already been allocated to said external processing unit.

4. The method of claim 3 , wherein said activating comprises programming said external processing unit according to said corresponding repeated sub-sequence, or uploading said corresponding repeated sub-sequence to a memory of said external processing unit.

5. The method of claim 1 , wherein said index information comprises an information indicating the number of instructions in said repeated sub-sequence.

6. The method of claim 1 , including generating an instruction for deleting said repeated sub-sequence, if said repeated sub-sequence is no longer detected for a predetermined time period, and resetting a processing unit to which said deleted repeated sub-sequence was allocated.

7. The method of claim 1 , including generating an instruction for specifying processing registers used by said repeated sub-sequence, and using said instruction for locking said specified processing registers.

8. The method of claim 1 , including signalling presence of the external processing units to a central processing unit, and counting the number of available external processing units based on said signalling.

9. An apparatus for processing an information based on a sequence of instructions, said apparatus comprising a processor configured to:

detect a repeated sub-sequence in said sequence of instructions, and for providing an index information indicating a repetition rate of said repeated sub-sequence, wherein said index information comprises an integer number set in proportion with a ranking of the repetition rate of said repeated sub-sequence compared to the repetition rate of other detected repeated sub-sequences;

determine a number of external processing units connected to ports of the apparatus, the external processing units being external to the apparatus; and

allocate said repeated sub-sequence to a processing unit based on said index information by comparing said integer number with the number of the external processing units;

wherein all repeated sub-sequences for which said integer number is smaller than the number of the external processing units are allocated to a selected processing unit.

10. The apparatus of claim 9 , further comprising a memory table for storing an allocation information indicating an allocation between said external processing units and corresponding repeated sub-sequences.

11. The apparatus of claim 9 , wherein said apparatus is a digital signal processor and said external processing units are processor cores and/or configurable logic blocks.

12. A compiler stored on a computer readable medium, the compiler for providing an output sequence of instructions to be used for processing an information in an apparatus for data processing, said compiler being arranged to:

detect a repeated sub-sequence in said output sequence of instructions;

provide an index information indicating a repetition rate of said repeated sub-sequence, wherein said index information comprises an integer number set in proportion with a ranking of the repetition rate of said repeated sub-sequence compared to the repetition rate of other detected repeated sub-sequences;

determine a number of external processing units connected to ports of the apparatus, the external processing units being external to the apparatus; and

allocate said repeated sub-sequence to a processing unit based on said index information by comparing said integer number with the number of the external processing units;

wherein all repeated sub-sequences for which said integer number is smaller than the number of the external processing units are allocated to a selected processing unit.

13. The compiler of claim 12 , wherein said compiler is arranged to add to said output sequence an instruction for allocating at least one processing register until said repeated sub-sequence is finished.

14. The compiler of claim 12 , wherein said compiler is arranged to determine the ranking of repeated sub-sequences based on their repetition rate.

15. A compiler stored on a computer readable medium, the compiler for providing an output sequence of instructions to be used for processing an information in an apparatus for data processing, said compiler being arranged to:

detect a repeated sub-sequence in said output sequence of instructions and to provide an index information indicating a repetition frequency of said repeated sub-sequence;

determine a number of external processing units connected to ports of the apparatus, the external processing units being external to the apparatus;

allocate said repeated sub-sequence to a processing unit based on said index information by comparing said integer number with the number of the external processing units;

wherein all repeated sub-sequences for which said integer number is smaller than the number of the external processing units are allocated to a selected processing unit; and

add to said repeated sub-sequence an additional instruction specifying said index information.

16. The compiler of claim 15 , wherein said additional instruction is added so as to precede said repeated sub-sequence.

17. The compiler of claim 15 , wherein said compiler is arranged to allocate said repeated sub-sequence to a separate processing unit.

18. The compiler of claim 15 , wherein said compiler is arranged to add an additional instruction to said repeated sub-sequence for use in processing notification at execution time.

19. A compiler stored on a computer readable medium, the compiler for providing an output sequence of instructions to be used for processing an information in an apparatus for data processing, said compiler being arranged to:

detect a repeated sub-sequence in said output sequence of instructions;

provide an index information indicating a repetition frequency of said repeated sub-sequence, wherein said index information comprises an integer number set in proportion with a ranking of the repetition rate of said repeated sub-sequence compared to the repetition rate of other detected repeated sub-sequences;

determine a number of external processing units connected to ports of the apparatus, the external processing units being external to the apparatus;

allocate said repeated sub-sequence to a processing unit based on said index information by comparing said integer number with the number of the external processing units;

wherein all repeated sub-sequences for which said integer number is smaller than the number of the external processing units are allocated to a selected processing unit; and

add to said output sequence an instruction for indicating that said repeated sub-sequence is not used anymore.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 5, 2022
From: KONINKLIJKE PHILIPS N.V.
To: NETWORK SYSTEM TECHNOLOGIES LLC
Reel/Frame 062061/0657 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 14, 2004
From: PESSOLANO, FRANCESCO
To: KONINKLIJKE PHILIPS ELECTRONICS N.V.
Reel/Frame 016336/0854 →