CHAPTER 4 THE PARALLEL ALGORITHM FOR DETECTION AND EXECUTION OF ARITHMETIC OPERATIONS AT INTRAINSTRUCTION LEVEL
|
|
- Asher Franklin
- 7 years ago
- Views:
Transcription
1 39 CHAPTER 4 THE PARALLEL ALGORITHM FOR DETECTION AND EXECUTION OF ARITHMETIC OPERATIONS AT INTRAINSTRUCTION LEVEL In this chapter the relevant work of parallelism exploitation within a single statement is presented. The implementation specification and the environment in which the rearrangement method was developed is described. The parallel algorithm, the data structures and the various modules used in the implementation of the parallel algorithm are presented. Also the working of the algorithm is explained with a detailed example. 4.1 EXISTING WORK Y.N.Srikant (1990) deals with a method which parses and constructs the task graph. The task graph is an estimate of operations that could be done in parallel. The operations at the same level indicate that they could be done in parallel. His approach is aimed at a single instruction or intrainstruction level. E.Dekel et al (1983) and Dan Bar-On et al (1985) have represented arithmetic expression as a tree. B.Pradeep et al (1994) considered the tree as input to their program for parallel evaluation. Y.N.Srikant (1990) uses nesting level of parenthesis to find the parallel operations. His algorithm fails to produce nesting level when the
2 40 operators are of the same precedence. Similarly when the expression is enclosed within parenthesis and the operators are of the same precedence, the output of the algorithm is the same as the input. Hence, nesting levels are not produced and therefore parallel operations cannot be detected. For instance if statement (4.1) is subjected to the algorithm, statement (4. 2) is produced as the result. Since there is no nesting level, the algorithm fails to identify parallel operations. a + b + c + d (a + b + c + d) (4.1) (4.2) If statement (4.2) is given as input to the algorithm, the output would also be statement (4.2) only. So, again nesting level is not produced and parallel operations cannot be detected. Proper association reduces tree height ( D.J.Kuck et al 1972). For example, a + b + c + d may be computed as (((a + b)+c)+d) in 3 steps or as (a +b) + (c +d) in 2 steps. The expression, a +b *c +d can be evaluated as (b *c)+(a +d) by combining associative and commutative properties. Since subtraction and division are neither commutative nor associative, they are treated differently. Subtraction is handled as addition if + and - operators are properly interchanged. The authors treat (a +b-c-d) as (a +b)-(c +d) and a *b/c/d as (a *b)/(c *d). 4.2 IMPLEMENTATION SPECIFICATION In the implementation of the algorithm, operators, +,-,*,/,(,), variables and constants are considered in the formation of the arithmetic expression. The expression is stored in every processor. Mesh architecture is used and the time
3 41 complexity of this parallel algorithm is 0(log n) where, n is the number of elements in the given arithmetic expression. The number of processors are assumed to be as many as the number of elements of the arithmetic expression, namely n. 4.3 IMPLEMENTATION ENVIRONMENT Description of the hardware PARAM, a network of transputers is the machine used for the implementation. Transputers, are special kind of Microprocessors with a Floating point unit, four high speed bidirectional datalinks and on-chip fast memory of four kilo bytes, besides the main central processing unit (CPU). These machines consists of two parts, the front-end and the back-end. The front end is the host and the back-end is the compute engine which is a network of transputers. The host can be a personal computer, a SUN or a VAX machine. All the development work is done on the host machine and the bootable image of the parallel program is downloaded to the back-end network for actual execution Running a parallel program PARAS is a software development environment for message passing machines built around transputers. These message passing machines are general purpose MIMD machines which employ a network of processing nodes to solve a single problem. Processing nodes execute sequential programs ' asynchronously and co-operate by sending data in the form of messages. The collection of interacting sequential programs, which collectively perform a single job, is called a parallel program.
4 42 An application program with PARAS is developed into a bootable file using four basic tools, namely, the compiler pcc, the linker pin, the configurer pconf and the collector pcollect. The compiler takes source code and generates an object code in a file with a name ending with.teo. The linker takes a number of object code files, programmer created library' and the system library as input and generates the task image in a linked unit.lku file. The configurer takes a configuration file with the file name extension.cfs specifying the details of processing nodes, their interconnection topology, description of tasks and their placement, that is, which task is to be placed on which node. The configurer produces a binary file with extension.cfb. The collector takes the output of the configurer, a file with extension.cfb, places the self loading code and outputs a bootable image of the application with extension.btl. The bootable image is then executed on the parallel machine using the pserver of the PARAS Structure of the configuration file A node topology and a task specification is required for the configuration stage. The network of nodes is specified in terms of number and type of processors and their connectivity. The connectivity is achieved by the connect statement. Tasks are specified with expected memory requirements of various segments of the code. The actual placement of the tasks on the processors is mentioned in the place statement. Finally, the linked unit to be used for the task is given by the use statement. The use statement specifies the physical process to be associated with the logical process. The sample code used for configuring is as follows, in which the source file is hello.c and logical process is mytask :
5 43 T800 (memory = 4M) mynode; connect mynode.link[0], host; /* specification for the tasks */ process (stacksize = 100k, heapsize =100k) mytask; /* placement of the tasks on the declared processors */ place mytask on mynode; /* specify the linked units for the tasks */ use 'hello.lku' for mytask; /* Where the source file is 'hello.c' */ 4.4 DATA STRUCTURES USED The data structures used in the implementation of this algorithm are given in Figure The data structure DECIDE The fields of DECIDE, a doubly linked list are as follows: lptr and rptr are the link fields; symbol denotes the operator in that processor; pr-id denotes the processor identifier; precedence denotes the precedence of the operator. The significance of the mark field will be explained in due course The data structure OPERATE The doubly linked list is maintained for identifying which processor should route the data for the parallel operation. In other words, operand details in various processors are stored in this list. The operands are stored in each of the individual processors in the variable res.
6 44 lptr pr-id symbol precedence mark rptr DECIDE lptr pr-id rptr OPERATE Figure 4.1 Data structures 4.5 DESCRIPTION OF THE MODULES USED The functions performed by the various modules used in the implementation of the algorithm to detect and execute the parallel operations are given in this section Precedence calculation module - precal The variable precedence is a field in the doubly linked list. The variable paren indicates the nesting level of the parenthesis and is used in precedence determination, whose initial value is zero. When the current value of paren is added to default precedence value of the symbol, the precedence is increased.
7 The default precedence of operators is as given in Table 4.1. Table 4.1 Default precedence Operators Value of default precedence ( 3 ) -2 +, - 1 *,/ Algorithm for calculation of precedence Step 1: precedence = paren + default value of symbol Step 2: Check whether the current operator is the left parenthesis *( Step 3: If symbol = ( then paren = paren + 3 Step 4: If symbol is the right parenthesis *) then paren = paren - 3 Step 5: [On encountering a )\ nesting level is closed ] Set precedence = -2 [default value]
8 Working of the precedence calculation algorithm Whenever an operator is encountered, precedence is calculated as the sum of paren and the default precedence value of the encountered operator, symbol is as given in Table 4.1; paren is used to increase the precedence of operators enclosed within parenthesis. If the current encountered operator is (\ paren is incremented by three to indicate the nesting level. Similarly if ) is encountered paren is decremented by three to indicate that a nesting level is over and precedence of ) is set as -2. EXPRESSION a + b- c + d + (e*f) PRECEDENCE Figure 4.2 Assignment of precedence Result calculation module - updatel This module is executed when the last operation is encountered. Any processor containing the root of the equivalent tree of the arithmetic expression, computes the operation and sends the result to the processor 0.
9 Routing of operands Every processor has an identifier denoted by the pr-id field in the data structures. OPERATE->pr-id is the first processor containing the operand for the parallel operation. OPERATE->rptr->pr-id is the second processor containing the operand for the parallel operation. DECIDE->pr-id is the processor which is to perform the parallel operation. The processor represented by the pr-id field in the OPERATE node routes the first operand to the processor containing the operator which is denoted by the DECIDE node. The processor represented by the pr-id field in the successor node of OPERATE, routes the second operand to the processor containing the operator which is denoted by the DECIDE node Receiving operands The processor containing the operator is represented by the pr-id field of DECIDE and it performs the operation. Only the processor containing the operator would execute receive statements. if (DECIDE->pr-id = node-id), then, the execution steps are as follows: 1. Receive the first operand from the processor represented by OPERATE->pr-id 2. Receive the second operand from the processor represented by OPERATE->rptr->pr-id 3. Evaluate the operation by invoking compute 4. Send the value to node 0
10 Reversing module - update2 When the precedence of the previous operator and the current operator is the same, this module checks for (-,+) or (/,*) combination and reverses them; the steps are as follows: 1. The reve flag is set to one 2. The previous and current operators (-,+) or (/,*) are exchanged as (+,-) and (*,/) respectively. 3. The updateo module is called Update module - updateo The steps in the working of the updateo module are given below: 1. The mark field is set to 1 to indicate operation completion. 2. The processors containing operands for the operation are determined. 3. If the operator is enclosed within parenthesis the mark field is set to indicate that nesting level has been processed. 4. The operands are routed. 5. OPERATE is updated to reflect the result of the computation and the node representing the operands involved in the computation are deleted from the data structure. PREV and DECIDE pointers are updated.
11 Compute module - compute The sequence of functions are, 1. Determine the operator 2. Perform the operation 3. Return the result 4.6 THE PARALLEL ALGORITHM The steps involved in the algorithm for detection and execution of parallel operations are given below: 1. The processors scan the input and construct the data structures DECIDE and OPERATE. 2. Set TEMP = DECIDE and PREV = NULL 3. The first operator s precedence is compared with the second operator. If the first operator s precedence is greater than that of the second it is one of the parallel operations. The function updateo is called and the operation is performed. All the other processors update the data structures DECIDE and OPERATE. If the precedence of the current node is greater than or equal to the precedence of the successor node and if the current node is not the only node then updateo module is invoked.
12 50 Else if the current node is the only node updatel module is invoked. Else PREV and DECIDE pointers are updated. 4. As long as DECIDE is not NULL, this step is repeated. If precedence of DECIDE > precedence of PREV and if precedence of DECIDE >= the successor s precedence or the successor is not existing, then updateo module is invoked. Else if precedence of DECIDE is less than the predecessor s precedence or less than the successor s precedence, then PREV and DECIDE pointers are updated else the reverse module, update2 is executed. 5. Set DECIDE = TEMP 6. Set OPERATE = TEMPI 7. Delete all nodes with mark field equal to 1 8. Repeat through step 2 until DECIDE is not equal to NULL
13 EXPLANATION OF THE ALGORITHM below: The algorithm is explained with the sample expression (4.3) given a+b-c+d+(e*f) (4.3) The working of the algorithm is explained in Table 4.2 to The assignment of precedence according to Table 4.1 is given in Figure 4.2. Table 4.2 depicts the data structure DECIDE which will be residing in all the processors. Table 4. 3 depicts the data structure OPERATE which will be residing in all the processors. Table 4.2 The initial data structure DECIDE lptr pr-id symbol precedence mark rptr NULL ( 3 10 * 5 12 ) -2 NULL In Table 4.2, processor with pr-id 1 has the same precedence as processor 3. So it can be executed. That is why the mark field is set to 1 in Table 4.4. PREV and DECIDE point to the row containing pr-id 3 and 5 respectively in Table 4.4. In Table 4.3, the nodes representing processors with pr-id 0 and 2 are removed, since they will route the data to processor 1 for the operation and results are furnished in Table 4.5. The updations to the data
14 52 structures are made in all the processors. In Table 4.4 the next possible parallel operation is in the processor with the value of the pr-id as 5. But, since in processor 3, operator exists the update2 module is called and operators are changed as shown in Table 4.6. The need for rearrangement is explained below. If a +b, c +d in statement (4.3) are computed in parallel and then the result of these operations are subtracted, it will deviate from the sequential processing result. Hence, if the expression is rewritten as a +b +d-c, then a +b and d-c can be performed in parallel and the results are added, it will still produce the same result as sequential processing. The OPERATE data structure gets updated as in Table 4.7 when processor with pr-id 5, performs the operation. That is, PREV pointer is set to the node represented by the rptr of DECIDE (the row with pr-id value as 7 ) and the pointer of DECIDE is set to the rptr of PREV (the node with the pr-id value as 8). But its precedence is less than the successor. So PREV and DECIDE are updated to point to the next node respectively. Since the precedence of DECIDE (that is node with pr-id 10 ) is greater than the predecessor and successor, it is executed and the enclosing parenthesis are removed. Hence their mark field is set to 1. As a result, the data structure OPERATE changes as shown in Table 4.8. All nodes having mark field set to 1 are deleted from DECIDE. The updated structure is given in Table 4.9. Node 3 performs the operation and OPERATE is updated as furnished in Table DECIDE is updated and shown in Table Since there is only one node, DECIDE->rptr is NULL. Therefore updatel module is called which executes the operation and sends the result to node 0.
15 53 Table 4.3 The initial data structure OPERATE lptr pr-id rptr NULL NULL Table 4.4 The data structure DECIDE indicating a parallel operation lptr pr-id symbol precedence mark rptr NULL ( 3 10 * 5 12 ) -2 NULL
16 Table 4.5 The data structure OPERATE reflecting the computation performed by processor 1 lptr pr-id rptr NULL NULL Table 4.6 The data structure DECIDE indicating all the parallel operations and the rearrangement of operators lptr pr-id symbol precedence mark rptr NULL ( * ) -2 1 NULL Appendix 1. The program modules implementing the algorithm is given in
17 Table 4.7 The data structure OPERATE reflecting the computation performed by processor 5 lptr pr-id rptr NULL NULL Table 4.8 The data structure OPERATE reflecting the computation performed by processor 10 lptr pr-id rptr NULL NULL Table 4.9 The updated data structure DECIDE lptr pr-id symbol precedence mark rptr NULL NULL
18 56 Table 4.10 The data structure OPERATE reflecting the computation performed by processor 3 Iptr pr-id rptr NULL 3 10 NULL Table 4.11 The final data structure DECIDE lptr pr-id symbol precedence mark rptr NULL NULL 4.8 CONCLUSION A parallel approach to detect and evaluate arithmetic operations at intrainstruction level has been discussed. Rearrangements have also been discussed which will help in exploiting maximum parallelism. The existing method assumes tree of an expression as input. This chapter has discussed the data structures and the modules that have been used in the exploitation of parallelism. Also this chapter focuses on the parallel algorithm which detects and executes the arithmetic binary operations in 0(log n) time, where n is the number of elements of the arithmetic expression. The assumption of this algorithm is that the number of processors are as many as the number of elements of the arithmetic expression. In the next chapter this assumption is constrained to a limited few.
Informatica e Sistemi in Tempo Reale
Informatica e Sistemi in Tempo Reale Introduction to C programming Giuseppe Lipari http://retis.sssup.it/~lipari Scuola Superiore Sant Anna Pisa October 25, 2010 G. Lipari (Scuola Superiore Sant Anna)
More informationChapter 4 Register Transfer and Microoperations. Section 4.1 Register Transfer Language
Chapter 4 Register Transfer and Microoperations Section 4.1 Register Transfer Language Digital systems are composed of modules that are constructed from digital components, such as registers, decoders,
More information(Refer Slide Time: 00:01:16 min)
Digital Computer Organization Prof. P. K. Biswas Department of Electronic & Electrical Communication Engineering Indian Institute of Technology, Kharagpur Lecture No. # 04 CPU Design: Tirning & Control
More informationMICROPROCESSOR. Exclusive for IACE Students www.iace.co.in iacehyd.blogspot.in Ph: 9700077455/422 Page 1
MICROPROCESSOR A microprocessor incorporates the functions of a computer s central processing unit (CPU) on a single Integrated (IC), or at most a few integrated circuit. It is a multipurpose, programmable
More informationLet s put together a Manual Processor
Lecture 14 Let s put together a Manual Processor Hardware Lecture 14 Slide 1 The processor Inside every computer there is at least one processor which can take an instruction, some operands and produce
More informationAdvanced Computer Architecture-CS501. Computer Systems Design and Architecture 2.1, 2.2, 3.2
Lecture Handout Computer Architecture Lecture No. 2 Reading Material Vincent P. Heuring&Harry F. Jordan Chapter 2,Chapter3 Computer Systems Design and Architecture 2.1, 2.2, 3.2 Summary 1) A taxonomy of
More information7.1 Our Current Model
Chapter 7 The Stack In this chapter we examine what is arguably the most important abstract data type in computer science, the stack. We will see that the stack ADT and its implementation are very simple.
More informationModule 2 Stacks and Queues: Abstract Data Types
Module 2 Stacks and Queues: Abstract Data Types A stack is one of the most important and useful non-primitive linear data structure in computer science. It is an ordered collection of items into which
More informationUNIT 2 CLASSIFICATION OF PARALLEL COMPUTERS
UNIT 2 CLASSIFICATION OF PARALLEL COMPUTERS Structure Page Nos. 2.0 Introduction 27 2.1 Objectives 27 2.2 Types of Classification 28 2.3 Flynn s Classification 28 2.3.1 Instruction Cycle 2.3.2 Instruction
More informationMICROPROCESSOR AND MICROCOMPUTER BASICS
Introduction MICROPROCESSOR AND MICROCOMPUTER BASICS At present there are many types and sizes of computers available. These computers are designed and constructed based on digital and Integrated Circuit
More information150127-Microprocessor & Assembly Language
Chapter 3 Z80 Microprocessor Architecture The Z 80 is one of the most talented 8 bit microprocessors, and many microprocessor-based systems are designed around the Z80. The Z80 microprocessor needs an
More information5. A full binary tree with n leaves contains [A] n nodes. [B] log n 2 nodes. [C] 2n 1 nodes. [D] n 2 nodes.
1. The advantage of.. is that they solve the problem if sequential storage representation. But disadvantage in that is they are sequential lists. [A] Lists [B] Linked Lists [A] Trees [A] Queues 2. The
More informationEmbedded Systems. Review of ANSI C Topics. A Review of ANSI C and Considerations for Embedded C Programming. Basic features of C
Embedded Systems A Review of ANSI C and Considerations for Embedded C Programming Dr. Jeff Jackson Lecture 2-1 Review of ANSI C Topics Basic features of C C fundamentals Basic data types Expressions Selection
More informationName: Class: Date: 9. The compiler ignores all comments they are there strictly for the convenience of anyone reading the program.
Name: Class: Date: Exam #1 - Prep True/False Indicate whether the statement is true or false. 1. Programming is the process of writing a computer program in a language that the computer can respond to
More informationGlossary of Object Oriented Terms
Appendix E Glossary of Object Oriented Terms abstract class: A class primarily intended to define an instance, but can not be instantiated without additional methods. abstract data type: An abstraction
More informationCommon Data Structures
Data Structures 1 Common Data Structures Arrays (single and multiple dimensional) Linked Lists Stacks Queues Trees Graphs You should already be familiar with arrays, so they will not be discussed. Trees
More informationAtmiya Infotech Pvt. Ltd. Data Structure. By Ajay Raiyani. Yogidham, Kalawad Road, Rajkot. Ph : 572365, 576681 1
Data Structure By Ajay Raiyani Yogidham, Kalawad Road, Rajkot. Ph : 572365, 576681 1 Linked List 4 Singly Linked List...4 Doubly Linked List...7 Explain Doubly Linked list: -...7 Circular Singly Linked
More informationETEC 2301 Programmable Logic Devices. Chapter 10 Counters. Shawnee State University Department of Industrial and Engineering Technologies
ETEC 2301 Programmable Logic Devices Chapter 10 Counters Shawnee State University Department of Industrial and Engineering Technologies Copyright 2007 by Janna B. Gallaher Asynchronous Counter Operation
More informationBinary Search Trees. A Generic Tree. Binary Trees. Nodes in a binary search tree ( B-S-T) are of the form. P parent. Key. Satellite data L R
Binary Search Trees A Generic Tree Nodes in a binary search tree ( B-S-T) are of the form P parent Key A Satellite data L R B C D E F G H I J The B-S-T has a root node which is the only node whose parent
More informationDATA STRUCTURES USING C
DATA STRUCTURES USING C QUESTION BANK UNIT I 1. Define data. 2. Define Entity. 3. Define information. 4. Define Array. 5. Define data structure. 6. Give any two applications of data structures. 7. Give
More informationPROGRAMMABLE LOGIC CONTROLLERS Unit code: A/601/1625 QCF level: 4 Credit value: 15 TUTORIAL OUTCOME 2 Part 1
UNIT 22: PROGRAMMABLE LOGIC CONTROLLERS Unit code: A/601/1625 QCF level: 4 Credit value: 15 TUTORIAL OUTCOME 2 Part 1 This work covers part of outcome 2 of the Edexcel standard module. The material is
More informationSymbol Tables. Introduction
Symbol Tables Introduction A compiler needs to collect and use information about the names appearing in the source program. This information is entered into a data structure called a symbol table. The
More information2) Write in detail the issues in the design of code generator.
COMPUTER SCIENCE AND ENGINEERING VI SEM CSE Principles of Compiler Design Unit-IV Question and answers UNIT IV CODE GENERATION 9 Issues in the design of code generator The target machine Runtime Storage
More informationCS 3530 Operating Systems. L02 OS Intro Part 1 Dr. Ken Hoganson
CS 3530 Operating Systems L02 OS Intro Part 1 Dr. Ken Hoganson Chapter 1 Basic Concepts of Operating Systems Computer Systems A computer system consists of two basic types of components: Hardware components,
More informationAutomating with STEP7 in LAD and FBD
bisk Automating with STEP7 in LAD and FBD Programmable Controllers SIMATIC S7-300/400 by Hans Berger Publicis MCD Verlag Contents Indroduction 19 1 SIMATIC S7-300/400 Programmable Controller... 20 1.1
More informationMACHINE ARCHITECTURE & LANGUAGE
in the name of God the compassionate, the merciful notes on MACHINE ARCHITECTURE & LANGUAGE compiled by Jumong Chap. 9 Microprocessor Fundamentals A system designer should consider a microprocessor-based
More informationC Compiler Targeting the Java Virtual Machine
C Compiler Targeting the Java Virtual Machine Jack Pien Senior Honors Thesis (Advisor: Javed A. Aslam) Dartmouth College Computer Science Technical Report PCS-TR98-334 May 30, 1998 Abstract One of the
More informationUnordered Linked Lists
Unordered Linked Lists Derive class unorderedlinkedlist from the abstract class linkedlisttype Implement the operations search, insertfirst, insertlast, deletenode See code on page 292 Defines an unordered
More information2) What is the structure of an organization? Explain how IT support at different organizational levels.
(PGDIT 01) Paper - I : BASICS OF INFORMATION TECHNOLOGY 1) What is an information technology? Why you need to know about IT. 2) What is the structure of an organization? Explain how IT support at different
More informationChapter 13. Disk Storage, Basic File Structures, and Hashing
Chapter 13 Disk Storage, Basic File Structures, and Hashing Chapter Outline Disk Storage Devices Files of Records Operations on Files Unordered Files Ordered Files Hashed Files Dynamic and Extendible Hashing
More informationScalability and Classifications
Scalability and Classifications 1 Types of Parallel Computers MIMD and SIMD classifications shared and distributed memory multicomputers distributed shared memory computers 2 Network Topologies static
More informationLecture N -1- PHYS 3330. Microcontrollers
Lecture N -1- PHYS 3330 Microcontrollers If you need more than a handful of logic gates to accomplish the task at hand, you likely should use a microcontroller instead of discrete logic gates 1. Microcontrollers
More informationTopological Properties
Advanced Computer Architecture Topological Properties Routing Distance: Number of links on route Node degree: Number of channels per node Network diameter: Longest minimum routing distance between any
More informationFigure 1: Graphical example of a mergesort 1.
CSE 30321 Computer Architecture I Fall 2011 Lab 02: Procedure Calls in MIPS Assembly Programming and Performance Total Points: 100 points due to its complexity, this lab will weight more heavily in your
More informationLumousoft Visual Programming Language and its IDE
Lumousoft Visual Programming Language and its IDE Xianliang Lu Lumousoft Inc. Waterloo Ontario Canada Abstract - This paper presents a new high-level graphical programming language and its IDE (Integration
More informationEmbedded Software development Process and Tools: Lesson-4 Linking and Locating Software
Embedded Software development Process and Tools: Lesson-4 Linking and Locating Software 1 1. Linker 2 Linker Links the compiled codes of application software, object codes from library and OS kernel functions.
More informationa storage location directly on the CPU, used for temporary storage of small amounts of data during processing.
CS143 Handout 18 Summer 2008 30 July, 2008 Processor Architectures Handout written by Maggie Johnson and revised by Julie Zelenski. Architecture Vocabulary Let s review a few relevant hardware definitions:
More informationData Structures Using C++ 2E. Chapter 5 Linked Lists
Data Structures Using C++ 2E Chapter 5 Linked Lists Doubly Linked Lists Traversed in either direction Typical operations Initialize the list Destroy the list Determine if list empty Search list for a given
More informationC Programming. for Embedded Microcontrollers. Warwick A. Smith. Postbus 11. Elektor International Media BV. 6114ZG Susteren The Netherlands
C Programming for Embedded Microcontrollers Warwick A. Smith Elektor International Media BV Postbus 11 6114ZG Susteren The Netherlands 3 the Table of Contents Introduction 11 Target Audience 11 What is
More informationChapter 5 Instructor's Manual
The Essentials of Computer Organization and Architecture Linda Null and Julia Lobur Jones and Bartlett Publishers, 2003 Chapter 5 Instructor's Manual Chapter Objectives Chapter 5, A Closer Look at Instruction
More informationExample-driven Interconnect Synthesis for Heterogeneous Coarse-Grain Reconfigurable Logic
Example-driven Interconnect Synthesis for Heterogeneous Coarse-Grain Reconfigurable Logic Clifford Wolf, Johann Glaser, Florian Schupfer, Jan Haase, Christoph Grimm Computer Technology /99 Overview Ultra-Low-Power
More informationModule-I Lecture-I Introduction to Digital VLSI Design Flow
Design Verification and Test of Digital VLSI Circuits NPTEL Video Course Module-I Lecture-I Introduction to Digital VLSI Design Flow Introduction The functionality of electronics equipments and gadgets
More informationAutomating witfi STEP7 in LAD and FBD
Automating witfi STEP7 in LAD and FBD Programmable Controllers SIMATIC S7-300/400 by Hans Berger 2nd revised edition, 2001 Publicis MCD Corporate Publishing Contents Contents Indroduction 19 1 SIMATIC
More informationAlgorithms and Data Structures
Algorithms and Data Structures Part 2: Data Structures PD Dr. rer. nat. habil. Ralf-Peter Mundani Computation in Engineering (CiE) Summer Term 2016 Overview general linked lists stacks queues trees 2 2
More informationHandout 1. Introduction to Java programming language. Java primitive types and operations. Reading keyboard Input using class Scanner.
Handout 1 CS603 Object-Oriented Programming Fall 15 Page 1 of 11 Handout 1 Introduction to Java programming language. Java primitive types and operations. Reading keyboard Input using class Scanner. Java
More informationImproved metrics collection and correlation for the CERN cloud storage test framework
Improved metrics collection and correlation for the CERN cloud storage test framework September 2013 Author: Carolina Lindqvist Supervisors: Maitane Zotes Seppo Heikkila CERN openlab Summer Student Report
More information1) The postfix expression for the infix expression A+B*(C+D)/F+D*E is ABCD+*F/DE*++
Answer the following 1) The postfix expression for the infix expression A+B*(C+D)/F+D*E is ABCD+*F/DE*++ 2) Which data structure is needed to convert infix notations to postfix notations? Stack 3) The
More informationA s we saw in Chapter 4, a CPU contains three main sections: the register section,
6 CPU Design A s we saw in Chapter 4, a CPU contains three main sections: the register section, the arithmetic/logic unit (ALU), and the control unit. These sections work together to perform the sequences
More information8051 MICROCONTROLLER COURSE
8051 MICROCONTROLLER COURSE Objective: 1. Familiarization with different types of Microcontroller 2. To know 8051 microcontroller in detail 3. Programming and Interfacing 8051 microcontroller Prerequisites:
More informationPaper 109-25 Merges and Joins Timothy J Harrington, Trilogy Consulting Corporation
Paper 109-25 Merges and Joins Timothy J Harrington, Trilogy Consulting Corporation Abstract This paper discusses methods of joining SAS data sets. The different methods and the reasons for choosing a particular
More informationİSTANBUL AYDIN UNIVERSITY
İSTANBUL AYDIN UNIVERSITY FACULTY OF ENGİNEERİNG SOFTWARE ENGINEERING THE PROJECT OF THE INSTRUCTION SET COMPUTER ORGANIZATION GÖZDE ARAS B1205.090015 Instructor: Prof. Dr. HASAN HÜSEYİN BALIK DECEMBER
More informationOutline. hardware components programming environments. installing Python executing Python code. decimal and binary notations running Sage
Outline 1 Computer Architecture hardware components programming environments 2 Getting Started with Python installing Python executing Python code 3 Number Systems decimal and binary notations running
More informationCompiler I: Syntax Analysis Human Thought
Course map Compiler I: Syntax Analysis Human Thought Abstract design Chapters 9, 12 H.L. Language & Operating Sys. Compiler Chapters 10-11 Virtual Machine Software hierarchy Translator Chapters 7-8 Assembly
More informationWriting Control Structures
Writing Control Structures Copyright 2006, Oracle. All rights reserved. Oracle Database 10g: PL/SQL Fundamentals 5-1 Objectives After completing this lesson, you should be able to do the following: Identify
More information10CS35: Data Structures Using C
CS35: Data Structures Using C QUESTION BANK REVIEW OF STRUCTURES AND POINTERS, INTRODUCTION TO SPECIAL FEATURES OF C OBJECTIVE: Learn : Usage of structures, unions - a conventional tool for handling a
More informationA single register, called the accumulator, stores the. operand before the operation, and stores the result. Add y # add y from memory to the acc
Other architectures Example. Accumulator-based machines A single register, called the accumulator, stores the operand before the operation, and stores the result after the operation. Load x # into acc
More informationData Structures For IP Lookup With Bursty Access Patterns
Data Structures For IP Lookup With Bursty Access Patterns Sartaj Sahni & Kun Suk Kim sahni, kskim @cise.ufl.edu Department of Computer and Information Science and Engineering University of Florida, Gainesville,
More informationOn Demand Loading of Code in MMUless Embedded System
On Demand Loading of Code in MMUless Embedded System Sunil R Gandhi *. Chetan D Pachange, Jr.** Mandar R Vaidya***, Swapnilkumar S Khorate**** *Pune Institute of Computer Technology, Pune INDIA (Mob- 8600867094;
More informationAnnotation to the assignments and the solution sheet. Note the following points
Computer rchitecture 2 / dvanced Computer rchitecture Seite: 1 nnotation to the assignments and the solution sheet This is a multiple choice examination, that means: Solution approaches are not assessed
More informationMONITORING PERFORMANCE IN WINDOWS 7
MONITORING PERFORMANCE IN WINDOWS 7 Performance Monitor In this demo we will take a look at how we can use the Performance Monitor to capture information about our machine performance. We can access Performance
More informationParallel and Distributed Computing Programming Assignment 1
Parallel and Distributed Computing Programming Assignment 1 Due Monday, February 7 For programming assignment 1, you should write two C programs. One should provide an estimate of the performance of ping-pong
More informationVB.NET Programming Fundamentals
Chapter 3 Objectives Programming Fundamentals In this chapter, you will: Learn about the programming language Write a module definition Use variables and data types Compute with Write decision-making statements
More informationDeploying De-Duplication on Ext4 File System
Deploying De-Duplication on Ext4 File System Usha A. Joglekar 1, Bhushan M. Jagtap 2, Koninika B. Patil 3, 1. Asst. Prof., 2, 3 Students Department of Computer Engineering Smt. Kashibai Navale College
More informationInstruction Set Architecture (ISA)
Instruction Set Architecture (ISA) * Instruction set architecture of a machine fills the semantic gap between the user and the machine. * ISA serves as the starting point for the design of a new machine
More informationSystolic Computing. Fundamentals
Systolic Computing Fundamentals Motivations for Systolic Processing PARALLEL ALGORITHMS WHICH MODEL OF COMPUTATION IS THE BETTER TO USE? HOW MUCH TIME WE EXPECT TO SAVE USING A PARALLEL ALGORITHM? HOW
More informationDigital System Design Prof. D Roychoudhry Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur
Digital System Design Prof. D Roychoudhry Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur Lecture - 04 Digital Logic II May, I before starting the today s lecture
More informationCHAPTER 5 FINITE STATE MACHINE FOR LOOKUP ENGINE
CHAPTER 5 71 FINITE STATE MACHINE FOR LOOKUP ENGINE 5.1 INTRODUCTION Finite State Machines (FSMs) are important components of digital systems. Therefore, techniques for area efficiency and fast implementation
More informationOverview. CISC Developments. RISC Designs. CISC Designs. VAX: Addressing Modes. Digital VAX
Overview CISC Developments Over Twenty Years Classic CISC design: Digital VAX VAXÕs RISC successor: PRISM/Alpha IntelÕs ubiquitous 80x86 architecture Ð 8086 through the Pentium Pro (P6) RJS 2/3/97 Philosophy
More informationPART-A Questions. 2. How does an enumerated statement differ from a typedef statement?
1. Distinguish & and && operators. PART-A Questions 2. How does an enumerated statement differ from a typedef statement? 3. What are the various members of a class? 4. Who can access the protected members
More informationAn Overview of Stack Architecture and the PSC 1000 Microprocessor
An Overview of Stack Architecture and the PSC 1000 Microprocessor Introduction A stack is an important data handling structure used in computing. Specifically, a stack is a dynamic set of elements in which
More informationPhysical Data Organization
Physical Data Organization Database design using logical model of the database - appropriate level for users to focus on - user independence from implementation details Performance - other major factor
More informationPES Institute of Technology-BSC QUESTION BANK
PES Institute of Technology-BSC Faculty: Mrs. R.Bharathi CS35: Data Structures Using C QUESTION BANK UNIT I -BASIC CONCEPTS 1. What is an ADT? Briefly explain the categories that classify the functions
More informationMACHINE INSTRUCTIONS AND PROGRAMS
CHAPTER 2 MACHINE INSTRUCTIONS AND PROGRAMS CHAPTER OBJECTIVES In this chapter you will learn about: Machine instructions and program execution, including branching and subroutine call and return operations
More informationFaculty of Engineering Student Number:
Philadelphia University Student Name: Faculty of Engineering Student Number: Dept. of Computer Engineering Final Exam, First Semester: 2012/2013 Course Title: Microprocessors Date: 17/01//2013 Course No:
More information- Easy to insert & delete in O(1) time - Don t need to estimate total memory needed. - Hard to search in less than O(n) time
Skip Lists CMSC 420 Linked Lists Benefits & Drawbacks Benefits: - Easy to insert & delete in O(1) time - Don t need to estimate total memory needed Drawbacks: - Hard to search in less than O(n) time (binary
More informationKITES TECHNOLOGY COURSE MODULE (C, C++, DS)
KITES TECHNOLOGY 360 Degree Solution www.kitestechnology.com/academy.php info@kitestechnology.com technologykites@gmail.com Contact: - 8961334776 9433759247 9830639522.NET JAVA WEB DESIGN PHP SQL, PL/SQL
More information2. Capitalize initial keyword In the example above, READ and WRITE are in caps. There are just a few keywords we will use:
Pseudocode: An Introduction Flowcharts were the first design tool to be widely used, but unfortunately they do t very well reflect some of the concepts of structured programming. Pseudocode, on the other
More informationInstruction Set Architecture. or How to talk to computers if you aren t in Star Trek
Instruction Set Architecture or How to talk to computers if you aren t in Star Trek The Instruction Set Architecture Application Compiler Instr. Set Proc. Operating System I/O system Instruction Set Architecture
More informationComputer Architecture Lecture 2: Instruction Set Principles (Appendix A) Chih Wei Liu 劉 志 尉 National Chiao Tung University cwliu@twins.ee.nctu.edu.
Computer Architecture Lecture 2: Instruction Set Principles (Appendix A) Chih Wei Liu 劉 志 尉 National Chiao Tung University cwliu@twins.ee.nctu.edu.tw Review Computers in mid 50 s Hardware was expensive
More informationFile Management. Chapter 12
Chapter 12 File Management File is the basic element of most of the applications, since the input to an application, as well as its output, is usually a file. They also typically outlive the execution
More informationChapter 2: Elements of Java
Chapter 2: Elements of Java Basic components of a Java program Primitive data types Arithmetic expressions Type casting. The String type (introduction) Basic I/O statements Importing packages. 1 Introduction
More information(Cat. No. 1775-L3) Product Data
(Cat. No. 1775-L3) Product Data When it comes to programmable controllers, the more power you can put into a chassis slot, the more control potential you have. The PLC-3 programmable controller, already
More informationChapter 2 Logic Gates and Introduction to Computer Architecture
Chapter 2 Logic Gates and Introduction to Computer Architecture 2.1 Introduction The basic components of an Integrated Circuit (IC) is logic gates which made of transistors, in digital system there are
More informationSkyRecon Cryptographic Module (SCM)
SkyRecon Cryptographic Module (SCM) FIPS 140-2 Documentation: Security Policy Abstract This document specifies the security policy for the SkyRecon Cryptographic Module (SCM) as described in FIPS PUB 140-2.
More informationChapter 7D The Java Virtual Machine
This sub chapter discusses another architecture, that of the JVM (Java Virtual Machine). In general, a VM (Virtual Machine) is a hypothetical machine (implemented in either hardware or software) that directly
More informationAnalysis of Compression Algorithms for Program Data
Analysis of Compression Algorithms for Program Data Matthew Simpson, Clemson University with Dr. Rajeev Barua and Surupa Biswas, University of Maryland 12 August 3 Abstract Insufficient available memory
More informationChapter 11 I/O Management and Disk Scheduling
Operating Systems: Internals and Design Principles, 6/E William Stallings Chapter 11 I/O Management and Disk Scheduling Dave Bremer Otago Polytechnic, NZ 2008, Prentice Hall I/O Devices Roadmap Organization
More informationExceptions in MIPS. know the exception mechanism in MIPS be able to write a simple exception handler for a MIPS machine
7 Objectives After completing this lab you will: know the exception mechanism in MIPS be able to write a simple exception handler for a MIPS machine Introduction Branches and jumps provide ways to change
More informationFPGA area allocation for parallel C applications
1 FPGA area allocation for parallel C applications Vlad-Mihai Sima, Elena Moscu Panainte, Koen Bertels Computer Engineering Faculty of Electrical Engineering, Mathematics and Computer Science Delft University
More informationMemory Systems. Static Random Access Memory (SRAM) Cell
Memory Systems This chapter begins the discussion of memory systems from the implementation of a single bit. The architecture of memory chips is then constructed using arrays of bit implementations coupled
More informationBachelors of Computer Application Programming Principle & Algorithm (BCA-S102T)
Unit- I Introduction to c Language: C is a general-purpose computer programming language developed between 1969 and 1973 by Dennis Ritchie at the Bell Telephone Laboratories for use with the Unix operating
More informationEE 261 Introduction to Logic Circuits. Module #2 Number Systems
EE 261 Introduction to Logic Circuits Module #2 Number Systems Topics A. Number System Formation B. Base Conversions C. Binary Arithmetic D. Signed Numbers E. Signed Arithmetic F. Binary Codes Textbook
More informationChapter 13. Chapter Outline. Disk Storage, Basic File Structures, and Hashing
Chapter 13 Disk Storage, Basic File Structures, and Hashing Copyright 2007 Ramez Elmasri and Shamkant B. Navathe Chapter Outline Disk Storage Devices Files of Records Operations on Files Unordered Files
More informationSystem Software Prof. Dr. H. Mössenböck
System Software Prof. Dr. H. Mössenböck 1. Memory Management 2. Garbage Collection 3. Linkers and Loaders 4. Debuggers 5. Text Editors Marks obtained by end-term exam http://ssw.jku.at/misc/ssw/ 1. Memory
More information2.0 Chapter Overview. 2.1 Boolean Algebra
Thi d t t d ith F M k 4 0 2 Boolean Algebra Chapter Two Logic circuits are the basis for modern digital computer systems. To appreciate how computer systems operate you will need to understand digital
More informationChapter 2 Assemblers http://www.intel.com/multi-core/demos.htm
Chapter 2 Assemblers http://www.intel.com/multi-core/demos.htm Source Program Assembler Object Code Linker Executable Code Loader 1 Outline 2.1 Basic Assembler Functions A simple SIC assembler Assembler
More informationINTEGRATED CIRCUITS. For a complete data sheet, please also download:
INTEGRATED CIRCUITS DATA SHEET For a complete data sheet, please also download: The IC06 74HC/HCT/HCU/HCMOS Logic Family Specifications The IC06 74HC/HCT/HCU/HCMOS Logic Package Information The IC06 74HC/HCT/HCU/HCMOS
More informationCOMPUTER SCIENCE TRIPOS
CST.98.5.1 COMPUTER SCIENCE TRIPOS Part IB Wednesday 3 June 1998 1.30 to 4.30 Paper 5 Answer five questions. No more than two questions from any one section are to be answered. Submit the answers in five
More informationSystem Interconnect Architectures. Goals and Analysis. Network Properties and Routing. Terminology - 2. Terminology - 1
System Interconnect Architectures CSCI 8150 Advanced Computer Architecture Hwang, Chapter 2 Program and Network Properties 2.4 System Interconnect Architectures Direct networks for static connections Indirect
More informationGet an Easy Performance Boost Even with Unthreaded Apps. with Intel Parallel Studio XE for Windows*
Get an Easy Performance Boost Even with Unthreaded Apps for Windows* Can recompiling just one file make a difference? Yes, in many cases it can! Often, you can achieve a major performance boost by recompiling
More information