Expansion Slots

Expansion Slots


In this video from ITFreeTraining, I will have a look at the different expansion slots inside a computer. Expansions slots allow an adapter card to be installed in a computer, increasing the features of that computer. Knowing which expansion cards are available and what they can do will assist you when upgrading computers.

Download the PDF handout:

Expansion cards
Expansion cards have been available for computers ever since the first IBM PC was released. The expansion card simply allows the computer to be expanded, thereby adding additional features. There are many different expansion cards on the market. Shown here is a SATA card. This card provides two additional SATA ports and RAID functionality.
Expansion cards can also be quite small, as you can see in the case of this network card. In order for an expansion card to be put into a computer, the expansion card requires a matching slot. The slots differ in size. For example, in the case of this fibre card it was removed from a dedicated hardware server. For this type of expansion slot, it is possible to have different sized slots with the larger slot sizes generally only found in servers.
Expansion cards can also be very large in size. Many high performing video cards on the market will be quite large like the one shown here. If you are installing a large expansion card, make sure that it will fit into your computer case. I once had to remove part of a computer case with a hacksaw to get a large graphics card to fit into the computer case.

Peripheral Component Interconnect (PCI)
The first expansion slot that I will look at is the Peripheral Component Interconnect or PCI. There were other expansion slots before this, however you will not be tested on these in the CompTIA exam. PCI was introduced in the early 90’s. PCI essentially attaches devices to the motherboard. PCI can be used to connect to integrated chips on the motherboard or it can form a bridge to the expansion cards. PCI essentially provides a standard for communication between the motherboard and devices which can be implemented in many different ways.
In this case, I will be looking at the expansion slots. The first PCI slot I will look at is the 32-bit 3.3 volt PCI slot. There were a number of different versions of PCI released with the last release being in 2004. Thus, PCI is not a new technology.
You can tell it is a PCI 3.3 volt slot due to the location of a notch on the PCI expansion slot. You will notice that in this example of a PCI card, the notch lines up with the notch in the expansion card. This indicates that the card is a 3.3 volt card.
Nowadays, PCI Express has replaced PCI. I will look at PCI Express later in the video. For this reason, motherboards on the market will have one or maybe two PCI slots, if any at all. You will generally find that if the motherboard has any PCI slots, these will be the 5 volt expansion slots. These expansion slots have a notch further down the expansion slot then on the 3 volt. You can see the example PCI card will have the notch in the same place. This prevents 3 volt cards being put into 5 volt slots.
The slots themselves will only support the one type of card, however a manufacturer can design their card so it will work in both slots. You can see in this example that the PCI card has two notches in the card, thus this expansion card will work in both slot types.
PCI was a big improvement over previous slots and became the dominant slot on motherboards. One of the main reasons was its ability to support plug and play.

