PCI.pdf · • La señal M66EN indica a un dispositivo que el bus esta operando a una velocidad de...

34
DESCRIPCIÓN BUS PCI (Tema 1: Conexión Externa de Procesadores. Buses) ARQUITECTURA DE COMPUTADORES http:// www.atc.us.es

Transcript of PCI.pdf · • La señal M66EN indica a un dispositivo que el bus esta operando a una velocidad de...

Page 1: PCI.pdf · • 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

DESCRIPCIÓN BUS PCI(Tema 1: Conexión Externa de

Procesadores. Buses)

ARQUITECTURA DE COMPUTADORES

http:// www.atc.us.es

Page 2: PCI.pdf · • 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

Í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

Page 3: PCI.pdf · • 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

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).

Page 4: PCI.pdf · • 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

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.

Page 5: PCI.pdf · • 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

Sistema general con bus PCI

Page 6: PCI.pdf · • 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

Señales bus PCI (1)

Page 7: PCI.pdf · • 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

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#)

Page 8: PCI.pdf · • 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

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]#

Page 9: PCI.pdf · • 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

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

Page 10: PCI.pdf · • 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

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#

Page 11: PCI.pdf · • 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

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

Page 12: PCI.pdf · • 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

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)

Page 13: PCI.pdf · • 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

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)

Page 14: PCI.pdf · • 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

Transferencias PCI (4): Ejemplo transferencia

Page 15: PCI.pdf · • 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

Transferencias PCI (5): Ejemplo de transferencia

•Dependiendo de la velocidad del Target, DEVSEL# puede activarse en diferentes momentos.

Page 16: PCI.pdf · • 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

Comandos bus PCI (1)

Page 17: PCI.pdf · • 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

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.

Page 18: PCI.pdf · • 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

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.

Page 19: PCI.pdf · • 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

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

Page 20: PCI.pdf · • 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

Comandos PCI (5):Comando Dual-Address

Page 21: PCI.pdf · • 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

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).

Page 22: PCI.pdf · • 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

Ciclo de configuración PCI (2): Transferencia

• El puente se encargará de activar el IDSEL correspondiente al dispositivo elegido

Page 23: PCI.pdf · • 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

Configuración PCI (3): Registros configuración

Page 24: PCI.pdf · • 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

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).

Page 25: PCI.pdf · • 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

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.

Page 26: PCI.pdf · • 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

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.

Page 27: PCI.pdf · • 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

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#

Page 28: PCI.pdf · • 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

Condiciones terminación del target (2)

• “Disconnect with data”:

Page 29: PCI.pdf · • 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

Condiciones terminación del target (3)

• “Disconnect without data” o “Retry” (volver a continuar transferencia o pedir de nuevo transferencia):

Page 30: PCI.pdf · • 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

Condiciones terminación del target (4)

• “Target Abort”: Indica error grave y no debe reintentarse (Desactiva DEVSEL#)

Page 31: PCI.pdf · • 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

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.

Page 32: PCI.pdf · • 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

PCI Master (2): Ejemplo arbitración

Page 33: PCI.pdf · • 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

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#

Page 34: PCI.pdf · • 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

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.