Very Long Instruction Word (VLIW) Architecture VLIW Machine • It consists of many functional units connected to a large central register file • Each functional unit have two read ports and one write port • Register file would have enough memory bandwidth to balance the operand usage rate of functional units Ideal VLIW Machine VLIW characteristics • VLIW contains multiple primitive instructions that can be executed in parallel • The compiler packs a number of primitive, independent instructions into a very long instruction word • The compiler must guarantee that multiple primitive instructions which group together are independent so they can be executed in parallel. Example of a single VLIW instruction: F=a+b; c=e/g; d=x&y; w=z*h; VLIW instruction c=e/g F=a+b a d=x&y w=z*h F PU b e c PU g x d PU y z w PU h 5 VLIW Principles 1.The compiler analyzes dependence of all instructions among sequential code and extracts as much parallelism as possible. 2.Based on analysis, the compiler re-codes the sequential code in VLIW instruction words.(One VLIW instruction word contains maximum 8 primitive instructions) 3.Finally VLIW hardware – Fetch the VLIWs from cache, – Decode them, – Dispatch the independent primitive instructions to corresponding functional units and – Execute Advantages of VLIW architecture • Reduces Complexity: – Due to parallelism among their primitive instructions • Higher possible clock rate because of reduced complexity Drawbacks of VLIW Architecture • Compiler has to be aware of technology dependent parameters-like latencies and repetition rate. This restricts the use of same compiler for a family of VLIW processors. • Wasted memory space and bandwidth when some EUs are not used • Performance is dependent on how the compiler produces VLIW words. Comparison Data Flow Computers Data Flow Computers • They are based on the concept of data driven computation • Conventional computers is under program flow control. Features of Control Flow Model • Data is passed between instructions via shared memory • Flow of control is implicitly sequential • Program counters are used to sequence the execution of instruction Features of Data Flow Model • Intermediate or final results are passed directly as data token between instructions • There is no concept of shared data storage • Program sequencing is constrained only by data dependency among instructions