System Buses

advertisement
William Stallings
Computer Organization
and Architecture
6th Edition
Chapter 3
System Buses
Program Concept
• Hardwired systems are inflexible
• General purpose hardware can do different
tasks, given correct control signals
• Instead of re-wiring, supply a new set of control
signals
Instruction Codes
Instruction
interpreter
Customized
Hardware
Data
Sequence of
arithmetic
and logic
functions
Programming in hardware
Control Signal
Results
Data
General-purpose
arithmetic
and logic functions
Programming in software
Results
What is a program?
• A sequence of steps or instructions is called
software.
• For each step, an arithmetic or logical operation
is done
• For each operation, a different set of control
signals is needed
Function of Control Unit
• For each operation a unique code is provided
—e.g. ADD, MOVE
• A hardware segment accepts the code and
issues the control signals
• We have a computer!
Components
• The Control Unit and the Arithmetic and Logic Unit
constitute the Central Processing Unit (CPU)
• Data and instructions need to get into the system
and results out
—Input/output
• Temporary storage of code and results is needed
—Main memory
Computer Components:
Top Level View
Registers in CPU
• PC (Program Counter)
— Holds the address of the instruction to be fetched next.
• IR (Instruction Register)
— Stored the fetched instruction.
• MAR (Memory Address Register)
— Specifies the address in memory for the next read or write.
• MBR (Memory Buffer Register)
— Contains the data to be written into memory, or receives the
data from memory.
• I/O AR (I/O Address Register)
— Specifies a particular I/O device.
• I/O BR (I/O Buffer Register)
— Exchange of data between an I/O module and the CPU.
Computer Function
• The basic function performed by a computer is
execution of a program, which consists of a set
of instructions stored in memory.
Instruction Cycle
• Instruction processing consists of two steps:
—Fetch: fetches instructions from memory
—Execute: executes each instruction
Fetch Cycle
• Program Counter (PC) holds address of next
instruction to fetch
• Processor fetches instruction from memory
location pointed by PC
• Increment PC
—Unless told otherwise
• Instruction loaded into Instruction Register (IR)
• Processor interprets instruction and performs
required actions
Execute Cycle
• The processor interprets the instruction and
performs the require action. These actions are:
—Processor-memory
– data transfer between CPU and main memory
—Processor-I/O
– Data transfer between CPU and I/O module
—Data processing
– Some arithmetic or logical operation on data
—Control
– Alteration of sequence of operations
– e.g. jump
—Combination of above
Characteristics of a Hypothetical machine
0
3
Opcode
0
S
1
4
15
Address
(a) Instruction Format
15
Magnitude
(b) Integer Format
Program Counter (PC)=address of instruction
Instruction Register (IR)= Instruction being executed
Accumulator (AC)=temporary Storage
(c) Internal CPU Opcodes
0001=load from memory
0010=store AC to memory
0101=add to AC from memory
(d) Partial list of Opcodes
Example of Program Execution
Instruction Cycle
• The instruction cycle consists of following states
— Instruction address calculation
– Determine the address of the next instruction to be executed
— Instruction fetch
– Read instruction from its memory location into the processor
— Instruction operation decoding
– Analyze instruction to determine type of operation to be performed
and operands to be used
— Operand address calculation
– Determine the address of the operand
— Operand fetch
– Fetch the operand from memory or read it in from I/O
— Data operation
– Perform the operation indicated in the instruction
— Operand store
– Write the result into memory or out to I/O
Instruction Cycle State Diagram
ADD B, A
;A=A+B
Interrupts
• Mechanism by which other modules (e.g. I/O) may
interrupt normal sequence of processing
• Classes of Interrupts
— Program
– e.g. overflow, division by zero
— Timer
– Generated by internal processor timer
– Used in pre-emptive multi-tasking
— I/O
– from I/O controller
— Hardware failure
– e.g. memory parity error
Program Flow Control
Transfer of Control via Interrupts
因為中斷發生,
導致控制權轉移
Interrupt Cycle
• Added to instruction cycle
• Processor checks for interrupt
— Indicated by an interrupt signal
• If no interrupt, fetch next instruction
• If interrupt pending:
— Suspend execution of current program
— Save context
— Set PC to start address of interrupt handler routine
— Process interrupt
— Restore context and continue interrupted program
Instruction Cycle with Interrupts
Program Timing
Short I/O Wait
Program Timing
Long I/O Wait
Instruction Cycle (with Interrupts) State Diagram
Multiple Interrupts
• Two approaches to dealing with multiple
interrupts:
—Disable interrupts
– Processor will ignore further interrupts while processing one
interrupt
– Interrupts remain pending and are checked after first
interrupt has been processed
– Interrupts handled in sequence as they occur
—Define priorities
– Low priority interrupts can be interrupted by higher priority
interrupts
– When higher priority interrupt has been processed,
processor returns to previous interrupt
Multiple Interrupts - Sequential
Multiple Interrupts – Nested
Time Sequence of Multiple Interrupts
Interrupt Service Routine, ISR
Interconnection Structures
• A computer consists of a set of components
— Processor
— Memory
— I/O
• All the units must be connected
• Interconnection structure
— The collection of paths connecting the various modules
• Different type of connection for different type of unit
— Memory to processor
— Processor to memory
— I/O to processor
— Processor to I/O
— I/O to or from memory
Computer Modules
Memory Connection
• Receives and sends data
• Receives addresses (of locations)
• Receives control signals
— Read
— Write
— Timing
Input/Output Connection(1)
• I/O is functionally similar to memory from computer’s
viewpoint
— Read
— write
• Output
— Receive data from computer
— Send data to peripheral
• Input
— Receive data from peripheral
— Send data to computer
Input/Output Connection(2)
• Receive control signals from computer
• Send control signals to peripherals
— e.g. spin disk
• Receive addresses from computer
— e.g. port number to identify peripheral
• Send interrupt signals (control)
CPU Connection
•
•
•
•
The CPU reads instruction and data
Writes out data (after processing)
Sends control signals to other units
Receives (& acts on) interrupts
• The interconnection structure must support the
following types of transfers:
—Memory to processor
—Processor to memory
—I/O to processor
—Processor to I/O
—I/O to/from memory
– DMA
What is a Bus?
• A communication pathway connecting two or
more devices
• Shared transmission medium
• Usually broadcast
• Often grouped
—A number of channels in one bus
—e.g. 32 bit data bus is 32 separate single bit channels
• Power lines may not be shown
Buses
• There are a number of possible interconnection
systems
• Single and multiple BUS structures are most
common
• Three functional groups
—Data bus
—Address bus
—Control bus
Bus Interconnection Scheme
Data Bus
• Carries data
—Remember that there is no difference between “data”
and “instruction” at this level
• Width is a key determinant of performance
—The number of lines determines how many bits can
be transferred at a time.
—8, 16, 32, 64 bit
Address bus
• Identify the source or destination of data
—e.g. CPU needs to read an instruction (data) from a
given location in memory
• Bus width determines maximum memory
capacity of system
—e.g. 8080 has 16 bit address bus giving 64k address
space
Control Bus
• Control signals transmit both command and timing
information between system modules.
— Timing signals indicate the validity of data and address
information.
— Command signals specify operations to be performed.
• Control lines include the following:
— Memory read/write signal
— I/O read/write signal
— Transfer ACK
— Bus request
— Bus grant
— Interrupt request
— Interrupt ACK
— Clock signals
— Reset
• The operation of the bus is as follows:
—If one module wishes to send data to another, it must
do two things:
– Obtain the use of the bus
– Transfer data via bus
—If one module wishes to request to the other module,
it must do two things:
– Obtain the use of the bus.
– Transfer a request to the other module over the appropriate
control and address lines.
Bus
• What do buses look like?
—Parallel lines on circuit boards
—Ribbon cables
—Strip connectors on mother boards
– e.g. PCI
—Sets of wires
• See Fig. (3.17)
Single Bus Problems
• Lots of devices on one bus leads to:
—Propagation delays
– Long data paths mean that co-ordination of bus use can
adversely affect performance
—Bottleneck
– If aggregate data transfer demand approaches bus capacity
• Most systems use multiple buses to overcome
these problems
—Local bus
– Connects the processor to a cache memory
—System bus
—Expansion bus
Traditional (ISA)
(with cache)
High Performance Bus (mezzanine architecture)
• Advantage
—The high speed bus brings high-demand devices into
closer integration with processor
—Independent of the processor
—The difference in processor and high-speed bus
speeds and the signal line definitions are tolerated
Element of Bus Design
• Type
— Delicated
— Multiplexed
• Method of arbitration
— Centralized
— Distributed
• Timing
— Synchronous
— Asynchronous
• Bus width
— Address
— Data
• Data transfer type
—
—
—
—
—
Read
Write
Read-modify-write
Read-after-write
block
Bus Types
• Dedicated
—Functional dedication
– Separate data & address lines
—Physical dedication
– The use of multiple buses, each of which connects only a
subset of modules.
• Multiplexed
—Time multiplexing
–
–
–
–
Shared lines
Address valid or data valid control line
Advantage - fewer lines
Disadvantages
+ More complex control
+ A potential reduction in performance
Bus Arbitration
• More than one module controlling the bus
—e.g. CPU and DMA controller
• Only one module may control bus at one time
• Arbitration may be centralised or distributed
Centralised Arbitration
• Single hardware device controlling bus access
— Bus Controller
— Arbiter
• May be part of CPU or separate
Distributed Arbitration
• Each module may claim the bus
• Each module contains access control logic
—See Fig. (3.26)
Bus
Bus Request
Bus Busy
Device
1
Device
2
Device
3
Bus Grant
Timing
• Co-ordination of events on bus
• Synchronous
—Events determined by clock signals
—Control Bus includes clock line
—A single 1-0 is a bus cycle
—All devices can read clock line
—Usually sync on leading edge
—Usually a single cycle for an event
Synchronous Timing Diagram
1. CPU在第一個週期將位址放上位址線
2. CPU送出位址致能
3.CPU在T2送出讀取訊號
1
4. 主記憶體收到讀取訊號且延遲一個週期後將資料放上資料線
,
2
3. CPU在T2將資料送到資料線
4.當資料穩定後, CPU送出寫入訊號
5.在T3記憶體從資料線複製資料
4
3
5
3
4
Asynchronous Timing – Read Diagram
Asynchronous
The occurrence of one event on a bus follows and depends
on the occurrence of a previous event.
1
7
5
2
3
4
6
Asynchronous Timing – Write Diagram
• Bus Width
—The width of the data bus has an impact on system
performance
– The wider the data bus, the greater the number of bits
transferred at one time
– The wider the address bus, the greater the range of
locations that can be referrenced
• Data transfer type
PCI Bus
•
•
•
•
Peripheral Component Interconnection
Intel released to public domain
32 or 64 bit
50 lines
PCI Bus Lines (required)
• Systems lines
—Including clock and reset
• Address & Data
—32 time mux lines for address/data
—Interrupt & validate lines
• Interface Control
• Arbitration
—Not shared
—Direct connection to PCI bus arbiter
• Error lines
PCI Bus Lines (Optional)
• Interrupt lines
—Not shared
• Cache support
• 64-bit Bus Extension
—Additional 32 lines
—Time multiplexed
—2 lines to enable devices to agree to use 64-bit
transfer
• JTAG/Boundary Scan
—For testing procedures defined in IEEE standard
1149.1
PCI Commands
• Transaction between initiator (master) and
target
• Master claims bus
• Determine type of transaction
—e.g. I/O read/write
• Address phase
• One or more data phases
PCI Read Timing Diagram
PCI Bus Arbitration
Foreground Reading
• Stallings, chapter 3 (all of it)
• www.pcguide.com/ref/mbsys/buses/
• In fact, read the whole site!
• www.pcguide.com/
Download