+ All Categories
Home > Documents > Computer Architecture and Organization Instruction Sets: Characteristics and Functions.

Computer Architecture and Organization Instruction Sets: Characteristics and Functions.

Date post: 05-Jan-2016
Category:
Upload: jeremy-webster
View: 216 times
Download: 0 times
Share this document with a friend
42
Computer Architecture and Organization Instruction Sets: Characteristics and Functions
Transcript
Page 1: Computer Architecture and Organization Instruction Sets: Characteristics and Functions.

Computer Architecture and Organization

Instruction Sets:Characteristics and Functions

Page 2: Computer Architecture and Organization Instruction Sets: Characteristics and Functions.

Instruction set

• The complete collection of instructions that are a CPU can perform

• A program is a “machine code” of consecutive machine instructions

• Represented in binary form• Usually described by assembly codes

Page 3: Computer Architecture and Organization Instruction Sets: Characteristics and Functions.

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...—Implicit in case of sequential execution (PC

stores it)

Page 4: Computer Architecture and Organization Instruction Sets: Characteristics and Functions.

Operand source and destination

• Main memory • Virtual memory• Cache• CPU register• I/O device

Page 5: Computer Architecture and Organization Instruction Sets: Characteristics and Functions.

Instruction Representation

• In machine code each instruction has a unique bit pattern

• For human user (programmer) a symbolic representation is used—e.g. ADD, SUB, LOAD

• Operands can also be represented in this way—ADD R, A—Means add the contents of memory location A

to Register R—And store the result back in Register R—Note: operation performed on the contents of

A (not on the address itself)

Page 6: Computer Architecture and Organization Instruction Sets: Characteristics and Functions.

Simple Instruction FormatCharacteristics: • 2 operand instruction

—Could be 0, 1, 2, 3 or more …

• 4 bit opcode—Instruction set can have at most 16

instructions

• 6 bit operands —limit on memory + number representation)

Page 7: Computer Architecture and Organization Instruction Sets: Characteristics and Functions.

Instruction Cycle State Diagram

• Note: it is NOT guaranteed that a fetched instruction is executed!

—There are traps/exceptions

Page 8: Computer Architecture and Organization Instruction Sets: Characteristics and Functions.

Example of Program ExecutionFetch Execute

Page 9: Computer Architecture and Organization Instruction Sets: Characteristics and Functions.

Instruction Types

• Data processing—Arithmetic and logic instruction

• Data storage—Memory instructions: —Load from memory, Store to memory

• Data movement • I/O operations

—Read from I/O device, write to I/O device

• Program flow control —Test instructions (used e.g. in conditionals)—Branch instructions (used in conditionals,

loops)

Page 10: Computer Architecture and Organization Instruction Sets: Characteristics and Functions.

Number of Addresses

• 3 addresses—Operand 1, Operand 2, Result—ADD A, B, C —A B + C—May be a forth - next instruction (usually

implicit)—Not common—Needs very long words to hold everything

Page 11: Computer Architecture and Organization Instruction Sets: Characteristics and Functions.

Number of Addresses

• 2 addresses—One address doubles as operand and result—ADD A, B —A A + B —Reduces length of instruction—Requires some extra work

– Temporary storage to hold some results

Page 12: Computer Architecture and Organization Instruction Sets: Characteristics and Functions.

Number of Addresses

• 1 address—Implicit second address—Usually a register (accumulator)—ADD A —AC AC + A—Common on early machines

Page 13: Computer Architecture and Organization Instruction Sets: Characteristics and Functions.

Number of Addresses

• 0 (zero) address—All addresses implicit—Uses a stack—Compute C = A + B

PUSH APUSH BADDPOP C

Page 14: Computer Architecture and Organization Instruction Sets: Characteristics and Functions.

Number of Addresses Summary

Page 15: Computer Architecture and Organization Instruction Sets: Characteristics and Functions.

How Many Addresses

• More addresses—More complex (powerful?) instructions—More registers

– Inter-register operations are quicker

—Fewer instructions per program

• Fewer addresses—Less complex (less powerful) instructions—More instructions per program—Faster fetch/execution of instructions

Page 16: Computer Architecture and Organization Instruction Sets: Characteristics and Functions.

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

Page 17: Computer Architecture and Organization Instruction Sets: Characteristics and Functions.

Design Decisions

• Registers—Number of CPU registers available—Which operations can be performed on which

registers?

