Overview of Instruction Set Architectures

Slides:



Advertisements
Similar presentations
Instruction Set Design
Advertisements

CPU Review and Programming Models CT101 – Computing Systems.
1 Lecture 3: Instruction Set Architecture ISA types, register usage, memory addressing, endian and alignment, quantitative evaluation.
INSTRUCTION SET ARCHITECTURES
There are two types of addressing schemes:
Instruction Set Architecture Classification According to the type of internal storage in a processor the basic types are Stack Accumulator General Purpose.
ITCS 3181 Logic and Computer Systems 2015 B. Wilkinson slides3.ppt Modification date: March 16, Addressing Modes The methods used in machine instructions.
CSC 3210 Computer Organization and Programming Introduction and Overview Dr. Anu Bourgeois.
Processor Function Topic 3.
Instruction Set Architecture & Design
TK 2633 Microprocessor & Interfacing Lecture 3: Introduction to 8085 Assembly Language Programming (2) 1 Prepared By: Associate Prof. Dr Masri Ayob.
S. Barua – CPSC 440 CHAPTER 2 INSTRUCTIONS: LANGUAGE OF THE COMPUTER Goals – To get familiar with.
Unit -II CPU Organization By- Mr. S. S. Hire. CPU organization.
Implementation of a Stored Program Computer
Programming Models CT213 – Computing Systems Organization.
Instruction Set Design by Kip R. Irvine (c) Kip Irvine, All rights reserved. You may modify and copy this slide show for your personal use,
Machine Instruction Characteristics
Implementation of a Stored Program Computer ITCS 3181 Logic and Computer Systems 2014 B. Wilkinson Slides2.ppt Modification date: Oct 16,
CSC 3210 Computer Organization and Programming Chapter 1 THE COMPUTER D.M. Rasanjalee Himali.
ECEG-3202 Computer Architecture and Organization Chapter 6 Instruction Sets: Addressing Modes and Formats.
Instruction Sets: Addressing modes and Formats Group #4  Eloy Reyes  Rafael Arevalo  Julio Hernandez  Humood Aljassar Computer Design EEL 4709c Prof:
Addressing Modes and Formats
Computer Organization Instructions Language of The Computer (MIPS) 2.
Computer Architecture. Instruction Set “The collection of different instructions that the processor can execute it”. Usually represented by assembly codes,
Displacement (Indexed) Stack
A Closer Look at Instruction Set Architectures
William Stallings Computer Organization and Architecture 6th Edition
Computer Architecture Instruction Set Architecture
Chapter 11 Instruction Sets
Architecture Review Instruction Set Architecture
Introduction of microprocessor
Alvaro Mauricio Peña Dariusz Niworowski Frank Rodriguez
A Closer Look at Instruction Set Architectures
Computer Organization and Design
Basics Of X86 Architecture
William Stallings Computer Organization and Architecture 8th Edition
Overview Introduction General Register Organization Stack Organization
Computer Organization and Design
Computer Organization and Assembly Language (COAL)
Chapter 10 The Stack.
Introduction to Assembly Language
BIC 10503: COMPUTER ARCHITECTURE
CS170 Computer Organization and Architecture I
The Instruction Set Architecture Level
CSCE Fall 2013 Prof. Jennifer L. Welch.
Introduction to Intel IA-32 and IA-64 Instruction Set Architectures
The University of Adelaide, School of Computer Science
CENTRAL PROCESSING UNIT
Chapter 8 Central Processing Unit
ECEG-3202 Computer Architecture and Organization
Introduction to Micro Controllers & Embedded System Design
Computer Architecture
Classification of instructions
A Closer Look at Instruction Set Architectures Chapter 5
Computer Instructions
Other ISAs Next, we’ll first we look at a longer example program, starting with some C code and translating it into our assembly language. Then we discuss.
Other ISAs Next, we’ll first we look at a longer example program, starting with some C code and translating it into our assembly language. Then we discuss.
CSCE Fall 2012 Prof. Jennifer L. Welch.
Introduction to Microprocessor Programming
Instructions in Machine Language
Addressing mode summary
COMS 361 Computer Organization
CPU Structure CPU must:
Systems Architecture I (CS ) Lecture 5: MIPS Instruction Set*
William Stallings Computer Organization and Architecture 8 th Edition Chapter 11 Instruction Sets: Addressing Modes and Formats.
COMPUTER ORGANIZATION AND ARCHITECTURE
Computer Organization
Lecture 1: SIC Architecture
Presentation transcript:

