PCI-Express
PCI Express (Peripheral Component Interconnect Express), oficialmente abreviado como PCIe o PCI-e, es un estándar de bus de expansión de computadora en serie de alta velocidad, diseñado para reemplazar los estándares de bus PCI, PCI-X y AGP más antiguos. Es la interfaz de placa base común para computadoras personales & # 39; tarjetas gráficas, tarjetas de sonido, adaptadores host de unidades de disco duro, SSD, conexiones de hardware Wi-Fi y Ethernet. PCIe tiene numerosas mejoras con respecto a los estándares anteriores, incluido un mayor rendimiento máximo del bus del sistema, un menor número de pines de E/S y un espacio físico más pequeño, mejor escalado del rendimiento para los dispositivos del bus, un mecanismo de informe y detección de errores más detallado (Advanced Error Reporting, AER), y funcionalidad nativa de intercambio en caliente. Las revisiones más recientes del estándar PCIe brindan soporte de hardware para la virtualización de E/S.
La interfaz eléctrica PCI Express se mide por el número de carriles simultáneos. (Un carril es una sola línea de envío/recepción de datos. La analogía es una autopista con tráfico en ambas direcciones). La interfaz también se usa en una variedad de otros estándares, en particular, la interfaz de la tarjeta de expansión de la computadora portátil llamada ExpressCard. También se utiliza en las interfaces de almacenamiento de SATA Express, U.2 (SFF-8639) y M.2.
Las especificaciones de formato son mantenidas y desarrolladas por PCI-SIG (PCI Special Interest Group), un grupo de más de 900 empresas que también mantienen las especificaciones PCI convencionales.
Arquitectura
Conceptualmente, el bus PCI Express es un reemplazo serial de alta velocidad del antiguo bus PCI/PCI-X. Una de las diferencias clave entre el bus PCI Express y el PCI anterior es la topología del bus; PCI utiliza una arquitectura de bus paralelo compartida, en la que el host PCI y todos los dispositivos comparten un conjunto común de direcciones, datos y líneas de control. Por el contrario, PCI Express se basa en una topología punto a punto, con enlaces seriales separados que conectan cada dispositivo al complejo raíz (host). Debido a su topología de bus compartido, el acceso al bus PCI anterior se arbitra (en el caso de varios maestros) y se limita a un maestro a la vez, en una sola dirección. Además, el antiguo esquema de reloj PCI limita el reloj del bus al periférico más lento del bus (independientemente de los dispositivos involucrados en la transacción del bus). Por el contrario, un enlace de bus PCI Express admite comunicación full-duplex entre dos puntos finales, sin limitación inherente en el acceso simultáneo a través de múltiples puntos finales.
En términos de protocolo de bus, la comunicación PCI Express se encapsula en paquetes. El trabajo de empaquetar y desempaquetar datos y el tráfico de mensajes de estado es manejado por la capa de transacciones del puerto PCI Express (descrito más adelante). Las diferencias radicales en la señalización eléctrica y el protocolo de bus requieren el uso de un factor de forma mecánico y conectores de expansión diferentes (y, por lo tanto, nuevas placas base y nuevas placas adaptadoras); Las ranuras PCI y las ranuras PCI Express no son intercambiables. A nivel de software, PCI Express conserva la retrocompatibilidad con PCI; El software del sistema PCI heredado puede detectar y configurar dispositivos PCI Express más nuevos sin soporte explícito para el estándar PCI Express, aunque las nuevas características de PCI Express son inaccesibles.
El enlace PCI Express entre dos dispositivos puede variar en tamaño de uno a 16 carriles. En un enlace de varios carriles, los datos del paquete se distribuyen entre carriles y el rendimiento máximo de datos escala con el ancho total del enlace. El conteo de carriles se negocia automáticamente durante la inicialización del dispositivo y puede ser restringido por cualquier punto final. Por ejemplo, se puede insertar una tarjeta PCI Express (x1) de un solo carril en una ranura de varios carriles (x4, x8, etc.), y el ciclo de inicialización negocia automáticamente el mayor número de carriles compatibles entre sí. El enlace puede autoconfigurarse dinámicamente para usar menos carriles, proporcionando una tolerancia a fallas en caso de que haya carriles defectuosos o poco confiables. El estándar PCI Express define anchos de enlace de x1, x2, x4, x8 y x16. También se definieron enlaces PCIe 5.0, x12 y x32 inclusive, pero nunca se usaron. Esto permite que el bus PCI Express sirva tanto para aplicaciones sensibles al costo donde no se necesita un alto rendimiento como para aplicaciones críticas para el rendimiento como gráficos 3D, redes (10 Gigabit Ethernet o multipuerto Gigabit Ethernet) y almacenamiento empresarial (SAS o Fibre Channel). Las ranuras y los conectores solo se definen para un subconjunto de estos anchos, con anchos de enlace intermedios que utilizan el siguiente tamaño de ranura física más grande.
Como punto de referencia, un dispositivo PCI-X (133 MHz y 64 bits) y un dispositivo PCI Express 1.0 que usan cuatro carriles (x4) tienen aproximadamente la misma velocidad máxima de transferencia en una sola dirección de 1064 MB/s. El bus PCI Express tiene el potencial de funcionar mejor que el bus PCI-X en los casos en que varios dispositivos transfieren datos simultáneamente, o si la comunicación con el periférico PCI Express es bidireccional.
Interconectar
Los dispositivos PCI Express se comunican a través de una conexión lógica llamada interconexión o enlace. Un enlace es un canal de comunicación punto a punto entre dos puertos PCI Express que les permite a ambos enviar y recibir solicitudes PCI ordinarias (configuración, E/S o lectura/escritura de memoria) e interrupciones (INTx, MSI o MSI-X). A nivel físico, un enlace se compone de uno o más carriles. Los periféricos de baja velocidad (como una tarjeta Wi-Fi 802.11) usan un enlace de un solo carril (x1), mientras que un adaptador de gráficos generalmente usa un enlace de 16 carriles (x16) mucho más ancho y, por lo tanto, más rápido.
Carril
Un carril se compone de dos pares de señalización diferencial, con un par para recibir datos y el otro para transmitir. Así, cada carril está compuesto por cuatro hilos o trazas de señales. Conceptualmente, cada carril se utiliza como un flujo de bytes de dúplex completo, que transporta paquetes de datos en 'bytes' de ocho bits. formato simultáneamente en ambas direcciones entre los extremos de un enlace. Los enlaces PCI Express físicos pueden contener 1, 4, 8 o 16 carriles. Los conteos de carriles se escriben con una "x" prefijo (por ejemplo, "x8" representa una tarjeta o ranura de ocho carriles), siendo x16 el tamaño más grande de uso común. Los tamaños de los carriles también se conocen mediante los términos "ancho" o "por" por ejemplo, una ranura de ocho carriles podría denominarse "por 8" o como "8 carriles de ancho."
Para conocer los tamaños de tarjetas mecánicas, consulte a continuación.
Bus serie
Se eligió la arquitectura de bus serie enlazada en lugar del bus paralelo tradicional debido a las limitaciones inherentes de este último, incluida la operación semidúplex, el exceso de recuento de señales y el ancho de banda inherentemente más bajo debido al sesgo de tiempo. El sesgo de tiempo es el resultado de señales eléctricas separadas dentro de una interfaz paralela que viajan a través de conductores de diferentes longitudes, en capas de placa de circuito impreso (PCB) potencialmente diferentes y a velocidades de señal posiblemente diferentes. A pesar de que se transmiten simultáneamente como una sola palabra, las señales en una interfaz paralela tienen una duración de viaje diferente y llegan a sus destinos en momentos diferentes. Cuando el período del reloj de la interfaz es más corto que la mayor diferencia de tiempo entre llegadas de señales, ya no es posible recuperar la palabra transmitida. Dado que el sesgo de tiempo en un bus paralelo puede ascender a unos pocos nanosegundos, la limitación de ancho de banda resultante está en el rango de cientos de megahercios.
Una interfaz serial no muestra sesgo de tiempo porque solo hay una señal diferencial en cada dirección dentro de cada carril, y no hay una señal de reloj externa ya que la información de reloj está incrustada dentro de la propia señal serial. Como tal, las limitaciones típicas de ancho de banda en las señales en serie están en el rango de varios gigahercios. PCI Express es un ejemplo de la tendencia general hacia la sustitución de buses paralelos por interconexiones en serie; otros ejemplos incluyen Serial ATA (SATA), USB, Serial Attached SCSI (SAS), FireWire (IEEE 1394) y RapidIO. En video digital, los ejemplos de uso común son DVI, HDMI y DisplayPort.
El diseño serial multicanal aumenta la flexibilidad con su capacidad para asignar menos carriles para dispositivos más lentos.
Factores de forma
PCI Express (estándar)
Una tarjeta PCI Express cabe en una ranura de su tamaño físico o más grande (con x16 como la más grande utilizada), pero es posible que no quepa en una ranura PCI Express más pequeña; por ejemplo, es posible que una tarjeta x16 no quepa en una ranura x4 o x8. Algunas tragamonedas usan enchufes abiertos para permitir tarjetas físicamente más largas y negociar la mejor conexión eléctrica y lógica disponible.
La cantidad de carriles realmente conectados a una ranura también puede ser menor que la cantidad admitida por el tamaño físico de la ranura. Un ejemplo es una ranura x16 que se ejecuta en x4, que acepta cualquier tarjeta x1, x2, x4, x8 o x16, pero proporciona solo cuatro carriles. Su especificación puede leerse como "x16 (modo x4)", mientras que "mecánica @ eléctrica" La notación (por ejemplo, "x16 @ x4") también es común. La ventaja es que estas ranuras pueden acomodar una gama más amplia de tarjetas PCI Express sin necesidad de hardware de placa base para admitir la tasa de transferencia completa. Los tamaños mecánicos estándar son x1, x4, x8 y x16. Las tarjetas con un número diferente de carriles deben usar el siguiente tamaño mecánico más grande (es decir, una tarjeta x2 usa el tamaño x4 o una tarjeta x12 usa el tamaño x16).
Las tarjetas en sí están diseñadas y fabricadas en varios tamaños. Por ejemplo, las unidades de estado sólido (SSD) que vienen en forma de tarjetas PCI Express suelen utilizar HHHL (altura media, longitud media) y FHHL (altura completa, longitud media) para describir las dimensiones físicas de la tarjeta.
Tipo de tarjeta PCI | Dimensiones altura × longitud × ancho, máximo | |
---|---|---|
(mm) | (in) | |
Full-Length | 111.15 × 312.00 × 20.32 | 4.376 × 12.283 × 0.8 |
Media duración | 111.15 × 167.65 × 20.32 | 4.376 × 06.600 × 0.8 |
Low-Profile/Slim | 068.90 × 167.65 × 20.32 | 2.731 × 06.600 × 0.8 |
Factores de forma de tarjeta de video no estándar
Las tarjetas de video para juegos modernas (desde c. 2012) generalmente superan la altura y el grosor especificados en el estándar PCI Express, debido a la necesidad de ventiladores de enfriamiento más capaces y silenciosos, ya que las tarjetas de video para juegos a menudo emiten cientos de vatios de calor. Los gabinetes de computadora modernos a menudo son más anchos para acomodar estas tarjetas más altas, pero no siempre. Dado que las tarjetas de longitud completa (312 mm) son poco comunes, a veces las cajas modernas no se ajustan a ellas. El grosor de estas tarjetas también suele ocupar el espacio de 2 ranuras PCIe. De hecho, incluso la metodología de cómo medir las tarjetas varía entre proveedores, algunos incluyen el tamaño del soporte de metal en las dimensiones y otros no.
Por ejemplo, una tarjeta Sapphire de 2020 mide 135 mm de altura (sin incluir el soporte de metal), lo que supera la altura estándar PCIe en 28 mm. Otra tarjeta de XFX mide 55 mm de grosor (es decir, 2,7 ranuras PCI a 20,32 mm), ocupando 3 ranuras PCIe. La tarjeta de video Asus GeForce RTX 3080 10 GB STRIX GAMING OC es una tarjeta de dos ranuras que tiene unas dimensiones de 318,5 mm × 140,1 mm × 57,8 mm, superior a PCI Express' longitud máxima, altura y espesor respectivamente.
Distribución de pines
La siguiente tabla identifica los conductores a cada lado del conector de borde en una tarjeta PCI Express. El lado de soldadura de la placa de circuito impreso (PCB) es el lado A y el lado del componente es el lado B. Los pines PRSNT1# y PRSNT2# deben ser un poco más cortos que el resto, para garantizar que una tarjeta conectada en caliente esté completamente insertada. El pin WAKE# usa voltaje completo para activar la computadora, pero debe estar alto desde la energía de reserva para indicar que la tarjeta tiene capacidad de activación.
Pin | Lado B | Lado A | Descripción | Pin | Lado B | Lado A | Descripción | |
---|---|---|---|---|---|---|---|---|
01 | +12 V | PRSNT1# | Debe conectarse al pin PRSNT2# más lejano | 50 | HSOp(8) | Reservado | Lane 8 transmite datos, + y − | |
02 | +12 V | +12 V | Pistas de potencia principal | 51 | HSOn(8) | Terreno | ||
03 | +12 V | +12 V | 52 | Terreno | HSIp(8) | Lane 8 recibe datos, + y − | ||
04 | Terreno | Terreno | 53 | Terreno | HSIn(8) | |||
05 | SMCLK | TCK | Pistas de puerto SMBus y JTAG | 54 | HSOp(9) | Terreno | Lane 9 transmite datos, + y − | |
06 | SMDAT | TDI | 55 | HSOn(9) | Terreno | |||
07 | Terreno | TDO | 56 | Terreno | HSIp(9) | Lane 9 recibe datos, + y − | ||
08 | +3.3 V | TMS | 57 | Terreno | HSIn(9) | |||
09 | TRST# | +3.3 V | 58 | HSOp(10) | Terreno | Lane 10 transmite datos, + y − | ||
10 | +3.3 V aux | +3.3 V | Potencia Aux & Potencia de reserva | 59 | HSOn(10) | Terreno | ||
11 | WAKE | PERST# | Rehabilitación de enlace; reajuste fundamental | 60 | Terreno | HSIp(10) | Lane 10 recibe datos, + y − | |
Teclado | 61 | Terreno | HSIn(10) | |||||
12 | CLKREQ# | Terreno | Clock Solicitud de señalización | 62 | HSOp(11) | Terreno | Lane 11 transmite datos, + y − | |
13 | Terreno | REFCLK+ | Pareja diferencial de reloj de referencia | 63 | HSOn(11) | Terreno | ||
14 | HSOp(0) | REFCLK− | Lane 0 transmite datos, + y − | 64 | Terreno | HSIp(11) | Lane 11 recibe datos, + y − | |
15 | HSOn(0) | Terreno | 65 | Terreno | HSIn(11) | |||
16 | Terreno | HSIp(0) | Lane 0 recibe datos, + y − | 66 | HSOp(12) | Terreno | Lane 12 transmite datos, + y − | |
17 | PRSNT2# | HSIn(0) | 67 | HSOn(12) | Terreno | |||
18 | Terreno | Terreno | 68 | Terreno | HSIp(12) | Lane 12 recibe datos, + y − | ||
Las tarjetas PCI Express x1 terminan en el pin 18 | 69 | Terreno | HSIn(12) | |||||
19 | HSOp(1) | Reservado | Lane 1 transmite datos, + y − | 70 | HSOp(13) | Terreno | Lane 13 transmite datos, + y − | |
20 | HSOn(1) | Terreno | 71 | HSOn(13) | Terreno | |||
21 | Terreno | HSIp(1) | Lane 1 recibe datos, + y − | 72 | Terreno | HSIp(13) | Lane 13 recibe datos, + y − | |
22 | Terreno | HSIn(1) | 73 | Terreno | HSIn(13) | |||
23 | HSOp(2) | Terreno | Lane 2 transmite datos, + y − | 74 | HSOp(14) | Terreno | Lane 14 transmite datos, + y − | |
24 | HSOn(2) | Terreno | 75 | HSOn(14) | Terreno | |||
25 | Terreno | HSIp(2) | Lane 2 recibe datos, + y − | 76 | Terreno | HSIp(14) | Lane 14 recibe datos, + y − | |
26 | Terreno | HSIn(2) | 77 | Terreno | HSIn(14) | |||
27 | HSOp(3) | Terreno | Lane 3 transmite datos, + y − | 78 | HSOp(15) | Terreno | Lane 15 transmite datos, + y − | |
28 | HSOn(3) | Terreno | 79 | HSOn(15) | Terreno | |||
29 | Terreno | HSIp(3) | Lane 3 recibe datos, + y − | 80 | Terreno | HSIp(15) | Lane 15 recibe datos, + y − | |
30 | PWRBRK# | HSIn(3) | 81 | PRSNT2# | HSIn(15) | |||
31 | PRSNT2# | Terreno | 82 | Reservado | Terreno | |||
32 | Terreno | Reservado | ||||||
Las tarjetas PCI Express x4 terminan en el pin 32 | ||||||||
33 | HSOp(4) | Reservado | Lane 4 transmite datos, + y − | |||||
34 | HSOn(4) | Terreno | ||||||
35 | Terreno | HSIp(4) | Lane 4 recibe datos, + y − | |||||
36 | Terreno | HSIn(4) | ||||||
37 | HSOp(5) | Terreno | Lane 5 transmite datos, + y − | |||||
38 | HSOn(5) | Terreno | ||||||
39 | Terreno | HSIp(5) | Lane 5 recibe datos, + y − | |||||
40 | Terreno | HSIn(5) | ||||||
41 | HSOp(6) | Terreno | Lane 6 transmite datos, + y − | |||||
42 | HSOn(6) | Terreno | ||||||
43 | Terreno | HSIp(6) | Lane 6 recibe datos, + y − | Leyenda | ||||
44 | Terreno | HSIn(6) | Alfil de tierra | Referencia de cero voltios | ||||
45 | HSOp(7) | Terreno | Lane 7 transmite datos, + y − | Pista de potencia | Suponga poder a la tarjeta PCIe | |||
46 | HSOn(7) | Terreno | Pín de la tarjeta al anfitrión | Signal de la tarjeta a la placa madre | ||||
47 | Terreno | HSIp(7) | Lane 7 recibe datos, + y − | Pin host-to-card | Signal de la placa base a la tarjeta | |||
48 | PRSNT2# | HSIn(7) | Abastecimiento abierto | Puede ser tirado bajo o sentido por múltiples tarjetas | ||||
49 | Terreno | Terreno | Pin de sentido | Alimentado juntos en la tarjeta | ||||
PCI Expreso x8 tarjetas terminan en el pin 49 | Reservado | No se utiliza actualmente, no se conecta |
Poder
Todas las tarjetas PCI express pueden consumir hasta 3 A en +3.3 V (9,9 W). La cantidad de +12 V y la potencia total que pueden consumir depende del factor de forma y la función de la tarjeta:
- x1 tarjetas se limitan a 0,5 A a +12V (6 W) y 10 W combinados.
- x4 y tarjetas más anchas se limitan a 2.1 A a +12V (25 W) y 25 W combinados.
- Una tarjeta x1 de tamaño completo puede llegar a los límites de 25 W después de la inicialización y configuración de software como un dispositivo de alta potencia.
- Una tarjeta gráfica x16 de tamaño completo puede dibujar hasta 5.5 A a +12V (66 W) y 75 W combinados después de la inicialización y configuración de software como un dispositivo de alta potencia.
Los conectores opcionales agregan 75 W (6 pines) o 150 W (8 pines) de alimentación de +12 V para hasta 300 W total (2 × 75 W + 1 × 150 W).
- El pin Sense0 está conectado al suelo por el cable o la fuente de alimentación, o flota a bordo si el cable no está conectado.
- El pin Sense1 está conectado al suelo por el cable o la fuente de alimentación, o flota a bordo si el cable no está conectado.
Algunas tarjetas usan dos conectores de 8 pines, pero esto aún no se ha estandarizado a partir de 2018, por lo tanto, dichas tarjetas no deben llevar el logotipo oficial de PCI Express. Esta configuración permite un total de 375 W (1 × 75 W + 2 × 150 W) y es probable que PCI-SIG estandarice con el estándar PCI Express 4.0. El conector PCI Express de 8 pines podría confundirse con el conector EPS12V, que se utiliza principalmente para alimentar sistemas SMP y multinúcleo. Los conectores de alimentación son variantes de los conectores de la serie Mini-Fit Jr. de Molex.
Pins | Mujeres/receptáculo cable PS | Male/right-angle header on PCB |
---|---|---|
6-pin | 45559-0002 | 45558-0003 |
8-pin | 45587-0004 | 45586-0005, 45586-0006 |
Conector de potencia de 6 pines (75 W) | Conector de potencia de 8 pines (150 W) | ||||
---|---|---|---|---|---|
Pin | Descripción | Pin | Descripción | ||
1 | +12 V | 1 | +12 V | ||
2 | No conectado (generalmente +12 V también) | 2 | +12 V | ||
3 | +12 V | 3 | +12 V | ||
4 | Sense1 (8-pin conectado) | ||||
4 | Terreno | 5 | Terreno | ||
5 | Sense | 6 | Sense0 (6-pin o 8-pin conectados) | ||
6 | Terreno | 7 | Terreno | ||
8 | Terreno |
- ^ Cuando un conector de 6 pines se conecta a un receptáculo de 8 pines, la tarjeta es notificada por un desaparecido Sense1 que sólo puede utilizar hasta 75 W.
Minitarjeta PCI Express
Minitarjeta PCI Express (también conocida como Mini PCI Express, Mini PCIe, Mini PCI-E, mPCIe y PEM), basado en PCI Express, es un reemplazo del factor de forma Mini PCI. Está desarrollado por el PCI-SIG. El dispositivo host es compatible con la conectividad PCI Express y USB 2.0, y cada tarjeta puede usar cualquiera de los dos estándares. La mayoría de las computadoras portátiles construidas después de 2005 usan PCI Express para tarjetas de expansión; sin embargo, a partir de 2015, muchos proveedores se están moviendo hacia el uso del factor de forma M.2 más nuevo para este propósito.
Debido a las diferentes dimensiones, las minitarjetas PCI Express no son físicamente compatibles con las ranuras PCI Express estándar de tamaño completo; sin embargo, existen adaptadores pasivos que les permiten usarse en ranuras de tamaño completo.
Dimensiones físicas
Las dimensiones de las minitarjetas PCI Express son 30 mm × 50,95 mm (ancho × largo) para una minitarjeta completa. Hay un conector de borde de 52 pines, que consta de dos filas escalonadas en un paso de 0,8 mm. Cada fila tiene ocho contactos, un espacio equivalente a cuatro contactos, luego otros 18 contactos. Los tableros tienen un grosor de 1,0 mm, excluyendo los componentes. Una "Tarjeta Media Mini" (a veces abreviado como HMC) también se especifica, con aproximadamente la mitad de la longitud física de 26,8 mm.
Interfaz eléctrica
Los conectores de borde de la minitarjeta PCI Express proporcionan múltiples conexiones y buses:
- PCI Express x1 (con SMBus)
- USB 2.0
- Wires to diagnostics LEDs for wireless network (i.e., Wi-Fi) status on computer's chassis
- Tarjeta SIM para aplicaciones GSM y WCDMA (señales UIM en especificaciones).
- Futura extensión para otro carril PCIe
- Potencia 1.5 V y 3.3 V
Variante mini-SATA (mSATA)
A pesar de compartir el factor de forma Mini PCI Express, una ranura mSATA no es necesariamente compatible eléctricamente con Mini PCI Express. Por este motivo, solo algunos portátiles son compatibles con las unidades mSATA. La mayoría de los sistemas compatibles se basan en la arquitectura del procesador Sandy Bridge de Intel y utilizan la plataforma Huron River. Las notebooks como las series ThinkPad T, W y X de Lenovo, lanzadas entre marzo y abril de 2011, son compatibles con una tarjeta SSD mSATA en su ranura para tarjeta WWAN. ThinkPad Edge E220s/E420s y Lenovo IdeaPad Y460/Y560/Y570/Y580 también son compatibles con mSATA. Por el contrario, la serie L, entre otras, solo admite tarjetas M.2 que utilizan el estándar PCIe en la ranura WWAN.
Algunos portátiles (en particular, el Asus Eee PC, el Apple MacBook Air y el Dell mini9 y mini10) utilizan una variante de la minitarjeta PCI Express como SSD. Esta variante utiliza los pines reservados y varios no reservados para implementar el paso de la interfaz SATA e IDE, manteniendo intactos solo el USB, las líneas de tierra y, a veces, el bus central PCIe x1. Esto hace que el "miniPCIe" Las unidades flash y de estado sólido vendidas para netbooks son en gran medida incompatibles con las verdaderas implementaciones de PCI Express Mini.
Además, el SSD miniPCIe típico de Asus tiene 71 mm de largo, lo que hace que el modelo Dell de 51 mm a menudo se denomine (incorrectamente) como de media longitud. En 2009 se anunció una verdadera Mini PCIe SSD de 51 mm, con dos capas de PCB apiladas que permiten una mayor capacidad de almacenamiento. El diseño anunciado conserva la interfaz PCIe, haciéndola compatible con la ranura mini PCIe estándar. Aún no se ha desarrollado ningún producto funcional.
Intel tiene numerosas Desktop Boards con la ranura para minitarjetas PCIe x1 que, por lo general, no son compatibles con mSATA SSD. En el sitio de soporte de Intel se proporciona una lista de placas para equipos de escritorio que admiten de forma nativa mSATA en la ranura para minitarjetas PCIe x1 (generalmente multiplexadas con un puerto SATA).
PCI Express M.2
M.2 reemplaza el estándar mSATA y Mini PCIe. Las interfaces de bus de computadora proporcionadas a través del conector M.2 son PCI Express 3.0 (hasta cuatro carriles), Serial ATA 3.0 y USB 3.0 (un solo puerto lógico para cada uno de los dos últimos). Depende del fabricante del host o dispositivo M.2 elegir qué interfaces admitir, según el nivel deseado de soporte de host y el tipo de dispositivo.
Cableado externo PCI Express
Cableado externo PCI Express (también conocido como PCI Express externo, PCI Express con cable o ePCIe) PCI-SIG publicó las especificaciones en febrero de 2007.
Se han definido cables y conectores estándar para anchos de enlace x1, x4, x8 y x16, con una velocidad de transferencia de 250 MB/s por línea. El PCI-SIG también espera que la norma evolucione hasta llegar a los 500 MB/s, como en PCI Express 2.0. Un ejemplo de los usos de PCI Express con cable es una carcasa de metal que contiene una serie de ranuras PCIe y circuitos adaptadores de PCIe a ePCIe. Este dispositivo no sería posible si no fuera por la especificación ePCIe.
PCI Express OCuLink
OCuLink (que significa "enlace de cobre óptico", ya que Cu es el símbolo químico del cobre) es una extensión de "versión de cable de PCI Express", que actúa como un competidor de la versión 3 de la interfaz Thunderbolt. La versión 1.0 de OCuLink, lanzada en octubre de 2015, admite hasta PCIe 3.0 x4 carriles (8 GT/s (gigatransferencias por segundo), 3,9 GB/s) sobre cableado de cobre; una versión de fibra óptica puede aparecer en el futuro.
En su última versión, OCuLink-2, admite hasta 16 GB/s (PCIe 4.0 x8), mientras que el ancho de banda máximo de un cable Thunderbolt 4 de velocidad máxima es de 5 GB/s. Algunos proveedores pueden diseñar su producto de conector para que sea compatible con PCI Express 5.0 de próxima generación que se ejecuta a 32 GT/s por carril para pruebas futuras y minimizar los costos de desarrollo en los próximos años. Inicialmente, PCI-SIG esperaba llevar OCuLink a las computadoras portátiles para la conexión de poderosas cajas de GPU externas. Resultó ser un uso raro. En cambio, OCuLink se hizo popular para las interconexiones PCIe en servidores.
Formas derivadas
Muchos otros factores de forma usan, o pueden usar, PCIe. Éstas incluyen:
- Tarjeta de baja altura
- ExpressCard: Sucesor del factor de forma de PC Card (con PCIe x1 y USB 2.0; hot-pluggable)
- PCI ExpressModule: Un factor de forma modular altamente flexible definido para servidores y estaciones de trabajo
- Tarjeta XQD: Un estándar de tarjeta flash basado en PCI Express por la Asociación CompactFlash con PCIe x2
- Tarjeta CFexpress: Una tarjeta flash basada en PCI Express por la Asociación CompactFlash en tres factores de forma que soportan 1 a 4 carriles PCIe
- Tarjeta SD: El autobús SD Express, introducido en la versión 7.0 de la especificación SD utiliza un enlace PCIe x1
- XMC: Similar al factor de forma CMC/PMC (VITA 42.3)
- AdvancedTCA: Un complemento a CompactPCI para aplicaciones más grandes; soporta topologías de backplane basadas en serie
- AMC: Complemento a la especificación AdvancedTCA; admite procesadores y módulos I/O en tableros ATCA (x1, x2, x4 o x8 PCIe).
- CaracterísticaPak: Un pequeño formato de tarjeta de expansión (43mm × 65 mm) para aplicaciones incrustadas y de pequeña calidad, que implementa dos enlaces PCIe x1 en un conector de alta densidad junto con USB, I2C, y hasta 100 puntos de I/O
- Universal IO: Una variante de Super Micro Computer Inc diseñada para su uso en chasis montada en rack de bajo perfil. Tiene el soporte de conector revertido por lo que no puede caber en una toma PCI Express normal, pero es compatible con pines y se puede insertar si el soporte se elimina.
- M.2 (antes conocido como NGFF)
- M-PCIe trae PCIe 3.0 a dispositivos móviles (como tabletas y teléfonos inteligentes), sobre la capa física M-PHY.
- U.2 (anteriormente conocido como SFF-8639)
El conector de la ranura PCIe también puede transportar protocolos que no sean PCIe. Algunos conjuntos de chips Intel de la serie 9xx son compatibles con Serial Digital Video Out, una tecnología patentada que utiliza una ranura para transmitir señales de video desde los gráficos integrados de la CPU host en lugar de PCIe, mediante un complemento compatible.
El protocolo de capa de transacción PCIe también se puede usar en otras interconexiones, que no son eléctricamente PCIe:
- Thunderbolt: Un estándar de interconexión libre de regalías por Intel que combina protocolos DisplayPort y PCIe en un factor de forma compatible con Mini DisplayPort. Thunderbolt 3.0 también combina USB 3.1 y utiliza el factor de forma USB-C en lugar de Mini DisplayPort.
- USB4
Historia y revisiones
En las primeras etapas de desarrollo, PCIe se denominó inicialmente HSI (para Interconexión de alta velocidad) y se cambió de nombre a 3GIO (para E/S de tercera generación) antes de decidirse finalmente por su nombre PCI-SIG PCI Express. Un grupo de trabajo técnico llamado Arapaho Work Group (AWG) redactó el estándar. Para los borradores iniciales, el AWG estaba formado únicamente por ingenieros de Intel; posteriormente, el AWG se amplió para incluir socios de la industria.
Desde entonces, PCIe se ha sometido a varias revisiones grandes y pequeñas, mejorando el rendimiento y otras características.
Versión | Intro- ducado | Código de línea | Transferencia Tasa por carril | Mediador | |||||
---|---|---|---|---|---|---|---|---|---|
x1 | x2 | x4 | x8 | x16 | |||||
1.0 | 2003 | NRZ | 8b/10b | 2.5 GT/s | 0,250 GB/s | 0,50 GB/s | 1.000 GB/s | 2.000 GB/s | 4.000 GB/s |
2.0 | 2007 | 5.0 GT/s | 0,50 GB/s | 1.000 GB/s | 2.000 GB/s | 4.000 GB/s | 8.000 GB/s | ||
3.0 | 2010 | 128b/130b | 8.0 GT/s | 0.985 GB/s | 1.969 GB/s | 3.938 GB/s | 07.877 GB/s | 15.754 GB/s | |
4.0 | 2017 | 16.0 GT/s | 1.969 GB/s | 3.938 GB/s | 07.877 GB/s | 15.754 GB/s | 031.508 GB/s | ||
5.0 | 2019 | 32.0 GT/s | 3.938 GB/s | 07.877 GB/s | 15.754 GB/s | 31.508 GB/s | 63.015 GB/s | ||
6.0 | 2022 | PAM-4 FEC | 1b/1b FLIT | 64.0 GT/s 32.0 GBd | 7.563 GB/s | 15.125 GB/s | 30.250 GB/s | 60.500 GB/s | 121.000 GB/s |
7.0 | 2025 (planificado) | 128.0 GT/s 64,0 GBd | 15.125 GB/s | 30.250 GB/s | 60.500 GB/s | 121.000 GB/s | 242.000 GB/s |
- Notas
- ^ a b En cada dirección (cada carril es un canal dual simplex).
- ^ Tasa de transferencia se refiere a la tasa de bits en serie codificada; 2.5GT/s significa 2.5Tasa de datos en serie Gbit/s.
- ^ Mediador indica el ancho de banda no codificado (sin 8b/10b, 128b/130b, o 242B/256B encoding overhead). La tasa de transferencia PCIe 1.0 de 2.5GT/s por carril significa un 2,5Gbit/s velocidad de bits serie correspondiente a un rendimiento de 2.0Gbit/s o 250MB/s antes de la codificación 8b/10b.
PCI Express 1.0a
En 2003, PCI-SIG presentó PCIe 1.0a, con una velocidad de datos por carril de 250 MB/s y una velocidad de transferencia de 2,5 gigatransferencias por segundo (GT/s).
La tasa de transferencia se expresa en transferencias por segundo en lugar de bits por segundo porque la cantidad de transferencias incluye los bits de sobrecarga, que no brindan rendimiento adicional; PCIe 1.x utiliza un esquema de codificación 8b/10b, lo que genera una sobrecarga del 20 % (= 2/10) en el ancho de banda del canal sin procesar. Entonces, en la terminología de PCIe, la tasa de transferencia se refiere a la tasa de bits codificada: 2,5 GT/s son 2,5 Gbps en el enlace serial codificado. Esto corresponde a 2,0 Gbps de datos precodificados o 250 MB/s, lo que se denomina rendimiento en PCIe.
PCI Express 1.1
En 2005, PCI-SIG presentó PCIe 1.1. Esta especificación actualizada incluye aclaraciones y varias mejoras, pero es totalmente compatible con PCI Express 1.0a. No se realizaron cambios en la tasa de datos.
PCI Express 2.0
PCI-SIG anunció la disponibilidad de la especificación PCI Express Base 2.0 el 15 de enero de 2007. El estándar PCIe 2.0 duplica la tasa de transferencia en comparación con PCIe 1.0 a 5 GT/s y el rendimiento por carril aumenta de 250 MB/s a 500 MB/s. En consecuencia, un conector PCIe de 16 carriles (x16) puede admitir un rendimiento total de hasta 8 GB/s.
Las ranuras para placa base PCIe 2.0 son totalmente compatibles con las tarjetas PCIe v1.x. Las tarjetas PCIe 2.0 también son generalmente compatibles con las placas base PCIe 1.x, utilizando el ancho de banda disponible de PCI Express 1.1. En general, las tarjetas gráficas o placas base diseñadas para v2.0 funcionan, y las otras son v1.1 o v1.0a.
El PCI-SIG también dijo que PCIe 2.0 presenta mejoras en el protocolo de transferencia de datos punto a punto y su arquitectura de software.
El primer conjunto de chips compatible con PCIe 2.0 de Intel fue el X38 y las placas comenzaron a enviarse de varios proveedores (Abit, Asus, Gigabyte) a partir del 21 de octubre de 2007. AMD comenzó a admitir PCIe 2.0 con su serie de conjuntos de chips AMD 700 y nVidia. comenzó con el MCP72. Todos los conjuntos de chips anteriores de Intel, incluido el conjunto de chips Intel P35, eran compatibles con PCIe 1.1 o 1.0a.
Al igual que 1.x, PCIe 2.0 utiliza un esquema de codificación de 8b/10b, por lo que ofrece, por carril, un máximo efectivo de 4 Gbit/s. tasa de transferencia de su tasa de datos sin procesar de 5 GT/s.
PCI Express 2.1
PCI Express 2.1 (con su especificación fechada el 4 de marzo de 2009) es compatible con una gran proporción de los sistemas de administración, soporte y resolución de problemas planificados para una implementación completa en PCI Express 3.0. Sin embargo, la velocidad es la misma que PCI Express 2.0. El aumento de potencia de la ranura rompe la compatibilidad con versiones anteriores entre las tarjetas PCI Express 2.1 y algunas placas base más antiguas con 1.0/1.0a, pero la mayoría de las placas base con conectores PCI Express 1.1 cuentan con una actualización del BIOS por parte de sus fabricantes a través de utilidades para admitir la compatibilidad con versiones anteriores de las tarjetas. con PCIe 2.1.
PCI Express 3.0
La revisión 3.0 de la especificación básica de PCI Express 3.0 estuvo disponible en noviembre de 2010, después de varias demoras. En agosto de 2007, PCI-SIG anunció que PCI Express 3.0 llevaría una tasa de bits de 8 gigatransferencias por segundo (GT/s) y que sería compatible con versiones anteriores de las implementaciones de PCI Express existentes. En ese momento, también se anunció que la especificación final de PCI Express 3.0 se retrasaría hasta el segundo trimestre de 2010. Las nuevas características de la especificación PCI Express 3.0 incluían una serie de optimizaciones para mejorar la señalización y la integridad de los datos, incluida la ecualización del transmisor y el receptor, PLL mejoras, recuperación de datos de reloj y mejoras de canal de las topologías admitidas actualmente.
Después de un análisis técnico de seis meses sobre la viabilidad de escalar el ancho de banda de interconexión de PCI Express, el análisis de PCI-SIG descubrió que se podían fabricar 8 gigatransferencias por segundo en la tecnología de proceso de silicio convencional e implementarse con las tecnologías de bajo consumo existentes. costos de materiales e infraestructura, al mismo tiempo que mantiene la compatibilidad total (con un impacto insignificante) con la pila de protocolos PCI Express.
PCI Express 3.0 actualizó el esquema de codificación a 128b/130b desde la codificación anterior de 8b/10b, lo que redujo la sobrecarga de ancho de banda del 20 % de PCI Express 2.0 a aproximadamente el 1,54 % (= 2/130). La tasa de bits de 8 GT/s de PCI Express 3.0 ofrece efectivamente 985 MB/s por carril, casi duplicando el ancho de banda del carril en relación con PCI Express 2.0.
El 18 de noviembre de 2010, el Grupo de Interés Especial de PCI publicó oficialmente la especificación PCI Express 3.0 finalizada a sus miembros para construir dispositivos basados en esta nueva versión de PCI Express.
PCI Express 3.1
En septiembre de 2013, se anunció el lanzamiento de la especificación PCI Express 3.1 a fines de 2013 o principios de 2014, que consolida varias mejoras a la especificación PCI Express 3.0 publicada en tres áreas: administración de energía, rendimiento y funcionalidad. Fue lanzado en noviembre de 2014.
PCI Express 4.0
El 29 de noviembre de 2011, PCI-SIG anunció preliminarmente PCI Express 4.0, que proporciona una velocidad de bits de 16 GT/s que duplica el ancho de banda proporcionado por PCI Express 3.0 a 31,5 GB/s en cada dirección para una configuración de 16 carriles, mientras que manteniendo la compatibilidad con versiones anteriores y posteriores tanto en el soporte de software como en la interfaz mecánica utilizada. Las especificaciones PCI Express 4.0 también traen OCuLink-2, una alternativa a Thunderbolt. OCuLink versión 2 tiene hasta 16 GT/s (16 GB/s en total para x8 carriles), mientras que el ancho de banda máximo de un enlace Thunderbolt 3 es 5 GB/s.
En junio de 2016, Cadence, PLDA y Synopsys demostraron la capa física, el controlador, el conmutador y otros bloques IP de PCIe 4.0 en la conferencia anual de desarrolladores de PCI SIG.
Mellanox Technologies anunció el primer adaptador de red de 100 Gbit/s con PCIe 4.0 el 15 de junio de 2016, y los primeros 200 Adaptador de red Gbit/s con PCIe 4.0 el 10 de noviembre de 2016.
En agosto de 2016, Synopsys presentó una configuración de prueba con FPGA sincronizando un carril a velocidades PCIe 4.0 en el Intel Developer Forum. Su IP ha sido licenciada a varias firmas que planean presentar sus chips y productos a finales de 2016.
En el Simposio IEEE Hot Chips en agosto de 2016, IBM anunció la primera CPU compatible con PCIe 4.0, POWER9.
PCI-SIG anunció oficialmente el lanzamiento de la especificación PCI Express 4.0 final el 8 de junio de 2017. La especificación incluye mejoras en flexibilidad, escalabilidad y menor consumo de energía.
El 5 de diciembre de 2017, IBM anunció el primer sistema con ranuras PCIe 4.0, Power AC922.
NETINT Technologies presentó el primer SSD NVMe basado en PCIe 4.0 el 17 de julio de 2018, antes de la Flash Memory Summit 2018
AMD anunció el 9 de enero de 2019 que sus próximos procesadores basados en Zen 2 y el conjunto de chips X570 admitirían PCIe 4.0. AMD esperaba habilitar el soporte parcial para conjuntos de chips más antiguos, pero la inestabilidad causada por los rastros de la placa base que no se ajustaban a las especificaciones PCIe 4.0 lo hizo imposible.
Intel lanzó sus primeras CPU móviles compatibles con PCI Express 4.0 a mediados de 2020, como parte de la microarquitectura de Tiger Lake.
PCI Express 5.0
En junio de 2017, PCI-SIG anunció la especificación preliminar de PCI Express 5.0. Se esperaba que el ancho de banda aumentara a 32 GT/s, lo que generaría 63 GB/s en cada dirección en una configuración de 16 carriles. Se esperaba que la especificación preliminar se estandarizara en 2019. Inicialmente, también se consideró la viabilidad técnica de 25,0 GT/s.
El 7 de junio de 2017 en PCI-SIG DevCon, Synopsys registró la primera demostración de PCI Express 5.0 a 32 GT/s.
El 31 de mayo de 2018, PLDA anunció la disponibilidad de su controlador IP XpressRICH5 PCIe 5.0 basado en el borrador 0.7 de la especificación PCIe 5.0 el mismo día.
El 10 de diciembre de 2018, PCI SIG lanzó la versión 0.9 de la especificación PCIe 5.0 para sus miembros, y el 17 de enero de 2019, PCI SIG anunció que se había ratificado la versión 0.9, con el lanzamiento de la versión 1.0 previsto para el primer trimestre de 2019.
El 29 de mayo de 2019, PCI-SIG anunció oficialmente el lanzamiento de la especificación PCI Express 5.0 final.
El 20 de noviembre de 2019, Jiangsu Huacun presentó el primer controlador PCIe 5.0 HC9001 en un proceso de fabricación de 12 nm. La producción comenzó en 2020.
El 17 de agosto de 2020, IBM anunció el procesador Power10 con PCIe 5.0 y hasta 32 carriles por módulo de un solo chip (SCM) y hasta 64 carriles por módulo de doble chip (DCM).
El 9 de septiembre de 2021, IBM anunció el servidor Power E1080 Enterprise con fecha de disponibilidad prevista para el 17 de septiembre. Puede tener hasta 16 Power10 SCM con un máximo de 32 ranuras por sistema que pueden actuar como PCIe 5.0 x8 o PCIe 4.0 x16. Como alternativa, se pueden usar como ranuras PCIe 5.0 x16 para adaptadores convertidores CXP ópticos opcionales que se conectan a cajones de expansión PCIe externos.
El 27 de octubre de 2021, Intel anunció la familia de CPU Intel Core de 12.ª generación, los primeros procesadores de consumo x86-64 del mundo con conectividad PCIe 5.0 (hasta 16 carriles).
El 22 de marzo de 2022, Nvidia anunció la GPU Nvidia Hopper GH100, la primera GPU PCIe 5.0 del mundo.
El 23 de mayo de 2022, AMD anunció su arquitectura Zen 4 con soporte para hasta 24 carriles de conectividad PCIe 5.0 en plataformas de consumo y 128 carriles en plataformas de servidor.
PCI Express 6.0
El 18 de junio de 2019, PCI-SIG anunció el desarrollo de la especificación PCI Express 6.0. Se espera que el ancho de banda aumente a 64 GT/s, lo que genera 128 GB/s en cada dirección en una configuración de 16 carriles, con una fecha de lanzamiento objetivo de 2021. El nuevo estándar utiliza modulación de amplitud de pulso de 4 niveles (PAM-4) con una corrección de errores de reenvío (FEC) de baja latencia en lugar de modulación sin retorno a cero (NRZ). A diferencia de las versiones anteriores de PCI Express, la corrección de errores de reenvío se usa para aumentar la integridad de los datos y PAM-4 se usa como código de línea para que se transfieran dos bits por transferencia. Con una velocidad de transferencia de datos de 64 GT/s (tasa de bits sin procesar), es posible hasta 121 GB/s en cada dirección en configuración x16.
El 24 de febrero de 2020, se publicó la especificación PCI Express 6.0 revisión 0.5 (un "primer borrador" con todos los requisitos y aspectos arquitectónicos definidos).
El 5 de noviembre de 2020, se lanzó la especificación PCI Express 6.0 revisión 0.7 (un "borrador completo" con especificaciones eléctricas validadas a través de chips de prueba).
El 6 de octubre de 2021, se publicó la especificación PCI Express 6.0 revisión 0.9 (un "borrador final").
El 11 de enero de 2022, PCI-SIG anunció oficialmente el lanzamiento de la especificación PCI Express 6.0 final.
La codificación PAM-4 da como resultado una tasa de error de bits (BER) mucho mayor de 10−6 (frente a los 10−12 anteriores), por lo que en lugar de 128b /130b, se utiliza una corrección de errores de reenvío (FEC) entrelazada de 3 vías además de la verificación de redundancia cíclica (CRC). Un bloque fijo de unidad de control de flujo (FLIT) de 256 bytes transporta 242 bytes de datos, que incluyen paquetes de nivel de transacción (TLP) de tamaño variable y carga útil de capa de enlace de datos (DLLP); los 14 bytes restantes están reservados para CRC de 8 bytes y FEC de 6 bytes. El código Gray de 3 vías se usa en el modo PAM-4/FLIT para reducir la tasa de error; la interfaz no cambia a la codificación NRZ y 128/130b incluso cuando se vuelve a entrenar a velocidades de datos más bajas.
PCI Express 7.0
El 21 de junio de 2022, PCI-SIG anunció el desarrollo de la especificación PCI Express 7.0. Ofrecerá una tasa de bits sin procesar de 128 GT/s y hasta 242 GB/s por dirección en configuración x16, utilizando la misma señalización PAM4 que la versión 6.0. La duplicación de la tasa de datos se logrará ajustando los parámetros del canal para disminuir las pérdidas de señal y mejorar la eficiencia energética. Se espera que la especificación esté finalizada en 2025.
Extensiones y direcciones futuras
Algunos proveedores ofrecen productos PCIe a través de fibra, con cables ópticos activos (AOC) para conmutación PCIe a mayor distancia en cajones de expansión PCIe, o en casos específicos en los que es preferible un puente PCIe transparente que usar un estándar más convencional (como InfiniBand o Ethernet) que puede requerir software adicional para admitirlo.
Thunderbolt fue desarrollado conjuntamente por Intel y Apple como una interfaz de alta velocidad de uso general que combina un enlace PCIe lógico con DisplayPort y originalmente se pensó como una interfaz de fibra, pero debido a las dificultades iniciales en la creación de una interconexión de fibra amigable para el consumidor, casi todas las implementaciones son sistemas de cobre. Una excepción notable, el Sony VAIO Z VPC-Z2, usa un puerto USB no estándar con un componente óptico para conectarse a un adaptador de pantalla PCIe externo. Apple ha sido el principal impulsor de la adopción de Thunderbolt hasta 2011, aunque varios otros proveedores han anunciado nuevos productos y sistemas con Thunderbolt. Thunderbolt 3 forma la base del estándar USB4.
La especificaciónMobile PCIe (abreviada como M-PCIe) permite que la arquitectura PCI Express opere sobre la tecnología de capa física M-PHY de MIPI Alliance. Sobre la base de la adopción generalizada ya existente de M-PHY y su diseño de bajo consumo, Mobile PCIe permite que los dispositivos móviles utilicen PCI Express.
Proceso de borrador
Hay 5 versiones principales/puntos de control en una especificación PCI-SIG:
- Draft 0.3 (Concept): this release may have few details, but outlineds the general approach and goals.
- Draft 0.5 (First draft): this release has a complete set of architecture requirements and must fully address the goals set out in the 0.3 draft.
- Draft 0.7 (Complete draft): this release must have a complete set of functional requirements and methods defined, and no new function may be added to the specification after this release. Antes de la liberación de este proyecto, las especificaciones eléctricas deben haber sido validadas a través del silicio de prueba.
- Draft 0.9 (Final draft): this release allows PCI-SIG member companies to perform an internal review for intellectual property, and no functional changes are permitted after this draft.
- 1.0 (Libertad final): esta es la especificación final y definitiva, y cualquier cambio o mejora es a través de Errata documentación e Engineering Change Notices (ECNs) respectivamente.
Históricamente, los primeros en adoptar una nueva especificación PCIe generalmente comienzan a diseñar con el Borrador 0.5, ya que pueden construir con confianza la lógica de su aplicación en torno a la nueva definición de ancho de banda y, a menudo, incluso comenzar a desarrollar para cualquier característica nueva del protocolo. Sin embargo, en la etapa del Borrador 0.5, todavía existe una gran probabilidad de que se produzcan cambios en la implementación real de la capa del protocolo PCIe, por lo que los diseñadores responsables de desarrollar estos bloques internamente pueden dudar más en comenzar a trabajar que aquellos que utilizan la interfaz IP de fuentes externas.
Resumen del protocolo de hardware
El enlace PCIe se basa en pares unidireccionales dedicados de conexiones seriales (1 bit) punto a punto conocidas como carriles. Esto contrasta marcadamente con la conexión PCI anterior, que es un sistema basado en bus en el que todos los dispositivos comparten el mismo bus paralelo bidireccional de 32 o 64 bits.
PCI Express es un protocolo en capas, que consta de una capa de transacción, una capa de enlace de datos y una capa física. La capa de enlace de datos se subdivide para incluir una subcapa de control de acceso a medios (MAC). La capa física se subdivide en subcapas lógicas y eléctricas. La subcapa lógica física contiene una subcapa de codificación física (PCS). Los términos se toman prestados del modelo de protocolo de red IEEE 802.
Capa física
Lanes | Pins | Duración | ||
---|---|---|---|---|
Total | Variable | Total | Variable | |
0x1 | 2×18 = 036 | 2×07 = 014 | 25 mm | 07.65 mm |
0x4 | 2×32 = 064 | 2×21 = 042 | 39 mm | 21.65 mm |
0x8 | 2×49 = 098 | 2×38 = 076 | 56 mm | 38.65 mm |
x16 | 2×82 = 164 | 2×71 = 142 | 89 mm | 71.65 mm |
La especificación de capa física PCIe (PHY, PCIEPHY, PCI Express PHY o PCIe PHY) es dividido en dos subcapas, correspondientes a las especificaciones eléctricas y lógicas. La subcapa lógica a veces se divide en una subcapa MAC y un PCS, aunque esta división no forma parte formalmente de la especificación PCIe. Una especificación publicada por Intel, la interfaz PHY para PCI Express (PIPE), define la partición funcional MAC/PCS y la interfaz entre estas dos subcapas. La especificación PIPE también identifica la capa adjunto de medios físicos (PMA), que incluye el serializador/deserializador (SerDes) y otros circuitos analógicos; sin embargo, dado que las implementaciones de SerDes varían mucho entre los proveedores de ASIC, PIPE no especifica una interfaz entre PCS y PMA.
A nivel eléctrico, cada carril consta de dos pares diferenciales unidireccionales que funcionan a 2,5, 5, 8, 16 o 32 Gbit/s, según las capacidades negociadas. La transmisión y la recepción son pares diferenciales separados, para un total de cuatro cables de datos por carril.
Una conexión entre dos dispositivos PCIe cualesquiera se conoce como enlace y se construye a partir de una colección de uno o más carriles. Todos los dispositivos deben admitir como mínimo un enlace de un solo carril (x1). Los dispositivos pueden admitir opcionalmente enlaces más amplios compuestos de hasta 32 carriles. Esto permite una muy buena compatibilidad de dos maneras:
- Una tarjeta PCIe encaja físicamente (y funciona correctamente) en cualquier ranura que es al menos tan grande como es (por ejemplo, una tarjeta de tamaño x1 funciona en cualquier ranura de tamaño);
- Una ranura de un tamaño físico grande (por ejemplo, x16) puede ser cableado eléctricamente con menos carriles (por ejemplo, x1, x4, x8, o x12) mientras proporciona las conexiones de tierra requeridas por el tamaño de la ranura física más grande.
En ambos casos, PCIe negocia la mayor cantidad de carriles compatibles entre sí. Muchas tarjetas gráficas, placas base y versiones de BIOS están verificadas para admitir conectividad x1, x4, x8 y x16 en la misma conexión.
El ancho de un conector PCIe es de 8,8 mm, mientras que la altura es de 11,25 mm y la longitud es variable. La sección fija del conector tiene una longitud de 11,65 mm y contiene dos filas de 11 pines cada una (22 pines en total), mientras que la longitud de la otra sección es variable según el número de carriles. Los pines están espaciados a intervalos de 1 mm y el grosor de la tarjeta que entra en el conector es de 1,6 mm.
Transmisión de datos
PCIe envía todos los mensajes de control, incluidas las interrupciones, a través de los mismos enlaces que se utilizan para los datos. El protocolo serie nunca se puede bloquear, por lo que la latencia sigue siendo comparable a la PCI convencional, que tiene líneas de interrupción dedicadas. Cuando se tiene en cuenta el problema de compartir IRQ de interrupciones basadas en pines y el hecho de que las interrupciones señaladas por mensaje (MSI) pueden omitir un APIC de E/S y enviarse directamente a la CPU, el rendimiento de MSI termina siendo sustancialmente mejor.
Los datos transmitidos en enlaces de varios carriles se intercalan, lo que significa que cada byte sucesivo se envía por carriles sucesivos. La especificación PCIe se refiere a este intercalado como división de datos. Si bien requiere una complejidad de hardware significativa para sincronizar (o corregir) los datos fragmentados entrantes, la fragmentación puede reducir significativamente la latencia del byte nth en un enlace. Si bien los carriles no están estrechamente sincronizados, existe un límite para el sesgo de carril a carril de 20/8/6 ns para 2,5/5/8 GT/s para que los búferes de hardware puedan volver a alinear el datos rayados. Debido a los requisitos de relleno, es posible que la creación de bandas no reduzca necesariamente la latencia de los paquetes de datos pequeños en un enlace.
Al igual que con otros protocolos de transmisión en serie de alta velocidad de datos, el reloj está integrado en la señal. A nivel físico, PCI Express 2.0 utiliza el esquema de codificación 8b/10b (código de línea) para garantizar que las cadenas de dígitos idénticos consecutivos (ceros o unos) tengan una longitud limitada. Esta codificación se utilizó para evitar que el receptor perdiera la pista de dónde están los bordes de los bits. En este esquema de codificación, cada ocho bits de datos de carga útil (no codificados) se reemplazan con 10 bits (codificados) de datos de transmisión, lo que provoca una sobrecarga del 20% en el ancho de banda eléctrico. Para mejorar el ancho de banda disponible, la versión 3.0 de PCI Express utiliza codificación 128b/130b (1,54 % de sobrecarga). La codificación de línea limita la longitud de ejecución de cadenas de dígitos idénticos en flujos de datos y garantiza que el receptor permanezca sincronizado con el transmisor a través de la recuperación del reloj.
Se logra un equilibrio deseable (y, por lo tanto, una densidad espectral) de 0 y 1 bits en el flujo de datos mediante la operación XOR de un polinomio binario conocido como "codificador" al flujo de datos en una topología de retroalimentación. Debido a que se conoce el polinomio de codificación, los datos se pueden recuperar aplicando el XOR por segunda vez. Tanto los pasos de codificación como de decodificación se llevan a cabo en hardware.
Capa de enlace de datos
La capa de enlace de datos realiza tres servicios vitales para el enlace PCIe:
- secuencia los paquetes de capa de transacción (TLPs) que son generados por la capa de transacción,
- garantizar la entrega fiable de TLP entre dos puntos finales mediante un protocolo de reconocimiento (envío de NUEVO y NAK) que requiere explícitamente la repetición de TLPs no reconocidos/bad,
- inicializar y gestionar los créditos de control de flujo
En el lado de la transmisión, la capa de enlace de datos genera un número de secuencia creciente para cada TLP saliente. Sirve como una etiqueta de identificación única para cada TLP transmitido y se inserta en el encabezado del TLP saliente. También se adjunta un código de verificación de redundancia cíclica de 32 bits (conocido en este contexto como Link CRC o LCRC) al final de cada TLP saliente.
En el lado de recepción, el LCRC y el número de secuencia del TLP recibido se validan en la capa de enlace. Si la verificación de LCRC falla (lo que indica un error de datos) o el número de secuencia está fuera de rango (no consecutivo desde el último TLP válido recibido), entonces el TLP incorrecto, así como cualquier TLP recibido después del TLP incorrecto, se consideran inválidos y descartados. El receptor envía un mensaje de reconocimiento negativo (NAK) con el número de secuencia del TLP inválido, solicitando la retransmisión de todos los TLP antes de ese número de secuencia. Si el TLP recibido pasa la verificación LCRC y tiene el número de secuencia correcto, se trata como válido. El receptor del enlace incrementa el número de secuencia (que rastrea el último TLP bueno recibido) y reenvía el TLP válido a la capa de transacción del receptor. Se envía un mensaje ACK al transmisor remoto, lo que indica que el TLP se recibió con éxito (y, por extensión, todos los TLP con números de secuencia anteriores).
Si el transmisor recibe un mensaje NAK, o no se recibe ningún reconocimiento (NAK o ACK) hasta que expire un período de tiempo de espera, el transmisor debe retransmitir todos los TLP que carezcan de un reconocimiento positivo (ACK). Salvo un mal funcionamiento persistente del dispositivo o medio de transmisión, la capa de enlace presenta una conexión confiable a la capa de transacción, ya que el protocolo de transmisión garantiza la entrega de TLP a través de un medio no confiable.
Además de enviar y recibir TLP generados por la capa de transacción, la capa de enlace de datos también genera y consume paquetes de capa de enlace de datos (DLLP). Las señales ACK y NAK se comunican a través de DLLP, al igual que algunos mensajes de administración de energía e información de crédito de control de flujo (en nombre de la capa de transacción).
En la práctica, la cantidad de TLP no reconocidos en curso en el enlace está limitada por dos factores: el tamaño del búfer de reproducción del transmisor (que debe almacenar una copia de todos los TLP transmitidos hasta que el receptor remoto los ACK). ellos), y los créditos de control de flujo emitidos por el receptor a un transmisor. PCI Express requiere que todos los receptores emitan una cantidad mínima de créditos, para garantizar que un enlace permita enviar TLP de PCIConfig y TLP de mensajes.
Capa de transacciones
PCI Express implementa transacciones divididas (transacciones con solicitud y respuesta separadas por tiempo), lo que permite que el enlace transporte otro tráfico mientras el dispositivo de destino recopila datos para la respuesta.
PCI Express utiliza control de flujo basado en créditos. En este esquema, un dispositivo anuncia una cantidad inicial de crédito por cada búfer recibido en su capa de transacciones. El dispositivo en el extremo opuesto del enlace, al enviar transacciones a este dispositivo, cuenta la cantidad de créditos que cada TLP consume de su cuenta. El dispositivo de envío solo puede transmitir un TLP cuando al hacerlo no haga que su cuenta de crédito consumido exceda su límite de crédito. Cuando el dispositivo receptor termina de procesar el TLP desde su búfer, envía una señal de devolución de créditos al dispositivo emisor, lo que aumenta el límite de crédito en la cantidad restaurada. Los contadores de crédito son contadores modulares y la comparación de los créditos consumidos con el límite de crédito requiere aritmética modular. La ventaja de este esquema (en comparación con otros métodos como estados de espera o protocolos de transferencia basados en protocolos de enlace) es que la latencia de la devolución del crédito no afecta el rendimiento, siempre que no se alcance el límite de crédito. Esta suposición generalmente se cumple si cada dispositivo está diseñado con tamaños de búfer adecuados.
Con frecuencia, PCIe 1.x admite una velocidad de datos de 250 MB/s en cada dirección, por carril. Esta cifra es un cálculo de la tasa de señalización física (2,5 gigabaudios) dividida por la sobrecarga de codificación (10 bits por byte). Esto significa que una tarjeta PCIe de dieciséis carriles (x16) sería teóricamente capaz de 16x250 MB/s = 4 GB/s en cada dirección. Si bien esto es correcto en términos de bytes de datos, los cálculos más significativos se basan en la tasa de carga útil de datos utilizables, que depende del perfil del tráfico, que es una función de la aplicación de alto nivel (software) y los niveles de protocolo intermedio.
Al igual que otros sistemas de interconexión en serie de alta velocidad de datos, PCIe tiene una sobrecarga de protocolo y procesamiento debido a la robustez de transferencia adicional (CRC y reconocimientos). Las transferencias unidireccionales largas y continuas (como las típicas en los controladores de almacenamiento de alto rendimiento) pueden acercarse a >95 % de la velocidad de datos sin procesar (carril) de PCIe. Estas transferencias también se benefician al máximo del mayor número de carriles (x2, x4, etc.), pero en aplicaciones más típicas (como un controlador USB o Ethernet), el perfil de tráfico se caracteriza por paquetes de datos cortos con acuses de recibo forzados frecuentes. Este tipo de tráfico reduce la eficiencia del enlace, debido a la sobrecarga del análisis de paquetes y las interrupciones forzadas (ya sea en la interfaz de host del dispositivo o en la CPU de la PC). Al ser un protocolo para dispositivos conectados a la misma placa de circuito impreso, no requiere la misma tolerancia a los errores de transmisión que un protocolo para comunicación a distancias más largas, por lo que esta pérdida de eficiencia no es particular de PCIe.
Eficiencia del enlace
En cuanto a cualquier "red como" enlaces de comunicación, algunos de los "en bruto" el ancho de banda es consumido por la sobrecarga del protocolo:
Un carril PCIe 1.x, por ejemplo, ofrece una velocidad de datos además de la capa física de 250 MB/s (simple). Este no es el ancho de banda de la carga útil, sino el ancho de banda de la capa física: un carril PCIe debe transportar información adicional para una funcionalidad completa.
Layer | PHY | Data Link Layer | Transacción | Data Link Layer | PHY | ||
---|---|---|---|---|---|---|---|
Datos | Comienzo | Secuencia | Header | Carga | ECRC | LCRC | Final |
Tamaño (Bytes) | 1 | 2 | 12 ó 16 | 0 a 4096 | 4 (opcional) | 4 | 1 |
La sobrecarga de Gen2 es entonces de 20, 24 o 28 bytes por transacción.
Layer | G3 PHY | Data Link Layer | Transaction Layer | Data Link Layer | ||
---|---|---|---|---|---|---|
Datos | Comienzo | Secuencia | Header | Carga | ECRC | LCRC |
Tamaño (Bytes) | 4 | 2 | 12 ó 16 | 0 a 4096 | 4 (opcional) | 4 |
La sobrecarga de Gen3 es entonces de 22, 26 o 30 bytes por transacción.
El Eficiencia del paquete=CargaCarga+Overhead{displaystyle {text{Packet Efficiency}}={frac {text{Payload}{text{Payload}}}}+{text{Overhead}}}}} {f}}}} {f}}}}} {f}}}} {f}}}}}}}} para una carga útil de 128 byte es 86%, y 98% para una carga útil de 1024 byte. Para pequeños accesos como configuración de registro (4 bytes), la eficiencia baja hasta el 16%.
El tamaño máximo de carga útil (MPS) se establece en todos los dispositivos según el máximo más pequeño en cualquier dispositivo de la cadena. Si un dispositivo tiene un MPS de 128 bytes, todos los dispositivos del árbol deben establecer su MPS en 128 bytes. En este caso, el bus tendrá una eficiencia máxima del 86 % para escrituras.
Aplicaciones
PCI Express funciona en aplicaciones industriales, de servidor y de consumo, como una interconexión a nivel de placa base (para vincular periféricos montados en la placa base), una interconexión pasiva de backplane y como una interfaz de tarjeta de expansión para placas complementarias.
En prácticamente todas las PC modernas (a partir de 2012), desde computadoras portátiles y de escritorio para consumidores hasta servidores de datos empresariales, el bus PCIe sirve como la principal interconexión a nivel de placa base, conectando el procesador del sistema host con ambos periféricos integrados (montados en superficie circuitos integrados) y periféricos complementarios (tarjetas de expansión). En la mayoría de estos sistemas, el bus PCIe coexiste con uno o más buses PCI heredados, para compatibilidad con la gran cantidad de periféricos PCI heredados.
A partir de 2013, PCI Express reemplazó a AGP como la interfaz predeterminada para las tarjetas gráficas en los nuevos sistemas. Casi todos los modelos de tarjetas gráficas lanzados desde 2010 por AMD (ATI) y Nvidia usan PCI Express. Nvidia utiliza la transferencia de datos de gran ancho de banda de PCIe para su tecnología Scalable Link Interface (SLI), que permite que varias tarjetas gráficas del mismo conjunto de chips y número de modelo se ejecuten en tándem, lo que permite un mayor rendimiento. AMD también ha desarrollado un sistema multi-GPU basado en PCIe llamado CrossFire. AMD, Nvidia e Intel han lanzado conjuntos de chips de placa base que admiten hasta cuatro ranuras PCIe x16, lo que permite configuraciones de tarjetas de tres y cuatro GPU.
GPU externas
Teóricamente, PCIe externo podría darle a una computadora portátil la potencia gráfica de una computadora de escritorio, conectando una computadora portátil con cualquier tarjeta de video de computadora de escritorio PCIe (encerrada en su propia carcasa externa, con fuente de alimentación y refrigeración); esto es posible con una interfaz ExpressCard o Thunderbolt. Una interfaz ExpressCard proporciona velocidades de bits de 5 Gbit/s (rendimiento de 0,5 GB/s), mientras que una interfaz Thunderbolt proporciona velocidades de bits de hasta 40 Gbit/s (rendimiento de 5 GB/s).
En 2006, Nvidia desarrolló la familia de GPU PCIe externa Quadro Plex que se puede utilizar para aplicaciones gráficas avanzadas para el mercado profesional. Estas tarjetas de video requieren una ranura PCI Express x8 o x16 para la tarjeta del lado del host, que se conecta al Plex a través de un VHDCI con ocho carriles PCIe.
En 2008, AMD anunció la tecnología ATI XGP, basada en un sistema de cableado propietario que es compatible con transmisiones de señal PCIe x8. Este conector está disponible en los portátiles Fujitsu Amilo y Acer Ferrari One. Fujitsu lanzó su gabinete AMILO GraphicBooster para XGP poco después. Alrededor de 2010, Acer lanzó la base de gráficos Dynavivid para XGP.
En 2010, se introdujeron concentradores de tarjetas externas que se pueden conectar a una computadora portátil o de escritorio a través de una ranura PCI ExpressCard. Estos concentradores pueden aceptar tarjetas gráficas de tamaño completo. Los ejemplos incluyen MSI GUS, ViDock de Village Instrument, la estación Asus XG, el adaptador Bplus PE4H V3.2, así como otros dispositivos de bricolaje improvisados. Sin embargo, estas soluciones están limitadas por el tamaño (a menudo solo x1) y la versión de la ranura PCIe disponible en una computadora portátil.
La interfaz Intel Thunderbolt ha proporcionado una nueva opción para conectarse con una tarjeta PCIe externamente. Magma ha lanzado ExpressBox 3T, que puede contener hasta tres tarjetas PCIe (dos en x8 y una en x4). MSI también lanzó Thunderbolt GUS II, un chasis PCIe dedicado para tarjetas de video. Otros productos como el Echo Express de Sonnet y el mLink de mLogic son chasis Thunderbolt PCIe en un factor de forma más pequeño.
En 2017, se introdujeron más concentradores de tarjetas externas con todas las funciones, como el Razer Core, que tiene una interfaz PCIe x16 de longitud completa.
Dispositivos de almacenamiento
El protocolo PCI Express se puede utilizar como interfaz de datos para dispositivos de memoria flash, como tarjetas de memoria y unidades de estado sólido (SSD).
La tarjeta XQD es un formato de tarjeta de memoria que utiliza PCI Express, desarrollado por CompactFlash Association, con velocidades de transferencia de hasta 1 GB/s.
Muchos SSD de clase empresarial y alto rendimiento están diseñados como tarjetas controladoras PCI Express RAID. Antes de que se estandarizara NVMe, muchas de estas tarjetas utilizaban interfaces propietarias y controladores personalizados para comunicarse con el sistema operativo; tenían tasas de transferencia mucho más altas (más de 1 GB/s) e IOPS (más de un millón de operaciones de E/S por segundo) en comparación con las unidades Serial ATA o SAS. Por ejemplo, en 2011, OCZ y Marvell desarrollaron conjuntamente un controlador de unidad de estado sólido PCI Express nativo para una ranura PCI Express 3.0 x16 con una capacidad máxima de 12 TB y un rendimiento de transferencias secuenciales de hasta 7,2 GB/s y hasta 2,52 millones de IOPS. en transferencias aleatorias.
SATA Express era una interfaz para conectar unidades SSD a través de puertos compatibles con SATA, que proporcionaba opcionalmente varios carriles PCI Express como una conexión PCI Express pura al dispositivo de almacenamiento conectado. M.2 es una especificación para tarjetas de expansión de computadora montadas internamente y conectores asociados, que también utiliza múltiples carriles PCI Express.
Los dispositivos de almacenamiento PCI Express pueden implementar tanto la interfaz lógica AHCI para la compatibilidad con versiones anteriores como la interfaz lógica NVM Express para operaciones de E/S mucho más rápidas gracias al paralelismo interno que ofrecen dichos dispositivos. Los SSD de clase empresarial también pueden implementar SCSI sobre PCI Express.
Interconexión de clúster
Ciertas aplicaciones de centros de datos (como grandes clústeres de computadoras) requieren el uso de interconexiones de fibra óptica debido a las limitaciones de distancia inherentes al cableado de cobre. Por lo general, un estándar orientado a la red, como Ethernet o Fibre Channel, es suficiente para estas aplicaciones, pero en algunos casos, la sobrecarga introducida por los protocolos enrutables no es deseable y se necesita una interconexión de nivel inferior, como InfiniBand, RapidIO o NUMAlink. En principio, los estándares de bus local como PCIe e HyperTransport se pueden usar para este propósito, pero a partir de 2015, las soluciones solo están disponibles a través de proveedores de nicho como Dolphin ICS y TTTech Auto.
Protocolos en competencia
Otros estándares de comunicaciones basados en arquitecturas seriales de alto ancho de banda incluyen InfiniBand, RapidIO, HyperTransport, Intel QuickPath Interconnect y la interfaz de procesador de la industria móvil (MIPI). Las diferencias se basan en las compensaciones entre flexibilidad y extensibilidad frente a latencia y sobrecarga. Por ejemplo, hacer que el sistema se pueda conectar en caliente, como con Infiniband pero no con PCI Express, requiere que el software realice un seguimiento de los cambios en la topología de la red.
Otro ejemplo es acortar los paquetes para disminuir la latencia (como se requiere si un bus debe operar como una interfaz de memoria). Los paquetes más pequeños significan que los encabezados de los paquetes consumen un mayor porcentaje del paquete, lo que reduce el ancho de banda efectivo. Ejemplos de protocolos de bus diseñados para este propósito son RapidIO e HyperTransport.
PCI Express se encuentra en algún lugar en el medio, diseñado como una interconexión del sistema (bus local) en lugar de una interconexión de dispositivos o un protocolo de red enrutado. Además, su objetivo de diseño de transparencia del software restringe el protocolo y aumenta un poco su latencia.
Los retrasos en las implementaciones de PCIe 4.0 llevaron al consorcio Gen-Z, el esfuerzo de CCIX y una interfaz abierta de procesador acelerador coherente (CAPI) a anunciarse a fines de 2016.
El 11 de marzo de 2019, Intel presentó Compute Express Link (CXL), un nuevo bus de interconexión basado en la infraestructura de capa física PCI Express 5.0. Los promotores iniciales de la especificación CXL incluyeron: Alibaba, Cisco, Dell EMC, Facebook, Google, HPE, Huawei, Intel y Microsoft.
Lista de integradores
La lista de integradores de PCI-SIG incluye productos fabricados por empresas miembros de PCI-SIG que han superado las pruebas de cumplimiento. La lista incluye conmutadores, puentes, NIC, SSD, etc.
Contenido relacionado
Valmet
Tinta
PHP-Nuke