Title: The CPU and Memory
1Lecture 6
ITEC 1000 Introduction to Information Technology
Pitxot, Antoni Figures of the Allegory of
Memory 1981Oil on canvas180.30 x 90.40 cm.
TEATRE-MUSEU DALI
Prof. Peter Khaiter
http//www.salvador-dali.org/dali/coleccio
2Lecture Template
- CPU
- Registers
- Register operations
- Memory implementation
- Computer Buses
- Instructions
- Using the Stacks
- Multiple Data Instructions
3Computer unit
CPU
Highest Address Memory Lowest Address
ALU
Input/outputinterface
Control unit Program counter
- Memory is separated from the CPU
4Components of the CPU (1 of 2)
- ALU (arithmetic logic unit)
- Performs arithmetic and logic operations (data
changed) - Arithmetic add, subtract, multiply, divide, etc.
- Logic AND, OR, NOT, Shift, etc.
- Data held temporary
- CU (control unit) functions
- performs fetch/execute cycle
- Accesses and retrieves program instructions from
the memory and issues commands to the ALU - Moves data to and from CPU registers and other
hardware components (no change in data) - Registers
- Example Program counter (PC) or instruction
pointer determines next instruction for execution
5Components of the CU (2 of 2)
- Program counter (instruction pointer)
- Contains the address of the current or next
instruction - Normally instructions are executed sequentially
- Memory management unit
- Supervises fetching of instructions and data from
memory - I/O Interface
- Provides mechanism for input/output of data
- sometimes combined with memory management unit in
a single Bus Interface Unit
6Concept of Registers
- Single storage locations within the CPU used for
a particular purpose - Used to hold a binary value temporarily
- Manipulated directly by the Control Unit
- Each register is wired within the CPU directly
(no address needed) for specific function - Size in bits or bytes (not MB like memory)
- Can hold data, an address or an instruction
7Registers what they do
- Hold data being processed
- Hold instruction being executed
- Memory or I/O address being accessed
- Keep status of the computer
- Conditional branch instructions
8General-Purpose Registers
- User-visible registers
- Part of ALU
- Accumulators
- Typically several dozen in modern CPUs (R0, R1,)
- Hold data of arithmetic operations
- Hold intermediate results or data values, e.g.,
loop counters - To transfer data between different memory
locations and between I/0 and memory
9Special-Purpose Registers
- Part of CU
- Program Counter Register (PC) (instruction
pointer) - Holds address of the currently executed
instruction - Instruction Register (IR)
- Holds the actual instruction being executed
- Memory Address Register (MAR)
- Holds the address of a memory location
- Memory Data Register (MDR)
- Holds the actual data value from location
specified in MAR - Flags (one-bit register) to track special
conditions like arithmetic carry and overflow,
power failure, internal computer error - Status Registers
- Several flag registers grouped together
10Register Operations
- Load values from other locations (registers and
memory) - Destroys (erases) previous value in destination
- Source register (or memory location) unchangeable
- Addition and subtraction
- Result stored in the register
- Shift or rotate (left or right) data
- Test contents for conditions
- zero
- Positive/negative
- To large
11Program Counter ( PC )
A dedicated register in the CPU Contains the
address in memory of the current instruction
being executed. Incremented automatically after
each instruction. May be forced to change e.g.
jump instruction. Usually initialized to zero
when machine starts, or is reset.
12Instruction Register ( IR )
A dedicated register in the CPU which contains
the actual current instruction.
Op Code Address
What To Do
Location of Data
1101 101101100100
Simple 16-bit example
13Accumulator
A dedicated register (or set of registers) in the
CPU used for the actual manipulation of data
Default source (or destination)
register Usually contains results of arithmetic
or logical operations
14Operation of Memory
- Each memory location has a unique address
- Address from an instruction is copied to the MAR
which finds the location in memory - CPU determines if it is a store or retrieval
- Transfer takes place between the MDR and memory
- MDR is a two way register
15MAR and MDR
Memory Address Register (MAR) Contains Address
in memory to find or place data Memory Data
Register (MDR) Contains Actual Data to be
placed in location given in MAR, or which has
been retrieved from location given in MAR
16Generic CPU With Registers
Program Counter ( PC )
Memory
Instruction Register ( IR )
Memory Address Register ( MAR )
Memory Data Register ( MDR )
Accumulator ( A or Acc )
17MAR, MDR and Memory
18MAR-MDR Example
19Individual Memory Cell
20Memory Capacity
- Determined by two factors
- 1. Number of bits in the MAR
- 2K where K width of the MAR register in bits
- 4 bits allow 16 locations
- 8 bits allow 256 locations
- 32 bits allow 4,294,967,296 or 4 GB
- 2. Size of each memory location, m
-
- Memory capacity is the product
- m x 2K
- Typical values
- k 16, 17, 18, 19, 20, 21, 22, etc.
- m 8, 16, 32, 64
21Memory Implementation
- Magnetic core (1949/51 late 1960s/early 1970s
- Random Access Memory (RAM)
- Read Only Memory (ROM)
- EEPROM
- Flash ROM
- Volatile
- Nonvolatile
22RAM Random Access Memory
- Random any piece of data can be accessed in a
constant time regardless of physical location
(unlike tapes, magnetic or optical discs) - Difference in technical design
- DRAM (Dynamic RAM)
- Most common, cheap
- Volatile must be refreshed (recharged with
power) 1000s of times each second - SRAM (static RAM)
- Faster to access than DRAM and more expensive
than DRAM - Volatile
- small amount used in cache memory for high-speed
access
23RAM Sample
DRAM modules used as primary memory in PCs,
workstations, servers.
24ROM - Read Only Memory
- Implemented in early stored-program computers
(e.g., ENIAC, after 1948) - If write protected, becomes read-only memory
- Non-volatile memory
- to hold built-in software that is not expected to
change over the life of the computer (e.g.,
initial program that runs computer) - BIOS initial boot instructions and diagnostics
- Data are physically encoded into chips
- EEPROM
- Electrically Erasable Programmable ROM
- Can be erased and reprogrammed, 1 byte at a time
(up to 1000 times) - Slower and less flexible than Flash ROM
- Flash ROM
- Modern type of EEPROM (invented in 1984), faster
(erase and write in blocks of bytes) - Higher endurance (up to 1,000,000 cycles)
- E.g., USB Flash Drives
25ROM Sample
First erasable ROM, Intel 1702 erase window in
the middle
26Memory Maps
- The usage of memory space on a system is commonly
depicted in a memory map - The height of the map is determined by the number
of addresses - The width of the map is usually 8 bits
- E.g.,
- a system with a capacity of 216 bytes
27Memory Map Sample 1
7 6 5 4 3 2 1 0
FFFF 0002 0001 0000
Data bitposition
The bottom of memory
Hexadecimaladdress
28Use of Memory Maps
- Memory maps are usually drawn to show what is
where on a system - what can be
- RAM, ROM, I/O, empty space
- Where
- Determined by the starting/ending addresses for
each block of RAM, ROM, I/O,, - E.g.,
- a memory map for a system with a capacity of 224
bytes with two 1 MB RAM modules residing
consecutively at the bottom of memory.
29Memory Map Sample 2
FFFFFF 200000 1FFFFF 100000 0FFFFF 000
000
14 MB empty
224 bytes 16 MB capacity
1 MB RAM
1 MB RAM
30Memory Space Exercise 1
Q A system with a memory capacity of 128 GB has
four 32 MB memory modules installed. The rest of
the memory is unused. How much memory space is
available for future expansion? (Give your answer
in decimal in megabytes.) A ?
Skip answer
Answer
31Memory Space Exercise 1
Answer
Q A system with a memory capacity of 128 GB has
four 32 MB memory modules installed. The rest of
the memory is unused. How much memory space is
available for future expansion? (Give your answer
in decimal in megabytes.) A 128 GB 4 x 32 MB
27 x 210 MB - 22 x 25 MB (217 27) MB
(131,072 128) MB 130,944 MB ?
210 127.875 GB
32Memory Space Exercise 2
- Draw a memory map for a system with a capacity of
2 GB. Assume the system has three 32 MB memory
modules residing consecutively at the bottom of
memory. Illustrate the size of each block in MB
and the starting and ending address of each block
of memory in hexadecimal.
Skip answer
Answer
33Memory Space Exercise 2
Answer
7FFFFFFF 06000000 05FFFFFF 04000000 03FFFF
FF 02000000 01FFFFFF 00000000
1,952 MB empty
231 bytes 2 GB capacity
32 MB RAM
32 MB RAM
Note2 GB 2,048 MB
32 MB RAM
34Fetch-Execute Cycle
- Two-step process because both instructions and
data are in memory - Fetch
- Decode or find instruction, load the code of the
instruction from memory - Execute
- Performs operation that instruction requires
- Move/transform data
35Fetch-part of the Cycle
- The value in the PC (program counter) register is
the address of the memory location that holds
instruction to be executed - First step is always transfer (copy) the value
in the PC to the MAR - Then computer can retrieve the instruction
located at that address and place it in the MDR - PC MAR (step 1)
- Memory MDR
- Next step transfer instruction to the IR
- MDR IR (step 2)
- Remaining steps instruction dependent
36Load Instruction
- Next step the address part of the instruction
located in the IR is copied and placed in the MAR - Computer retrieves actual data located at the
address in memory and places it in the MDR - IR address MAR (step 3)
- Memory MDR
- Next step MDR copies data to the accumulator
register - MDR A (step 4)
- Last step PC is incremented
- PC 1 PC (step 5)
37Load Accumulator Sample (1 of 12)
Task Simple Eight bit system. Thirty-two
memory locations (0 to 31). Load instruction
is 010. Value in location 15 is ten (i.e.
binary 00001010) PC is at 5, about to
increment. The instruction, 01001111, is in
location 6.
38Load Accumulator Sample (2 of 12)
CPU Before PC increments
Memory
Location 31 15 00001010 06
01001111 Location 0
PC 00101
IR (previous)
MAR (previous)
MDR (previous)
A (previous)
39Load Accumulator Sample (3 of 12)
Increment PC PC PC 1
Memory
Location 31 15 00001010 06
01001111 Location 0
PC 00110
IR (previous)
MAR (previous)
MDR (previous)
A (previous)
40Load Accumulator Sample (4 of 12)
MAR loaded with PC PC -gt MAR
Memory
Location 31 15 00001010 06
01001111 Location 0
PC 00110
IR (previous)
MAR 00110
MDR (previous)
A (previous)
41Load Accumulator Sample (5 of 12)
Memory Location 00110 Accessed and Contents
Placed in MDR
Memory
Location 31 15 00001010 06
01001111 Location 0
PC 00110
IR (previous)
MAR 00110
MDR (previous)
A (previous)
42Load Accumulator Sample (6 of 12)
Memory Location 00110 Accessed and Contents
Placed in MDR
Memory
Location 31 15 00001010 06
01001111 Location 0
PC 00110
IR (previous)
MAR 00110
MDR 01001111
A (previous)
43Load Accumulator Sample (7 of 12)
MDR copied to IR MDR -gt IR
Memory
Location 31 15 00001010 06
01001111 Location 0
PC 00110
IR 01001111
MAR 00110
MDR 01001111
A (previous)
44Load Accumulator Sample (8 of 12)
IR address part -gt MAR
Memory
Location 31 15 00001010 06
01001111 Location 0
PC 00110
IR 01001111
MAR 01111
MDR 01001111
A (previous)
45Load Accumulator Sample (9 of 12)
Location in MAR (01111) Accessed
Memory
Location 31 15 00001010 06
01001111 Location 0
PC 00110
IR 01001111
MAR 01111
MDR 01001111
A (previous)
46Load Accumulator Sample (10 of 12)
Contents of 01111 loaded into MDR
Memory
Location 31 15 00001010 06
01001111 Location 0
PC 00110
IR 01001111
MAR 01111
MDR 00001010
A (previous)
47Load Accumulator Sample (11 of 12)
Memory
IR op code executed MDR -gt A
Location 31 15 00001010 06
01001111 Location 0
PC 00110
IR 01001111
MAR 01111
MDR 00001010
A 00001010
48Load Accumulator Sample (12 of 12)
Memory
Finished !
Location 31 15 00001010 06
01001111 Location 0
PC 00110
IR 01001111
MAR 01111
MDR 00001010
A 00001010
49Load Fetch/Execute Cycle
PC -gt MAR Transfer the address from the PC to the MAR
MDR -gt IR Transfer the instruction to the IR
IR(address) -gt MAR Address portion of the instruction loaded in MAR
MDR -gt A Actual data copied into the accumulator
PC 1 -gt PC Program Counter incremented
50Store Fetch/Execute Cycle (1 of 2)
PC -gt MAR Transfer the address from the PC to the MAR
MDR -gt IR Transfer the instruction to the IR
IR(address) -gt MAR Address portion of the instruction loaded in MAR
A -gt MDR Accumulator copies data into MDR
PC 1 -gt PC Program Counter incremented
Notice how Step 4 differs for LOAD and STORE Notice how Step 4 differs for LOAD and STORE
51Store Fetch/Execute Cycle (2 of 2)
PC ? MAR MDR ? IR IRaddress ? MAR A ? MDR PC
1 ? PC
Fetch
time
Execute
52ADD Fetch/Execute Cycle (1 of 2)
PC -gt MAR Transfer the address from the PC to the MAR
MDR -gt IR Transfer the instruction to the IR
IR(address) -gt MAR Address portion of the instruction loaded in MAR
A MDR -gt A Contents of MDR added to contents of accumulator
PC 1 -gt PC Program Counter incremented
53ADD Fetch/Execute Cycle (2 of 2)
PC ? MAR MDR ? IR IRaddress ? MAR A MDR ?
A PC 1 ? PC
Fetch
time
Execute
54Add Instruction Sample (1 of 10)
New Task Value in location 7 is
10110010. Add instruction is 101. Value in
location 18 is seventy-one (i.e. binary
01000111) Everything else is as we left it!
55Add Instruction Sample (2 of 10)
PC PC 1
Memory
Location 31 18 01000111 15 00001010 07
10110010 06 01001111 Location 0
PC 00111
IR 01001111
MAR 01111
MDR 00001010
A 00001010
56Add Instruction Sample (3 of 10)
Memory
PC -gt MAR
Location 31 18 01000111 15 00001010 07
10110010 06 01001111 Location 0
PC 00111
IR 01001111
MAR 00111
MDR 00001010
A 00001010
57Add Instruction Sample (4 of 10)
Memory
MAR Accesses Location 00111
Location 31 18 01000111 15 00001010 07
10110010 06 01001111 Location 0
PC 00111
IR 01001111
MAR 00111
MDR 00001010
A 00001010
58Add Instruction Sample (5 of 10)
Memory
Contents of 00111 -gt MDR
Location 31 18 01000111 15 00001010 07
10110010 06 01001111 Location 0
PC 00111
IR 01001111
MAR 00111
MDR 10110010
A 00001010
59Add Instruction Sample (6 of 10)
Memory
MDR -gt IR
Location 31 18 01000111 15 00001010 07
10110010 06 01001111 Location 0
PC 00111
IR 10110010
MAR 00111
MDR 10110010
A 00001010
60Add Instruction Sample (7 of 10)
Memory
IR address -gt MAR
Location 31 18 01000111 15 00001010 07
10110010 06 01001111 Location 0
PC 00111
IR 10110010
MAR 10010
MDR 10110010
A 00001010
61Add Instruction Sample (8 of 10)
Memory
Location 10010 MAR Accessed
Location 31 18 01000111 15 00001010 07
10110010 06 01001111 Location 0
PC 00111
IR 10110010
MAR 10010
MDR 10110010
A 00001010
62Add Instruction Sample (9 of 10)
Memory
Contents of 10010 -gt MDR
Location 31 18 01000111 15 00001010 07
10110010 06 01001111 Location 0
PC 00111
IR 10110010
MAR 10010
MDR 01000111
A 00001010
63Add Instruction Sample (10 of 10)
IR opcode executed A A MDR
Memory
Location 31 18 01000111 15 00001010 07
10110010 06 01001111 Location 0
PC 00111
IR 10110010
MAR 10010
MDR 01000111
A 01010001
64Computer Buses
PCI Express BUS Card Slots (from top to bottom
x4, x16, x1, x16) compared to a traditional
32-bit PCI bus card slot.
65Buses (1 of 3)
- Group of electrical conductors (wires) for
carrying signals from one location to another - Line each conductor (or wire) in the bus
- The physical connection that makes it possible to
transfer data from one location in the computer
system to another - 4 kinds of signals
- Data (alphanumeric, numerical, instructions)
- Addresses
- Control signals
- Power (sometimes)
66Buses (2 of 3)
bus
Ports
Printer Mouse Keyboard Modem
Diskcontroller
Graphicscard
Monitor Speakers
CPU
Soundcard
RAM
Networkcard
Computer
67Buses (3 of 3)
- Connect CPU and Memory
- I/O peripherals on same bus as CPU/memory or
separate bus - If connect CPU, Memory and I/O modules in the
same Physical package, called backplane - Also called system bus or external bus
- Example of broadcast bus
- Common method of connecting CPU, Memory and I/O
modules to a printed circuit board called
motherboard
68Motherboard
69Types of Buses (1 of 2)
- Point-to-point
- When connect plug-in devices, called ports
Serial port
Modem
Control unit
ALU
70Types of Buses (2 of 2)
- Multipoint to connect several points together
Computer
Computer
Computer
Computer
CPU
Memory
Disk controller
Video controller
71Point-to-point vs. Multipoint
72Bus Interface
- Bus interface bridges provide communication
between different buses - Special buses provide interconnections within the
CPU chip - Buses that form the backplane
- External CPU bus
- Peripheral control interface (PCI) bus
- Accelerated graphic processor (AGP)
- Industrial standard architecture (ISA)
73Typical bus and port connections
Bus interface bridges connect different bus types
74Bus Characteristics
- Protocol
- Documented agreement for communication
- Specification that spells out the meaning of each
line and each signal on each line - Throughput, i.e., data transfer rate in bits per
second - Data width in bits carried simultaneously
- Distance between two end points
- Type of signals unique/specialized or shared
- Addressing capacity
- Etc.
75Buses Inside a Computer
CPU
Data bus Address bus Control bus
Memory
I/O Module
I/O Device
76Data Bus
- Carries data between the CPU and memory or I/O
devices - Bi-directional
- Data transferred out of the CPU for write
operations - Data transferred into the CPU for read
operations - Typical sizes 8, 16, 32, 64 lines
- Signal names
- D0, D1, D2, D3, etc.
77Address Bus
- Carries an address from the CPU to Memory or I/O
devices - Unidirectional
- The address is always supplied by the CPU
- (There is one exception to this, which well
discuss later.) - Typical sizes 16, 20, 24 lines
- Signal names
- A0, A1, A2, A3, etc.
78Control Bus
- Collection of signals for coordinating CPU
activities - Each signal has a unique purpose
- Typical sizes 10-20 lines
- Signals are output, input, or bi-directional
- Typical signals
- /RD (read)
- /WR (write
- CLK (clock)
- /IRQ (interrupt request)
- etc.
79PCI Bus Connections
80PCI Bus
- 32- or 64-bit backplane
- Interconnects
- CPU
- Plug-in I/O (serial and parallel ports, sound
cards, disc drives - Lines are non-specialized carry addresses and
data, labeled AD00 to AD31 (or AD63) - Additional lines control and power lines
81Instructions
- Instruction
- Direction given to a computer
- Causes electrical signals to be sent through
specific circuits for processing - Instruction set
- Design defines functions performed by the
processor - Differentiates computer architecture by the
- Number of instructions
- Complexity of operations performed by individual
instructions - Data types supported
- Format (layout, fixed vs. variable length)
- Use of registers
- Addressing (size, modes)
82Instruction Elements
- OPCODE task
- Source OPERAND(s)
- Result OPERAND
- Location of data (register, memory)
- Explicit included in instruction
- Implicit default assumed
83Instruction Format
- Machine-specific template that specifies
- Length of the op code
- Number of operands
- Length of operands
28 256 different instructions
Simple 32-bit Instruction Format
224 16 million memory addresses
84Instruction Format IBM Mainframe
85Instruction Types (1 of 2)
- Data Transfer (load, store)
- Most common, greatest flexibility
- Involve memory and registers
- Whats a word ? 16? 32? 64 bits?
- Arithmetic
- Operators - /
- Integers and floating point
- Logical or Boolean
- Relational operators gt lt
- Boolean operators AND, OR, XOR, NOR, and NOT
- Single operand manipulation instructions
- Negating, decrementing, incrementing
86Instruction Types (2 of 2)
- Privileged
- Security
- Access control
- Not available to the application programs
- Bit manipulation instructions
- Flags to test for conditions
- Shift and rotate
- Program control
- Stack instructions
- Multiple data instructions
- I/O and machine control
87Register Shifts and Rotates
88Program Control Instructions
- Program control
- Jump and branch
- Subroutine call and return
89Stack Instructions
- Stack instructions
- LIFO method for organizing information
- Items removed in the reverse order from that in
which they are added
Push
Pop
90Fixed Location Subroutine Return Address Storage
91Stack Subroutine Return Address Storage
92Multiple Data Instructions
- Perform a single operation on multiple pieces of
data simultaneously - SIMD Single Instruction, Multiple Data
- Intel MMX? 57 multimedia instructions
- Commonly used in vector and array processing
applications
93Thank you!
Reading Lecture slides and notes, Chapter 7
http//www.visualjokes.com