Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Hardware/Software Codesign Representation Models Ly Le and Kyung Kim Department of Electrical Engineering University of Washington 11/9/2004 Outline Overview Definition Purposes Representation models Codesign tools Summary Definition Codesign Representation Model A representation that can be used to capture the features of the system and describe its functionalities Ideally capable of handling concurrent and sequential behavior Allows HW/SW partitioning to be delayed until trade-offs can be made Typically used at a high-level in the design process Purposes Increase system complexity Ensure system reliability Lower cost Reduce time-to-market Well-known Models that codesign representations are derived from: Finite State Machines Discrete-Event Systems Petri Nets Dataflow Graphs Communicating Processes Synchronous/Reactive Models Finite State Machines The classical FSM is composed of states, inputs, and outputs The classical FSM does not have concurrency and hierarchy Extensions and variations of FSM are developed 3 Models of Finite State Machines SOLAR Codesign Finite State Machine (CFSM) Statecharts SOLAR High-level concepts for control-flow dominated system Includes hierarchy and concurrency Uses synchronously combined (with communication) multiple FSMs Intermediate format for high-level to system-level Codesign Finite State Machine Used for relatively low complexity control-oriented systems Uses multiple FSM running asynchronously ‘event’ is broadcasted between FSMs for communication Intermediate representation between high-level and system-level Statecharts Used for complex reactive systems with concurrency and hierarchy Uses instantaneous broadcast where the receiver reacts immediately upon broadcast Discrete-Event Systems They are systems that evolve at discrete time when events occur (otherwise remain constant) All events have values and time stamps Require great computational cost Used for communication networks and automated manufacturing processes Petri Nets Consist of places, tokens, transitions, and arcs Well known for concurrency and asynchronous nature Lack hierarchical decomposition and expressiveness for computations 2 Models of Petri Nets Hierarchical Petri Nets (HPN) PURE Hierarchical Petri Nets Inherit concurrency and asynchrony Incorporate hierarchy for more complex systems PURE Consist of control and computational/data part Timed Petri Nets with restricted transition rules are used Pairs of I/O operations used for communication between modules Show consistent HW/SW representation Dataflow Graphs 5 Example: X 4 Y + + + Control Step 1 Control Step 2 + Control Step 3 Include nodes for computations and arcs for the order of computations Often used in modeling data-dominated systems Dataflow Models Three models: Dataflow Process Networks Model Graph Conditional Process Graph Dataflow Process Network composed of multiple of concurrent processes Specify applications written in C or Mathlab Mapped into microprocessor architecture Compaan tool used for Mathlab applications Used in real-time, high-performance signal processing applications Video consumer appliances Adaptive radar processing Mobile communication devices Dataflow Process Networks Dataflow Process Networks (Cont.) Two approaches: Synchronous data flow (SDF) Nodes consuming and producing a fixed number of data in each fire Cyclo-static data flow (CSDF) Nodes cyclically having variable amounts of data Model Graph Concurrent processes communicating via FIFO-ordered queue Used in real-time operating systems because of: processes enabled only when the required input data is present time-constraints of each process Conditional Process Graph Consist of multiple communicating processes sharing the same resources Need a scheduler to control the dataflow Used in both data and control oriented systems Time-constraints on each process Condition to activate the process execution Communicating Sequential Processes Model (CSP) Include a set of concurrent processes Use a synchronizing protocol for communication Be suitable to system-level simulation and synthesis VHDL or Verilog used for hardware description Synchronous/Reactive Models Represent for reactive, real-time systems Produce outputs simultaneously with input stimuli No observable time delay in the reaction Synchronous/Reactive Models (Cont.) Three models: State based formalisms control oriented systems Multiple clocked recurrent systems (MCRSs) data oriented systems LUSTRE language Synchronous Processes both control and data oriented systems Processes activated by events with a tag ESTEREL language ATM Network Interface Card Application ATM Network Interface Card Application (Cont.) Composed of concurrent processes (TCP, IP, AAL, ATM) Processes asynchronously communicating via signal routes and channels Used dataflow process networks as a representation model Specification and Description Language (SDL) Used for specifying and validating the NIC system Good for communicating systems Generating a high level block diagram of NIC system Specification and Description Language (SDL) (Cont.) Advantages Be able to investigate trade-offs before HW/SW partitioning Avoid a late detection of errors Lower cost Faster design time Disadvantage Lack of some arithmetic operation Not suitable for DSP applications Esterel A design environment to develop both HW/SW at the same time Used for reactive real-time system A synchronous language that compiles to the finite state machine Esterel (cont.) Module based Uses signals as inputs and outputs Signals have status (present or absent) and values Uses input relations to set conditions relation Up # Down; %incompatibility Uses parallel statements Esterel (cont.) Functions, procedures, and tasks function compareTime (Time, Time) : boolean; procedure TranslateAndRotate (Rectangle) (Coord, integer); task MoveRobot (Coord) (Rectangle); Variable var x:=0 : integer in var x:integer Assignment x := 0; x := x+1; Example coding for Esterel module ABCRO: input A, B, C, R; output O; loop [await A || await B || await C ]; emit O each R end module Example coding (cont.) >; Output: >A; Output: >B; Output: >C; Output: O >R; Output: >A B C; Output: O Summary Using representation models is very important Reduction in development cost Reduction in design time Performance enhancement References Luis Alejandro Cortes, Petru Eles and Zebo Peng, “A Survey on Hardware/Software Codesign Representation Models” Linkoping University Jean-Marc Daveau, Gilberto Marchioro, Ahmed Amine Jerraya, “Hardware/Software Co-design of an ATM Network Interface Card: A Case Study” http://www-cad.eecs.berkeley.edu/Respep/Research/hsc/abstract.html A. Benveniste and G. Berry, “The Synchronous Approach to Reactive and Real-Time Systems,” in Proc. IEEE, vol. 79, pp. 1270-1282, Sept. 1991. T. Ben Ismail and A. Jerraya, “Synthesis Steps and Design Models for Codesign,” in IEEE Computer, vol. 28, pp. 44-52, Feb. 1995. G. Berry and G. Gonthier, “The ESTEREL synchronous programming language: design, semantics, implementation,” in Science of Computer Programming, vol. 19, pp. 83-152, Nov. 1992. F. Boussinot and R. de Simone, “The ESTEREL Language,” in Proc. IEEE, vol. 79, pp. 1293-1304, Sept. 1991. C. G. Cassandras, Discrete Event Systems: Modeling and Performance Analysis. Boston, MA: Aksen Associates,1993. M. Chiodo, P. Giusto, H. Hsieh, A. Jurecska, L. Lavagno, and A. Sangiovanni-Vicentelli, “A Formal Specification Model for Hardware/Software Codesign,” Technical Report UCB/ERL M93/48, Dept. EECS, University of California, Berkeley, June 1993. [Chi94] M. Chiodo, P. Giusto, A. Jurecska, H. Hsieh, A. Sangiovanni-Vicentelli, and L. Lavagno, “Hardware-Software Gerard Berry, Centre de Mathematiques Appliquees, and Ecole des Mines and INRIA, “The Esterel v5 Language Primer Version 5.21 release 2.0”