SLIDE 1
A Common Machine Language for Communication-Exposed Architectures - - PowerPoint PPT Presentation
A Common Machine Language for Communication-Exposed Architectures - - PowerPoint PPT Presentation
A Common Machine Language for Communication-Exposed Architectures Bill Thies, Michal Karczmarek, Michael Gordon, David Maze and Saman Amarasinghe MIT Laboratory for Computer Science HPCA Work-in-Progress Session, February 2002 A Common
SLIDE 2
SLIDE 3
Back in The Good Old Days…
- Architecture: simple von-Neumann
- “Common Machine Language”: C
– Abstracts away idiosyncratic differences
- Instruction set
- Pipeline depth
- Cache configuration
- Register layout
– Exposes common properties
- Program counter
- Arithmetic instructions
- Monolithic memory
– Efficient implementations on many machines – Portable: everyone uses it
SLIDE 4
Programming Language Evolution
5 10 15 20 25 30 35 40 1970 1975 1980 1985 1990 1995 2000 2005
Language Effectiveness C C++ Java
SLIDE 5
Programming Language Evolution
1 10 100 1000 10000 100000 1000000 10000000 1970 1975 1980 1985 1990 1995 2000 2005
Language Effectiveness Moore's Law
SLIDE 6
- Two choices:
- Develop cool architecture with
complicated, ad-hoc language
- Bend over backwards to support
- ld languages like C/C++
- Two choices:
- Develop cool architecture with
complicated, ad-hoc language
- Bend over backwards to support
- ld languages like C/C++
Languages Have Not Kept Up
Modern architecture
- Two choices:
- Develop cool architecture with
complicated, ad-hoc language
- Bend over backwards to support
- ld languages like C/C++
C von-Neumann machine
SLIDE 7
Evidence: Superscalars
- Huge effort into improving performance of
sequential instruction stream
- Complexity has grown unmanageable
- Even with 1 billion transistors on a chip,
what more can be done?
Renaming Out-of-Order Execution Pipelining Speculative Execution Prefetching Branch Prediction Value Prediction
SLIDE 8
A New Era of Architectures
- Facing new design parameters
– Transistors are in excess – Wire delays will dominate
- “Communication-exposed” architectures
– Explicitly parallel hardware – Compiler-controlled communication – e.g. RAW, Smart Memories, TRIPS, Imagine, the Grid Processor, Blue Gene
SLIDE 9
- Should expose shared properties:
– Explicit parallelism (multiple program counters) – Regular communication patterns – Distributed memory banks – No global clock
A New Common Machine Language
- Should expose shared properties:
– Explicit parallelism (multiple program counters) – Regular communication patterns
- Should hide small differences:
– Granularity of computation elements – Topology of network interconnect – Interface to memory units
C does not qualify!
SLIDE 10
The StreamIt Language
- A high-level language for communication-
exposed architectures
- Computation is expressed
as a hierarchical composition
- f independent filters
SLIDE 11
The StreamIt Language
- A high-level language for communication-
exposed architectures
- Computation is expressed
as a hierarchical composition
- f independent filters
- Features:
– High-bandwidth channels – Low-bandwidth messaging – Re-initialization
SLIDE 12
The StreamIt Compiler
- We have a compiler for a uniprocessor
– Performs comparably to C++ runtime system
SLIDE 13
The StreamIt Compiler
- We have a compiler for a uniprocessor
– Performs comparably to C++ runtime system
- Working on a backend for RAW
– Fission and fusion transformations – Many optimizations in progress
SLIDE 14
The StreamIt Compiler
- We have a compiler for a uniprocessor
– Performs comparably to C++ runtime system
- Working on a backend for RAW
– Fission and fusion transformations – Many optimizations in progress
- Goal: High-performance, portable language
for communication-exposed architectures
SLIDE 15