Title: Introduction
1Introduction OverviewASIP Synthesis
Retargetable Code Generation
2nd January 2002
2Presentation Outline
- Introduction Motivation
- Architecture Overview
- ASIP Synthesis
- Memory Customization
- Retargetable Code Generation
3Embedded Systems Design
- Application driven
- Hardware as well as software components
- Hardware IP or ASIC
- Software Processor core or ASIP
- Tools for code generation
4Motivation
- Our motivation for organizing this workshop is to
bring out the key issues involved in the
following three key steps on one platform. - ASIP Synthesis
- Memory customization
- Retargetable code generation
5Design Challenge
- Given an application or a set of applications,
design a system, possibly hardware plus software,
which meets the constraints of (or optimizes for)
area, performance and power. This can be achieved
by - Defining the design space to be explored
- Understanding the relationships between
application characteristics and design - Creating tools for efficient design space
exploration
6Presentation Outline
- Introduction Motivation
- Architecture Overview ?
- ASIP Synthesis
- Memory Customization
- Retargetable Code Generation
7Processor Architecture
RF
MEM
ALU
8Architecture Variations
- RISC and CISC
- Harvard Architecture
- Specialized ALUs
- Instruction Pipelining
- Cache memory
- VLIW and Superscalar
9RISC Vs CISC
10Harvard Architecture
- Separate buses for instruction and data
- Separate instruction and data memory
- Popular for DSPs
11Multiple ALUs
- Separate ALU for address generation
- Specialized units for floating data types
- Variable latency units
- Data dependency issues
- Data forwarding
12Instruction Pipelining
- Static Dynamic pipeline
- Pipeline stalls due to
- Data dependency
- Resource conflicts
- Pipeline flushing due to branching
13Instruction Pipelining Example
Ins. 1
Ins. 2
Ins. 3
Fetch
Decode
Execute
3 Stage pipeline
14Pipeline stall due to Resource conflict
Ins. 1
Ins. 2
Ins. 3
Pipeline F D
OF
E
Stall
Stall
15Cache Memory
- Memory bandwidth bottleneck
- Temporal and spatial locality of memory accesses
- Cache size and organization
16Advanced Processors
- Attempts to go below 1 cpi
- Increasing instruction level parallelism
- Data dependency and resource constraints
- Compiler extracts parallelism (VLIW)
- Multiple instruction issue (Superscalar)
17VLIW Vs Superscalar
18Presentation Outline
- Introduction Motivation
- Architecture Overview
- ASIP Synthesis ?
- Memory Customization
- Retargetable Code Generation
19Application Specific Instruction Set Processors
- Designed for specific application
- Exploits special characteristics to meet the
desired constraints - Efficient for applications like digital signal
processing, automatic control systems, cellular
phones etc.
20GPP-ASIP-ASIC
21Flow Diagram of a typical ASIP Design Methodology
Application Design Constraints
Application Analysis
Architectural Design Space Exploration
Instruction Set Generation
Code Synthesis
Hardware Synthesis
Object Code
Processor Description
22ASIP Design Space Exploration
- Code generation Simulator based
- Estimation (Scheduler) based
23Code Generation Simulator based
Retargetable Compiler
Simulator
Application (HLL)
Object Code
Architecture Description
Trace Data
24Estimation based
Architecture Description
Application (HLL)
Profiler
Retargetable Estimator
Performance and other Estimates
25Flow diagram of overall Methodology
26Presentation Outline
- Introduction Motivation
- Architecture Overview
- ASIP Synthesis
- Memory Customization ?
- Retargetable Code Generation
27Memory Customization Issues
- Memory hierarchy
- Memory technology
- SRAM
- DRAM
- Memory organization
- Ports
- Interleaving
28Local Memory Issues
- Cache (compiler transparent) or Scratchpad memory
(user assigned) - Cache or scratchpad memory size
- Cache organization
- Unified or split (I-Cache and D-Cache)
- Direct mapped or set associative
- Write through or write back
- Replacement policies
29Application Characteristics
- Data access requirements
- Data access patterns
- Predictability of access patterns
- Temporal and spatial locality
- Time, area and power constraints
30Presentation Outline
- Introduction Motivation
- Architecture Overview
- ASIP Synthesis
- Memory Customization
- Retargetable Code Generation ?
31Retargetable Code Generator Options
- Compiler Compiler Accept a specific
architecture as input and generate a compiler
which accepts the application programs - Retargetable Compiler Accept both the
application and the architecture (parameters) as
inputs and directly generates code
32Issues in Retargetable Code Generation
- Architecture design space parameters
- Instruction set Fixed or Custom
- Custom instruction set Application analysis
- Compiler optimization options
- Code generation objectives Area, performance or
power
33Thanks