Since the dawn of the personal computer, it is not with the IBM PC but with the MITS Altair that personal computers have taken different types and shapes, but all expansion buses follow a set of common rules in its functioning regardless of the type of interface we are talking about. This is why we have made you an article with the common rules for expansion ports.
Whether you connect the printer to the USB port, the graphics card to the PCI Express port, or the hard drive to the SATA port, they all follow a set of common standards that allow them to interact with the rest of the system, which allows us to are going to define here, so that you have a better knowledge of expansion ports in general and not just one in particular.
1ª standard of an extension bus: serial or parallel
An expansion port can transmit data serially or in parallel. When we say it is transmitting data serially, we are saying that the port has a single data pin which sends out one bit of information per clock cycle.
A parallel expansion port, on the other hand, sends several bits simultaneously, but for this it requires a greater number of pins and therefore its interface is much wider. Therefore, the physical interface of said port will occupy many more pins and therefore a larger area. As a result, chips larger than these interfaces are on the outer perimeter.
Since data transfer consumption increases exponentially with bandwidth, parallel interfaces are often used for high bandwidths and serial interfaces for low bandwidths. However, all interfaces contain an accompanying SerDes interface within the processor, said interface converts the signal from parallel to serial and therefore serializes and also the reverse case. This happens inside the processor and before sending or receiving the signals, because the power consumption inside the processor is much lower.
2nd rule of an extension bus: address
Early interfaces usually went one way, especially for input devices where mice and keyboards were connected. After all, a keyboard doesn’t need to process data and the same has happened with output ports such as video output.
But for some devices it is necessary that there be two-way communication and it is a huge waste of space and hardware complexity to have pins to send data and pins to receive data. The solution? Making the pins work in both directions, with this, two types of configurations called Duplex were achieved, which are as follows:
- Half Duplex: Data is transmitted in only one direction, which is marked by sending a signal to one or two contiguous pins. If only one pin is used to select, it only allows one direction of data, if it allows both, we can copy, that is, transmit the data in mode A full-duplex.
- Some communication interfaces always transmit data in both directions, these are purely A full-duplex, but they don’t use certain pins to transmit the data.
Many of the more advanced systems of the second type typically have both a receiver and a transmitter at each end to be able to communicate data back and forth.
3rd rule of an extension bus: the channels
And since we are talking about data channels, there are expansion ports that can transmit several different data streams depending on multiple transmitters (TX), receivers (RX) or transceivers simultaneously operating on their interfaces. This allows them not to send a single data stream, but several different ones at the same time.
This is the case with USB-C Alt DP where the different data channels can be used both to transmit data and to send video to a DisplayPort input of a monitor. Another advantage that this allows is to be able to create hubs that allow several devices to share the same common interface.
Data transmission mode
The next point is how to transmit the data and this changes depending on the selected interface. In some simpler interfaces we have a pin which, when it receives the signal, directly passes data from one part of the interface to another. Most primitive interfaces are based on placing data from a specific memory address and having the hardware take care of transmitting the data.
But since PC CPUs began to use virtual addressing which became impossible to do, data transfer systems with peripherals as well as RAM memory needed the addition of the so-called IOMMU, parts that, like an MMU, translate virtual addresses into physical addresses, but this time with devices.
Today, most interfaces function as a network interface. The IOMMU can directly know which device is communicating from the nature of each packet sent. However, not all data inputs and outputs go through the IOMMU as is the case with the video signal for example, since they are handled by the graphics card in this case.
DMA to communicate peripherals and memory
One of the peculiarities of the x86 architecture is that it does not have differentiated pins for communicating memory and devices, so devices are assigned a series of memory addresses for communication between the CPU and peripherals. The problem? The memory interface is located on the CPU. How do devices communicate with RAM?
Well, through a direct memory access or DMA mechanism, this mechanism is an interface with the RAM for the device that temporarily disconnects one of the memory channels from the CPU to the RAM to assign it to the device and power it up. write the data in memory or read from it. This is important because the CPU requires data to be in RAM to be able to work with it.
The post How do your PC’s expansion buses work? first appeared on HardZone.
Table of Contents