Академический Документы
Профессиональный Документы
Культура Документы
software
instruction set
hardware
Compiler
Memory
system
Firmware
Instruction Set
Architecture
I/O system
Chapter 1
1.1 Introduction
Classes of Computers
Personal computers
General purpose, variety of software
Subject to cost/performance tradeoff
Server computers
Network based
High capacity, performance, reliability
Range from small servers to building sized
Classes of Computers
Supercomputers
High-end scientific and engineering calculations
Highest capability but represent a small fraction of
the overall computer market
Embedded computers
Hidden as components of systems
Stringent power/performance/cost constraints
Battery operated
Connects to the Internet
Hundreds of dollars
Smart phones, tablets, electronic glasses
Cloud computing
Understanding Performance
Algorithm
Determines number of operations executed
Application software
Written in high-level language
System software
Compiler: translates HLL code to
machine code
Operating System: service code
Handling input/output
Managing memory and storage
Scheduling tasks & sharing resources
Hardware
Processor, memory, I/O controllers
High-level language
Assembly language
Textual representation of
instructions
Hardware representation
Binary digits (bits)
Encoded instructions and data
Input/output includes
User-interface devices
Display, keyboard, mouse
Storage devices
Hard disk, CD/DVD, flash
Network adapters
For communicating with other
computers
Components of a Computer
Touchscreen
PostPC device
Supersedes keyboard
and mouse
Resistive and Capacitive
types
Most tablets, smart
phones use capacitive
Capacitive allows
multiple touches
simultaneously
Computer board
Abstractions
The BIG Picture
Implementation
The details underlying and interface
Networks
Communication, resource sharing, nonlocal
access
Local area network (LAN): Ethernet
Wide area network (WAN): the Internet
Wireless network: WiFi, Bluetooth
Electronics technology
continues to evolve
Increased capacity and
performance
Reduced cost
DRAM capacity
Year
Technology
1951
Vacuum tube
1965
Transistor
1975
1995
2013
Relative performance/cost
1
35
900
2,400,000
250,000,000,000
Technology Trends
Boeing 777
Boeing 747
Boeing 747
BAC/Sud
Concorde
BAC/Sud
Concorde
Douglas
DC-8-50
Douglas DC8-50
0
100
200
300
400
500
Boeing 777
Boeing 777
Boeing 747
Boeing 747
BAC/Sud
Concorde
BAC/Sud
Concorde
Douglas
DC-8-50
Douglas DC8-50
500
1000
4000
6000
8000 10000
Passenger Capacity
2000
1500
1.6 Performance
Defining Performance
Throughput
Total work done per unit time
e.g., tasks/transactions/ per hour
Relative Performance
Define Performance = 1/Execution Time
X is n time faster than Y
Performance X Performance Y
Execution time Y Execution time X n
10s on A, 15s on B
Execution TimeB / Execution TimeA
= 15s / 10s = 1.5
So A is 1.5 times faster than B
CPU time
Time spent processing a given job
Discounts I/O time, other jobs shares
CPU Clocking
Operation of digital hardware governed by a
constant-rate clock
Clock period
Clock (cycles)
Data transfer
and computation
Update state
CPU Time
CPU Time CPU Clock Cycles Clock Cycle Time
CPU Clock Cycles
Clock Rate
Performance improved by
Reducing number of clock cycles
Increasing clock rate
Hardware designer must often trade off clock rate
against cycle count
CPU Time B
6s
Clock CyclesA CPU Time A Clock Rate A
10s 2GHz 20 109
1.2 20 109 24 109
Clock Rate B
4GHz
6s
6s
Clock Rate
CPI Example
Computer A: Cycle Time = 250ps, CPI = 2.0
Computer B: Cycle Time = 500ps, CPI = 1.2
Same ISA
Which is faster, and by how much?
CPU Time Instruction Count CPI Cycle Time
A
A
A
I 2.0 250ps I 500ps
A is faster
CPU Time Instruction Count CPI Cycle Time
B
B
B
I 1.2 500ps I 600ps
CPU Time
B I 600ps 1.2
CPU Time
I 500ps
A
by this much
Performance Summary
The BIG Picture
Program
Instruction Clock cycle
Performance depends on
Algorithm: affects IC, possibly CPI
Programming language: affects IC, CPI
Compiler: affects IC, CPI
Instruction set architecture: affects IC, CPI, Tc
Power Trends
In CMOS IC technology
Pow er Capacitive load Voltage2 Frequency
30
5V 1V
1000
Reducing Power
Suppose a new CPU has
85% of capacitive load of old CPU
15% voltage and 15% frequency reduction
Pnew Cold 0.85 (Vold 0.85)2 Fold 0.85
4
0.85
0.52
2
Pold
Cold Vold Fold
Uniprocessor Performance
Multiprocessors
Multicore microprocessors
More than one processor per chip
Hard to do
Programming for performance
Load balancing
Optimizing communication and synchronization
SPEC CPU2006
Elapsed time to execute a selection of programs
Negligible I/O, so focuses on CPU performance
i1
Taffected
Tunaffected
improvemen t factor
6
Instruction count CPI
CPI
10
6
10
Clock rate
Cost/performance is improving
Due to underlying technology development
Concluding Remarks
Computer Architecture =
Instruction Set Architecture +
Machine Organization
instruction set
hardware
Elements of an Instruction
Operation code (opcode)
Do this: ADD, SUB, MUL, DIV, LOAD, STOR
RISC
Simpler instructions, faster execution speeds per instruction,
more instructions executed in same amount of time than CISC
Cheaper to implement (simple instruction set results in simple
implementation internal micro-architecture)
Load/Store architecture only load and store are used to access
the external memory
CISC
ADD (R3), (R2), (R1)
Addition of two operands from memory, with result written in memory, in RISC and
CISC architectures
Having an operation broken into small instructions (RISC) allows the compiler to
optimize the code
i.e. between the two LD instructions (memory is slow) the compiler can add
some instructions that dont need memory access
The CISC instruction has no option but to wait for its operands to come from the
memory, potentially delaying other instructions
Types of Instructions
Data Transfer
Store, load, exchange, move, clear, set, push, pop
Arithmetic
Add, Subtract, Multiply, Divide for signed integer (+
floating point and packed decimal) may involve data
movement
May include
Absolute (|a|)
Increment (a++)
Decrement (a--)
Negate (-a)
Logical
Bitwise operations: AND, OR, NOT, XOR,
TEST, CMP, SET
Shifting and rotating functions, e.g.
logical right shift send 8-bit character from 16-bit
word
arithmetic right shift: division and truncation for
odd numbers
arithmetic left shift: multiplication without
overflow
Transfer of Control
Skip, e.g., increment and skip if zero:
ISZ Reg1, cf. jumping out from loop
Branch instructions: BRZ X (branch to X if result is
zero), BRP X (positive), BRN X (negative), BRE
X,R1,R2 (equal)
Procedure (economy and modularity): call and return
Branch Instruction
Input/Output
May be specific instructions, e.g. INPUT, OUTPUT
May be done using data movement instructions (memory
mapped I/O)
May be done by a separate controller (DMA): Start I/O,
Test I/O
Systems Control
Privileged instructions: accessing control registers or
process table
CPU Elements
Program Counter or PC contains the address of the instruction
that will be executed next
Stack a data structure of last in first out type. A stack is
described by a special register stack pointer
It can be used explicitly to save/restore data
It is used implicitly by procedure call instructions (if
available in the instruction set)
IR instruction register that holds the current instruction being
processed by the microprocessor
Execution of an instruction
Stages
fetch
Decode
execute
Opcode fetch
Memory read
Memory write
I/O read
I/O write
Interrupt acnowledge
Addressing Modes
The way by which the location of the operand is specified
Immediate
Direct
Indirect
Register
Register Indirect
Displacement (Indexed)
Stack
Immediate Addressing
Operand is part of instruction
Operand = address field
e.g., ADD #5
Add 5 to contents of accumulator
5 is operand
Direct Addressing
Address field contains address of operand
Effective address (EA) = address field (A)
e.g., LDA 4050H
Address A
Memory
Operand
Address A
Memory
Pointer to operand
Operand
No memory access
Very fast execution
Very limited address space
Multiple registers helps performance
Requires good assembly programming or compiler
writing see register renaming
Register Address R
Registers
Operand
Register Address R
Memory
Registers
Pointer to Operand
Operand
Displacement Addressing
EA = A + (R)
Address field hold two values
A = base value
R = register that holds displacement
or vice versa
See segmentation
Register R
Address A
Memory
Registers
Displacement
Operand
Relative Addressing
Base-Register Addressing
A holds displacement
R holds pointer to base address
R may be explicit or implicit
e.g., segment registers in 80x86
Stack Addressing
Operand is (implicitly) on top of stack
e.g.
ADD Pop top two items from stack and add and
push result on top
Understanding ARM
Instruction Set Architecture
(ISA) using ARM Simulator
Instruction Set
We will be studying 32-bit ARM processor using a ARM Simulator
application, ARMSim#
ARMSim# R. N. Horspool, W. D. Lyons, M. Serra Department of
Computer Science, University of Victoria
All instructions are 32 bits long. ARM processor supports 8/16/32/64 bits data values
Processor Modes
The ARM has six operating modes:
User (unprivileged mode under which most tasks run)
FIQ (entered when a high priority (fast) interrupt is raised)
IRQ (entered when a low priority (normal) interrupt is raised)
Supervisor (entered on reset and when a Software Interrupt
instruction is executed)
Abort (used to handle memory access violations)
Undef (used to handle undefined instructions)
Addressing
ARM includes capability to address byte, half word, and full word (32 bits)
ARM instructions are always 32 bits in size, data can be of 8/16/32 bits
This means, byte addresses of instructions start from 0 and increase in
steps 4: 0, 4, 8, and so on
37 Registers
1. 18 General Purpose Registers: r0 r12, r8fmr12fm (fm stands of FIQ Mode)
2. 6 Stack Pointer (sp): sp-xx
3. 6 Link Register (lr): lr-xx
4. 1 Program Counter: pc
5. 1 Current Program Status Register: cpsr
6. 5 Saved Program Status Register: spsr-xx
r0-r12,sp-um, lr-um,
pc, cpsr
r0-r12,sp-nm, lr-nm,
pc, cpsr, spsr-nm
6 Register Banks
Mode Encoding
Value Mode
10000
User
10001
FIQ
10010
IRQ
10011
SVC
10100 Abort
10101 Undef
11111 System
Exception Handling
and the Vector Table
When an exception occurs, the core:
0x00000000
Reset
Software Interrupt
0x0000000C
Prefetch Abort
0x00000010
Data Abort
0x00000014
Reserved
0x00000018
IRQ
0x0000001C
FIQ
FETCH
PC - 4DECODE
PC - 8EXECUTE
PC points to the instruction being fetched, rather than pointing to the instruction
being executed.
FETCH
PC AND R1, R2
DECODE
PC - 4ADD R1, R2
EXECUTE
PC - 8 B +10
Conditional Execution
Most processors allow only branches to be executed conditionally.
However by reusing the condition evaluation hardware, ARM effectively
increases number of instructions.
All instructions contain a condition field which determines whether the CPU will
execute them.
Non-executed instructions soak up 1 cycle.
Still have to complete cycle so as to allow fetching and decoding of following instructions.
This removes the need for many branches, which stall the pipeline (3 cycles to
refill).
Allows very dense in-line code, without branches.
The Time penalty of not executing several conditional instructions is frequently less
than overhead of the branch or subroutine call that would otherwise be needed.
Instruction
28
24
20
16
12
Cond
Instruction
CPSR
; r0 = r1 + r2 (ADDAL)
By default, data processing operations do not affect the condition flags (apart
from the comparisons where this is the only effect).
To cause the condition flags to be updated, the S bit of the instruction needs to
be set by postfixing the instruction (and any condition code) with an S.
For example to add two numbers and set the condition flags:
ADDS r0,r1,r2
;
r0 = r1 + r2 ; ... and set flags
Branch instruction
B{<cond>} label ;
31
28 27
Cond
25 24 23
1 L
Offset
31
28 27
Cond
25 24 23
1 L
40 BL 100
44
48
Offset
Condition field
100 ------104
RET
SubRoutine
Arithmetic Operations
Operations are:
ADD
ADC
SUB
SBC
RSB
RSC
operand1 + operand2
operand1 + operand2 + carry
operand1 - operand2
operand1 - operand2 + carry -1
operand2 - operand1
operand2 - operand1 + carry - 1
; operand1 is Rn
Syntax:
<Operation>{<cond>}{S} Rd, Rn, Operand2
register
Examples
ADD r0, r1, r2
SUBGT r3, r3, #1
RSBLES r4, r5, #5
; Rd is destination
Comparisons
The only effect of the comparisons is to
UPDATE THE CONDITION FLAGS. Thus no need to set S bit.
Operations are:
CMP
CMN
TST
TEQ
Syntax:
<Operation>{<cond>} Rn, Operand2
Examples:
CMP
TSTEQ
r0, r1
r2, #5
Logical Operations
Operations are:
AND
EOR
ORR
BIC
Syntax:
<Operation>{<cond>}{S} Rd, Rn, Operand2
Examples:
AND
BICEQ
EORS
r0, r1, r2
r2, r3, #7
r1,r3,r0
Data Movement
Operations are:
MOV
MVN
operand2
NOT operand2
Examples:
MOV
MOVS
MVNEQ
r0, r1
r2, #10
r1,#0
Destination
...0
Destination
CF
LSR #5 = divide by 32
Destination
Sign bit shifted in
CF
Destination
CF
e.g. ROR #4
Note the last bit rotated is also used as
the Carry Out.
Rotate Right Extended (RRX)
This operation uses the CPSR C flag as
a 33rd bit.
Rotates right by 1 bit. Encoded as ROR
#0.
Destination
CF
Operand
2
Barrel
Shifter
ALU
Result
* Immediate value
8 bit number
Can be rotated right
through an even number
of positions.
Assembler will
calculate rotate for you
from constant.
The ARM has three sets of instructions which interact with main
memory. These are:
Single register data transfer (LDR / STR).
Block data transfer (LDM/STM).
Single Data Swap (SWP).
Load Signed Byte or Halfword - load value and sign extend it to 32 bits.
LDRSB / LDRSH
Syntax:
<LDR|STR>{<cond>}{<size>} Rd, <address>
Memory
r0
Source
Register
for STR
0x5
r1
Base
Register
0x200
r2
0x200
0x5
0x5
Destination
Register
for LDR
r1
0x20
0
Memo
ry
0x20c
0x5
r0
0x5
Sourc
e
Regist
er
for
STR
0x200
Updated
Base
Register
Original
Base
Register
r1
Offset
0x20c
12
r1
r0
0x5
0x20c
0x200
Source
Register
for STR
0x5
0x200
Swap Instructions
Atomic operation of a memory read followed by a memory write
which moves byte or word quantities between registers and
memory.
Syntax:
SWP{<cond>}{B} Rd, Rm, [Rn]
1
R
n
te
mp
3
2
R
m
Mem
ory
R
d
28
Cond
27
24
1111
23