PCI and Plug and Play
The development of PCI started a radical change in how expansion cards worked. PCI allowed for automatic configuration of resources for an expansion card, otherwise known as plug and play. In the early days this was known as plug and pray as it was unreliable, however nowadays plug and play is very reliable and something the technician does not think too much about because it just works. The question remains, what is plug and play?
Plug and play essentially allows automatic installation of a device and its drivers. It does this by auto configuration of I/O ranges, memory ranges and interrupts. These are all used by the computer to access the expansion card. If I consider an example, you can see that plug and play has configured I/O ranges, memory ranges and interrupts automatically for this network card.
The way PCI achieves this is that the PCI slots are connected to a shared bus. In the old days, expansion cards had jumpers in order to configure them. The technician had to make sure that two devices in the computer did not have the same configuration. With PCI, the process of configuring expansion cards changed. Rather than manually configuring the expansion cards, the expansion card requests the resources it needs. You can see in the example, the network card is using an I/O range, memory range and one interrupt.
I/O range and memory range conceptually work the same. Data can be read or written to the I/O range just like the memory range. What is different is the set of instructions that the CPU uses to access the I/O range and memory range. As you can see, the I/O range is a 16-bit value and thus can access only 64 kilobytes. This may not seem like a lot; however, each device only uses a small amount of these 64 kilobytes. In the case of our example, the network card uses 256 bytes for I/O.
In the case of PCI, each expansion card will have an I/O range. Some of this I/O range is predetermined to contain certain values. For example, the start of the I/O range contains the vendor ID for the expansion card and also the device ID. These are both used by the operating system to identify the expansion card and determine what device driver it needs to use. Essentially this is what makes plug and play work.
The memory range is generally a lot larger and so is used to transfer data from the expansion card to the computer. Essentially the I/O range is used for control, memory range is used for transferring data; however, the manufacturer is free to design (and thus control) the expansion card however they see fit. The computer just needs to ensure that it has allocated enough resources when requested.
The interrupt allows the expansion card to interrupt the CPU from processing other instructions in order to process instructions for the expansion card. Usually this will be because data has arrived and needs to be processed. In the case of the network card, when a network packet arrives, the network card will interrupt the CPU. The CPU will then run some code for the network card to transfer the packet from the network card to the computer. Once this is done, the CPU will continue executing the code it was executing before it was interrupted.
The other method of doing this would be to poll the network card at regular intervals. As network data can arrive at the computer very randomly, this is a very inefficient way of doing this. You are either polling the network card too often, each poll wasting resources on the computer, or not enough which results in delays getting the data from the network card to the computer or in the worst-case scenario the data is lost. You can see why interrupts are an efficient way of doing this, because the data gets transferred as soon as it arrives and only done when there is data to transfer.

PCI
This PCI bus ran at 32 bit and 33 Megahertz. Given that it could transfer 32 bits at once, this allowed it to transfer 133 Megabytes a second. Later versions ran at 66 Megahertz allowing 266 Megabytes to be transferred per second.
This was a reasonable speed when it first come out, making PCI quite popular, but quite slow by today’s standards. PCI uses a shared bus, so up to five devices could be attached to the same bus with each device having eight different functions. PCI also supported bus mastering which allowed the device to transfer data into memory without using the CPU.
The big advantage of PCI is that it can be used with other buses. This was one of the big reasons that PCI took off. Before this, when you purchased a motherboard, all the slots on the motherboard were the same. PCI allowed the manufacturer to decide which slots they wanted. As PCI became more popular, manufacturers increased the number of PCI slots on their motherboards. As newer faster slots became available, manufacturers reduced the number of PCI slots on their motherboards.
PCI was quite popular, but the speed became limiting so improvements were required.

PCI-X (eXtended)
In order to address some of the speed problems, in 1998 the PCI-X slot was developed. The X standing for eXtended. This slot provided 64-bit transfers and also four different speeds, these being 66 Megahertz, 133 Megahertz, 266 Megahertz and 533 Megahertz.
PCI-X slots are much larger than PCI slots, but the first part of the slot is essentially the same as the PCI slot. Like before there is the 3.3-volt slot and the 5-volt slot. As before, a 3.3 Volt slot is keyed so a 5-volt card will not be able to go into the slot. The same applies to the 5-volt slot.
You will notice that both PCI-X slots are the same as the PCI slots; essentially the slot has been added onto. This means, a PCI-X card can be plugged into a PCI slot. You will notice in this example that part of the card will not fit into the slot. Assuming the card supports it, you will be able to use a PCI-X card in a PCI slot. The down side is that the card will run in 32-bit rather than 64-bit mode.
Like the PCI cards, the PCI-X cards can work in 3.3 volt and 5-volt slots. So essentially, it is possible to design a PCI-X card that will work in all PCI and PCI-X slots.
PCI-X slots are quite large compared with PCI cards. This may be one of the main reasons they were not used that much in desktop computers. PCI-X slots tend to be used more in servers and high-end work stations rather than desktop computers. I will next look at the smaller version.

