Advanced Parallel Architecture Lesson 3. Annalisa Massini /2015

Similar documents
Advanced Parallel Architecture Lesson 3. Annalisa Massini /2015

Processing Unit CS206T

Micro-Operations. execution of a sequence of steps, i.e., cycles

COMPUTER ORGANIZATION & ARCHITECTURE

Computer Organization CS 206 T Lec# 2: Instruction Sets

William Stallings Computer Organization and Architecture

Chapter 2 Instruction Set Architecture

Instruction Sets: Characteristics and Functions

CPU Structure and Function

Instruction Sets: Characteristics and Functions Addressing Modes

William Stallings Computer Organization and Architecture. Chapter 11 CPU Structure and Function

Computer Architecture and Organization. Instruction Sets: Addressing Modes and Formats

Unit 1. Chapter 3 Top Level View of Computer Function and Interconnection

ENIAC - background. ENIAC - details. Structure of von Nuemann machine. von Neumann/Turing Computer Architecture

Chapter 3 : Control Unit

William Stallings Computer Organization and Architecture

There are four registers involved in the fetch cycle: MAR, MBR, PC, and IR.

Chapter 16. Control Unit Operation. Yonsei University

CPU Structure and Function. Chapter 12, William Stallings Computer Organization and Architecture 7 th Edition

UNIT- 5. Chapter 12 Processor Structure and Function

Chapter 2. Perkembangan Komputer

William Stallings Computer Organization and Architecture 8 th Edition. Chapter 2 Computer Evolution and Performance

2. Computer Evolution and Performance

Digital System Design Using Verilog. - Processing Unit Design

Addressing Modes. Immediate Direct Indirect Register Register Indirect Displacement (Indexed) Stack

Class Notes. Dr.C.N.Zhang. Department of Computer Science. University of Regina. Regina, SK, Canada, S4S 0A2

Module 5 - CPU Design

DC57 COMPUTER ORGANIZATION JUNE 2013

William Stallings Computer Organization and Architecture 8 th Edition. Chapter 11 Instruction Sets: Addressing Modes and Formats

Chapter 3 - Top Level View of Computer Function

CPU Structure and Function

Chapter 3. Top Level View of Computer Function and Interconnection. Yonsei University

Computer & Microprocessor Architecture HCA103

Top-Level View of Computer Organization

William Stallings Computer Organization and Architecture 8 th Edition. Chapter 16 Micro-programmed Control

CPU ARCHITECTURE. QUESTION 1 Explain how the width of the data bus and system clock speed affect the performance of a computer system.

THE MICROPROCESSOR Von Neumann s Architecture Model

Computer Architecture

Chapter 11. Instruction Sets: Addressing Modes and Formats. Yonsei University

Module 3 Instruction Set Architecture (ISA)

Microprogrammed Control

The Instruction Set. Chapter 5

Chapter 17. Microprogrammed Control. Yonsei University

William Stallings Computer Organization and Architecture 8 th Edition. Micro-programmed Control

William Stallings Computer Organization and Architecture 10 th Edition Pearson Education, Inc., Hoboken, NJ. All rights reserved.

Computer Systems Architecture

CS 265. Computer Architecture. Wei Lu, Ph.D., P.Eng.

CS 101, Mock Computer Architecture

Blog -

CHAPTER 4 MARIE: An Introduction to a Simple Computer

FUNDAMENTOS DEL DISEÑO DE

Chapter 4 The Von Neumann Model

CN310 Microprocessor Systems Design

Chapter 1 : Introduction

Chapter 4 The Von Neumann Model

MARIE: An Introduction to a Simple Computer

Basics of Microprocessor

Basic Processing Unit: Some Fundamental Concepts, Execution of a. Complete Instruction, Multiple Bus Organization, Hard-wired Control,

(Advanced) Computer Organization & Architechture. Prof. Dr. Hasan Hüseyin BALIK (3 rd Week)

Chapter 20 - Microprogrammed Control (9 th edition)

Chapter 12. CPU Structure and Function. Yonsei University


