IP Library Granted Patent US 7,100,017
Granted Patent B2
US 7,100,017 · App. 10/969,557 · Granted Aug 29, 2006

Method and apparatus for performing distributed processing of program code

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,100,017
App. No.
10/969,557
Granted
Aug 29, 2006
Kind
B2
Abstract

A processor having a limited amount of local memory for storing code and/or data utilizes a program stored in external memory. The program stored in external memory is configured into blocks which can be loaded individually into the local memory for execution. Queuing the individual blocks of code allows the program to be executed by the processor and also facilitates loading of the subsequent code to be executed. A semaphore system can be utilized to indicate which blocks of local memory are available/unavailable. The system can support the interaction of multiple independent programs in external memory.

Claims (44)

1. In a processor having an internal memeory and coupled to an external memory, a method for storage and execution of an algorithm represented by a plurality of program code blocks that is too large to be stored entirely within the internal memory, comprising the steps of:

retrieving a first block of the plurality of program code blocks from the external memory;

accessing a first semaphore to determine availability of a first memory slot in the internal memory wherein the first semaphore resides in a register, and wherein the processor, the local memory and the register are fabricated on a common semiconductor substrate;

storing the first program code block into the first memory slot;

modifying the first semaphore to indicate unavailability of the first memory slot; and

executing the first program code block, wherein the algorithm comprises a Fast Fourier Transform (FFT) algorithm, a Discrete Cosine Transfonn (DCT) algorithm, an Echo effect algorithm, or a Reverberation effect algorithm.

2. The method of claim 1 , wherein the external memory comprises a synchronized dynamic random access memory (SDRAM).

3. The method of claim 1 , further comprising the step of modifying the first semaphore to indicate availability of the first memory slot after the executing step is complete.

4. The method of claim 1 , further comprising the steps of:

retrieving a first data block of a plurality of data blocks from the external memory;

accessing a second semaphore to determine availability of a second memory slot in the internal memory;

storing the first data block into the second memory slot for processing by the processor according to the algorithm; and

modifying the second semaphore to indicate vnavailability of the second memory slot;

wherein the plurality of data blocks represents a data set which is too large to be stored entirely within the internal memory of the processor, thereby enabling processing of the data set using limited internal memory.

5. The method of claim 4 , further comprising the step of modifying the second semaphore to indicate availability of the second memory slot after processing of the first data block is complete.

6. The method of claim 4 , wherein the first semaphore and the second semaphore reside in a register, and wherein the processor, the local memory and the register are fabricated on a common semiconductor substrate.

7. The method of claim 4 , wherein the external memory comprises a synchronized dynamic random access memory (SDRAM).

8. The method of claim 6 , wherein the algorithm comprises a Fast Fourier Transform (FFT) algorithm, a Discrete Cosine Transform (DCT) algorithm, an Echo effect algorithm, or a Reverberation effect algorithm.

9. In a processor having an internal memory and coupled to an external memeory, a method for storage and process of a data set represented by a plurality of data blocks that is too large to be stored entirely within the internal memory, comprising the steps of:

retrieving a first data block of the plurality of data blocks from the external memory;

accessing a first semaphore to determine availability of a first memory slot in the internal memory wherein the first semaphore resides in a register, and wherein the processor, the local memo and the register are fabricated on a common semiconductor substrate;

storing the first data block into the first memory slot for processing by the processor according to an algortthm; and

modifying the first semaphore to indicate unavailability of the first memory slot, wherein the algorithm comptes a Fast Fourier Transfona (FFT) algorithm, a Discrete Cosine Transform (DCT) algorithm, an Echo effect algorithm, or a Reverberation effect algorithm.

10. The method of claim 9 , further comprising the step of modifying the first semaphore to indicate availability of the first memory slot after processing of the first data block is complete.

11. The method of claim 9 , wherein the external memory comprises a synchronized dynamic random access memory (SDRAM).

12. The method of claim 9 , fluter comprising the steps of:

retrieving a first block of a plurality of program code blacks from the external memory;

accessing a second semaphore to determine availability of a second memory slot in the internal memory;

storing the first program code block into the second memory slot;

modifying the second semaphore to indicate unavailability of the second memory slot; and

executing the first program code block;

wherein the algorithm represented by the plurality of program code blocks is too large to be stored entirely within the internal memory of the processor, thereby enabling execution of the algorithm using limited internal memory.

13. The method of claim 12 , further comprising the step of modifying the second semaphore to indicate availability of the second memory slot after to executing step is complete.

14. A computing apparatus for processing a data set according to an algorithm, the data set comprising a plurality of data blocks, the algorithm comprising a plurality of program code blocks, the computing apparatus comprising:

a first memory element;

a register for storing a set of semaphores; and

a processor for:

accessing the set of semaphores to determine availability of a set of memory slots in the first memory element;

retrieving a program code block and a data block from a second memory element and storing them in the set of memory slots;

modifying the set of semaphores to indicate availability of the set of memory slots after completion of the exceeding step;

modifying the set of semaphores to indicate unavailability of the set of memory slots prior to the excuting step; and

executing the program code block to process the data block;

wherein the processor the first memory element and the register are fabricated on a common substrate, the second memory element is external to the processor, the algorithm and the data set reside on the second memory element and are too large to be stored entirely within the first memory element thereby enabling execution of the algorithm using limited memory, wherein the algorithm comprises a Fast Fourier Transform (FFT) algorithm, a Discrete Cosine Transform (DCT) algorithm, an Echo effect algorithm, or a Reverberation effect algorithm.

15. The computing apparatus of claim 14 , wherein the second memory element comprises a synchronized dynamic random access memory (SDRAM) coupled to the processor.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 28, 2012
From: GREICAR, RICHARD K.
To: VM LABS, INC.
Reel/Frame 029047/0206 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 28, 2012
From: VM LABS, INC.
To: GENESIS MICROCHIP INC.
Reel/Frame 029047/0550 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 6, 2009
From: GENESIS MICROCHIP INC.
To: TAMIRAS PER PTE. LTD., LLC
Reel/Frame 022915/0929 →