So now that we have seen what storage devices
look like, let's talk about how they and other I/O
devices can be connected to the system. We usually connect
I/O devices using some sort of a standardized I/O bus.
It needs to have a standard because we want to
be able to connect for example, hard drives from one
manufacturer to a computer built by another one. And then
possibly even replace the hard drive with another one from
another manufacturer. Or even move our existing hard
drive from one system to a new one we
are buying so that we can access our data without having to spend a lot of time
copying it. Because these buses have standards they have a limited
rate of improvement, and often this improvement goes in steps. So
all of the technology might go up in a relatively smooth fashion.
This is where a new standard gets adopted
by manufacturers so things suddenly improve. But then for
a while you just have the same buses even
though the technology is actually improving. And instead of
having just one type of bus that connects
to all I/O devices, typically we have a hierarchy
of buses. You have a mezzanine bus such as
PCI Express. It will be pretty fast and short
so that it can be this fast, and it can be used to directly connect fast
devices to the processor such as for example graphics. Then we will
connect storages buses to it. For example, the SATA or
SCSI for hard drives, both of these are used usually to connect storages
devices. These are somewhat specialized for storage.
And a SATA controller will act as a PCI Express device on the mezzanine bus.
But the controller itself actually controls a SATA bus to which we
now connect devices. So the reason why we have these and don't directly
connect our hard drives to the PCI Express, is that although these, for example,
serial ATA buses are slower, there is also
less change in their standards. And there need
not be that much change because these devices
are much slower than what the PCI Express can
provide. So, we don't really need all the
speed of PCI Express. In exchange, we get
to keep our hard drive standards for a
while longer while PCI Express can improve a little
bit more rapidly. All we have to do is devise new controllers that connect
these storage busses to the newest PCI Express that we have. And then we can
have a USB hub for example, also attached to a PCI Express bus. The USB hub
itself provides a USB bus connection for USB devices that are even slower than
for example, SATA. But again, their standard lives for a lot longer, so we can
use a lot of different devices relatively cheaply and connect them to this. So
overall we can have is a PCI Express bus to which we can attach the processor,
the graphics, the I/O bus control for disks, for USB. And these in turn
provide buses to which we can attach disks
here, and also some devices here. So the
closer we get to the processor, the more
important it is to keep improving speeds, because, because
some of the devices, like graphics, need that
speed. But for storage, and for many of the
standard USB devices, we really are much more
interested in standardization so that we can exchange these.
So that we can interchange these devices and not have them tied
to a particular technology and have to change them every year or two.