1
POLITECNICO DI MILANO
Marco D. Santambrogio
Metodologie di ProgettazioneHardware e Software
Reconfigurable ComputingReconfigurable Computing-- Design FlowDesign Flow --
2
OutlineOutline
Retargetable CompilerBasic IdeaDescription
Delft WorkbenchObjectivesProgramming paradigmWorkflowRetargetable compilerMOLEN architecture
LimboWARE: basic principlesVIRGIL
ObjectivesWorkflowRetargetable compilerYaRA architecture
2
3
Presentation statusPresentation status
Retargetable CompilerBasic IdeaDescription
Delft WorkbenchObjectivesProgramming paradigmWorkflowRetargetable compilerMOLEN architecture
LimboWARE: basic principlesVIRGIL
ObjectivesWorkflowRetargetable compilerYaRA architecture
4
CompilerCompiler backgroundbackground
Compiler is a quite complex software packageCompilers must be particularly reliableTranslation of source code into machine independent intermediate representation (IR)Design requires separation into multiple phasesCompiler is followed by Assembler, LinkerBackend: mapping machine indepent IR to machine dependent asm + machine dependent optimizations
3
5
RetargetableRetargetable CompilersCompilers
6
RetargetableRetargetable Compilers Compilers –– Main GoalsMain Goals
Adapt to new processors having a single tool for an entire class of target machinesSupport for design space exploration by editing the target processor model Tradeoff retargetability/code quality: Realistic retargetable compilers focus on a specific class of processor architectures
Def.: A compiler is called retargetable, if it can be modified to generate assembly code for different architectures, while reusing the largest part of the compiler source code.
4
7
RetargetableRetargetable Compilers Compilers -- degreesdegrees
Parameterizable: Compiler source code is fixed, retargeting mainly by adjusting several parameters
User retargetable: User w/o in-depth compiler knowledge can change the target
Developer retargetable: Compiler developer (or very experienced user) can retarget the compiler with limited effort
Portable: Some source code can be kept, but a lot of code needs to be newly written
8
Presentation statusPresentation status
Retargetable CompilerBasic IdeaDescription
Delft WorkbenchObjectivesProgramming paradigmWorkflowRetargetable compilerMOLEN architecture
LimboWARE: basic principlesVIRGIL
ObjectivesWorkflowRetargetable compilerYaRA architecture
5
9
Delft WorkbenchDelft WorkbenchObjectivesObjectives
Main goals:provide a semi-automatic platform for reconfigurable computing. support the entire design process (rather than isolated parts).targets uni-processor architectures with reconfigurable units (the current version exploit a PPC core processor augmented with an FPGA)
These require the development of:programming models (MOLEN)a retargetable compilers for reconfigurable platforms.introduction of hardware software co-design speculations.CAD and design space exploration.
10
Delft WorkbenchDelft WorkbenchProgramming ParadigmProgramming Paradigm
The ISA is extended with 8 instructions6 instructions are required for controlling the reconfigurable hardware2 instructions are required for controlling the reconfigurable hardware
This mean that to call a FPGA function the compiler must insert code to:
SET the function“send” input parameters to the FPGAcall the EXECUTE on the FPGA“move” output values back from exchange registers
6
11
Re-targeted
Compiler
BinaryCode SimpleScalar
PerformanceStatistics
FPGA
…
…
Code
int fact(int n){if(n<1) return nelsereturn(n*fact(n-1));}
f(.)
Human Directives
call f(.) HDL
Architecture
REVISE
HDL
C2C
NO
Part I
Part II
Part III
Delft WorkbenchDelft WorkbenchWorkflowWorkflow
12
Generating executable code: Once a function f(.) is identified, the code containing the f(.) logic is eliminated from the source code and replaced by an appropriate FPGA call, together with the appropriate instructions for setting up the FPGA and to start its computation.
Delft WorkbenchDelft WorkbenchThe The retargetableretargetable compilercompiler
7
13
MOLEN ArchitectureMOLEN Architecture
CCU: Custom Configured Unit
14
Presentation statusPresentation status
Retargetable CompilerBasic IdeaDescription
Delft WorkbenchObjectivesProgramming paradigmWorkflowRetargetable compilerMOLEN architecture
LimboWARE: basic principlesVIRGIL
ObjectivesWorkflowRetargetable compilerYaRA architecture
8
15
LimboWARELimboWARE: The idea: The idea
The basic idea is to postpone the decision of whether executing a task in HW or in SW moving it at run-time
This will be done not for every task, because of code memory overhead, but only where is not possible to take a wise choice at design or compile-time
16
LimboWARELimboWARE: : WhenWhen -- WhereWhere
Compile-time Unbounded number of executionIf n is a number known only at run-time. The limbo choice is wiser than the corresponding one done at compile time (without this information)for(i=0; i<n; i++){
function();
}
Execution trace dependent choice between HW and µ-code
Functionality already in HW (past)Functionality that in this branch will be used many times (constrained future)
9
17
LimboWARELimboWAREExecutionExecution pathpath dependentdependent choicechoice
The execution of node 6 depends on the path
If the path is 1-3-5-6 the predicate P is TRUE, is executed in HW and the relative µ-code for the SW execution is skipped, by branching after If the path is 2-4-5-6, the predicate P is FALSE, HW_CALL and JMP are not executed and the µ-code for is executed
18
Presentation statusPresentation status
Retargetable CompilerBasic IdeaDescription
Delft WorkbenchObjectivesProgramming paradigmWorkflowRetargetable compilerMOLEN architecture
LimboWARE: basic principlesVIRGIL
ObjectivesWorkflowRetargetable compilerYaRA architecture
10
19
VIRGIL: The VIRGIL: The objectivesobjectives
Provide a workbench
Integrating and adapting HW/SW codesign methodology to reconfigurable HW scenario Integration of the DRESD reconfigurable HW architecture (YaRA)Introduction of LimboWare mechanismsDevelopment of a retargetable compiler for reconfigurable hardware
20
VIRGIL: VIRGIL: MainMain stepssteps
HW/SW partitioning
LimboWare code analysis
Compile the source code including special LimboWaredirectives
Synthesis and Mapping of the HDL (generated in the first 2 steps) to the Reconfigurable Hardware
12
23
VIRGIL: The architectureVIRGIL: The architectureYaRA YaRA -- FPGA LayersFPGA Layers
24
VIRGIL: VIRGIL: NeedsNeeds
Development of a retargetable compiler for reconfigurable HW integrating LW functionalities.Integrating and tailoring HW/SW codesignmethodologies to reconfigurable hw and LW.Identification of LimboWare and critical function detectionWHAT in the code will be translated -> metricsDefinition of metrics of source code for SW/LW partitioning and development of the relative tools.