Attaining EDF Task Scheduling with O(1) Time Complexity

Save this PDF as:
 WORD  PNG  TXT  JPG

Size: px
Start display at page:

Download "Attaining EDF Task Scheduling with O(1) Time Complexity"

Transcription

1 Attaining EDF Task Scheduling with O(1) Time Complexity Verber Domen University of Maribor, Faculty of Electrical Engineering and Computer Sciences, Maribor, Slovenia ( Abstract: For hard real-time systems, the Earliest Deadline First (EDF) scheduling is the best solution for single processor systems. Unfortunately, the EDF algorithm has complexity of O(N 2 ). Because the scheduling introduces interference in normal operation of the control application and prolongs the reaction times, it would be beneficial if we could reduce its influence. One way to do this coul be to implement the EDF scheduling of the lowest possible complexity and with the shortest execution time. This can be done using parallel execution where hardware resources are employed. In the article the optimal implementation of EDF scheduling is elaborated where tasks are kept in hardware implemented sorted list. This list is then updated whenever a task becomes active, suspended or is terminated. This virtually eliminates the impact of the scheduling on the normal application execution. In addition, because it is implemented in hardware, it outperforms any software implementation. Keywords: Embedded systems, real-time, scheduling algorithms, computational complexity, EDF. 1. INTRODUCTION In the paper, real-time embedded systems are discussed. In such systems, the given functionality must be performed in timely fashion, i.e. regardless of the situation in the system some operations must be completed within some predefined time interval. This can be realized only if a proper management of the tasks (jobs) is set. Traditionally, this is performed by the operating system. However, proper management of embedded system may be complex and timeconsuming task that interferes with normal operation of the system if performed on the same processor. Because of this, it would be beneficial if such impact could be reduced or eliminated altogether. One of the solutions is to employ a coprocessor that can perform the functionality of the operating system in parallel to the execution of application. The coprocessor interacts with the application only when the work of the application must be rearranged. Such solution also decreases the complexity of system design and analysis of temporal circumstances that may occur in the system. It also decreases the minimum reaction times and increases the throughput of the system. In addition to task scheduling, the coprocessor must also perform other functionalities of the operating systems (e.g. tasks synchronization, inter-task communication, etc.). The coprocessor can be implemented as additional standard (micro) processor that is dedicated solely to perform the job of the operating system. Nowadays multi-core processors solutions are available and they will become more and more popular with embedded systems. Therefore, the implementation where one of the processor cores is dedicated exclusively to operating system operations is feasible. However, because of the complexity of the algorithms for real-time operating systems, it may perform poorly irrespective of its processing power. The communication with the main processor must be synchronized with coprocessor s activities, which may additionally prolong the reaction. The second solution is to employ customized hardware implementation that is dedicated to operating system functionalities. This approach virtually eliminates the impact of the operating system to the normal application execution for several reasons. Firstly, the functionality of operating systems may be divided into independent functions, which are then implemented in parallel as separate processes on the hardware device. Secondly, the synchronization with the main processor can also be implemented asynchronously to other functionalities and have much smaller overhead. In addition, because it is implemented with hardware means, this approach outperforms in speed any software implementation. Such OS-on-a-chip may be used with less powerful main processors allowing cheaper and more powerefficient solutions. Such device can be also formally verified and certified for higher safety integrity levels than the software implementation. Furthermore, such device may serve additional purposes. For example, it can be used as intelligent I/O device, it may implement communication layer in distributed control systems, etc. Similar architecture was studied and successfully implemented in the IFATIS project (IFATIS (2005)). With new approach presented in the paper, further improvements are expected. The paper focuses on hardware implantation of one of the most important part of an operating system: the task scheduling. This is only one part of the functionalities that must be performed by the operating system. Nevertheless, this part has the greatest influence on temporal behaviour of the systems. In the first part of the paper, a brief introduction to tasks and task scheduling for hard real-time embedded systems is given with focus on Earliest Deadline First (EDF) scheduling. In the second part, the modification of EDF algorithm is studied that executes in constant time

2 independent on the number of the tasks in the system. In the third part some hardware implementation consideration of such algorithm are presented. 2. TASKS AND TASK SCHEDULING Typically, embedded application consists of several computing processes or tasks. Most often there are much more tasks than processing facilities which execute them, therefore some tasks must be executed sequentially. To execute tasks effectively, a proper schedule (or arrangement) of tasks must be found that conforms to some restrictions. This process is known as task scheduling. For simple applications, the task scheduling can be performed in advance (a priori). In complex systems however, where the situation frequently changes, this simple scheme is not adequate. A task may be dormant (inactive), ready for the execution (active) or executing on the processor. An active task may be temporary suspended in execution due to unavailability of some system resource, because of the need for synchronizations with other tasks, etc. In this case, the schedules of tasks must be determined dynamically. Traditionally some kind of priority is used to determine which task must be executed next. An active task with the highest priority is always executed first. If needed, tasks with lower priority may temporally be suspended to allow the running of the more important ones. However, the priority based scheduling strategies are not adequate for hard realtime systems (Cooling (1993)). In these systems, when a task is started, it must be finished prior some predetermined deadline regardless of the conditions in the system. Therefore, a schedule of tasks must be constructed in such way that all tasks will meet their deadlines by taking into account their execution times and other time-delaying factors in the system. Such a schedule is called feasible. Several deadlines driven scheduling methods exist. One of them is Earliest Deadline First (EDF) strategy, which is proven to be the best solution for single processor systems. 2.1 EDF task scheduling In EDF, task with the shortest deadlines must be executed first. To find it, the scheduler must seek through the list of ready tasks and find the task with the shortest deadline. This can be represented with a simple pseudo code: min_task_index = 0 min_deadline = for i=1 to n do if taskinfo[i].deadline < min_deadline then min_deadline = taskinfo[i].deadline min_task_index = i The taskinfo array holds the information of all ready tasks in the system. This process must be executed every time a new task become active (i.e. ready for the execution) or when currently running task is suspended or terminated. Termination or suspension of tasks other than the currently running does not influence the schedule. However, this is only a part of the work that must be done by scheduler. The next important thing is to prove that the schedule is feasible (i.e. that all active tasks will meet theirs deadlines). For the EDF, the schedule is feasible if the next Equation is fulfilled for each active task: k ak li, k = 1,..., n i= 1 This Equation states that the sum of the remaining execution times l i of all tasks T i scheduled to run before, and including task T k, must be less or equal to the relative time of deadline a k of task T k. In other words, the cumulative workload to be performed prior and during execution of task T k must be completed before its deadline. The tasks are sorted by their ascending deadlines. Again, the condition determined by the formula is static, and must be re-evaluated only when one or more of the tasks change their states. This schedulability check can be converted into a form with a double nested loop, illustrated with the next pseudo code: cumulative_finish_time = current_time for i=1 to n do for j=i+1 to n do if taskinfo[j].deadline < taskinfo[i].deadline then swap(taskinfo[i],taskinfo[j]) cumulative_finish_time = cumulative_finish_time+ taskinfo[i].remaining_exec_time if cumulative_finish_time > taskinfo[i].deadline then raise deadline_violation_error The first part of the outer loop is used to sort the data according the deadlines of tasks. As a side effect, the algorithm also puts the task with the shortest deadline in the first place of the array. Therefore, the searching for the tasks with shortest deadline can be combined with the feasibility check. In the second part of the outer loop, feasibility is tested by first adding the remaining execution time of the current task to the cumulative execution time and comparing it to the task's deadline. 2.2 Optimization of the EDF algorithm As a drawback, the EDF feasibility check described above requires N 2 /2 iterations (for the N active tasks) which is much more in comparison to priority based task scheduling; to find a task with the highest priority, only N iterations are required. The complexity of the algorithm may be reduced if the sorting part of the algorithm is somehow eliminated. This may be achieved with maintaining the taskinfo array sorted all the time. However, the such implementation of EDF algorithm is not complete. If the taskinfo array follows to be properly maintained all of the time, in addition to task activation, other tasking operations such as task termination and task suspension/continuation and must be considered. (1)

3 Task activation When a new task becomes active, the algorithm must find the proper place for it in the array, according to its deadline. The information of a new task must be inserted between some existing tasks by shifting the remaining content of the array toward its end. At the same time, the cumulative finish time must be updated and feasibility check must be performed. This can be described with following pseudo code: pos = i for j=1 to n-i do if taskinfo[j].deadline>curr_data.deadline then pos = j break for j=n-i downto pos do taskinfo[j+1]=taskinfo[j] taskinfo[pos] = curr_data At the beginning, first element in the array with the longer deadline that the one to be added is determined. Once this position is determined, the remaining data in the array is shifted to the end and the new data is inserted into the gap. At the first look, the complexity of this algorithm is O(n). Indeed, if we implement this algorithm sequentially, this is true. However, both loops can be parallelized, i.e. all iteration of the loop can be executed at the same time. The first loop has no data dependency in it and it can be easily parallelized by the comparison of the current task s deadline with the deadlines already in the table. This can be done in parallel if a comparator is used with each element in the list. The second loop has data dependency between two loop iterations. Several elements of the array are accessed and modified from two loop iterations. However, this part of the code is only the sequential program representation of a shift operation. In hardware architectures, shift registers and queues are frequently used where pieces of data are moved in similar way. Therefore, the second loop can be implemented by linking the elements of the taskinfo table in serial fashion. This approach also requires modification of the feasibility check. According to (1) we must sum the remaining execution time of tasks every time the new task is added. This requires a loop that cannot be completely parallelized. To avoid this, each element of the taskinfo table must be expanded with the current remaining execution of all tasks before and including the current one. This attribute stands for the cumulative_finish_time variable in the original EDF algorithm. To keep this attribute properly updated, every time when new task information is put in the list, its remaining execution time must be added to all elements in the list after it. Notably, those are the same elements that were shifted previously. To get the total remaining execution time for the current task, its value is summated with the value of the element before it. Because the remaining execution time is in relative form, and the deadline is kept in the absolute form, it must be converted to properly compared with the deadlines. To achieve this, when a new data is put in the first cell of the list, its remaining execution time is enlarged by the value of the current time. Thereafter, this value will eventually propagate through all elements of the list. Now the parallel version of the EDF algorithm may be summarized as a sequence of four steps. Because of limitations of sequential programming language for hardware implementation it is better to use plain text do describe them. Step 1: Compare the deadlines of all elements in the list with the current one and mark elements with greater deadlines. Step 2: Shift all marked elements to the end of the list by copying all the data. Update (set) mark for the last element in the list to be included in the next step. Step 3: Fill the gap with the current task s information. Add the remaining execution time of the current task to the cumulative execution time of all marked elements. If the first element in the list is updated, set its current cumulative execution time to the values of the current system time. Step 4: Compare the cumulative execution times with the corresponding deadlines and mark all elements where deadline will be violated. Each step has fixed execution time, therefore the time complexity of this algorithm become O(1). Further improvements are possible if some of the steps may be executed in parallel. If the resources for fast comparison of steps 1 and 4 are available, each first and the second pair of steps can be executed in parallel. Task termination When a task ends its execution, it must be removed from the array. The tasks that follows must be shifted to the beginning of the array and the cumulative execution times must be properly updated. This can be done with the next sequence of operations. Step 1: Find the position of the task to be removed in the table by comparing the ID of this task with the IDs in the table. Step 2: Mark all the elements after that position by comparing their index with the found one. Store the remaining execution time of the task to be removed into temporary variable. Step 3: Shift all marked elements to the beginning of the list. Step 4: Subtract the remaining execution time of the deleted task (stored in step 2) from the cumulative execution time of all marked elements. Because the cumulative execution times are only reduced, there could be no deadline omission at this operation.

4 Task suspension/continuation When a task is suspended or is continued after suspension, the state of the task in taskinfo array must be properly updated. The associated algorithm must find the proper position in the array by comparing the given ID. Then the state of the task in this position is changed. Step 1: Find and mark the position of the task where status will be changed by comparing the ID of this task with the IDs in the table. Step 2: For the marked element, change the state information. Periodic update of taskinfo array Even when there is no task scheduling operation, the taskinfo array must be periodically updated. For example, the property that represents the remaining execution time of a task must be updated periodically for some tasks. Obviously this is so for the task that is currently running. However, all suspended tasks are considered to be in executing state as well. When the estimation of execution time of a task is evaluated, all periods when the task would be explicitly suspended must be also included. The alarm should be raised if the value representing the execution time of a task becomes negative. This situation denotes that the predetermined execution time of the task was incorrect. The notion of the suspended tasks also complicates the process of determination of the next task to be run. In simple case, where only one task is considered to be running, the first element of the taskinfo array always identifies this task. On the other hand, if for any reason the first task in the table becomes suspended, the next one should be run, etc. For this, a separate process should observe the states of the tasks. First unsuspended task in the list is marked by this process to be running on the CPU. 3. IMPLEMENTATION OF THE OS COPROCESSOR In this section some notes about implementation of EDF scheduling engine is presented. This engine would be a part of a much more universal OS co-processor. The building of such co-processor had been started using Field- Programmable Gate Array (FPGA). The FPGA device consists of a set of programmable logic components or logic blocks, which can be set after manufacturing. The usual number of blocks on the FPGA device is several thousand. Each logic block is capable to perform a simple digital function and/or it can be used as a memory element. By changing the settings, different digital devices may be implemented with the combination of the blocks. Modern FPGA devices may also contain some dedicated digital circuits like memory blocks, clock generators, etc. FPGA configuration can be specified using a hardware description language (HDL) or digital schematic. This allows full flexibility at the design time. However, for the production phase, ASIC or custom build chips would be more cost effective. 3.1 Interface between CPU and OS coprocessor The main processor communicate with the OS co-processor through a set of registers. A command register issues a specific OS command and another set of registers is used to pass the parameters. In addition, the results of the operations and the current OS status are presented through another set of registers. This is portrayed on Figure 1. Cmd TaskID Param1 Param2 CurTaskID CurTime Fig. 1. Register set of OS co-processor First the task ID and the parameters are written to the registers. Then the code of the operation is written into command register and the operation is performed. Not all of the registers are used by each operation. Several microprocessors allow the extension of the basic instruction set by means of machine instructions with designated bit pattern. For example, a special prefix is used by x86 microprocessor architecture to execute floating-point arithmetic instructions. Other microprocessors may use the so-called trap instructions or software interrupts. In most operating systems, such instructions are the primary mechanism of executing OS calls. For tasking operation, the parameters would be the task deadline and its execution time. The CurTaskID register is a read-only register that holds the ID of the task that must be executed as the result of the last operation. Some of the mechanisms used by the OS coprocessor may change this register asynchronously. Because of that, additional interrupt engine may be implemented to notify the main processor when context-switch must be performed. The basic set of commands for tasking operation would be: Initialize prepare the internal data structures of the OS coprocessor. In the case of task scheduling operations, it clears the taskinfo table. AddTask add a new task in the taskinfo table. The parameters are task s ID, deadline and execution time. The operation updates the taskinfo table and evaluates the next task to be executed. If the new task has the shortest deadline, the context-switch is initiated. If some of the tasks would violate its deadline, the alarm is raised. Suspend suspends the execution of the tasks with the given task ID. If the task being executing is suspended, the next one to be running is determined and context-switch is signalled. Continue allows the execution of the suspended tasks. Again, it is possible that this task will have the shortest deadline and the context-switch will be initiated.

5 RemoveTask remove a task from the task table and update some other parameters in the table accordingly. If the currently running task is removed from the task table, the next task to be run is determined. Tick periodically updates the execution times of the tasks in the task table. For the task that is running and for the all suspended tasks, the remaining execution time is decreased. As was described before, the alarm is raised if the remaining execution time becomes zero. The execution of this operation may be implemented independently from the main processor by means of a counter. The period of this counter is determined during the initialization of the co-processor. 3.2 Implementation of taskinfo table The taskinfo table should be observed as a set of independent cells or components with the same functionalities. We named this component EDF cell. Multiple cells are linked together to implement the task list. This is illustrated in Figure 2. The parameters of the current OS instruction (such the index of the task, its deadline and its remaining execution time) are put on the common bus. Then, a series of control signals (not shown in the picture) are generated to execute different steps of the specific instructions. Apart from parameters, each cell has two sets of inputs and outputs that are used during the shift phase for some OS instructions. The data from a single cell may be shifted into the next or into the previous cell. Several logical signals are also used to synchronize shift operations (ShiftMark) or to signal if there is a deadline violation or some other error (ErrMark). On one side of the first cell in the list some predetermined values are used as the inputs. E.g., to determine the cumulative finish time of the first cell in absolute form, the value of current time must be added. Therefore, one of the inputs is connected to the CurTime register. 3.3 Implementation of EDF cell Each EDF cell contains a set of registers that hold different attributes of the task: ID, deadline, remaining execution time, cumulative finish time and the task state. Those registers are connected to the inputs through multiplexers to allow values to be filled in either from the common bus or from the adjacent cells. In addition, each cell consists of digital logic responsible to execute different OS operations. Those components can be logically divided into several parts. The purpose of such division is to allow parallel execution of several parts during execution of an OS instruction. First part tracks the index of the task that is on the particular place in the list. This part also contains a comparator that compares the task ID with one of the parameters on a common bus. This is required during some operations to identify a specific cell by its ID. If required, the ID of the task can be put into the CurTaskID result register. The current state of the task is also held here. The second part of the EDF cell is responsible for deadline comparison and marking the cell for the shift operation when a new task becomes active. For this, another comparator is required that compares the current deadline with one of the parameters. The third part tracks the remaining execution time of a task and signal an error if it becomes negative. The register that contains the value can be either set with some input value or decremented by one. The binary representation of negative value of minus one is consisting of all ones. Therefore, instead of full comparator, much simpler AND function can be used to detect wrong execution time estimation. The fourth part of the cell calculates cumulative finish time and marks deadline violations. For this an arithmetic unit is required that can add or subtract one of the inputs from the existing value. For deadline omission detection, yet another comparator is required. For illustration of operation, when a new task becomes active the AddTask operation is performed. At first, the comparator responsible for deadline comparison in the second part of the EDF cell is used to determine all elements with greater deadlines. In the second step, the registers of marked cells are shifted to the right and, at the same time, the current values of parameters are put into the first marked cell. In the third step, the cumulative remaining execution times of marked cell are increased by the current execution time on the common bus. This is implemented with dedicated arithmetic unit in the third part of the cell. In the last step, the cumulative execution times are compared (with the comparators in the fourth part) and violations are signalled. Other operations are executed and can be explained in similar fashion. Parameters ShiftMark1... ShiftMark2... ErrMark1 ErrMark2 ErrMarkN Fig. 2. Hardware implementation of ordered list of tasks

6 3.4 Identification of the running task To determine which task must be executed next, a separate logic is required. As was expressed before, the task to be executed next on the main CPU is the first task in the list that is not suspended. This can be easily implemented with the priority encoder. The status signals, which indicate if associated tasks within a cell are suspended, are gathered. Then the index of the first cell that is not suspended is identified and produced. This index is then used to access the task ID register in specific EDF cell. The identification of the next task to be executed is run in parallel to other parts of EDF cells. 3.5 Experimental results The work presented in the paper was tested with FPGA device. In the experiments, Xilinx Spartan2E devices were used (Xilinx (2009)). No CPU interface was actually built yet; the experiments was done only to proof the concepts and to evaluate capabilities of such device. From all instructions, the AddTask is the most complex one. It requires four steps and complex cooperation of all parts of the EDF cell. By using both phases of the clock cycles of FPGA device, it was possible to reduce the execution time of this instruction to two basic clock cycles. At higher frequencies, all four cycles would probably be required. Nevertheless, this is a superior result to any other implementation. Other operations can be executed in the same time or less. The drawback of proposed approach is that it requires many hardware resources (i.e. several comparators, arithmetic units and registers for each EDF evaluation cell). The amount is linearly dependent on the number of tasks to be evaluated. For example, in the case of 32 tasks, approximately 2000 slices are required. For the comparison, the ad-hoc solution of the original algorithm requires only approximately 140 slices independent of the number of tasks. However, the execution time of the algorithm for 32 tasks is about 600 basic clock cycles. Simple hardware circuits, such as FPGA, are optimal to operate for Boolean and integer quantities, therefore the entire task s information were transformed into these two types. A brief experiment with floating-point quantities for time representations was done. However, the amount of silicon consumption was prohibiting. Some implemented solutions depend on the signal propagation trough all the cells in the array. This represents no problem at moderate clock frequencies and for moderate number of EDF cells. However, the signal propagation time may become a problem with faster clock sources or when more than sixty EDF cells are required. Alternative implementation of problematic parts are being studied. 4. CONCLUSION Nowadays, the hardware implementation of software algorithms is feasible even for low-cost embedded system solutions. Operating systems have well defined and relatively limited set of functionalities. Therefore, it is easy to imagine having an OS-on-a-chip solution that may be used in the same way as mathematical coprocessors two decades ago or as graphical coprocessors are used today. They may even become a part of general processors in the future. In the future, the hardware implementation of other functionalities of the operating systems and the middleware will be studied. In addition, integration with several microprocessor architectures is planned. REFERENCES Cooling J. (1993) Task Scheduler for Hard Real-Time Embedded Systems. Proceedings of Int'l Workshop on Systems Engineering for Real-Time Applications. IEE, Cirencester, London IFATIS (2005). IFATIS - Intelligent Fault Tolerant Control in Integrated Systems. Liu C.L. and Layland J.W. (1973). Scheduling algorithms for multiprogramming in a hard real-time environment. Journal of the ACM, 20(1), Xilinx (2009).

HARDWARE IMPLEMENTATION OF AN EARLIEST DEADLINE FIRST TASK SCHEDULING ALGORITHM

HARDWARE IMPLEMENTATION OF AN EARLIEST DEADLINE FIRST TASK SCHEDULING ALGORITHM UDK621.3:(53+54+621+66), ISSN0352-9045 Informacije MIDEM 41(2011)4, Ljubljana HARDWARE IMPLEMENTATION OF AN EARLIEST DEADLINE FIRST TASK SCHEDULING ALGORITHM Domen Verber University of Maribor, Faculty

More information

BASIC COMPUTER ORGANISATION. Basic Computer Model and different units of Computer

BASIC COMPUTER ORGANISATION. Basic Computer Model and different units of Computer BASIC COMPUTER ORGANISATION Basic Computer Model and different units of Computer The model of a computer can be described by four basic units in high level abstraction. These basic units are: Central Processor

More information

SAMPLE OF THE STUDY MATERIAL PART OF CHAPTER 5. Combinational & Sequential Circuits

SAMPLE OF THE STUDY MATERIAL PART OF CHAPTER 5. Combinational & Sequential Circuits SAMPLE OF THE STUD MATERIAL PART OF CHAPTER 5 5. Introduction Digital circuits can be classified into two types: Combinational digital circuits and Sequential digital circuits. 5.2 Combinational Digital

More information

Operating Systems. Lecture 03. February 11, 2013

Operating Systems. Lecture 03. February 11, 2013 Operating Systems Lecture 03 February 11, 2013 Goals for Today Interrupts, traps and signals Hardware Protection System Calls Interrupts, Traps, and Signals The occurrence of an event is usually signaled

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

KINGS COLLEGE OF ENGINEERING

KINGS COLLEGE OF ENGINEERING KINGS COLLEGE OF ENGINEERING DEPARTMENT OF ELECTRONICS AND COMMUNICATION ENGINEERING QUESTION BANK SUBJECT CODE: CS1358 YEAR : III SUBJECT NAME: COMPUTER ARCHITECTURE SEM : VI 1. Define interrupt and ISR.

More information

Introduction to Logic Design with VHDL

Introduction to Logic Design with VHDL EECE 379 : DESIGN OF DIGITAL AND MICROCOMPUTER SYSTEMS 2000/2001 WINTER SESSION, TERM 1 Introduction to Logic Design with VHDL This chapter reviews the design of combinational and sequential logic and

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

1 Computer Architecture Question Bank Part A Questions

1 Computer Architecture Question Bank Part A Questions 1 Computer Architecture Part A Questions 1. What is stored program concept? 2. Differentiate memory write and I/O write. 3. What are the various methods of accessing data from memory? 4. Define memory

More information

Real-Time Software. Basic Scheduling and Response-Time Analysis. René Rydhof Hansen. 21. september 2010

Real-Time Software. Basic Scheduling and Response-Time Analysis. René Rydhof Hansen. 21. september 2010 Real-Time Software Basic Scheduling and Response-Time Analysis René Rydhof Hansen 21. september 2010 TSW (2010e) (Lecture 05) Real-Time Software 21. september 2010 1 / 28 Last Time Time in a real-time

More information

The Evolution of CCD Clock Sequencers at MIT: Looking to the Future through History

The Evolution of CCD Clock Sequencers at MIT: Looking to the Future through History The Evolution of CCD Clock Sequencers at MIT: Looking to the Future through History John P. Doty, Noqsi Aerospace, Ltd. This work is Copyright 2007 Noqsi Aerospace, Ltd. This work is licensed under the

More information

Operating Systems 4 th Class

Operating Systems 4 th Class Operating Systems 4 th Class Lecture 1 Operating Systems Operating systems are essential part of any computer system. Therefore, a course in operating systems is an essential part of any computer science

More information

Real Time Programming: Concepts

Real Time Programming: Concepts Real Time Programming: Concepts Radek Pelánek Plan at first we will study basic concepts related to real time programming then we will have a look at specific programming languages and study how they realize

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

Introduction Number Systems and Conversion

Introduction Number Systems and Conversion UNIT 1 Introduction Number Systems and Conversion Objectives 1. Introduction The first part of this unit introduces the material to be studied later. In addition to getting an overview of the material

More information

Design of a High Speed Communications Link Using Field Programmable Gate Arrays

Design of a High Speed Communications Link Using Field Programmable Gate Arrays Customer-Authored Application Note AC103 Design of a High Speed Communications Link Using Field Programmable Gate Arrays Amy Lovelace, Technical Staff Engineer Alcatel Network Systems Introduction A communication

More information

System Design and Methodology/ Embedded Systems Design (Modeling and Design of Embedded Systems)

System Design and Methodology/ Embedded Systems Design (Modeling and Design of Embedded Systems) System Design&Methodologies Fö 1&2-1 System Design&Methodologies Fö 1&2-2 Course Information System Design and Methodology/ Embedded Systems Design (Modeling and Design of Embedded Systems) TDTS30/TDDI08

More information

Open Flow Controller and Switch Datasheet

Open Flow Controller and Switch Datasheet Open Flow Controller and Switch Datasheet California State University Chico Alan Braithwaite Spring 2013 Block Diagram Figure 1. High Level Block Diagram The project will consist of a network development

More information

FSM-based Digital Design using Verilog HDL

FSM-based Digital Design using Verilog HDL Brochure More information from http://www.researchandmarkets.com/reports/589252/ FSM-based Digital Design using Verilog HDL Description: As digital circuit elements decrease in physical size, resulting

More information

Computer Architecture

Computer Architecture Chapter 1 Computer Architecture Introduction to Computer Architecture Bryar M. Shareef (bryarmustafa.epu.edu.krd) 2016-2017 Fundamental Concepts What is a computer architecture? Computer Architecture:

More information

From Control Loops to Software

From Control Loops to Software CNRS-VERIMAG Grenoble, France October 2006 Executive Summary Embedded systems realization of control systems by computers Computers are the major medium for realizing controllers There is a gap between

More information

LabVIEW Real-Time and Embedded

LabVIEW Real-Time and Embedded FYS3240 PC-based instrumentation and microcontrollers LabVIEW Real-Time and Embedded Spring 2011 Lecture #10 Bekkeng, 11.5.2011 Embedded Computing An embedded system is a computer system designed to perform

More information

Arithmetic Operations

Arithmetic Operations Arithmetic Operations Dongbing Gu School of Computer Science and Electronic Engineering University of Essex UK Spring 2013 D. Gu (Univ. of Essex) Arithmetic Operations Spring 2013 1 / 34 Outline 1 Introduction

More information

PIPELINING CHAPTER OBJECTIVES

PIPELINING CHAPTER OBJECTIVES CHAPTER 8 PIPELINING CHAPTER OBJECTIVES In this chapter you will learn about: Pipelining as a means for executing machine instructions concurrently Various hazards that cause performance degradation in

More information

REMARKS ON PARALLEL BIT-BYTE CPU STRUCTURES OF PROGRAMMABLE LOGIC CONTROLLERS

REMARKS ON PARALLEL BIT-BYTE CPU STRUCTURES OF PROGRAMMABLE LOGIC CONTROLLERS The International Workshop on Discrete-Event System Design, DESDes 01, June 27 29, 2001; Przytok near Zielona Gora, Poland REMARKS ON PARALLEL BIT-BYTE CPU STRUCTURES OF PROGRAMMABLE LOGIC CONTROLLERS

More information

Counters and Registers. Dr. Anurag Srivastava

Counters and Registers. Dr. Anurag Srivastava Counters and Registers Dr. Anurag Srivastava 1 Basic of digital design Basic gates (AND,OR, NOR, NAND and INVERTER) Universal gates (NAND and NOR) Design of any function using basic gates F=xy+(xyz+zx+xz)xy

More information

Chapter 11 I/O Management and Disk Scheduling

Chapter 11 I/O Management and Disk Scheduling Operatin g Systems: Internals and Design Principle s Chapter 11 I/O Management and Disk Scheduling Seventh Edition By William Stallings Operating Systems: Internals and Design Principles An artifact can

More information

Welcome to the National Instruments presentation of the Spartan-3E Starter Board as an academic learning platform.

Welcome to the National Instruments presentation of the Spartan-3E Starter Board as an academic learning platform. Welcome to the National Instruments presentation of the Spartan-3E Starter Board as an academic learning platform. Understanding digital logic and FPGA concepts can be daunting for some undergraduate students,

More information

OPC COMMUNICATION IN REAL TIME

OPC COMMUNICATION IN REAL TIME OPC COMMUNICATION IN REAL TIME M. Mrosko, L. Mrafko Slovak University of Technology, Faculty of Electrical Engineering and Information Technology Ilkovičova 3, 812 19 Bratislava, Slovak Republic Abstract

More information

Digital System Design. Digital System Design with Verilog

Digital System Design. Digital System Design with Verilog Digital System Design with Verilog Adapted from Z. Navabi Portions Copyright Z. Navabi, 2006 1 Digital System Design Automation with Verilog Digital Design Flow Design entry Testbench in Verilog Design

More information

Lecture 1: Introduction to Microcomputers

Lecture 1: Introduction to Microcomputers Lecture 1: Introduction to Microcomputers Today s Topics What is a microcomputers? Why do we study microcomputers? Two basic types of microcomputer architectures Internal components of a microcomputers

More information

The Shortcut Guide to Balancing Storage Costs and Performance with Hybrid Storage

The Shortcut Guide to Balancing Storage Costs and Performance with Hybrid Storage The Shortcut Guide to Balancing Storage Costs and Performance with Hybrid Storage sponsored by Dan Sullivan Chapter 1: Advantages of Hybrid Storage... 1 Overview of Flash Deployment in Hybrid Storage Systems...

More information

Resource Allocation Schemes for Gang Scheduling

Resource Allocation Schemes for Gang Scheduling Resource Allocation Schemes for Gang Scheduling B. B. Zhou School of Computing and Mathematics Deakin University Geelong, VIC 327, Australia D. Walsh R. P. Brent Department of Computer Science Australian

More information

Memory Allocation Technique for Segregated Free List Based on Genetic Algorithm

Memory Allocation Technique for Segregated Free List Based on Genetic Algorithm Journal of Al-Nahrain University Vol.15 (2), June, 2012, pp.161-168 Science Memory Allocation Technique for Segregated Free List Based on Genetic Algorithm Manal F. Younis Computer Department, College

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

Chapter 2 Basic Structure of Computers. Jin-Fu Li Department of Electrical Engineering National Central University Jungli, Taiwan

Chapter 2 Basic Structure of Computers. Jin-Fu Li Department of Electrical Engineering National Central University Jungli, Taiwan Chapter 2 Basic Structure of Computers Jin-Fu Li Department of Electrical Engineering National Central University Jungli, Taiwan Outline Functional Units Basic Operational Concepts Bus Structures Software

More information

International Journal of Advancements in Technology ISSN

International Journal of Advancements in Technology  ISSN Implementation of Data Compression Algorithms on FPGA using Soft-core Processor Vijay G. Savani *, Piyush M. Bhatasana, Akash I. Mecwan Assistant Professor, Institute of Technology, Nirma University, India.

More information

Overview Motivating Examples Interleaving Model Semantics of Correctness Testing, Debugging, and Verification

Overview Motivating Examples Interleaving Model Semantics of Correctness Testing, Debugging, and Verification Introduction Overview Motivating Examples Interleaving Model Semantics of Correctness Testing, Debugging, and Verification Advanced Topics in Software Engineering 1 Concurrent Programs Characterized by

More information

Do not open this examination paper until instructed to do so. Section A: answer all the questions. Section B: answer all the questions.

Do not open this examination paper until instructed to do so. Section A: answer all the questions. Section B: answer all the questions. N10/5/COMSC/HP1/ENG/TZ0/XX 88107011 Computer science HIGHER level Paper 1 Tuesday 16 November 2010 (afternoon) 2 hours 15 minutes INSTRUCTIONS TO CANDIDATES Do not open this examination paper until instructed

More information

Read this before starting!

Read this before starting! Points missed: Student's Name: Total score: /100 points East Tennessee State University Department of Computer and Information Sciences CSCI 4717 Computer Architecture TEST 2 for Fall Semester, 2006 Section

More information

DEPARTMENT OF COMPUTER SCIENCE & ENGINEERING Question Bank Subject Name: EC6504 - Microprocessor & Microcontroller Year/Sem : II/IV

DEPARTMENT OF COMPUTER SCIENCE & ENGINEERING Question Bank Subject Name: EC6504 - Microprocessor & Microcontroller Year/Sem : II/IV DEPARTMENT OF COMPUTER SCIENCE & ENGINEERING Question Bank Subject Name: EC6504 - Microprocessor & Microcontroller Year/Sem : II/IV UNIT I THE 8086 MICROPROCESSOR 1. What is the purpose of segment registers

More information

FPGA Implementation of an Extended Binary GCD Algorithm for Systolic Reduction of Rational Numbers

FPGA Implementation of an Extended Binary GCD Algorithm for Systolic Reduction of Rational Numbers FPGA Implementation of an Extended Binary GCD Algorithm for Systolic Reduction of Rational Numbers Bogdan Mătăsaru and Tudor Jebelean RISC-Linz, A 4040 Linz, Austria email: bmatasar@risc.uni-linz.ac.at

More information

Learning Outcomes. Simple CPU Operation and Buses. Composition of a CPU. A simple CPU design

Learning Outcomes. Simple CPU Operation and Buses. Composition of a CPU. A simple CPU design Learning Outcomes Simple CPU Operation and Buses Dr Eddie Edwards eddie.edwards@imperial.ac.uk At the end of this lecture you will Understand how a CPU might be put together Be able to name the basic components

More information

Practical Benefits of Multi-threaded RISC/DSP Processing

Practical Benefits of Multi-threaded RISC/DSP Processing Practical Benefits of Multi-threaded RISC/DSP Processing David W. Knox Vice President, Software. Imagination Technologies The Imagination Technologies Ltd. (IMG) META processor is the first commercially

More information

Real-Time Scheduling (Part 1) (Working Draft) Real-Time System Example

Real-Time Scheduling (Part 1) (Working Draft) Real-Time System Example Real-Time Scheduling (Part 1) (Working Draft) Insup Lee Department of Computer and Information Science School of Engineering and Applied Science University of Pennsylvania www.cis.upenn.edu/~lee/ CIS 41,

More information

Department of Electrical and Computer Engineering Faculty of Engineering and Architecture American University of Beirut Course Information

Department of Electrical and Computer Engineering Faculty of Engineering and Architecture American University of Beirut Course Information Department of Electrical and Computer Engineering Faculty of Engineering and Architecture American University of Beirut Course Information Course title: Computer Organization Course number: EECE 321 Catalog

More information

Module 6. Embedded System Software. Version 2 EE IIT, Kharagpur 1

Module 6. Embedded System Software. Version 2 EE IIT, Kharagpur 1 Module 6 Embedded System Software Version 2 EE IIT, Kharagpur 1 Lesson 30 Real-Time Task Scheduling Part 2 Version 2 EE IIT, Kharagpur 2 Specific Instructional Objectives At the end of this lesson, the

More information

Types Of Operating Systems

Types Of Operating Systems Types Of Operating Systems Date 10/01/2004 1/24/2004 Operating Systems 1 Brief history of OS design In the beginning OSes were runtime libraries The OS was just code you linked with your program and loaded

More information

5 Computer Organization

5 Computer Organization 5 Computer Organization 5.1 Foundations of Computer Science Cengage Learning Objectives After studying this chapter, the student should be able to: List the three subsystems of a computer. Describe the

More information

Aperiodic Task Scheduling

Aperiodic Task Scheduling Aperiodic Task Scheduling Jian-Jia Chen (slides are based on Peter Marwedel) TU Dortmund, Informatik 12 Germany Springer, 2010 2014 年 11 月 19 日 These slides use Microsoft clip arts. Microsoft copyright

More information

THE BUSINESS VALUE OF AN ERP SYSTEM

THE BUSINESS VALUE OF AN ERP SYSTEM THE BUSINESS VALUE OF AN ERP SYSTEM AJMAL BEG THE BUSINESS VALUE OF AN ERP SYSTEM AJMAL BEG ii Copyright c 2010 by Ajmal Beg. All rights reserved. This technology described in this publication is based

More information

Performance Basics; Computer Architectures

Performance Basics; Computer Architectures 8 Performance Basics; Computer Architectures 8.1 Speed and limiting factors of computations Basic floating-point operations, such as addition and multiplication, are carried out directly on the central

More information

BUILD VERSUS BUY. Understanding the Total Cost of Embedded Design. www.ni.com/buildvsbuy

BUILD VERSUS BUY. Understanding the Total Cost of Embedded Design. www.ni.com/buildvsbuy BUILD VERSUS BUY Understanding the Total Cost of Embedded Design Table of Contents I. Introduction II. The Build Approach: Custom Design a. Hardware Design b. Software Design c. Manufacturing d. System

More information

Power Reduction Techniques in the SoC Clock Network. Clock Power

Power Reduction Techniques in the SoC Clock Network. Clock Power Power Reduction Techniques in the SoC Network Low Power Design for SoCs ASIC Tutorial SoC.1 Power Why clock power is important/large» Generally the signal with the highest frequency» Typically drives a

More information

08 - Address Generator Unit (AGU)

08 - Address Generator Unit (AGU) September 30, 2013 Todays lecture Memory subsystem Address Generator Unit (AGU) Memory subsystem Applications may need from kilobytes to gigabytes of memory Having large amounts of memory on-chip is expensive

More information

Binary Representation and Computer Arithmetic

Binary Representation and Computer Arithmetic Binary Representation and Computer Arithmetic The decimal system of counting and keeping track of items was first created by Hindu mathematicians in India in A.D. 4. Since it involved the use of fingers

More information

Flip-Flops, Registers, Counters, and a Simple Processor

Flip-Flops, Registers, Counters, and a Simple Processor June 8, 22 5:56 vra235_ch7 Sheet number Page number 349 black chapter 7 Flip-Flops, Registers, Counters, and a Simple Processor 7. Ng f3, h7 h6 349 June 8, 22 5:56 vra235_ch7 Sheet number 2 Page number

More information

Best Practises for LabVIEW FPGA Design Flow. uk.ni.com ireland.ni.com

Best Practises for LabVIEW FPGA Design Flow. uk.ni.com ireland.ni.com Best Practises for LabVIEW FPGA Design Flow 1 Agenda Overall Application Design Flow Host, Real-Time and FPGA LabVIEW FPGA Architecture Development FPGA Design Flow Common FPGA Architectures Testing and

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

7 Operating Systems. Source: Foundations of Computer Science Cengage Learning. After studying this chapter, the student should be able to:

7 Operating Systems. Source: Foundations of Computer Science Cengage Learning. After studying this chapter, the student should be able to: 7 Operating Systems 7.1 Source: Foundations of Computer Science Cengage Learning Objectives After studying this chapter, the student should be able to: 7.2 Understand the role of the operating system.

More information

Aims and Objectives. E 3.05 Digital System Design. Course Syllabus. Course Syllabus (1) Programmable Logic

Aims and Objectives. E 3.05 Digital System Design. Course Syllabus. Course Syllabus (1) Programmable Logic Aims and Objectives E 3.05 Digital System Design Peter Cheung Department of Electrical & Electronic Engineering Imperial College London URL: www.ee.ic.ac.uk/pcheung/ E-mail: p.cheung@ic.ac.uk How to go

More information

ON SUITABILITY OF FPGA BASED EVOLVABLE HARDWARE SYSTEMS TO INTEGRATE RECONFIGURABLE CIRCUITS WITH HOST PROCESSING UNIT

ON SUITABILITY OF FPGA BASED EVOLVABLE HARDWARE SYSTEMS TO INTEGRATE RECONFIGURABLE CIRCUITS WITH HOST PROCESSING UNIT 216 ON SUITABILITY OF FPGA BASED EVOLVABLE HARDWARE SYSTEMS TO INTEGRATE RECONFIGURABLE CIRCUITS WITH HOST PROCESSING UNIT *P.Nirmalkumar, **J.Raja Paul Perinbam, @S.Ravi and #B.Rajan *Research Scholar,

More information

COMPUTER ARCHITECTURE IMPORTANT QUESTIONS FOR PRACTICE

COMPUTER ARCHITECTURE IMPORTANT QUESTIONS FOR PRACTICE COMPUTER ARCHITECTURE IMPORTANT QUESTIONS FOR PRACTICE 1. How many bits wide memory address have to be if the computer had 16 MB of memory? (use the smallest value possible) 2. A digital computer has a

More information

CHAPTER 4 MARIE: An Introduction to a Simple Computer

CHAPTER 4 MARIE: An Introduction to a Simple Computer CHAPTER 4 MARIE: An Introduction to a Simple Computer 4.1 Introduction 145 4.1.1 CPU Basics and Organization 145 4.1.2 The Bus 147 4.1.3 Clocks 151 4.1.4 The Input/Output Subsystem 153 4.1.5 Memory Organization

More information

Reconfigurable Architecture Requirements for Co-Designed Virtual Machines

Reconfigurable Architecture Requirements for Co-Designed Virtual Machines Reconfigurable Architecture Requirements for Co-Designed Virtual Machines Kenneth B. Kent University of New Brunswick Faculty of Computer Science Fredericton, New Brunswick, Canada ken@unb.ca Micaela Serra

More information

what operations can it perform? how does it perform them? on what kind of data? where are instructions and data stored?

what operations can it perform? how does it perform them? on what kind of data? where are instructions and data stored? Inside the CPU how does the CPU work? what operations can it perform? how does it perform them? on what kind of data? where are instructions and data stored? some short, boring programs to illustrate the

More information

CHAPTER 3 Number System and Codes

CHAPTER 3 Number System and Codes CHAPTER 3 Number System and Codes 3.1 Introduction On hearing the word number, we immediately think of familiar decimal number system with its 10 digits; 0,1, 2,3,4,5,6, 7, 8 and 9. these numbers are called

More information

II. Operating Systems and Processes!

II. Operating Systems and Processes! II. Operating Systems and Processes! Computer Architecture & Operating Systems: 725G84 Ahmed Rezine What is an Operating System? A program that acts as an intermediary between a user of a computer and

More information

A New Paradigm for Synchronous State Machine Design in Verilog

A New Paradigm for Synchronous State Machine Design in Verilog A New Paradigm for Synchronous State Machine Design in Verilog Randy Nuss Copyright 1999 Idea Consulting Introduction Synchronous State Machines are one of the most common building blocks in modern digital

More information

Introduction to Cloud Computing

Introduction to Cloud Computing Introduction to Cloud Computing Parallel Processing I 15 319, spring 2010 7 th Lecture, Feb 2 nd Majd F. Sakr Lecture Motivation Concurrency and why? Different flavors of parallel computing Get the basic

More information

FAULT TOLERANCE FOR MULTIPROCESSOR SYSTEMS VIA TIME REDUNDANT TASK SCHEDULING

FAULT TOLERANCE FOR MULTIPROCESSOR SYSTEMS VIA TIME REDUNDANT TASK SCHEDULING FAULT TOLERANCE FOR MULTIPROCESSOR SYSTEMS VIA TIME REDUNDANT TASK SCHEDULING Hussain Al-Asaad and Alireza Sarvi Department of Electrical & Computer Engineering University of California Davis, CA, U.S.A.

More information

CHAPTER 5 Sequential Logic design practices

CHAPTER 5 Sequential Logic design practices CHAPER 5 Sequential Logic design practices his chapter describes the most commonly used and dependable sequential-circuit design methods carried out on synchronous systems. Synchronous systems are those

More information

Logical Operations. Control Unit. Contents. Arithmetic Operations. Objectives. The Central Processing Unit: Arithmetic / Logic Unit.

Logical Operations. Control Unit. Contents. Arithmetic Operations. Objectives. The Central Processing Unit: Arithmetic / Logic Unit. Objectives The Central Processing Unit: What Goes on Inside the Computer Chapter 4 Identify the components of the central processing unit and how they work together and interact with memory Describe how

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

COMPLEX EMBEDDED SYSTEMS

COMPLEX EMBEDDED SYSTEMS COMPLEX EMBEDDED SYSTEMS Real-Time Scheduling Summer Semester 2012 System and Software Engineering Prof. Dr.-Ing. Armin Zimmermann Contents Introduction Scheduling in Interactive Systems Real-Time Scheduling

More information

Intro to Microprocessors and Microcomputers

Intro to Microprocessors and Microcomputers Intro to Microprocessors and Microcomputers Content Microprocessor, microcontrollers and microcomputers Communication within microcomputers Registers Process architecture CPU Data and program storage Negative

More information

Microprocessor, Microcomputer and Associated Languages

Microprocessor, Microcomputer and Associated Languages Microprocessor, Microcomputer and Associated Languages 1 Microprocessor, Microcomputer and Associated Languages 1 1. On which model is based the basic architecture of a digital computer? Ans. The basic

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

Sequential Circuits Sequential circuits combinational circuits clocked sequential circuits gate delay

Sequential Circuits Sequential circuits combinational circuits clocked sequential circuits gate delay Sequential Circuits Sequential circuits are those with memory, also called feedback. In this, they differ from combinational circuits, which have no memory. The stable output of a combinational circuit

More information

Performance Prediction, Sizing and Capacity Planning for Distributed E-Commerce Applications

Performance Prediction, Sizing and Capacity Planning for Distributed E-Commerce Applications Performance Prediction, Sizing and Capacity Planning for Distributed E-Commerce Applications by Samuel D. Kounev (skounev@ito.tu-darmstadt.de) Information Technology Transfer Office Abstract Modern e-commerce

More information

12 Abstract Data Types

12 Abstract Data Types 12 Abstract Data Types 12.1 Source: Foundations of Computer Science Cengage Learning Objectives After studying this chapter, the student should be able to: Define the concept of an abstract data type (ADT).

More information

5 Computer Organization

5 Computer Organization 5 Computer Organization 5.1 Source: Foundations of Computer Science Cengage Learning Objectives After studying this chapter, students should be able to: List the three subsystems of a computer. Describe

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

The Storage or Data Register

The Storage or Data Register The Storage or Data Register All sequential logic circuits in the computer CPU are based on the latch or flip-flop. A significant part of the ALU is the register complement. In the MIPS R-2000 computer

More information

In-memory Tables Technology overview and solutions

In-memory Tables Technology overview and solutions In-memory Tables Technology overview and solutions My mainframe is my business. My business relies on MIPS. Verna Bartlett Head of Marketing Gary Weinhold Systems Analyst Agenda Introduction to in-memory

More information

Computer Organization and Architecture

Computer Organization and Architecture Computer Organization and Architecture Chapter 3 Top-Level View of System Function and Interconnection Computer Components Von Neumann Architecture Data and Instructions stored in single r/w memory Contents

More information

Ľudmila Jánošíková. Department of Transportation Networks Faculty of Management Science and Informatics University of Žilina

Ľudmila Jánošíková. Department of Transportation Networks Faculty of Management Science and Informatics University of Žilina Assembly Language Ľudmila Jánošíková Department of Transportation Networks Faculty of Management Science and Informatics University of Žilina Ludmila.Janosikova@fri.uniza.sk 041/5134 220 Recommended texts

More information

Computers Are Your Future Eleventh Edition

Computers Are Your Future Eleventh Edition Computers Are Your Future Eleventh Edition Chapter 2: Inside the System Unit Copyright 2011 Pearson Education, Inc. Publishing as Prentice Hall 1 All rights reserved. No part of this publication may be

More information

INTRODUCTION TO HARDWARE DESIGNING SEQUENTIAL CIRCUITS.

INTRODUCTION TO HARDWARE DESIGNING SEQUENTIAL CIRCUITS. Exercises, set 6. INTODUCTION TO HADWAE DEIGNING EUENTIAL CICUIT.. Lathes and flip-flops. In the same way that gates are basic building blocks of combinational (combinatorial) circuits, latches and flip-flops

More information

CHAPTER 3 Boolean Algebra and Digital Logic

CHAPTER 3 Boolean Algebra and Digital Logic CHAPTER 3 Boolean Algebra and Digital Logic 3.1 Introduction 121 3.2 Boolean Algebra 122 3.2.1 Boolean Expressions 123 3.2.2 Boolean Identities 124 3.2.3 Simplification of Boolean Expressions 126 3.2.4

More information

Buses Common Characteristics. CSCI 4717 Computer Architecture. Buses Structure (continued) Buses Structure

Buses Common Characteristics. CSCI 4717 Computer Architecture. Buses Structure (continued) Buses Structure CSCI 4717/5717 Computer Architecture Topic: Buses Reading: Stallings, Sections 3.4, 3.5, and 7.7 Buses Common Characteristics Multiple devices communicating over a single set of wires Only one device can

More information

Hardware/Software Co-Design of a Java Virtual Machine

Hardware/Software Co-Design of a Java Virtual Machine Hardware/Software Co-Design of a Java Virtual Machine Kenneth B. Kent University of Victoria Dept. of Computer Science Victoria, British Columbia, Canada ken@csc.uvic.ca Micaela Serra University of Victoria

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

Chapter 1 Computer System Overview

Chapter 1 Computer System Overview Operating Systems: Internals and Design Principles Chapter 1 Computer System Overview Eighth Edition By William Stallings Operating System Exploits the hardware resources of one or more processors Provides

More information

1. Realization of gates using Universal gates

1. Realization of gates using Universal gates 1. Realization of gates using Universal gates Aim: To realize all logic gates using NAND and NOR gates. Apparatus: S. No Description of Item Quantity 1. IC 7400 01 2. IC 7402 01 3. Digital Trainer Kit

More information

what operations can it perform? how does it perform them? on what kind of data? where are instructions and data stored?

what operations can it perform? how does it perform them? on what kind of data? where are instructions and data stored? Inside the CPU how does the CPU work? what operations can it perform? how does it perform them? on what kind of data? where are instructions and data stored? some short, boring programs to illustrate the

More information

Algorithms 2/17/2015. Double Summations. Enough Mathematical Appetizers! Algorithms. Algorithms. Algorithm Examples. Algorithm Examples

Algorithms 2/17/2015. Double Summations. Enough Mathematical Appetizers! Algorithms. Algorithms. Algorithm Examples. Algorithm Examples Double Summations Table 2 in 4 th Edition: Section 1.7 5 th Edition: Section.2 6 th and 7 th Edition: Section 2.4 contains some very useful formulas for calculating sums. Enough Mathematical Appetizers!

More information

PART OF THE PICTURE: Computer Architecture

PART OF THE PICTURE: Computer Architecture PART OF THE PICTURE: Computer Architecture 1 PART OF THE PICTURE: Computer Architecture BY WILLIAM STALLINGS At a top level, a computer consists of processor, memory, and I/O components, with one or more

More information

路 論 Chapter 15 System-Level Physical Design

路 論 Chapter 15 System-Level Physical Design Introduction to VLSI Circuits and Systems 路 論 Chapter 15 System-Level Physical Design Dept. of Electronic Engineering National Chin-Yi University of Technology Fall 2007 Outline Clocked Flip-flops CMOS

More information

Technical Note. Micron NAND Flash Controller via Xilinx Spartan -3 FPGA. Overview. TN-29-06: NAND Flash Controller on Spartan-3 Overview

Technical Note. Micron NAND Flash Controller via Xilinx Spartan -3 FPGA. Overview. TN-29-06: NAND Flash Controller on Spartan-3 Overview Technical Note TN-29-06: NAND Flash Controller on Spartan-3 Overview Micron NAND Flash Controller via Xilinx Spartan -3 FPGA Overview As mobile product capabilities continue to expand, so does the demand

More information