title: MDSP
text: # MDSP
  
  MDSP is a multiprocessor DSP family from Cradle Technologies. Currently used mostly in streaming video processing in broadcast (internet and terrestrial) and video surveillance security markets.
  
  It is a loosely coupled architecture that employs compute and Input/output (IO) subsystems with programmable (software defined) IO, consisting of general purpose and signal processing cores. The general purpose cores are used for control and IO processing and the DSP cores for fixed or floating point computation.
  
  MDSP is similar in architecture to the Cell (microprocessor) processor from STI (Sony, Toshiba and IBM) except it has multiple processing elements. Cell is PowerPC based. The PE (processing element) or GPP (General purpose processor) units are 32 bit general purpose RISC-like cores coupled with signal processing units (DSP or DSE) via a databus.
  
  ## Development tools
  
  The initial software development kit (sdk4) was based on cygwin 1.3.x and Cradles umgcc (GCC port). Sdk5 is based on Cygwin 1.5.x and cragcc (gcc port).
  
  The chips are programmed in a mix of C and CLASM (C like assembly). The PEs can be programmed in C, the DSEs and MTEs are programmed in CLASM. The programmer has to manage resource allocation using semaphores, paying special attention to keeping all DSP units fed with instructions.
  
  