Understanding The Inner Workings Of The Pci Bus

how pci bus works

The Peripheral Component Interconnect (PCI) bus is a standard interface for connecting peripherals to a PC's motherboard. PCI was designed to meet the need for a high data transfer rate for modern graphics controllers, storage media, network interface cards and other devices. It is a channel or path between the components in a computer, allowing users to connect components such as hard disks, memory, sound systems, and video systems to the computer's processor. The PCI bus has largely been replaced by USB, but it is still used for specific cards, such as graphics cards.

Characteristics Values
Type of Bus Peripheral Component Interconnect (PCI) Bus
Connection Connects peripherals to the motherboard
Expansion Cards Modem cards, network cards, sound cards
PCI Local Bus General standard for a PC expansion bus
PCI Voltage 3.3V or 5V
PCI Cards 47 pins
PCI Transactions Work in a master-slave relationship
PCI Plug and Play Host-CPU/Host-OS can determine the identity, abilities, and requirements of each PCI board
PCI Spaces Configuration space, memory space, and IO space
PCI Connector 32-bit or 64-bit
PCI Speed 33 MHz or 66 MHz

shunauto

PCI cards and their various form factors

Peripheral Component Interconnect (PCI) cards are used to connect peripheral devices to the motherboard of a computer. The PCI bus allows for high-speed data transfer between the central processing unit (CPU) and peripherals such as graphics cards, network cards, sound cards, and storage devices. PCI cards come in various form factors, including:

  • Full-sized PCI cards: The original PCI standard, often referred to as "PCI 2.2", features a 32-bit data bus and operates at a clock speed of 33 MHz. It offers a maximum data transfer rate of 133 MB/s. PCI slots are typically white in colour and have longer connector slots compared to other variants.
  • PCI-X: Also known as "PCI eXtended", this is an enhanced version of PCI that offers higher performance and backward compatibility. It comes in 64-bit variants and operates at faster clock speeds, ranging from 66 MHz to 133 MHz. PCI-X slots are often black in colour to distinguish them from standard PCI slots.
  • PCI Express (PCIe): This is the current industry standard, offering significantly higher data transfer rates and improved scalability compared to traditional PCI slots. PCIe utilises a serial point-to-point architecture, allowing for faster communication between the CPU and expansion cards. PCIe slots come in different lane configurations, including x1, x4, x8, and x16, each providing an increasing number of lanes for data transfer and, consequently, higher bandwidth.
  • Mini PCI: Short for Mini Peripheral Component Interconnect, this is a compact expansion slot standard designed for use in notebook computers and other small form-factor devices. Mini PCI slots typically support wireless network cards, modems, and other communication devices.
  • M.2: A modern standard designed for compact devices, M.2 supports a variety of devices, including storage drives, wireless cards, and even graphics cards. It is a replacement for the mSATA and Mini PCI Express standards.

Each type of PCI slot and card has its own advantages and use cases, catering to different expansion cards and providing flexibility in expanding computer systems.

shunauto

PCI's role as a local bus

Peripheral Component Interconnect (PCI) is a local bus that connects the CPU and expansion boards such as modem cards, network cards, and sound cards. It is the general standard for a PC expansion bus, having replaced the Video Electronics Standards Association (VESA) local bus and the Industry Standard Architecture (ISA) bus.

PCI allows for the connection of peripherals to the motherboard. It was most popular between 1995 and 2005 and was used to connect sound cards, network cards, and video cards. PCI is also a plug-and-play interface, meaning that the host-CPU/host-OS can determine the identity and requirements of each PCI board in a PCI bus, as well as relocate each board's memory space.

PCI has four main characteristics: it is transaction/burst-oriented, synchronous, allows for bus mastering, and is plug-and-play. It uses one clock that runs at 33MHz by default but can run lower to save power or higher (up to 66MHz) if the hardware supports it. PCI is a 32-bit bus with 32 lines to transmit data. It allows for bus mastering, where transactions work in a master-slave relationship. While the host CPU is often the bus master, all PCI boards can potentially claim the bus and become a bus master.

PCI cards come in several shapes and sizes, or form factors. Full-size PCI cards are 312mm long, while short cards range from 119 to 167mm and fit into smaller slots. PCI cards use 47 pins to connect and support devices that use 5 volts or 3.3 volts.

The PCI specification is developed and maintained by the PCI Special Interest Group (PCI-SIG). It is not a free specification and access requires membership in the PCI-SIG.

shunauto

PCI's transaction-oriented nature

The Peripheral Component Interconnect (PCI) bus is a transaction-oriented system that allows for the connection of peripherals to the motherboard. It is a standard interface for connecting peripherals to a PC, designed to meet the high data transfer rate requirements of modern graphics controllers, storage media, network interface cards, and other devices.

PCI transactions work in a master-slave relationship. The host CPU often acts as the bus master, but any PCI board can potentially claim the bus and become a master. To start a transaction, the master specifies the starting address (one clock cycle), then sends as much data as desired (many following clock cycles), and finally ends the transaction. PCI is a 32-bit bus, so it has 32 lines to transmit data. The address is not retransmitted but is auto-incremented at each data cycle. To specify a new address, the current transaction is stopped, and a new one is started.

The PCI bus has three "spaces" where data can be read and written: the memory space, the IO space, and the configuration space. The memory and IO spaces are "workhorse spaces" that are relocatable, meaning the addresses at which each board responds can be moved. The configuration space is used for plug-and-play and is fixed, always starting at address 0 for all PCI boards. Each PCI board must implement this configuration space to be compliant.

