ISSS ’98 University of Rennes I IFSIC / IRISA C.Wolinski Hierarchical Conditional Dependency Graphs for False Path Identification A.Kountouris, C.Wolinski.

Slides:



Advertisements
Similar presentations
Example of Constructing the DAG (1)t 1 := 4 * iStep (1):create node 4 and i 0 Step (2):create node Step (3):attach identifier t 1 (2)t 2 := a[t 1 ]Step.
Advertisements

© 2004 Wayne Wolf Topics Task-level partitioning. Hardware/software partitioning.  Bus-based systems.
Static Single-Assignment ? ? Introduction: Over last few years [1991] SSA has been Stablished as… Intermediate program representation.
Hardware/ Software Partitioning 2011 年 12 月 09 日 Peter Marwedel TU Dortmund, Informatik 12 Germany Graphics: © Alexandra Nolte, Gesine Marwedel, 2003 These.
ECE-777 System Level Design and Automation Hardware/Software Co-design
ECOE 560 Design Methodologies and Tools for Software/Hardware Systems Spring 2004 Serdar Taşıran.
ECE Synthesis & Verification - Lecture 2 1 ECE 667 Spring 2011 ECE 667 Spring 2011 Synthesis and Verification of Digital Circuits High-Level (Architectural)
Carnegie Mellon Lecture 7 Instruction Scheduling I. Basic Block Scheduling II.Global Scheduling (for Non-Numeric Code) Reading: Chapter 10.3 – 10.4 M.
High Level Languages: A Comparison By Joel Best. 2 Sources The Challenges of Synthesizing Hardware from C-Like Languages  by Stephen A. Edwards High-Level.
Give qualifications of instructors: DAP
Control Flow Analysis (Chapter 7) Mooly Sagiv (with Contributions by Hanne Riis Nielson)
Introduction to Data Flow Graphs and their Scheduling Sources: Gang Quan.
CS 151 Digital Systems Design Lecture 37 Register Transfer Level
Kazi Spring 2008CSCI 6601 CSCI-660 Introduction to VLSI Design Khurram Kazi.
Improving code generation. Better code generation requires greater context Over expressions: optimal ordering of subtrees Over basic blocks: Common subexpression.
1 Intermediate representation Goals: –encode knowledge about the program –facilitate analysis –facilitate retargeting –facilitate optimization scanning.
Behavioral Design Outline –Design Specification –Behavioral Design –Behavioral Specification –Hardware Description Languages –Behavioral Simulation –Behavioral.
Courseware High-Level Synthesis an introduction Prof. Jan Madsen Informatics and Mathematical Modelling Technical University of Denmark Richard Petersens.
Mahapatra-Texas A&M-Fall'001 cosynthesis Introduction to cosynthesis Rabi Mahapatra CPSC498.
Simulated-Annealing-Based Solution By Gonzalo Zea s Shih-Fu Liu s
System Partitioning Kris Kuchcinski
VHDL Coding Exercise 4: FIR Filter. Where to start? AlgorithmArchitecture RTL- Block diagram VHDL-Code Designspace Exploration Feedback Optimization.
4/10/20081 Lab 9 RT methodology introduction Register operations Data Path Control Path ASM Example TA: Jorge Crichigno.
Center for Embedded Computer Systems University of California, Irvine and San Diego Hardware and Interface Synthesis of.
February 12, 2009 Center for Hybrid and Embedded Software Systems Model Transformation Using ERG Controller Thomas H. Feng.
Mahapatra-Texas A&M-Fall'001 Partitioning - I Introduction to Partitioning.
5 th Biennial Ptolemy Miniconference Berkeley, CA, May 9, 2003 JHDL Hardware Generation Mike Wirthlin and Matthew Koecher
Improving Code Generation Honors Compilers April 16 th 2002.
Improving code generation. Better code generation requires greater context Over expressions: optimal ordering of subtrees Over basic blocks: Common subexpression.
Center for Embedded Computer Systems University of California, Irvine and San Diego SPARK: A Parallelizing High-Level Synthesis.
Introduction to Data Flow Graphs and their Scheduling Sources: Gang Quan.
Universität Dortmund  P. Marwedel, Univ. Dortmund, Informatik 12, 2003 Hardware/software partitioning  Functionality to be implemented in software.
Hierarchical Physical Design Methodology for Multi-Million Gate Chips Session 11 Wei-Jin Dai.
Maria-Cristina Marinescu Martin Rinard Laboratory for Computer Science Massachusetts Institute of Technology A Synthesis Algorithm for Modular Design of.
Implementation Considerations Yonglei Tao. Components of Coding Standards 2  File header  file location, version number, author, project, update history.
Optimization software for apeNEXT Max Lukyanov,  apeNEXT : a VLIW architecture  Optimization basics  Software optimizer for apeNEXT  Current.
Gedae, Inc. Implementing Modal Software in Data Flow for Heterogeneous Architectures James Steed, Kerry Barnes, William Lundgren Gedae, Inc.
Sub-expression elimination Logic expressions: –Performed by logic optimization. –Kernel-based methods. Arithmetic expressions: –Search isomorphic patterns.
Section 10: Advanced Topics 1 M. Balakrishnan Dept. of Comp. Sci. & Engg. I.I.T. Delhi.
VHDL Project Specification Naser Mohammadzadeh. Schedule  due date: Tir 18 th 2.
Review for E&CE Find the minimal cost spanning tree for the graph below (where Values on edges represent the costs). 3 Ans. 18.
1 Towards Optimal Custom Instruction Processors Wayne Luk Kubilay Atasu, Rob Dimond and Oskar Mencer Department of Computing Imperial College London HOT.
L11: Lower Power High Level Synthesis(2) 성균관대학교 조 준 동 교수
Synchronization Transformations for Parallel Computing Pedro Diniz and Martin Rinard Department of Computer Science University of California, Santa Barbara.
- 1 - EE898_HW/SW Partitioning Hardware/software partitioning  Functionality to be implemented in software or in hardware? No need to consider special.
ISSS 2001, Montréal1 ISSS’01 S.Derrien, S.Rajopadhye, S.Sur-Kolay* IRISA France *ISI calcutta Combined Instruction and Loop Level Parallelism for Regular.
1 CS 201 Compiler Construction Introduction. 2 Instructor Information Rajiv Gupta Office: WCH Room Tel: (951) Office.
MILAN: Technical Overview October 2, 2002 Akos Ledeczi MILAN Workshop Institute for Software Integrated.
1 Muhammed Al-MulhemVisual Languages - 2 Visual Programming Languages ICS 539 Diagrams ICS Department KFUPM Sept. 1, 2007.
Introduction to Code Generation and Intermediate Representations
6. A PPLICATION MAPPING 6.3 HW/SW partitioning 6.4 Mapping to heterogeneous multi-processors 1 6. Application mapping (part 2)
Representing Uncertainty, Unknowns and Dynamics of Social Networks NX-Workshop on Social Network Analysis and Visualization for Public Safety 18 – 19 October.
Evaluating and Improving an OpenMP-based Circuit Design Tool Tim Beatty, Dr. Ken Kent, Dr. Eric Aubanel Faculty of Computer Science University of New Brunswick.
Chapter 1 Introduction Major Data Structures in Compiler
Automatic Evaluation of the Accuracy of Fixed-point Algorithms Daniel MENARD 1, Olivier SENTIEYS 1,2 1 LASTI, University of Rennes 1 Lannion, FRANCE 2.
OPTIMIZING DSP SCHEDULING VIA ADDRESS ASSIGNMENT WITH ARRAY AND LOOP TRANSFORMATION Chun Xue, Zili Shao, Ying Chen, Edwin H.-M. Sha Department of Computer.
Hy-C A Compiler Retargetable for Single-Chip Heterogeneous Multiprocessors Philip Sweany 8/27/2010.
1 Control Flow Graphs. 2 Optimizations Code transformations to improve program –Mainly: improve execution time –Also: reduce program size Can be done.
1 of 14 Lab 2: Design-Space Exploration with MPARM.
©SoftMoore ConsultingSlide 1 Code Optimization. ©SoftMoore ConsultingSlide 2 Code Optimization Code generation techniques and transformations that result.
Run-Time Environments Chapter 7
C4.5 algorithm Let the classes be denoted {C1, C2,…, Ck}. There are three possibilities for the content of the set of training samples T in the given node.
C4.5 algorithm Let the classes be denoted {C1, C2,…, Ck}. There are three possibilities for the content of the set of training samples T in the given node.
Optimization Code Optimization ©SoftMoore Consulting.
Introduction to cosynthesis Rabi Mahapatra CSCE617
Project Deliverables ECE 545 – Introduction to VHDL.
Architectural-Level Synthesis
RTL Design Methodology
Copyright © 2015, 2012, 2009 Elsevier Inc. All rights reserved.
STATE MACHINE AND CONCURRENT
Presentation transcript:

ISSS ’98 University of Rennes I IFSIC / IRISA C.Wolinski Hierarchical Conditional Dependency Graphs for False Path Identification A.Kountouris, C.Wolinski

ISSS ’98 University of Rennes I IFSIC / IRISA C.Wolinski Our New Co-design System Under Construction HCDG Specification : SIGNAL, C, VHDL, Code Generation Transformations : scheduling partitioning optimization Clock Calculation Estimation of: timing size power memory etc. Constraints System Description Parameters C VHDL Assembly for Target Processor Interface generation SimulationSynthesis

ISSS ’98 University of Rennes I IFSIC / IRISA C.Wolinski CCFG Topological Sort High-level specification Hardware C, C, VHDL, Signal Final HCDG Methodology used Scheduling under constraints Hardware Resources Sharing False Path Detection Initial HCDG Parsing Hierarchization process redundant clock removal refining of clock inclusion relations Treatment of arithmetic relations (rel. graphs) : a > 5 b < 5 a < b a 5b Mutual Exclusiveness Detection Process Clock Calculation for each Path in CCFG Conditional Control Flow Graph

ISSS ’98 University of Rennes I IFSIC / IRISA C.Wolinski Hierarchical Conditional Dependency Graph inc ?a !b ?c Nodes correspond to operations that assign values to variables. Clock hierarchy implemented as a hierarchy of BDD trees and represents the inclusion relations between clocks If H2 * H3 = false then H2  H3 and H2  H5 ( H5  H3) end if Mutual Exclusiveness Detection Process Each node is labeled by two clocks : utilization clock definition clock H1 H4 H5 H3 H6 H6=H4+H5 H1 H2 H3 H5 H4H6 Clocks