General purpose registers These are memory units within the CPU designed to hold temporary data.

Chapter 4. MARIE: An Introduction to a Simple Computer

Computer Architecture

What Are The Main Differences Between Program Counter Pc And Instruction Register Ir

Blog -

Chapter 05: Basic Processing Units Control Unit Design. Lesson 15: Microinstructions

Chapter 4 The Von Neumann Model

SCRAM Introduction. Philipp Koehn. 19 February 2018

ADVANCED COMPUTER ARCHITECTURE TWO MARKS WITH ANSWERS

MARIE: An Introduction to a Simple Computer

UNIT V: CENTRAL PROCESSING UNIT

Micro-programmed Control Ch 15

Computer Systems Organization

Machine Instructions vs. Micro-instructions. Micro-programmed Control Ch 15. Machine Instructions vs. Micro-instructions (2) Hardwired Control (4)

Introduction to Microcontrollers

Lecture1: introduction. Outline: History overview Central processing unite Register set Special purpose address registers Datapath Control unit

Micro-programmed Control Ch 15

General Purpose Processors

Micro-programmed Control Ch 17

Control unit. Input/output devices provide a means for us to make use of a computer system. Computer System. Computer.

COMPUTER STRUCTURE AND ORGANIZATION

Hardwired Control (4) Micro-programmed Control Ch 17. Micro-programmed Control (3) Machine Instructions vs. Micro-instructions

Running Applications

COSC 243. Computer Architecture 1. COSC 243 (Computer Architecture) Lecture 6 - Computer Architecture 1 1

William Stallings Computer Organization and Architecture 8 th Edition. Chapter 12 Processor Structure and Function

Department of Computer Science and Engineering CS6303-COMPUTER ARCHITECTURE UNIT-I OVERVIEW AND INSTRUCTIONS PART A

Instruction Set II. COMP 212 Computer Organization & Architecture. COMP 212 Fall Lecture 7. Instruction Set. Quiz. What is an Instruction Set?

SAE5C Computer Organization and Architecture. Unit : I - V

Introduction. Computer System Organization. Languages, Levels, Virtual Machines. A multilevel machine. Sarjana Magister Program

Chapter 4. Chapter 4 Objectives

Computer Logic II CCE 2010

17. Instruction Sets: Characteristics and Functions

The Stored Program Computer

Computer Organization and Technology Processor and System Structures

CPE300: Digital System Architecture and Design

CS 265. Computer Architecture. Wei Lu, Ph.D., P.Eng.

Copyright The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Computing Layers

ASSEMBLY LANGUAGE MACHINE ORGANIZATION

Transcription:

Advanced Parallel Architecture Lesson 3 Annalisa Massini -

Von Neumann Architecture 2

Two lessons Summary of the traditional computer architecture Von Neumann architecture http://williamstallings.com/coa/coa7e.html 3

What is a computer? A computer was a job title, not a piece of equipment! Requirements of a computer: Process data Store data Move data between the computer and the outside world Control the operation of the above 4

Architecture & Organization Architecture is those attributes visible to the programmer Instruction set, number of bits used for data representation, I/O mechanisms, addressing techniques e.g. Is there a multiply instruction? Organization is how features are implemented Control signals, interfaces, memory technology e.g. Is there a hardware multiply unit or is it done by repeated addition? 5

Structure & Function Structure is the way in which components relate to each other Function is the operation of individual components as part of the structure All computer functions are: Data processing Data storage Data movement Control 6

ENIAC - background Electronic Numerical Integrator And Computer Eckert and Mauchly - University of Pennsylvania Trajectory tables for weapons Started 1943 - Finished 1946 - Used until 1955 Decimal (not binary) - 20 accumulators of 10 digits Programmed manually by switches 18,000 vacuum tubes 30 tons - 15,000 square feet 140 kw power consumption 5,000 additions per second 7

von Neumann/Turing Stored Program concept Main memory storing programs and data ALU operating on binary data Control unit interpreting instructions from memory and executing Input and output equipment operated by control unit Princeton Institute for Advanced Studies - IAS Completed 1952 8

