1 Instructions and Addressing

Slides:



Advertisements
Similar presentations
INSTRUCTION SET ARCHITECTURES
Advertisements

ARITHMETIC LOGIC SHIFT UNIT
Computer Organization and Architecture
Instruction Set Architecture & Design
CHAPTER 4 COMPUTER SYSTEM – Von Neumann Model
Execution of an instruction
Memory - Registers Instruction Sets
What is an instruction set?
1 RISC Machines l RISC system »instruction –standard, fixed instruction format –single-cycle execution of most instructions –memory access is available.
Implementation of a Stored Program Computer
Overview von Neumann Model Components of a Computer Some Computer Organization Models The Computer Bus An Example Organization: The LC-3.
Embedded Systems: Hardware Computer Processor Basics ISA (Instruction Set Architecture) RTL (Register Transfer Language) Main reference: Peckol, Chapter.
Lecture 18 Last Lecture Today’s Topic Instruction formats
Instruction Set Architecture
Machine Instruction Characteristics
Dr Mohamed Menacer College of Computer Science and Engineering Taibah University CS-334: Computer.
Homework Problems 1. M1 runs the program P in 1.4 * 9 * ns or ns M2 runs the program P in 1.6*9800*10ns or ns Hence M2 is faster by.
Implementation of a Stored Program Computer ITCS 3181 Logic and Computer Systems 2014 B. Wilkinson Slides2.ppt Modification date: Oct 16,
Chapter 4 MARIE: An Introduction to a Simple Computer.
Chapter 4 The Von Neumann Model
Module 8 Part B Adapted By and Prepared James Tan © 2001.
ECE 456 Computer Architecture
Chapter 2-2 Assembly Instructions Number Systems Number Systems Assembly Instructions Assembly Instructions Branch Branch Next Lecture Next Lecture  Addressing.
Instruction Set Architecture The portion of the machine visible to the programmer Issues: Internal storage model Addressing modes Operations Operands Encoding.
Execution of an instruction
Computer Architecture and Organization
Computer Architecture EKT 422
Computer Architecture Lecture 03 Fasih ur Rehman.
In1210/01-PDS 1 TU-Delft Instructions and addressing.
Computer Organization 1 Instruction Fetch and Execute.
COMPUTER ORGANISATION Sri.S.A.Hariprasad Sr.Lecturer R.V.C.E Bangalore.
Chapter 10 Instruction Sets: Characteristics and Functions Felipe Navarro Luis Gomez Collin Brown.
Von Neumann Model Computer Organization I 1 September 2009 © McQuain, Feng & Ribbens The Stored Program Computer 1945: John von Neumann –
What is a program? A sequence of steps
Ass. Prof. Dr Masri Ayob TK 2123 Lecture 14: Instruction Set Architecture Level (Level 2)
Computer Organization Instructions Language of The Computer (MIPS) 2.
Instruction Sets. Instruction set It is a list of all instructions that a processor can execute. It is a list of all instructions that a processor can.
Instruction Sets: Characteristics and Functions  Software and Hardware interface Machine Instruction Characteristics Types of Operands Types of Operations.
Logic Gates Dr.Ahmed Bayoumi Dr.Shady Elmashad. Objectives  Identify the basic gates and describe the behavior of each  Combine basic gates into circuits.
CSC 221 Computer Organization and Assembly Language Lecture 06: Machine Instruction Characteristics.
Chapter 5 Computer Organization TIT 304/TCS 303. Purpose of This Chapter In this chapter we introduce a basic computer and show how its operation can.
1 Instructions and Addressing Course website:
Computer Architecture. Instruction Set “The collection of different instructions that the processor can execute it”. Usually represented by assembly codes,
1 CSCI 2510 Computer Organization Memory Addressing and Assembly Instruction Basics.
COMPUTER ORGANIZATION UNIT 1. COMPUTER ORGANISATION AND ARCHITECTURE The components from which computers are built, i.e., computer organization. In contrast,
Dr.Ahmed Bayoumi Dr.Shady Elmashad
Chapter 4 The Von Neumann Model
Introduction to 8086 Microprocessor
Chapter 4 The Von Neumann Model
Microcomputer Programming
Computer Organization and Assembly Language (COAL)
Chapter 4 The Von Neumann Model
THE sic mACHINE CSCI/CMPE 3334 David Egle.
BIC 10503: COMPUTER ARCHITECTURE
Computer Organization and ASSEMBLY LANGUAGE
Processor Organization and Architecture
ECEG-3202 Computer Architecture and Organization
Computer Architecture
Chapter 4 The Von Neumann Model
ECEG-3202 Computer Architecture and Organization
The Stored Program Computer
Basic components Instruction processing
Information Representation: Machine Instructions
Chapter 10 Instruction Sets: Characteristics and Functions
Chapter 4 The Von Neumann Model
Presentation transcript:

1 Instructions and Addressing

TU-Delft TI1400/11-PDS 22 Lecture 1 Making functions time A,B Y  A B Y ADD nand gates

TU-Delft TI1400/11-PDS 3 Lecture 1 Making functions Circuit Diagram

TU-Delft TI1400/11-PDS 4 Lecture 2 Programmable device 2,1 3 Programmable Device input stream output stream program READ(X) READ(Y) ADD(X,Y,Z) WRITE(Z) READ(X) means read next input value from input stream and store it internally as variable X WRITE(X) means put value in variable X on output stream ADD(X,Y,Z) means assign value of X+Y to Z

TU-Delft TI1400/11-PDS 5 Lecture 3 Von Neumann Architecture READ(X) READ(Y) ADD(X,Y,Z) WRITE(Z) X: 1 Y: 2 Z: 3 TEMP_A: TEMP_B: RESULT: IR: PC: arithmetic unit Central Processing Unit CONTROL Memory Input Output

TU-Delft TI1400/11-PDS 6 Problem: How to Represent and Use Data? 1.Representation 2.Arithmetic 3.Conversion

TU-Delft TI1400/11-PDS 7 Lecture 2 Von Neumann Architecture READ(X) READ(Y) ADD(X,Y,Z) WRITE(Z) X: 1 Y: 2 Z: 3 TEMP_A: TEMP_B: RESULT: IR: PC: arithmetic unit Central Processing Unit CONTROL Memory Input Output

TU-Delft TI1400/11-PDS 8 Problem: How to Represent and Use Data Instructions? 1.Representation 2.Use (Addressing Data)

TU-Delft TI1400/11-PDS 99 Instructions and Addressing 1.Memory Layout 2.Types of Instructions 3.Use of Accumulator/Registers 4.Execution of Instructions 5.Addressing

TU-Delft TI1400/11-PDS 10 Computer System READ(X) READ(Y) ADD(X,Y,Z) WRITE(Z) X: 1 Y: 2 Z: 3 IR: PC: arithmetic unit Central Processing Unit control unit Main Memory Input Output registers Data and Instructions Instruction RegisterProgram Counter

TU-Delft TI1400/11-PDS 11 Main Memory Addressing Bit Byte (8 bits) Word (16-64 bits) Address 0 Address

TU-Delft TI1400/11-PDS 12 Q1: How many bits required to address? 1.1KB of memory A.By Bit (13) B.By Byte (10) C.By Word of 32 bits (8) 2.1MB of memory A.By Bit (23) B.By Byte (20) C.By Word of 32 bits (18) 3.1GB of memory A.By Bit B.By Byte C.By Word of 32 bits 4.1TB of memory A.By Bit B.By Byte C.By Word of 32 bits Q2: How much memory can be addressed by byte for a 32-bit architecture? Q3: Why use byte memory addressing?

TU-Delft TI1400/11-PDS 13 Instruction and wordlength (1/3) instruction word instruction instruction word address

TU-Delft TI1400/11-PDS 14 Instruction and wordlength (2) instruction instruction word address instruction instruction

TU-Delft TI1400/11-PDS 15 Instruction and wordlength (3) word address instruction instr. instr instruction instr. instr instruction instr. instr instruction instr. instr instruction instr. instr instruction instr. instr

TU-Delft TI1400/11-PDS bit word formats opcode specifier operand specifiers byte byte byte byte a two’s complement number 4 ASCII characters 32 bit a machine instruction