ISSS ’98 University of Rennes I IFSIC / IRISA C.Wolinski process jian(a, b, c, d, e, f, g, x, y) in port a[8], b[8], c[8], d[8], e[8], f[8], g[8]; in port x, y; out port u[8], v[8]; { static T1; static T2[8], T3[8], T4[8], T5[8]; T1 = (a + 1 b) < c; T2 = d + 2 e; T3 = c + 3 1; if (y) { if (T1) u = T3 + 4 d; /*u1 */ else if (!x) u = T2 + 5 d; /*u2 */ if (!T1 && x) v = T2 + 6 e; } else { T4 = T3 + 7 e; T5 = T4 + 8 f; u = T5 + 9 g; /*u3 */ } JIAN Benchmark Clocks Operations

ISSS ’98 University of Rennes I IFSIC / IRISA C.Wolinski process jian(a, b, c, d, e, f, g, x, y) in port a[8], b[8], c[8], d[8], e[8], f[8], g[8]; in port x, y; out port u[8], v[8]; { static T1; static T2[8], T3[8], T4[8], T5[8]; T1 = (a + 1 b) < c; T2 = d + 2 e; T3 = c + 3 1; if (y) { if (T1) u = T3 + 4 d; /*u1 */ else if (!x)u = T2 + 5 d; /*u2 */ if (!T1 && x)v = T2 + 6 e; } else { T4 = T3 + 7 e; T5 = T4 + 8 f; u = T5 + 9 g; /*u3 */ } } process jian(a, b, c, d, e, f, g, x, y) in port a[8], b[8], c[8], d[8], e[8], f[8], g[8]; in port x, y; out port u[8], v[8]; { static T1; static T2[8], T3[8], T4[8], T5[8]; T1 = (a + 1 b) < c; T2 = d + 2 e; T3 = c + 3 1; if (y) { if (T1) u = T3 + 4 d; /*u1 */ else if (!x)u = T2 + 5 d; /*u2 */ if (!T1 && x)v = T2 + 6 e; } else { T4 = T3 + 7 e; T5 = T4 + 8 f; u = T5 + 9 g; /*u3 */ } } JIAN Benchmark

ISSS ’98 University of Rennes I IFSIC / IRISA C.Wolinski JIAN Benchmark process jian(a, b, c, d, e, f, g, x, y) in port a[8], b[8], c[8], d[8], e[8], f[8], g[8]; in port x, y; out port u[8], v[8]; { static T1; static T2[8], T3[8], T4[8], T5[8]; T1 = (a + 1 b) < c; T2 = d + 2 e; T3 = c + 3 1; if (y) { if (T1) u = T3 + 4 d; /*u1 */ else if (!x)u = T2 + 5 d; /*u2 */ if (!T1 && x)v = T2 + 6 e; } else { T4 = T3 + 7 e; T5 = T4 + 8 f; u = T5 + 9 g; /*u3 */ } } ?a H1 +3 H1 H4 ?b H1 ?d H1 ?e H1 ?c H1 1 ?f H1 +1 H1 H2 +5 H10 +6 H9 +4 H6 ?g H1 +9 H3 !u H5 +8 H3 +7 H3 +2 H1 H7 !v H9 H1 H2H3H4H5 H6H7H8 H9H10

ISSS ’98 University of Rennes I IFSIC / IRISA C.Wolinski JIAN Benchmark Start end H1 H3 H2 H7 H10 H9 H6 H9 H8 H1 N3 N0 N1 N2 N4 N5 N6 C01 C41 C22 C21 C32 C31 C42 C51 C12 C11 CCFG ?a H1 +3 H1 H4 ?b H1 ?d H1 ?e H1 ?c H1 1 ?f H1 +1 H1 H2 +5 H10 +6 H9 +4 H6 ?g H1 +9 H3 !u H5 +8 H3 +7 H3 +2 H1 H7 !v H9 H1 H2H3H4H5 H6H7H8 H9H10

ISSS ’98 University of Rennes I IFSIC / IRISA C.Wolinski {path1=C01,C12;clock=H1*H3 OK}{path1=C01,C12;clock=H1*H3 OK path2= C01,C11,C22,C41;clock=H1*H2*H6*H9 NO path3= C01,C11,C22,C31,C41;clock=H1*H2*H7*H9*H9 OK path4= CO1,C11,C21,C32,C41;clock=H1*H2*H7*H10*H9 NO} {path1=C01,C12;clock=H1*H3 OK path2= C01,C11,C22,C41;clock=H1*H2*H6*H9 NO path3= C01,C11,C22,C31,C41;clock=H1*H2*H7*H9*H9 OK path4= CO1,C11,C21,C32,C41;clock=H1*H2*H7*H10*H9 NO path5= C01,C11,C22,C42;clock=H1*H2*H6*H8 OK path6= C01,C11,C22,C31,C42;clock=H1*H2*H7*H9*H8 OK path7= CO1,C11,C21,C32,C42;clock=H1*H2*H7*H10*H8 OK} Start end H1 H3 H2 H7 H10 H9 H6 H9 H8 H1 N3 N0 N1 N2 N4 N5 N6 C01 C41 C22 C21 C32 C31 C42 C51 C12 C11 CCFG JIAN Benchmark {path1=C01,C11;clock=H1*H2 OK} {path1=C01;clock=H1 OK} {path1=C01,C11,C21;clock=H1*H2*H7 OK} {path1=C01,C11,C22;clock=H1*H2*H6 OK}{path1=C01,C11,C22;clock=H1*H2*H6 OK path2=C01,C11,C22,C31;clock=H1*H2*H7*H9 OK} {path1=C01,C11,C22;clock=H1*H2*H6 OK path2=C01,C11,C22,C31;clock=H1*H2*H7*H9 OK path3=CO1,C11,C21,C32;clock=H1*H2*H7*H10 OK} {path1=C01,C12,C51;clock=H1*H3 OK path2= C01,C11,C22,C31,C41,C51;clock=H1*H2*H7*H9*H9 OK path3= C01,C11,C22,C42,C51;clock=H1*H2*H6*H8 OK path4= C01,C11,C22,C31,C42,C51;clock=H1*H2*H7*H9*H8 OK path5= CO1,C11,C21,C32,C42,C51;clock=H1*H2*H7*H10*H8 OK}} Clock Calculation for each Path STOP

ISSS ’98 University of Rennes I IFSIC / IRISA C.Wolinski C42 CCFG Start end H1 H3 H2 H7 H10 H9 H6 H9 H8 H1 N3 N0 N1 N2 N4 N5 N6 C01 C41 C22 C21 C32 C31 C42 C51 C12 C11 CCFG Start end H1 H3 H2 H7 H10 H9 H6 H9 H8 H1 N3 N0 N1 N2 N4 N5 N6 C01 C41 C22 C21 C32 C31 C51 C12 C11 JIAN Benchmark Results :

ISSS ’98 University of Rennes I IFSIC / IRISA C.Wolinski