Overview of Instruction Set Architectures Computer Organization Adapted from Ch. 4 of N. Carter’s Computer Architecture Overview of Instruction Set Architectures

Variety of Instruction Sets Computer Organization Variety of Instruction Sets Number of operands for ALU instructions Number and type of processor registers How to refer to memory locations Number of bits used to address memory Number of bits needed to encode a machine language instruction

Computer Organization Number of Operands Zero operands for ALU instructions: Stack architectures operate on data values held in a last-in-first-out (LIFO) stack. Push a new value on top of stack. Pop the topmost value(s) off the stack.

Stack Machine Instructions Push operand value Pop MUL ADD SUB DIV

Multiplication with a Stack Computer Organization Computer Organization Multiplication with a Stack Push two operands on top of stack MUL: Pops two operands, pushes product MUL instruction specifies no operands. Implicitly pop operands from stack. Push #10 Push #20 MUL Push #20 Push #10 20 MUL Empty 10 10 200 SP = -1 SP = 0 SP = 1 SP = 0

Subtraction with a Stack Push two operands on top of stack SUB: Pops two operands, pushes difference Subtracts top value from next value down Push #10 Push #20 SUB Push #20 Push #10 20 SUB Empty 10 10 -10 SP = -1 SP = 0 SP = 1 SP = 0

Stack Exercise 4.7 Write a stack program that computes First, express in Reverse Polish Notation 5 + (3 7 x) – 8 5 (3 7 x) + - 8 5 (3 7 x) + 8 -

Stack Exercise: Solution Computer Organization Stack Exercise: Solution Write a stack program that computes 5 + (3 x 7) – 8 Trace the execution of the stack program to verify the result. PUSH #5 PUSH #3 PUSH #7 MUL ADD PUSH #8 SUB

Stack Machines in History Computer Organization Stack Machines in History Example: Burroughs 5000 (B5000) Originated in 1961 Designed for ALGOL language Wanted ease of language compiler development Topmost two words of stack held in two processor registers rest of stack in memory.

Legacy of Stack Machines Computer Organization Legacy of Stack Machines Modern compilers still use RPN and a stack algorithm to compile arithmetic expressions Function calls are implemented using a stack of activation records that hold function return addresses & local variables

Summary of Stack Machines Computer Organization Summary of Stack Machines Stack instructions take less memory to encode since 0 or 1 operand instructions. Easier to write a stack machine assembler or compiler. Stack does not support random access. Bottleneck since all operations occur only with the few values atop the stack.

Accumulator Architectures Computer Organization Accumulator Architectures 1946 paper on “Stored program computer” proposed a single ALU register called the accumulator. The EDSAC (1950) used its accumulator register to hold the result of the processor’s calculations (like our TOY-1 calculator)

EDSAC Photo of EDSAC just after its completion in 1949 Computer Organization EDSAC Photo of EDSAC just after its completion in 1949 http://www.dcs.warwick.ac.uk/~edsac (c) Martin Campbell-Kelly

Computer Organization Accumulator Register 18 machine instructions each specified by a single letter mnemonic such as A = Add Each mnemonic was translated by a simple “keyboard” into binary in the form of holes punched on a paper tape

EDSAC Mnemonics A Add S Subtract I Read Computer Organization EDSAC Mnemonics A Add S Subtract I Read T Transfer information to storage Z Stop the machine

