DSP/BIOS Link
From Wikipedia, the free encyclopedia
DSP/BIOS Link or DSPLINK is an IPC (interprocessor communications scheme) for passing messages and data in multiprocessor systems. In the case of the DaVinci DSP family from Texas Instruments this scheme would allow passing of messages and data between an ARM client to the DSP server. DSPLINK can be used to implement a layer of software abstraction called a RPC that allows a remote function on the DSP to appear as local function calls in the ARM application code. The Codec Engine IPC communication layer is implemented using a RPC call scheme built on top of DSP/BIOS LINK.
DSP/BIOS LINK is implemented using shared memory and internal interrupts from the ARM to the DSP and vice versa.
The shared memory protocol for IPC is implemented as follows:
- The ARM and DSP are programed to a pre-determined memory address where a message will be sent from the ARM to the DSP; and another for messages sent from the DSP to the ARM.
- One processor sends messages to the other by writing the message into the pre-determined address and then sending an interrupt to signal the other processor that a new message is available. When transfer data buffers, only a pointer to a given buffer needs to be passed since the buffer resides in shared memory that is accessible both processes. ARM buffer address must be translated into physical address to exchange data with a DSPs does not contact MMU or a concept of virtual addressing.
- Once the processor receiving the message has read it, it marks a flag in shared memory to indicate that the message memory is now available to be rewritten with another message.
The DSP included in many DaVinci-based devices generally runs TI's DSP/BIOS RTOS. When multiple, heterogeneous cores are included in the device (e.g. DM644x), DSP/BIOS Link drivers run on both the ARM processor and the DSP to provide communication between the two.
[edit] ARM Operating System Support
A number of ARM9 operating systems support DSP/BIOS Link drivers:
- Montavista Linux
- Mentor Graphics Nucleus PLUS RTOS
- Green Hills Software INTEGRITY RTOS
- QNX Neutrino
- Windows CE
- LEOs (RTOS)