Platform-Based Design


 Previous  

 

Next

 Aims | Main Results Documents | Back to the table of contents


 

Main Results

 

 Platform-based Design

 

Various forms of platform-based design have been used for many years. The basic advantages of PBD are as follows:

 

  • It lays the foundation for developing economically feasible design flows because it is a structured methodology that theoretically limits the space of exploration, yet still achieves superior results in the fixed time constraints of the design. A platform is an abstraction layer in the design flow that facilitates a number of possible refinements into a subsequent abstraction layer in the design flow. The design process progresses through a series of platforms and each platform layer defines bounds for what is achievable by mapping into it, while offering faster design and lower risk.

 

  • It provides a formal mechanism to identify the most critical hand-off points in the design chain: the hand-off point between system companies and IC design companies and the one between IC design companies and manufacturing companies represent the articulation points of the overall design process. For instance, semiconductor companies need to minimize risks when designing standardized chips. Hence, they need to have a fairly complete characterization of the application spaces they wish to target together with the associated constraints in terms of affordable costs and performance levels. By the same token, system companies need to have an accurate characterization of the capabilities of the chips in terms of performance such as power consumption, size and timing, as well as “Application Program Interfaces” (APIs) that allow the mapping of their application into the chip at a fairly abstract level. APIs must then support a number of tools to ease the possibly automatic generation of the personalization of the programmable components of the chips.

 

  • It eliminates costly design iterations because it enables derivative design, i.e. the technique of building an application-specific product by assembling and configuring platform components in a rapid and reliable fashion. For instance, a hardware platform is a family of architectures satisfying a set of constraints imposed to allow reuse of hardware and software components. Then, an API platform can be developed to effectively extend the hardware platform toward the application software, thus enabling quick, reliable, derivative design.

 

  • Regarding design as a meeting-in-the-middle process where successive refinements of specifications meet with abstractions of potential implementations.

 

  • The identification of precisely defined layers (platforms), where the refinement and abstraction processes take place. The layers then support designs built upon them, where upper layers are isolated from lower level details but letting enough information transpire about lower levels of abstraction. This is oriented to allow design space exploration with a fairly accurate prediction of the final implementation properties. The information should be incorporated in appropriate parameters that annotate design choices at the present layer of abstraction.

 

An Informal Description of PBD

 

A platform is a library of components together with their composition rules. A design at each level of abstraction is a platform instance, i.e., a legal composition of a set of library elements. The library not only contains computational blocks that carry out the appropriate computation but also communication components that are used to interconnect the functional components. Each element of the library has a characterization in terms of performance parameters together with the functionality it can support. For every platform level, there is a set of methods used to map the upper layers of abstraction into the platform and a set of methods used to estimate performances of lower level abstractions.

 

The meet-in-the-middle process is the combination of two efforts:

 

  • Top-down: map an instance of the top platform with constraints into an instance of the lower platform with appropriate constraints resulting from an appropriate propagation involving budgeting wherever needed;

 

  • Bottom-up: build a platform by defining its components and their performance abstraction (e.g., number of literals for technology independent optimization, and area and propagation delay for a cell in a standard cell library).

 

Establishing the number, location, abstraction and components of intermediate platforms is the essence of platform-based design. The trade-offs involved in the selection of the number and characteristics of platforms relate to the size of the design space to be explored and the accuracy of the estimation of the characteristics of the solution adopted. Naturally, the larger the step across platforms, the more difficult is predicting performance, optimizing at the higher levels of abstraction, and providing a tight lower bound. In fact, the design space for this approach may actually be smaller than the one obtained with smaller steps because it becomes harder to explore meaningful design alternatives and the restriction on search impedes complete design space exploration. Ultimately, predictions/abstractions may be so inaccurate that design optimizations are misguided and the lower bounds are incorrect.

The principles are summarized in Figure 1 where the hour-glass represents the notion of meet-in-the-middle, architectural exploration and platform mapping.

 

 

Figure 1

 

A Formal Interpretation of PBD

 

