Title: Processor Technology and Architecture
1Chapter 4
- Processor Technology and Architecture
2Chapter goals
- Describe CPU instruction and execution cycles
- Explain how primitive CPU instructions are
combined to form complex processing operations - Describe the key CPU design features, including
instruction format, word size, and clock rate - Describe the function of general-purpose and
special-purpose registers - Compare and contrast CISC and RISC CPUs
- Describe the principles and limitations of
semiconductor-based microprocessors
3Model of Central Processing Unit
4How the CPU works
- CPU is a complex electronic device that carries
out instructions - Called the brains of a computer
- Is a combination of parts that through a
carefully coordinated process execute code
5CPU parts
- Control Unit moves data and instructions
between main memory and registers - Arithmetic and Logic Unit performs all
computation and comparison operations - Registers fixed size high speed storage
locations that hold inputs and outputs for the
ALU
6How does CPU execute code?
- CPU can only execute machine code
- Machine code is a predetermined set (defined by
hardware manufacturer) of instructions CPU can
execute - Machine code is in binary format (0s and 1s)
- Process of executing code is called the Fetch
Execute Cycle
7The Fetch Execute Cycle
- Program counter (pc) points to the next
instruction to be execute - Instruction is loaded into instruction register
and program counter is incremented - Instruction is de-coded or separated into OPCODE
and addresses - Instruction is executed and results are stored if
required
8CPU Fetch Execute Cycle
9CPU Instructions
- Instruction is a single command a CPU is capable
of carrying out - Instruction is formatted as a bit string, i.e. a
sequence of 0s and 1s - Opcode unique binary number representing
operation to be performed - Operand(s) reference or pointer to data needed
for operation
10Instruction format
11Opcodes and operands
- Opcodes unique binary number representing an
operation to be carried out - Operand(s) reference(s) to location of data
needed for operation - Register
- Memory address
- Secondary storage or I/O device
12How is instruction executed?
- Instruction directs CPU to route data through a
built-in set of circuitry (i.e. a series of logic
gates) designed to carry out the desired function - Circuitry takes input signals and depending on
sequence and number of logic gates produces the
desired output signal - Output signal is stored in a register
- Then may be stored in memory, secondary storage,
or used by a subsequent instruction
13Instructions
- Some instructions are just handled by the control
unit - Moving or copying data
- Halting or restarting the CPU
- Other instructions require coordination with the
ALU - Computation
- Logic (comparisons)
14Instruction set
- The collection of all possible instructions CPU
can execute is called the instruction set - Predetermined by hardware manufacturer
- Vary greatly from machine to machine (even with
the same manufacturer)
15Instruction set cont.
- Since instruction sets vary so much, we will
describe what is generally in most machines - Specific machine code we will learn will be for
the machine simulator presentation
16General instruction categories
- Data movement (really a copy command, original
bit pattern is unchanged) - Load copies data from memory into a register
- Store copies data from a register into memory
17Data Transformation
18Logical shift
19Using logical shift
- Computers often use Boolean (true false) values
to control processes - These values (called flags) can be stored in a
single bit - Therefore, a 32 bit register can contain 32
individual flags to identify 32 separate
conditions
20Program status word (PSW)
- See p. 133 in text
- PSW used by CPU to store status information for
currently executing instruction - Store the result of a comparison (equal or not
equal, T or F) - Indicate overflow and underflow conditions
21How a PSW is used
- http//www.heyrick.co.uk/assembler/psr.html
- This is an example of how the PSW is used for a
processor manufactured by ARM, a processor
manufacturer in Australia - http//www.arm.com/
22Arithmetic shift
23Sequence control
- Default sequence (order) of program instructions
is one after another - Can override through BRANCH or JUMP
- unconditional new address of next instruction
is loaded into PC (JUMP) - conditional new address of instruction is
loaded depending on result of some comparison
(BRC BRP in simple machine) - HALT ends execution
24Sequence control cont.
- Allows loops (iteration)for (int 10 i lt10
i) cout ltlt \nHello - Allows decision statements if (speed gt 65)
cout ltlt Speeding ticketelse cout ltlt Legal
speed
25Variations in instruction format
- Formats can vary as to opcode size
- meaning of opcode values
- Number of operands
- Data types used as operands
- Length and coding format of each operand
26Reduced Instruction Set Computing
- Analysis of actual software found that certain
instructions made up the vast majority of machine
code - Many instructions used very infrequently
- CPU design that limited instruction set found to
be much faster
27RISC vs. CISC
- Pentium (RISC) vs. 486 (CISC)
- CISC bloated instruction set slowed down
execution time - CISC CPU larger and slower than necessary
28Clock rate
- System clock is a timing device that generates
timing pulses or signals that are transmitted
devices throughout the computer - Frequency or rate (clock rate) is measured in
hertz (Hz) and megahertz (MHz)
29Clock rate cont.
- CPU uses timing of clock to trigger its actions
(i.e. fetch, execute, store) - Clock is also used by other devices like
secondary storage - CPU must often wait for slower devices (secondary
storage, RAM) - Wait state cycle where CPU is idle waiting for
other devices
30Measuring CPU speed
- Clock rate measured in mHtz
- MIPS millions of instructions per second
(assumed to be instructions involving integer
operations) - MFLOPS millions of floating point operations
per second - CPU instructions can vary greatly as to length of
time for execution
31CPU registers
- General purpose
- Collection of registers that can be used to store
intermediate input and output of ALU operations - Example34 31 44first 34 is added to 31 and
placed in a register, then 44 is added to the
register
32Special purpose registers
- Several registers in CPU are set aside for
specific purposes - Instruction register holds the currently
executing instruction - Program counter (PC) points to the next
instruction to be executed - Program status word (PSW) set of flags (bits)
indicating certain conditions
33Word size
- Unit of data that contains a fixed number of bits
- Determines the amount of data CPU can process at
one time - Corresponds to size of general purpose registers
34Optimal word size
- Should be same size as system bus
- If bus is smaller every load and store operation
requires multiple transfers - Word size should correspond to size of data used
in the machine - Int float data types are 4 bytes (32 bits)
- Double is 8 bytes (64 bits)
35Current word sizes
- Most desktop machines are 32 bit word size
- Doubling word size to 64 increases CPU components
by 2.5 to 3 times - Larger word increases CPU fabrication cost
- Since the rest of the machine operates at 32 bit
(system bus and secondary storage) this larger
word size is not yet an advantage
36Enhancing Processor Performance
Memory caching (See Chapter 5.)
Pipelining Method of organizing CPU circuitry to enable multiple instructions to execute simultaneously in different stages
Branch prediction and speculative execution Ensure pipeline is kept full while executing conditional branch instructions
Multiprocessing Duplicate CPUs or processor stages execute in parallel
37(No Transcript)
38Range of Possible Approaches for Multiprocessing
- Duplicate circuitry for some or all processing
stages within a single CPU - Duplicate CPUs implemented as separate
microprocessors sharing main memory and a single
system bus - Duplicate CPUs on a single microprocessor that
also contains main memory caches and a special
bus to interconnect the CPUs
39The physical CPU
40Gate design for addition
41Chapter summary
- The CPU continuously alternates between the
instruction, or fetch cycle and execution cycle - Primitive CPU instructions can be classified into
three types - Data movement
- Data transformation
- Sequence control
42Summary cont.
- An instruction formation is a template describing
the op code position and the length and the
position, type and length of each operand - The CPU clock rate is the number of instruction
and execution cycles potentially available in a
fixed time interval
43Summary cont.
- CPU registers are of two types
- General purpose
- Special purpose
- Word size is the number of bits that a CPU can
process simultaneously - CPUs are electrical devices implemented as
silicon-based microprocessors