Computer Organization2 292883412
Computer Organization2 292883412
Address Bus
Data Bus Memory
CPU
Control Bus Subsystem
I/O Device
Subsystem
2
Each of these Components are connected
through Buses.
BUS - Physically a set of wires. The components of the
Computer are connected to these buses.
Address Bus
Data Bus
Control Bus
3
Address Bus
4
Data Bus
Actual data is transferred via the data bus.
When the cpu sends an address to memory, the
memory will send data via the data bus in return to the
cpu.
5
Control Bus
Collection of individual control signals.
Whether the cpu will read or write data.
CPU is accessing memory or an I/O device
Memory or I/O is ready to transfer data
6
I/O Bus or Local Bus
In today’s computers the the I/O controller will have
an extra bus called the I/O bus.
The I/O bus will be used to access all other I/O
devices connected to the system.
Example: PCI bus
7
Instruction Cycles
Procedure the CPU goes through to process an
instruction.
1. Fetch - get instruction
2. Decode - interperate the instruction
3. Execute - run the instruction.
8
CPU organization
CPU controls the Computer
The CPU will fetch, decode and execute instructions.
The CPU has three internal sections: register section,
ALU and Control Unit
9
Register Section
Includes collection of registers and a bus.
Processor’s instruction set architecture are found in
this section.
Non accessible registers by the programmer. These are
to be used for registers to latch the address being
accessed and a temp storage register.
10
Arithmetic/Logic Unit (ALU)
Performs most Arithmetic and logical operations.
Retrieves and stores its information with the register
section of the CPU.
11
MEMORY ORGANIZATION
• Memory Hierarchy
• Main Memory
• Auxiliary Memory
• Associative Memory
• Cache Memory
• Virtual Memory
12
Memory
Main memory consists of a number of
storage locations, each of which is
identified by a unique address
The ability of the CPU to identify each
location is known as its addressability
13
Memory Hierarchy
MEMORY HIERARCHY
CPU Cache
memory
Register
Cache
Main Memory
Magnetic Disk
Magnetic Tape
14
Memory Subsystem
2 Types of Memory:
ROM : Read Only Memory
Program that is loaded into memory and cannot be changed
also retains its data even without power.
RAM : Random Access Memory
Also called read/write memory. This type of memory can have
a program loaded and then reloaded. It also loses its data with
no power.
15
Different ROM Chips
Masked ROM :
ROM that is programmed with data when fabricated. Data
will not change once installed. Hardwired.
Programmable ROM (PROM) :
Capable of being programmed by the user with a ROM
programmer. Not hardwired.
Erasable PROM (EPROM) :
Much like the PROM this EPROM can be programmed
and then erased by light.
EEPROM :
Another form of EPROM but is reprogammable
electrically.
16
Different RAM Chips
Dynamic RAM (DRAM) :
Leaky capacitors. Caps are charged and slowly leak until they
are refreshed to there original data locations. Ex. Computer
RAM
Static RAM (SRAM) :
Much like a register. The contents stay valid and does not have
to be refreshed. SRAM is faster than DRAM but cost more Ex.
Cache
Each RAM chip has 2^n * m. n address inputs and m
bidirectional data pins
17
The operation of cache memory
Cache
Main
Memory CPU
Memory
(SRAM)
(DRAM)
= Bus connections
18
Addressing Modes
Immediate
Direct
Indirect
Register
Register Indirect
Displacement (Indexed)
Stack
19
Immediate Addressing
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
20
Immediate Addressing Diagram
Instruction
Opcode Operand
21
Direct Addressing
Address field contains address of operand
Effective address (EA) = address field (A)
e.g. ADD A
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
22
Direct Addressing Diagram
Instruction
Opcode Address A
Memory
Operand
23
Direct Addressing Diagram
Instruction
Opcode Address A
Memory
Operand
24
Indirect Addressing (1)
Memory cell pointed to by address field contains the
address of (pointer to) the operand
EA = (A)
Look in A, find address (A) and look there for operand
e.g. ADD (A)
Add contents of cell pointed to by contents of A to
accumulator
25
Indirect Addressing (2)
Large address space
2n where n = word length
May be nested, multilevel, cascaded
e.g. EA = (((A)))
Draw the diagram yourself
Multiple memory accesses to find operand
Hence slower
26
IndirectInstruction
Addressing Diagram
Opcode Address A
Memory
Pointer to operand
Operand
27
Register Addressing (1)
Operand is held in register named in address filed
EA = R
Limited number of registers
Very small address field needed
Shorter instructions
Faster instruction fetch
28
Register Addressing (2)
No memory access
Very fast execution
Very limited address space
Multiple registers helps performance
Requires good assembly programming or compiler
writing
N.B. C programming
register int a;
c.f. Direct addressing
29
Register Addressing Diagram
Instruction
Opcode Register Address R
Registers
Operand
30
Register Indirect Addressing
C.f. indirect addressing
EA = (R)
Operand is in memory cell pointed to by contents of
register R
Large address space (2n)
One fewer memory access than indirect addressing
31
Register Indirect Addressing Diagram
Instruction
Opcode Register Address R
Memory
Registers
32
Displacement Addressing
EA = A + (R)
Address field hold two values
A = base value
R = register that holds displacement
or vice versa
33
Displacement Addressing Diagram
Instruction
Opcode Register R Address A
Memory
Registers
34
Relative Addressing
A version of displacement addressing
R = Program counter, PC
EA = A + (PC)
i.e. get operand from A cells from current location
pointed to by PC
c.f locality of reference & cache usage
35
Base-Register Addressing
A holds displacement
R holds pointer to base address
R may be explicit or implicit
e.g. segment registers in 80x86
36
Indexed Addressing
A = base
R = displacement
EA = A + (R)
Good for accessing arrays
EA = A + (R)
R++
37
Stack Addressing
Operand is (implicitly) on top of stack
e.g.
ADD Pop top two items from stack
and add
38
Input-Output Organization
11-1 Peripheral Devices
I/O Subsystem
Provides an efficient mode of communication between
the central system and the outside environment
Peripheral (or I/O Device)
Input or Output devices attached to the computer
11-2 Input-Output Interface
1) A conversion of signal values may be required
39
2) A synchronization mechanism may be needed
The data transfer rate of peripherals is usually slower than the transfer
I/O bus
D ata
P rocessor A ddress
C ontrol
Keyboard
and M agnetic M agnetic
P rinter
display
term inal
disk tape
40
Transfer
Synchronous Data Transfer
All data transfers occur simultaneously
during the occurrence of a clock pulse
Registers in the interface share a
internal registers
41
Data bus Data bus
Source Destination Source Destination
unit Strobe unit unit Strobe unit
Strobe Strobe
(b) Timing diagram (b) Timing diagram
42
D ata bus Data bus
D ata
Valid data
43
11-4 Modes of Transfer Read status register
1) Programmed I/O
2) Interrupt-initiated I/O = 0
F la g
= 1
3) Direct Memory Access (DMA) Read data register
44
Polling
Identify the highest-priority source by software means
One common branch address is used for all interrupts
them can exceed the time available to service the I/O device
따라서 Hardware priority interrupt
Daisy-Chaining :
“1 “1 “0
To next
PI PO PI PO PI PO
D evice
” ” ”
Interrupt request
IN T
CPU
Interrupt acknow ledge
IN TA C K
45
VA D
INTACK P riority in
Enable
PI
Vector address
INT RF
P riority out
PO
Interrupt S Q
One stage of the daisy-chain priority arrangement : Fig. 11-13
request
from device PI RF PO Enable
R
D elay
0
0
0
1
0
0
0
0
O pen-collector 1 0 1 0
inverter Interrupt request to
C P U 1 1 1 1
No interrupt request
Invalid : interrupt request, but no acknowledge
No interrupt request : Pass to other device (other device
requested interrupt )
Interrupt request
46
Direct Memory Access (DMA)
DMA
DMA controller takes over the buses to manage the
transfer directly between the I/O device and memory
47
Transfer Modes
1) Burst transfer :
2) Cycle stealing transfer Address bus
DMA Controller ( Intel 8237 DMAC )
DMA Initialization Process
1) Set Address register :
Data bus Address bus
memory address for read/write Data bus buffers
buffers
2) Set Word count register :
Internal bus
Register select RS
Read RD Word count register
Write WR
Control
Bus request BR logic Control register
Bus grant BG
DMA request
Interrupt Interrupt
to I/O device
DMA Acknowledge
48
DMA Transfer (I/O to Memory)
1) I/O Device sends a DMA request
2) DMAC activates the BR line
3) CPU responds with BG line Interrupt
BG Random access
4) DMAC sends a DMA acknowledge CPU
memory (RAM)
BR
49
Input-Output Processor (IOP)
IOP
Communicate directly with all I/O devices
Fetch and execute its own instruction
IOP instructions are specifically designed to facilitate I/O transfer
Central Processing
unit (CPU)
Memory bus
Peripheral devices
Mem ory unit PD PD PD PD
Input-output
processor (IOP) I/O bus
50
CPU - IOP Communication
Memory units acts as a message center :
each processor leaves information for the other
Send instruction
Transfer status w ord
to test IO P path
to m em ory location
If status O K. , send
start I/O instruction Access m em ory for
to IO P IO P program
Request IO P status
Continue
51
Input/output Devices
Input/output devices are required for users to
communicate with the computer.
In simple terms, input devices bring information
INTO the computer and output devices bring
information OUT of a computer system. These
input/output devices are also known as peripherals.
52
Input Devices are:
Keyboard
Mouse
Joystick
Scanner
Light Pen
Touch Screen
53
\
Printers
Plotters
Monitor
LCD
54
Intel 8086/8088 Microprocessors
Intel 8086 and 8088 Microprocessors are the basis of
all IBM-PC compatible computers
(8086 introduced in 1978, first IBM-PC released in 1981)
All Intel, AMD and other advanced microprocessors
are based on and are compatible with the original
8086/8
At Power Up and Reset time, Pentiums, Athlons etc all
look like 8086 processors
55
Intel 8086/8088 Microprocessors
Intel 8086 is a 16b microprocessor:
16b data registers, 16b ALU
Width of external data bus:
8086: 16b
8088: 8b
Width of external address bus: 16b+4b=20b
Some techniques to optimise the CPU
performance when it’s executing programs
Segment: Offset memory model
Little-Endian Data Format
56
8086/8088
Original IBM PC used 8088 microprocessor
8088 is similar to the 8086, but it has an external
8b data bus & only 4B-deep queue
For cost reduction reasons
We can consider 8086 and 8088 together
PC clones often used 8086 for better performance
8-bit bus reduces performance, but meant cheaper
computers
57
8086/8088 Functional Units
Bus Interface
Unit(BIU)
Execution Unit
Fetches Opcodes,
(EU)
Reads Operands,
Writes Data
8086/8088 MPU
58
8086/8088
8086/8088 consists of two internal units
The execution unit (EU) - executes the instructions
The bus interface unit (BIU) - fetches instructions, reads
operands and writes results
The 8086 has a 6B prefetch queue
The 8088 has a 4B prefetch queue
59
8086/8088 Internal OrganisationEU BIU
AH AL SUMMATION
BH BL
Data Bus
CH CL
CS
DH DL
DS
SP
SS
BP
ES
DI
IO
BI
Internal Bus
Communications Control
Registers
8088
Bus
Temporary
Registers
Instruction Queue
ALU
EU
Control
1 2 3 4
Flags
60
BIU Elements
Instruction Queue: the next instructions or data can be
fetched from memory while the processor is executing the
current instruction
The memory interface is slower than the processor execution time
so this speeds up overall performance
Segment Registers:
CS, DS, SS and ES are 16b registers
Used with the 16b Base registers to generate the 20b address
Allow the 8086/8088 to address 1MB of memory
Changed under program control to point to different segments as a
program executes
Instruction Pointer (IP) contains the Offset Address of the
next instruction, the distance in bytes from the address
given by the current CS register
61
8086/8088 20-bit Addresses
CS
IP
62
BIU Elements
Instruction Queue: the next instructions or data can be
fetched from memory while the processor is executing the
current instruction
The memory interface is slower than the processor execution time
so this speeds up overall performance
Segment Registers:
CS, DS, SS and ES are 16b registers
Used with the 16b Base registers to generate the 20b address
Allow the 8086/8088 to address 1MB of memory
Changed under program control to point to different segments as a
program executes
Instruction Pointer (IP) contains the Offset Address of the
next instruction, the distance in bytes from the address
given by the current CS register
63
MAXIMUM MINIMUM
MODE MODE
GND 1 40 Vcc
AD14 AD15
AD13 A16,S3
AD12 A17,S4
AD11 A18,S5
AD10 A19,S6
AD9 /BHE,S7
AD8 MN,/MX
AD7 /RD
AD6 /RQ,/GT0 HOLD
AD5
8086 /RQ,/GT1 HLDA
AD4 /LOCK /WR
AD3 /S2 IO/M
AD2 /S1 DT/R
AD1 /S0 /DEN
AD0 QS0 ALE
NMI QS1 /INTA
INTR /TEST
CLK READY
GND 20 21 RESET
64
8086/8088 Summary
First Generation (introduced June 1978)
One of the first 16b processors on the market
16b internal registers
16/8b external data bus
20b address bus (1MB addressable)
Used in 1st generation IBM PCs (1981)
65
Thanks
66