Mini-PCI
The next slot that I will look at is the Mini-PCI slot. The Mini-PCI slot is used in laptops. In laptops there is not enough space for a full expansion card. The Mini-PCI slot is often used for networking, wireless, Bluetooth and sound cards.
The Mini-PCI runs at 32-bit and 33 Megahertz just like PCI. There are three different types of Mini-PCI. Type III Mini-PCI has 124 pins. This is more pins then type I and type II; the extra pins allow for more interface pins to the card. These extra pins route I/O back to allow connectors for devices like audio, LAN or a phone line.
Each type comes in two different sizes, referred to as A and B. An example of a type 3A card is shown. If I compare this with a type 3B card, you will notice that they are both the same width, however the length of the card is different. Regardless of which type you use, the B version will always be the smaller card. The Mini-PCI is an old standard now, so if you were to purchase a Mini-PCI card it will most likely be a type III. Before you purchase, make sure your laptop has enough room for the card. Not all laptops will have room for a version A and may only support version B.
Type I and type II have 100 pins. Type II has a built-in RJ45 connector. This allows a network cable or phone cable to be plugged directly into the card. In contrast, type I and type III require a cable to connect directly to the card. Since Type II has the RJ45 connector on the card itself, this means the card needs to be near the edges of the laptop so it can be accessible.
Mini-PCI was different to PCI as it used a point-to-point connection rather than a shared bus. In laptops this was not a problem since a laptop has limited expansion slots.
PCI was the standard for a number of years, however having a shared bus did cause problems.

PCI Shared Bus
A PCI shared bus essentially means multiple PCI slots are using the same wires on the motherboard, unless of course there is only one PCI slot on the bus.
This means that only one expansion card on the bus can communicate at once. This can cause delays transferring data. PCI attempts to resolve speed problems by having a priority system in which high performing cards will be given control of the bus, first, over less important cards.
Having a shared bus does cause other issues. In order to send data on the bus the whole bus needs to be stable. Having multiple slots on the bus means the bus takes longer to stabilize particularly when the wires are longer. There are also problems with reflection. Reflection is when the electrical signal reaches the end and bounces back.
There are a number of different buses that came out after PCI; however, none of these took off. I won’t worry about going through these because they won’t be on the CompTIA exam. Instead, I will look at the replacement for PCI, called PCI Express.

PCI Express (PCIe)
PCI Express is currently the most popular expansion slot on the market. Most motherboards currently on the market will have PCI Express slots and maybe one or two PCI slots. Any other slots are pretty much gone from the market.
PCI Express is very different from PCI in that it uses serial communication and there is no shared bus. Each of these serial connections is called a lane. Each serial slot will have one or more lanes, with the current standard having a maximum of 16 lanes.
Version 1 of PCI Express transfers at 250 Megabytes per second. Compare this with PCI which transfers at 133 Megabytes per second – and this is only version 1; it only gets faster. PCI is parallel while PCI Express is serial. At first it may seem strange that serial would be faster than parallel. However, consider that if you are sending 32 bits of information at once, in order for parallel to work, all the 32 bits must be inline with each other. This becomes harder to achieve the faster you go, as even a small delay in sending will cause the data to be out of sync.
In contrast, serial data does not have this problem because all data is sent in a single stream. A slight delay does not cause synchronization problems. This means that the data can be transferred at much higher speeds and thus PCI Express can outperform PCI. Let’s have a closer look at how the PCI Express lanes work.

PCIe Lanes
Each PCI Express device has one or more lanes going to it. Currently there is a maximum of 16 lanes that can go to one device. In this example, I have only shown one lane, but the video card can support 16.
Each lane in PCI Express has separate transmit and receive wires. In PCI, the bus worked in both directions and this caused stabilization problems. Think of it like a road with cars on it. If you wanted to change the direction of the road, you would first need to wait for all the cars to exit the road before you could change the direction. The same applies with the bus, you need to wait for the electricity on the bus to subside before it can be reversed.
PCI Express also uses two wires for data. Data is transmitted using differential signaling. This essentially means a one or a zero is determined by looking at the differences between the two wires. The advantage of doing this is that the two wires are less subject to electromagnetic interference which means less corruption during transmission. The end result, more data can be transmitted faster.
PCI Express uses end-to-end communication. This essentially means there is a direct connection between the device and the computer, or to put it another way, there is no shared bus. Not having a shared bus means not having to wait for the bus to stabilize before sending data. PCI has the problem that having multiple devices on the same bus means that certain devices have less distance to travel then others. Before a device can transmit, it needs to wait for the bus at the furthest point to stabilize even if it is the closest device.
End-to-end communication also reduces reflections. Reflection is essentially when the signal bounces back towards where it came from. Think of it like making a wave in a swimming pool. When the wave hits the wall of the swimming pool it bounces back and it will not be as strong as the original wave. Reflections are the same, they are not as strong as the original signal, but they are strong enough to corrupt a data signal.
Having the lane work only as transmit and receive reduces the chance of reflection. Also, using two wires reduces the chance of interference affecting the signal. This is because interference will affect both wires the same way and thus can be accounted for. The end result of PCI Express is that you can transmit a lot more data than PCI, so let’s have a look at how much.

