chapter 10 instruction sets: characteristics and functions

43
Group # 3 Jorge Chavez Henry Diaz Janty Ghazi German Montenegro

Upload: amity

Post on 21-Mar-2016

71 views

Category:

Documents


5 download

DESCRIPTION

Chapter 10 Instruction Sets: Characteristics and Functions. Group # 3 Jorge Chavez Henry Diaz Janty Ghazi German Montenegro. What is an Instruction Set?. The complete collection of instructions that are understood by a CPU Machine Code Binary Usually represented by assembly codes. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Chapter 10 Instruction Sets: Characteristics and Functions

Group # 3Jorge Chavez

Henry DiazJanty Ghazi

German Montenegro

Page 2: Chapter 10 Instruction Sets: Characteristics and Functions

What is an Instruction Set?The complete collection of instructions that

are understood by a CPUMachine CodeBinaryUsually represented by assembly codes

Page 3: Chapter 10 Instruction Sets: Characteristics and Functions

Elements of an InstructionOperation code (Op code)

Do thisSource Operand reference

To thisResult Operand reference

Put the answer hereNext Instruction Reference

When you have done that, do this...

Page 4: Chapter 10 Instruction Sets: Characteristics and Functions

Where have all the Operands Gone?Long time passing….(If you don’t understand, you’re too young!)Main memory (or virtual memory or cache)CPU registerI/O device

Page 5: Chapter 10 Instruction Sets: Characteristics and Functions

Instruction Cycle State Diagram

Page 6: Chapter 10 Instruction Sets: Characteristics and Functions

Instruction RepresentationIn machine code each instruction has a

unique bit patternFor human consumption (well, programmers

anyway) a symbolic representation is usede.g. ADD, SUB, LOAD

Operands can also be represented in this wayADD A,B

Page 7: Chapter 10 Instruction Sets: Characteristics and Functions

Simple Instruction Format

Page 8: Chapter 10 Instruction Sets: Characteristics and Functions

Instruction TypesData processingData storage (main memory)Data movement (I/O)Program flow control

Page 9: Chapter 10 Instruction Sets: Characteristics and Functions

Number of Addresses (a)3 addresses

Operand 1, Operand 2, Resulta = b + c;May be a forth - next instruction (usually

implicit)Not commonNeeds very long words to hold everything

Page 10: Chapter 10 Instruction Sets: Characteristics and Functions

Number of Addresses (b)2 addresses

One address doubles as operand and resulta = a + bReduces length of instructionRequires some extra work

Temporary storage to hold some results

Page 11: Chapter 10 Instruction Sets: Characteristics and Functions

Number of Addresses (c)1 address

Implicit second addressUsually a register (accumulator)Common on early machines

Page 12: Chapter 10 Instruction Sets: Characteristics and Functions

Number of Addresses (d)0 (zero) addresses

All addresses implicitUses a stacke.g. push a push b add pop c

c = a + b

Page 13: Chapter 10 Instruction Sets: Characteristics and Functions

How Many AddressesMore addresses

More complex (powerful?) instructionsMore registers

Inter-register operations are quickerFewer instructions per program

Fewer addressesLess complex (powerful?) instructionsMore instructions per programFaster fetch/execution of instructions

Page 14: Chapter 10 Instruction Sets: Characteristics and Functions

Design Decisions (1)Operation repertoire

How many ops?What can they do?How complex are they?

Data typesInstruction formats

Length of op code fieldNumber of addresses

Page 15: Chapter 10 Instruction Sets: Characteristics and Functions

Design Decisions (2)Registers

Number of CPU registers availableWhich operations can be performed on which

registers?Addressing modes (later…)

RISC v CISC

Page 16: Chapter 10 Instruction Sets: Characteristics and Functions

Types of OperandMachine Instructions operate on data; the

four most important general categories are:AddressesNumbers

Integer or fixed point Floating point Decimal

Characters ASCII etc. (American Standard Code for Information

Interchange)Logical Data

Bits or flags

Page 17: Chapter 10 Instruction Sets: Characteristics and Functions

Pentium Data Types8 bit Byte16 bit word32 bit double word64 bit quad wordAddressing is by 8 bit unitA 32 bit double word is read at addresses

divisible by 4

Page 18: Chapter 10 Instruction Sets: Characteristics and Functions

Specific Data TypesGeneral - arbitrary binary contentsInteger - single binary valueOrdinal - unsigned integerUnpacked BCD - One digit per bytePacked BCD - 2 BCD digits per byteNear Pointer - 32 bit offset within segmentBit field – Contiguous sequence of bits, each

position considered an independent unit.Byte String - Contiguous sequence of bytes Floating Point

Page 19: Chapter 10 Instruction Sets: Characteristics and Functions

PowerPC Data Types8 (byte), 16 (halfword), 32 (word) and 64

(doubleword) length data typesSome instructions need operand aligned on 32 bit