DEC PDP-8 (1965) Single accumulator register Computer Organization DEC PDP-8 (1965) Single accumulator register Each assembly instruction is encoded into 12 bits 8 different machine instructions

PDP-8 Instruction Format Computer Organization PDP-8 Instruction Format 3 bits to encode one of 8 possible machine instructions Remaining 9 bits used to specify either a constant, memory address, or I/O device parameter Op-Code Address / Data 3 bits 9 bits

Computer Organization Example PDP-8 Program // Computer C = A + B // Clear accumulator to zero CLA // accumulator = accumulator + A TAD A // accumulator = accumulator + B TAD B // store accumulator value into memory location C DCA C Source: http://userpages.wittenberg.edu/bshelburne/Comp255S/PDP8Assembler.htm

Accumulator & Registers Computer Organization Computer Organization Accumulator & Registers Some early personal computer processors such as the MOS 6502 had an accumulator plus two index registers Examples: Apple II, Commodore 64, Atari 800, Nintendo NES 8-bit game console Word size is 8-bits (1 byte)

6502 Processor 8-bit Accumulator X Index Register Y Index Register 16-bit Program Counter 16-bit Stack Pointer 8-bit Processor Status 3 8-bit registers: accumulator, X index, and Y index Stack is used for passing function parameters

Computer Organization 6502 Addressing Modes Addressing mode is the way in which operand values are specified 6502 provided... Immediate mode Absolute memory addressing Absolute indexed memory addressing

Immediate Mode Operand value is directly specified as a constant value Computer Organization Immediate Mode Operand value is directly specified as a constant value # designates operand as immediate value Example: // Load accumulator with value 10 LDA #10

Computer Organization Immediate Mode // Load accumulator with value 0 LDA #0 // Add value 10 to contents of accumulator ADC #10 // Subtract value 5 from accumulator SBC #5

Immediate Mode Example Computer Organization Immediate Mode Example Show contents of accumulator after executing these instructions LDA #7 ADC #10 SBC #3 Accum. = 7 Accum. = 17 Accum. = 14

Absolute Memory Addressing Computer Organization Absolute Memory Addressing // Load accumulator with value at memory // address 1000 LDA 1000 Each addressable memory location is 8-bits Accum. = 30 10 20 30 1000 1001 1002 60 1003

Example Example assembly code to compute C = A + B Computer Organization Example Example assembly code to compute C = A + B // Load accumulator with A from address 1000 LDA 1000 // Add value of B from address 1001 to accumulator ADC 1001 // Store contents of accumulator in C location 1002 STA 1002

Absolute Indexed Addressing Computer Organization Absolute Indexed Addressing // Load accumulator with value at memory // address 1000 + value of X index register LDX #2 LDA 1000,X Accumulator gets value of 10 from address 1000+2 = 1002 Accum. = Memory[1000 + 2] = 10 X = 2 Accum. = 10 10 20 30 1000 1001 1002 60 1003

Indexing Array Elements Computer Organization Indexing Array Elements If we increment the X-index register we can use absolute indexing to step through the elements of an array LDX instruction increments the value of the X-index register

Sum of Array Elements 3 8-bit integers in memory locations 1000-1002. Computer Organization Computer Organization Sum of Array Elements 3 8-bit integers in memory locations 1000-1002. Store sum in location 1003. LDA #0 LDX #0 ADC 1000,X INX STA 1003 10 20 30 1000 1001 1002 60 1003 Memory

Exercise Show contents of X-index and accumulator after each instruction is executed. LDA #0 LDX #0 ADC 1000,X INX STA 1003 10 20 30 1000 1001 1002 60 1003 Memory

Exercise: Solution A = 0 X = ? A = 0 X = 0 A = 30 X = 0 A = 30 X = 1 Computer Organization Exercise: Solution LDA #0 LDX #0 ADC 1000,X INX STA 1003 A = 0 X = ? A = 0 X = 0 A = 30 X = 0 A = 30 X = 1 A = 50 X = 1 A = 50 X = 2 A = 60 X = 2 10 20 30 1000 1001 1002 60 1003 Memory

