COMPUTER BUSES AND PIPELINING TOPIC 7 Flashcards
What is a Bus?
- Group of electrical conductors that carry computer/electrical signals from one location to another
What is the function of a bus?
- Computer transfers data between components
What does a bus physically consist of?
- WIRES
- CONDUCTORS on a printed circuit
- LINE
What is the purpose of a bus hierarchy?
An interconnection system used when a single system bus cannot provide the degree of connectivity required
4 Main categories of Bus Lines
- Data lines
- Carry data - Address lines
- Specify the recipient of data - Control lines
- Provide control for the synchronisation of the bus - Power lines
- Provide power to various components
Data Bus
- Carries data between the CPU and memory
Bi-directional - Typical sizes 64 bit
Address bus
- Carries an address from the CPU to memory
- Unidirectional
- Typical sizes 16,20,24 lines
Control bus
- Collection of signals for coordinating CPU activities
- Typical sized 10-20 lines
- Bidirectional
CALCULATIONS
Size of MAR = size of address bus = 18
No of memory locations = 2^18 = = 262,144 bites memory locations
Size of MDR = size each memory location = 16 = 2 Bytes
Size of addressable memory = = 262144 x 2 bytes = 524,288 Bytes = 512 KB
= 4,194,304 Bits
Bus topologies
- Point-To-Point bus
- Multipoint/ Multidrop bus
What is a pipeline?
- A technique of improving the performance of a machine by overlapping to reduce the overall execution time
Pipeline Problems
- Data dependency
- A problem arises when two adjacent instructions accessing the same data within the same memory location - Branching of Instructions
- When the other pre-fetched instructions in the pipeline have to be discarded
Solution for problems:
- Hardware and software based approach for data dependency
- Instruction reordering for branch problem
Hardware implementation
Hardware – operations are implemented directly by logic gates (hardwired)
Advantages:
- Speed
- RISC designs are simple and typically implemented in hardware
Microprogrammed implementation
Microcodes are tiny programs stored in ROM that replaces CPU instructions.
Advantages:
More flexible
- Easier to implement complex instructions
- Can emulate other CPUs
Disadvantage:
- Requires more clock cycles