Structure of von Neumann machine 9

IAS 1000 x 40 bit words Binary number 2 x 20 bit instructions Set of registers (storage in CPU) Memory Buffer Register Memory Address Register Instruction Register Instruction Buffer Register Program Counter Accumulator Multiplier Quotient 10

Structure of IAS 11

Generations of Computer Vacuum tube - 1946-1957 Transistor - 1958-1964 Small scale integration - 1965 on Up to 100 devices on a chip Medium scale integration - to 1971 100-3,000 devices on a chip Large scale integration - 1971-1977 3,000-100,000 devices on a chip Very large scale integration - 1978-1991 100,000-100,000,000 devices on a chip Ultra large scale integration 1991 - Over 100,000,000 devices on a chip 12

Structure - Top Level Peripherals Computer Central Processing Unit Main Memory Computer Systems Interconnection Communication lines Input Output 13

Structure - The CPU CPU I/O Computer System Bus Memory CPU Registers Internal CPU Interconnection Arithmetic and Login Unit Control Unit 14

Components The Control Unit and the Arithmetic and Logic Unit constitute the Central Processing Unit Data and instructions get into the system and results out Input/output Temporary storage of code and results is needed Main memory Basic element of a processor 15 ALU Registers Internal data pahs External data paths Control Unit

Structure - The Control Unit Control Unit ALU CPU Internal Bus Registers Control Unit Sequencing Login Control Unit Registers and Decoders Control Memory 16

Functional Requirements Define basic elements of processor Describe micro-operations processor performs Determine functions control unit must perform 17

Four Levels of Computer Description Global system structure Overall system structure is defined Major components identified Processors Control modules Memory modules Interconnection structure Mostly a static description black box approach 18

Four Levels of Computer Description Processor level Architectural Features specified Interfaces Instruction sets Data Representation More detailed individual component specification 19

Four Levels of Computer Description Register level Specify internal operation of processor-level components at the word level Primitives Registers Counters Memories ALUs Clocks Combinational logic Gate level Specify operations at the individual bit level Gates are primitive elements 20

Functional View 21

Operations - Data movement 22

Operations - Storage 23

Operation - Processing from/to storage 24

Operation - Processing from storage to I/O 25

Observations Traditionally, the computer has been viewed as a sequential machine Most computer programming languages require the programmer to specify algorithms as sequences of instructions Processors execute programs by executing machine instructions in a sequence and one at a time Each instruction is executed in a sequence of operations (fetch instruction, fetch operands, perform operation, store results) This view of the computer has never been entirely true 26

Observations At the micro-operation level, multiple control signals are generated at the same time Instruction pipelining, at least to the extent of overlapping fetch and execute operations, has been around for a long time Both of these are examples of performing functions in parallel 27

What is a program? A sequence of steps For each step, an arithmetic or logical operation is done For each operation, a different set of control signals is needed For each operation a unique code is provided e.g. ADD, MOVE A hardware segment accepts the code and issues the control signals 28

Micro-Operations A computer executes a program Fetch/execute cycle Each cycle has a number of steps see pipelining Called micro-operations Each step does very little Atomic operation of CPU 29

Computer Components: Top Level View 30

Instruction Cycle Two steps: Fetch Execute 31

Fetch Cycle Program Counter (PC) holds address of next instruction to fetch Processor fetches instruction from memory location pointed to by PC Increment PC Unless told otherwise Instruction loaded into Instruction Register (IR) Processor interprets instruction and performs required actions 32

Execute Cycle Processor-memory data transfer between CPU and main memory Processor I/O Data transfer between CPU and I/O module Data processing Some arithmetic or logical operation on data Control Alteration of sequence of operations e.g. jump Combination of above 33

Control unit 34

Model of Control Unit 35

Control Unit Organization 36

Types of Micro-operation Transfer data between registers Transfer data from register to external Transfer data from external to register Perform arithmetic or logical ops 37

Functions of Control Unit Sequencing Causing the CPU to step through a series of micro-operations Execution Causing the performance of each micro-op This is done using Control Signals 38

