Upload
tyler-stafford
View
286
Download
1
Tags:
Embed Size (px)
Citation preview
Machine Instruction CharacteristicsMachine Instructions- are instructions
executed by the processor.
Instruction set- a collection of instructions that the processor can execute
Elements of a machine instructionOpcode- uses a binary code which specifies
the operation to be preformed.Source operand reference- the input for the
operationResult operand reference- the result
produced by the operationNext instruction reference- tells the
processor where to get the next instruction
Source and result operands can be found inMain or virtual memoryProcessor register- contains registers that
can be used by machine instructions Immediate- the operand value is being
contained when the instruction is being executed
I/O devices- instruction specifies I/O module and device but if memory mapped then just another main or virtual memory address
Representation of instructionRepresentation of instruction
OPCODE (4 Bits)
Ref to Operand 1 (6 Bits)
Ref to Operand 2(6 Bits)
• An instruction format is used to define the layout of the bits allocated to these elements of instructions.• The instruction format explicitly or implicitly indicates the addressing Modes used for each operand in that instruction.
Instruction formatInstruction format
Instruction length: -Instruction length: - The longer instruction length gives: More Opcodes More operands More addressing modes Greater address range.
Factors considered for instruction lengthFactors considered for instruction length
Memory Size.Memory organization.Bus structureProcessor speedProcessor complexity.
Allocation of Bits for different fields in an Allocation of Bits for different fields in an instructioninstructionNumber of addressing modes.Number of operands.Register versus memory.Number of register sets.Address range.Address granularity.
Variable length instructionsVariable length instructions
Advantages: -Provides flexibility in addressing modes.Provides complex addressing modes.Reduces number of instruction fetch cycles.Reduces amount of space taken by a program.Disadvantages: -Disadvantages: -Requires more complex CPU.Decoding of instruction becomes difficult.
Instruction SetsInstruction Characteristics
Types of Operands
Types of Operations
Instruction Representation Are represented by a sequence of bits It is common to use “symbolic
representation” of machine instructions Op codes and operands are represented by
abbreviations called “mnemonics”
Mnemonics ADD addSUB subtractMUL multiplyDIV divideLOAD load data from memorySTOR store data to memory
Instruction typesData processing- arithmetic and logic
instructionsData storage- moving data into or out of
register or memory locationsData movement- I/O instructions Control- test and branch instructions
Number of Addresses• A traditional way of describing processor
architecture• What is the maximum number of addresses
one might need in an instruction?• An instruction could be required to contain
four addresses
Number of Addresses• 3 addresses
instructions• 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
Number of Addresses• 2 addresses
instructions• One address doubles
as operand and result
• a = a + b;• Reduces length of
instruction• Requires some extra
work• Temporary storage to
hold some results
Number of Addresses• 1 address
instructions• Implicit second
address• Usually a register
(accumulator)• Common on early
machines• E.g. ADD B
Number of Addresses• Zero address instruction:
• Special memory organization
• Last in first out (Stack)
• Stack is a known location
• E.g. CMA
Number of AddressesUtilization of Instruction Addresses
(Nonbranching Instructions)
Number of Addresses1 address instructions 2 Or 3 address
instructions• One general purpose
registerMultiple general
purpose registers
Instruction Set DesignOperation Repertoire- How many and which
operations to provide, and how complex the operations should be.
Data Types- The various types of data upon which operations are performed.
Instruction Format- Instruction length (in bits), number of addresses and size of fields.
Instruction Set DesignRegisters- Number of processor registers
that can be referenced by instructions, and their use
Addressing- The mode or modes by which the address of an operand is specified.
TYPES OF OPERANDS Addresses Numbers Characters Logical Data Specialized Data Types Data Structures
Addresses Main or Virtual memory address Unsigned Integers
NumbersAll machine languages include numeric typesNon-numeric processing: counters, field
widths, etcNumbers in a machine are limited by
magnitude and precisionConsequences: rounding, overflow, underflow
Numerical DataBinary integer or Binary fixed pointBinary floating pointDecimal
DecimalMajority of users deal with decimalsNecessity to convert from decimal to binary
on input and binary to decimal on outputPacked decimal
Packed DecimalUsed when there is a great deal of I/O and
simple computationEach decimal digit is represented by a 4-bit
code. Ex: 0 = 0000, 1 = 0001Numbers are formed by a string of 4-bit
codes usually in multiples of 8-bit246 = 0000 0010 0100 0110Positive: 1100Negative: 1101
CharactersText or character stringsRepresented by a sequence of bitsMorse CodeInternational Reference Alphabet (IRA)American Standard Code for Information
Interchange (ASCII)Extended Binary Coded Decimal Interchange
Code (EBCDIC)
Logical DataConsider n-bit unit as consisting of n 1-bit
items of data, each having a value of 0 or 1Advantages:
Store array of Boolean or Binary data itemsManipulating bits of data items
Types of OperationsData TransferArithmeticLogicalConversionInput/outputSystem ControlTransfer of Control
Data TransferOperation Name DescriptionMove(Transfer)StoreLoad (Fetch)ExchangeClear ( Reset)Set PushPop
Transfer word from source to destination
From processor to memory From memory to processor Swap contents of source
and destination Transfer 0s to destination Transfer 1s to destination Word from source to top of
stack From top of stack to
destination
Arithmetic
Operation Name DescriptionAddSubtractMultiply DivideAbsoluteNegateIncrementDecrement
Compute sum of two operands
Difference of two operands
Product of two operands Quotient of two
operands Replace by its absolute
value Change sign Add 1 to operand Subtract 1 to operand
LogicalOperation Name DescriptionAND; OR; NOT; ORTestCompareSet Control VariablesShift Variables
Perform the specified logical operation bitwise
Test specified condition; set flags based on outcome
Make logical and arithmetic comparison of two operands
Class of instructions to set controls for protection purposes, interrupt handling, timer control.
Left/right operand introducing constants at end.
Left/right with wraparound end
Conversion
Operation Name DescriptionTranslate Convert
Translate values in a section of memory based on a table of correspondences
Convert the contents of a word from one form to another. E.g(packed decimal to binary
I/OOperation Name DescriptionInput (Read)Output ( Write)Start I/OEnd I/O
Transfer data from specified I/O port or device to destination
From specified source to I/O port or device
Transfer instructions to I/O processor to initiate I/O operation
Transfer status info from I/O system to specified destination
System Of Control Can be executed only while the processor is in a
certain privileged state or is executing a program in a special privileged area of memory.
These instructions, are reserved for the use of the operating system.
Examples: A system control instruction may read or alter a
control register An instruction to read or modify a storage
protection key Access to process control blocks in
multiprogramming system
Transfer Of Control
Operation Name
Description
Jump (Branch) Jump Conditional Jump to Subroutine Return Execute Skip Skip conditional Halt Wait (Hold) No Operation
Unconditional Transfer: load PC with specified address
Test condition: either load PC with specified address or do nothing.
Place current program control info in known location; jump to specified address
Replace contents of PC and other register from known location
Fetch operand from location and execute as instructed
Increment PC to skip next instruction
Either skip or do nothing based on condition
Stop program execution Test specified repeatedly and
resume condition No operation is performed; but
program execution is continued.
QUESTIONSHow many different address designs are there?Name two types of operations.What are the most general categories of data?What type of endian mode does x86 use?What are the most used Character Codes
nowadays?What are the elements of machine instruction?What are the advantages of Logical Data?