chapter 10 instruction sets: characteristics and functions
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 PresentationTRANSCRIPT
Group # 3Jorge Chavez
Henry DiazJanty Ghazi
German Montenegro
What is an Instruction Set?The complete collection of instructions that
are understood by a CPUMachine CodeBinaryUsually represented by assembly codes
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...
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
Instruction Cycle State Diagram
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
Simple Instruction Format
Instruction TypesData processingData storage (main memory)Data movement (I/O)Program flow control
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
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
Number of Addresses (c)1 address
Implicit second addressUsually a register (accumulator)Common on early machines
Number of Addresses (d)0 (zero) addresses
All addresses implicitUses a stacke.g. push a push b add pop c
c = a + b
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
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
Design Decisions (2)Registers
Number of CPU registers availableWhich operations can be performed on which
registers?Addressing modes (later…)
RISC v CISC
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
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
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
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
Pentium Numeric Data Formats
Types of OperationData TransferArithmeticLogicalConversionI/OSystem ControlTransfer of Control
Data TransferSpecify
SourceDestinationAmount of data
May be different instructions for different movementse.g. IBM 370
Or one instruction and different addressese.g. VAX
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)
Shift and Rotate Operations
LogicalBitwise operationsAND, OR, NOT, XOR
ConversionChange format or operate on the format of
data
Input/OutputMay be specific instructionsMay be done using data movement
instructions (memory mapped)May be done by a separate controller (DMA)
Systems ControlOnly executed when processor is at a
“privileged” state or executing a program in a “privileged” area of memory
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.
Branch Instruction
Nested Procedure Calls
Use of Stack
Stack Frame Growth Using Sample Procedures P and Q
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
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?
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
Example of C Data Structure
Alternative View of Memory Map
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
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?
Review Questions1. What type of location can hold source and
destination operands?2. What are the typical elements of a machine
instruction?
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.
Review Answers1. Operation code, source operand reference
and result operand reference.2. Main memory, CPU register and secondary
memory.