Warp Processors (a.k.a. Self-Improving Configurable IC Platforms) Frank Vahid (Task Leader) Department of Computer Science and Engineering University of.

Slides:



Advertisements
Similar presentations
Tuning of Loop Cache Architectures to Programs in Embedded System Design Susan Cotterell and Frank Vahid Department of Computer Science and Engineering.
Advertisements

Instruction Set Design
EELE 367 – Logic Design Module 2 – Modern Digital Design Flow Agenda 1.History of Digital Design Approach 2.HDLs 3.Design Abstraction 4.Modern Design Steps.
The Warp Processor Dynamic SW/HW Partitioning David Mirabito A presentation based on the published works of Dr. Frank Vahid - Principal Investigator Dr.
Lecture 26: Reconfigurable Computing May 11, 2004 ECE 669 Parallel Computer Architecture Reconfigurable Computing.
1 HW/SW Partitioning Embedded Systems Design. 2 Hardware/Software Codesign “Exploration of the system design space formed by combinations of hardware.
ENGIN112 L38: Programmable Logic December 5, 2003 ENGIN 112 Intro to Electrical and Computer Engineering Lecture 38 Programmable Logic.
A Configurable Logic Architecture for Dynamic Hardware/Software Partitioning Roman Lysecky, Frank Vahid* Department of Computer Science and Engineering.
A Study of the Speedups and Competitiveness of FPGA Soft Processor Cores using Dynamic Hardware/Software Partitioning Roman Lysecky, Frank Vahid* Department.
Behavioral Design Outline –Design Specification –Behavioral Design –Behavioral Specification –Hardware Description Languages –Behavioral Simulation –Behavioral.
Dynamic FPGA Routing for Just-in-Time Compilation Roman Lysecky a, Frank Vahid a*, Sheldon X.-D. Tan b a Department of Computer Science and Engineering.
The New Software: Invisible Ubiquitous FPGAs that Enable Next-Generation Embedded Systems Frank Vahid Professor Department of Computer Science and Engineering.
A High Performance Application Representation for Reconfigurable Systems Wenrui GongGang WangRyan Kastner Department of Electrical and Computer Engineering.
Mahapatra-Texas A&M-Fall'001 cosynthesis Introduction to cosynthesis Rabi Mahapatra CPSC498.
Warp Processors Towards Separating Function and Architecture Frank Vahid Professor Department of Computer Science and Engineering University of California,
Warp Processor: A Dynamically Reconfigurable Coprocessor Frank Vahid Professor Department of Computer Science and Engineering University of California,
Configurable System-on-Chip: Xilinx EDK
Warp Processing – Towards FPGA Ubiquity Frank Vahid Professor Department of Computer Science and Engineering University of California, Riverside Associate.
Reconfigurable Computing S. Reda, Brown University Reconfigurable Computing (EN2911X, Fall07) Lecture 08: RC Principles: Software (1/4) Prof. Sherief Reda.
Warp Processing -- Dynamic Transparent Conversion of Binaries to Circuits Frank Vahid Professor Department of Computer Science and Engineering University.
Reconfigurable Computing (EN2911X, Fall07)
Warp Processors Towards Separating Function and Architecture Frank Vahid Professor Department of Computer Science and Engineering University of California,
Frank Vahid, UC Riverside 1 Recent Results at UCR with Configurable Cache and Hw/Sw Partitioning Frank Vahid Associate Professor Dept. of Computer Science.
1 Introduction A digital circuit design is just an idea, perhaps drawn on paper We eventually need to implement the circuit on a physical device –How do.
1 Energy Savings and Speedups from Partitioning Critical Software Loops to Hardware in Embedded Systems Greg Stitt, Frank Vahid, Shawn Nematbakhsh University.
Frank Vahid, UC Riverside 1 Self-Improving Configurable IC Platforms Frank Vahid Associate Professor Dept. of Computer Science and Engineering University.
CS 151 Digital Systems Design Lecture 38 Programmable Logic.
Dynamic Hardware/Software Partitioning: A First Approach Greg Stitt, Roman Lysecky, Frank Vahid* Department of Computer Science and Engineering University.
Dynamic Hardware Software Partitioning A First Approach Komal Kasat Nalini Kumar Gaurav Chitroda.
Dynamic Hardware/Software Partitioning: A First Approach Authors -Greg Stitt, Roman Lysecky, Frank Vahid Presented By : Aditya Kanawade Guru Sharan 1.
Hardware-Software Partitioning. EEL6935 / 52 Hardware Software Definition Definition: Given an application, hw/sw partitioning maps each region of the.
EKT303/4 PRINCIPLES OF PRINCIPLES OF COMPUTER ARCHITECTURE (PoCA)
Networking Virtualization Using FPGAs Russell Tessier, Deepak Unnikrishnan, Dong Yin, and Lixin Gao Reconfigurable Computing Group Department of Electrical.
Philip Brisk 2 Paolo Ienne 2 Hadi Parandeh-Afshar 1,2 1: University of Tehran, ECE Department 2: EPFL, School of Computer and Communication Sciences Efficient.
Power Reduction for FPGA using Multiple Vdd/Vth
A Fast On-Chip Profiler Memory Roman Lysecky, Susan Cotterell, Frank Vahid* Department of Computer Science and Engineering University of California, Riverside.
HW/SW PARTITIONING OF FLOATING POINT SOFTWARE APPLICATIONS TO FIXED - POINTED COPROCESSOR CIRCUITS - Nalini Kumar Gaurav Chitroda Komal Kasat.
CSE 494: Electronic Design Automation Lecture 2 VLSI Design, Physical Design Automation, Design Styles.
J. Christiansen, CERN - EP/MIC
IEEE ICECS 2010 SysPy: Using Python for processor-centric SoC design Evangelos Logaras Elias S. Manolakos {evlog, Department of Informatics.
1 Towards Optimal Custom Instruction Processors Wayne Luk Kubilay Atasu, Rob Dimond and Oskar Mencer Department of Computing Imperial College London HOT.
Reminder Lab 0 Xilinx ISE tutorial Research Send me an if interested Looking for those interested in RC with skills in compilers/languages/synthesis,
Hardware/Software Partitioning of Floating-Point Software Applications to Fixed-Point Coprocessor Circuits Lance Saldanha, Roman Lysecky Department of.
Introduction to Reconfigurable Computing Greg Stitt ECE Department University of Florida.
Introduction to FPGA Created & Presented By Ali Masoudi For Advanced Digital Communication Lab (ADC-Lab) At Isfahan University Of technology (IUT) Department.
Design Space Exploration for Application Specific FPGAs in System-on-a-Chip Designs Mark Hammerquist, Roman Lysecky Department of Electrical and Computer.
EKT303/4 PRINCIPLES OF PRINCIPLES OF COMPUTER ARCHITECTURE (PoCA)
Development of Programmable Architecture for Base-Band Processing S. Leung, A. Postula, Univ. of Queensland, Australia A. Hemani, Royal Institute of Tech.,
FPGA CAD 10-MAR-2003.
Codesigned On-Chip Logic Minimization Roman Lysecky & Frank Vahid* Department of Computer Science and Engineering University of California, Riverside *Also.
WARP PROCESSORS ROMAN LYSECKY GREG STITT FRANK VAHID Presented by: Xin Guan Mar. 17, 2010.
1 Field-programmable Gate Array Architectures and Algorithms Optimized for Implementing Datapath Circuits Andy Gean Ye University of Toronto.
On-Chip Logic Minimization Roman Lysecky & Frank Vahid* Department of Computer Science and Engineering University of California, Riverside *Also with the.
FPGA Routing Pathfinder [Ebeling, et al., 1995] Introduced negotiated congestion During each routing iteration, route nets using shortest.
Register-Transfer (RT) Synthesis Greg Stitt ECE Department University of Florida.
Warp Processing: Making FPGAs Ubiquitous via Invisible Synthesis Greg Stitt Department of Electrical and Computer Engineering University of Florida.
FPGA-Based System Design: Chapter 3 Copyright  2004 Prentice Hall PTR Topics n FPGA fabric architecture concepts.
1 Frequent Loop Detection Using Efficient Non-Intrusive On-Chip Hardware Ann Gordon-Ross and Frank Vahid* Department of Computer Science and Engineering.
A Study of the Scalability of On-Chip Routing for Just-in-Time FPGA Compilation Roman Lysecky a, Frank Vahid a*, Sheldon X.-D. Tan b a Department of Computer.
1 Architecture of Datapath- oriented Coarse-grain Logic and Routing for FPGAs Andy Ye, Jonathan Rose, David Lewis Department of Electrical and Computer.
Dynamic and On-Line Design Space Exploration for Reconfigurable Architecture Fakhreddine Ghaffari, Michael Auguin, Mohamed Abid Nice Sophia Antipolis University.
Introduction to Reconfigurable Computing
Introduction to cosynthesis Rabi Mahapatra CSCE617
Autonomously Adaptive Computing: Coping with Scalability, Reliability, and Dynamism in Future Generations of Computing Roman Lysecky Department of Electrical.
Ann Gordon-Ross and Frank Vahid*
HIGH LEVEL SYNTHESIS.
Dynamic FPGA Routing for Just-in-Time Compilation
Dynamic Hardware/Software Partitioning: A First Approach
Warp Processor: A Dynamically Reconfigurable Coprocessor
Portable SystemC-on-a-Chip
Presentation transcript:

Warp Processors (a.k.a. Self-Improving Configurable IC Platforms) Frank Vahid (Task Leader) Department of Computer Science and Engineering University of California, Riverside Faculty member, Center for Embedded Computer Systems, UC Irvine Task ID: (1-year grant, continuation from previous year) Ph.D. students: Roman Lysecky (grad. June 2004), Greg Stitt (grad. June 2005) UCR collaborators: Prof. Walid Najjar, Prof. Sheldon Tan Industrial Liaisons: Brian W. Einloth and Gordon Mc Gregor, Motorola

2 Task Description Warp Processors, Frank Vahid, UC Riverside Description: This task develops the on-chip CAD tools and architecture to support dynamic remapping of software kernels to FPGA. The task will include development of decompilation tools that recover high-level constructs needed for effective synthesis, and of place and route tools specifically created to be exceptionally lean in terms of time and memory, to enable on-chip dynamic execution. The FPGA architecture will be developed in concert with the tools, geared towards enabling lean tools. If successful, this task will lead to software implementations that use 10x less energy and execute 10x-100x faster than standard embedded microprocessors, by bringing FPGAs into mainstream computing.

3 µPµP I$ D$ Warp Config. Logic Architecture Profiler Dynamic Part. Module (DPM) Partitioned application executes faster with lower energy consumption 5 Introduction Warp Processors – Dynamic HW/SW Partitioning Profile application to determine critical regions2 Profiler Initially execute application in software only1 µPµP I$ D$ Partition critical regions to hardware 3 Dynamic Part. Module (DPM) Program configurable logic & update software binary 4 Warp Config. Logic Architecture

4 Introduction Previous Dynamic Optimizations -- Translation Dynamic Binary Translation Modern Pentium processors Dynamically translate instructions onto underlying RISC architecture Transmeta Crusoe & Efficeon Dynamic code morphing Translate x86 instructions to underlying VLIW processor Just In Time (JIT) Compilation Interpreted languages Recompile code to native instructions Java, Python, etc.

5 Introduction Previous Dynamic Optimization -- Recompilation Dynamic optimizations are increasingly common Dynamically recompile binary during execution Dynamo [Bala, et al., 2000] - Dynamic software optimizations Identify frequently executed code segments (hotpaths) Recompile with higher optimization BOA [Gschwind, et al., 2000] - Dynamic optimizer for Power PC Advantages Transparent optimizations No designer effort No tool restrictions Adapts to actual usage Speedups of up to 20%-30% X

6 Introduction Hardware/Software Partitioning SW ______ SW ______ SW ______ HW ______ SW ______ SW ______ Processor ASIC/FPGA Critical Regions Profiler Benefits Speedups of 2X to 10X typical Speedups of 800X possible Far more potential than dynamic SW optimizations (1.3X) Energy reductions of 25% to 95% typical But can hw/sw partitioning be done dynamically? Processor Commonly one chip today

7 Introduction Binary-Level Hardware/Software Partitioning Can hw/sw partitioning be done dynamically? Enabler – binary-level partitioning [Stitt & Vahid, ICCAD’02] Partition starting from SW binary Can be desktop based Advantages Any compiler, any language, multiple sources, assembly/object support, legacy code support Disadvantage Loses high-level information Quality loss? Binary SW Profiling Standard Compiler Binary Partitioner Netlist Modified Binary Processor ASIC/FPGA Traditional partitioning done here

8 Introduction Binary-Level Hardware/Software Partitioning Stitt/Vahid, submitted to DAC’04

9 Introduction Binary Partitioning Enables Dynamic Partitioning Dynamic HW/SW Partitioning Embed partitioning CAD tools on-chip Feasible in era of billion-transistor chips Advantages No special desktop tools Completely transparent Avoid complexities of supporting different FPGA types Complements other approaches Desktop CAD best from purely technical perspective Dynamic opens additional market segments (i.e., all software developers) that otherwise might not use desktop CAD Binary SW Profiling Standard Compiler Binary CAD FPGAProc.

10 uP I$ D$ Config. Logic Arch. Profiler DPM Warp Processors Tools & Requirements Warp Processor Architecture On-chip profiling architecture Configurable logic architecture Dynamic partitioning module Binary Partitioning Binary HW RT Synthesis Technology Mapping Placement & Routing Logic Synthesis Decompilation Binary Updater Binary Updated Binary

11 Warp Processors All that CAD on-chip? CAD people may first think dynamic HW/SW partitioning is “absurd” Those CAD tools are complex Require long execution times on powerful desktop workstations Require very large memory resources Usually require GBytes of hard drive space Costs of complete CAD tools package can exceed $1 million All that on-chip? 50 MB 60 MB 10 MB 1 min Log. Syn. 1 min Tech. Map 1-2 mins Place 2 – 30 mins Route 1-2 mins RT Syn. 10 MB 30 s Decomp. 1 min Partitioning 20 MB 10 MB

12 Warp Processors Tools & Requirements But, in fact, on-chip CAD may be practical since specialized CAD Traditional CAD -- Huge, arbitrary input Warp Processor CAD -- Critical sw kernels FPGA Traditional FPGA – huge, arbitrary netlists, ASIC prototyping, varied I/O Warp Processor FPGA – kernel speedup uP I$ D$ Config. Logic Arch. Profiler DPM Binary Partitioning Binary HW RT Synthesis Technology Mapping Placement & Routing Logic Synthesis Decompilation Binary Updater Binary Updated Binary Careful simultaneous design of FPGA and CAD FPGA features evaluated for impact on CAD CAD influences FPGA features Add architecture features for kernels Config. Logic Arch.

13 Warp Processors Configurable Logic Architecture Loop support hardware Data address generators (DADG) and loop control hardware (LCH), found in digital signal processors – fast loop execution Supports memory accesses with regular access pattern Synthesis of FSM not required for many critical loops 32-bit fast Multiply-Accumulate (MAC) unit DADG & LCH Configurable Logic Fabric Reg0 32-bit MAC Reg1 Reg2 uP I$ D$ Config. Logic Arch. Profiler DPM Lysecky/Vahid, DATE’04

14 Warp Processors Configurable Logic Fabric DADG LCH Configurable Logic Fabric 32-bit MAC SM CLB SM CLB SM CLB SM CLB Simple fabric: array of configurable logic blocks (CLBs) surrounded by switch matrices (SMs) Simple CLB: Two 3-input 2-output LUTs carry-chain support Simple switch matrices: 4-short, 4-long channels Designed for simple fast CAD Lysecky/Vahid, DATE’04 AR M I$I$ D$D$ Config. Logic Arch. Profiler DPM LUT abcd e f o1o2o3o4 Adj. CLB Adj. CLB 0 0L 1 1L 2L 2 3L L 1L 2L 3L L1L2L3L L1L2L 3L

15 Warp Processors Profiler Non-intrusive on-chip loop profiler Gordon-Ross/Vahid CASES’03, to appear in “best of MICRO/CASES” issue of IEEE Trans. on Computers. Provides relative frequency of top 16 loops Small cache (16 entries), only 2,300 gates Less than 1% power overhead when active Frequent Loop Cache Controller Frequent Loop Cache ++ I$ MIPS/ ARM uP Frequent Loop Cache Frequent Loop Cache Controller ++ rd/wr addr data rd/wr addr data saturation I$ data Gordon-Ross/Vahid, CASES’03 uP I$ D$ Config. Logic Arch. Profiler DPM

16 Warp Processors Dynamic Partitioning Module (DPM) Dynamic Partitioning Module Executes on-chip partitioning tools Consists of small low-power processor (ARM7) Current SoCs can have dozens On-chip instruction & data caches Memory: a few megabytes uP I$ D$ WCLA Profiler DPM ARM I$ D$ Memory Binary Partitioning Binary HW RT Synthesis Technology Mapping Placement & Routing Logic Synthesis Decompilation Binary Updater Binary Updated Binary Decompilation

17 Annotated CDFG Alias Analysis Undoing Back-End Compiler Optimizations Removing Instruction- Set Overhead Control Structure Recovery CDFG Creation Binary Parsing Software Binary Warp Processors Decompilation Goal: recover high-level information lost during compilation Otherwise, synthesis results will be poor Utilize sophisticated decompilation methods Developed over past decades for binary translation Indirect jumps hamper CDFG recovery But not too common in critical loops (function pointers, switch statements) Binary Parsing Software Binary CDFG Creation Control Structure Recovery Undoing Back-End Compiler Optimizations Alias Analysis Annotated CDFG Removing Instruction- Set Overhead Stitt/Vahid, submitted to DAC’04 discover loops, if-else, etc. reduce operation sizes, etc. reroll loops, etc. allows parallel memory access

18 In most situations, we can recover all high- level information Recovery success for dozens of benchmarks, using several different compilers and optimization levels: Stitt/Vahid, submitted to DAC’04 Warp Processors Decompilation Results

19 Warp Processors Execution Time and Memory Requirements < 1s 1 MB 50 MB 60 MB 10 MB 1 min Log. Syn. 1 min Tech. Map 1-2 mins Place 2 – 30 mins Route 1-2 mins RT Syn. 10 MB 30 s Decomp. 1 min Partitioning 20 MB 10 MB

20 Warp Processors Dynamic Partitioning Module (DPM) uP I$ D$ WCLA Profiler DPM ARM I$ D$ Memory Binary Partitioning Binary HW RT Synthesis Technology Mapping Placement & Routing Logic Synthesis Decompilation Binary Updater Binary Updated Binary Partitioning

21 Sw Regions HW Regions Profiling Results Decompiled Binary If WCLA is Full, Remaining Regions Stay in SW Move Remaining Regions to HW until WCLA is Full Remove Non-Hw Suitable Regions Warp Processors Binary HW/SW Partitioning Sort Loops by freq. Decompiled Binary HW Regions SW Regions Stitt/Vahid, ICCAD’02 Stitt/Vahid, submitted to DAC’04 Remove Non-HW Suitable Regions Move Remaining Regions to HW until WCLA is Full If WCLA is Full, Remaining Regions Stay in SW Profiling Results Simple partitioning algorithm -- move most frequent loops to hardware Usually one 2-3 critical loops comprise most execution

22 Warp Processors Execution Time and Memory Requirements < 1s 1 MB < 1s.5 MB 50 MB 60 MB 10 MB 1 min Log. Syn. 1 min Tech. Map 1-2 mins Place 2 – 30 mins Route 1-2 mins RT Syn. 10 MB 30 s Decomp. 1 min Partitioning 20 MB 10 MB

23 Warp Processors Dynamic Partitioning Module (DPM) uP I$ D$ WCLA Profiler DPM ARM I$ D$ Memory Binary Partitioning Binary HW RT Synthesis Technology Mapping Placement & Routing Logic Synthesis Decompilation Binary Updater Binary Updated Binary RT Synthesis

24 Warp Processors RT Synthesis Converts decompiled CDFG to Boolean expressions Maps memory accesses to our data address generator architecture Detects read/write, memory access pattern, memory read/write ordering Optimizes dataflow graph Removes address calculations and loop counter/exit conditions Loop control handled by Loop Control Hardware 1 r1 + Read r1 + r2 Memory Read Increment Address r3 DADG Read + r2 r3 Stitt/Lysecky/Vahid, DAC’03

25 Warp Processors RT Synthesis Maps dataflow operations to hardware components We currently support adders, comparators, shifters, Boolean logic, and multipliers Creates Boolean expression for each output bit of dataflow graph r4[0]=r1[0] xor r2[0], carry[0]=r1[0] and r2[0] r4[1]=(r1[1] xor r2[1]) xor carry[0], carry[1]= ……. ……. r1 r2 + r4 r38 < r5 32-bit adder 32-bit comparator Stitt/Lysecky/Vahid, DAC’03

26 < 1s.5 MB Warp Processors Execution Time and Memory Requirements < 1s 1 MB < 1s.5 MB 50 MB 60 MB 10 MB 1 min Log. Syn. 1 min Tech. Map 1-2 mins Place 2 – 30 mins Route 1-2 mins RT Syn. 10 MB 30 s Decomp. 1 min Partitioning 20 MB 10 MB

27 Warp Processors Dynamic Partitioning Module (DPM) uP I$ D$ WCLA Profiler DPM ARM I$ D$ Memory Binary Partitioning Binary HW RT Synthesis Technology Mapping Placement & Routing Logic Synthesis Decompilation Binary Updater Binary Updated Binary Logic Synthesis

28 Warp Processors Logic Synthesis Optimize hardware circuit created during RT synthesis Large opportunity for logic minimization due to use of immediate values in the binary code Utilize simple two-level logic minimization approach r1 4 + r2 r2[0] = r1[0] r2[1] = r1[1] xor carry[0] r2[2] = r1[2] xor carry[1] r2[3] = r1[3] xor carry[2] … Logic Synthesis r2[0] = r1[0] xor 0 xor 0 r2[1] = r1[1] xor 0 xor carry[0] r2[2] = r1[2] xor 1 xor carry[1] r2[3] = r1[3] xor 0 xor carry[2] … Stitt/Lysecky/Vahid, DAC’03

29 Warp Processors - ROCM ROCM – Riverside On-Chip Minimizer Two-level minimization tool Utilized a combination of approaches from Espresso-II [Brayton, et al. 1984] and Presto [Svoboda & White, 1979] Eliminate the need to compute the off-set to reduce memory usage Utilizes a single expand phase instead of multiple iterations On average only 2% larger than optimal solution for benchmarks ExpandReduceIrredundant dc-seton-setoff-set Lysecky/Vahid, DAC’03 Lysecky/Vahid, CODES+ISSS’03

30 Warp Processors - ROCM Results 500 MHz Sun Ultra60 40 MHz ARM 7 (Triscend A7) ROCM executing on 40MHz ARM7 requires less than 1 second Small code size of only 22 kilobytes Average data memory usage of only 1 megabyte Lysecky/Vahid, DAC’03 Lysecky/Vahid, CODES+ISSS’03

31 < 1s.5 MB Warp Processors Execution Time and Memory Requirements 1s 1 MB < 1s 1 MB < 1s.5 MB 50 MB 60 MB 10 MB 1 min Log. Syn. 1 min Tech. Map 1-2 mins Place 2 – 30 mins Route 1-2 mins RT Syn. 10 MB 30 s Decomp. 1 min Partitioning 20 MB 10 MB

32 Warp Processors Dynamic Partitioning Module (DPM) uP I$ D$ WCLA Profiler DPM ARM I$ D$ Memory Binary Partitioning Binary HW RT Synthesis Technology Mapping Placement & Routing Logic Synthesis Decompilation Binary Updater Binary Updated Binary Technology MappingPlacement and Routing

33 Warp Processors Technology Mapping/Packing ROCPAR – Technology Mapping/Packing Decompose hardware circuit into basic logic gates (AND, OR, XOR, etc.) Traverse logic network combining nodes to form single-output LUTs Combine LUTs with common inputs to form final 2-output LUTs Pack LUTs in which output from one LUT is input to second LUT Pack remaining LUTs into CLBs Lysecky/Vahid, DATE’04 Stitt/Lysecky/Vahid, DAC’03

34 Warp Processors Placement ROCPAR – Placement Identify critical path, placing critical nodes in center of configurable logic fabric Use dependencies between remaining CLBs to determine placement Attempt to use adjacent cell routing whenever possible CLB Lysecky/Vahid, DATE’04 Stitt/Lysecky/Vahid, DAC’03

35 < 1s.5 MB < 1s.5 MB Warp Processors Execution Time and Memory Requirements 1s 1 MB < 1s 1 MB < 1s 1 MB < 1s.5 MB 50 MB 60 MB 10 MB 1 min Log. Syn. 1 min Tech. Map 1-2 mins Place 2 – 30 mins Route 1-2 mins RT Syn. 10 MB 30 s Decomp. 1 min Partitioning 20 MB 10 MB

36 Warp Processors Routing FPGA Routing Find a path within FPGA to connect source and sinks of each net VPR – Versatile Place and Route [Betz, et al., 1997] Modified Pathfinder algorithm Allows overuse of routing resources during each routing iteration If illegal routes exists, update routing costs, rip-up all routes, and reroute Increases performance over original Pathfinder algorithm Routability-driven routing: Use fewest tracks possible Timing-driven routing: Optimize circuit speed Route Rip-up Done! congestion? illegal? no yes Routing Resource Graph

37 Warp Processors Routing Riverside On-Chip Router (ROCR) Represent routing nets between CLBs as routing between SMs Resource Graph Nodes correspond to SMs Edges correspond to short and long channels between SMs Routing Greedy, depth-first routing algorithm routes nets between SMs Assign specific channels to each route, using Brelaz’s greedy vertex coloring algorithm Requires much less memory than VPR as resource graph is much smaller Routing Resource Graph Route Rip-up Done! congestion? illegal? no yes Lysecky/Vahid/Tan, submitted to DAC’04

38 Warp Processors Routing: Performance and Memory Usage Results Average 10X faster than VPR (TD) Up to 21X faster for ex5p Memory usage of only 3.6 MB 13X less than VPR Lysecky/Vahid/Tan, submitted to DAC’04

39 Warp Processors Routing: Critical Path Results 10% shorter critical path than VPR (Routability Driven) 32% longer critical path than VPR (Timing Driven) Lysecky/Vahid/Tan, submitted to DAC’04

40 < 1s.5 MB < 1s.5 MB Warp Processors Execution Time and Memory Requirements 1s 1 MB < 1s 1 MB 10s 3.6 MB < 1s 1 MB < 1s.5 MB 50 MB 60 MB 10 MB 1 min Log. Syn. 1 min Tech. Map 1-2 mins Place 2 – 30 mins Route 1-2 mins RT Syn. 10 MB 30 s Decomp. 1 min Partitioning 20 MB 10 MB

41 Warp Processors Dynamic Partitioning Module (DPM) uP I$ D$ WCLA Profiler DPM ARM I$ D$ Memory Binary Partitioning Binary HW RT Synthesis Technology Mapping Placement & Routing Logic Synthesis Decompilation Binary Updater Binary Updated Binary Binary Updater

42.. for (i=0; i < 256; i++) output += input1[i]*2;.. Warp Processors Binary Updater Binary Updater Must modify binary to use hardware within WCLA HW initialization function added at end of binary Replace HW loops with jump to HW initialization function HW initialization function jumps back to end of loop.. for (i=0; i < 256; i++) output += input1[i]*2;.. initHw(); enableLoop = 1;.. initHW();.. initHW() {.. }

43 Initial Overall Results Experimental Setup Considered 12 embedded benchmarks from NetBench, MediaBench, EEMBC, and Powerstone Average of 53% of total software execution time was spent executing single critical loop (more speedup possible if more loops considered) On average, critical loops comprised only 1% of total program size

44 Warp Processors Experimental Setup Warp Processor 75 MHz ARM7 processor Configurable logic fabric with fixed frequency of 60 MHz Used dynamic partitioning CAD tools to map critical region to hardware Executed on an ARM7 processor Active for roughly 10 seconds to perform partitioning Versus traditional HW/SW Partitioning 75 MHz ARM7 processor Xilinx Virtex-E FPGA (executing at maximum possible speed) Manually partitioned software using VHDL VHDL synthesized using Xilinx ISE 4.1 on desktop ARM7 I$ D$ Config. Logic Arch. Profiler DPM ARM7 I$ D$ Xilinx Virtex-E FPGA

45 Warp Processors: Initial Results Performance Speedup Average speedup of 2.1 vs. 2.2 for Virtex-E 4.1

46 Warp Processors: Initial Results Energy Reduction Average energy reduction of 33% v.s 36% for Xilinx Virtex-E 74%

47 Warp Processors Execution Time and Memory Requirements (on PC) 3.6MB 60 MB 9.1 s Xilinx ISE 0.2 s ROCPAR On a 75Mhz ARM7: only 1.4 s Manually performed 46x improvement

48 Current/Future Work Extending Warp Processors Multiple software loops to hardware Handling custom sequential logic Better synthesis, placement, routing JIT FPGA Compilation Idea: standard binary for FPGA Similar benefits as standard binary for microprocessor e.g., portability, transparency, standard tools

49 Future Directions Warp Processors may achieve speedups of 10x to 1000x Hardware/software partitioning shows tremendous speedup Working to improve tools/fabric towards these results

50 Publications A Configurable Logic Architecture for Dynamic Hardware/Software Partitioning, R. Lysecky and F. Vahid, Design Automation and Test in Europe Conference (DATE), February Frequent Loop Detection Using Efficient Non-Intrusive On-Chip Hardware, A. Gordon-Ross and F. Vahid, ACM/IEEE Conf. on Compilers, Architecture and Synthesis for Embedded Systems (CASES), 2003; to appear in special issue “Best of CASES/MICRO” of IEEE Trans. on Comp. A Codesigned On-Chip Logic Minimizer, R. Lysecky and F. Vahid, ACM/IEEE ISSS/CODES conference, Dynamic Hardware/Software Partitioning: A First Approach. G. Stitt, R. Lysecky and F. Vahid, Design Automation Conference, On-Chip Logic Minimization, R. Lysecky and F. Vahid, Design Automation Conference, The Energy Advantages of Microprocessor Platforms with On-Chip Configurable Logic, G. Stitt and F. Vahid, IEEE Design and Test of Computers, November/December Hardware/Software Partitioning of Software Binaries, G. Stitt and F. Vahid, IEEE/ACM International Conference on Computer Aided Design, November 2002.