Advances in Computer Systems Architecture

Volume 2823 of the series Lecture Notes in Computer Science pp 166-179

Simultaneous MultiStreaming for Complexity-Effective VLIW Architectures

  • H. Pradeep RaoAffiliated withComputer Aided Design Laboratory, SERC, Indian Institute of Science
  • , S. K. NandyAffiliated withComputer Aided Design Laboratory, SERC, Indian Institute of Science
  • , M. N. V. Satya KiranAffiliated withComputer Aided Design Laboratory, SERC, Indian Institute of Science

* Final gross prices may vary according to local VAT.

Get Access


Very Long Instruction Word (VLIW) architectures exploit instruction level parallelism (ILP) with the help of the compiler to achieve higher instruction throughput with minimal hardware. However, control and data dependencies between operations limit the available ILP, which not only hinders the scalability of VLIW architectures, but also result in code size expansion. Although speculation and predicated execution mitigate ILP limitations due to control dependencies to a certain extent, they increase hardware cost and exacerbate code size expansion.

Simultaneous multistreaming (SMS) can significantly improve operation throughput by allowing interleaved execution of operations from multiple instruction streams. In this paper we study SMS for VLIW architectures and quantify the benefits associated with it using a case study of the MPEG-2 video decoder. We also propose the notion of virtual resources for VLIW architectures, which decouple architectural resources (resources exposed to the compiler) from the microarchitectural resources, to limit code size expansion. Our results for a VLIW architecture demonstrate that: (1) SMS delivers much higher throughput than that achieved by speculation and predicated execution, (2) the increase in performance due to the addition of speculation and predicated execution support over SMS averages around 12%. The minor increase in performance might not warrant the additional hardware complexity involved, and (3) the notion of virtual resources is very effective in reducing no-operations (NOPs) and consequently reduce code size with little or no impact on performance.