• Addressing modes (later…)

• RISC v CISC

Page 18: Computer Architecture and Organization Instruction Sets: Characteristics and Functions.

Types of Operand

• Addresses• Numbers

—Fixed point = Integer—Floating point

• Characters—Encoded—IRA (in USA known as ASCII), EDCDIC

• Logical Data—Bits or flags

Page 19: Computer Architecture and Organization Instruction Sets: Characteristics and Functions.

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

Page 20: Computer Architecture and Organization Instruction Sets: Characteristics and Functions.

Specific Data Types

• General - arbitrary binary contents• Integer - single binary value• 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

Page 21: Computer Architecture and Organization Instruction Sets: Characteristics and Functions.

Pentium Numeric Data Formats

Page 22: Computer Architecture and Organization Instruction Sets: Characteristics and Functions.

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 (<128 bytes)

• Floating point—IEEE 754—Single or double precision

Page 23: Computer Architecture and Organization Instruction Sets: Characteristics and Functions.

Types of Operation

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

Page 24: Computer Architecture and Organization Instruction Sets: Characteristics and Functions.

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

Page 25: Computer Architecture and Organization Instruction Sets: Characteristics and Functions.

Arithmetic

• Add, Subtract, Multiply, Divide• Signed Integer• Floating point ?• May include

—Increment (a++)—Decrement (a--)—Negate (-a)

Page 26: Computer Architecture and Organization Instruction Sets: Characteristics and Functions.

Shift and Rotate Operations

Page 27: Computer Architecture and Organization Instruction Sets: Characteristics and Functions.

Logical

• Bitwise operations• AND, OR, NOT

Page 28: Computer Architecture and Organization Instruction Sets: Characteristics and Functions.

Conversion

• E.g. Binary to Decimal

Page 29: Computer Architecture and Organization Instruction Sets: Characteristics and Functions.

Input/Output

• May be specific instructions• May be done using data movement

instructions (memory mapped)• May be done by a separate controller

(DMA)

Page 30: Computer Architecture and Organization Instruction Sets: Characteristics and Functions.

Systems Control

• Privileged instructions• CPU needs to be in specific state

—Ring 0 on 80386+—Kernel mode

• For operating systems use

Page 31: Computer Architecture and Organization Instruction Sets: Characteristics and Functions.

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

• Subroutine call—E.g. interrupt call

Page 32: Computer Architecture and Organization Instruction Sets: Characteristics and Functions.

x86 Branch instructions• Compare: cmp sets flags• Conditional jump: jne = jump on not equal, checks

flags.• Conditional jumps: there is a lot of them. Some

examples:• jpo = jump if parity odd • jpe = jump if parity even• jo = jump if overflow • jno = jump if no overflow• jz = jump if zero• jnz = jump if not zero • je = jump if equal• jl = jump if less than• jle = jump if less than or equal• jg = jump if greater than • jge = jump if greater than or equal

Page 33: Computer Architecture and Organization Instruction Sets: Characteristics and Functions.

Branch Instruction

Page 34: Computer Architecture and Organization Instruction Sets: Characteristics and Functions.

Nested Procedure Calls

Page 35: Computer Architecture and Organization Instruction Sets: Characteristics and Functions.

Use of Stack

Page 36: Computer Architecture and Organization Instruction Sets: Characteristics and Functions.

Stack Frame Growth Using Sample Procedures P and Q

Page 37: Computer Architecture and Organization Instruction Sets: Characteristics and Functions.

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 4 x 8 bit locations as follows

Page 38: Computer Architecture and Organization Instruction Sets: Characteristics and Functions.

Byte Order (example)

Address Version 1 Version 2

• 0x00184 12 78• 0x00185 34 56• 0x00186 56 34• 0x00187 78 12

• i.e. read top down or bottom up?

Page 39: Computer Architecture and Organization Instruction Sets: Characteristics and Functions.

Byte Order Names

• The problem is called Endian• The system on the right has the least

significant byte in the lowest address• This is called little-endian• The system on the left has the least

significant byte in the highest address• This is called big-endian

Page 40: Computer Architecture and Organization Instruction Sets: Characteristics and Functions.

Example of C Data Structure

Page 41: Computer Architecture and Organization Instruction Sets: Characteristics and Functions.

Alternative View of Memory Map

Page 42: Computer Architecture and Organization Instruction Sets: Characteristics and Functions.

Endianess is not standardized

• 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


Recommended