Automatic Generation of Interprocess Communication in the PARAGON System

Size: px
Start display at page:

Download "Automatic Generation of Interprocess Communication in the PARAGON System"

Transcription

1 Automatic Generation of Interprocess Communication in the PARAGON System Xun Xiong 1, Peter Gutberlet 1, Wolfgang Rosenstiel 2 1 Forschungszentrum Informatik (FZI), Haid-und-Neu-Straße 10-14, D Karlsruhe, Germany 2 FZI and University of Tübingen, Sand 13, D Tübingen, Germany Abstract PARAGON provides a platform for hardware-software partitioning for systems specified in the C++ language. In this paper, we are going to introduce PARAGON emphasizing how the synchronization and communication among the used processors are built during and after the partitioning. The partitioned specification consists of multiprocessors communicating with abstract methods. It is a C++ specification with the processors encapsulated in processor classes. Built-in communication is modelled by predefined communication class objects. It can be compiled directly and thus makes it easy to execute a simulation. Finally, it is well-suited to further processing by standard processors and hardware synthesis systems. 1. Introduction PARAGON is intended to serve as a hardware-software codesign platform for rapid prototyping. Like any other codesign methodology [5][6], it is directed at combining the advantages of both hardware and software solutions to deal with increasingly complex design tasks, which have high performance demands on one hand and strict design constraints on the other hand. The key part of PARAGON is automatic partitioning which is crucial for the final success of the design. The partitioning algorithm in PARAGON is partially based on our UNITY approach [1][2], but considerable enhancement is made. Also, its partitioning granularity is at a much higher level. The UNITY partitioning system explores a wide range of design space resulting from the analysis of different design implementation alternatives.. This work has been partially supported by the Bundesministerium für Bildung, Wissenschaft, Forschung und Technologie (BMFT) under project 01M2897A (SYDIS). However, it has several restrictions which make it inappropriate for specifying complex systems. Communication is another key word for the HW-SW codesign[3][4] but it is not sufficiently addressed. There is few work reporting on automatic generation of needed synchronization and communication based upon exhaustive analysis of specification language. Even less work can be found about a direct simulation of automatically generated communication. In this paper, we introduce a simple and efficient approach to establish synchronization and communication in our partitioning environment. 2. An Introduction to the PARAGON System PARAGON stands for C/C++ Partitioning with automatically generated interprocess communication. Starting with a system specification in the C++ language, it first uses its C++-frontend to transform the given C++ specification into a system intermediate representation (SIR) [11][12]. The pre-defined communication library, with the communication units modelled as communication classes, is also read into SIR by the C++-frontend. SIR format provides a streamlined CDFG data structure and is used as the exchange format around which all other tools are centered. While maintaining all of the design information contained in the input language, a CDFG flow graph further makes the information about data and control dependencies in the specification available. This information is vital for the subsequent partitioning process. After partitioning, needed synchronization and communication have to be built. They must be inserted in the correct positions and at the right time. The generated SIR represents the partitioned system with communicating processors. It can be processed by the C++-backend to generate a partitioned system which is wholly described in C++ code. It can then be directly compiled and executed for the simulation s purpose. The hardware partitions of the partitioned SIR can be processed by the VHDL-backend which is available within the CASTLE system [11].

2 The generated VHDL output can then be handed over to further synthesis systems (figure 1) like for example our high-level system CADDY [8] and the communication synthesis system SYMPATHY [7] which is also developed in our institute. C++ System Specification Partitioning Parser (C++-Frontend) Generation of Interprocess Communica- Generator (C++-Backend) Compilation Simulation C++ Code Communication Synthesis Integration Communication Library SIR Generator (VHDL Backend) VHDL Code Figure 1: Overview of PARAGON 2.1. Generation of Flow Graph for C++ P A R A G O N High-Level Synthesis SIR stands for system intermediate representation [12]. It allows system specifications to be represented at different levels of abstraction (such as combined control and data flow graphs, hierarchical netlists as well as state transition graphs) to cover a wide spectrum of specification languages and applications. In addition to flow graph representation of specification languages, SIR further provides a standardized way of manipulating and processing these flow graphs. All the tools within PARAGON interact via SIR. This permits uncomplicated manipulation, transformation or synthesis of the representation without having to directly deal with the individual special specification language. The C++-frontend together with the C++-backend build the interface between the C++ language and the SIR graph. The C++-frontend parses C++ code with a parser based on a C++ bison grammar and transforms it into a SIR graph. Inversely, the C++-backend generates the text of the specification language from a given SIR representation. In addition to the complete ANSI-C language set, the current C++-frontend supports most important C++ syntax such as: accessibility with regards to data and methods within the class hierarchy, function and operator overloading, multi-inheritance, and representation of constructor and destructor. The resulting SIR contains all information specified in the input language, which is much easier to handle and extract than in the original specification Introduction to the Partitioning Algorithm Partitioning plays an essential role in the PARAGON system. Since our focal point in this paper is the communication, we only give a brief introduction to our partitioning algorithm. Setup of the Closeness Matrix Evaluation of the Partitioning Classification SIR Design Constraints Clustering Figure 2: Partitioning with clustering algorithm The partitioning process starts with the classification of the system (which is actually the SIR graph generated by the C++-frontend from the input specification) by identifying the parts which could be characterized as CPU-intensive, I/O-intensive, control-intensive, or mixed type respectively. The information used for the characterization can be directly extracted from the SIR representation. The next step is to determine the similarities among the partitioning units. The term similarity refers to two partitioning units that have common or closely related properties and therefore may possibly be kept close to each other during the course of partitioning. Accordingly, a distance between them is defined to measure the extent of similarity. Parts with similar characterization, common global data and variables, similar degree of parallelism, same class derivation or at the same level of the syntax tree hierarchy are, for example, said to be closer to each other. Such parts are more likely to be assigned to the same processor to reduce synchronization and communication costs. Other features such as the number of common communication channels, number of calls (for methods and procedures as partitioning units) are also considered as. Depending on the granularity we chose, these could be procedures, methods, classes, compound statements, statements or assignments.