PCI boards are plug-and-play, allowing the host-CPU/host-OS to determine the identity, abilities, and requirements of each board. This includes determining the manufacturer, function (video, network, etc.), how much memory space is required, and how many interrupts are needed. The ability to relocate each board's memory space is an important part of the plug-and-play feature, as it allows the OS to "map" the address space of each board as needed.

PCI transactions are burst-oriented, meaning all data transfers are made in bursts. Data is sent in chunks of one, two, four, or eight bytes (depending on the devices' capabilities and the width of the data bus), with one chunk sent per bus cycle. This is the fastest method of transferring data and is an improvement over older PC bus designs, which used non-burst modes with alternating address and data cycles.

The PCI bus design does not limit the length of burst transfers, offering a significant advantage over the VL-Bus, which was limited to a maximum burst of four cycles due to the design of the 486 processor. Most real-world data transfers exceed 4 x 32 bits, so the overhead associated with each burst transfer can impact the overall transfer rate.

In summary, the transaction-oriented nature of PCI involves a master-slave relationship, the ability to specify starting addresses, the use of three distinct "spaces," plug-and-play functionality, and burst-oriented data transfers. These features combine to make PCI a flexible and efficient system for connecting peripherals to a PC.

shunauto

Plug-and-play capabilities

Peripheral Component Interconnect (PCI) is a local computer bus that connects hardware devices to the motherboard. It is part of the PCI Local Bus standard and supports the functions of a processor bus but in a standardized format that is independent of any given processor's native bus.

Plug-and-Play (PnP) is a feature of the Windows 95 operating system that allows for the automatic recognition and configuration of devices connected to a computer. PnP was a key factor in the widespread adoption of PCI, as it offered a simpler alternative to the ISA bus, which required manual configuration using jumpers or dip switches.

The PCI bus is inherently PnP, and this capability has been built into its specifications from the beginning. When a new device is connected to the PCI bus, the system BIOS initiates a PnP BIOS, which scans the bus for hardware. The new device responds by identifying itself, and the PnP BIOS checks the Extended System Configuration Data (ESCD) to see if the configuration data for the device is already present. If the device is new, the PnP BIOS assigns Interrupt Requests (IRQs), Direct Memory Access (DMA), memory address, and Input/Output (I/O) settings, saving the data in the ESCD.

The operating system then boots up and detects the new device, displaying a message to inform the user. If the necessary drivers are available, the device is ready for use. If not, a "Found New Hardware Wizard" will open, directing the user to install the required drivers.

PnP simplifies the process of upgrading a computer by making parts more interchangeable. It eliminates the need for manual configuration, reducing the potential for errors and making it easier to add or replace devices.

PnP operates by matching physical devices with their corresponding software (device drivers) and establishing channels of communication between them. It does this by allocating and setting "bus-resources," which include I/O addresses, memory regions, IRQs, and DMA channels. These resources are sometimes referred to as "1st order resources" or simply "resources."

The PCI bus has three address spaces: I/O, main memory (IO memory), and configuration. The old ISA bus, on the other hand, lacks a genuine "configuration" address space, making PnP implementation more complicated.

PnP also helps prevent address conflicts by allowing each card's slot number to be included as part of the address. This ensures that no two devices have the same address. Additionally, the introduction of the PCI bus, where devices can share the same interrupt, has reduced the potential for conflicts, as IRQs were previously a scarce resource.

While PnP greatly simplifies the process of adding and configuring devices, it is not infallible. Variations in software routines can sometimes lead to issues, and PnP may not always handle complex configurations or older hardware gracefully.

shunauto

PCI's spaces and their functions

The Peripheral Component Interconnect (PCI) bus defines three "spaces" where you can read and write: the memory space, the IO space, and the configuration space.

The memory and IO spaces are the workhorse spaces. They are relocatable, meaning that the addresses at which each board responds can be moved. The configuration space is used for plug-and-play, with each board implementing specific registers at very specific addresses so that the host CPU/OS can figure out the board's identity, abilities, and requirements. This space is fixed and always starts at address 0 for all PCI boards.

Each PCI board can potentially claim the bus and become a bus master. The host CPU/OS can determine the identity of each PCI board in a PCI bus (manufacturer and function, e.g. video, network, etc.), as well as their abilities/requirements (e.g. how much memory space they require, how many interrupts they need, etc.). This allows the OS to "map" the address space of each board as needed.

PCI devices don't connect directly to a host CPU but go through a "bridge" chip as CPUs typically don't "speak" PCI natively. This bridge also allows for the CPU to access all three PCI spaces, as most CPUs have only one memory space, while others have two (memory and IO).

Geneva Bus Payment Guide: Easy and Quick

You may want to see also

Frequently asked questions

A Peripheral Component Interconnect (PCI) bus is a standard interface that connects peripherals, such as sound cards and network cards, to the motherboard of a computer.

A PCI bus acts as a path or channel to connect components in a computer. It allows for interchangeable parts, as users can simply unplug and plug in new components as needed.

PCI buses offer high data transfer rates, supporting modern graphics controllers, storage media, and network interface cards. They also make parts more interchangeable and provide direct access to system memory for connected devices.

PCI has a fixed width of 32 bits and can handle only five devices at a time. Newer technologies, such as PCI Express (PCIe), offer higher speeds, greater bandwidth, and support for more devices.

Written by
Reviewed by
Share this post
Print
Did this article help you?

Leave a comment