DOC PREVIEW
High-Level Synthesis of High Performance Microprocessor Blocks

This preview shows page 1-2-3-20-21-22-41-42-43 out of 43 pages.

Save
View full document
View full document
Premium Document
Do you want full access? Go Premium and unlock all 43 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 43 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 43 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 43 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 43 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 43 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 43 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 43 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 43 pages.
Access to all documents
Download any document
Ad free experience
Premium Document
Do you want full access? Go Premium and unlock all 43 pages.
Access to all documents
Download any document
Ad free experience

Unformatted text preview:

PowerPoint PresentationOverviewHigh Level SynthesisScheduling with Given Resource AllocationThe Spark High-Level Synthesis FrameworkLimitations of high-level synthesis targeted by SparkGeneralized Code MotionsCharacteristics of ASIC DesignCharacteristics of Microprocessor BlocksSimplified Instruction Length DecoderSlide 11Behavioral Description in CSpeculate MaximallyInlining (Done Earlier)Unroll Loop CompletelyPropagate Constant: Loop IndexMaximally Parallelize/CompactFinal Design ArchitectureILD Tasks Achieved This SummerOther Interaction within SCLFuture PlansSlide 22Spark’s MethodologySlide 24Slide 25Scheduling Results on MPEG Prediction BlockScheduling Results on ADPCM EncoderScheduling ResultsInterconnect minimization by resource bindingResults after BindingResults after Binding: ADPCMSlide 32The Intermediate RepresentationIR ExamplesSlide 35Slide 36The Scheduler FrameworkSlide 38Extracting Parallelism with SpeculationReverse SpeculationEarly Condition ExecutionConditional SpeculationRDLP Example08/31/2001Copyright CECS & The Spark ProjectCenter for Embedded Computer SystemsUniversity of California, Irvinehttp://www.cecs.uci.edu/~sparkHigh-Level Synthesis of High Performance Microprocessor BlocksNick Savoiu Nikil DuttRajesh Gupta Alex NicolauSPARK High Level Synthesis SystemSupported by Semiconductor Research Corporation and IntelTimothy Kam Michael Kishinevsky Steve Haynal Abdallah TabbaraSumit GuptaStrategic CAD LabsDesign TechnologiesIntel Inc, Hillsborohttp://www.intel.com/research/scl2Copyright CECS & The Spark ProjectOverviewBrief backgroundSpark High-Level Synthesis FrameworkPrevious work in Spark frameworkHigh-level synthesis for Microprocessor blocksInstruction Length DecoderDesign BehaviorSteps involved in synthesisWork done this summer at SCLFuture Plans3Copyright CECS & The Spark ProjectHigh Level SynthesisFrom C to CDFG to Architecture4Copyright CECS & The Spark ProjectScheduling with Given Resource AllocationResource Constraints+ <5Copyright CECS & The Spark ProjectThe Spark High-Level Synthesis Framework6Copyright CECS & The Spark ProjectLimitations of high-level synthesis targeted by SparkQuality of synthesis results severely effected by complex control flowControl flow style effects the effectiveness of optimizationsNested ifs and loops not handled or handled poorlyPoor understanding (much less integration) of the interaction between source-level and fine grain “compiler” transformationsNo comprehensive synthesis frameworkFew and scattered optimizationsResults presented for schedulingEffects on logic synthesis not understoodSmall, synthetic benchmarks7Copyright CECS & The Spark ProjectGeneralized Code Motions+++If NodeT FConditional SpeculationReverse SpeculationSpeculationAcross HierarchicalBlocks8Copyright CECS & The Spark ProjectCharacteristics of ASIC DesignLarge designs such as MPEGMulti-cycle implementationResource constrainedImplications on transformations appliedExtraction of parallelism constrained by area limitationsSpeculation may lead to additional registersMore conservative with transformations such as loop unrolling9Copyright CECS & The Spark ProjectCharacteristics of Microprocessor BlocksSmaller DesignsSingle or Dual Cycle implementationHigh performanceExtract maximal parallelismArea constraints are more laxImplications on transformations appliedOperations within behavior are chained together with no latching All loops can be unrolled10Copyright CECS & The Spark ProjectSimplified Instruction Length DecoderByte 0Byte 1Byte 2Byte 3Length ContributionLength ContributionLength ContributionLength ContributionNeedNextByteNeedNextByteNeedNextByte11Copyright CECS & The Spark ProjectSimplified Instruction Length DecoderByte 0Byte 1Byte 2Byte 3Length ContributionLength ContributionLength ContributionLength ContributionNeedNextByteNeedNextByteNeedNextByteFirst Instruction12Copyright CECS & The Spark ProjectBehavioral Description in CNextStartByte = 0; for (i=0; i < n; i++) { len[i] = CalculateLength(i); if (i == NextStartByte) { NextStartByte = len[i]; Mark[i] = 1; } } /* for (i=0; i < n; i++) */int CalculateLength(i) { lc1 = LengthContribution(i); need1 = need_next_byte(i); if (need1) { lc2 = LengthContribution(i+1); need2 = need_next_byte(i+1); if (need2) { lc3 = LengthContribution(i+2); need3 = need_next_byte(i+2); if (need3) { lc4 = LengthContribution(i+3); Length = lc1 + lc2 + lc3 + lc4; } else Length = lc1 + lc2 + lc3; } else Length = lc1 + lc2; } else Length = lc1; return Length; }13Copyright CECS & The Spark ProjectControl LogicData CalculationSpeculate MaximallyNextStartByte = 0; for (i=0; i < n; i++) { len[i] = CalculateLength(i); if (i == NextStartByte) { NextStartByte = len[i]; Mark[i] = 1; } } /* for (i=0; i < n; i++) */int CalculateLength(i) { lc1 = LengthContribution(i); need1 = need_next_byte(i); lc2 = LengthContribution(i+1); need2 = need_next_byte(i+1); lc3 = LengthContribution(i+2); need3 = need_next_byte(i+2); lc4 = LengthContribution(i+3); TempLength1 = lc1 + lc2 + lc3 + lc4; TempLength2 = lc1 + lc2 + lc3; TempLength3 = lc1 + lc2; if (need1) { if (need2) { if (need3) { Length = TempLength1; } else Length = TempLength2; } else Length = TempLength3; } else Length = lc1; return Length; }14Copyright CECS & The Spark ProjectInlining (Done Earlier)Control LogicData CalculationNextStartByte = 0; for (i=0; i < n; i++) { Results(i) = DataCalulation(i, i+1, i+2, i+3); Length(i) = ControlLogic(Results(i)); len[i] = Length(i); if (i == NextStartByte) { NextStartByte = len[i]; Mark[i] = 1; } } /* for (i=0; i < n; i++) */int CalculateLength(i) { lc1 = LengthContribution(i); need1 = need_next_byte(i); lc2 = LengthContribution(i+1); need2 = need_next_byte(i+1); lc3 = LengthContribution(i+2); need3 = need_next_byte(i+2); lc4 = LengthContribution(i+3); TempLength1 = lc1 + lc2 + lc3 + lc4; TempLength2 = lc1 + lc2 + lc3; TempLength3 = lc1 + lc2; if (need1) { if (need2) { if (need3) { Length = TempLength1; } else Length = TempLength2; } else Length = TempLength3; } else Length = lc1; return Length; }15Copyright CECS & The Spark ProjectUnroll Loop CompletelyNextStartByte = 0; i=0; Results(i) = DataCalculation(i, i+1, i+2,


High-Level Synthesis of High Performance Microprocessor Blocks

Download High-Level Synthesis of High Performance Microprocessor Blocks
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view High-Level Synthesis of High Performance Microprocessor Blocks and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view High-Level Synthesis of High Performance Microprocessor Blocks 2 2 and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?