PCIe Speed
Shown here are the different speeds of PCI Express. Currently, many motherboards are being shipped with at least one version 3 expansion slot. You will find that most PCI Express expansion cards are version 3. Given that version 4 of PCI Express was introduced in 2018, is was not until late 2019 that motherboards were release on the market that support it. Some of these motherboards required a BIOS update before the PCI Express 4 could be used. It’s funny however, the PCI Express 5 specification was release in 2019 before the first PCI Express 4 motherboard was available for purchase. Just goes to show you how fast technology in computing is improving when the new version specification is released before we get a chance to use the previous version.
You can see that even using one lane, version 3 is still capable of transmitting close to a gigabyte per second. A big improvement over PCI. When referring to the number of lanes, this is indicated by an x followed by the number of lanes. However, the x is pronounced as by. So x16 would be, by 16.
At the time this video was made, most motherboards on the market have some version 3 slots and some version 2 slots. Generally speaking, newer versions of PCI Express expansion cards will work in an older slot. However, the speed will be slower since it will use the old version of the standard. It is important to consider this when installing PCI Express cards in your computer.

PCIe Slots
Next, I will look at PCI Express slots. There are four different PCI Express slots. The larger the slot, the more lanes it can support. The point to remember here, however, is that the slot size only determines the maximum number of lanes that slot can support. The slot may fit a certain size card, but less lanes may be available for that slot.
This generally happens with the x16 slots, not so much on the smaller slots. Even though the slot will fit a x16 card, on some motherboards only eight or four lanes may be connected to the slot. The expansion cards will generally still work, but they won’t be working as quickly as they can.
Generally, you would place an expansion card in a matching slot, but you can also put a smaller card in a larger slot. As you can see, a x1 expansion card can go into a x16 slot.
These slots were designed for a desktop, but there is also a slot designed for laptops.

miniPCIe
In laptops, a standard was developed called Mini-PCI Express. This is a small card that fits inside the laptop. The card itself supports one PCI Express lane or USB 2.0. In some laptops you will easily be able to remove the card and replace it if you wish. In other cases, there may be leads soldered onto the card that make removing the card very difficult. Most laptops made after 2005 will use PCI Express for their expansion card.
Well, that covers it for the expansion slots that you will need to know for the CompTIA exam. I hope you have found this video useful and until the next video I would like to thank you for watching.

References
“The Official CompTIA A+ Core Study Guide (Exam 220-1001)” Chapter 3 Position 6553-6636, 6828-7999
“CompTIA A+ Certification Tenth Edition” Chapter X Pages 219-223
“Conventional PCI” https://en.wikipedia.org/wiki/Conventional_PCI
“PCI Express” https://en.wikipedia.org/wiki/PCI_Express
“A History of PC Buses – From ISA to PCI Express” https://www.youtube.com/watch?v=qla-5isbK60
“Linux Device Drivers, 3rd Edition” https://www.oreilly.com/library/view/linux-device-drivers/0596005903/ch09.html

Credits
Trainer: Austin Mason http://ITFreeTraining.com
Voice Talent: HP Lewis http://hplewis.com
Quality Assurance: Brett Batson http://www.pbb-proofreading.uk