CHAPTER 4 THE PARALLEL ALGORITHM FOR DETECTION AND EXECUTION OF ARITHMETIC OPERATIONS AT INTRAINSTRUCTION LEVEL

Size: px
Start display at page:

Download "CHAPTER 4 THE PARALLEL ALGORITHM FOR DETECTION AND EXECUTION OF ARITHMETIC OPERATIONS AT INTRAINSTRUCTION LEVEL"

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 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 information

Chapter 4 Register Transfer and Microoperations. Section 4.1 Register Transfer Language

Chapter 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)

(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 information

MICROPROCESSOR. Exclusive for IACE Students www.iace.co.in iacehyd.blogspot.in Ph: 9700077455/422 Page 1

MICROPROCESSOR. 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 information

Let s put together a Manual Processor

Let 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 information

Advanced Computer Architecture-CS501. Computer Systems Design and Architecture 2.1, 2.2, 3.2

Advanced 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 information

7.1 Our Current Model

7.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 information

Module 2 Stacks and Queues: Abstract Data Types

Module 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 information

UNIT 2 CLASSIFICATION OF PARALLEL COMPUTERS

UNIT 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 information

MICROPROCESSOR AND MICROCOMPUTER BASICS

MICROPROCESSOR 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 information

150127-Microprocessor & Assembly Language

150127-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 information

5. A full binary tree with n leaves contains [A] n nodes. [B] log n 2 nodes. [C] 2n 1 nodes. [D] n 2 nodes.

5. 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 information

Embedded Systems. Review of ANSI C Topics. A Review of ANSI C and Considerations for Embedded C Programming. Basic features of C

Embedded 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 information

Name: Class: Date: 9. The compiler ignores all comments they are there strictly for the convenience of anyone reading the program.

Name: 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 information

Glossary of Object Oriented Terms

Glossary 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 information

Common Data Structures

Common 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 information

Atmiya Infotech Pvt. Ltd. Data Structure. By Ajay Raiyani. Yogidham, Kalawad Road, Rajkot. Ph : 572365, 576681 1

Atmiya 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 information

ETEC 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 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 information

Binary 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. 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 information

DATA STRUCTURES USING C

DATA 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 information

PROGRAMMABLE LOGIC CONTROLLERS Unit code: A/601/1625 QCF level: 4 Credit value: 15 TUTORIAL OUTCOME 2 Part 1

PROGRAMMABLE 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 information

Symbol Tables. Introduction

Symbol 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 information

2) Write in detail the issues in the design of code generator.

2) 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 information

CS 3530 Operating Systems. L02 OS Intro Part 1 Dr. Ken Hoganson

CS 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 information

Automating with STEP7 in LAD and FBD

Automating 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 information

MACHINE ARCHITECTURE & LANGUAGE

MACHINE 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 information

C Compiler Targeting the Java Virtual Machine

C 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 information

Unordered Linked Lists

Unordered 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 information

2) What is the structure of an organization? Explain how IT support at different organizational levels.

2) 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 information

Chapter 13. Disk Storage, Basic File Structures, and Hashing

Chapter 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 information

Scalability and Classifications

Scalability 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 information

Lecture N -1- PHYS 3330. Microcontrollers

Lecture 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 information

Topological Properties

Topological 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 information

Figure 1: Graphical example of a mergesort 1.

Figure 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 information

Lumousoft Visual Programming Language and its IDE

Lumousoft 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 information

Embedded Software development Process and Tools: Lesson-4 Linking and Locating Software

Embedded 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 information

a storage location directly on the CPU, used for temporary storage of small amounts of data during processing.

a 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 information

Data Structures Using C++ 2E. Chapter 5 Linked Lists

Data 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 information

C 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. 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 information

Chapter 5 Instructor's Manual

Chapter 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 information

Example-driven Interconnect Synthesis for Heterogeneous Coarse-Grain Reconfigurable Logic

Example-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 information

Module-I Lecture-I Introduction to Digital VLSI Design Flow

Module-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 information

Automating witfi STEP7 in LAD and FBD

Automating 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 information

Algorithms and Data Structures

Algorithms 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 information

Handout 1. Introduction to Java programming language. Java primitive types and operations. Reading keyboard Input using class Scanner.

Handout 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 information

Improved metrics collection and correlation for the CERN cloud storage test framework

