in this video I will look at the buses
that are used inside a computer a bus is
a communication pathway that allows data
to travel between different components
inside a computer
understanding how buses work will give
you a better understanding of what you
can achieve with a computer this will
help you determine where potential
bottlenecks in system performance may
occur when the computer is put under
load to start with let's consider the
question what is a computer bus or as
it's better known a system bus a bus
inside a computer is essentially a group
of electrical wires that carry a signal
on a motherboard these wires are called
traces the bus carries data but you need
to control the movement of the data to
determine where it is going in order to
do this a typical system bus is divided
into three parts the first part is the
data bus this bus carries the data a
computer bus works just like a regular
bus used to carry people the regular bus
will have a limited number of seats a
system bus will have a limited number of
bits it can send it once for example a
32-bit bus can send 32 bits at once
think of it like a bus with 32 seats and
in order for the bus to leave it needs
to have all 32 seats occupied a 32-bit
bus always sends 32 bits of data at once
no more no less the next step is that
the data needs to know where it is going
this is achieved by using the address
bus the address bus essentially tells
the computer where the data is going for
example going to the main memory or to
memory on a device more on that later in
the video
lastly there is the control bus the
control bus determines when data is sent
without any control the computer would
not be able to determine when data is
sent and when it is complete previous
data would get mixed up with the new
data and thus transfer errors would
occur to understand the bus better let's
consider a simple example of how a bus
may work in the old days of computing
this is how buses worked later in the
video we will see the problems with
using a bus designed like this and how
modern buses were differently to
overcome these problems
to start with let's consider there are
16 wires for the address bus this will
allow us to access 64 kilobytes of
memory not a lot by today's standards
now let's consider that we have a 16-bit
data bus 16 bits can be sent or received
on the data bus at once which is 2 bytes
lastly we have our control bus in this
example there are only 4 wires this is a
simple example and you would generally
have more but for this example there is
read/write transfer acknowledgment and a
clock signal wire the clock signal will
determine when data is sent the read and
write wires determine if data is being
sent and the transfer acknowledgment
wire determines if the data went through
ok so essentially set the address bus to
the address you want to read or write to
place or receive your data on the data
bus and use the control wires to
determine when to start to transfer what
sort of transfer be it either read or
write and if it was received this is a
very simple example that you may find in
a very old computer but it is not
without its problems consider that with
this example we have 36 wires consider
now that we wanted to send 32 or 64 bits
at once this would greatly increase the
number of wires required however having
extra wires is not the only problem this
would create this brings us to the topic
of serial versus parallel
serial transmission is when the data is
transferred using one channel each bit
follows the previous bit as in
follow-the-leader
parallel is when multiple channels are
used at the same time think of it like
line dancing where everyone is in a line
and dancing in sync with each other in
the old days of computing serial was the
first technology to be used but was very
slow in order to improve speed multiple
channels were combined together to
increase the speed it makes sense as
sending more data at once greatly
increases speed thus old computer
started using parallel transmission to
increase speed consider this example
there are four bits being transmitted
the first using serial and the second
using parallel there is a small gap in
transmission in between the bits it is
difficult to precisely time electronics
at high speed so sometimes there will be
small delays in transmissions at high
speed now consider our line dancing
example if you were to speed the music
up everyone in the line would need to
match the music as the music gets faster
this gets harder and harder with
parallel communication all data must
arrive at the destination before any
more can be sent if all channels are not
exactly in sync the transmission needs
to slow down to keep it in sync this
limits the speed parallel can run at
essentially faster parallel
communications require each channel to
be precisely timed with each other
channel now consider you have 64
channels that is a lot of channels to
have precisely timed with each other if
the channels get out of sync with each
other this is referred to as clock skew
in the case of cereal if you consider a
follow-the-leader example if a person in
the line were to go slower than the
others the effect would be that everyone
behind the person would also slow down
it is a lot easier to time one channel
than trying to keep multiple channels in
sync with each other as electronics
improved serial communication speeds
increased and thus started getting
faster than parallel communication for
these reasons serial transmissions have
started to replace parallel
communication
in newer computers you will find serial
communication has replaced parallel for
most of the buses in the computer
including the buses from the CPU this
allows higher speed and also requires
less wires to connect devices together
membrane modules still use parallel
communication maybe one day that will
change but you will find that just about
everything else nowadays is serial
communication
to better understand how serial
communication works I will use PCI
Express as an example there are a number
of different ways that serial
communication can be implemented however
you will find that they are similar to
how PCI Express is implemented in this
example I will use the PCI Express by
one slot this slot only has one lane of
traffic making it easy to understand
each PCI Express slot has a number of
pins for power and other functions each
Lane will have eight wires that are used
for data transmission the first four are
for sending data of these four wires the
first two are for sending and the last
two are ground wires in some cases there
may only be one ground wire and the
second wire may be reserved you may be
wondering why there are two sent wires
when it is using serial communication
the reason is that the two wires are run
next to each other to reduce data
corruption from interference when
sending data the difference between the
two signals is measured since both wires
are next to each other they will both
equally be affected by interference and
thus the difference will remain the same
with the interference quite high running
an extra wire is a small price to pay to
reduce interference and thus increase
the amount of data that can be sent
the same principle applies to the
received wires for wires two of which
are for receiving and to our foreground
using two received wires electrically
reduces interference and thus increases
the speed data can be transferred at
in old buses to save wires the bus may
work in both directions essentially a
switch would be flipped to determine if
the bus was receiving or sending
nowadays you will find that buses will
use separate wires per sending and
receiving
the next point to consider is how data
is sent from the PCI Express slot the
way this is achieved is by using packets
a packet contains a 96 to 128 byte
header and a variable length amount of
data up to 4 kilobytes the data sent is
always in multiples of 32 bits the
header contains the address and other
configuration information all data sent
contains extra bits which are used for
error-checking the version of PCI
Express being used will determine how
much extra data is needed for error
checking having the address in the
header means separate wires are not
required for the address bus as would
have been required in previous computers
you can see that using serial
communication has significantly reduced
the number of wires required if you want
to increase the speed further you just
add additional lanes for example with a
PCI Express by 16 slot there are 16
lanes of traffic going into and out of
the slot
you will notice that there is no wire
for the clock signal with PCI Express
there is no external clock signal since
the timing signal is embedded in the
data signal itself this is one of the
big advantages of serial communication
since data does not need to line up with
the clock signal it does not matter if
the data traveling over it runs at
slightly different speeds the other end
will simply process it at the speed it
receives
the next point to consider is what
happens when you have multiple devices
chips and buses which are connected
together here there are potential
different devices of different speeds
and there may be large amounts of data
being transferred around in order to
match the speeds between different
devices and components buffering methods
and wait states are used consider this
example
note that you have a Northbridge chip
the Northbridge is connected to the CPU
in this example there are two conveyor
belts which represent data channels the
two conveyor belts are exiting the North
Bridge which transports data to the GPU
and South Bridge since the GPU or
graphics processing unit requires a lot
of data it is not uncommon for it to be
directly connected to the North Bridge
or the CPU itself as the CPU is the
fastest component in any computer system
it will be sending data to the North
Bridge quite fast the buses to other
components will be slower than the CPU
and therefore in order to match the
speeds a buffer is used
essentially what happens is as the data
comes in the Northbridge takes the data
from the buffer and places it on the bus
if the buses are slightly out of sync
the data stays in the buffer until it
can be placed on the bus by having small
delays in the buffer this gets around
the buses being out of sync with each
other
the problem occurs when the buffer is
full when this occurs the incoming dated
needs to be stopped otherwise it will be
lost this is done by sending a control
signal to the bus telling it to stop
this is called a wait state once the
buffer is freed up the bus starts again
the CPU being the fastest component in
the computer is often placed into a wait
state a number of different design
techniques are performed to prevent the
CPU from going into a wait state but you
can only do so much
you can start to understand why a
computer can be under heavy load and for
the CPU utilization to be low the
computer is under load but the load is
not in the CPU bottlenecks can
potentially occur anywhere in a computer
system understanding how the buses work
gives you a better understanding of
where those bottlenecks may occur
sometimes because of different speeds of
buses upgrading from SATA 2 to SATA 3 or
changing an expansion card to a
different slot may make a big difference
to your computer's performance buses in
the computer can be either internal or
external internal buses are generally
high speed buses that are inside the
computer examples include the bus that
connects to the CPU memory and the chips
like the Northbridge
external buses connect devices outside
the computer these buses are generally
slower than the internal buses
examples include USB firewire and scuzzy
scuzzy can be used to connect devices
outside a computer however it can also
be used to connect devices inside the
computer some buses can be both internal
and external an example of this is PCI
Express PCI Express can be used
internally in a computer and also can be
used to connect devices external to the
computer you will find that in a bus
that supports both external speeds will
generally be slower than what can be
achieved internally inside the computer
you may also come across the term
storage bus
a storage bus is simply a bus designed
for the purpose of communicating with
storage devices such as hard disks
optical devices and solid-state drives
you may also come across the term host
bus adapter or HBA this refers to the
adapter or device that supplies the bus
for the storage devices the term is
commonly used in servers and storage
devices
to access devices the parallel ata
interface or peda was very popular in
the 80s it was also known as IDE
standing for integrated electronics
there were many improvements made to it
after it was introduced so it may also
be called enhanced ID the interface is
obsolete nowadays but you may find that
your motherboard has this connection on
it it may be any one of the three names
regardless of what name is used since it
is old technology modern motherboards
will support all the old and new
features of the interface so if you are
using a modern motherboard don't worry
about what the connection is called it
will support all the new and old
features of the interface nowadays you
will most likely be using a SATA
connection to connect the storage
devices in your computer SATA is a
serial connection while ide was parallel
previously in computing parallel was
faster than serial however as computers
started to increase in speed timing
parallel connections became harder to
achieve it was found that better results
could be achieved by using serial
connections rather than parallel
the other connection that is commonly
used is scuzzy this stands for a small
computer system interface traditionally
scuzzy devices cost more so you would
only see scuzzy used in servers or
high-end workstations the scuzzy
interface has changed a large number of
times therefore you need to make sure
you have the right interface and cable
for the scuzzy device you are using
traditionally scuzzy was parallel but
now it has made the change to serial
there are other kinds of storage devices
that are used but these are the main
ones you were going to come across the
last point that I would like to cover is
expansion cards shown here is an example
of a PCI Express by one expansion card
the expansion card will receive a clock
signal from the motherboard all
expansion slots have a standardized
clock rate if different motherboards
used different clock rates then a
different expansion card would need to
be manufactured to support each
different clock rate this now means that
only one expansion card needs to be made
for each slot type this creates the
problem that the manufacturer is stuck
with that clock rate and it may not be
suitable for their needs for this reason
you will find that a lot of expansion
cards will have their own crystal
oscillator a crystal was used to
generate clock rate having a crystal on
the expansion card allows the
manufacturer of the expansion card to
create their own clock rate totally
independently of the clock rates used on
the motherboard the expansion card will
still need to sync it's transfers up
with the clock rates applied by the
motherboard it does this using buffers
and weight states as in the previous
example of the Northbridge
in order to power the crystal the
expansion card receives 12 and 3.3 volt
power from the motherboard this will be
the first set of pins found on the
expansion card not all the pins will be
power but a large number of them are
this power allows the expansion card to
power the crystal to generate its own
clock cycle you should now understand
that a computer system uses a number of
busses for devices to communicate with
each other
buffers are used so different speed
devices can communicate with each other
if too much data comes in at once a wait
state is used to temporarily stop the
data from being transmitted
this concludes this video from IT free
training I hope this has given you a
better understanding of what buses do
inside a computer until the next video
from us I would like to thank you for
watching