As we have seen, an essential component of PBD is the successive refinement process that takes from the higher layers of abstractions to the final implementation. The refinement process is interpreted as the concretization of a function in terms of the elements of an architecture. The process of design consists of evaluating the performance of different kinds of architectures by mapping the functionality onto its different elements. The implementation is then chosen on the basis of some cost function. We have cast the successive refinement design flow in a formal framework described in terms of abstract algebra that was introduced in the hybrid modeling chapter. The formal framework allows defining verification methods and synthesis approaches that would otherwise be impossible.

 

PBD for Ad hoc Wireless Sensor Networks (AWSN)

 

The wireless sensor network domain presents several challenging problems, it is characterized by hard real-time constraints, it has to be fault tolerant and design-error free, and it has to react to a nondeterministic adversary environment. Ad hoc wireless sensor networks are designed for environmental monitoring application. We emphasize a PBD methodology that favors re-use at all levels of abstraction. The use of PBD in this context is also useful to define layers of abstraction that can be used to identify standards that enable the use of this fairly new technology.

 

Currently, AWSN designs are rather ad-hoc and tailored to the specific application both in the choice of the network protocols and in the implementation platform. Today, it is virtually impossible to start developing applications without the previous selection of a specific, integrated hardware/software platform. Coupling applications with specific hardware solutions slows down the practical deployment of sensor networks: potential users hesitate to invest in developing applications that are intrinsically bound to specific hardware platforms available today.

 

A Standard for the Development of Implementation Independent Applications

 

To unleash the power of AWSNs, standards are needed that favor:

 

  • The incremental integration of heterogeneous nodes and

  • The development of applications independent of the implementation platforms.

 

To address the first concern, several efforts have been recently launched to standardize communication protocols among sensor network nodes. Realizing that the present efforts are lacking generality and, to a certain degree, rigor, we propose in this paper an approach for the support of true interoperability between different applications as well as between different implementation platforms. We advocate a top-down approach similar to the one adopted very successfully by the Internet community and propose a universal application interface, which allows programmers to develop applications without having to know unnecessary details of the underlying communication platform, such as air interface and network topology. Hence, we define a standard set of services and interface primitives (called the Sensor Network Services Platform or SNSP) to be made available to an application programmer independently on their implementation on any present and future sensor network platform. Furthermore, we separate the virtual platform defined by the logical specification of the SNSP services from the physical platform (called the Sensor Network Implementation Platform or SNIP) that implements it and determines the quality and cost of the services.

 

As the definition of sockets in the Internet has made the use of communication services independent of the underlying protocol stack, communication medium and even operating system, the application interface we propose identifies an abstraction that is offered to any sensor network application and supported by any sensor network platform. Yet, while similar in concept, the application interface needed for sensor networks is fundamentally different from the one defined in the Internet space. In the latter, a seamless set-up, use, and removal of reliable end-to- end communication links between applications at remote locations are the primary concern. On the other hand, sensor network applications require communication services to support queries and commands among the three essential components of the network (sensor, monitor/controller, and actuator), and need also other services for resource management, time synchronization, locationing and dynamic network management.

 

The Design Flow

 

A specification can be loosely defined as a description of a system. It may be informal and consist of just a few graphical sketches or sentences in natural language, or be formally described using a language with formal semantics. The design of a system consists of a sequence of steps, in which new details are gradually introduced until the physical implementation. Each step identifies a specification at a different level of abstraction. At the most abstract levels, a specification defines the functionality of the system as a whole, at more refined levels, it usually consists of a network of distinct components interacting and cooperating to realize a required collective behavior.

 

The behavior of a system is defined by the sequences of actions that it takes as a response to input stimuli from its environment. Actions are the elementary units of behavior that make the system evolve from one state to another. Actions can be of several types: computation (perform arithmetic operations), control (select the next action to be taken), read/write (read or modify variables). Embedded systems specifications, especially in networking and multimedia applications, are heterogeneous and include a mix of different types of actions. Two actions whose order of execution is not specified are said to be concurrent, as they may occur in any order or at the same time. They are said to be in conflict, if either one is executed as a result of a control decision. They are causally ordered, if one is always executed before the other. Distributed system specifications usually consist of sequential objects that run concurrently and communicate through other objects called channels storing the messages they exchange.

 