Improved 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 information

1) The postfix expression for the infix expression A+B*(C+D)/F+D*E is ABCD+*F/DE*++

1) 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 information

A s we saw in Chapter 4, a CPU contains three main sections: the register section,

A 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 information

8051 MICROCONTROLLER COURSE

8051 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 information

Paper 109-25 Merges and Joins Timothy J Harrington, Trilogy Consulting Corporation

Paper 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 İ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 information

Outline. hardware components programming environments. installing Python executing Python code. decimal and binary notations running Sage

Outline. 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 information

Compiler I: Syntax Analysis Human Thought

Compiler 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 information

Writing Control Structures

Writing 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 information

10CS35: Data Structures Using C

10CS35: 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 information

A single register, called the accumulator, stores the. operand before the operation, and stores the result. Add y # add y from memory to the acc

A 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 information

Data Structures For IP Lookup With Bursty Access Patterns

Data 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 information

On Demand Loading of Code in MMUless Embedded System

On 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 information

Annotation to the assignments and the solution sheet. Note the following points

Annotation 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 information

MONITORING PERFORMANCE IN WINDOWS 7

MONITORING 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 information

Parallel and Distributed Computing Programming Assignment 1

Parallel 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 information

VB.NET Programming Fundamentals

VB.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 information

Deploying De-Duplication on Ext4 File System

Deploying 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 information

Instruction Set Architecture (ISA)

Instruction 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 information

Systolic Computing. Fundamentals

Systolic 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 information

Digital 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 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 information

CHAPTER 5 FINITE STATE MACHINE FOR LOOKUP ENGINE

CHAPTER 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 information

Overview. CISC Developments. RISC Designs. CISC Designs. VAX: Addressing Modes. Digital VAX

Overview. 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 information

PART-A Questions. 2. How does an enumerated statement differ from a typedef statement?

PART-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 information

An Overview of Stack Architecture and the PSC 1000 Microprocessor

An 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 information

Physical Data Organization

Physical 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 information

PES Institute of Technology-BSC QUESTION BANK

PES 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 information

MACHINE INSTRUCTIONS AND PROGRAMS

MACHINE 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 information

Faculty of Engineering Student Number:

Faculty 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

- 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 information

KITES TECHNOLOGY COURSE MODULE (C, C++, DS)

KITES 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 information

2. Capitalize initial keyword In the example above, READ and WRITE are in caps. There are just a few keywords we will use:

2. 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 information

Instruction 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 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 information

Computer 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. 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 information

File Management. Chapter 12

File 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 information

Chapter 2: Elements of Java

Chapter 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 (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 information

Chapter 2 Logic Gates and Introduction to Computer Architecture

Chapter 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 information

SkyRecon Cryptographic Module (SCM)

SkyRecon 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 information

Chapter 7D The Java Virtual Machine

Chapter 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 information

Analysis of Compression Algorithms for Program Data

Analysis 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 information

Chapter 11 I/O Management and Disk Scheduling

Chapter 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 information

Exceptions in MIPS. know the exception mechanism in MIPS be able to write a simple exception handler for a MIPS machine

Exceptions 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 information

FPGA area allocation for parallel C applications

FPGA 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 information

Memory Systems. Static Random Access Memory (SRAM) Cell

Memory 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 information

Bachelors of Computer Application Programming Principle & Algorithm (BCA-S102T)

Bachelors 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 information

EE 261 Introduction to Logic Circuits. Module #2 Number Systems

EE 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 information

Chapter 13. Chapter Outline. Disk Storage, Basic File Structures, and Hashing

Chapter 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 information

System Software Prof. Dr. H. Mössenböck

System 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 information

2.0 Chapter Overview. 2.1 Boolean Algebra

2.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 information

Chapter 2 Assemblers http://www.intel.com/multi-core/demos.htm

Chapter 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 information

INTEGRATED CIRCUITS. For a complete data sheet, please also download:

INTEGRATED 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 information

COMPUTER SCIENCE TRIPOS

COMPUTER 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 information

System Interconnect Architectures. Goals and Analysis. Network Properties and Routing. Terminology - 2. Terminology - 1

System 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 information

Get an Easy Performance Boost Even with Unthreaded Apps. with Intel Parallel Studio XE for Windows*

Get 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