Publicado el 14 de Enero del 2017
655 visualizaciones desde el 14 de Enero del 2017
536,7 KB
37 paginas
Creado hace 10a (05/05/2014)
Plataformas de Tiempo Real:
Dispositivos y Drivers
Tema 6. Buses
• El bus PCI
• Programación del bus PCI
• Programación de la tarjeta PCI-9111DG
UNIVERSIDAD
DE CANTABRIA
GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS
8
© J. Javier Gutiérrez, Michael González
5/ma/14
1
Introducción al bus PCI
El bus PCI (Peripheral Component Interconnect) es uno de los más
habituales en las arquitecturas PC, así como en Alpha, PowerPC,
SPARC64 e IA-64
Aparece como solución alternativa a buses como ISA o EISA
• para periféricos más rápidos
• pero también como solución conceptual a dispositivos
UNIVERSIDAD
DE CANTABRIA
autodetectables y de fácil configuración
No se utiliza para tarjetas gráficas que disponen de otro tipo de
buses como por ejemplo AGP o PCI-Express
GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS
© J. Javier Gutiérrez, Michael González
5/ma/14
2
UNIVERSIDAD
DE CANTABRIA
Introducción al bus PCI (cont.)
Principales características:
• desacoplo entre el procesador y
el bus de expansión mediante un
puente (bridge)
• bus estándar de 32 bits con una
transferencia máxima de 133
MB/s
• extensión a 64 bits con
transferencias máximas de 266
MB/s
• soporte para sistemas
multiprocesadores
GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS
© J. Javier Gutiérrez, Michael González
5/ma/14
3
UNIVERSIDAD
DE CANTABRIA
Introducción al bus PCI (cont.)
• transferencias a ráfagas (burst) de cualquier longitud
• soporta alimentaciones de 5 V. y 3.3 V.
• capacidad de tener varios masters
• frecuencias de operación de hasta 33 MHz
• multiplexado de las líneas de datos y direcciones
• configuración mediante software y registros
• especificación independiente del procesador
Todos los dispositivos se conectan a un bus único y el bridge de
conexión con la RAM es transparente para el usuario
GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS
© J. Javier Gutiérrez, Michael González
5/ma/14
4
Estructura del bus PCI
UNIVERSIDAD
DE CANTABRIA
GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS
© J. Javier Gutiérrez, Michael González
5/ma/14
[1]
5
Estructura del bus PCI (cont.)
En la estructura normal de un PC, el bridge de conexión con el bus
local de la CPU se conoce como Northbridge (bus primario)
El bridge que conecta el bus PCI con el resto de las unidades se
conoce como Southbridge (bus secundario)
UNIVERSIDAD
DE CANTABRIA
GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS
© J. Javier Gutiérrez, Michael González
5/ma/14
[1]
6
UNIVERSIDAD
DE CANTABRIA
El ciclo del bus PCI
Los ciclos de bus requieren dos o tres ciclos de reloj por cada
transferencia simple
• envío de la dirección en el primero
• escritura de datos en el segundo
• lectura de datos en el tercero
Así, el ritmo de transferencia máximo para 32 bits a 33 MHz es de
66 MB/s en escritura y 44 MB/s en lectura
Sin embargo, en el modo a ráfagas la dirección sólo se transfiere
una vez por lo que el máximo ritmo de transferencia se duplica
• los accesos a direcciones consecutivas los transforma en un
único acceso a ráfagas
GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS
© J. Javier Gutiérrez, Michael González
5/ma/14
7
El ciclo del bus PCI (cont.)
El PCI reconoce 12 tipos de acceso al bus (diferenciados por 4
líneas de control):
• secuencia INTA (0000)
- direccionamiento del controlador de interrupciones
- no hay dirección explícita
- en la fase de datos se transfiere el vector de interrupción por las
UNIVERSIDAD
DE CANTABRIA
líneas de datos (ADx)
• ciclo especial (0001)
transferencia de datos a todas las unidades PCI conectadas
-
- p.e., sobre el estado del procesador
-
las líneas de datos menos significativas (AD15-AD0) codifican la
información: 0000h (procesador apagado), 0001h (procesador
parado), 0002h (código x86), 0003h-ffffh (reservados)
- el código específico x86 va en las líneas de datos AD31-AD16
GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS
© J. Javier Gutiérrez, Michael González
5/ma/14
8
El ciclo del bus PCI (cont.)
• acceso de lectura I/O (0010)
- acceso de lectura a una unidad en el área de I/O
UNIVERSIDAD
DE CANTABRIA
• acceso de escritura I/O (0011)
- acceso de escritura a una unidad en el área de I/O
• acceso de lectura de memoria (0110)
- acceso de lectura a una unidad en el área de memoria
• acceso de escritura de memoria (0111)
- acceso de escritura a una unidad en el área de memoria
• acceso de lectura de configuración (1010)
- acceso al área de configuración
-
las líneas AD7-AD2 en direccionamiento indican la palabra de 32
bits a leer del área de configuración
- AD10-AD8 seleccionan la unidad de un dispositivo multifunción
GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS
© J. Javier Gutiérrez, Michael González
5/ma/14
9
El ciclo del bus PCI (cont.)
• acceso de escritura de configuración (1011)
- como el anterior pero para escribir
• acceso de lectura de memoria de línea (1110)
UNIVERSIDAD
DE CANTABRIA
-
indica al dispositivo que se quieren leer más de dos bloques de 32
bits
- el acceso consta de una fase de direccionamiento y varias de datos
• acceso de escritura de memoria con invalidación (1111)
- es como el caso anterior pero para escritura
-
indica que se quiere escribir al menos una línea completa de caché
• acceso de lectura múltiple de memoria (1100)
- es una extensión de la lectura de memoria de línea, e indica al
dispositivo que se quiere leer más de una línea de caché, o el
bloque de datos correspondiente si no hay caché
GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS
© J. Javier Gutiérrez, Michael González
5/ma/14
10
El ciclo del bus PCI (cont.)
• ciclo de direccionamiento dual (1101)
UNIVERSIDAD
DE CANTABRIA
- se usa para transferir una dirección de 64 bits a una unidad PCI de
32 bits
- en el primer ciclo se transfieren los 32 bits menos significativos y
en el segundo los 32 más significativos
- permite accesos de dispositivos o CPUs con menos de 64 bits de
datos o direcciones
En un ciclo de lectura se introduce un ciclo dummy en el cambio
de la dirección del bus ADx entre las direcciones y los datos (en
un ciclo de escritura no es necesario)
GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS
© J. Javier Gutiérrez, Michael González
5/ma/14
11
Arbitrio del bus
El arbitrio del bus se realiza en base a dos señales
• REQ: petición de uso del bus por el dispositivo
• GNT: concesión de uso del bus
Una vez concedido el uso del bus se puede comenzar la
transferencia dentro de los siguientes 16 ciclos de reloj
UNIVERSIDAD
DE CANTABRIA
GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS
© J. Javier Gutiérrez, Michael González
5/ma/14
12
Arbitrio del bus (cont.)
UNIVERSIDAD
DE CANTABRIA
GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS
© J. Javier Gutiérrez, Michael González
5/ma/14
[1]
13
DMA y master de bus
Los dispositivos PCI tiene la posibilidad de convertirse en masters
del bus por lo que no necesitan ningún controlador de DMA
• las transferencias directas a memoria las hace un master de bus
UNIVERSIDAD
DE CANTABRIA
usando el modo burst
GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS
© J. Javier Gutiérrez, Michael González
5/ma/14
14
Interrupciones
Normalmente cada unidad conectada al PCI dispone de una línea
de interrupción INTA
• las unidades multifunción pueden tener además otras tres
UNIVERSIDAD
DE CANTABRIA
líneas de interrupción INTB, INTC e INTD
• las interrupciones son disparadas por nivel (activo bajo)
La petición de interrupciones se canaliza a través de las mismas
líneas INTx del bus ISA, con varias posibilidades de mapeado de
interrupciones PCI a las del procesador
Las unidades PCI suelen tener asociada la misma IRQ en el PC, lo
que nos lleva a la situación de compartir interrupciones
• Linux ofrece esta posibilidad
GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS
© J. Javier Gutiérrez, Michael González
5/ma/14
15
UNIVERSIDAD
DE CANTABRIA
Modelo de programación
Cada periférico PCI viene caracterizador por:
• un número de bus (hasta 256 buses)
• un número de dispositivo (hasta 32 dispositivos)
• un número de función (hasta 8 funciones)
Además, puede haber varios dominios PCI, cada uno con hasta
256 buses
Cuando hay varios buses se suelen conectar mediante un bridge,
dando una estructura en árbol
• suele haber también un puente a otros buses (ISA)
GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS
© J. Javier Gutiérrez, Michael González
5/ma/14
16
UNIVERSIDAD
DE CANTABRIA
Modelo de programación (cont.)
Los periféricos PCI atienden a tres tipos de direccionamiento
• posiciones de memoria (32 o 64 bits)
• puertos de entrada/salida (32 bits)
• registros de configuración
Los dos primeros están compartidos por todos los periféricos de
un mismo bus
• se accede con las funciones de memoria y entrada/salida
• se configuran para que cada periférico use direcciones distintas
GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS
© J. Javier Gutiérrez, Michael González
5/ma/14
17
Modelo de programación (cont.)
Los registros de configuración usan direccionamiento
"geográfico", dirigido específicamente al periférico
• se accede con funciones especiales
• 256 bytes para cada función y aquí se puede leer la
configuración de las direcciones de memoria e I/O
UNIVERSIDAD
DE CANTABRIA
Al arrancar, el dispositivo no tiene configurada la memoria ni los
puertos de I/O
• sólo responde a transacciones de configuración
El firmware del sistema configura cada periférico poniéndolo en
direcciones de memoria e I/O distintas
• ahora ya responde a accesos de memoria o I/O
GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS
© J. Javier Gutiérrez, Michael González
5/ma/14
18
Modelo de programación (cont.)
La especificación PCI soporta direccionamientos de 32 y 64 bits al
espacio de I/O
• esto sólo se aplica al acceso a los dispositivos
• en una arqu
Comentarios de: PTR-TEMA6.fm (0)
No hay comentarios