version 3, september 1999 jaap hofstede design of...

Download Version 3, September 1999 Jaap Hofstede Design of …web.cecs.pdx.edu/~mperkows/...Hardware-Co-Design.pdf · 99/09/07 HW/SW Co-design 8 Classes of embedded systems ... VLSI design

If you can't read please download the document

Upload: buidat

Post on 12-Feb-2018

215 views

Category:

Documents


0 download

TRANSCRIPT

  • HW/SW Co-design

    Design of Embedded SystemsJaap HofstedeVersion 3, September 1999

  • 99/09/07 HW/SW Co-design 2

    Embedded Systems

    Embedded system is a computer system (combination of hardware and

    software) is part of a larger system (that may or may not be a

    computer)performs a fixed function for that system

  • 99/09/07 HW/SW Co-design 3

    SW or HW?

    Software

    FlexibilityLate design changes

    FeaturesReuse

    Reduced time to market

    Hardware

    PerformanceLow power(Security)

  • 99/09/07 HW/SW Co-design 4

    Applications

    Relatively small systemsConsumer electronicsConsumer productsAutomobilesTelecommunicationComputer peripheralsCopiers, FAX machinesMultimedia systems

    Relatively large systemsAirplanesIndustry

  • 99/09/07 HW/SW Co-design 5

    Classes of embedded systems

    Reactive(Control Dominated)

    State

    Real-time

    Transforming(Data Dominated)

    Digital Signal Processing(DSP)

    Limited functionality, butvery fast

  • 99/09/07 HW/SW Co-design 6

    Cost

    Main parts of cost

    Initial costProduct costTime to market

    Design is a trade-off

    CostDesign timePerformance

  • 99/09/07 HW/SW Co-design 7

    Technological developments

    Number of transistors: 35%Clock speed: 25%Processor performance: 50%

    Design Capacity: only about 20%

    What to do with all those transistors?Integrate several functionsProgrammable processorsROM for Programs for these processors

    Gap is growing

  • 99/09/07 HW/SW Co-design 8

    Classes of embedded systems

    Standard microprocessor or DSP with separate RAM,ROM and interfaces

    Standard microprocessor or DSP with ASIC or FPGAProcessor core integrated on ASIC or FPGAASIP

  • 99/09/07 HW/SW Co-design 9

    Traditional design

    To manage complexitySW and HW partitioning at an early stageHW and SW designed separately

  • 99/09/07 HW/SW Co-design 10

    HW/SW Co-design

    Specify, explore, refineFlexible design strategyHierarchy of models at

    different abstractionlevels

    HW and SW designedwith interaction andfeedback

    Final partitioning afterevaluation of trade-offs

    RequiresCo-specificationCo-development (Co-

    synthesis)Co-verification

  • 99/09/07 HW/SW Co-design 11

    Goals

    Reduced time to marketBetter productsLower development costsLower number of design cyclesHigher level of abstractionVolume specific targets

  • 99/09/07 HW/SW Co-design 12

    Tools

    Design frameworkCommon specificationsSilicon compilersSoftware compilersReal-time kernelsSimulatorsAnalysis tools

  • 99/09/07 HW/SW Co-design 13

    Disciplines

    Application domainSpecification and programming languagesCompilers (!)VLSI designParallel/distributed systemsReal-time systemsFormal methods(Performance) analysis

  • 99/09/07 HW/SW Co-design 14

    Specification

    Provide clear and unambiguous descriptionAllow CAD toolsShould not constrain implementation in either SW or HWTo be compiled to other languages for HW (VHDL) or

    SW (C)Executable to verify if requirements are met

  • 99/09/07 HW/SW Co-design 15

    Computation models

    Control dominatedFinite State Machines

    (FSM)Communicating

    Sequential Processes(CSP)

    Discrete event models(VHDL)

    Petri nets

    Data dominatedControl flow graphsData flow graphsControl/Data flow graphs

  • 99/09/07 HW/SW Co-design 16

    Co-simulation

    Simulation of systems witha mix of different kinds ofSW and HW components

    LevelsHigh abstractionInstructionsASIC modelsGateSwitchAnalogue

  • 99/09/07 HW/SW Co-design 17

    Compilers

    Front-end(target independent)

    ScanningParsingStatic semantic analysisOptimization

    Back-end(source independent)

    OptimizationCode generation

  • 99/09/07 HW/SW Co-design 18

    Code generation

    Currently often separateCharacteristics of DSPs and ASIPs make these three

    subtasks mutually dependentCoupling necessary for generation of optimal code

    1. Instruction selection2. Register allocation3. Instruction scheduling

  • 99/09/07 HW/SW Co-design 19

    Characteristics of DSPs

    HarvardMultiple busses with restricted connectivityHigh I/O-rateIrregular register sets of different sizesSpecial purpose registersSpecial registers for zero-overhead loopsMultiply-add-accumulate in one instructionFixed-point operationsHardware supported addressing modes

  • 99/09/07 HW/SW Co-design 20

    Example: Data path ADSP210x

    MR

    MFMX MY

    *+,-

    AR

    AFAX AY

    +,-,..

    DP

    yi-1[j]

    x[j-i]

    x[j-i]*a[i]

    a[i]

    Addressgeneration unit(AGU)

    Address-registersA0, A1, A2 ..i+1, j-i+1

    ax

    i: 0i n: yi[j] = yi-1[j] + x[j-i]*a[i]

  • 99/09/07 HW/SW Co-design 21

    Compiler back-ends for DSPs

    Very hard to generate sufficiently efficient code

    Intensive optimization requiredCoupling of three subtasksLong compilation time acceptable

  • 99/09/07 HW/SW Co-design 22

    Compiler back-ends for ASIPs

    ASIPs often have characteristics of DSPsSpecific code generator requiredRetargetable code generatorsCode generator must be generated automatically from

    description of processorFrom register description and instruction set (behavior)From structure of ASIP data path as generated by high level

    synthesis (structure)