79 lines
4.4 KiB
Markdown
79 lines
4.4 KiB
Markdown
![]() |
---
|
||
|
tags:
|
||
|
- bus
|
||
|
- computer-architecture
|
||
|
---
|
||
|
|
||
|
# Bus
|
||
|
|
||
|
A bus is a communication system that transfers data between components inside a
|
||
|
computer, or between computers.
|
||
|
|
||
|
**A bus can be thought of as a kind of pipeline that allows different components
|
||
|
of the computer to communicate with each other.**
|
||
|
|
||
|
Note that the use of the word "bus" varies somewhat in points of emphasis. A bus
|
||
|
can mean:
|
||
|
|
||
|
- The physical wires that make up the bus
|
||
|
- The communication channel that is established over those wires
|
||
|
|
||
|
## Main buses
|
||
|
|
||
|
| Bus type | Description |
|
||
|
| ------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
||
|
| System bus | The primary pathway between the CPU and [memory](Memory.md). It comprises the **data bus** that transfers data from the memory to the CPU and the **address bus** which transmits requests from the CPU to memory. |
|
||
|
| Internal bus | Connects local devices for example the harddisk to the CPU. |
|
||
|
| External bus | Connects peripheral devices such as disks and printers to the [motherboard](Motherboard.md) |
|
||
|
| Expansion bus | Allows expansion boards to access the CPU and memory. |
|
||
|
| Frontside bus | Main computer bus that determines data transfer rate speed and is the primary data transfer path between the CPU, RAM and other [motherboard](Motherboard.md) devices. |
|
||
|
| Backside bus | Transfers secondary cache (L2 cache) data at faster speeds, allowing more efficient CPU operations |
|
||
|
|
||
|
## Bus standards
|
||
|
|
||
|
### Parallel and serial transmission types
|
||
|
|
||
|
There is a distinction between buses that use **serial** and buses that use
|
||
|
**parallel transmission**. They are distinguished by the way in which the bits
|
||
|
are transferred from one point to another, along the bus.
|
||
|
|
||
|
Serial Transmission is the type of transmission in which a single communication
|
||
|
link is used to transfer the data from an end to another. On other hand Parallel
|
||
|
Transmission is the transmission in which multiple parallel links are used that
|
||
|
transmit each bit of data simultaneously.
|
||
|
|
||
|
<img src="../img/serial-transmission.jpg" width="800px"/>
|
||
|
<img src="../img/parallel-transmission.jpg" width="800px"/>
|
||
|
|
||
|
- Serial buses are cheaper to implement than parallel buses
|
||
|
- Serial buses operate at greater [latency](Bus.md#latency) than parallel buses
|
||
|
|
||
|
## Latency
|
||
|
|
||
|
Latency means _delay_: the delay from the time the data is requested until the
|
||
|
time it arrives. In the context of a microprocesser and buses a key locus of
|
||
|
latency would be between the time a request takes to travel accross the system
|
||
|
bus from the CPU to the memory.
|
||
|
|
||
|
### Bandwidth
|
||
|
|
||
|
In general, bandwidth is a measure of the capacity for a communications channel
|
||
|
to transmit data. A bus is a channel between two components thus we can talk
|
||
|
about the bandwidth of buses. The speed and efficiency of a bus is a function of
|
||
|
its bandwidth, although other factors such as its length and proximity to the
|
||
|
source and receiver are also important.
|
||
|
|
||
|
Bandwidth can be calculated in terms of how many bits can be transferred per
|
||
|
second. The wider the bus, the more bits that can be transferred. If we have a
|
||
|
bus that can run at 66MHz and transfer 64 bits, 64 bits is 8Mb thus the
|
||
|
bandwidth is 8 x 66 = 528Mb.
|
||
|
|
||
|
## Standards
|
||
|
|
||
|
The mode of transmission is used to distinguish the different bus standards.
|
||
|
|
||
|
SCSI (Small Computer System Interface) and ATA (Advanced Technology Attachment)
|
||
|
are used for hard drive devices (i.e. internal buses). USB (Univeral Serial Bus)
|
||
|
and SATA (Serial Advanced Technology Attachment) are used for peripheral
|
||
|
devices, keyboards and modem devices (i.e external buses).
|