Control Signals Clock One micro-instruction (or set of parallel micro-instructions) per clock cycle Instruction register Op-code for current instruction Determines which micro-instructions are performed Flags State of CPU Results of previous operations From control bus Interrupts Acknowledgements 39

Control Signals - output Within CPU Cause data movement Activate specific functions Via control bus To memory To I/O modules 40

Example Control Signal Sequence - Fetch MAR <- (PC) Control unit activates signal to open gates between PC and MAR MBR <- (memory) Open gates between MAR and address bus Memory read control signal Open gates between data bus and MBR 41

Internal Organization Usually a single internal bus Gates control movement of data onto and off the bus Control signals control data transfer to and from external systems bus Temporary registers needed for proper operation of ALU 42

Hardwired Implementation Control unit inputs Flags and control bus (each bit means something) Instruction register Different control signals for each different instruction Unique logic for each op-code Decoder takes encoded input and produces single output n binary inputs and 2 n outputs Clock Repetitive sequence of pulses Must be long enough to allow signal propagation Different control signals at different times within instruction cycle 43

Control Unit with Decoded Inputs 44

Problems With Hard Wired Designs Complex sequencing & micro-operation logic Difficult to design and test Inflexible design Difficult to add new instructions 45

Micro-programmed Control Use sequences of instructions to control complex operations Called micro-programming or firmware 46

Implementation All the control unit generates a set of control signals Each control signal is on or off Represent each control signal by a bit Have a control word for each micro-operation Have a sequence of control words for each machine code instruction Add an address to specify the next micro-instruction, depending on conditions Today s large microprocessor Many instructions and associated register-level hardware Many control points to be manipulated 47

Micro-instruction Types Each micro-instruction specifies single (or few) microoperations to be performed (vertical micro-programming) Each micro-instruction specifies many different microoperations to be performed in parallel (horizontal micro-programming) 48

Organization of Control Memory 49

Control Unit 50

Control Unit Function Sequence login unit issues read command Word specified in control address register is read into control buffer register Control buffer register contents generates control signals and next address information Sequence login loads new address into control buffer register based on next address information from control buffer register and ALU flags 51

Functioning of Microprogrammed Control Unit 52

Instructions 53

What is an Instruction Set? The complete collection of instructions that are understood by a CPU Machine Code Binary Usually represented by assembly codes 54

Elements of an Instruction Operation code (Op code) Do this Source Operand reference To this Result Operand reference Put the answer here Next Instruction Reference When you have done that, do this... 55

Instruction Representation In machine code each instruction has a unique bit pattern For human consumption (well, programmers anyway) a symbolic representation is used e.g. ADD, SUB, LOAD Operands can also be represented in this way ADD A,B 56

Instruction Types Data processing Data storage (main memory) Data movement (I/O) Program flow control 57

Number of Addresses 3 addresses (not common) Operand 1, Operand 2, Result - a = b + c; May be a forth - next instruction (usually implicit) Needs very long words to hold everything 2 addresses One address doubles as operand and result - a = a + b Reduces length of instruction Requires some extra work 1 address (Common on early machines) Implicit second address - Usually a register (accumulator) 0 addresses 58 All addresses implicit - Uses a stack

How Many Addresses More addresses More complex (powerful?) instructions More registers Inter-register operations are quicker Fewer instructions per program Fewer addresses Less complex (powerful?) instructions More instructions per program Faster fetch/execution of instructions 59

Design Decisions Operation repertoire How many ops? What can they do? How complex are they? Data types Instruction formats Length of op code field Number of addresses Registers Number of CPU registers available Which operations can be performed on which registers? Addressing modes RISC v CISC 60

Types of Operand Addresses Numbers Integer/floating point Characters ASCII etc. Logical Data Bits or flags (Aside: Is there any difference between numbers and characters? Ask a C programmer!) 61

Instructions execution 62

Instruction Cycle Two steps: Fetch Execute 63

Fetch Cycle Program Counter (PC) holds address of next instruction to fetch Processor fetches instruction from memory location pointed to by PC Increment PC Unless told otherwise Instruction loaded into Instruction Register (IR) Processor interprets instruction and performs required actions 64