TU-Delft TI1400/11-PDS 17 Byte ordering (endianness) Word Index Big endian e.g., Motorola PowerPC 68k Little endian e.g., Intel Jonathan Swift’s Gulliver’s Travells

TU-Delft TI1400/11-PDS 18 Q1 (the NUXI problem) What problems can occur in porting data between machines with big-endian and little-endian storage? (Hint: networked machines) Q2 Why use the little endian byte ordering? Q3 Why use the big endian byte ordering? (Hint: value 4 as single- and multi-byte)

TU-Delft TI1400/11-PDS 19 Instructions and Addressing 1.Memory Layout 2.Types of Instructions 3.Use of Accumulator/Registers 4.Execution of Instructions 5.Addressing 2.1. Data Copy Operations 2.2. Arithmetic And Logic Ops Program flow control Ops I/O operations

TU-Delft TI1400/11-PDS 20 Types of Instructions There are 4 types of instructions -Data Copy operations between memory and registers between memory locations between registers -Arithmetic and Logic operations -Program flow control operations -I/O operations

TU-Delft TI1400/11-PDS 21 Symbolic notation Copy instructions [R 1 ]  M(LOC) Arithmetic operations M(C )  M(A ) + M(B) LOC, A, and B are memory addresses M(address) means contents of memory location at address. [R] means contents of register R.

TU-Delft TI1400/11-PDS 22 Operand specification formats Three-address instructions format: INSTR source#1,source#2,destination example: Add A,B,C means: M(C )  M(B) + M(A) Problem: 3-address instructions means long instruction words. -If k bits are needed for memory addressing, then 3k bits are needed for addressing operands. (k=32 for 32-bit platforms.)

TU-Delft TI1400/11-PDS 23 Operand specification formats Two address instructions format: INSTR source, destination example: Add A,B means: M(B)  M(B) + M(A) Problem: 2-address instructions mean somewhat long word or multiple FETCHes per instruction. -If k bits are needed for memory addressing, then 2k bits for addressing operands. (k=32 for 32-bit platforms.)

TU-Delft TI1400/11-PDS 24 Two address instruction Additional Problem: Operand Override Add A,B Two operand instructions destroy contents of the B location Need other instruction to avoid that: Move B,C We then have Move B,C Add A,C meaning: M(C)  M(B) ; M(C)  M(C) + M(A) ;

TU-Delft TI1400/11-PDS 25 One address instructions One address -have implicit source (often called Accumulator) Load A Add B Store C meaning [Accu ]  M(A) ; [Accu ]  [Accu ] + M(B) ; M(C)  [Accu ]

TU-Delft TI1400/11-PDS 26 Instructions and Addressing 1.Memory Layout 2.Types of Instructions 3.Use of Accumulator/Registers 4.Execution of Instructions 5.Addressing

TU-Delft TI1400/11-PDS 27 Registers Many computers have a number of General- Purpose registers inside the CPU Access to registers is faster than to memory locations Used to store temporary data during processing Registers require less bits of address than main memory

TU-Delft TI1400/11-PDS 28 Register addressing Let Ri denote register General operation ADD A,B,C can be broken down to Move A,R0 Add B,R0 Store R0,C meaning [R0]  M(A) ; [R0]  [R0] + M(B) ; M(C)  [R0]

TU-Delft TI1400/11-PDS 29 Instruction Formats (Summary) opcode specifier operand specifiers general format one operand addressing opcode operand operand two operand addressing opcode operand

TU-Delft TI1400/11-PDS 30 Accumulator architecture Accumulator PC CPU Main Memory

31 Question How many instructions can be defined when the opcode field is 5 bit ?

TU-Delft TI1400/11-PDS 32 Example instruction accu 4 bits 12 bits opcode operand m 15 0 sign bit

TU-Delft TI1400/11-PDS 33 Instruction set

TU-Delft TI1400/11-PDS 34 Multiple register architecture R0 CPU Main Memory R1 R2 R3

TU-Delft TI1400/11-PDS 35 Instructions and Addressing 1.Memory Layout 2.Types of Instructions 3.Use of Accumulator/Registers 4.Execution of Instructions 5.Addressing