A specification is usually associated with a set of constraints that are expressions on quantities that are not defined in the present specification yet, but will be defined after further implementation steps. In other words, constraints define properties that must be satisfied by valid implementations of a given specification. For example, bounds on the communication delay are usually given at the beginning of the design process, but quantities such as time and power are defined only after an implementation architecture is selected (e.g. choosing the processor that runs the software tasks defines the reaction time of an embedded system implementation).

 

In a distributed system specification, the network supporting the communication among components is one of the major factors of complexity. The initial network specification is defined by the behavior of the interacting components and is associated with cost and performance requirements. As the design proceeds, the network specification is successively refined: the structure is described in terms of the topology (nodes and links), the behavior in terms of the protocols that rule the exchange of messages among components. Protocol specifications include several types of actions that are either in sequence (“send an acknowledgment after receiving the packet”), or in conflict (“forward packet to upper layer if correct otherwise discard it“), or concurrent (“write to multiple channels”). Constraints on protocol implementations usually concern QoS parameters such as error rate, throughput, maximum delay, and duration of a service. The types of actions in a protocol specification and the type of constraints drive the choice of the physical resources that define the physical implementation. Protocols can be fully implemented in HW, in SW, or as a mix of the two. HW is the preferred choice for protocols with tight power and real-time requirements. SW implementations are chosen when mostly flexibility matters and timing and power issues are not so critical. Therefore, protocols are usually implemented partially as software tasks running on a processor and partially as Application Specific Integrated Circuits (ASICs) and Field Programmable Gate Arrays (FPGAs).

 

Communication networks are commonly designed decomposing the problem into a stack of layers following the OSI reference model. Each protocol layer with the underlying channels defines a platform that provides communication services to the upper layers and, at the top of the stack, to the application-level components. There is an ongoing debate about the use of the OSI protocol stack since its layering structure is standard and application-independent, therefore, rather inefficient to use in those applications where optimization is of paramount importance such as wireless sensor networks.

 

Our approach is to leverage the idea of layering the protocol stack in the design of wireless sensor network as in the OSI model but not to fix a priori the layers themselves. By allowing the freedom of choice in the layer structure, we aim to optimize along criteria such as power consumption, reliability and response time since the applications of wireless sensor networks depend critically on these quantities. As a result, the protocol stack architecture includes only the layers that are relevant for the target application and the protocol functions, rather than being assigned a priori to specific layers, are introduced in the position where the services they offer are required.

 

To implement an AWSN networks, the functionality is mapped onto a Network Platform (NP) that consists of a set of processing and storage elements (nodes) and physical media (channels) carrying all the messages exchanged by nodes. Nodes and channels are the architecture resources in the NP library and can be identified to a first extent by some parameters like processing power and storage size for nodes, and bandwidth, delay and error rate and for channels. Usually, according to PBD, choosing a Network Platform requires selecting from its library an appropriate set of resources and a network topology: for each parameter a broad range of options is usually available. Therefore, the design space to be explored is very wide. Moreover, choosing an NP is especially challenging for distributed wireless networks, because of the inherent lossy nature of the physical channels that connect the nodes. In these cases, when reliable communication is required, like in our system target, it is necessary to introduce additional resources (that is, reliable acknowledgement protocols) to overcome the effects of noise and interference. However, introducing reliable and complex protocols requires adding more processing power and more memory capabilities in the nodes. As a result, the protocol constraints often dominate the implementation cost function and the design effort. Therefore, in selecting an NP, we balance the cost of all different components and trade between the use of complex protocols and the adoption of more reliable physical or logical wired/wireless channels.

 

Automotive Control

 

