290 likes | 463 Views
Part V: A NOC Design Methodology. Juha-Pekka Soininen VTT Electronics Oulu, Finland. NOCARC project. Background of the presentation. Mission: How to develop a system that uses 1 billion transistor capacity effectively in 2007-2010 Maturity of design methodology:
E N D
Part V:A NOC Design Methodology Juha-Pekka Soininen VTT Electronics Oulu, Finland NOCARC project
Background 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
Outline • 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
Design Flow Space profiling simulation synthesis emulation System exists monitoring workloadanalysis design cosimulation prototyping mappability estimation Function development complexityanalysis estimation capacity estimation mathematicalanalyses performanceanalysis performancesimulation modelling benchmarking System does not exist Resource development
Extremely 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
AoC Design Flow Algorithms exists profiling simulation synthesis emulation Chip exists HW design changes into functionality Algorithm design complexityanalysis Function development feasibility studies mathematicalanalyses modelling System does not exist Resource development
CoDesign Flow profiling simulation synthesis emulation System exists monitoring workloadanalysis cosimulation prototyping SW/HW partitioning mappability estimation Function development capacity estimation mathematicalanalyses modelling System does not exist Resource development
IP 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
Software Design System exists monitoring prototyping SW design Function development performance analysis estimation performancesimulation RTOS services modelling Computer design benchmarking System does not exist Computer exists Resource development
Capacity of Network on Chip Average SoC design 1 million gates 1 billion transistors 250 million gates 1 NoC > 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
“Applications” 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
Application 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 tn+p Parallel processing Real-time processing
Network 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
Network 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
Network on Chip alternatives Memory management DATABASE NOC Memory area Applications
Network on Chip alternatives Parallel processing engine IO
NOC design challenges Physical limits -> Architecture basics -> GALS -> Communication principles Application requirements -> Region concepts -> Heterogenuous resources types -> Multilanguage and method design flows Overall complexity -> Architecture reuse -> Platform type of design flow Overall complexity -> Basic control principles -> System services Manufacturability problems -> Structured approach NoC SoC
Performance Variability Cost Figure 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 Flexibility Modifiability Volume Risk Applicability Coupling Lifetime Cohesion Configurability Manufacturability Programmability Modularity Usability
Basic 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
NOC 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” Code and configuration Optimised Intellectual Property NoC system
Structural layers of NOC System control, product behaviour Product 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
Logical 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
Development 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
Using Design Space for NOC Communication channels Non-configurable hardware NOC System Product differentiation Application mapping Function development Architecturedesign Platform Backbone System Services Operation principles Product area specialisation System does not exist Resource development
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 Applications System Services NOC Platform Chip System Services ASIC Performance SW Thickness of service layers
NOC 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?
NOC 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?
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 Methods & Tools
Conclusions • 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