Execute Cycle Processor-memory data transfer between CPU and main memory Processor I/O Data transfer between CPU and I/O module Data processing Some arithmetic or logical operation on data Control Alteration of sequence of operations e.g. jump Combination of above 65

Instruction Cycle State Diagram 66

Constituent Elements of Program Execution 67

Instruction Cycle Each phase decomposed into sequence of elementary micro-operations E.g. fetch, indirect, and interrupt cycles Execute cycle One sequence of micro-operations for each opcode Need to tie sequences together Assume new 2-bit register Instruction cycle code (ICC) designates which part of cycle processor is in 00: Fetch 01: Indirect 10: Execute 11: Interrupt 68

Interrupts Mechanism by which other modules (e.g. I/O) may interrupt normal sequence of processing Program e.g. overflow, division by zero Timer Generated by internal processor timer Used in pre-emptive multi-tasking I/O from I/O controller Hardware failure e.g. memory parity error 69

Multiple Interrupts Disable interrupts Processor will ignore further interrupts whilst processing one interrupt Interrupts remain pending and are checked after first interrupt has been processed Interrupts handled in sequence as they occur Define priorities Low priority interrupts can be interrupted by higher priority interrupts When higher priority interrupt has been processed, processor returns to previous interrupt 70

Interrupt Cycle Added to instruction cycle Processor checks for interrupt Indicated by an interrupt signal If no interrupt, fetch next instruction If interrupt pending: Suspend execution of current program Save context Set PC to start address of interrupt handler routine Process interrupt Restore context and continue interrupted program 71

Instruction Cycle with Interrupts 72

Instruction Cycle with Interrupts - State Diagram 73

Multiple Interrupts - Sequential 74

Multiple Interrupts Nested 75

Addressing Modes and Formats 76

Addressing Modes Immediate Direct Indirect Register Register Indirect Displacement (Indexed) Stack 77

Immediate Addressing Operand is part of instruction Operand = address field e.g. ADD 5 Add 5 to contents of accumulator 5 is operand No memory reference to fetch data Fast Limited range Instruction 78

Direct Addressing Address field contains address of operand Effective address (EA) = address field (A) Single memory reference to access data No additional calculations to work out effective address Limited address space Instruction Opcode Address A Memory Operand 79

Indirect Addressing Memory cell pointed to by address field contains the address of (pointer to) the operand EA = (A) Look in A, find address (A) and look there for operand Large address space - 2 n where n = word length Multiple memory accesses to find operand - hence slower Opcode Instruction Address A Memory Pointer to operand Operand 80

Register Addressing Operand is held in register named in address filed Limited number of registers Very small address field needed Shorter instructions - Faster instruction fetch No memory access -Very fast execution Very limited address space Multiple registers helps performance Opcode Instruction Register Address R Registers Operand 81

Register Indirect Addressing C.f. indirect addressing EA = (R) Operand is in memory cell pointed to by contents of register R Large address space (2 n ) One fewer memory access than indirect addressing Opcode Registers Instruction Register Address R Memory Pointer to Operand Operand 82

Displacement Addressing EA = A + (R) Address field hold two values A = base value R = register that holds displacement or vice versa Instruction Opcode Register R Address A Memory Registers Pointer to Operand + Operand 83

Relative Addressing A version of displacement addressing R = Program counter, PC EA = A + (PC) i.e. get operand from A cells from current location pointed to by PC c.f locality of reference & cache usage 84

Base-Register Addressing A holds displacement R holds pointer to base address R may be explicit or implicit e.g. segment registers in 80x86 85

Indexed Addressing A = base R = displacement EA = A + R Good for accessing arrays EA = A + R R++ 86

Instruction Formats Layout of bits in an instruction Includes opcode Includes (implicit or explicit) operand(s) Usually more than one instruction format in an instruction set 87

Instruction Length Affected by and affects: Memory size Memory organization Bus structure CPU complexity CPU speed Trade off between powerful instruction repertoire and saving space 88