An automotive engine control unit is a reactive real-time embedded system, since it is designed to control the behavior of a physical system (namely, the engine) with tight timing constraints. Reactive real-time embedded systems, referred to as embedded controllers also, are the most challenging embedded systems to design.

 

In the standard approach to embedded controller design, a serious problem is the present disregard for the interaction of the control algorithms with their implementation. This neglect leads to long re-design cycles when the timing and accuracy requirements of the applications are not met. The proposed design methodology is based on the principles of platform-based design. To illustrate the use of the methodology, we consider the design of engine control units (ECUs) for motorcycles, which is particularly suited for this approach due to the very tight cost constraints and the complexity of the functionalities to be implemented. Motorcycle embedded controllers are quite simpler than engine control units for cars. Considerably complex devices such as electronic throttle valve control and cruise control, are not adopted in motorcycles. However, motorcycle ECUs present all the tight interactions with the plant that are present in car applications and that make the design of ECUs very challenging. We focus on the upper three layers of PBD, namely, the functional decomposition layer, the control strategies layer and the implementation abstraction layer (which is the first layer where implementation details are considered in the design flow). The importance of these platform layers derives from the fact that most of the critical design choices are taken in the early stages of the design flow and misconceptions in these stages produce costly and time-consuming re-design cycles. These are crucial steps in the process since the functional aspects of the design and the implementation characteristics are both handled. The following steps are somewhat easier to carry out since they take place in the implementation domain where abstractions are easier to identify correctly. Hybrid system techniques are extensively used to evaluate the behavior of the system at each layer. Figure

 

 

Figure 1 The design flow

 

Figure 2 shows a detail view of the last step in the automotive design flow. The set of possible algorithmic solutions are pruned to find the best match with the implementation platform. This goal is achieved by adding non functional platform effects, captured by implementation abstract models, to the control algorithms. The control algorithms are allocated to the hardware and software architecture. The latter requires the definition of a set of software tasks and/or processes, the selection of the real-time operating system and the selection of the CPU. In the automotive domain, a process is a software implementation of a control algorithm that is statically scheduled inside a task.  In case of a distributed implementation, the control algorithms are allocated to several ECUs and the communicating signals must be mapped to the network packets (called messages). After the allocation, the scheduling of the tasks and messages must be carried out.

 

Figure  2  Detailed control algorithms implementation design step

 

The effects of these choices are taken into accounts by the abstract implementation models that allow the verification of the specification and the evaluation of the cost (or flexibility) function. After the allocation and scheduling, the control algorithms mapped to software can be synthesized to generate the relative software components. The verification of this step is typically performed with the zero time assumption: the software execution takes always zero time. There have been several attempts to model and simulate functional and non functional aspects. The Metropolis project has been already mentioned as the most advance design environment supporting separate specifications of the functionality, the platform model and then the mapping of the former into the latter.

 

The potential impact of platform based design on the automotive domain, the most mature of the applications considered in the COLUMBUS project, is also discussed in the brief report “Impact of platform-based design methodology in Magneti Marelli Powertrain design flow”, prepared by Walter Nesci of Magneti-Marelli, one of the industrial teams that collaborated in the COLUMBUS project.

 

 

  Electrical Motors

 

An appropriate subset of the layers of abstraction used for the automotive application can also be used for the design of electric drives. The essential gain in this domain is the possibility of designing for non idealities of the computing platform at the functional level thus allowing for early detection of errors and short time-to-market while satisfying tight performance constraints. The goal of our research activity is applying concepts of the PBD methodology to electrical drives controllers design with particular attention to speed and efficiency of the function-to-implementation design process.

 

Electric motors are widely adopted in all those applications where electrical power has to be converted into mechanical power and vice versa. In recent years we witnessed a complex evolution regarding the employment of digitally controlled electrical drives within industrial and consumer applications. From a technological point of view, almost all the classical solutions employing direct current motors have been replaced by those making use of digitally controlled alternating current motors. The introduction of various vector-controlled drives has allowed the dynamic performance of a.c. drives to match or sometimes even to surpass that of the d.c. drive. By using vector control, in fact, it is possible to control separately the flux and torque producing components of the supply current.

 

