pci.pdf · • la señal m66en indica a un dispositivo que el bus esta operando a una velocidad de...
TRANSCRIPT
DESCRIPCIÓN BUS PCI(Tema 1: Conexión Externa de
Procesadores. Buses)
ARQUITECTURA DE COMPUTADORES
http:// www.atc.us.es
Índice
1. Características bus PCI2. Señales PCI3. Transferencias PCI4. Comandos PCI5. Configuración PCI6. Condiciones de terminación por parte del target.7. Arbitración y Bus Mastering8. Extensión de 64 bits9. PCI a 66 Mhz
Características bus PCI (1)
• Bus alto ancho de banda: desde 132 MB/s hasta 528MB/s
• Versión a 33 Mhz y a 66 Mhz• Versión de 32 y 64 bits de ancho de bus.• Versión a 5V y a 3.3V• Transferencias en ráfaga para mejorar eficiencia.• Limitada la latencia máxima de los dispositivos.• Posibilidad bus mastering (arbitración bus).
Características bus PCI (2)
• Datos y direcciones multiplexados para ahorrar líneas.• Independiente de la plataforma.
– Extensiones ROM para varias plataformas: posibilidad de tener tarjetas PCI con memoria ROM
• 32 dispositivos por bus, 8 funciones por dispositivo.• Posibilidad de tener diferentes puentes interconectados
buses PCI independientes– Ej.: Bus PCI 5v, 33Mhz, 32 bits y bus PCI 3.3v, 66Mhz y 64bits
• Posibilidad bus mastering (arbitración de buses).– Arbitración oculta para mejor aprovechamiento del bus
• Soporte dispositivos plug and play (espacio configuración programable por el S.O.)
• Señal de paridad para garantizar integridad de los datos.
Sistema general con bus PCI
Señales bus PCI (1)
Señales bus PCI (2)
• Principales grupos de señales:– Datos y dirección– Control de la interfaz (FRAME#, DEVSEL#, etc)– Señalización de errores (PERR# y SERR#)– Arbitración (REQ# y GNT#)– Sistema (CLK y RST#)– Extensiones 64 bits (AD[63..32], C/BE[7..4],
REQ64#, ACK64#)– Interrupción (INTA#..INTD#)
Señales bus PCI (3):Líneas de datos y dirección
• Datos y dirección:– Bus multiplexado direcciones/datos: AD[31..0]
• Líneas dirección AD[31..0] dirección de los accesos a memoria o a entrada/salida.
• Líneas dedicadas a datos AD[31..0]: durante fase de datos
– Bus comando/byte enable: C/BE[3..0]#• Comando durante dirección• Habilitación de bytes durante datos
– Línea de control de paridad• Paridad par de AD[31..0] y C/BE[3..0]#
Señales bus PCI (4):Señales de control del interfaz
• FRAME#: Inicio y final de transacciones• IRDY#: Dispositivo Initiator Ready• TRDY#: Dispositivo Target Ready• DEVSEL#: Dispositivo seleccionado (señal
del Target)• STOP#: Interrupción de la transacción
(señal del Target)• IDSEL: Selección para configuración
Señales bus PCI (5):Otros grupos señales
• Señalización de errores:– PERR#: Indica errores de paridad– SERR#: Indica errores graves del sistema
• Arbitración (sólo dispositivos master)– REQ#: Solicitud del bus– GNT#: Concesión del bus
• Sistema:– CLK: Reloj del sistema– RST#: Señal de reset (inicialización)
• Interrupción (hasta 4 interrupciones Hw por parte del dispositivo PCI): – INTA# .. INTD#
Transferencias PCI (1)
• Transferencia entre dos dispositivos:– Master: Iniciador de la transferencia– Target: Objeto de la transferencia– Existe ciclo especial “broadcast” para enviar mensajes a
todos los dispositivos del bus
• Bus multiplexado: una transferencia se divide en dos fases:– Fase de dirección: se indica la dirección– Fase de datos: se transfieren los datos
Transferencias PCI (2): Fase de Direccionamiento
• Fase de dirección:– Tiene lugar al comenzar la transacción.– Se indica la dirección desde la que leer o hacia
la que escribir los datos.– Mediante el comando se indica:
• Lectura o escritura• Memoria o Entrada/Salida• Accesos avanzados (read line, read multiple, etc.)• Comandos adicionales (interrupción, ciclos
especiales)
Transferencias PCI (3): Fase de transferencia de datos
– Fase de Datos:• Puede haber una o más fases de datos en una
transferencia donde se transmiten datos Transferencia en ráfaga
• Una fase de datos solo se completa cuando tanto master como target están preparados
• Alguna fase de datos puede estar “vacia”, aunque no es frecuente (todos byte enable C/BE desactivados)
• Una transacción puede terminarse sin haberse terminado ninguna fase de datos: (retry, abort, etc)
Transferencias PCI (4): Ejemplo transferencia
Transferencias PCI (5): Ejemplo de transferencia
•Dependiendo de la velocidad del Target, DEVSEL# puede activarse en diferentes momentos.
Comandos bus PCI (1)
Comandos PCI (2):Comandos de memoria
• Comandos lectura de memoria. Dependiendo del dispositivo PCI puede que los siguientes comandos de lectura sean equivalentes:– Memory Read (“0110”): menos de una línea de caché.– Memory Read Line (“1110”): una línea de caché.– Memory Read Multiple(“1100”): más de una línea de caché.
• Comandos de escritura de memoria– Memory Write (“0111”): escritura normal.– Memory Write and Invalidate (“1111”): escribe e invalida el
bloque de la memoria caché si está allí el dato.
Comandos PCI (3):Comandos de configuración
• Comandos acceso a entrada/salida:– I/O Read (“0010”)– I/O Write (“0011”)
• Comandos de acceso de configuración– Configuration Read (“1010”)– Configuration Write (“1011”)1. Acceden a un tercer espacio de direccionamiento
independiente: Plug and play.2. No se contemplan ráfagas.3. Las líneas de dirección indican desplazamiento del
registro a leer. Selección de tarjetas mediante IDSEL.
Comandos PCI (4):Otros comandos
• Comando reconocimiento de interrupción (permite transmitir vector de interrupciones)– Indicar CPU una interrupción– El controlador de interrupciones se conecta a la CPU
mediante bus PCI• Comando “special cycle”
– Mensajes broadcast al resto de las tarjetas.– Ninguna debe activar DEVSEL#
• Comando “dual address cycle” (siguiente cronograma)– Permite direccionamiento de 64 bits en un bus de 32 bits– La fase de dirección dura dos ciclos de reloj
Comandos PCI (5):Comando Dual-Address
Configuración PCI (1)
• Plug and play gracias a espacio de direcciones de configuración.
• Todo dispositivo PCI debe implementar los registros de configuración.
• Permite ubicar de forma automática los diferentes dispositivos dentro de los espacios de direcciones de E/S y memoria.
• POST (arranque de la BIOS) enumera los dispositivos y los configura (S.O. no Plug andplay).
Ciclo de configuración PCI (2): Transferencia
• El puente se encargará de activar el IDSEL correspondiente al dispositivo elegido
Configuración PCI (3): Registros configuración
Registros de configuración (4)
• El espacio de configuración consta de 64 registros de 32 bits (256 bytes).
• Los primeros 16 registros tienen una función predefinida.
• Los demás registros son dependientes de cada dispositivo.
• Cualquier dispositivo PCI debe implementar este espacio de direccionamiento (MEM o E/S son opcionales).
Descripción registros de configuración (5)
• Vendor ID: Identifica el fabricante del dispositivo. PCISIG gestiona que cada fabricante tenga un código único que lo identifique del resto. El valor 0FFFFh esta prohibido.
• Device ID: Identifica un dispositivo particular para un fabricante determinado. Cada fabricante gestiona sus identificadores de dispositivos.
• Revision ID: Identifica una revisión determinada de un dispositivo. Puede interpretarse como una extensión del Device ID.
Descripción registros de configuración (6)
• Registro BAR0 a BAR5: Indican 6 diferentes ubicaciones del dispositivo dentro del espacio de direcciones o de entrada/salida.
• Expansión ROM Base Address: Define la dirección base y tamaño para la ampliación ROM del dispositivo si la implementase.
Condiciones terminación del target (1)
• “Disconect with data”:– Indica al master que la fase de datos actual será la ultima de
la transacción en curso• “Disconnect without data”:
– Termina la transacción actual sin completar la fase de datos actual
• “Retry”: – Similar a “disconnect without data” pero en la primera fase
de datos• “Target Abort”:
– Indica una condición de terminación grave desactivando TRDY# y DEVSEL# al activar STOP#
Condiciones terminación del target (2)
• “Disconnect with data”:
Condiciones terminación del target (3)
• “Disconnect without data” o “Retry” (volver a continuar transferencia o pedir de nuevo transferencia):
Condiciones terminación del target (4)
• “Target Abort”: Indica error grave y no debe reintentarse (Desactiva DEVSEL#)
Arbitración y Bus Mastering(1)
• Señales adicionales de arbitración– REQ#: Solicitud del bus– GNT#: Concesión del bus
• La arbitración del bus PCI se produce de forma separada para cada acceso. Un dispositivo master no puede mantener el bus entre dos accesos.
• Para realizar múltiples transferencias deberá solicitarse el busindependientemente para cada una de ellas y obtener la concesión por parte del arbitrador.
• La arbitración es “oculta” por lo que no reduce ancho de banda del bus. Se produce de forma independiente a la transferencia de datos.
PCI Master (2): Ejemplo arbitración
Extensiones 64 bits
• Bus datos y direcciones: AD[63..32]• Comando/byte enable: C/BE[7..4]#
– Comando sólo si C/BE[3..0]# = “1101” (dual address cicle).
– Byte enable parte alta del bus en fase de datos• Paridad parte alta del bus: PAR64
– Paridad par líneas AD[63..32] y C/BE[7..4]#• Petición de transacción de 64 bits: REQ64#• Concesión transacción 64 bits: ACK64#
PCI 66 Mhz• La señal M66EN indica a un dispositivo que el bus
esta operando a una velocidad de 66 o 33 Mhz. • Las tarjetas de expansión y los segmentos de bus que
no pueden operar a 66Mhz deben conectar esta señal a GND.
• Un segmento de bus PCI que opere a 66Mhz debe conectar esta línea a Vcc por medio de una resistencia de pull-up.
• Si se conecta una tarjeta a 33Mhz que no puede funcionar a 66Mhz, como tiene esta señal conectada a tierra, forzaría al circuito generador a funcionar a 33Mhz.