TU-Delft TI1400/11-PDS 36 Straight-line sequencing …... ……. Move A,R0 Add B,R0 Move R0,C i i+4 i+8 A B C address Program for M(C)=M(B)+M(A)

TU-Delft TI1400/11-PDS 37 Straight-line sequencing Add Nn,R0 Move R0,S Move N1,R0 Add N2,R0 Add N3,R0 i i+4 i+8 i+4n-4 i+4n address Program for addition of n numbers

TU-Delft TI1400/11-PDS 38 Branching n Clear R0 Move N,R1 Decr R1 Branch>0 L Move R0,S L S N N1 Nn Program for addition of n numbers Determine address of “next” number and add it to R0 program loop

TU-Delft TI1400/11-PDS 39 Common branch conditions N (negative) set to 1 of result is negative Z (zero) set to 1 of result is zero V (overflow) set to 1 of result overflows C (carry) set to 1 of carry-out results

40 Question Why is the carry condition important?

TU-Delft TI1400/11-PDS 41 Instructions and Addressing 1.Memory Layout 2.Types of Instructions 3.Use of Accumulator/Registers 4.Execution of Instructions 5.Addressing 5.1. Addressing Modes 5.2. Immediate Addressing 5.3. Direct Addressing 5.4. Indirect Addressing 5.5. Index Addressing

TU-Delft TI1400/11-PDS 42 Addressing modes Addressing modes determine how the address of operands is determined Typical 4 addressing modes -immediate addressing -direct addressing -indirect addressing -index addressing

TU-Delft TI1400/11-PDS 43 Immediate addressing (1) opcode specifier operand instruction ADD # -1 JNZ example: simple counting loop

TU-Delft TI1400/11-PDS 44 Immediate addressing (2) Advantages: -no additional calculations needed to obtain operand -fast Disadvantages: -Operand value must be known -Operand value cannot be changed -Limited no of bits available Notation: MOVE #200,R0 Meaning: [ R0 ]  200

TU-Delft TI1400/11-PDS 45 Direct addressing(1) opcode specifier mem or reg address instruction memory or registers ADD 13 JNZ 10 #

TU-Delft TI1400/11-PDS 46 Direct addressing(2) Advantages: -Operand separate from instruction -Can be changed -Full word length available Disadvantages: -More memory accesses -More storage occupation Notation: ADD R1,R2 Meaning: [ R2 ]  [ R2 ] +[ R1 ] Also called “Absolute addressing” (Ham.)

TU-Delft TI1400/11-PDS 47 Indirect addressing (1) ADD (12) JNZ # opcode specifier mem or reg address instruction op. address operand memory or registers

TU-Delft TI1400/11-PDS 48 Indirect addressing (2) Advantages: -Actual address of operand is not in instruction -Can be changed Disadvantages: -Even more memory or register references -More memory occupation Notation: ADD (R1),R2 Meaning: [ R2 ]  [ R2 ] + M( [ R1 ])

TU-Delft TI1400/11-PDS 49 Example indirect addressing program loop L N N1 Clear R0 Move N,R1 Move #N1,R2 Add (R2),R0 Add #4,R2 Decr R1 Branch>0 L Move R0,S n S

TU-Delft TI1400/11-PDS 50 Index addressing (1) opcode Reg index instruction operand memory or registers operand + registers

TU-Delft TI1400/11-PDS 51 Index addressing (2) Advantages: -Allows specification of fixed offset to operand address Disadvantages: -Extra addition to operand address Notation: ADD X(R1),R3 (X=number) Meaning: [ R3 ]  [ R3 ] + M( [ R1 ] + X )

TU-Delft TI1400/11-PDS 52 Example index addressing NENE Program with index addressing program loop sex age salary n Empoyee ID sex age salary Empoyee ID L Move #E,R0 Move N,R1 Clear R2 Add 8(R0),R2 Add #16,R0 Decrement R1 Branch>0 L Div R1,R2 Move R2,Sum Move N,R1

TU-Delft TI1400/11-PDS 53 Additional modes Some computers have auto-increment (decrement instructions) Example: (R0)+ Meaning.. M(R0 )..; [ R0 ]  [ R0 ]+1 Example: - (R0) Meaning [ R0 ]  [ R0 ]-1;.. M(R0 )..