William Stallings Computer Organization and Architecture 8th Edition - PowerPoint PPT Presentation

1 / 35
About This Presentation
Title:

William Stallings Computer Organization and Architecture 8th Edition

Description:

... Wingdings 3 Monotype Sorts Arial Black Verdana Apex 1_Apex 2_Apex William Stallings Computer Organization and Architecture 8th Edition What is an ... – PowerPoint PPT presentation

Number of Views:1024
Avg rating:3.0/5.0
Slides: 36
Provided by: Adria173
Category:

less

Transcript and Presenter's Notes

Title: William Stallings Computer Organization and Architecture 8th Edition


1
William Stallings Computer Organization and
Architecture8th Edition
  • Chapter 10
  • Instruction Sets
  • Characteristics and Functions

Felipe Navarro Luis Gomez Collin Brown
2
What is an Instruction Set?
  • The complete collection of instructions that are
    understood by a CPU
  • Machine Code
  • Binary
  • Usually represented by assembly codes

3
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...

4
Instruction Cycle State Diagram
5
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

6
Simple Instruction Format
7
Instruction Types
  • Data processing
  • Data storage (main memory)
  • Data movement (I/O)
  • Program flow control

8
Number of Addresses (a)
  • 3 addresses
  • Operand 1, Operand 2, Result
  • a b c
  • May be a forth - next instruction (usually
    implicit)
  • Not common
  • Needs very long words to hold everything

9
Number of Addresses (b)
  • 2 addresses
  • One address doubles as operand and result
  • a a b
  • Reduces length of instruction
  • Requires some extra work
  • Temporary storage to hold some results

10
Number of Addresses (c)
  • 1 address
  • Implicit second address
  • Usually a register (accumulator)
  • Common on early machines

11
Number of Addresses (d)
  • 0 (zero) addresses
  • All addresses implicit
  • Uses a stack
  • e.g. push a
  • push b
  • add
  • pop c
  • c a b

12
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

13
Instruction Set Design
  • Operation repertoire
  • How many ops?
  • What can they do?
  • How complex are they?
  • Data types (Characteristics later)
  • Different forms of data to which operations are
    performed
  • Instruction formats
  • Length of op code field
  • Number of addresses
  • Size of various fields

14
Instruction Set Design (cont.)
  • Registers
  • Number of CPU registers available
  • Which operations can be performed on which
    registers?
  • Addressing modes (later)
  • RISC vs. CISC

15
Types of Operand
  • Addresses
  • Numbers
  • Integer/floating point
  • Characters
  • ASCII etc.
  • Logical Data

16
Types of Operation
  • Data Transfer
  • Arithmetic
  • Logical
  • Conversion
  • I/O
  • System Control
  • Transfer of Control

17
Data Transfer
  • Specify
  • Source
  • Destination
  • Amount of data
  • Addressing mode (later)
  • May be different instructions for different
    movements
  • e.g. IBM 390
  • Or one instruction and different addresses
  • e.g. VAX

18
Arithmetic
  • Add, Subtract, Multiply, Divide
  • Signed Integer (Always provided for)
  • Floating point (Often provided for)
  • Packed decimals (Often provided for)
  • May include
  • Increment (a)
  • Decrement (a--)
  • Absolute Value (a)
  • Negate (-a)
  • May involve data transfer operations

19
Logical
  • Bitwise operations
  • AND, OR, XOR, NOT, Equals

Conversion
  • Ex Binary to Decimal. Decimal to Binary

20
Input/Output
  • Falls into the following categories
  • Control and timing
  • Processor communication
  • Device communication
  • Data buffering
  • Error detection
  • May be specific instruction
  • May be done using data movement instructions
    (memory mapped)
  • May be done by a separate controller (DMA)

21
Systems Control
  • Executed only in a privileged state
  • CPU needs to be in specific state
  • Ring 0 on 80386
  • Kernel mode
  • For operating systems use

22
Transfer of Control
  • Branch
  • e.g. branch to x if result is zero
  • Skip
  • e.g. increment and skip if zero
  • ISZ Register1
  • Branch xxxx
  • ADD A

23
Branch Instruction
24
Nested Procedure Calls
25
Use of Stack
26
Stack Frame Growth Using Sample Procedures P and Q
27
Byte Order(A portion of chips?)
  • What order do we read numbers that occupy more
    than one byte
  • e.g. (numbers in hex to make it easy to read)
  • 12345678 can be stored in 4x8bit locations as
    follows

28
Pentium call/return Instruction
  • Provide four instructions to support procedure
    call/return
  • CALL
  • ENTER
  • LEAVE
  • RETURN
  • A new Procedure call/return
  • Push the return point on the stack
  • Push the current frame pointer on the stack
  • Copy the stack pointer as the new value of the
    frame pointer
  • Adjust the stack pointer to allocate frame

29
Byte Order (example)
  • Address Value (1) Value(2)
  • 184 12 78
  • 185 34 56
  • 186 56 34
  • 186 78 12
  • i.e. read top down or bottom up?

30
Byte Order Names
  • The problem is called Endian
  • The system on the left has the least significant
    byte in the lowest address
  • This is called big-endian
  • The system on the right has the least
    significant byte in the highest address
  • This is called little-endian

31
Example of C Data Structure
32
Alternative View of Memory Map
33
Questions
  • 1 What are the typical elements of a machine
    instruction?
  • 2 What types of locations can hold source and
    destination operands?
  • 3 If an instruction contains four addresses, what
    might be the purpose of each address?
  • 4 What types of operands are typical in machine
    instruction set?
  • 5 What is the difference between an arithmetic
    shift and a logic shift?
  • 6 What is the difference between assembly
    language and machine language
  • 7 What is the difference between big endian and
    little endian?
  • List three places for storing the return address
    for a procedure return.

34
Answers
  • 1 Operation code, source operand reference,
    result operand reference and next instruction
    reference.
  • Register and memory.
  • Two operands, one result, and the address of the
    next instruction.
  • Address, character, numbers and logical data.
  • In logical shift, the bits of word are shifted
    left or right. Arithmetic shift treats the data
    as a signed integer and does not shift the sign
    bit.

35
Answers (cont.)
  • 6 Assemble language uses symbolic names for
    addresses that are not fixed to specific physical
    address this is not the case with machine
    language.
  • A multibyte numerical value stored with the most
    significant byte in the lowest numerical address.
    A multibyte numerical value stored with the most
    significant byte in the highest numerical
    address.
  • Register, start of procedure, top of stack
Write a Comment
User Comments (0)
About PowerShow.com