Stepwise Exploration of the Design Space
High
Medium
Low Y-Chart Approach
Platforms
Output Devices Input devices
Hardware Platform
I O
Hardware
network
DUAL-CORE
RTOS
BIOS Device Drivers
Network Communication
DUAL- CORE
Architectural Space (Performance)
Application Space (Features)
Platform Instance Application Instances
System Platform (no ISA)
Platform Design Space Exploration Platform Specification
Platform API
Software Platform
Output Devices Input devices
Hardware Platform
I O
Hardware
network HITACHI
RTOS
BIOS Device Drivers
Network Communication
HITACHI
RTOS
BIOS Device Drivers
Network Communication
Output Devices Input devices
Hardware Platform
I O
Hardware
network ST10
RTOS
BIOS Device Drivers
Network Communication
ST10 Application
Software
Application Software
Where do we stand?
Traditional approach
vhdl/verlog/c
“magic”
•Risky
•big jump versus stepwise
•potentially suboptimal
•no early feedback
Where do we stand?
Wireless Research
vhdl/verilog/C
Exploration Work in progress Challenge:
•mapping
Where do we stand?
Verilog
Mpeg Case Research
“Sanity Check”
on the methodology
Semiconductors
tss
•Abstract executable models
•feedback on the methodology
•functional partitioning
•KPN -> software + Coproc.
Where do we stand?
TriMedia Processor Case
Back of the Envelop (Paper)
Abstract Executable Model (TSS)
Cycle Accurate Models (TSS)
Verilog/VHDL (RTL)
Hand off Research
Semiconductors
Where are we going
50/100Hz conversion HW/SW case
Back of the Envelop (Paper)
Abstract Executable Model (C)
Cycle Accurate Models (TSS)
Verilog/VHDL (RTL)
Hand off Research
Semiconductors
X XX
Algorithmic C
System design needs
• library of functions (applications)
• library of architecture components at several levels of abstraction:
– HW architecture IP components – SW architecture IP components
• System level design flow
• Industry standards for library modeling
Embedded System
Professional needs to know
1. Computer architecture: instruction sets, interrupts, pipelines, vector processing, DMA, bus protocols, cache coherency
2. Application knowledge. Signal processing: fft, wavelet coding, mpeg4, motion estimation, Protocols.
3. Programming languages: PERL, Java, C++, design patterns
4. Core compiler technology and real- time operating systems: priorities, rate monotonic scheduling
5. Models of Computation and System Level Design Languages
6. Understanding Metrics, Design of Experiments
7. How to cooperate with hardware, software and colleagues:
register settings, cvs, APIs, code reviews, ????
Applications Applications Architecture
Instance
Mapping
Applications
Performance Analysis
Performance Numbers
1,5 2,3,5
4,5
7 Transistor?
6
Y-Chart Check List Where is your:
• architecture description file?
• applications in an implementation independent format?
• explicit mapping step?
• Retargetable Compiler?
• Retargetable Simulator?
• Design space exploration?
• Representation of the exploration data?
• Release policy and hand off?