Microcontroller Systems Engineering Science 2Nd Year A2 Lectures

Total Page:16

File Type:pdf, Size:1020Kb

Microcontroller Systems Engineering Science 2Nd Year A2 Lectures µcontroller systems 1 / 43 Microcontroller Systems Engineering Science 2nd year A2 Lectures Prof David Murray [email protected] www.robots.ox.ac.uk/∼dwm/Courses/2CO Michaelmas 2014 µcontroller systems 2 / 43 Lecture 2 The CPU, Instruction Fetch & Execute Introduction A Bog Standard Architecture The flow of information Starting the processing: Fetching an instruction A few instructions Executing an instruction µcontroller systems 3 / 43 At the end of the first lecture ... ... we introduced the von Neumann architecture we suggested that special “instruction” data might be read from a memory into the data section, then passed to the control section change the transfer function of the data section. In this lecture we see that idea realized in the architecture for a simple central processing unit (CPU). Rather than introduce individual components one by one, we’ll dive in at the deep end and revealing our Bog Standard Architecture. µcontroller systems 4 / 43 Our Bog Standard Architecture CPU MAR Address Bus PC SP Memory INCpc/LOADpc CLKmem IR IR(opcode) IR(address) MBR Data Bus AC CU Status ALU SETalu Control Lines to Registers, ALU, Memory, etc Outside the CPU The CPU contains CPU connected to Memory registers MBR,AC,IR,MAR,PC,SP by an arithmetic logic unit (ALU) an address bus a control unit (CU) a data bus internal data pathways µcontroller systems 5 / 43 CPU Registers CPU MAR Address Bus PC SP Memory INCpc/LOADpc CLKmem IR IR(opcode) IR(address) MBR Data Bus AC CU Status ALU SETalu Control Lines to Registers, ALU, Memory, etc Outside the CPU MBR The Memory Buffer Register stores information that is being sent to, or received from, the memory along data bus. AC The Accumulator is used to store data that is being worked on by the ALU. The key register in the data section of the cpu. µcontroller systems 6 / 43 CPU Registers CPU MAR Address Bus PC SP Memory INCpc/LOADpc CLKmem IR IR(opcode) IR(address) MBR Data Bus AC CU Status ALU SETalu Control Lines to Registers, ALU, Memory, etc Outside the CPU MAR The Memory Address Register is used to store the address to access memory. PC The Program Counter holds the address in memory of the next program instruction. The PC is a register & counter. SP The Stack Pointer hold the address of part of main memory used for temporary storage µcontroller systems 7 / 43 CPU Registers CPU MAR Address Bus PC SP Memory INCpc/LOADpc CLKmem IR IR(opcode) IR(address) MBR Data Bus AC CU Status ALU SETalu Control Lines to Registers, ALU, Memory, etc Outside the CPU IR If the data read from memory is an instruction it gets moved to the Instruction Register. It has two parts: IR (opcode) The most significant bits of the instruction tell the cpu what to do. It is decoded by the CU. IR (address) The least significant bits are actually data. They get moved to IR (address). They usually form all or part of an address for later use in the MAR. µcontroller systems 8 / 43 Register types Registers MBR, MAR, AC, IR are just row of D-type latches sharing a common CLK input providing temporary storage on the CPU. Because these registers output onto buses they have tri-state buffers are connected to a single input OE (Output Enable). Here they are falling edge-triggered (inverter on the CLK input). D7 D6 D0 DDQDQQ CLK OE O7 O6 O0 The PC can be incremented like a counter, or loaded like a register. If INCpc=1, the clock pulse increments, but if INCpc=0 it loads. The SP can be incremented, decremented, or loaded like a register. µcontroller systems 9 / 43 Units in the CPU CPU MAR Address Bus PC SP Memory INCpc/LOADpc CLKmem IR IR(opcode) IR(address) MBR Data Bus AC CU Status ALU SETalu Control Lines CU Theto Registers,Control ALU, Memory, Unit etc is responsible for timingOutside the the register CPU transfers required to fetch and execute each instruction. It has a number of control lines coming out of it, which transmit CSL and CSP levels and pulses to the various registers, ALU, etc µcontroller systems 10 / 43 Units in the CPU CPU MAR Address Bus PC SP Memory INCpc/LOADpc CLKmem IR IR(opcode) IR(address) MBR Data Bus AC CU Status ALU SETalu Control Lines ALU toThe Registers,Arithmetic ALU, Memory, etc Logic Unit is responsibleOutside forthe bitCPU operations on data held in the AC and MBR. Contains full adders, logical AND-ers and OR-ers, etc. Status Collection of 1bit flags — Carry C, Overflow V, negative N, and zero Z — that indicate the outcome of operations that the ALU has just carried out. The flags are monitored by the CU. µcontroller systems 11 / 43 Data bus & data register widths CPU MAR Address Bus PC SP Memory Data Bus: WhileINCpc/LOADpc PCs use CLKmem 32 or 64 bits, IR microcontrollersIR(opcode) have IR(address) data MBR Data Bus bus widths of 4 bits, 8-bits, AC 16-bits and 32-bits. CU Status ALU SETalu Control Lines Let’s assumeto Registers, that ALU, Memory, thememory etc is 16 bits or 2Outside Bytes the wide CPU and that the data bus is also 16 bits wide. The MBR and AC registers on the data side of the CPU will therefore be 16 bits wide µcontroller systems 12 / 43 Address bus & register widths Address Bus: n lines canCPU address 2n MAR Address Bus locations. PC SP Memory INCpc/LOADpc Intel 8086 (1979): n = 20 CLKmem Pentium (2009):IR IR(opcode) IR(address) MBR n = 36 − 40. Data Bus AC Microcontrollers haves smaller mainCU memories,Status and n = 18 (≡ 256k ALU SETalu locations)Control is largest. Lines to Registers, ALU, Memory, etc Outside the CPU But it is convenient here (i) to have different numbers on the address and data side, and (ii) to keep things in multiple of 8 Let’s assume a 24 bit address bus )The PC, SP, and MAR in our cpu will therefore be 24 bits wide. µcontroller systems 13 / 43 Width of the Instruction Register The IR (opcode)CPU part MAR should be wide enough to Address Bus PC SP Memory INCpc/LOADpc take the largest opcode. CLKmem We will assumeIR the opcode IR(opcode) IR(address) MBR is a fixed 8 bits wide, Data Bus allowing 256 different AC instructions — which is CU Status plenty. ALU SETalu Control Lines The IR (address)to Registers, ALU, part Memory, has etc to have the same widthOutside as the the CPU address bus, 24 bits. So the whole IR is 32 bits wide. It is however fed from the internal data bus which is only 16 bits wide in our architecture. We will return to solve this conundrum later. µcontroller systems 14 / 43 Brief introduction to the Main memory The main memory does not reside in the cpu chip but is connected to 24bit Address Contents the cpu via an external 0xFFFFFF 0x3FC9 data bus address bus, and 4 0x01FF 3 0x9A76 control bus (not shown yet). 2 0x0001 1 0x0000 The memory will comprise mostly 0x000000 0x3FC9 random access memory (RAM) 16 bits wide with some additional read-only memory (ROM) to help the ma- chine start up. The address bus has been chosen to be 24 bits wide, so the address space is from 0x0 to (224 − 1) or 0xFFFFFF in hex. The data bus is here 16 bits ≡ 2 B wide, and so too are the contents. µcontroller systems 15 / 43 Memory Trivia ... When calculating address space sizes, remember that 210 = 1024. )n = 10; 20; 30 lines ≡ 1k,1M,1G locations NB! 1k locations does not mean that the memory has size 1kB. The memory size in Bytes is No. of locations with physical memory × Width in Bytes. | What is the maximum size of our memory? | What is the largest +ve integer that can be held in it? (Use unsigned arithmetic.) | Suppose all address lines are zero except A23, A22, A15, A13, A8, A1, and A0. What is the address in hex? Lines A23-A20 A19-A16 A15-A12 A11-A8 A7-A4 A3-A0 Binary 1100 0000 1010 0001 0000 0011 0x µcontroller systems 16 / 43 Memory Trivia When calculating address space sizes, remember that 210 = 1024. )n = 10; 20; 30 lines ≡ 1k,1M,1G locations NB! 1k locations does not mean that the memory has size 1kB. The memory size in Bytes is No. of locations with physical memory × Width in Bytes. | What is the maximum size of our memory? 32 MB | What is the largest +ve integer that can be held in it? (Use unsigned arithmetic.)2 16 − 1 = 65535 | Suppose all address lines are zero except A23, A22, A15, A13, A8, A1, and A0. What is the address in hex? Lines A23-A20 A19-A16 A15-A12 A11-A8 A7-A4 A3-A0 Binary 1100 0000 1010 0001 0000 0011 0x C 0 A 1 0 3 µcontroller systems 17 / 43 Notation for reading, writing Memory is just a large CPU MAR collection of registers, each Address Bus PC SP Memory with its ownINCpc/LOADpc address which is selected by the number CLKmem in the MARIR IR(opcode) IR(address) MBR Data Bus Reading and writing AC involves register transfers. CU Status To read from memory the registerALU transfer is SETalu MBR ControlhMAR Linesi read from memory into MBR to Registers, ALU, Memory, etc Outside the CPU To write to memory the rt is hMAR i MBR write into memory hMAR i means the memory location addressed by the MAR µcontroller systems 18 / 43 OK ..
Recommended publications
  • Computer Organization and Architecture Designing for Performance Ninth Edition
    COMPUTER ORGANIZATION AND ARCHITECTURE DESIGNING FOR PERFORMANCE NINTH EDITION William Stallings Boston Columbus Indianapolis New York San Francisco Upper Saddle River Amsterdam Cape Town Dubai London Madrid Milan Munich Paris Montréal Toronto Delhi Mexico City São Paulo Sydney Hong Kong Seoul Singapore Taipei Tokyo Editorial Director: Marcia Horton Designer: Bruce Kenselaar Executive Editor: Tracy Dunkelberger Manager, Visual Research: Karen Sanatar Associate Editor: Carole Snyder Manager, Rights and Permissions: Mike Joyce Director of Marketing: Patrice Jones Text Permission Coordinator: Jen Roach Marketing Manager: Yez Alayan Cover Art: Charles Bowman/Robert Harding Marketing Coordinator: Kathryn Ferranti Lead Media Project Manager: Daniel Sandin Marketing Assistant: Emma Snider Full-Service Project Management: Shiny Rajesh/ Director of Production: Vince O’Brien Integra Software Services Pvt. Ltd. Managing Editor: Jeff Holcomb Composition: Integra Software Services Pvt. Ltd. Production Project Manager: Kayla Smith-Tarbox Printer/Binder: Edward Brothers Production Editor: Pat Brown Cover Printer: Lehigh-Phoenix Color/Hagerstown Manufacturing Buyer: Pat Brown Text Font: Times Ten-Roman Creative Director: Jayne Conte Credits: Figure 2.14: reprinted with permission from The Computer Language Company, Inc. Figure 17.10: Buyya, Rajkumar, High-Performance Cluster Computing: Architectures and Systems, Vol I, 1st edition, ©1999. Reprinted and Electronically reproduced by permission of Pearson Education, Inc. Upper Saddle River, New Jersey, Figure 17.11: Reprinted with permission from Ethernet Alliance. Credits and acknowledgments borrowed from other sources and reproduced, with permission, in this textbook appear on the appropriate page within text. Copyright © 2013, 2010, 2006 by Pearson Education, Inc., publishing as Prentice Hall. All rights reserved. Manufactured in the United States of America.
    [Show full text]
  • Instruction Register MAR = Memory Address Register MBR = Memory Buffer Register I/O AR = I/O Address Register I/O BR = I/O Buffer Register
    Hardware Level Organization Intro MIPS 1 CPU Main Memory Major components: 0 PC MAR - memory System IR MBR Bus - central processing unit Instruction I/O AR Instruction - registers Instruction Ex Unit I/O BR - the fetch/execute cycle (the hardware process ) Data I/O Module Data Data n-1 buffers PC = program counter IR = instruction register MAR = memory address register MBR = memory buffer register I/O AR = I/O address register I/O BR = I/O buffer register CS @VT Computer Organization II ©2005-2013 McQuain Central Processing Unit Intro MIPS 2 Control - decodes instructions and manages CPU’s internal resources Registers - general-purpose registers available to user processes - special-purpose registers directly managed in fetch/execute cycle - other registers may be reserved for use of operating system - very fast and expensive (relative to memory) - hold all operands and results of arithmetic instructions (on RISC systems) - save bits in instruction representation Data path or arithmetic/logic unit (ALU) - operates on data CS @VT Computer Organization II ©2005-2013 McQuain Stored Program Concept Intro MIPS 3 Instructions are collections of bits Programs are stored in memory, to be read or written just like data Main Memory CPU 0 memory for data, programs, PC MAR compilers, editors, etc. Instruction IR MBR Instruction I/O AR Instruction Ex Unit I/O BR Data Data Data n-1 Fetch & Execute Cycle Instructions are fetched and put into a special register Bits in the register "control" the subsequent actions Fetch the “next” instruction and continue CS @VT Computer Organization II ©2005-2013 McQuain Stored Program Concept Intro MIPS 4 Of course, on most systems several programs will be stored in memory at any given time.
    [Show full text]
  • Please Replace the Following Pages in the Book. 26 Microcontroller Theory and Applications with the PIC18F
    Please replace the following pages in the book. 26 Microcontroller Theory and Applications with the PIC18F Before Push After Push Stack Stack 16-bit Register 0120 143E 20C2 16-bit Register 0120 SP 20CA SP 20C8 143E 20C2 0703 20C4 0703 20C4 F601 20C6 F601 20C6 0706 20C8 0706 20C8 0120 20CA 20CA 20CC 20CC 20CE 20CE Bottom of Stack FIGURE 2.12 PUSH operation when accessing a stack from the bottom Before POP After POP Stack 16-bit Register A286 16-bit Register 0360 Stack 143E 20C2 SP 20C8 SP 20CA 143E 20C2 0705 20C4 0705 20C4 F208 20C6 F208 20C6 0107 20C8 0107 20C8 A286 20CA A286 20CA 20CC 20CC Bottom of Stack FIGURE 2.13 POP operation when accessing a stack from the bottom Note that the stack is a LIFO (last in, first out) memory. As mentioned earlier, a stack is typically used during subroutine CALLs. The CPU automatically PUSHes the return address onto a stack after executing a subroutine CALL instruction in the main program. After executing a RETURN from a subroutine instruction (placed by the programmer as the last instruction of the subroutine), the CPU automatically POPs the return address from the stack (previously PUSHed) and then returns control to the main program. Note that the PIC18F accesses the stack from the top. This means that the stack pointer in the PIC18F holds the address of the bottom of the stack. Hence, in the PIC18F, the stack pointer is incremented after a PUSH, and decremented after a POP. 2.3.2 Control Unit The main purpose of the control unit is to read and decode instructions from the program memory.
    [Show full text]
  • Intel® 4 Series Chipset Family Datasheet
    Intel® 4 Series Chipset Family Datasheet For the Intel® 82Q45, 82Q43, 82B43, 82G45, 82G43, 82G41 Graphics and Memory Controller Hub (GMCH) and the Intel® 82P45, 82P43 Memory Controller Hub (MCH) March 2010 Document Number: 319970-007 INFORMATION IN THIS DOCUMENT IS PROVIDED IN CONNECTION WITH INTEL® PRODUCTS. NO LICENSE, EXPRESS OR IMPLIED, BY ESTOPPEL OR OTHERWISE, TO ANY INTELLECTUAL PROPERTY RIGHTS IS GRANTED BY THIS DOCUMENT. EXCEPT AS PROVIDED IN INTEL'S TERMS AND CONDITIONS OF SALE FOR SUCH PRODUCTS, INTEL ASSUMES NO LIABILITY WHATSOEVER, AND INTEL DISCLAIMS ANY EXPRESS OR IMPLIED WARRANTY, RELATING TO SALE AND/OR USE OF INTEL PRODUCTS INCLUDING LIABILITY OR WARRANTIES RELATING TO FITNESS FOR A PARTICULAR PURPOSE, MERCHANTABILITY, OR INFRINGEMENT OF ANY PATENT, COPYRIGHT OR OTHER INTELLECTUAL PROPERTY RIGHT. Intel products are not intended for use in medical, life saving, life sustaining, critical control or safety systems, or in nuclear facility applications. Intel may make changes to specifications and product descriptions at any time, without notice. Designers must not rely on the absence or characteristics of any features or instructions marked "reserved" or "undefined." Intel reserves these for future definition and shall have no responsibility whatsoever for conflicts or incompatibilities arising from future changes to them. The Intel® 4 Series Chipset family may contain design defects or errors known as errata, which may cause the product to deviate from published specifications. Current characterized errata are available on request. Contact your local Intel sales office or your distributor to obtain the latest specifications and before placing your product order. I2C is a two-wire communications bus/protocol developed by Philips.
    [Show full text]
  • The Central Processor Unit
    Systems Architecture The Central Processing Unit The Central Processing Unit – p. 1/11 The Computer System Application High-level Language Operating System Assembly Language Machine level Microprogram Digital logic Hardware / Software Interface The Central Processing Unit – p. 2/11 CPU Structure External Memory MAR: Memory MBR: Memory Address Register Buffer Register Address Incrementer R15 / PC R11 R7 R3 R14 / LR R10 R6 R2 R13 / SP R9 R5 R1 R12 R8 R4 R0 User Registers Booth’s Multiplier Barrel IR Shifter Control Unit CPSR 32-Bit ALU The Central Processing Unit – p. 3/11 CPU Registers Internal Registers Condition Flags PC Program Counter C Carry IR Instruction Register Z Zero MAR Memory Address Register N Negative MBR Memory Buffer Register V Overflow CPSR Current Processor Status Register Internal Devices User Registers ALU Arithmetic Logic Unit Rn Register n CU Control Unit n = 0 . 15 M Memory Store SP Stack Pointer MMU Mem Management Unit LR Link Register Note that each CPU has a different set of User Registers The Central Processing Unit – p. 4/11 Current Process Status Register • Holds a number of status flags: N True if result of last operation is Negative Z True if result of last operation was Zero or equal C True if an unsigned borrow (Carry over) occurred Value of last bit shifted V True if a signed borrow (oVerflow) occurred • Current execution mode: User Normal “user” program execution mode System Privileged operating system tasks Some operations can only be preformed in a System mode The Central Processing Unit – p. 5/11 Register Transfer Language NAME Value of register or unit ← Transfer of data MAR ← PC x: Guard, only if x true hcci: MAR ← PC (field) Specific field of unit ALU(C) ← 1 (name), bit (n) or range (n:m) R0 ← MBR(0:7) Rn User Register n R0 ← MBR num Decimal number R0 ← 128 2_num Binary number R1 ← 2_0100 0001 0xnum Hexadecimal number R2 ← 0x40 M(addr) Memory Access (addr) MBR ← M(MAR) IR(field) Specified field of IR CU ← IR(op-code) ALU(field) Specified field of the ALU(C) ← 1 Arithmetic and Logic Unit The Central Processing Unit – p.
    [Show full text]
  • Register Are Used to Quickly Accept, Store, and Transfer Data And
    Register are used to quickly accept, store, and transfer data and instructions that are being used immediately by the CPU, there are various types of Registers those are used for various purpose. Among of the some Mostly used Registers named as AC or Accumulator, Data Register or DR, the AR or Address Register, program counter (PC), Memory Data Register (MDR) ,Index register,Memory Buffer Register. These Registers are used for performing the various Operations. While we are working on the System then these Registers are used by the CPU for Performing the Operations. When We Gives Some Input to the System then the Input will be Stored into the Registers and When the System will gives us the Results after Processing then the Result will also be from the Registers. So that they are used by the CPU for Processing the Data which is given by the User. Registers Perform:- 1) Fetch: The Fetch Operation is used for taking the instructions those are given by the user and the Instructions those are stored into the Main Memory will be fetch by using Registers. 2) Decode: The Decode Operation is used for interpreting the Instructions means the Instructions are decoded means the CPU will find out which Operation is to be performed on the Instructions. 3) Execute: The Execute Operation is performed by the CPU. And Results those are produced by the CPU are then Stored into the Memory and after that they are displayed on the user Screen. Types of Registers are as Followings 1. MAR stand for Memory Address Register This register holds the memory addresses of data and instructions.
    [Show full text]
  • Computer Organization
    Chapter 12 Computer Organization Central Processing Unit (CPU) • Data section ‣ Receives data from and sends data to the main memory subsystem and I/O devices • Control section ‣ Issues the control signals to the data section and the other components of the computer system Figure 12.1 CPU Input Data Control Main Output device section section Memory device Bus Data flow Control CPU components • 16-bit memory address register (MAR) ‣ 8-bit MARA and 8-bit MARB • 8-bit memory data register (MDR) • 8-bit multiplexers ‣ AMux, CMux, MDRMux ‣ 0 on control line routes left input ‣ 1 on control line routes right input Control signals • Originate from the control section on the right (not shown in Figure 12.2) • Two kinds of control signals ‣ Clock signals end in “Ck” to load data into registers with a clock pulse ‣ Signals that do not end in “Ck” to set up the data flow before each clock pulse arrives 0 1 8 14 15 22 23 A IR T3 M1 0x00 0x01 2 3 9 10 16 17 24 25 LoadCk Figure 12.2 X T4 M2 0x02 0x03 4 5 11 18 19 26 27 5 C SP T1 T5 M3 0x04 0x08 5 6 7 12 13 20 21 28 29 B PC T2 T6 M4 0xFA 0xFC 5 30 31 A CPU registers M5 0xFE 0xFF CBus ABus BBus Bus MARB MARCk MARA MDRCk MDR MDRMux AMux AMux MDRMux CMux 4 ALU ALU CMux Cin Cout C CCk Mem V VCk ANDZ Addr ANDZ Z ZCk Zout 0 Data 0 0 0 N NCk MemWrite MemRead Figure 12.2 (Expanded) 0 1 8 14 15 22 23 A IR T3 M1 0x00 0x01 2 3 9 10 16 17 24 25 LoadCk X T4 M2 0x02 0x03 4 5 11 18 19 26 27 5 C SP T1 T5 M3 0x04 0x08 5 6 7 12 13 20 21 28 29 B PC T2 T6 M4 0xFA 0xFC 5 30 31 A CPU registers M5 0xFE 0xFF CBus ABus BBus
    [Show full text]
  • Computer Organization and Architecture, Rajaram & Radhakrishan, PHI
    CHAPTER I CONTENTS: 1.1 INTRODUCTION 1.2 STORED PROGRAM ORGANIZATION 1.3 INDIRECT ADDRESS 1.4 COMPUTER REGISTERS 1.5 COMMON BUS SYSTEM SUMMARY SELF ASSESSMENT OBJECTIVE: In this chapter we are concerned with basic architecture and the different operations related to explain the proper functioning of the computer. Also how we can specify the operations with the help of different instructions. CHAPTER II CONTENTS: 2.1 REGISTER TRANSFER LANGUAGE 2.2 REGISTER TRANSFER 2.3 BUS AND MEMORY TRANSFERS 2.4 ARITHMETIC MICRO OPERATIONS 2.5 LOGIC MICROOPERATIONS 2.6 SHIFT MICRO OPERATIONS SUMMARY SELF ASSESSMENT OBJECTIVE: Here the concept of digital hardware modules is discussed. Size and complexity of the system can be varied as per the requirement of today. The interconnection of various modules is explained in the text. The way by which data is transferred from one register to another is called micro operation. Different micro operations are explained in the chapter. CHAPTER III CONTENTS: 3.1 INTRODUCTION 3.2 TIMING AND CONTROL 3.3 INSTRUCTION CYCLE 3.4 MEMORY-REFERENCE INSTRUCTIONS 3.5 INPUT-OUTPUT AND INTERRUPT SUMMARY SELF ASSESSMENT OBJECTIVE: There are various instructions with the help of which we can transfer the data from one place to another and manipulate the data as per our requirement. In this chapter we have included all the instructions, how they are being identified by the computer, what are their formats and many more details regarding the instructions. CHAPTER IV CONTENTS: 4.1 INTRODUCTION 4.2 ADDRESS SEQUENCING 4.3 MICROPROGRAM EXAMPLE 4.4 DESIGN OF CONTROL UNIT SUMMARY SELF ASSESSMENT OBJECTIVE: Various examples of micro programs are discussed in this chapter.
    [Show full text]
  • Parallel Computing in Image Processing Using GPU and CUDA Architecture
    Slovak University of Technology in Bratislava Faculty of Civil Engineering Department of Mathematics and Constructive Geometry Academic year: 2017/2018 Reg. No.: SvF-5343-63353 MASTER THESIS TOPIC Student: Bc. Alexander Baťka Student’s ID: 63353 Study programme: Mathematical and Computational Modeling Study field: 9.1.9. Applied Mathematics Thesis supervisor: Ing. Jozef Urbán, PhD. Topic: Parallel computing in image processing using GPU and CUDA architecture Language of thesis: English Specification of Assignment: Téma sa zaoberá paralelizáciou algoritmov spracovania obrazu pomocou grafických procesorov využitím architektúry CUDA (Compute Unified Device Architecture). Študent naštuduje problematiku využitia GPU pre všeobecné výpočty. Naučí sa pomocou CUDA paralelizovať výpočty používané v spracovaní obrazu ako BiConjugate Gradient Stabilized Method, filtrácia obrazu lineárnou rovnicou vedenia tepla, transformácia a registrácia obrazu. Dosiahnuté výsledky vhodne prezentuje. Selected bibliography: 1. Sanders, J. – Kandrot, E. CUDA by Example: An Introduction to General-Purpose GPU Programming. Upper Saddle River : Addison Wesley, 2011. 290 s. ISBN 978-0-13-138768-3. 2. Krivá, Z. – Mikula, K. – Stašová, O. Spracovanie obrazu: Vybrané kapitoly z prednášok. Bratislava : Slovenská technická univerzita v Bratislave, 2016. 149 s. ISBN 978-80-227-4535-2. 3. Bi-CGSTAB: A fast and smoothly converging variant of Bi-CG for the solution of nonsymmetric linear sys- tems, SIAM J. Sci. Statist. Comput., 13 (1992), pp. 631–644 4. CUDA programming: A Developers guide to parallel computing with GPUs, Shane Cook, 2013, ISBN-978- 0-12-415933-4 Assignment procedure from: 02. 10. 2017 Date of thesis submission: 10. 05. 2018 Bc. Alexander Baťka Student prof. RNDr. Radko Mesiar, DrSc. prof. RNDr.
    [Show full text]
  • Chapter 2 - Computer Evolution and Performance
    Chapter 2 - Computer Evolution and Performance A Brief History of Computers (Section 2.1) on pp. 16-38 Let's take a quick look at the history of computers so that we know where it all began. Further, we will find that most things have dramatically changed while some have not. ENIAC (Electronic Numerical Integrator and Computer) Designed by: John Mauchly and John Presper Eckert Reason: Response to wartime needs Completed: 1946 Specifics: 30 tons, 15,000 sq ft, 18000 vacuum tubes, 5000 additions/sec decimal machine with 20 accumulators each accumulator could hold a 10-digit decimal number Programming the ENIAC involved plugging and unplugging cables. If however, the program could be stored somehow and held in memory along with the data, this process would not be necessary. This is known as the "stored-program concept." Much of the credit was given to John von Neumann who helped engineer a computer (IAS) that utilized this concept and was completed in 1952. What is amazing is that today, most computers have the same general structure and function. Wow!! IAS Computer Designed by: John von Neumann Reason: Incorporate the stored-program concept Completed: 1952 Specifics: 1000 words (40-bit words) of storage, both data and instructions are stored, binary representations A word of storage can represent either an instruction or a number. The format for each is as follows: Number: bit 0 is sign bit, bits 1-39 are the number Instruction: bits 0-7 opcode of left instruction bits 8-19 address of one of the words of memory bits 20-27 opcode of right instruction bits 28-39 address of one of the words of memory Note: An instruction word really contains two instructions (left and right instructions).
    [Show full text]
  • Chapter 1 + Basic Concepts and Computer Evolution Computer Architecture 2 Computer Organization
    1 Chapter 1 + Basic Concepts and Computer Evolution Computer Architecture 2 Computer Organization • Attributes of a • Instruction set, system visible to number of bits used to represent various the programmer data types, I/O • Have a direct mechanisms, impact on the techniques for logical execution addressing memory of a program Architectural Computer attributes Architecture include: Organizational Computer attributes Organization include: • The operational • Hardware details units and their transparent to the interconnections programmer, control that realize the signals, interfaces between the computer and architectural peripherals, memory specifications technology used + IBM System 370 Architecture 3 ◼ IBM System/370 architecture ◼ Was introduced in 1970 ◼ Included a number of models ◼ Could upgrade to a more expensive, faster model without having to abandon original software ◼ New models are introduced with improved technology, but retain the same architecture so that the customer’s software investment is protected ◼ Architecture has survived to this day as the architecture of IBM’s mainframe product line System/370-145 system console. + 4 Structure and Function ◼Structure ◼ The way in which ◼ Hierarchical system components relate to each other ◼ Set of interrelated subsystems ◼Function ◼ Hierarchical nature of complex ◼ The operation of individual systems is essential to both components as part of the their design and their structure description ◼ Designer need only deal with a particular level of the system at a time ◼ Concerned
    [Show full text]
  • Microsoft Powerpoint
    William Stallings Computer Organization and Architecture Chapter 12 CPU Structure and Function Rev. 3.3 (2009-10) by Enrico Nardelli12 - 1 CPU Functions • CPU must: Fetch instructions Decode instructions Fetch operands Execute instructions / Process data Store data Check (and possibly serve) interrupts Rev. 3.3 (2009-10) by Enrico Nardelli 12 - 2 CPU Components Registri PC IR Data Lines ALU ControlControl Lines Lines AddressAddressLines Lines AC MBR CPU Internal Bus Bus InternalInternal CPU CPU MAR Control Unit Control Signals Rev. 3.3 (2009-10) by Enrico Nardelli 12 - 3 Kind of Registers • User visible and modifiable General Purpose Data (e.g. accumulator) Address (e.g. base addressing, index addressing) • Control registers (not visible to user) Program Counter (PC) Instruction Decoding Register (IR) Memory Address Register (MAR) Memory Buffer Register (MBR) • State register (visible to user but not directly modifiable) Program Status Word (PSW) Rev. 3.3 (2009-10) by Enrico Nardelli 12 - 4 Kind of General Purpose Registers • May be used in a general way or be restricted to contains only data or only addresses • Advantages of general purpose registers Increase flexibility and programmer options Increase instruction size & complexity • Advantages of specialized (data/address) registers Smaller (faster) instructions Less flexibility Rev. 3.3 (2009-10) by Enrico Nardelli 12 - 5 How Many General Purposes Registers? • Between 8 - 32 • Fewer = more memory references • More does not reduce memory references and takes up processor real estate Rev. 3.3 (2009-10) by Enrico Nardelli 12 - 6 How many bits per register? • Large enough to hold full address value • Large enough to hold full data value • Often possible to combine two data registers to obtain a single register with a double length Rev.
    [Show full text]