A PCIe is a type of expansion bus. Lots of other things are also buses! A bus is made of single wires (serial) or groups of wires (parallel) that carry data from one location to another. Most modern bus systems use lanes, which are pairs of serial wires with one sending data and the other receiving at the same time.

 

Expansion buses allow you to plug extra hardware into your motherboard as easily, in most cases, as you plug a game cart into a gameboy (or Switch, I’m old). Most additional functionality that comes from hardware is stuff plugged into expansion bus slots. The most common form of expansion bus used to be PCI (Peripheral Component Interconnect), and you still sometimes see PCI slots. They look like this:
 


However, on most modern motherboards you’ll see PCIe (Peripheral Component Interconnect express) slots. They look like these four slots at the top:

PCIExpress

(Above: PCIe x4, PCIe x16, PCIe x1, PCIe x16, and a PCI slot)

 

PCIe have different numbers of lanes, indicated by x(#) or “by (number)” notation. For instance, a PCIe x1 slot has only one lane, while a x16 slot has sixteen lanes. Peripheral cards need a certain number of lanes to function. They also won’t physically fit in a slot with too few lanes. They can usually fit in slots with more lanes than they need, but there’s no mechanical benefit to doing so.

 

There are currently four versions of PCIe. Each one doubles the data rate of the last one; PCIe v1 has a data rate of 2 Gb/s (250 MB/s), PCIe v2 has a data rate of 4 Gb/s (500 MB/s), v3 is 8 Gb/s (1 GB/s), and v4 is 16 Gb/s (2 GB/s). This means each wire in the lane can transfer that much data per second. To figure out how much the whole bus can transfer at once, coming and going, you need to take into account how many lanes there are too.

 

Example: a PCIe x4 slot is v3

 

1 GB per wire    2 wires    4 lanes
------------------- * ---------- * ---------- = 8 GB/s for this slot
1 second            1 lane      1 slot

(In case screenreaders made a mess of that or the formatting doesn't hold up on other screens, it says that 1 GB per wire divided by 1 second times 2 wires divided by 1 lane times 4 lanes divided by 1 slot equals 8GB for this slot, or 1 GB per wire per second times 2 wires per lane times 4 lanes per slot equals 8 GB for this slot.)

The same motherboard will commonly have more than one version of PCIe slot on it, because the slower kinds are cheaper and still work fine for many applications. Your higher rated PCIe slots, which are x16 and v3 or v4, connect directly to the CPU or “Northbridge” in order to move faster, while any other PCIe slots will connect to the chipset or “Southbridge”. Most chipset PCIe slots are x1, which is also the size of most peripheral cards aside from the fancy video cards and such that you’d want in those higher-end slots anyway. Occasionally you’ll also see x4 or x8 slots. It’s easy to tell the differences between them just by comparing their sizes, but you can also tell them apart by the number and configuration of gaps.

 

Important components that may be installed via PCIe slot include:

- GPUs
- WiFi cards
- dedicated audio cards
- cards that add extra ports, such as more USB ports
- some kinds of very fast SSDs (may require additional Stuff)
- adapters for weirder things

 

The most important thing here is to understand how your available number and types of PCIe slots affect what you can do and how you’re going to do it. When building a PC or replacing a part, you need to know whether the peripherals you need will work with the slots on your motherboard. Also, if a peripheral component isn’t communicating with the rest of the machine, you need to know that a bad PCIe slot is a potential culprit.

(Some friends and I are studying for IT certification together. I'm doing short reviews of topics we covered a while back. I'm putting them here and on Pillowfort so they're easy to find because Discord is terrible for logs, and hey, maybe other people will find them useful.)

First off, the obvious: The IT Cert program identifies six specific steps for troubleshooting. These are:

1. Identify the problem

2. Establish a theory of probable cause

3. Test the theory

4. Establish a plan of action to resolve the problem, and implement your solution (I still think that should be two steps)

5. Verify full system functionality and apply any preventative measures

6. Document findings, actions, and outcomes



1. Identifying the problem

The most important takeaway here is to gather as much information as you can, from as many sources as you can. Talk to the user, examine the machine yourself, examine the environment the machine is in, look up the official documentation, look for any past records on this problem, this machine, or this system, Ask The Internet

2. Establish a theory of probable cause


Two important things here. One, establish more than one theory of probable cause ahead of time so you have your possibilities handy if one fails to be the issue in question. Two, rank them according to ease/minimal disruptiveness of testing, not likelihood of being the answer. It may be unlikely, for instance, that simply unplugging the ethernet cord, blowing out the port, and plugging it back in will fix a computer failing to recognize that the ethernet exists, but it takes so little time and effort that it's worth doing first if there's even a possibility that it will work.

3. Test the theory

the key point here is that, while a test can solve the problem, that's not its primary purpose. The primary purpose of the test is to determine what the problem is. On your own at home the difference is often trivial, but if you're working with an organization, it becomes less so, because you need to coordinate with other people (and, often, multiple machines). This means that your test needs to be as isolated as possible, so it doesn't interfere with the rest of a system, and you need to get your permanent fix approved and scheduled so it doesn't catch people by surprise. Basically, testing before implementing your solution is basic courtesy + not accidentally bringing down your whole system, destroying anyone's work, or giving everyone else in the building unnecessary heart palpitations.

4. Make and Execute a Plan

See above

5. Verify System Functionality


This step is important because fixing one thing can sometimes break something else. For instance, if you replace some buggy resource with a functioning one, but a program still points to the buggy resource, that program is instead going to find nothing and flip the fuck out unless you fix that too. Also, sometimes something that seems to fix a problem doesn't actually, after extended testing, and this is a good time to doublecheck that.

6. Document Findings


Have you ever had a tech problem, gone online, checked a forum post describing the exact same problem and marked SOLVED, and then the original poster just says "Nvm I fixed it :)" with no further information? Did you want to print out that forum post, fold it into an elaborate origami knife, find the original poster, and stab them with it? Don't be that person! Help others and yourself with future tech issues by keeping good notes and making sure they're accessible.

Other Notes on Troubleshooting

Most of us have experience with troubleshooting in our daily lives, and a lot of the troubleshooting section is thus pretty intuitive. While emphasis on actually memorizing the six steps is important for passing the test, I'd say that in terms of learning new and useful skills, the most important part of this section is understanding how and why things change when you move from a personal scale to an organizational one. Troubleshooting when there are more people involved, and all of those people have to work together to get things done, usually by a deadline, requires coordination, which in turn requires effective communication. Keep this in mind at every step.

And that concludes today's Snail's Pace Review! Have a good day, everyone.
Change Control, as a concept, seems like something anarchists would come up with. I say this mostly as a compliment.

Profile

molluscsandmonsters: tiny decorative tin box featuring sea snails and environmental pressures that make them grow differently; a wave for wave action on surf side rocks, a crab for predation on sound side rocks (Default)
molluscsandmonsters

Some Tags

Style Credit

RSS Atom
Page generated Jul. 29th, 2025 09:44 pm
Powered by Dreamwidth Studios