Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
1
Instruction content Instruction types
2
Until the 1980s, the trend was to construct Wulff asserts that compiler writers might
more and more complex instruction sets make the better architects
containing hundreds of instructions and – Have had to deal with poor architecture
variations decisions
Intent was to provide mechanisms to Wulff’s attributes of a good instruction set
bridge the semantic gap, the difference in – Complete: be able to construct a machine-level
high and low level functioning of the program to evaluate any computable function
computer – Efficient: frequently performed functions
should be done quickly with few instructions
– Reconcile the views of the HLL programmer
and the assembly level programmer – Regular and complete classes of instructions:
provide “logical” set of operations
– Provide a diverse set of instructions in an
attempt to match the programming style of HLL – Orthogonal: define instructions, data types, and
addressing independently
– Permit the compiler to “bridge the gap” with a
single instruction rather than synthesizing a Additional attribute:
series of instructions – Compatible: with existing H/W and S/W in a
– Did not always have the desired impact product line
3
Addresses in an Instruction
4
Trade off: Fewer addresses in the – 2 address
instruction results in MOV Y,A
SUB Y,B
– More primitive instructions MOV T,D
– Less complex CPU MUL T,E
– Instructions with shorter length ADD T,C
– More total instructions in a program DIV Y,T
– Longer, more complex programs
– Longer execution times – 1 address
LOAD D
Consider MUL E
ADD C
Y = (A-B) / (C+D*E) STORE Y
LOAD A
SUB B
– 3 address DIV Y
SUB Y,A,B STORE Y
MUL T,D,E
ADD T,T,C
DIV Y,Y,T
5
Types of Operations
– 0 address
» Convert to postfix (reverse Polish) notation
Y = AB-CDE*+/
PUSH A
PUSH B
SUB
PUSH C
PUSH D
PUSH E
MUL
ADD
DIV
POP Y
6
Control Operations
Common operations
– Branch
» Conditional or unconditional
» Jump to another part of the program for the
next instruction by modifying the program
counter
– Skip
» Useful in loop control
ISZ R1
BRA TOP
– Subroutine call / return
» Jump to routine with the expectation of
returning and resuming operation at the
next instruction
» Must preserve the address of the next
instruction (the return address)
Store in a register or memory location
Store as part of the subroutine itself
Store on the stack
7
Endian Wars
» Parameters can be passed to / from the Architects must specify how data is stored
subroutine in similar ways (its byte ordering) in memory and registers
» Use of the stack is the only reentrant – This leads to the “endian wars”
approach
» Big endian
» Each called subroutine is allocated a stack
frame on the stack » Little endian
Contains variable to be passed Consider the hex value $12345678 and
Return address how it is stored in memory starting at
Results to be returned address $100
– Big endian stores most significant byte in the
lowest address:
100 12
101 34
102 56
103 78
– Little endian stores the word in reverse:
100 78
101 56
102 34
103 12
8
Addressing Modes
9
Direct mode Indirect addressing
– The address field of the instruction contains the – The address field in the instruction specifies a
effective address of the operand memory location which contains the address of
– No calculations are required the data
– One additional memory access is required to – Two memory accesses are required
fetch the operand » The first to fetch the effective address
– Address range limited by the width of the field » The second to fetch the operand itself
that contains the address reference – Range of effective addresses is equal to 2n,
– Address is a constant at run time but data itself where n is the width of the memory data word
can be changed during program execution – Number of locations that can be used to hold
– Some machines use variations of direct the effective address is constrained to 2k, where
addressing: direct and extended addressing on k is the width of the instruction’s address field
the 68HC11 -- 8 and 16-bit addresses Register-based addressing modes
– Register addressing: like direct, but address
field specifies a register location
– Register indirect: like indirect, but address
field specifies a register that contains the
effective address
– Faster access to data, smaller address fields in
the instruction word
EE 4504 Section 7 19 EE 4504 Section 7 20
10
Displacement or address relative Indexing
addressing – Essentially the same impact as base addressing
– Two address fields in the instruction are used – Our book says that the A field is a memory
» One is an explicit address reference address and the referenced register contains the
» The other is a register reference displacement value that is added to A
» EA = A + (R) » This is not necessarily the case! “Indexing”
as used and defined by Motorola for the
– Relative addressing
68HC11 is exactly as our author defines
» A is added to the program counter contents base addressing
to cause a branch operation in fetching the
– Better distinction of the base and indexing
next instruction
might be who / what does the reference.
– Base-register addressing Examples:
» A is a displacement added to the contents of » Indexing is used within programs for
the referenced “base register” to form the accessing data structures
EA » Base addressing is used as a control
» Used by programmers and O/S to identify measure by the O/S to implement
the start of user areas, segments, etc. and segmentation
provide accesses within them
11
Instruction Formats
Pentium and PowerPC addressing The instruction format defines the layout
– Text shows 9 addressing modes for the Pentium of instruction word in terms of its
» Range for simple modes (e.g., immediate) constituent parts
to very complex modes (e.g., bases with Most basic issue is the instruction length
scaled index and displacement)
– Longer instruction lengths permit more
– The PowerPC, in contrast has fewer, simpler
opcodes, addressing modes, addressing ranges,
addressing modes
etc.
– Longer does not imply a significant increase in
functionality, however
– Instruction lengths are equal to the basic
memory transfer data size or a multiple of that
size
» If the memory system retrieves 32 bit
words, instructions should be 32 bits (or 64)
Allocation of bits
– Tradeoff between number of opcodes supported
(rich instruction set) and the power of the
addressing capability
12
PDP-8: 12-bit fixed format PDP-10 36-bit fixed format
– Stressed orthogonality, completeness, and
direct addressing
– Trade off ease of programming with increased
H/W expense
13
PDP-11 variable length format PowerPC format
– 16-bit word length minicomputer
– Variable length instructions to provide
flexibility -- more opcodes and memory
addressing modes
» Cost of the flexibility is a significant
increase in the CPU complexity
Figure 10.6 PDP-11 instruction formats Figure 10.8 PowerPC instruction formats
EE 4504 Section 7 27 EE 4504 Section 7 28
14
Summary
EE 4504 Section 7 29
15