Efficient Hardware dependant Software (HdS) Generation using SW Development Platforms
Efficient Hardware dependant Software (HdS) Generation using SW Development Platforms. Frédéric ROUSSEAU. CASTNESS‘07 Computer Architectures and Software Tools for Numerical Embedded Scalable Systems Workshop & School Roma January 15-17th 2007. Summary. Context:
Efficient Hardware dependant Software (HdS) Generation using SW Development Platforms
E N D
Presentation Transcript
Efficient Hardware dependant Software (HdS) Generation using SW Development Platforms Frédéric ROUSSEAU CASTNESS‘07 Computer Architectures and Software Tools for Numerical Embedded Scalable Systems Workshop & School Roma January 15-17th 2007
Summary • Context: • Current multimedia applications require heterogeneous MPSoC • DSP + µC + sophisticated communication infrastructure • Multiple software (SW) stacks • Multiple layers: Application SW code + HdS (Hardware dependent Software) • Specific architecture/application HdS to achieve efficiency • Problems: • Classic SW development platforms do not fit: High level programming environment is not efficient to handle specific architecture capabilities • HdS is Application/OS/architecture specific • Challenges: • Efficient HdS generation • Efficient and fast SW development platforms • Contribution: • Specific HdS generation for Diopsis • Specific SW development platforms for SW debug and validation
Task n Task 2 Task 1 HDS API Comm OS HAL API HAL HdS generation • Hardware dependant Software (HdS) is composed of different layers • Operating System (OS) • Communication primitives • Hardware Abstraction Layer (HAL) • Application Programming Interface (API) • Why do we need HdS automatic generation ? • Application/OS/Platform specific HdS • Difficulties • Validation and debug (of each layer) • HdS is used as an abstraction of HW by the application code • Requires HW and SW knowledge Tasks HdS
Fully explicit HW/SW Interface Fully implicit HW/SW Interface GAP Software design High Level App. model Partition ning Integration Abstract HW/SW Interface Functional specification ISA/RTL Early HW/SW integration Hardware design Correction cycle Classical HW/SW Interfaces Abstraction Models: The GAPS Software development platform Virtual Prototype Hardware/Software discontinuity
SW Development Platforms & HdS High level application model (tasks + mapping) • High level application model • System architecture(SA) model • Implicit communication • Virtual architecture (VA) • Final application code & HdS API • Explicit communication • Explicit mapping to execution subsystems • Implicit execution models & task control • Transaction accurate architecture (TA) • Explicit OS, specific I/O, HAL API • Explicit communication and peripherals • Abstract computation model of CPU • Virtual prototype • Explicit execution models (CPU, communication) • HdS implements com. API & task control over OS and architecture HdS Library Virtual architecture HdS generation (TIMA) Transaction accurate architecture Virtual prototype
SW development platform generation Abstraction SW Development Platforms & HdS High level application model (tasks + mapping) • High level application model • System architecture(SA) model • Implicit communication • Virtual architecture (VA) • Final application code & HdS API • Explicit communication • Explicit mapping to execution subsystems • Implicit execution models & task control • Transaction accurate architecture (TA) • Explicit OS, specific I/O, HAL API • Explicit communication and peripherals • Abstract computation model of CPU • Virtual prototype • Explicit execution models (CPU, communication) • HdS implements com. API & task control over OS and architecture HdS Library Virtual architecture HdS generation Transaction accurate architecture Virtual prototype D940 Diopsis tile
Software design flow in SHAPES High level application model (tasks + mapping) Application mapping (ETH) Application HdS Library Architecture Virtual architecture HdS generation SW development platform generation Transaction accurate architecture Abstraction Virtual prototype (Aachen) D940 Diopsis tile
Detailed contributions • Abstraction of the RDT Diopsis Tile • With the specific communication schemes • At different abstraction levels (Virtual and Transaction levels) • Software development Platforms generation • Debug and validation of the different SW stacks and layers • Different abstraction levels • HdS Generation • From a high level application model • Using the specific communication schemes of Diopsis
HdS generation SW development platform generation Abstraction Next presentations High level application model (tasks + mapping) • SW Development Platform generation • Efficient SW Development Platform for Multimedia Applications by Katalin Popovici • HdS generation • Software Code Generation from a Simulink Application Model by Xavier Guérin • Demo • Application of Software Code Generation Flow from Simulink to Diopsis Platform by Katalin Popovici HdS Library Virtual architecture Transaction accurate architecture Virtual prototype D940 Diopsis tile