Publicado el 14 de Enero del 2017
1.328 visualizaciones desde el 14 de Enero del 2017
1,0 MB
55 paginas
Creado hace 15a (12/05/2009)
Periféricos Interfaces y Buses
UNIVERSIDAD
DE CANTABRIA
I. Arquitectura de E/S
II. Programación de E/S
III. Interfaces de E/S de datos
IV. Dispositivos de E/S de datos
V. Buses
Buses de E/S (PCI, PC104, AGP). Sistemas de interconexión de
periféricos en entornos industriales (bus I2C, bus CAN). Modelo de
programación de dispositivos con los buses descritos.
VI. Controladores e interfaces de dispositivos de almacenamiento
VII. Sistemas de almacenamiento
GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS
8
© J. Javier Gutiérrez, Michael González
12/ma/09
1
Buses
UNIVERSIDAD
DE CANTABRIA
Bloque I
• El bus PCI
• Programación del bus PCI
• Programación de la tarjeta PCI-9111DG
GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS
© J. Javier Gutiérrez, Michael González
12/ma/09
2
Introducción al bus PCI
UNIVERSIDAD
DE CANTABRIA
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
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
12/ma/09
3
Introducción al bus PCI (cont.)
UNIVERSIDAD
DE CANTABRIA
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
12/ma/09
4
Introducción al bus PCI (cont.)
UNIVERSIDAD
DE CANTABRIA
• 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
12/ma/09
5
Estructura del bus PCI
UNIVERSIDAD
DE CANTABRIA
GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS
© J. Javier Gutiérrez, Michael González
12/ma/09
[1]
6
Estructura del bus PCI (cont.)
UNIVERSIDAD
DE CANTABRIA
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)
GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS
© J. Javier Gutiérrez, Michael González
12/ma/09
El ciclo del bus PCI
[1]
7
UNIVERSIDAD
DE CANTABRIA
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
12/ma/09
8
El ciclo del bus PCI (cont.)
UNIVERSIDAD
DE CANTABRIA
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
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
12/ma/09
9
El ciclo del bus PCI (cont.)
UNIVERSIDAD
DE CANTABRIA
• acceso de lectura I/O (0010)
- acceso de lectura a una unidad en el área de I/O
• 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
12/ma/09
10
El ciclo del bus PCI (cont.)
UNIVERSIDAD
DE CANTABRIA
• acceso de escritura de configuración (1011)
- como el anterior pero para escribir
• acceso de lectura de memoria de línea (1110)
-
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
12/ma/09
11
El ciclo del bus PCI (cont.)
UNIVERSIDAD
DE CANTABRIA
• ciclo de direccionamiento dual (1101)
- 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
12/ma/09
12
Arbitrio del bus
UNIVERSIDAD
DE CANTABRIA
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
GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS
© J. Javier Gutiérrez, Michael González
12/ma/09
13
Arbitrio del bus (cont.)
UNIVERSIDAD
DE CANTABRIA
GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS
© J. Javier Gutiérrez, Michael González
12/ma/09
[1]
14
DMA y master de bus
UNIVERSIDAD
DE CANTABRIA
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
usando el modo burst
GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS
© J. Javier Gutiérrez, Michael González
12/ma/09
15
Interrupciones
UNIVERSIDAD
DE CANTABRIA
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
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
12/ma/09
16
Modelo de programación
UNIVERSIDAD
DE CANTABRIA
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
12/ma/09
17
Modelo de programación (cont.)
UNIVERSIDAD
DE CANTABRIA
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
12/ma/09
18
Modelo de programación (cont.)
UNIVERSIDAD
DE CANTABRIA
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
Comentarios de: Periféricos Interfaces y Buses - V. Buses (0)
No hay comentarios