William Stallings Computer Organization and Architecture - PowerPoint PPT Presentation

1 / 41
About This Presentation
Title:

William Stallings Computer Organization and Architecture

Description:

Original Author:Adrian J Pullin Adapted by: Chi-Cheng Lin, Winona State University ... In machine code each instruction has a unique bit pattern ... – PowerPoint PPT presentation

Number of Views:30
Avg rating:3.0/5.0
Slides: 42
Provided by: adria235
Category:

less

Transcript and Presenter's Notes

Title: William Stallings Computer Organization and Architecture


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

2
Topics
  • Machine Instruction Characteristics
  • Types of Operands
  • Types of Operations
  • Assembly Language
  • Byte Order

3
Machine Instruction Characteristics
  • What is an instruction set?
  • The complete collection of instructions that are
    understood by a CPU
  • Machine Code
  • Binary
  • Usually represented by assembly codes

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

5
Instruction Cycle State Diagram
6
Where are the operands anyway?
  • Main memory or virtual memory
  • CPU register
  • I/O device

7
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 as symbols
  • e.g., ADD A,B

8
Instruction Format
  • Divided into fields
  • For example

9
Instruction Types
  • Data processing , -, shift, or
  • Data storage (main memory) store, load, move
  • Data movement (I/O)
  • Program flow control jump, subroutine call

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

11
Number of Addresses (2)
  • 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

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

13
Number of Addresses (4)
  • 0 (zero) addresses
  • All addresses implicit
  • Uses a stack
  • e.g., c a b
  • push a
  • push b
  • add
  • pop c
  • Postfix expression
  • e.g., c a b

14
Number of Addresses - Example
  • Y (A - B) / (C D x E)

?
(d) Zero-address instructions
15
How Many Addresses
  • More addresses
  • More complex (more powerful?) instructions
  • More registers
  • Inter-register operations are quicker
  • Fewer instructions per program
  • Fewer addresses
  • Less complex (less powerful?) instructions (CPU?)
  • More instructions per program
  • Faster fetch/execution of instructions

16
Design Decisions (1)
  • 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

17
Design Decisions (2)
  • Registers
  • Number of CPU registers available
  • Which operations can be performed on which
    registers?
  • Addressing modes (Chapter 11)
  • How an address is specified
  • RISC v CISC (Chapter 13)

18
Types of Operand
  • Addresses
  • Numbers
  • Integer/floating point
  • Characters
  • ASCII etc.
  • Logical Data
  • Bits or flags

19
Pentium Data Types
  • 8 bit Byte
  • 16 bit word
  • 32 bit double word
  • 64 bit quad word
  • Addressing is by 8 bit unit
  • A 32 bit double word is read at addresses
    divisible by 4

20
Pentium Specific Data Types
  • General - arbitrary binary contents
  • Integer - singed binary value (2s complement)
  • Ordinal - unsigned integer
  • Unpacked BCD - One digit per byte
  • Packed BCD - 2 BCD digits per byte
  • Near Pointer - 32 bit offset within segment
  • Bit field
  • Byte String
  • Floating Point

21
Pentium Floating Point Data Types
22
PowerPC Data Types
  • 8 (byte), 16 (halfword), 32 (word) and 64
    (doubleword) length data types
  • Some instructions need operand aligned on 32 bit
    boundary
  • Can be big- or little-endian
  • Fixed point processor recognises
  • Unsigned byte, unsigned halfword, signed
    halfword, unsigned word, signed word, unsigned
    doubleword, byte string (lt128 bytes)
  • Floating point
  • IEEE 754
  • Single or double precision

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

24
Data Transfer
  • Specify
  • Source
  • Destination
  • Amount of data
  • May be different instructions for different
    movements
  • e.g. IBM 370
  • Or one instruction and different addresses
  • e.g. VAX

25
Arithmetic
  • Add, Subtract, Multiply, Divide, Arithmetic Shift
  • Signed Integer
  • Floating point and BCD?
  • May include
  • Increment (a)
  • Decrement (a--)
  • Negate (-a)

26
Logical
  • Bitwise operations
  • AND, OR, NOT, XOR
  • Logical Shift, Rotate

27
Shift and Rotate Operations
28
Conversion
  • E.g., Binary to Decimal
  • E.g., EBCDIC to ASCII

29
Input/Output
  • May be specific instructions
  • May be done using data movement instructions
    (memory mapped)
  • May be done by a separate controller (DMA)

30
Systems Control
  • Privileged instructions
  • CPU needs to be in specific state
  • Kernel mode, monitor mode, or supervisor mode
  • For operating systems use

31
Transfer of Control
  • Branch
  • e.g. branch to x if result is zero
  • Skip
  • e.g. increment and skip if zero (ISZ)
  • 301
  • 309 ISZ Register1
  • 310 Branch 301
  • 311 ADD A
  • Subroutine call
  • c.f. interrupt call

32
Branch Instruction
33
Transfer of Control -Nested Procedures (1)
34
Transfer of Control -Nested Procedures (2)
35
Assembly Language
  • What can a machine understand?
  • Binary Program
  • Hexadecimal Program
  • Symbolic Program
  • Assembly Program

36
Example N I J K
37
Byte Order
  • 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
  • Address Value (1) Value(2)
  • 184 12 78
  • 185 34 56
  • 186 56 34
  • 187 78 12
  • read top down or bottom up?

38
Byte Order Names
  • The problem is called Endian
  • The system on the left has the most significant
    byte in the lowest address
  • ? This is called big-endian
  • The system on the right has the least
    significant byte in the lowest address
  • ? This is called little-endian
  • Why is it a problem?

39
Byte Order Example (1)
40
Byte Order Example (2)
41
StandardWhat Standard?
  • Pentium (80x86), VAX are little-endian
  • IBM 370, Motorola 680x0 (Mac), and most RISC are
    big-endian
  • Internet is big-endian
  • Makes writing Internet programs on PC more
    awkward!
  • WinSock provides htoi and itoh (Host to Internet
    Internet to Host) functions to convert
Write a Comment
User Comments (0)
About PowerShow.com