William Stallings Computer Organization and Architecture 8 Edition
William Stallings Computer Organization and Architecture 8 Edition
William Stallings Computer Organization and Architecture 8 Edition
Computer Organization
and Chapter
Architecture
13
8 th
Edition
Reduced Instruction Set Computers
Major Advances in
Computers(1)
• The family concept
– IBM System/360 1964
– DEC PDP-8
– Separates architecture from implementation
• Microporgrammed control unit
– Idea by Wilkes 1951
– Produced by IBM S/360 1964
• Cache memory
– IBM S/360 model 85 1969
Major Advances in
Computers(2)
• Solid State RAM
– (See memory notes)
• Microprocessors
– Intel 4004 1971
• Pipelining
– Introduces parallelism into fetch execute
cycle
• Multiple processors
The Next Step - RISC
• Reduced Instruction Set Computer
• Key features
– Large number of general purpose registers
– or use of compiler technology to optimize
register use
– Limited and simple instruction set
– Emphasis on optimising the instruction pipeline
Comparison of processors
Driving force for CISC
• Software costs far exceed hardware costs
• Increasingly complex high level languages
• Semantic gap
• Leads to:
– Large instruction sets
– More addressing modes
– Hardware implementations of HLL statements
• e.g. CASE (switch) on VAX
Intention of CISC
• Ease compiler writing
• Improve execution efficiency
– Complex operations in microcode
• Support more complex HLLs
Execution Characteristics
• Operations performed
• Operands used
• Execution sequencing
• Studies have been done based on
programs written in HLLs
• Dynamic studies are measured
during the execution of the program
Operations
• Assignments
– Movement of data
• Conditional statements (IF, LOOP)
– Sequence control
• Procedure call-return is very time
consuming
• Some HLL instruction lead to many
machine code operations
Weighted Relative Dynamic
Frequency of HLL Operations
[PATT82a]
Machine-Instruction Memory-Reference
Dynamic Occurrence Weighted Weighted
GOTO — 3% — — — —
OTHER 6% 1% 3% 1% 2% 1%
Operands
• Mainly local scalar variables
• Optimisation should concentrate on
accessing local variables
Pascal C Average
Save/Restore based on procedure nesting depth Save/Restore based on cache replacement algorithm
Becomes
do i=2, n-2, 2
a[i] = a[i] + a[i-1] * a[i+i]
a[i+l] = a[i+l] + a[i] * a[i+2]
end do
if (mod(n-2,2) = i) then
a[n-1] = a[n-1] + a[n-2] * a[n]
end if
Normal and Delayed Branch
Address Normal Branch Delayed Branch Optimized
Delayed Branch