3 important criteria for measuring the extent of similarity. This step results in a closeness matrix with which a corresponding cluster tree can be built. A clustering algorithm partially based on the one in [2] can be applied to track down the best cutline of the cluster tree in order to obtain the initial partitioning. The resulting partitioning must then be evaluated to see if the design constraints are met. For this purpose, tools for evaluation and performance estimation are used. For partitions which are assigned to standard processors, the performance estimation tool from [12] is used. The area and delay costs for the hardware partitions are obtained by our high-level synthesis system[8]. Finally, the communication and synchronization costs are estimated by the communication synthesis tool reported in [7]. 3.Establishment of the Communication The partitioning produces a SIR-graph, which contains the specification of the processors with built-in synchronization and communication. In PARAGON, the processors are encapsulated as C++ classes. In the processor class, local variables are represented by private data and global data is modelled through explicit communication Modelling of the Communication In the final system implementation, the communication is realized as special hardware components such as global memory, interrupt-channels and connection channels. To give the following communication synthesis more flexibility for optimization, the modelling should be kept at an high abstract level. Next, we demonstrate how we use C++ classes to model the different communication types. class channel channel(int block_size); send(void *data); //sends data of block_size rcv(void *data); //receives data, and waits if data is unready }; class global_var global_var(int block_size); write(void *data); // writes data to the memory read(void *data); // reads current memory value }; class global_ram global_ram(int block_size); write(int addr, void *data); read(int addr, void *data); Figure 3: The communication library We have defined three types of communication objects: channel, global_var and global_ram. Each type has a specific application with specific methods (figure 3). The class channel is responsible for data transfer between different processors and has explicit synchronization. Its methods send and rcv are always called in pairs: if the method rcv is called for a channel, it blocks until data is received via this channel. The data sent to the channel actually comes from the corresponding send call from some other processor. The classes global_var and global_ram differ only in the addressing scheme. The method write writes data to the memory and read always reads the actual value of the memory. read and write can occur in any order and there is no wait involved with them. For this reason, the method calls of global_var and global_ram may be accompanied by additional channel method calls for the synchronization s purpose. The class channel is used when directions for the communication can be determined directly from the specification, for example when parameters are passed to a function call whereby the calling function and the called function are from different partitions. If a direct producer-consumer relationship cannot be detected while dealing with global variables, for example when different processors read and write a global variable in irregular order, global_var and global_ram can be used Modelling of the Global System Structure The whole system can be seen as a group of communicating processors with abstract methods of the communication classes, as illustrated in the example below. RAM CH1 Target Architecture P1 P2 P3 P3 GV1 CH2 Figure 4: The global system structure The system consists of 3 processors: P1, P2 and P3, which communicate with each other via a global RAM RAM1, a global variable GV1 and two data channels CH1 and CH2. To describe this structure in C++, each processor is encapsulated in a class which mainly contains the specification parts assigned to this processor. Local Variables are represented as private data of the processor. Procedures assigned to the processor become its methods. The description of the whole system consists of the global declaration of instances of all necessary communication classes as well as the individual processor classes.

