Transcript PPT
OOE v.s. EPIC Hridesh Rajan Zhendong Yu Weilin Zhong Outline Introduction EPIC OOE Comparison ILP, Power Consumption, Code Size, Performance, Compiler techniques Performance Evaluation Conclusion Introduction - EPIC EPIC (Explicit Parallelism Instruction Computing) An evolution of VLIW Can be considered more as “philosophy”, than “architecture”. Introduction - EPIC (2) Instruction example (IA-64): Long instruction contains multiple operations and a template specifying dependencies between instructions. Op1 Op1 Op2 Op2 Op3 Op3 template template Introduction - OOE OOE (Out of Order Execution) superscalar Not an explicit way to demonstrate dependencies between instructions. Comparison - Complexity OOE: Complexity = Complexity(bpred) + Complexity (Register Renaming) + Complexity(Dependency Checking)+ Complexity(Alias Detection) EPIC: Complexity = Complexity(Nat) + Complexity (ALAT) + Complexity (CFM) + Complexity (RSE) Comparison – power consumption OOE: Less power consumption EPIC: More power consumption Code Size OOE: Compact code (more branches) EPIC Sparse code (code bloat) It depends on compilers Comparison - ILP OOE: (disadvantages) Parallelism at the level of machine instructions: which can be issued in a single cycle in a processor. Limited ILP, ILP is not evenly distributed Data dependency, control dependency Resource dependency # # # # # of of of of of registers, ports to registers and memory parallel instruction decoders, function units data paths between various CPU components Comparison – ILP(2) OOE (advantages) Predicted path Dynamic adjustment of instruction schedule based on the actual execution path and cache miss results It can deal with stalls smartly Comparison - ILP (3) EPIC (Disadvantage) Dynamic path tends to be longer Static decisions based on compiler What if the program stalls? Recovery Code Comparison – ILP(4) EPIC: (advantages) Massive resources Larger register sets, more function units, etc. Predication reduces branch penalties Speculation reduces cache miss Role of Compiler vs. Hardware OOE: Parallelism detection and scheduling: Hardware More powerful hardware, less powerful compiler EPIC: Parallelism detection and scheduling: Compiler/Hardware More powerful compiler, less powerful hardware Comparison - frequency OOE: High frequency EPIC: Low frequency due to: Focus on CPI Performance compares and dependent branches in the same cycle. Predicated Execution Power Consumption Performance Methodologies in performance comparison CPI, CPU frequency, and the tradeoffs. However, Itatium does not show great improvement over Alpha 21264 or Pentium IV. Conclusion EPIC seems to be a good alternate to OOE (can OOE use EPIC techniques?) But there is no explicit proof in the performance gain. Tradeoffs are always there. It depends on what kind of processor behavior we need. Time will prove everything. References A Critical look at IA-64, M. Hopkins Is Out-of-Order Out of Date?, W. S. Worley, J. Huck EPIC: An Architecture for Instruction-level Parallel Processors, M. S. Schlansker, B. R. Rao Thank you! Questions?