Digitally controlled drives have spread very fast to the industrial world. Starting from the classical application fields where the velocity control is needed (tooling machines, robotics, rolling-mills, etc.), the employment of electrical drives is also extending to applications where the velocity control is optional, the reason of that being energy saving characteristics (pumps, fans, compressors, etc.) or better performance requirements (such as hanging loads movement). Nowadays, on the contrary, we witness a fast growth in the use of electrical drives in consumer and domestic fields. Just think about cooling and conditioning applications, both for domestic and commercial use. Several different applications can be mentioned, such as washing machines, elevators, portable tools. Furthermore, in domestic applications, the present and future needs for new control strategies, smarter diagnosis features and the possibility for remote interaction among different appliances (domotics), ask for the presence of on-board intelligent (programmable) systems, such as microprocessor systems. Their presence can also be effectively exploited for the control of the electrical drive itself to satisfy important system requirements such as: high energy efficiency and performance, cost effectiveness and comfort. Among the emerging applications of digitally controlled electrical drives we can mention the automotive area, where a lot of drives are employed on-board for widespread tasks. The economical relevance of such phenomenon is very important, because they represent wider markets than industrial ones.

 

By analysing the general aspect of such different and spread applications, there are essentially three types of motors: induction motors, permanent magnet synchronous motors (both brushless a.c. and d.c.) and reluctance motors. These solutions allow meeting the requirements for automation and integration of the drive system when controlled by means of dedicated digital devices (microprocessors, digital signal processors, etc.) and specific control algorithms, as a function of both the adopted motor and the specific application.

 

The development of digital control techniques for electrical drives and power converters provides the possibility of carrying out flexible control systems that can be easily adapted to different applications with as little modifications as possible or varying only the software. At the moment, there are no ultimate solutions to achieve the described potentiality. Then, even if there is room for innovative proposals, a considerable design effort is necessary to characterise the most convenient choices and to attain a valid and cost effective product within reasonably short times.

 

In this sense, it would be of great interest to leverage both hardware and software design methodologies and tools for electrical drives that, starting from the specifications of the actual application, would allow design and performance verification, both on a simulation environment and on the actual system, with the lowest impact regarding development and prototyping times. In fact, due to competition and customer’s demand, the market for electrical drive systems forces suppliers of control units to shorten development times while at the same time improving system performance. This requires fast implementation of modern and sophisticated control algorithms in the drive system. As short time-to-market is essential, developing new control methods on the embedded control system would be too inefficient and time-consuming.

 

The solution to this quandary in our opinion is applying control design and simulation software with a seamless transition to a real-time test environment. Moreover the two opposite demands for high performance and cost reduction of drive systems ask for a complete functional analysis of hardware/software partitioning and integration also in the earlier steps of the design cycle.

 

In this sense Platform-Based-Design represent an essential component for design organisation and partitioning. The recursive nature of that methodology allows dealing with the design task at different levels of refinement, both for the hardware and software design process.

 

As far as the definition of the hardware architecture is concerned, the essence of the problem is the choice of the systems requirements for the development of a flexible platform for the control of electrical drives, with particular attention to the hardware/software integration and partitioning of the functions to be implemented. The obtained results in terms of design tools and methodologies could then be adopted for each specific case aiming at reducing the global design and development time, thus allowing cost reduction and reliability improvements.

 

As far as the definition of the software architecture, the reduction of the design cycle and the prototyping times could be obtained by the definition of an electrical drive simulation package, including a library of the optimised dynamical models of the overall drive system. The simulation platform should also be designed in order to allow control system design and including the target-system code generation feature.

 

The PBD methodology is applied to the development of sensor-less high-performance control algorithm for interior permanent magnet synchronous motors. Sensor-less control represents in fact the future of electrical drives, involving complex control techniques that require high computational burden and hardware/software interaction representing a particularly important and challenging research topic.

 

 

 

 Previous  

 

Next

 Aims | Main Results Documents | Back to the table of contents