System Level Design: Orthogonalization of Concerns and PlatformBased 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 Non-Recurring Engineering (NRE) Costs Designing the product Ex. Engineers, Testing Equipment 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 Manufacturing Costs per Unit Non-Recurring Engineering Costs 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 Communication and Computation 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 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. 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. 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 Mapping The functions of the system are assigned (mapped) to the components of the microarchitecture. 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 microarchitecture 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 Software 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 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 reused 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 Application Instance is mapped to the API A Family of microarchitectures implements the APIs with varying costs and performance Tradeoff between level of abstraction and the diversity of the platform instances. 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. Estimations performed in VCC were accurate to about 11% BWRC InterCom. Implemented Voice-based protocol stack Took about 1,200 lines of C-code A “traditional” implementation with Strong-Arm would take about 30,000 lines (including the RTOS) November 5, 2002 David Nguyen 15 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. 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. 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. 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. November 5, 2002 David Nguyen 22