Computer Organization 6502 In Perspective “The 6502 was much superior to the Intel 8080. I had studied computer architecture as the primary interest of my life. The versatile addressing modes of the 6502 meant more than even if the 8080 had been a 16 bit machine.” Steve Wozniak Source: http://www.woz.org/letters/general/81.html

Computer Organization Too Few Registers Stack, accumulator, and accumulator + index registers must perform slower memory accesses whenever a program needs to use many different variables at the same time Example: q = sqrt(x*x + y*y + z) / log(a - b)

General Purpose Register Machines GPR machines make no distinction between accumulator and index registers. Any register may be used to load/store memory and perform arithmetic or comparison operations.

General Purpose Register Machines Computer Organization General Purpose Register Machines Examples: MIPS R3000, Intel Pentium, Power PC, Sun SPARC Processor Number of GPR’s Intel 80386 8 MIPS R3000 31 Power PC G4 32 Not counting floating point or multimedia MMX registers

GPR Assembly Example Registers r0 - r7 Computer Organization GPR Assembly Example Registers r0 - r7 Introduce 3 operand arithmetic operators LOAD r0, 15 # r0 = 15 LOAD r1, 10 # r1 = 10 ADD r2, r0, r1 # r2 = r0 + r1 MUL r3, r0, r1 # r3 = r0 * r1

Computer Organization GPR Exercise 4.11 Assume all registers contain 0, what is the value of R7 after these instructions? MOV R7, #4 MOV R8, #3 ADD R9, R7, R7 SUB R7, R9, R8 MUL R9, R7, R7

GPR Exercise: Solution 4.11 Assume all registers contain 0, what is the value of R7 after these instructions? MOV R7, #4 R7 = 4 MOV R8, #3 R7 = 4, R8 = 3 ADD R9, R7, R7 R7 = 4, R8 = 3 , R9 = 8 SUB R7, R9, R8 R7 = 8 – 3 = 5, R8 = 3, R9 = 8 MUL R9, R7, R7 R7 = 5, R8 = 3, R9 = 5 * 5 = 25 Register R7 contains 5 after execution of these instructions

GPR versus Stack Fast random access to values in registers. Computer Organization GPR versus Stack Fast random access to values in registers. Harder to write optimized compiler since must carefully decide how to allocate registers. But a well-made compiler can produce faster code if it can keep all or most needed variables in fast registers. GPR has displaced stack machines.

Computer Organization GPR Exercise 4.12: Write a GPR assembly program to compute 5 + (3 x 7) – 8. Use any registers R0-R7.

GPR Exercise: Solution Computer Organization GPR Exercise: Solution 4.12: Compute: 5 + (3 x 7) – 8 MOV R1, #3 R1 = 3 MOV R2, #7 R1 = 3, R2 = 7 MUL R1, R1, R2 R1 = 21, R2 = 7 MOV R2, #5 R1 = 21, R2 = 5 ADD R1, R1, R2 R1 = 26 MOV R2, #8 R1 = 26, R2 = 8 SUB R1, R1, R2 R1 = 18, R2 = 8 There are other equivalent instruction sequences.

GPR Exercise 4.13: Write GPR assembly instructions to compute ((10 x 8) + (4 – 7))2.

GPR Exercise: Solution Computer Organization GPR Exercise: Solution 4.13: compute ((10 x 8) + (4 – 7))2 MOV R1, #10 R1 = 10 MOV R2, #8 R1 = 10, R2= 8 MUL R1, R1, R2 R1 = 80, R2 = 8 MOV R2, #4 R1 = 80, R2 = 4 MOV R3, #7 R1 = 80, R2 =4, R3 = 7 SUB R2, R2, R3 R1 = 80, R2 = -3, R3 = 7 ADD R1, R1, R2 R1 = 77, R2 = -3, R3 = 7 MUL R1, R1, R1 R1 = 5929, R2 = -3, R3 = 7 Other instruction sequences are possible.