Title: Part V: A NOC Design Methodology
1Part VA NOC Design Methodology
- Juha-Pekka Soininen
- VTT Electronics
- Oulu, Finland
NOCARC project
2Background of the presentation
- Mission
- How to develop a system that uses 1 billion
transistor capacity effectively in 2007-2010 - Maturity of design methodology
- 2nd guess on how NOC based systems should be
developed - Related methodologies
- distributed systems
- parallel processing systems
- systems on chip and ASIC design
3Outline
- Existing design flows
- NOC concept
- Capacity considerations
- Application characteristics
- NOC design challenges
- NOC design methodology
- NOC layers
- Development flow
- System services
- Architecture design problems
- Application development problems
- Conclusions
4Design Flow Space
simulation
emulation
profiling
synthesis
System exists
monitoring
design
workloadanalysis
cosimulation
prototyping
mappability estimation
Function development
complexityanalysis
estimation
capacity estimation
mathematicalanalyses
performanceanalysis
performancesimulation
modelling
benchmarking
System does not exist
Resource development
5Extremely short introduction to existing design
flows
- Algorithm on Chip (AoC)
- ASIC design flow
- FPGA design flow
- System on Chip (SoC)
- Codesign flow
- IP based design flow
- Platform based design flow (Resources on Chip,
RoC) - Configuration design flow
- Software design flow
6AoC Design Flow
Algorithms exists
simulation
emulation
profiling
synthesis
Chip exists
HW design
changes into functionality
Algorithm design
complexityanalysis
Function development
feasibility studies
mathematicalanalyses
modelling
System does not exist
Resource development
7CoDesign Flow
simulation
emulation
profiling
synthesis
System exists
monitoring
workloadanalysis
cosimulation
prototyping
SW/HW partitioning
mappability estimation
Function development
capacity estimation
mathematicalanalyses
modelling
System does not exist
Resource development
8IP Based Design
emulation
System exists
monitoring
workloadanalysis
cosimulation
prototyping
mappability estimation
Function development
capacity estimation
estimation
mathematicalanalyses
Architecture template
IP block integration
modelling
System does not exist
Resource development
9Software Design
System exists
monitoring
prototyping
SW design
Function development
performance analysis
estimation
performancesimulation
RTOS services
modelling
benchmarking
Computer design
System does not exist
Computer exists
Resource development
10Capacity of Network on Chip
Average SoC design ? 1 million gates 1 billion
transistors ? 250 million gates 1 NoC gt 200
SoCs 1 GHz clock with RISC computer ? 1000 MIPS
performance 1 NOC capacity ? 100-10000
GIPS Applicability of capacity is limited by
communication
10 computers
10 computers
11Applications for NOC
- Multistandard terminal
- Next generation base station
- Simulation of human brain
- Virtual reality creation
- Telepresence
- Holodeck (Star Trek)
- Purpose of Life (Hitch Hikers Guide to Galaxy)
- Simulation of universe
- Commercial operating system -)
Piece of cake
Realistic applications
Maybe not even for NOC
Real challenges for every archtitecture
12Application characteristics
NOC capacity will be shared by several
simultaneous applications
NOC must be adaptable to different workload
patterns
Different applications have very different
requirement profile
Stream-based processing
tn
tnp
Parallel processing
Real-time processing
13Network on Chip alternatives
NOC Network of computation and storage
resources NOC parameters Number of
resources Types of resources GPU DSP Memory
Configurable HW Coprocessors Any
combination Communication capability
14Network on Chip alternatives
Regions are used to encapsulate application
requirements Parallel high-performance datapaths
Data compression, encryption, decompression,
decryption
OFDM bit-stream processing
WCDMA bit-stream processing
15Network on Chip alternatives
Memory management
DATABASE NOC
Memory area
Applications
16Network on Chip alternatives
Parallel processing engine
IO
17NOC design challenges
Physical limits -gt Architecture basics -gt GALS
-gt Communication principles Application
requirements -gt Region concepts -gt Heterogenuous
resources types -gt Multilanguage and method
design flows Overall complexity -gt Architecture
reuse -gt Platform type of design flow Overall
complexity -gt Basic control principles -gt System
services Manufacturability problems -gt
Structured approach
NoC
SoC
18Figure of Merit for NOC based systems
Scalability
Efficiency
Computation
Energy consumption
Utilisation
Storage
Fault tolerance
Capacity
Communication
Result quality (accuracy)
Functionality
Responsiveness
Materials
Structural
Licencing
Functional
System Quality
Production
Control
Implementation
Complexity
Development
Effort
Time
Modifiability
Flexibility
Volume
Risk
Coupling
Applicability
Lifetime
Cohesion
Configurability
Manufacturability
Modularity
Programmability
Usability
19Basic requirements for NOC design methodology
- Reuse
- of intellectual property blocks
- best performance/energy ratio
- best mapping to application characteristics
- Reuse
- of hardware (and architecture)
- best complexity/cost and performance/cost ratio
- only way to even dream of achieving
time-to-profit requirements - Reuse
- of design methods and tools
- only way to deal with heterogenuous application
set
20NOC Design Methodology
Cores
Communication structure
Memories
Accelerators
Optimised Virtual Components
Definition of NOC platform
Generic backbone
Application area specific IPR
Processors and hardware
Algorithms
Applications
Product area specific platform
Instantiation of NoC platform
Features
Product specific IPR
Optimised Intellectual Property
Code and configuration
NoC system
21Structural layers of NOC
Product
System control, product behaviour
Network management, allocation, operation modes
Configuration
Applications
Resource management,diagnostics, applications
Functions
Execution control, functions
Executables
RTOS, code, HW configurations
Hardware units
Processors, memorires, configurable HW, logic
Resources
Resource types, buses, IO
Regions
Region types, switches, network interfaces
Communication
Channels and protocols
22Logical layers of NOC
- Backbone
- Communication resources
- Basic set of system services
- Architecture design methods and tools
- Platform
- Computation and storage resources
- System services
- Application design methods and tools
- System
- Functionality of computation(code, configuration)
- Control (OS, NetOS)
- Validation and verification support
Product
Configuration
Applications
Functions
Executables
Hardware units
Resources
Regions
Communication
23Development of NOC based systems
High-perforrmance communication systems
High-capacity communication systems
Baseband platform
Personal assistant
Database platform
Data collection systems
BACKBONE
Multimedia platform
Entertainment devices
PLATFORMS
Virtual reality games
SYSTEMS
24Using Design Space for NOC
Communication channels
Non-configurable hardware
NOC System
Product differentiation
Application mapping
Function development
Platform
Architecturedesign
Backbone
System Services
Operation principles
Product area specialisation
System does not exist
Resource development
25System Services
- Purpose to hide implementation details from
application developer - Execution services
- Communication, resource allocation and conversion
services - Control services
- Power management, reconfiguration, load
migration, fault detection and recovery, data
collection and analysis - Development support services
- Language interfacing, compilers, libraries,
optimisations, debugging, testing, validation,
etc. - System services are part of backbone and platform
ASIC
Performance
SW
Thickness of service layers
26NOC Platform development
- Scaling problem
- How big NOC is needed? What are the application
area requirements? - Region definition problem
- What kind of regions are needed? What kind of
interfaces between regions? What are the capacity
requirements for the regions? - Resource design problem
- What is needed inside resources? Internal
computation type and internal communication? - Application mapping flow problem
- What kind of languages, models and tools must be
supported? How to validate and test the final
products?
27NOC Application Development
- Mapping problem
- How to partition applications for NOC resources?
How to allocate functionality effectively? Is the
performance adequate? Is the resource usage in
balance? - Optimisation problem
- How to perform global optimisation of
heterogenuous applications? How to define right
optimisation targets? How to utilise
application/resource type specific tools? - Validation problem
- Are the contraints met? Are the communication
bottlenecks or power consumption hot spots? How
to simulate 10000 GIPS system? How to test all
applications?
28Methods Tools
- Analysis of applications (characterisation)
- analysis of complexity, computation type,
communication requirement, storage, etc. - for scaling, region and resource type selection,
and application mapping - Different abstraction levels workload model,
application model, execution model - Validation of decisions
- network simulations at various abstraction levels
(effects of mapping)
- Estimation of quality characteristics
- global vs. local optimisation of the system
- SW architecture vs. HW architecture
- computation vs. engine
- Development support
- virtual execution platforms for application
developers - integration of existing design tools for resource
level design
29Conclusions
- Development of NOC systems will be a huge effort
- reuse in all levels is a must
- reuse of architecture, hardware and software in
product - reuse of different languages, methods, tools and
practices during development - Backbone, platform, system based design
methodology apporach - provides variability and performance
- Analysis, decision, estimation and validation
methods are the cornerstones of NOC development - complexity, functionality, workload vs. capacity,
performance, efficiency