System Level Design: Orthogonalization of Concerns and Platform- Based Design K. Keutzer, S. Malik, R. Newton, J. Rabaey, and A. Sangiovanni-Vincentelli.

Slides:



Advertisements
Similar presentations
Optimizations for a Simulator Construction System Supporting Reusable Components David A. Penry and David I. August The Liberty Architecture Research Group.
Advertisements

Presented by: Thabet Kacem Spring Outline Contributions Introduction Proposed Approach Related Work Reconception of ADLs XTEAM Tool Chain Discussion.
Addressing the System-on-a-Chip Interconnect Woes Through Communication-Based Design N. Vinay Krishnan EE249 Class Presentation.
Extensible Processors. 2 ASIP Gain performance by:  Specialized hardware for the whole application (ASIC). −  Almost no flexibility. −High cost.  Use.
Behavioral Design Outline –Design Specification –Behavioral Design –Behavioral Specification –Hardware Description Languages –Behavioral Simulation –Behavioral.
Mahapatra-Texas A&M-Fall'001 cosynthesis Introduction to cosynthesis Rabi Mahapatra CPSC498.
1 Platform-Based Design A paper by Alberto Sangiovanni-Vincentelli EE 249, 11/5/2002 Presenter: Mel Tsai.
UCB November 8, 2001 Krishna V Palem Proceler Inc. Customization Using Variable Instruction Sets Krishna V Palem CTO Proceler Inc.
Trend towards Embedded Multiprocessors Popular Examples –Network processors (Intel, Motorola, etc.) –Graphics (NVIDIA) –Gaming (IBM, Sony, and Toshiba)
Describing Syntax and Semantics
5 th Biennial Ptolemy Miniconference Berkeley, CA, May 9, 2003 MESCAL Application Modeling and Mapping: Warpath Andrew Mihal and the MESCAL team UC Berkeley.
Software Issues Derived from Dr. Fawcett’s Slides Phil Pratt-Szeliga Fall 2009.
Introduction to Computer Engineering ECE/CS 252, Fall 2010 Prof. Mikko Lipasti Department of Electrical and Computer Engineering University of Wisconsin.
Copyright Arshi Khan1 System Programming Instructor Arshi Khan.
An Overview of Virtual Machine Architectures by J.E. Smith and Ravi Nair presented by Sebastian Burckhardt University of Pennsylvania CIS 700 – Virtualization.
1 A survey on Reconfigurable Computing for Signal Processing Applications Anne Pratoomtong Spring2002.
(1) Introduction © Sudhakar Yalamanchili, Georgia Institute of Technology, 2006.
1  Staunstrup and Wolf Ed. “Hardware Software codesign: principles and practice”, Kluwer Publication, 1997  Gajski, Vahid, Narayan and Gong, “Specification,
(1) Modeling Digital Systems © Sudhakar Yalamanchili, Georgia Institute of Technology, 2006.
COMPUTER SOFTWARE ALISA RAHMANI PUTRI / VIDIYA RACHMAWATI /
Introduction to Symmetric Multiprocessors Süha TUNA Bilişim Enstitüsü UHeM Yaz Çalıştayı
1 Presenter: Ming-Shiun Yang Sah, A., Balakrishnan, M., Panda, P.R. Design, Automation & Test in Europe Conference & Exhibition, DATE ‘09. A Generic.
- 1 - EE898-HW/SW co-design Hardware/Software Codesign “Finding right combination of HW/SW resulting in the most efficient product meeting the specification”
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 18 Slide 1 Software Reuse.
Software Engineering Muhammad Fahad Khan
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
EECE **** Embedded System Design
Chapter 6 System Engineering - Computer-based system - System engineering process - “Business process” engineering - Product engineering (Source: Pressman,
1 The Architectural Design of FRUIT: A Family of Retargetable User Interface Tools Yi Liu, H. Conrad Cunningham and Hui Xiong Computer & Information Science.
ICOM 5995: Performance Instrumentation and Visualization for High Performance Computer Systems Lecture 7 October 16, 2002 Nayda G. Santiago.
CAD Techniques for IP-Based and System-On-Chip Designs Allen C.-H. Wu Department of Computer Science Tsing Hua University Hsinchu, Taiwan, R.O.C {
Intro to Architecture – Page 1 of 22CSCI 4717 – Computer Architecture CSCI 4717/5717 Computer Architecture Topic: Introduction Reading: Chapter 1.
Introduction CS 3358 Data Structures. What is Computer Science? Computer Science is the study of algorithms, including their  Formal and mathematical.
Compiler BE Panel IDC HPC User Forum April 2009 Don Kretsch Director, Sun Developer Tools Sun Microsystems.
Multi-Core Architectures
SOFTWARE SYSTEMS DEVELOPMENT 4: System Design. Simplified view on software product development process 2 Product Planning System Design Project Planning.
High Performance Embedded Computing © 2007 Elsevier Lecture 3: Design Methodologies Embedded Computing Systems Mikko Lipasti, adapted from M. Schulte Based.
High Performance Embedded Computing © 2007 Elsevier Chapter 1, part 2: Embedded Computing High Performance Embedded Computing Wayne Wolf.
4.2.1 Programming Models Technology drivers – Node count, scale of parallelism within the node – Heterogeneity – Complex memory hierarchies – Failure rates.
A Methodology for Architecture Exploration of heterogeneous Signal Processing Systems Paul Lieverse, Pieter van der Wolf, Ed Deprettere, Kees Vissers.
Reminder Lab 0 Xilinx ISE tutorial Research Send me an if interested Looking for those interested in RC with skills in compilers/languages/synthesis,
David Weiss Software Product-Line Engineering: A Family-Based Software Development Process: Designing The Family David Weiss
© 2012 xtUML.org Bill Chown – Mentor Graphics Model Driven Engineering.
Introduction CS 3358 Data Structures. What is Computer Science? Computer Science is the study of algorithms, including their  Formal and mathematical.
Refining middleware functions for verification purpose Jérôme Hugues Laurent Pautet Fabrice Kordon
Software Engineering Principles. SE Principles Principles are statements describing desirable properties of the product and process.
Processes Introduction to Operating Systems: Module 3.
The Cosmic Cube Charles L. Seitz Presented By: Jason D. Robey 2 APR 03.
6. A PPLICATION MAPPING 6.3 HW/SW partitioning 6.4 Mapping to heterogeneous multi-processors 1 6. Application mapping (part 2)
Presentation by Tom Hummel OverSoC: A Framework for the Exploration of RTOS for RSoC Platforms.
University of Toronto at Scarborough © Kersti Wain-Bantin CSCC40 system architecture 1 after designing to meet functional requirements, design the system.
System-level power analysis and estimation September 20, 2006 Chong-Min Kyung.
MODEL-BASED SOFTWARE ARCHITECTURES.  Models of software are used in an increasing number of projects to handle the complexity of application domains.
A. Frank - P. Weisberg Operating Systems Structure of Operating Systems.
1 Presenter: Min Yu,Lo 2015/12/21 Kumar, S.; Jantsch, A.; Soininen, J.-P.; Forsell, M.; Millberg, M.; Oberg, J.; Tiensyrja, K.; Hemani, A. VLSI, 2002.
Lecture 13.  Failure mode: when team understands requirements but is unable to meet them.  To ensure that you are building the right system Continually.
Chapter 1 Basic Concepts of Operating Systems Introduction Software A program is a sequence of instructions that enables the computer to carry.
Formal Verification. Background Information Formal verification methods based on theorem proving techniques and model­checking –To prove the absence of.
Parallel Computing Presented by Justin Reschke
1 Chapter 2: Operating-System Structures Services Interface provided to users & programmers –System calls (programmer access) –User level access to system.
Heterogeneous Processing KYLE ADAMSKI. Overview What is heterogeneous processing? Why it is necessary Issues with heterogeneity CPU’s vs. GPU’s Heterogeneous.
System-on-Chip Design
Enabling machine learning in embedded systems
Software Design Methodology
Anne Pratoomtong ECE734, Spring2002
Introduction to cosynthesis Rabi Mahapatra CSCE617
Retargetable Model-Based Code Generation in Ptolemy II
An Overview of Virtual Machine Architectures
Introduction to Virtual Machines
Introduction to Virtual Machines
Presentation transcript:

System Level Design: Orthogonalization of Concerns and Platform- Based Design K. Keutzer, S. Malik, R. Newton, J. Rabaey, and A. Sangiovanni-Vincentelli Presented By: David Nguyen

The Cost of System Design Manufacturing Costs The material cost of producing the product The material cost of producing the product Non-Recurring Engineering (NRE) Costs Designing the product Designing the product Ex. Engineers, Testing Equipment Tooling purchases needed for manufacturing Tooling purchases needed for manufacturing Ex. Tools, masks

How to Make Money? TotalCost = #Units*ManufacturingCosts + NRE. Income = #Units * Cost/Unit Success is Income > TotalCost by balancing # Units Produced/Sold # Units Produced/Sold Manufacturing Costs per Unit Manufacturing Costs per Unit Non-Recurring Engineering Costs Non-Recurring Engineering Costs Price we sell at Price we sell at

Problem and Solutions? Problem: Because of increased pressures (ex. time to market, complexity), making money is harder. How can we cope with this? Solution: Platform Based Design – Determine a common “hardware denominator” which can be shared across multiple applications. Reason: The NRE cost is amortized because of the increased number of units (as a result of its use in multiple applications).

System Design Methodology – Orthogonalization of Concerns Orthogonalization of Concerns is the separation of the various aspects of design to allow more effective exploration of alternative solutions. Function and Architecture Function and Architecture Communication and Computation Communication and Computation Functionality and Timing Functionality and Timing

Function Based Design A function is an abstract view of the behavior of an aspect of the system. “display the result” is a function. “display the result” is a function. “display the result on the LCD display” is NOT a function. “display the result on the LCD display” is NOT a function. Functional specification should be defined formally and contain a formal underlying mathematical model – model of computation. This allows us to handle verification via formalism, abstraction, and decomposition. This allows us to handle verification via formalism, abstraction, and decomposition. Formally defined system (with underlying model of computation) gives us the ability to synthesize the functionality. Formally defined system (with underlying model of computation) gives us the ability to synthesize the functionality.

Communication Based Design Edwards Lee says we should be able to use many models of computation in one system. The problem is how do we get all of these different components, with different models of computation, talking to each other? Sol1: Design a communication standard which works for everything (Complex) Sol2: Design a communication method in a case by case fashion. (Easier)

Micro-Architecture Architecture – an interface specification that describes the functionality of an implementation, while being independent of the actual implementations X86 instruction set architecture. X86 instruction set architecture. Micro-Architecture – defines how the architecture functionality is actually realized as a composition of modules and components, along with their associated software Intel Pentium 4, AMD Athlon XP Intel Pentium 4, AMD Athlon XP

Mapping The functions of the system are assigned (mapped) to the components of the micro- architecture. Only after this is done, do notions of cost and performance appear. (How fast can I perform my functions and how much will it cost me?) The result is refined mapped micro-architecture that is guaranteed to meet design constraints or A mapped micro-architecture that signals something cannot be guaranteed. In this case, we need to either change the micro-architecture used, or make changes in the function space.

Link to Implementation Once the mapping of functions to micro- architecture is deemed as feasible, the micro-architecture is then implemented. The hardware and software components can be a special purpose design, or already designed in a current library.

Platform Based Design To reduce design costs, reuse is a must! It is important to find common architectures that can support a variety of applications as well as the future evolution of a given application. Implementing onto a platform should require little effort in comparison to a totally new implementation. Platforms Hardware Hardware Software Software System System

Hardware Platforms A family of micro-architectures that allow the substantial re-use of software Hardware Platforms have two constraints They must be able to support some degree of functionality (minimum speed and memory). They must be able to support some degree of functionality (minimum speed and memory). They must meet production and design costs They must meet production and design costs These two define an application space of supported functionality. Advocates the “meet in the middle” design approach.

Software Platforms To be useful, a hardware platform has to be abstracted at a level where the application software “sees” a high-level interface to the hardware (API). With an API defined, the application software can be re- used for every platform instance. Given the precise definition of the API and the hardware platform, the authors feel like they can synthesize most of the software layer.

System Platforms Combination of the software and hardware platform. ASV Cones Vertex is the API Vertex is the API Application Instance is mapped to the API Application Instance is mapped to the API A Family of micro- architectures implements the APIs with varying costs and performance A Family of micro- architectures implements the APIs with varying costs and performance Tradeoff between level of abstraction and the diversity of the platform instances.

15November 5, 2002David Nguyen Examples Philips VideoTop Digital Video Broadcast System Magneti-Marelli Automotive Engine Control Testing was done on 3 different CPUs, each with two different software partitions. Testing was done on 3 different CPUs, each with two different software partitions. Estimations performed in VCC were accurate to about 11% Estimations performed in VCC were accurate to about 11% BWRC InterCom. Implemented Voice-based protocol stack Implemented Voice-based protocol stack Took about 1,200 lines of C-code Took about 1,200 lines of C-code A “traditional” implementation with Strong-Arm would take about 30,000 lines (including the RTOS) A “traditional” implementation with Strong-Arm would take about 30,000 lines (including the RTOS)

MESCAL Modern Embedded Systems, Compilers, Architectures, and Languages The Goal of MESCAL is to develop methodologies, tools, and appropriate algorithms to support the efficient development of fully programmable, platform-based designs for specific application domains.

MESCAL Assumption General purpose programmable solutions will not be likely to meet aggressive performance and power constraints and useful generality. Domain-specific programmable solutions are required to deliver the benefit of programmability while still delivering acceptable performance. Network/Video Processors vs. General Purpose processors. Network/Video Processors vs. General Purpose processors.

Architecture: Specialized Functional Units Dramatic Speedup in function execution. MESCAL uses IMPACT EPIC (Explicitly Parallel Instruction Computing) architecture class for individual processing units. They can better exploit instruction level parallelism (ILP) This is a powerful mechanism to exploit fine-grained concurrency in a retargetable manner.

Architecture: Multiple Levels of Parallelism Multiple Levels of Parallelism Instruction Level Parallelism is exploited though an explicitly (EPIC) parallel architecture. Instruction Level Parallelism is exploited though an explicitly (EPIC) parallel architecture. Thread/Process level parallelism through heterogeneous processing and networking. Thread/Process level parallelism through heterogeneous processing and networking.

Architecture: Template and Design Methodology There exists design templates which allow for rapid prototyping of networks of processing elements. The design methodology utilizes a classic measurement based feedback design loop.

Programmer’s Model The goal of MESCAL Programmer’s Model is to present the programmer with an abstraction of the architecture while helping the compiler generate efficient code for the new architectural platform. It combines a bottom up and top down approach.

22November 5, 2002David Nguyen MESCAL Compiler The objective of the MESCAL compiler is to develop a highly optimized, retargetable compiler infrastructure that enables a set of interesting source applications to be efficiently mapped into a family of fully programmable architectures and micro-architectures. We would like the compiler to automatically synthesize RTOS components, custom components to improve performance, scheduler, device drivers, memory management routines, and other hardware specific code from the machine description.