Real-time operating system and virtual digital signal processor for the control of a digital signal processor
First Claim
1. An apparatus for managing the operation f a digital signal processor (DSP), comprising:
- (a) a digital signal processor (DSP); and
(b) virtual DSP machine means, performed by the DSP, for insulating computer programs executed by the DSP from the DSP'"'"'s specific architecture, wherein functions of the DSP are accessed by the computer programs via a high-level programming interface, wherein the virtual DSP machine means comprises a plurality of modules arranged in a hierarchy, comprising;
(1) an array module for creating arrays of data and allocating memory blocks therefor through the memory management means;
(2) a stream module for processing continuous data streams being input and output by the I/O devices coupled to the DSP, comprising means for binding the I/O devices to the computer programs, means for transferring the data between the arrays and the I/O devices, and means for invoking device-dependent control functions for the I/O devices;
(3) a vector module for creating vectors of data that provide a one dimensional view of the arrays, and for performing vector math operations on the vectors;
(4) a matrix module for creating matrices of data that provide a two dimensional view of the arrays, and for performing matrix math functions on the matrices; and
(5) a filter module for creating finite impulse response filters, infinite impulse response filters, and all-pole filters, and for applying the filters to the vectors.
2 Assignments
0 Petitions
Accused Products
Abstract
A data processor, such as a digital signal processor, that has augmented memory, I/O and math units for real-time performance of complex functions, is placed under the control of a group of abstract object-oriented modules arranged with an underlying operational nucleus that includes a real-time kernel. The modules are hierarchically configured, with the lowest being an array object type that references memory allocations. A stream object type, based on the arrays, defines channels between application software and data devices. A vector object type, also based on the arrays, establishes structure within allocated blocks and also enables vector math functions to be undertaken by the vector module. Matrix and filter object types utilize the arrays and vectors in sequences controlled by the corresponding matrix and vector modules. The system provides a model of DSP functionality that is hardware independent, and an interface between high level language calls and highly efficient routines executed in assembly language. With this arrangement a large library of math functions is held available for use in real-time operations of complex nature.
85 Citations
25 Claims
-
1. An apparatus for managing the operation f a digital signal processor (DSP), comprising:
-
(a) a digital signal processor (DSP); and (b) virtual DSP machine means, performed by the DSP, for insulating computer programs executed by the DSP from the DSP'"'"'s specific architecture, wherein functions of the DSP are accessed by the computer programs via a high-level programming interface, wherein the virtual DSP machine means comprises a plurality of modules arranged in a hierarchy, comprising; (1) an array module for creating arrays of data and allocating memory blocks therefor through the memory management means; (2) a stream module for processing continuous data streams being input and output by the I/O devices coupled to the DSP, comprising means for binding the I/O devices to the computer programs, means for transferring the data between the arrays and the I/O devices, and means for invoking device-dependent control functions for the I/O devices; (3) a vector module for creating vectors of data that provide a one dimensional view of the arrays, and for performing vector math operations on the vectors; (4) a matrix module for creating matrices of data that provide a two dimensional view of the arrays, and for performing matrix math functions on the matrices; and (5) a filter module for creating finite impulse response filters, infinite impulse response filters, and all-pole filters, and for applying the filters to the vectors.
-
-
2. A digital signal processing apparatus, comprising:
-
(a) a digital signal processor (DSP) having a plurality of memory segments comprising memories of different sizes and speeds coupled thereto; (b) array module means, performed by the DSP, for creating arrays of data and allocating memory blocks therefor from the memory segments; (c) stream module means, performed by the DSP, for processing continuous data streams being input and output by I/O devices coupled to the DSP, comprising means for binding the I/O devices to computer programs executed by the DSP, means for transferring the data between the arrays and the I/O devices, and means for invoking device-dependent control functions for the I/O devices; (d) vector module means, performed by the DSP, for creating vectors of data that provide a one dimensional view of the arrays, and for performing vector math operations on the vectors; (e) matrix module means, performed by the DSP, for creating matrices of data that provide a two dimensional view of the arrays, and for performing matrix math functions on the matrices; and (f) filter module means, performed by the DSP, for creating finite impulses response filters, infinite impulse response filters, and all-pole filters, and for applying the filters to the vectors.
-
-
3. A digital signal processing apparatus, comprising:
-
(a) a digital signal processor (DSP); (b) real-time kernel means, performed by the DSP, for multi-tasking a plurality of concurrently operating computer programs executed by the DSP; (c) memory management means, coupled to the real-time kernel means and performed by the DSP, for managing memory requests from the computer programs executing on the DSP; (d) interrupt handling means, coupled to the real-time kernel means and performed by the DSP, for processing interrupts from I/O devices coupled to the DSP with minimum overhead; (e) device driver support means, coupled to the real-time kernel means, invoked by the computer programs and the interrupt handling means, and performed by the DSP, for handling data input and output by the I/O devices as signaled by the interrupt handler means; and (f) virtual DSP machine means, coupled to the real-time kernel means and performed by the DSP, for insulating the computer programs executing on the DSP from the DSP'"'"'s specific architecture, wherein functions of the DSP are accessed by the computer programs via a high-level programming interface, and wherein the virtual DSP machine means comprises a plurality of modules arranged in a hierarchy comprising; (1) an array module for creating arrays of data and allocating memory blocks therefor through the memory management means; (2) a stream module for processing continuous data streams being input and output by the I/O devices coupled to the DSP, comprising means for binding the I/O devices to the computer programs, means for transferring the data between the arrays and the I/O devices, and means for invoking devicedependent control functions for the I/O devices; (3) a vector module for creating vectors of data that provide a one dimensional view of the arrays, and for performing vector math operations on the vectors; (4) a matrix module for creating matrices of data that provide a two dimensional view of the arrays, and for performing matrix math functions on the matrices; (5) a filter module for creating finite impulse response filters, infinite impulse response filters, and all-pole filters, and for applying the filters to the vectors; and (6) wherein the modules are selectively executed by the DSP. - View Dependent Claims (4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25)
-
Specification