boundaryCan be big- or little-endianFixed point processor recognises:

Unsigned byte, unsigned halfword, signed halfword, unsigned word, signed word, unsigned doubleword, byte string (<128 bytes)

Floating pointIEEE 754Single or double precision

Page 20: Chapter 10 Instruction Sets: Characteristics and Functions

Pentium Numeric Data Formats

Page 21: Chapter 10 Instruction Sets: Characteristics and Functions

Types of OperationData TransferArithmeticLogicalConversionI/OSystem ControlTransfer of Control

Page 22: Chapter 10 Instruction Sets: Characteristics and Functions

Data TransferSpecify

SourceDestinationAmount of data

May be different instructions for different movementse.g. IBM 370

Or one instruction and different addressese.g. VAX

Page 23: Chapter 10 Instruction Sets: Characteristics and Functions

ArithmeticAdd, Subtract, Multiply, DivideSigned Integer (1,2,-2,-4)Floating point (23.40054, 15.13513)May include

Absolute Value(|a|)Increment (a++)Decrement (a--)Negate (-a)

Page 24: Chapter 10 Instruction Sets: Characteristics and Functions

Shift and Rotate Operations

Page 25: Chapter 10 Instruction Sets: Characteristics and Functions

LogicalBitwise operationsAND, OR, NOT, XOR

Page 26: Chapter 10 Instruction Sets: Characteristics and Functions

ConversionChange format or operate on the format of

data

Page 27: Chapter 10 Instruction Sets: Characteristics and Functions

Input/OutputMay be specific instructionsMay be done using data movement

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

Page 28: Chapter 10 Instruction Sets: Characteristics and Functions

Systems ControlOnly executed when processor is at a

“privileged” state or executing a program in a “privileged” area of memory

Page 29: Chapter 10 Instruction Sets: Characteristics and Functions

Transfer of ControlBranch- a.k.a. “jump”

Conditional Branch- branch is made if a certain condition is met

Unconditional Branch- instruction in which the branch is always taken

Skipthe instruction is skipped so the implied

address equals the address of the next instruction plus one instruction length

Subroutine callCalls a procedure (self-contained program) at

anytime during the larger program.

Page 30: Chapter 10 Instruction Sets: Characteristics and Functions

Branch Instruction

Page 31: Chapter 10 Instruction Sets: Characteristics and Functions

Nested Procedure Calls

Page 32: Chapter 10 Instruction Sets: Characteristics and Functions

Use of Stack

Page 33: Chapter 10 Instruction Sets: Characteristics and Functions

Stack Frame Growth Using Sample Procedures P and Q

Page 34: Chapter 10 Instruction Sets: Characteristics and Functions

Byte OrderWhat order do we read numbers that occupy

more than one bytee.g. (numbers in hex to make it easy to read)12345678 can be stored in 4x8bit locations

as follows

Page 35: Chapter 10 Instruction Sets: Characteristics and Functions

Byte Order (example)Address Value (1) Value(2)184 12 78185 34 56186 56 34186 78 12

i.e. read top down or bottom up?

Page 36: Chapter 10 Instruction Sets: Characteristics and Functions

Byte Order NamesThe problem is called EndianThe system on the left has the least

significant byte in the lowest addressThis is called big-endianThe system on the right has the least

significant byte in the highest addressThis is called little-endian

Page 37: Chapter 10 Instruction Sets: Characteristics and Functions

Example of C Data Structure

Page 38: Chapter 10 Instruction Sets: Characteristics and Functions

Alternative View of Memory Map

Page 39: Chapter 10 Instruction Sets: Characteristics and Functions

Standard…What Standard?Pentium (80x86), VAX are little-endianIBM 370, Moterola 680x0 (Mac), and most

RISC are big-endianInternet 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

Page 40: Chapter 10 Instruction Sets: Characteristics and Functions

Review Questions1. What are the four most important general

categories of data?2. What is the most fundamental type of

machine instruction?3. What data types can the pentium deal with?4. What are the three main reasons why

transfer of control operations are required?5. What is one of the interesting features of the

PowerPC data type.6. What does endian mean?

Page 41: Chapter 10 Instruction Sets: Characteristics and Functions

Review Questions1.  What type of location can hold source and

destination operands?2. What are the typical elements of a machine

instruction?

Page 42: Chapter 10 Instruction Sets: Characteristics and Functions

Review Answers1. Addresses, Numbers, Characters, Logical

data2. Data Transfer3. 8, 16, 32 and 64 bit length4. You need to be able to repeat certain

instructions. The program has to have some decision making capabilities. And to break up large tasks into smaller workable pieces.

5. It can use either little or big endian.6. It is the problem of organizing bytes.

Page 43: Chapter 10 Instruction Sets: Characteristics and Functions

Review Answers1. Operation code, source operand reference

and result operand reference.2. Main memory, CPU register and secondary

memory.