Stream Processors, Inc

From Wikipedia, the free encyclopedia

Stream Processors Incorporated (SPI)
Type Private
Founded 2004
Headquarters 455 DeGuigne Drive
Sunnyvale, California
Flag of the United States USA
Key people Bill Dally, Co-Founder and Chairman
Chip Stearns, President and CEO
Industry Semiconductors-Specialized
Products Digital Signal Processor
Employees Approximately 100 (2007)
Website www.streamprocessors.com

Stream Processors, Inc is a Silicon Valley-based fabless semiconductor company specializing in the design and manufacture of high-performance digital signal processors for applications including video surveillance, multi-function printers and video conferencing.

Contents

[edit] Company History

The theory behind stream processing was originally conceived in 1995 by a research team led by MIT professor William Dally. In 1996, he moved to Stanford University where he continued this work, receiving a multi-million dollar grant from DARPA with additional resources from Intel and Texas Instruments to fund the development of a project called "Imagine" - the first stream processor chip and accompanying compiler tools.

[edit] The Imagine Project

The goal of the Imagine project was to develop a C programmable signal and image processor intended to provide both the performance density and efficiency of a special-purpose processor (such as a hard-wired ASIC). The project successfully demonstrated the advantages of stream processing. Details on the Imagine project and its results are posted on the Stanford Imagine project page. The work also showed that a number of applications ranging from wireless baseband processing, 3D graphics, encryption, IP forwarding to video processing could take advantage of the efficiency of stream processing. This research inspired other designs such as GPUs from ATI Technologies as well as the Cell microprocessor from Sony, Toshiba, and IBM.

The main deliverables from the Imagine program included:

  • The Imagine Stream Architecture
  • The Stream Programming Model
  • Software Development Tools
  • Programmable Graphics and Real-time Media Applications
  • VLSI Prototype (fabricated by TI)
  • Stream Processor Development Platform (A prototype development board)

[edit] SPI Established

Dally, together with other team members, obtained a license from Stanford to commercialize the resulting technology. Stream Processors, Incorporated (SPI) was incorporated in California in 2004. Professor Dally remained at Stanford and the company hired industry veteran Chip Stearns [1] from to become the President and CEO in December of that year. Through June, 2006 SPI has been able to raise a total of $26M from a trio of notable Venture Capital firms - Austin Ventures, Norwest Venture Partners and the Woodside Fund. SPI in essence was a startup that started with over 8 years of R&D effort already completed.

The company launched its first two products concurrently with the International Solid State Circuits Conference (ISSCC) in February, 2006[1] and has introduced two others since[2][3].

SPI has headquarters located in Sunnyvale, California as well as a software development group (SPI Software Technologies Pvt. Ltd) located in Bangalore, India.

[edit] Technology

Similar to graphics and scientific computing, media and signal processing are characterized by available data-parallelism, locality and a high computation to global memory access ratio. Stream processing exploits these characteristics using data-parallel processing fed by a distributed memory hierarchy managed by the compiler. The main challenge for next generation massively parallel processors is data bandwidth, not computational resources. Unlike most conventional processors, the technology does not rely on a hardware cache - instead data movement is explicitly mananged by the compiler and hardware.

The execution model is based on accelerating performance-critical functions (kernels) that process and produce data records (streams). Kernels and streams are scheduled at compile-time and moved to on-chip memory at runtime via a scoreboard. The compiler analyses data live times of streams to optimize allocation and minimize external memory bandwidth needs. Streams and kernels loads can overlap with execution to improve latency tolerance and the explicit data movement provides predictable performance. There are no cache misses and the design presents a single-core model to the programmer – data-parallelism is within the kernels.

[edit] Architecture

The architecture includes a host CPU (System MIPS) for system-level tasks and a DSP Coprocessor Subsystem where the DSP MIPS runs the main threads that make kernel function calls to the Data Parallel Unit (DPU). For users that use libraries, and don’t intend to develop DSP code, the architecture is a MIPS-based system-on-a-chip with an API to a “black box” coprocessor. The DPU Dispatcher receives kernel function calls to manage runtime kernel and stream loads. One kernel at a time is executed across the lanes, operating on local stream data stored in the Lane Register File of each lane. Each lane has a set of VLIW ALUs and distributed operand register files (ORF) allow for a large working data set and processing bandwidth exceeding 1 TeraByte/s. The Stream Load/Store Unit provides gather/scatter with a wide variety of access patterns. The InterLane Switch is a compiler-scheduled, full crossbar for high-speed access between lanes.

[edit] Tools

SPI’s RapiDev Tools Suite leverages the predictability of stream processing to provide a fast path to optimized results using C programming. Starting with C reference code, the Fast Functional Debugger (FFD) library plugs into standard tools, such as Microsoft Visual Studio and GNU, and simulates the DPU to support re-structuring code to kernels and streams. Because kernels are statically scheduled and data movement is explicit, DPU cycle-accuracy can be obtained even at this functional high level. This is one source of the predictability of the architecture. For targeting code to the device, the Stream Processor Compiler (SPC) generates the VLIW executable and pre-processed C code that is compiled/linked via standard GCC for MIPS. SPC allocates streams in the Lane Register Files and provides dependency information for the kernel function calls. Software pipelining and loop unrolling are supported. Branch penalties are avoided by predicated selects and larger conditionals use conditional streams. Running under Eclipse, the Target Code Simulator provides comprehensive Host or Device binary code simulation with breakpoint and single-stepping capabilities with bandwidth and load statistics. A kernel view shows the VLIW pipeline for kernel optimizations, and a stream view shows kernel execution and stream loads to review global data movement for system profiling.

[edit] Products

SPI currently markets its Storm-1 family, that includes four fully software programmable DSPs of varying performance levels.

Product GMACS* Applications
SP16HP-G220 224
  • Broadcasting/transcoding
  • Wireless Infrastructure
SP16-G160 160
  • Telepresence
  • Surveillance DVRs
SP8-G80 80
  • Printers, Scanners and MFPs
  • Surveillance DVRs
SP8LP-G30 32
  • Professional camcorder
  • IP Camera

Note: GMACS stands for Giga (billions of) Multiply-Accumulate operations per Second, a common measure of DSP performance.

[edit] Support Hardware and Software

  • The RapiDev tools suite delivers a fast, predictable path to optimized results, eliminating the complexities of assembly coding or manual cache management
  • The Storm-1 DevKit is a PCI-based software development platform
  • IP Camera Reference Design runs standard Linux 2.6 and supports multiple simultaneous codecs (e.g. H.264, MPEG-4 and MJPEG), arbitrary resolutions, CMOS and CCD sensor processing as well as video analytics in a fully software programmable platform
  • Video Streamer Reference Design supports eight 4CIF input channels of video compressed to H.264 and a Gigabit Ethernet output

[edit] References

[edit] External links

  • [2] The Imagine Project (Stanford) website

Coordinates: 37°22′99.48″N, 122°04′42.08″W