4 3.3. Simulation The recommended system modelling provides the possibility of describing the partitioned specification and its necessary communication connections in such a way, that its semantics can be easily understood by subsequent synthesis systems. As pointed before, the partitioned C++ specification can be compiled and executed for the purpose of simulation. To simulate the communication, we make use of the pipe mechanism of the UNIX interprocess communication in order to implement the three communication classes. To simulate each processor, a pair of pipes are created and a UNIX process is split through the UNIX system call fork. The forked process executes one partition, while the original process continues until enough processes for all partitions are forked. Finally, the original process plays the role as the communication server. This results in the following process organization: Communication Process P1 P2 P3 Figure 5: The process communication in the simulation The UNIX processes which execute partitions do not have to communicate with each other directly: they only communicate with the communication server (figure 5). This largely reduces the amount of needed connections. The communication process shares the global data and the global state of each channel. The processes which execute partitions may read, write or manipulate the global data with the given methods of the communication classes Automatic Generation of the Communication As was previously stated, the partitioning is done in SIR instead of the original input language. Before the partitioning takes place, some transformations are first undertaken to simplify the SIR graph in order to make it more suited for the subsequent partitioning as well as the communication construction. An example of such a transformation is the extraction of complex expressions which are passed as parameters to function calls. This transformation splits a function call into several simpler expressions. A processor class may contain information about the processor regarding price, characteristics and performances of the microprocessor and the micro-controller, power consumption, area, pin number etc. It is formed and completed progressively as the partitioning process advances. When a procedure is assigned to a processor class, it becomes a method of this class. After the procedures are assigned to the given processor classes, communication and synchronization are established. For each processor class, we construct an additional method main that is responsible for the selection of the correct function call. It mainly contains an endless while-loop. The first statement within the loop is a call of the channel method rcv which waits for the data that contains the name of the function to be called. A switch-statement then selects the correct function call. The parameter channels wait for the values of the parameter data. As soon as the data has arrived, the function is called at once and the result of the function call is sent back. After the main method is built, we go through all methods (with each method matching a partition) of each existing processor class. Each time we come across a function call whereby the function is assigned to another processor, the data is sent to that processor whose main method selects the correct function. The data sent out contains the function name and the parameter values. After the data is sent out, the process is stopped by calling the channel method rcv until the expected data is received. The code in figure 7 illustrates this procedure. The technique presented above is only suitable for passing non-pointer parameters. For common access to global data or the exchange of pointer data, the communication class global_var is used instead Optimization of the Parallelism The synchronization thus established is still so strict that a real parallelism between the processors is not yet possible. Real parallelism can, however, be achieved by reorganization of the synchronization. The first improvement of parallelism can be reached by shifting the communication calls without changing the order of the calls, so that communication can take place as early as possible. int a = a1*a2; int b = b1*b2; P2_mode.send(P2:call_ ggt_z2.send(b); int x; ggt_r.rcv(x); return a*b/x; P2_mode.send(P2:call_ int a = a1*a2; int b = b1*b2; ggt_z1.send(b); int z = a*b; inx x; ggt_r.rcv(x); return z/x; Figure 6: Shift the order of the communication calls

5 int gcd(int i1, int i2) int a = i1; int b = i2; while (b!= 0) if (a > b) a -= b; main() int n, m; scanf( %d%d, &n,&m); printf( the result is %d\n, gcd(n, m)); } Proc 2 Proc 1 /* Created by sir2c++ on Fri Jan : 48 : */ #include Part_.h int proc2::gcd(int i1, int i2) int a = i1; int b = i2; while (b!= 0) } int proc2::main() while (1) enum _curcallcode_on_proc2_ callcode; CH_for_callcode_on_proc2.rcv(((int *) (&callcode))); switch (callcode) case _call_gcd_: int i2; int i1; CH_for_i1_of_gcd_on_proc2.rcv((&i1)); CH_for_i2_of_gcd_on_proc2.rcv((&i2)); CH_for_gcd_on_proc2.send(gcd(i1, i2)); int proc1::main() int n, m; int _gcd_; scanf( %d%d, &n, &m); CH_for_callcode_on_proc2.send(((int) proc2::_call_gcd_)); CH_for_i1_of_gcd_on_proc2.send(n); CH_for_i2_of_gcd_on_proc2.send(m); CH_for_gcd_on_proc2.rcv((&_gcd_)); printf( the result is %d\n, _gcd_); } Figure 7: The original and partitioned codes for the gcd example This type of optimization can be carried out locally in the processor. However, special care has to be taken to prevent deadlocks and synchronization errors. The second improvement to parallelism changes the order of the communication calls. This is effective when several function calls are in a row and the functions are all assigned to different processors. The idea is to change the order of the communication calls send, placing them early on in the execution order, so that function calls on different processors can occur simultaneously. P2_mode.send(P2::call_ ggt_z2.send(b); int x; ggt_r.rcv(x); glob_x.write(x); P3_mode.send(P3::call_ kgv); kgv_z1.send(a); kgv_z2.send(b); int y; kgv_r.rcv(y); return x*y; Figure 8: Change the order of the communication calls The optimization of parallelism in the second stage requires global analysis of the interprocess communication and it can be modelled as scheduling problem. 4. Results We have tried several benchmarks to experiment with our approach. In the table 1, we presented the mill_rab example with different partitioning alternatives. The mill_rab algorithm is used to detect whether a given natural number is a prime number. The program code consists of five procedures. Table 1 lists 6 different partitioning possibilities and some of their relevant data. # of comm class obj. P2_mode.send(P2::call_ P3_mode.send(P3::call_ kgv); kgv_z1.send(a); ggt_z2.send(b); kgv_z2.send(b); int x; ggt_r.rcv(x); glob_x.write(x); int y; kgv_r.rcv(y); return x*y; CPU part. & comm CPU C++ FE PA loc SIR size # orig K 1.87 s 3.70 s code part K 5 20 pt K s 3.78 s pt K s 4.39 s pt K s 3.17 s pt K s 4.22 s pt K s 3.43 s Table 1: The mill_rab example CPU C++ BE It can be observed that the number of necessary communication instances increases with the number of the par-. PA = partitioning alternatives; # in column 4 = # of the resulting partitions. FE = (C++-)frondend; BE = (C++-)backend.

6 titioning in most cases (exception: partition 2.1 and partition 3 ). It can further be observed that well selected partitioning can largely reduce the number of needed channels (partition 4.2 and partition 4.1 both have 2 partitions, the former needs however only 9 communication channels in comparison to 14 of the latter). 5. Summary In this paper, we gave an overview of our HW/SW codesign system PARAGON. Furthermore, we briefly introduced our partitioning algorithm based on a flow graph representation generated from the C++ input language. We also presented a methodology to capture and construct the interprocess communication for the partitioned system. Two possibilities to improve the parallelism with and without modification of the order of the communication calls were discussed with examples. The direct partitioning result was a kind of multiprocessing C++ specification whose processors were encapsulated as classes and whose synchronization and communication were modelled as method calls of pre-defined communication class objects. Together with the library for the communication class definitions, the partitioned C++ specification was able to be directly compiled and executed for the purpose of simulation. The partitioned C++ code was also well-suited for further processing by hardware and communication synthesis systems. [7] J. Müller, R. Kumar, Optimizing the Communication Overheads during the Allocation of Global Memories and Busses, Logic and Architecture Synthesis: state of the art and novel approaches, Chapman & Hall, June 1995 [8] P. Gutberlet, W. Rosenstiel, Specification of Interface Components for Synchronous Data Paths, Proc. International Symposium on High-Level Synthesis, 1994 [9] P. Gutberlet, X. Xiong, Hardware/Software Partitioning with C++, Proc. the 2nd SYDIS-Workshop in the GMD, Bonn, 1994 [10] B. Stroustrup, The C++ Programming Language, the 2 nd edition, Eddison-Wesley 1991 [11] Markus Theissinger, Paul Stravers, Holger Veit, Castle: An Interactive Environment for HW-SW Co-Design, Third International Workshop on Hardware/Software Codesign, Grenoble, September 1994, pp [12] 6. References [1] E. Barros, Hardware/Software Partitioning using UNITY, Ph.D thesis 1993, University Tübingen [2] E. Barros, W. Rosenstiel, X. Xiong, A Method for Partitioning UNITY Language in Hardware and Software, Proc. EURODAC, Grenoble, September, 1994, pp [3] K. O Brien, T. B. Ismail, A. A. Jerraya, A Flexible Communication Modelling Paradigm ForSystem-Level Synthesis, Handouts of CODES 93, Cambridge, Massachusetts, October 1993 [4] R. Ernst, Th. Benner, Communication, Constraints and User Directive in COSYMA, Poster session of CODES 94, Grenoble, Sept [5] R. Ernst, J. Henkel, T. Brenner, Hardware-Software Cosynthesis for Microcontrollers, IEEE Design & Test of Computers, Vol. 10, No. 4, December 1993, pp [6] R. Gupta, G. De Micheli, Hardware-Software Cosythesis for Digital Systems, IEEE Design & Test of Computers, Vol. 10, No. 4, December 1993, pp

The Design of Mixed Hardware/Software Systems

The Design of Mixed Hardware/Software Systems The Design of Mixed Hardware/Software Systems Jay K. Adams Synopsys, Inc. 700 East Middlefield Road Mountain View, CA 94043 jka@synopsys.com Donald E. Thomas Deptartment of Electrical and Computer Engineering

More information

Scalable Performance Scheduling for Hardware-Software Cosynthesis

Scalable Performance Scheduling for Hardware-Software Cosynthesis Scalable Performance Scheduling for Hardware-Software Cosynthesis Thomas Benner, Rolf Ernst and Achim Österling Institut für Datenverarbeitungsanlagen Hans-Sommer-Str. 66 D 38106 Braunschweig, Germany

More information

HW/SW Co-design. Design of Embedded Systems Jaap Hofstede Version 3, September 1999

HW/SW Co-design. Design of Embedded Systems Jaap Hofstede Version 3, September 1999 HW/SW Co-design Design of Embedded Systems Jaap Hofstede Version 3, September 1999 Embedded system Embedded Systems is a computer system (combination of hardware and software) is part of a larger system

More information

Hardware/Software Partitioning and Minimizing Memory Interface Traffic

Hardware/Software Partitioning and Minimizing Memory Interface Traffic Hardware/Software Partitioning and Minimizing Memory Interface Traffic Axel Jantsch, Peeter Ellervee, Johnny Öberg, Ahmed Hemani and Hannu Tenhunen Electronic System Design Laboratory, Royal Institute

More information

Design Space Exploration for Hardware/Software Codesign of Multiprocessor Systems

Design Space Exploration for Hardware/Software Codesign of Multiprocessor Systems Design Space Exploration for Hardware/Software Codesign of Multiprocessor Systems A. Baghdadi, N-E. Zergainoh, W. Cesario, T. Roudier, A.A. Jerraya TIMA Laboratory - Grenoble France Arexsys, R&D - Meylan

More information

A Unified Model for Co-simulation and Co-synthesis of Mixed Hardware/Software Systems

A Unified Model for Co-simulation and Co-synthesis of Mixed Hardware/Software Systems A Unified Model for Co-simulation and Co-synthesis of Mixed Hardware/Software Systems C. A. Valderrama 1 A. Changuel P.V. Raghavan M. Abid 2 T. Ben Ismail A. A. Jerraya TIMA / INPG, System-Level Synthesis

More information

Profiling in the ASP Codesign Environment

Profiling in the ASP Codesign Environment Profiling in the ASP Codesign Environment Matthew F. Parkinson and Sri Parameswaran Department of Electrical and Computer Engineering University of Queensland, St. Lucia 72 Brisbane, Queensland, Australia

More information

THE EUROPEAN DESIGN AND TEST CONFERENCE 1995 Paris,France 6-9 March 1995

THE EUROPEAN DESIGN AND TEST CONFERENCE 1995 Paris,France 6-9 March 1995 THE EUROPEAN DESIGN AND TEST CONFERENCE 1995 Paris,France 6-9 March 1995 A UNIFIED MODEL FOR CO-SIMULATION AND CO-SYNTHESIS OF MIXED HARDWARE/SOFTWARE SYSTEMS Authors: C. A. Valderrama, A. Changuel, P.V.

More information

Interface Specification and Synthesis for VHDL Processes *

Interface Specification and Synthesis for VHDL Processes * Interface Specification and Synthesis for VHDL Processes * P. Gutberlet W. Rosenstiel 1 Forschungszentrum Informatik (FZI) Haid-und-Neu-Str. 10-14, D-76131 Karlsruhe, Germany 1 FZI and University of Tübingen

More information

Cosimulation of Real-Time Control Systems

Cosimulation of Real-Time Control Systems Cosimulation of Real-Time Control Systems Juha-Pekka Soininen, Tuomo Huttunen, Kari Tiensyrjä and Hannu Heusala VTT Electronics, Oulu, Finland Abstract The behaviour of a real-time system can be validated

More information

SpecC Methodology for High-Level Modeling

SpecC Methodology for High-Level Modeling EDP 2002 9 th IEEE/DATC Electronic Design Processes Workshop SpecC Methodology for High-Level Modeling Rainer Dömer Daniel D. Gajski Andreas Gerstlauer Center for Embedded Computer Systems Universitiy

More information

Appendix: How to get OBST / tclobst. References

Appendix: How to get OBST / tclobst. References development effort for applications and by opening the way to functionality already available as Tcl extensions, most notably Tk and related s. With tcl the full power of is provided for convenient and

More information

Concepts for Model Compilation in Hardware/Software Codesign

Concepts for Model Compilation in Hardware/Software Codesign Concepts for Model Compilation in Hardware/Software Codesign S. Schulz, and J.W. Rozenblit Dept. of Electrical and Computer Engineering The University of Arizona Tucson, AZ 85721 USA sschulz@ece.arizona.edu

More information

Long Term Trends for Embedded System Design

Long Term Trends for Embedded System Design Long Term Trends for Embedded System Design Ahmed Amine JERRAYA Laboratoire TIMA, 46 Avenue Félix Viallet, 38031 Grenoble CEDEX, France Email: Ahmed.Jerraya@imag.fr Abstract. An embedded system is an application

More information

Michel Heydemann Alain Plaignaud Daniel Dure. EUROPEAN SILICON STRUCTURES Grande Rue SEVRES - FRANCE tel : (33-1)

Michel Heydemann Alain Plaignaud Daniel Dure. EUROPEAN SILICON STRUCTURES Grande Rue SEVRES - FRANCE tel : (33-1) THE ARCHITECTURE OF A HIGHLY INTEGRATED SIMULATION SYSTEM Michel Heydemann Alain Plaignaud Daniel Dure EUROPEAN SILICON STRUCTURES 72-78 Grande Rue - 92310 SEVRES - FRANCE tel : (33-1) 4626-4495 Abstract

More information

P j. system description. internal representation. partitioning. HW synthesis. SW synthesis. cost estimation - path based scheduler -...

P j. system description. internal representation. partitioning. HW synthesis. SW synthesis. cost estimation - path based scheduler -... A Path{Based Technique for Estimating Hardware Runtime in HW/SW-Cosynthesis Jorg Henkel, Rolf Ernst Institut fur Datenverarbeitungsanlagen Technische Universitat Braunschweig Hans{Sommer{Str. 66, D{806

More information

Hardware-Software Codesign. 1. Introduction

Hardware-Software Codesign. 1. Introduction Hardware-Software Codesign 1. Introduction Lothar Thiele 1-1 Contents What is an Embedded System? Levels of Abstraction in Electronic System Design Typical Design Flow of Hardware-Software Systems 1-2

More information

Architecture choices. Functional specifications. expensive loop (in time and cost) Hardware and Software partitioning. Hardware synthesis

Architecture choices. Functional specifications. expensive loop (in time and cost) Hardware and Software partitioning. Hardware synthesis Introduction of co-simulation in the design cycle of the real- control for electrical systems R.RUELLAND, J.C.HAPIOT, G.GATEAU Laboratoire d'electrotechnique et d'electronique Industrielle Unité Mixte

More information

4. Because threads can share common data, they do not need to use? a. Layered Communication b. Interprocess Communication c. Both d.

4. Because threads can share common data, they do not need to use? a. Layered Communication b. Interprocess Communication c. Both d. Q: Select the correct answer:. Spooling is an acronym for? a. Simultaneous Peripheral Operation On Line b. Simultaneous Peripheral Operation On Link c. Simultaneous Peripheral Operation On Light d. None.

More information

Mapping Array Communication onto FIFO Communication - Towards an Implementation

Mapping Array Communication onto FIFO Communication - Towards an Implementation Mapping Array Communication onto Communication - Towards an Implementation Jeffrey Kang Albert van der Werf Paul Lippens Philips Research Laboratories Prof. Holstlaan 4, 5656 AA Eindhoven, The Netherlands

More information

Hardware/Software Co-Design/Co-Verification

Hardware/Software Co-Design/Co-Verification Hardware/Software Co-Design/Co-Verification Sungho Kang Yonsei University Outline Introduction Co-design Methodology Partitioning Scheduling Co-Simulation Systems Timed Co-simulation Multimedia Examples

More information

Hardware-Software Codesign. 1. Introduction

Hardware-Software Codesign. 1. Introduction Hardware-Software Codesign 1. Introduction Lothar Thiele 1-1 Contents What is an Embedded System? Levels of Abstraction in Electronic System Design Typical Design Flow of Hardware-Software Systems 1-2

More information

Combining MBP-Speculative Computation and Loop Pipelining. in High-Level Synthesis. Technical University of Braunschweig. Braunschweig, Germany

Combining MBP-Speculative Computation and Loop Pipelining. in High-Level Synthesis. Technical University of Braunschweig. Braunschweig, Germany Combining MBP-Speculative Computation and Loop Pipelining in High-Level Synthesis U. Holtmann, R. Ernst Technical University of Braunschweig Braunschweig, Germany Abstract Frequent control dependencies

More information

A Top-down Hardware/Software Co-Simulation Method for Embedded Systems Based Upon a Component Logical Bus Architecture

A Top-down Hardware/Software Co-Simulation Method for Embedded Systems Based Upon a Component Logical Bus Architecture A Top-down / Co-Simulation Method for Embedded Systems Based Upon a Architecture Mitsuhiro YASUDA Barry SHACKLEFORD Fumio SUZUKI Katsuhiko SEO Hisao KOIZUMI Mitsubishi Electric Corporation, Hewlett-Packard

More information

Code Generation for QEMU-SystemC Cosimulation from SysML

Code Generation for QEMU-SystemC Cosimulation from SysML Code Generation for QEMU- Cosimulation from SysML Da He, Fabian Mischkalla, Wolfgang Mueller University of Paderborn/C-Lab, Fuerstenallee 11, 33102 Paderborn, Germany {dahe, fabianm, wolfgang}@c-lab.de

More information

Hardware, Software and Mechanical Cosimulation for Automotive Applications

Hardware, Software and Mechanical Cosimulation for Automotive Applications Hardware, Software and Mechanical Cosimulation for Automotive Applications P. Le Marrec, C.A. Valderrama, F. Hessel, A.A. Jerraya TIMA Laboratory 46 Avenue Felix Viallet 38031 Grenoble France fphilippe.lemarrec,

More information

Cycle Accurate Binary Translation for Simulation Acceleration in Rapid Prototyping of SoCs

Cycle Accurate Binary Translation for Simulation Acceleration in Rapid Prototyping of SoCs Cycle Accurate Binary Translation for Simulation Acceleration in Rapid Prototyping of SoCs Jürgen Schnerr 1, Oliver Bringmann 1, and Wolfgang Rosenstiel 1,2 1 FZI Forschungszentrum Informatik Haid-und-Neu-Str.

More information

- - PARADISE: Design Environment for Parallel & Distributed, Embedded Real-Time

- - PARADISE: Design Environment for Parallel & Distributed, Embedded Real-Time PARADISE: Design Environment for Parallel & Distributed, Embedded Real-Time - - Systems W.Hardt, P. Altenbernd, C. Bake, G. Del Castillo, C. Ditze, E.Erpenbach, U. Glasser, B. Kleinjohann, G. Lehrenfeld,

More information

3.Constructors and Destructors. Develop cpp program to implement constructor and destructor.

3.Constructors and Destructors. Develop cpp program to implement constructor and destructor. 3.Constructors and Destructors Develop cpp program to implement constructor and destructor. Constructors A constructor is a special member function whose task is to initialize the objects of its class.

More information

A Generator for Graph-Based Design Representations *

A Generator for Graph-Based Design Representations * 24 A Generator for Graph-Based Design Representations * Ansgar Bredenfeld GMD-SET, SchloG Birlinghoven, D-53754 Sankt Augustin, Germany, ansgar@bomeo.gmd.de Abstract Tool integration services are an important

More information

a. It will output It s NOT Rover b. Class Main should be changed to the following (bold characters show the changes)

a. It will output It s NOT Rover b. Class Main should be changed to the following (bold characters show the changes) May 2015 Computing Advanced Paper 1 Question 1 a. It will output It s NOT Rover b. Class Main should be changed to the following (bold characters show the changes) public class Main public static void

More information

Abstract. provide substantial improvements in performance on a per application basis. We have used architectural customization

Abstract. provide substantial improvements in performance on a per application basis. We have used architectural customization Architectural Adaptation in MORPH Rajesh K. Gupta a Andrew Chien b a Information and Computer Science, University of California, Irvine, CA 92697. b Computer Science and Engg., University of California,

More information

Object Oriented Programming. Solved MCQs - Part 2

Object Oriented Programming. Solved MCQs - Part 2 Object Oriented Programming Solved MCQs - Part 2 Object Oriented Programming Solved MCQs - Part 2 It is possible to declare as a friend A member function A global function A class All of the above What

More information

Exploration of Hardware/Software Design Space through a Codesign of Robot Arm Controller

Exploration of Hardware/Software Design Space through a Codesign of Robot Arm Controller Exploration of /Software Design Space through a Codesign of Robot Arm Mohamed Abid 1, Adel Changuel, Ahmed Jerraya Laboratoire TIMA/INPG, System-level Synthesis Group, 46 Av. Félix Viallet, 38031 Grenoble

More information

Anand Raghunathan

Anand Raghunathan ECE 695R: SYSTEM-ON-CHIP DESIGN Module 2: HW/SW Partitioning Lecture 2.13: HW/SW Co-Synthesis: Automatic Partitioning Anand Raghunathan raghunathan@purdue.edu Fall 2014, ME 1052, T Th 12:00PM-1:15PM 2014

More information

DISTRIBUTED CO-SIMULATION TOOL. F.Hessel, P.Le Marrec, C.A.Valderrama, M.Romdhani, A.A.Jerraya

DISTRIBUTED CO-SIMULATION TOOL. F.Hessel, P.Le Marrec, C.A.Valderrama, M.Romdhani, A.A.Jerraya 1 MCI MULTILANGUAGE DISTRIBUTED CO-SIMULATION TOOL F.Hessel, P.Le Marrec, C.A.Valderrama, M.Romdhani, A.A.Jerraya System-Level Synthesis Group TIMA Laboratory Grenoble, France Abstract Nowadays the design

More information

Graph Based Communication Analysis for Hardware/Software Codesign

Graph Based Communication Analysis for Hardware/Software Codesign Graph Based Communication Analysis for Hardware/Software Codesign Peter Voigt Knudsen and Jan Madsen Department of Information Technology, Technical University of Denmark pvk@it.dtu.dk, jan@it.dtu.dk ØÖ

More information

System-On-Chip Architecture Modeling Style Guide

System-On-Chip Architecture Modeling Style Guide Center for Embedded Computer Systems University of California, Irvine System-On-Chip Architecture Modeling Style Guide Junyu Peng Andreas Gerstlauer Rainer Dömer Daniel D. Gajski Technical Report CECS-TR-04-22

More information

Chapter 1. Preliminaries

Chapter 1. Preliminaries Chapter 1 Preliminaries Chapter 1 Topics Reasons for Studying Concepts of Programming Languages Programming Domains Language Evaluation Criteria Influences on Language Design Language Categories Language

More information

Hardware Software Partitioning of Multifunction Systems

Hardware Software Partitioning of Multifunction Systems Hardware Software Partitioning of Multifunction Systems Abhijit Prasad Wangqi Qiu Rabi Mahapatra Department of Computer Science Texas A&M University College Station, TX 77843-3112 Email: {abhijitp,wangqiq,rabi}@cs.tamu.edu

More information

Development of a High-Level Design Space Exploration Methodology

Development of a High-Level Design Space Exploration Methodology Development of a High-Level Design Space Exploration Methodology Joachim Gerlach Wolfgang Rosenstiel WSI 98-13 November 23, 1998 Wilhelm-Schickard-Institut Universität Tübingen D-72076 Tübingen, Germany

More information

Gizgate: An Object-Oriented Gateway for Hardware/Software Codesign on the CMC Rapid-Prototyping Board

Gizgate: An Object-Oriented Gateway for Hardware/Software Codesign on the CMC Rapid-Prototyping Board : An Object-Oriented Gateway for Hardware/Software Codesign on the CMC Rapid-Prototyping Board D. Sharp, W. B. Gardner and M. Serra VLSI Design & Test Group, Dept. of Computer Science, Univ. of Victoria,

More information

Semantics-Based Integration of Embedded Systems Models

Semantics-Based Integration of Embedded Systems Models Semantics-Based Integration of Embedded Systems Models Project András Balogh, OptixWare Research & Development Ltd. n 100021 Outline Embedded systems overview Overview of the GENESYS-INDEXYS approach Current

More information

Applying Multi-Core Model Checking to Hardware-Software Partitioning in Embedded Systems

Applying Multi-Core Model Checking to Hardware-Software Partitioning in Embedded Systems V Brazilian Symposium on Computing Systems Engineering Applying Multi-Core Model Checking to Hardware-Software Partitioning in Embedded Systems Alessandro Trindade, Hussama Ismail, and Lucas Cordeiro Foz

More information

Embedded System Design and Modeling EE382V, Fall 2008

Embedded System Design and Modeling EE382V, Fall 2008 Embedded System Design and Modeling EE382V, Fall 2008 Lecture Notes 4 System Design Flow and Design Methodology Dates: Sep 16&18, 2008 Scribe: Mahesh Prabhu SpecC: Import Directive: This is different from

More information

Inheritance, and Polymorphism.

Inheritance, and Polymorphism. Inheritance and Polymorphism by Yukong Zhang Object-oriented programming languages are the most widely used modern programming languages. They model programming based on objects which are very close to

More information

CIS 1.5 Course Objectives. a. Understand the concept of a program (i.e., a computer following a series of instructions)

CIS 1.5 Course Objectives. a. Understand the concept of a program (i.e., a computer following a series of instructions) By the end of this course, students should CIS 1.5 Course Objectives a. Understand the concept of a program (i.e., a computer following a series of instructions) b. Understand the concept of a variable

More information

Programming, numerics and optimization

Programming, numerics and optimization Programming, numerics and optimization Lecture A-4: Object-oriented programming Łukasz Jankowski ljank@ippt.pan.pl Institute of Fundamental Technological Research Room 4.32, Phone +22.8261281 ext. 428

More information

Embedded Systems Dr. Santanu Chaudhury Department of Electrical Engineering Indian Institution of Technology, Delhi

Embedded Systems Dr. Santanu Chaudhury Department of Electrical Engineering Indian Institution of Technology, Delhi Embedded Systems Dr. Santanu Chaudhury Department of Electrical Engineering Indian Institution of Technology, Delhi Lecture - 34 Compilers for Embedded Systems Today, we shall look at the compilers, which

More information

Previous Exam Questions System-on-a-Chip (SoC) Design

Previous Exam Questions System-on-a-Chip (SoC) Design This image cannot currently be displayed. EE382V Problem: System Analysis (20 Points) This is a simple single microprocessor core platform with a video coprocessor, which is configured to process 32 bytes

More information

THE NAME OF THE CONSTRUCTOR AND DESTRUCTOR(HAVING (~) BEFORE ITS NAME) FUNCTION MUST BE SAME AS THE NAME OF THE CLASS IN WHICH THEY ARE DECLARED.

THE NAME OF THE CONSTRUCTOR AND DESTRUCTOR(HAVING (~) BEFORE ITS NAME) FUNCTION MUST BE SAME AS THE NAME OF THE CLASS IN WHICH THEY ARE DECLARED. Constructor and Destructor Member Functions Constructor: - Constructor function gets invoked automatically when an object of a class is constructed (declared). Destructor:- A destructor is a automatically

More information

An Introduction to C++

An Introduction to C++ An Introduction to C++ Introduction to C++ C++ classes C++ class details To create a complex type in C In the.h file Define structs to store data Declare function prototypes The.h file serves as the interface

More information

Transformational Optimization of the Full Rate Speech Transcoder GSM

Transformational Optimization of the Full Rate Speech Transcoder GSM Transformational Optimization of the Full Rate Speech Transcoder GSM 06.10 1 Joachim Gerlach, gerlach@informatik.uni-tuebingen.de, Sonderforschungsbereich 358 University of Tübingen Department of Computer

More information

MidTerm Papers Solved MCQS with Reference (1 to 22 lectures)

MidTerm Papers Solved MCQS with Reference (1 to 22 lectures) CS606- Compiler Construction MidTerm Papers Solved MCQS with Reference (1 to 22 lectures) by Arslan Arshad (Zain) FEB 21,2016 0300-2462284 http://lmshelp.blogspot.com/ Arslan.arshad01@gmail.com AKMP01

More information

SRM ARTS AND SCIENCE COLLEGE SRM NAGAR, KATTANKULATHUR

SRM ARTS AND SCIENCE COLLEGE SRM NAGAR, KATTANKULATHUR SRM ARTS AND SCIENCE COLLEGE SRM NAGAR, KATTANKULATHUR 603203 DEPARTMENT OF COMPUTER SCIENCE & APPLICATIONS QUESTION BANK (2017-2018) Course / Branch : M.Sc CST Semester / Year : EVEN / II Subject Name

More information

SoC Design for the New Millennium Daniel D. Gajski

SoC Design for the New Millennium Daniel D. Gajski SoC Design for the New Millennium Daniel D. Gajski Center for Embedded Computer Systems University of California, Irvine www.cecs.uci.edu/~gajski Outline System gap Design flow Model algebra System environment

More information

CS 6456 OBJCET ORIENTED PROGRAMMING IV SEMESTER/EEE

CS 6456 OBJCET ORIENTED PROGRAMMING IV SEMESTER/EEE CS 6456 OBJCET ORIENTED PROGRAMMING IV SEMESTER/EEE PART A UNIT I 1. Differentiate object oriented programming from procedure oriented programming. 2. Define abstraction and encapsulation. 3. Differentiate

More information

Matisse: A system-on-chip design methodology emphasizing dynamic memory management

Matisse: A system-on-chip design methodology emphasizing dynamic memory management Matisse: A system-on-chip design methodology emphasizing dynamic memory management Diederik Verkest, Julio Leao da Silva Jr., Chantal Ykman, Kris Croes, Miguel Miranda, Sven Wuytack, Gjalt de Jong, Francky

More information

Hardware/Software Partitioning for SoCs. EECE Advanced Topics in VLSI Design Spring 2009 Brad Quinton

Hardware/Software Partitioning for SoCs. EECE Advanced Topics in VLSI Design Spring 2009 Brad Quinton Hardware/Software Partitioning for SoCs EECE 579 - Advanced Topics in VLSI Design Spring 2009 Brad Quinton Goals of this Lecture Automatic hardware/software partitioning is big topic... In this lecture,

More information

OBJECT ORIENTED PROGRAMMING USING C++ CSCI Object Oriented Analysis and Design By Manali Torpe

OBJECT ORIENTED PROGRAMMING USING C++ CSCI Object Oriented Analysis and Design By Manali Torpe OBJECT ORIENTED PROGRAMMING USING C++ CSCI 5448- Object Oriented Analysis and Design By Manali Torpe Fundamentals of OOP Class Object Encapsulation Abstraction Inheritance Polymorphism Reusability C++

More information

Hardware Synthesis of UML-Models

Hardware Synthesis of UML-Models Hardware Synthesis of UML-Models Thomas Beierlein Dominik Fröhlich Bernd Steinbach Hochschule Mittweida TU Bergakademie Freiberg TU Bergakademie Freiberg Labor Embedded Control Inst. of Computer Science

More information

Manuscript received 12 October 2004; revised 17 December 2004 Communicated by Hong Zhu

Manuscript received 12 October 2004; revised 17 December 2004 Communicated by Hong Zhu Computing and Informatics, Vol. 23, 2004, 557 569 KNAPSACK MODEL AND ALGORITHM FOR HARDWARE/SOFTWARE PARTITIONING PROBLEM Abhijit Ray, Wu Jigang, Thambipillai Srikanthan Centre for High Performance Embedded

More information

An Analysis of Hardware/Software. Co-Design Architectures Using SAAM. Kamran Sartipi. Department of Computer Science. University of Waterloo

An Analysis of Hardware/Software. Co-Design Architectures Using SAAM. Kamran Sartipi. Department of Computer Science. University of Waterloo An Analysis of Hardware/Software Co-Design Architectures Using SAAM Kamran Sartipi Department of Computer Science University of Waterloo Waterloo, Ontario Canada N2L 3G1 E-mail: ksartipi@neumann.uwaterloo.ca

More information

COIMBATORE EDUCATIONAL DISTRICT

COIMBATORE EDUCATIONAL DISTRICT COIMBATORE EDUCATIONAL DISTRICT REVISION EXAMINATION JANUARY 2015 STD-12 COMPUTER SCIENCE ANSEWR KEY PART-I Choose the Correct Answer QNo Answer QNo Answer 1 B Absolute Cell Addressing 39 C Void 2 D

More information

A Heterogeneous and Distributed Co-Simulation Environment

A Heterogeneous and Distributed Co-Simulation Environment XVII SIM - South Symposium on Microelectronics 1 A Heterogeneous and Distributed Co-Simulation Environment Alexandre Amory, Leandro Oliveira, Fernando Moraes {amory, laugusto, moraes}@inf.pucrs.br Abstract

More information

Intro to OOP Visibility/protection levels and constructors Friend, convert constructor, destructor Operator overloading a<=b a.

Intro to OOP Visibility/protection levels and constructors Friend, convert constructor, destructor Operator overloading a<=b a. Intro to OOP - Object and class - The sequence to define and use a class in a program - How/when to use scope resolution operator - How/when to the dot operator - Should be able to write the prototype

More information

Distributed Real-Time Control Systems. Lecture 17 C++ Programming Intro to C++ Objects and Classes

Distributed Real-Time Control Systems. Lecture 17 C++ Programming Intro to C++ Objects and Classes Distributed Real-Time Control Systems Lecture 17 C++ Programming Intro to C++ Objects and Classes 1 Bibliography Classical References Covers C++ 11 2 What is C++? A computer language with object oriented

More information

Lecture 7: Introduction to Co-synthesis Algorithms

Lecture 7: Introduction to Co-synthesis Algorithms Design & Co-design of Embedded Systems Lecture 7: Introduction to Co-synthesis Algorithms Sharif University of Technology Computer Engineering Dept. Winter-Spring 2008 Mehdi Modarressi Topics for today

More information

BLM2031 Structured Programming. Zeyneb KURT

BLM2031 Structured Programming. Zeyneb KURT BLM2031 Structured Programming Zeyneb KURT 1 Contact Contact info office : D-219 e-mail zeynebkurt@gmail.com, zeyneb@ce.yildiz.edu.tr When to contact e-mail first, take an appointment What to expect help

More information

The Compositional C++ Language. Denition. Abstract. This document gives a concise denition of the syntax and semantics

The Compositional C++ Language. Denition. Abstract. This document gives a concise denition of the syntax and semantics The Compositional C++ Language Denition Peter Carlin Mani Chandy Carl Kesselman March 12, 1993 Revision 0.95 3/12/93, Comments welcome. Abstract This document gives a concise denition of the syntax and

More information

Tutorial on VHDL and Verilog Applications

Tutorial on VHDL and Verilog Applications Second LACCEI International Latin American and Caribbean Conference for Engineering and Technology (LACCEI 2004) Challenges and Opportunities for Engineering Education, Research and Development 2-4 June

More information

Optimization of Run-time Reconfigurable Embedded Systems

Optimization of Run-time Reconfigurable Embedded Systems Optimization of Run-time Reconfigurable Embedded Systems Michael Eisenring and Marco Platzner Swiss Federal Institute of Technology (ETH) Zurich, Switzerland {eisenring platzner}@tik.ee.ethz.ch Abstract.

More information

The modularity requirement

The modularity requirement The modularity requirement The obvious complexity of an OS and the inherent difficulty of its design lead to quite a few problems: an OS is often not completed on time; It often comes with quite a few

More information

Outline. SLD challenges Platform Based Design (PBD) Leveraging state of the art CAD Metropolis. Case study: Wireless Sensor Network

Outline. SLD challenges Platform Based Design (PBD) Leveraging state of the art CAD Metropolis. Case study: Wireless Sensor Network By Alberto Puggelli Outline SLD challenges Platform Based Design (PBD) Case study: Wireless Sensor Network Leveraging state of the art CAD Metropolis Case study: JPEG Encoder SLD Challenge Establish a

More information

Hardware/Software Partitioning of Digital Systems

Hardware/Software Partitioning of Digital Systems Hardware/Software Partitioning of Digital Systems F. Dufour Advisor: M. Radetzki Department of Technical Computer Science University of Stuttgart Seminar Embedded Systems Outline 1 Partitioning and digital

More information

CSE 374 Programming Concepts & Tools. Hal Perkins Fall 2015 Lecture 19 Introduction to C++

CSE 374 Programming Concepts & Tools. Hal Perkins Fall 2015 Lecture 19 Introduction to C++ CSE 374 Programming Concepts & Tools Hal Perkins Fall 2015 Lecture 19 Introduction to C++ C++ C++ is an enormous language: All of C Classes and objects (kind of like Java, some crucial differences) Many

More information

Exploiting On-Chip Data Transfers for Improving Performance of Chip-Scale Multiprocessors

Exploiting On-Chip Data Transfers for Improving Performance of Chip-Scale Multiprocessors Exploiting On-Chip Data Transfers for Improving Performance of Chip-Scale Multiprocessors G. Chen 1, M. Kandemir 1, I. Kolcu 2, and A. Choudhary 3 1 Pennsylvania State University, PA 16802, USA 2 UMIST,

More information

NOTICE WARNING CONCERNING COPYRIGHT RESTRICTIONS: The copyright law of the United States (title 17, U.S. Code) governs the making of photocopies or

NOTICE WARNING CONCERNING COPYRIGHT RESTRICTIONS: The copyright law of the United States (title 17, U.S. Code) governs the making of photocopies or NOTICE WARNING CONCERNING COPYRIGHT RESTRICTIONS: The copyright law of the United States (title 17, U.S. Code) governs the making of photocopies or other reproductions of copyrighted material. Any copying

More information

What are the characteristics of Object Oriented programming language?

What are the characteristics of Object Oriented programming language? What are the various elements of OOP? Following are the various elements of OOP:- Class:- A class is a collection of data and the various operations that can be performed on that data. Object- This is

More information

Department of Computer science and Engineering Sub. Name: Object oriented programming and data structures Sub. Code: EC6301 Sem/Class: III/II-ECE Staff name: M.Kavipriya Two Mark Questions UNIT-1 1. List

More information

Rapid Prototyping with APICES

Rapid Prototyping with APICES Rapid Prototyping with APICES Ansgar Bredenfeld GMD Institute for System Design Technology D-53754 Sankt Augustin, Germany bredenfeld@gmd.de http://set.gmd.de/apices APICES is a tool for very rapid development

More information

MaanavaN.Com CS1203 OBJECT ORIENTED PROGRAMMING DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING

MaanavaN.Com CS1203 OBJECT ORIENTED PROGRAMMING DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING SUB CODE / SUBJECT: CS1203 / Object oriented programming YEAR / SEM: II / III QUESTION BANK UNIT I FUNDAMENTALS PART-A (2 MARKS) 1. What is Object Oriented

More information

EE382V: System-on-a-Chip (SoC) Design

EE382V: System-on-a-Chip (SoC) Design EE382V: System-on-a-Chip (SoC) Design Lecture 8 HW/SW Co-Design Sources: Prof. Margarida Jacome, UT Austin Andreas Gerstlauer Electrical and Computer Engineering University of Texas at Austin gerstl@ece.utexas.edu

More information

Efficient Modeling of Embedded Systems using Designer-controlled Recoding. Rainer Dömer. With contributions by Pramod Chandraiah

Efficient Modeling of Embedded Systems using Designer-controlled Recoding. Rainer Dömer. With contributions by Pramod Chandraiah Efficient Modeling of Embedded Systems using Rainer Dömer With contributions by Pramod Chandraiah Center for Embedded Computer Systems University of California, Irvine Outline Introduction Designer-controlled

More information

1. (a) What are the closure properties of Regular sets? Explain. (b) Briefly explain the logical phases of a compiler model. [8+8]

1. (a) What are the closure properties of Regular sets? Explain. (b) Briefly explain the logical phases of a compiler model. [8+8] Code No: R05311201 Set No. 1 1. (a) What are the closure properties of Regular sets? Explain. (b) Briefly explain the logical phases of a compiler model. [8+8] 2. Compute the FIRST and FOLLOW sets of each

More information

COP4020 Programming Languages. Compilers and Interpreters Robert van Engelen & Chris Lacher

COP4020 Programming Languages. Compilers and Interpreters Robert van Engelen & Chris Lacher COP4020 ming Languages Compilers and Interpreters Robert van Engelen & Chris Lacher Overview Common compiler and interpreter configurations Virtual machines Integrated development environments Compiler

More information

TIMED PETRI NETS FOR SOFTWARE APPLICATIONS

TIMED PETRI NETS FOR SOFTWARE APPLICATIONS The International Workshop on Discrete-Event System Design, DESDes 01, June 27 29, 2001; Przytok near Zielona Gora, Poland TIMED PETRI NETS FOR SOFTWARE APPLICATIONS Grzegorz ANDRZEJEWSKI Computer Engineering

More information

AN OVERVIEW OF C++ 1

AN OVERVIEW OF C++ 1 AN OVERVIEW OF C++ 1 OBJECTIVES Introduction What is object-oriented programming? Two versions of C++ C++ console I/O C++ comments Classes: A first look Some differences between C and C++ Introducing function

More information

A Fast Review of C Essentials Part I

A Fast Review of C Essentials Part I A Fast Review of C Essentials Part I Structural Programming by Z. Cihan TAYSI Outline Program development C Essentials Functions Variables & constants Names Formatting Comments Preprocessor Data types

More information

SysteMoC. Verification and Refinement of Actor-Based Models of Computation

SysteMoC. Verification and Refinement of Actor-Based Models of Computation SysteMoC Verification and Refinement of Actor-Based Models of Computation Joachim Falk, Jens Gladigau, Christian Haubelt, Joachim Keinert, Martin Streubühr, and Jürgen Teich {falk, haubelt}@cs.fau.de Hardware-Software-Co-Design

More information

Parallel Computing. Prof. Marco Bertini

Parallel Computing. Prof. Marco Bertini Parallel Computing Prof. Marco Bertini Shared memory: OpenMP Implicit threads: motivations Implicit threading frameworks and libraries take care of much of the minutiae needed to create, manage, and (to

More information

MODELING LANGUAGES AND ABSTRACT MODELS. Giovanni De Micheli Stanford University. Chapter 3 in book, please read it.

MODELING LANGUAGES AND ABSTRACT MODELS. Giovanni De Micheli Stanford University. Chapter 3 in book, please read it. MODELING LANGUAGES AND ABSTRACT MODELS Giovanni De Micheli Stanford University Chapter 3 in book, please read it. Outline Hardware modeling issues: Representations and models. Issues in hardware languages.

More information

A Deterministic Concurrent Language for Embedded Systems

A Deterministic Concurrent Language for Embedded Systems A Deterministic Concurrent Language for Embedded Systems Stephen A. Edwards Columbia University Joint work with Olivier Tardieu SHIM:A Deterministic Concurrent Language for Embedded Systems p. 1/30 Definition

More information

Observability Analysis of Embedded Software for Coverage-Directed Validation

Observability Analysis of Embedded Software for Coverage-Directed Validation Observability Analysis of Embedded Software for Coverage-Directed Validation José C. Costa Srinivas Devadas José C. Monteiro IST/INESC MIT IST/INESC The most common approach to checking correctness of

More information

Observability Analysis of Embedded Software for Coverage-Directed Validation

Observability Analysis of Embedded Software for Coverage-Directed Validation Observability Analysis of Embedded Software for Coverage-Directed Validation José C. Costa Srinivas Devadas José C. Monteiro IST/INESC MIT IST/INESC The most common approach to checking correctness of

More information

Extending POLIS with User-Defined Data Types

Extending POLIS with User-Defined Data Types Extending POLIS with User-Defined Data Types EE 249 Final Project by Arvind Thirunarayanan Prof. Alberto Sangiovanni-Vincentelli Mentors: Marco Sgroi, Bassam Tabbara Introduction POLIS is, by definition,

More information

Computer-Aided Recoding for Multi-Core Systems

Computer-Aided Recoding for Multi-Core Systems Computer-Aided Recoding for Multi-Core Systems Rainer Dömer doemer@uci.edu With contributions by P. Chandraiah Center for Embedded Computer Systems University of California, Irvine Outline Embedded System

More information

Chapter 1 Preliminaries

Chapter 1 Preliminaries Chapter 1 Preliminaries Chapter 1 Topics Reasons for Studying Concepts of Programming Languages Programming Domains Language Evaluation Criteria Influences on Language Design Language Categories Language

More information

C LANGUAGE AND ITS DIFFERENT TYPES OF FUNCTIONS

C LANGUAGE AND ITS DIFFERENT TYPES OF FUNCTIONS C LANGUAGE AND ITS DIFFERENT TYPES OF FUNCTIONS Manish Dronacharya College Of Engineering, Maharishi Dayanand University, Gurgaon, Haryana, India III. Abstract- C Language History: The C programming language

More information

COMP 181 Compilers. Administrative. Last time. Prelude. Compilation strategy. Translation strategy. Lecture 2 Overview

COMP 181 Compilers. Administrative. Last time. Prelude. Compilation strategy. Translation strategy. Lecture 2 Overview COMP 181 Compilers Lecture 2 Overview September 7, 2006 Administrative Book? Hopefully: Compilers by Aho, Lam, Sethi, Ullman Mailing list Handouts? Programming assignments For next time, write a hello,

More information