pci ii. estructura del bus el bus puede tener varios segmentos. un puente une dos segmentos cada...

Post on 07-Feb-2015

5 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

PCI II

Estructura del bus

• El bus puede tener varios segmentos.• Un “puente” une dos segmentos• Cada segmento recibe un número de

identificación dentro del sistema de buses.• La asignación de números de identificación se

realiza en profundidad• Cada “puente” conoce qué segmentos hay

“debajo” de ella.• La interfaz host-pci es la raíz del árbol y sabe

cuántos segmentos hay en el sistema.

Estructura

Host-PCI

Procesador

Maestros Esclavos PCI -PCI

EsclavosMaestros

Bus local

Bus PCI

Bus PCI

Estructura del bus

• Dispositivos:– Un dispositivo puede hospedar hasta 8

funciones. – La función es la que proporciona la

funcionalidad de entrada/salida– Los dispositivos en un segmento están

ordenados por una línea IDSEL#• Dos configuraciones:

– conectadas al “puente”. – Conectadas a las líneas de dirección del bus.

Estructura del bus

• Funciones– Cada función tiene un conjunto de registros

de configuración.• VendorID: indica si la función está implementada

en el dispositivo o no.– Si sólo hay una función en un dispositivo debe ser la 0. – Si hay más de 1, las otras pueden ser cualquiera (no

necesariamente en orden secuencial)

Estructura

• Registros de configuración.– 64 registros de 32 bits

• Tipo de función, requerimientos de configuración, datos del fabricante.

• Genéricos-Obligatorios Device Independent(16)– DeviceID, VendorID, ClassCode, Status, Command...

• Dependientes de la función-Obligatorios Device Header(48)– Dispositivos Estándares

– PCI-PCI Bridges

– CardBus Bridges

• Dependientes de la función-Específicos Device Dependent(192)

Registros de configuración.

Registros de Configuración

DEVICE INDEPENDENT

DEVICE HEADER

Device Independent

• VendorID: Identificador del fabricante (PCI SIG)• DeviceID: Identificador del dispositivo (Fabricante)• Command: Capacidades del dispositivo para generar y

responder a los accesos.• ¿Es maestro o esclavo?• Responde a transacciones de I/0, Mem, Ciclos especiales, Escritura

e Invalidación? Etc

• Status: graba los eventos que ocurren en el bus. (monitorización)

• RevisionID: Revisión del dispositivo (fabricante)• ClassCode: Describe la función genérica del dispositivo.

Class Code Reg

Device Dependent

• I/O and Memory Base Registers– Es el medio por el que un dispositivo solicita

direcciones I/O y memoria del espacio de direcciones del procesador.

– Permite que el espacio asignado sea dinámicamente mapeado en el espacio de direcciones del procesador.

Registro base de I/0

Escribir en el registro 0ffffffffh

Leer el registro. El primer bit ha de estar a 1

A partir del bit 2, buscar el primer bit a 1, sea la posición i

Se solicitan 2i localizaciones de memoria.

Asignarle una dirección alineada a 2i

Registro base de memoria

Escribir en el registro 0ffffffffh

Leer el registro.

El primer bit ha de estar a 0

A partir del bit 4, buscar

el primer bit a 1, sea la posición i

Se solicitan 2i localizaciones de memoria.

Asignarle una dirección alineada a 2i

Asignación de interrupciones.

• Interrupt Line: Identifica a qué línea de interrupción del controlador de interrupciones está conectado este dispositivo.

• Interrupt Pin: Identifica a qué línea de interrupción de PCI está conectado este dispositivo– INTA#,INTB#,INTC#, INTD#

Espacio de direcciones de configuración.

• Para acceder al espacio de configuración: – 0CF8h: CONFIG_ADDRESS

• Registro de 32 bits. Accesos en DWord (32)

– 0CFCh: CONFIG_DATA• Ventana: 8, 16, 32 bits.

E

(1)

Reservado

(7)

Id Bus

(8)

Nº Dispositivo

(5)

Función

(3)

Registro

(6)

00

(2)

top related