Vous êtes sur la page 1sur 126

# Computer Architecture and Organization Chapter 2 The Central Processing Unit

Does the calculations Everything else in the computer is there to service this unit Handles integers May handle floating point (real) numbers May be separate FPU (math's co-processor) May be on chip separate FPU (486DX +)

## ALU Inputs and Outputs

Integer Representation
Only have 0 & 1 to represent everything Positive numbers stored in binary
e.g. 41=00101001

## No minus sign Non negative numbers representation is straight forward

Sign-Magnitude
Left most bit (MSB) is sign bit 0 means positive 1 means negative +18 = 00010010 -18 = 10010010

Drawbacks/problems
Need to consider both sign and magnitude in arithmetic Two representations of zero (+0 and -0)

Twos Compliment
MSB Sign bit For positive Numbers
Sign bit 0 Number zero as Positive

## For negative Numbers

Sign bit 1

Benefits
One representation of zero Arithmetic works easily

## Conversion between different lengths

n bit integer has to be stored in m bit register, where m>n In sign magnitude representation,
Move the sign bit to the new leftmost position Fill with zeros

Twos complement
Move the sign bit to the new leftmost position Fill with the copies of sign bit

## Integer Arithmetic - Negation

Sign magnitude
Invert the sign bit

2s complement
Take Boolean complement of each bit including sign bit Add one two the result

10

## Negation Special Case

Case 1: negation of 0 is 0 Case 2 : negation of -128 is -128 Unavoidable

11

8 bit 2s compliment

Range of Numbers

## +127 = 01111111 = 27 -1 -128 = 10000000 = -27

16 bit 2s compliment
+32767 = 011111111 11111111 = 215 - 1 -32768 = 100000000 00000000 = -215

12

Normal binary addition Result is positive we get a positive number in 2s complement Result is negative a negative number in 2s complement Carry has to be ignored If the result is larger than the word size being used, then this condition is called overflow When an overflow is occurred ALU must be signaled that the result should not be used.
13

Overflow rule
If two numbers are added, and they are both positive or both negative, then overflow occurs if and only if the result has the opposite sign.

14

Subtraction
Rule: Take twos compliment of subtrahend and add to minuend
i.e. a - b = a + (-b)

15

## Hardware for Addition and Subtraction

16

Multiplication
Complex Work out partial product for each digit Take care with place value (column) Add partial products Multiplication
Multiplier Q , Multiplicand M A reg and c 0 Control logic reads the bit from Q reg and if it is 1 M is added to A and result is stored in A and C A Q Shifted O means only Shifting
17

## Unsigned Binary Multiplication

18

Execution of Example

19

20

## Multiplying Negative Numbers

This does not work Solution 1
Convert to positive Multiply as unsigned integer If signs were different, negate answer

Solution 2
Booths algorithm

21

Booths Algorithm

22

## Example of Booths Algorithm

23

Division
More complex than multiplication Negative numbers are really bad! Based on long division

24

## Division of Unsigned Binary Integers

00001101 1011 10010011 1011 001110 Partial 1011 Remainders 001111 1011 100 Divisor Quotient Dividend

Remainder

25

## Flowchart for Unsigned Binary Division

26

2s complement Division
Load the divisor-M register and dividend - A, Q registers. Shift A, Q left 1 bit position. If M and A have same signs, performs A=A-M or A=A+M Operation is successful if the sign of A is same before and after the operation.
If A=0 then set Q0= 1 If A not equal to 0 then set Q0= 0

## Repeat the above steps as many bits in Q position

The remainder is in A and the quotient is in Q.

27

M = 0011

28

Real Numbers
Numbers with fractions Could be done in pure binary
1001.1010 = 24 + 20 +2-1 + 2-3 =9.625

## Where is the binary point? Fixed?

Very limited

Moving?
How do you show where it is?

29

Floating Point

+/- .significand x 2exponent Radix point is at the right of the MSB Biased representation( A fixed value called BIAS from the field to get the true exponent value) Normalized
MSB of the significand is non Zero

30

## Floating Point Examples

31

First bit is sign bit First bit of significand value is 1 (no need to store) 127 is subtracted from the true exponent value

32

Using 32 bits

## -ve overflow -ve underflow Zero +ve underflow +ve overflow

33

Expressible Numbers

34

In 32 bits
8 bits - exponent 23 bits - significand

No. of bits in the exponent increases range also increases But only fixed number of values are expressed, we have reduced the density and precision Only way to increase both is to increase the bits So most computers offers two
Single precision (32 bits) Double precision (64 bits)
35

IEEE 754
Standard for floating point storage Developed to facilitate the portability of programs from processor to another Defines 32 bit single and 64 bit double standards 8 and 11 bit exponent respectively Extended formats also (both significant and exponent)

36

## IEEE 754 Formats

37

The following numbers use the IEEE 32-bit floating-point format. What is the equivalent decimal value? 1 10000011 11000000000000000000000 Express the following numbers in IEEE 32-bit floating-point format:
-1.5 Ans: 1 01111111 10000000000000000000000 384 Ans: 0 10000111 00000000000000000000000
38

## Floating point Arithmetic

For Addition and subtraction both operands should have the same exponent value Require shifting the radix point on one of the operands Multiplication and division are more straightforward A floating-point operation may produce one of these conditions
Exponent overflow: A positive exponent exceeds the maximum possible exponent value. Exponent underflow: A negative exponent is less than the minimum possible exponent value Significand underflow: In the process of aligning significands, digits may flow off the right end of the significand. Significand overflow: The addition of two significands of the same sign may result in a carry out of the most significant bit
39

40

Addition and subtraction are more complex than multiplication and division, because of the need for alignment. four basic phases of the algorithm
Check for zeros Align significands (adjusting exponents) Add or subtract significands Normalize result

41

42

## FP Arithmetic Multiplication and Division

Check for zero Add/subtract exponents Multiply/divide significand Normalize Round

43

44

45

## What is an Instruction Set?

The complete collection of instructions that the processor can execute Machine Code Binary

47

Elements of an Instruction
Operation code (Op code)
Specifies the operation to be performed Specified by a binary code called opcode

## Source Operand reference

One more source operands Operands that are input for operation

## Result Operand reference

Put the answer here

## Next Instruction Reference

where to fetch the next instruction
48

## Source and result operands

Main memory (or virtual memory or cache) CPU register I/O device

49

## Instruction Cycle State Diagram

50

Instruction Representation
In machine code each instruction has a unique bit pattern For human consumption a symbolic representation is used

Opcodes represented by abbreviations called as mnemonics Operands can also be represented in this way
51

## Simple Instruction Format

52

Instruction Types
Data processing Data storage (main memory) Data movement (I/O) Program flow control

53

## Number of Addresses (a)

Operand 1, Operand 2, Result Not to change value of any operand a = b + c; Needs very long words to hold everything

54

## Number of Addresses (b)

One address has double duty
as operand and result

55

56

## Number of Addresses (c)

Implicit second address Usually a register (accumulator) Common on early machines

57

## Number of Addresses (d)

All addresses implicit Uses a stack

58

## How Many Addresses

More complex More registers
Inter-register operations are quicker

## Fewer instructions per program

Less complex Shorter length to store More instructions per program Longer execution time
59

## Instruction set Design

Operation repertoire How many operations? What can they do? How complex are they? Data types Instruction formats Length of op code field Number of addresses Registers Number of CPU registers used Addressing modes
60

Types of Operand
Difference between numbers used in ordinary maths and computers Latter is limited Integer, floating point and decimal

Characters
ASCII and IRA EBCDIC used in IBM

Logical Data
Bits or flags
61

## x86 Data Types

8 bit Byte 16 bit word 32 bit double word 64 bit quad word 128 bit double quad word Data accessed across 32 bit bus in units of double word read at addresses divisible by 4 Little endian

62

63

64

## SIMD Data Types

8 (byte), 16 (halfword), 32 (word) bits Halfword access should be halfword aligned and word accesses should be word aligned Nonaligned access Default Treated as truncated Bits[1:0] treated as zero for word Bit treated as zero for halfword Data abort signal indicates alignment fault for attempting unaligned access All data types supports both Unsigned integer and Twos-complement signed
65

## ARM Data Types

Majority of ARM processors do not provide floatingpoint hardware Saves power and area Floating-point arithmetic implemented in software

## Optional floating-point coprocessor

Single- and double-precision IEEE 754 floating point data types

66

## ARM Endian Support

E-bit in system control register Under program control

67

Types of Operation
Data Transfer Arithmetic Logical Conversion I/O System Control Transfer of Control

68

Data Transfer
Specify
Source Destination length of data

e.g. IBM 370

e.g. VAX

69

70

Arithmetic

71

LOGICAL

72

## Shift and Rotate Operations

73

Conversion

74

Input/output
May be specific instructions May be done using data movement instructions (memory mapped) May be done by a separate controller (DMA)

75

Systems Control
Executed on special state Used for Control registers For operating systems use

76

## NEED FOR CONTROL INSTRUCTIONS

Group of codes needs to be executed repeatedly Decision making, satisfying condition Breaking of tasks into smaller pieces

77

78

Transfer of Control
Branch or Jump instruction
Conditional Unconditional

Consider subtraction
BRP X - Branch to location X if result is positive. BRN X - Branch to location X if result is negative. BRZ X - Branch to location X if result is zero. BRO X - Branch to location X if overflow occurs.

## BRE R1, R2, X

Branch to X if contents of R1 contents of R2.
79

80

Skip
Skip the next instruction e.g. increment and skip if zero ISZ Register1

81

Procedure call
Code reuse Efficient use of storage

## Two basic instructions

Call - branches from the present location to the procedure Return- returns from the procedure to the place from which it was called

82

83

Use of Stack

84

85

## X86 status flags

86

X 86 operation types

87

88

89

90

## ARM operation types

Load and store instructions Branch instruction Data processing instruction Multiply instructions Parallel addition and subtraction instruction
Image processing applications

N, Z, C, V,

91

## Unusual aspects of ARM

All instructions includes a condition code.
Not only branch instructions

## All data processing instructions include an S bit

Defines any updates ha been made to condition flags

92

## Instruction Sets: Addressing Modes and Formats

Immediate Direct Indirect Register Register Indirect Displacement Stack

94

All architectures provides more than one of these addressing modes How the processor can determine which address mode is being used ?
one or more bits in the instruction format can be used as a mode field. Value of the mode field determines which addressing mode is to be used

95

96

Operand is part of instruction Operand = address field e.g. ADD 5
Add 5 to contents of accumulator 5 is operand

## No memory reference to fetch data Fast Limited range

97

98

Add contents of cell A to accumulator Look in memory at address A for operand

Single memory reference to access data No additional calculations to work out effective address Limited address space
99

100

Address field refer to the address of a word in memory, which in turn contains a full-length address of the operand EA = (A)
Look in A, find address (A) and look there for operand

## Add contents of cell pointed to by contents of A to accumulator

Large address space Multiple memory accesses to find operand Hence slower
101

102

Operand is held in register named in address field EA = R Limited number of registers Advantages
Small address field is needed for instructions so shorter instructions less time

103

104

## Register Indirect Addressing

indirect addressing EA = (R) Operand is in memory cell pointed by contents of register R Large address space One fewer memory access than indirect addressing

105

106

Uses both direct and register indirect addressing EA = A + (R) Address field hold two values
A = base value R = register that holds displacement

107

A version of displacement addressing R = Program counter, PC EA = A + (PC)

108

A holds displacement R contains a main memory address

109

A = base R = displacement EA = A + R Good for accessing arrays

110

Combinations
R value is incremented or decremented automatically auto indexing Post index indexing is performed after the indirection
EA = (A) + (R) Address is fetched and indexed with the register value

## Pre index before the indirection

EA = (A+(R))

111

Operand is on top of stack Stack pointer

112

## x86 Addressing Modes

Virtual or effective address
Starting address plus effective address gives linear address This goes through page translation if paging enabled to get physical address

## addressing modes available

Immediate Register Displacement Base with displacement Scaled index with displacement Base with index and displacement Base scaled index with displacement Relative

113

## x86 Addressing Mode Calculation

114

ARM Addressing Modes Load/Store Only instructions that reference memory base register plus offset Offset Offset added to or subtracted from base register contents to form the memory address Preindex Memory address is formed as for offset addressing Memory address also written back to base register Postindex Memory address is base register value Offset added or subtracted Result written back to base register Base register acts as index register for preindex and postindex addressing Offset either immediate value in instruction or another register
115

116

## ARM Data Processing Instruction Addressing & Branch Instructions

Data Processing
Register addressing Or mixture of register and immediate addressing

Branch
Immediate

117

Load/store subset of general-purpose registers Sequential range of memory addresses Increment after, increment before, decrement after, and decrement before Base register specifies main memory address Incrementing or decrementing starts before or after first memory access

118

119

Instruction Formats
Layout of bits in an instruction Includes opcode Includes (implicit or explicit) operand(s) Usually more than one instruction format in an instruction set

120

Instruction Length
Affected by and affects:
Memory size Memory organization Bus structure CPU complexity CPU speed

## Trade off between powerful instruction repertoire and saving space

121

Allocation of Bits
Number of addressing modes Number of operands Register versus memory Number of register sets Address range Address granularity

122

Assembly language
Machines store and understand binary instructions E.g. N= I + J + K initialize I=2, J=3, K=4

123

124

Improvements
Use hexadecimal rather than binary
Code as series of lines

## Need to translate automatically using program

Add symbolic names or mnemonics for instructions Three fields per line
Location address Three letter opcode If memory reference: address

## Need more complex translation program

125

First field (address) now symbolic Memory references in third field now symbolic Now have assembly language and need an assembler to translate

126