Red de conocimiento informático - Aprendizaje de programación - ¿Qué significa el bus PCI? ¿Qué significa el bus?

¿Qué significa el bus PCI? ¿Qué significa el bus?

Categoría: Computadora/Red gt; Hardware

Análisis:

Bus PCI

Introducción a las especificaciones técnicas de PCI

Desde el establecimiento de la especificación en 1992 hasta la actualidad, el bus PCI se ha convertido en un bus estándar para computadoras. La estructura del sistema estándar compuesta por bus PCI se muestra en la Figura 1.

El bus PCI reemplazó al anterior bus ISA. Por supuesto, el bus AGP utilizado específicamente para tarjetas gráficas apareció detrás del bus PCI y el bus PCI Express actual, pero PCI se puede utilizar desde 1992 hasta la actualidad, lo que demuestra que tiene muchas ventajas, como plug and play (Plug y Play), interrumpir** *Disfruta esperando. Aquí damos una introducción detallada al bus PCI.

En términos de ancho de datos, el bus PCI se divide en 32 bits y 64 bits; en términos de velocidad del bus, existen dos tipos: 33 MHz y 66 MHz. Actualmente es popular el de 32 bits a 33 MHz, y los sistemas de 64 bits se están volviendo populares. El sistema PCI mejorado, PCI-X, puede alcanzar hasta 64 bits a 133 MHz, por lo que se puede obtener una velocidad de transferencia de datos de más de 1 GB/s. Si no hay instrucciones especiales, la siguiente discusión toma 32 bits a 33 MHz como ejemplo.

1. Conceptos básicos

A diferencia del bus ISA, el bus de direcciones y el bus de datos del bus PCI están multiplexados por división de tiempo. La ventaja de esto es que, por un lado, puede ahorrar el número de pines del conector y, por otro lado, facilita la transmisión de datos en ráfaga. Al realizar la transmisión de datos, un dispositivo PCI actúa como iniciador (maestro, Iniciador o Maestro) y otro dispositivo PCI actúa como destino (dispositivo esclavo, Destino o Esclavo). Toda la generación y control de tiempos en el bus son iniciados por el Maestro. El bus PCI solo se puede utilizar para que un par de dispositivos completen la transmisión al mismo tiempo, lo que requiere que una institución de arbitraje (árbitro) decida quién tiene derecho a tomar el control del bus.

Los pines del sistema PCI de 32 bits se dividen en las siguientes categorías según sus funciones:

Control del sistema: CLK, reloj PCI, válido en el flanco ascendente

RST, Restablecer señal

Control de transmisión: FRAME#, marca el inicio y el final de la transmisión

IRDY#, una señal de que Master puede transmitir datos

DEVSEL#, cuando el Esclavo se encuentra Establezca una respuesta baja al direccionarse

TRDY#, una señal de que el Esclavo puede transferir datos

STOP#, una señal de que el Esclavo deja de transmitir datos activamente

p>

IDSEL, próximamente Señal utilizada para seleccionar la placa cuando se inicia el sistema plug-and-play

Bus de dirección y datos: AD[31::0], tiempo compartido de dirección/datos bus de multiplexación

C/ BE#[3::0], señal de habilitación de comando/byte

PAR, señal de verificación de paridad

Número de arbitraje: REQ#, utilizado por el Maestro para solicitar derechos de uso del bus Señal

GNT#, el árbitro permite al Maestro obtener derechos de uso del autobús

Informe de error: PERR#, error de paridad de datos

SERR#, error de verificación de paridad del sistema

Cuando el bus PCI funciona, el iniciador (Maestro) establece REQ# primero, y cuando obtiene permiso del árbitro (Árbitro) (GNT#), establece FRAME# low Y coloque la dirección del esclavo en el bus AD, y C/BE# coloca una señal de comando para indicar el siguiente tipo de transmisión. Todos los dispositivos en el bus PCI deben decodificar esta dirección y el dispositivo seleccionado debe configurar DEVSEL# para declarar que está seleccionado.

Luego, cuando tanto IRDY# como TRDY# están configurados en nivel bajo, se pueden transmitir datos. Antes de que finalice la transmisión de datos maestros, establezca FRAME# alto para indicar que solo queda por transmitir el último conjunto de datos y suelte IRDY# después de transmitir los datos para liberar el control del bus.

Aquí podemos ver que la transmisión del bus PCI es muy eficiente. Después de emitir un conjunto de direcciones, los datos se pueden enviar continuamente en condiciones ideales, con una velocidad máxima de 132 MB/s. De hecho, el actualmente popular chip Northbridge de 33M@32bit generalmente puede alcanzar una transmisión continua de 100MB/s.

2. Implementación de plug-and-play

El llamado plug-and-play significa que cuando la placa se inserta en el sistema, el sistema asignará automáticamente los recursos. requerido por la placa, como dirección base, número de interrupción, etc., y encuentra automáticamente el controlador correspondiente. A diferencia de la antigua placa ISA, que requiere una configuración manual compleja.

La implementación real es mucho más complicada de lo que parece. En la placa PCI, hay un conjunto de registros llamado "Espacio de configuración", que se utiliza para almacenar la dirección base y la dirección de memoria, así como interrupciones y otra información.

Tome la dirección de memoria como ejemplo. Cuando se enciende, la placa lee un valor fijo de la ROM y lo coloca en el registro. La ubicación de memoria correspondiente contiene información como la cantidad de bytes de memoria que deben asignarse. El sistema operativo debe asignar memoria en función de esta información y completar el registro correspondiente con la dirección inicial de la memoria una vez que la asignación sea exitosa. Esto elimina la necesidad de configurar manualmente interruptores para asignar memoria o direcciones base. La asignación de interrupciones es similar.

3. Implementación de intercambio de interrupciones

Una limitación importante de la tarjeta ISA es que las interrupciones son exclusivas, y sabemos que la computadora solo tiene 16 números de interrupción y el sistema los usa. todos Unos pocos, por lo que habrá problemas cuando haya varias tarjetas ISA que necesiten usar interrupciones.

El servicio de interrupción del bus PCI consta de dos partes: hardware y software.

En términos de hardware, se utiliza el método de activación por nivel: la señal de interrupción se conecta a nivel alto con una resistencia en el lado del sistema, y ​​el colector del transistor se usa para bajar la señal en la placa donde se va a generar la interrupción. De esta manera, no importa cuántas placas generen interrupciones, la señal de interrupción será baja y solo cuando se hayan procesado las interrupciones de todas las placas, la señal de interrupción volverá a un nivel alto;

En términos de software, se utiliza el método de la cadena de interrupciones: suponiendo que cuando se inicia el sistema, se descubre que la placa A usa la interrupción 7, y el área de memoria correspondiente a la interrupción 7 apuntará a la interrupción. entrada del programa de servicio ISR_A correspondiente a la tarjeta A Luego, el sistema descubre que la placa B también usa la interrupción 7. En este momento, apunta el área de memoria correspondiente a la interrupción 7 a ISR_B y apunta el final de ISR_B a ISR_A. Por analogía se formará una cadena de interrupciones. Cuando ocurre una interrupción, el sistema salta a la memoria correspondiente a la interrupción 7, que es ISR_B. ISR_B necesita verificar si se trata de una interrupción de la tarjeta B. Si lo es, manéjelo y libere el circuito desplegable en la placa; de lo contrario, llame a ISR_A; Esto completa el intercambio interrumpido.

A través de la discusión anterior, no es difícil ver que el bus PCI tiene grandes ventajas. La situación del mercado en los últimos años también lo ha confirmado.