Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Clase #2
Facultad de Ingeniería
Universidad de la República
Instituto de Computación
Curso 2010
Veremos
Ciclo de Instrucción
“Normal”
Con interrupciones
La Unidad de Control
Procesamiento de la Entrada/Salida
Ciclo de Instrucción
Dos pasos:
Fetch
Execute
Ciclo Fetch
El Program Counter (PC) tiene la dirección de la próxima
instrucción
4 bits 12 bits
Opcode Dirección
1 bit 15 bits
S Magnitud
Ciclo de
instrucción con
interrupciones
Múltiples Interrupciones
Deshabilitar interrupciones
El procesador ignorará las interrupciones mientras se procesa
otra interrupción
Las interrupciones quedan pendientes y son atendidas una
vez que la primera interrupción ha sido procesada
Las interrupciones son manejadas en secuencia
Definir prioridades
Los manejadores de interrupciones de baja prioridad pueden
ser interrumpidos por interrupciones de mayor prioridad
Una vez que se ha procesado la interrupción de mayor
prioridad, se retorna al manejador de la interrupción previa
Múltiples Interrupciones -
Secuencial
Múltiples Interrupciones -
Anidadas (1/2)
Múltiples Interrupciones -
Anidadas (2/2)
El diseño del procesador
La CPU ejecuta o supervisa la ejecución de las instrucciones que
componen un programa, y por lo tanto tiene un impacto
fundamental en la performance del sistema
La Unidad de Control
Algunas decisiones
importantes
Cantidad, ancho y reglas de uso del set de
registros
Direccionamiento
Tecnología del dispositivo
Set de Instrucciones
Diseño de la Unidad de Control: cableada o
microprogramada?
La Unidad de Control
La instrucción contenida en el Instruction Register (IR) determina
la acción de la Unidad de Control
La ejecución incluye los siguientes pasos:
• Instruction Fetch (IF)
• Instruction Decode (ID)
• Operand Fetch (OF)
• Operation Execution (OE)
• Operand Store(OS)
La mayoría de las instrucciones son registro-memoria o registro-
registro
La Unidad de Control debe controlar la secuencia de pasos
discretos que son necesarios para decodificar y ejecutar las
instrucciones; se puede ver como un problema que se puede
resolver en hardware o en software.
Control cableado
Se implementa como un circuito secuencial, usando compuertas y
componentes (NAND, NOR flip-flops, contadores, etc.).
Camino de comunicación
entre dispositivos
Normalmente broadcast
El bus del sistema
interconecta CPU,
memoria y módulos de
entrada/salida
Líneas en paralelo,
agrupadas por función
Ej. 32 bits de bus de
datos y 32 bits de
direcciones
Buses (2/2)
Bus de datos
Transporta datos
• A este nivel no hay diferencia entre “datos” e “instrucciones” (Von
Neuman)
Performance asociada al ancho del bus
• 8, 16, 32, 64 bits
Bus de direcciones
Identificar fuente o destino de los datos en memoria
Ancho del bus determina capacidad de memoria del sistema
• Ej. 8080 tiene un bus de direcciones de 16 bits, resultando 64k de
memoria direccionable
Bus de Control
Información de control y temporización
• Lectura/Escritura
• Pedidos de interrupción
• Señales de reloj
Esquema de interconexión del
bus
Arbitraje Centralizado
Dispositivo hardware único controlando acceso al bus
• Árbitro o Controlador del Bus
Puede ser parte de la CPU o separado
Arbitraje Distribuido
Cada módulo puede reclamar el control del bus
Lógica de control en todos los módulos
Temporización:
Caso sincrónico
Coordinación de eventos en el bus
Sincrónica
Eventos determinados por las señales de reloj
El Bus de Control incluye la línea de reloj
• Todos los dispositivos usan el reloj
• Sincronización en flanco creciente (usualmente)
Asincrónica
No existe línea de reloj
Se utilizan señales de control para sincronización
Más flexible pero también más complicado
Bus PCI (1/3)
Peripheral Component Interconnection
Dominio público, publicado por Intel
• PCI Special Interest Group
32 o 64 bit
33/66 Mhz -> hasta 528 MBytes/seg
Temporización sincrónica
Arbitraje centralizado
PnP: Plug and Play
Permite insertar placas en cualquier slot sin cambiar “jumpers” o
“switches”
Mapeo de direcciones, IRQs, COM ports, etc., son asignados
dinámicamente cuando arranca el sistema
Información básica (a la BIOS o SO) para que funcione PnP:
• Tipo de placa y dispositivo
• Requerimientos de memoria
• Requerimientos de Interrupciones
Bus PCI (2/3)
PnP es posible gracias a que cada
dispositivo PCI mantiene un espacio
de configuración de 256 bytes
Los primeros 64 bytes (en la figura)
están definidos en la especificación
PCI y contienen información
estándar
Los restantes 192 bytes se pueden
usar para almacenar información
específica del dispositivo
Bus PCI (3/3): arbitraje
E/S:
la interfaz con el procesador
Direccionamiento
E/S aislada
E/S mapeada en Memoria
Control de E/S
Polling
Interrupciones
DMA
Controladores de E/S
Procesadores de E/S
Tasas de transferencia de E/S
Módulo de E/S (1/2)
Funciones
Control &
Temporización
Comunicación con la
CPU
Comunicación con
dispositivos
Almacenamiento
temporal (buffering)
de datos
Detección de Errores
Módulo de E/S (2/2)
Almacenar
Datos
Fin? no
si
E/S por Interrupciones
Resuelve las esperas de la CPU
No se debe hacer polling del estado
El módulo de E/S interrumpe cuando está pronto
Problemas de diseño
Como identificar el módulo que interrumpe?
Como resolver múltiples interrupciones?
E/S por Interrupciones:
Identificación del módulo que interrumpe
Líneas diferentas para cada módulo
Número limitado de dispositivos
Polling
La CPU interroga cada dispositivo (por software)
Lento…
Daisy Chain o Polling de Hardware
Línea de interrupción compartida
La CPU envía “acknowledge” a una línea anidada que recorre todos
los dispositivos
El módulo que interrumpió pone su código de identificación en el bus.
A este código se le denomina vector
La CPU identifica el manejador mediante este código
Arbitraje de bus
Módulo debe conseguir el bus para poder interrumpir
Cuando CPU reconoce la interrupción, el master pone su código de
identificación en el bus.
Interrupciones múltiples (1/2)
Cada dispositivo tiene una prioridad determinada
En una jerarquía de bus masters, solo el master actual puede
interrumpir
Ejemplo - Bus del PC
80x86 tiene una sola línea de interrupción
• Usan un controlador de interrupciones, el 8259A
• El 8259A tiene 8 líneas de interrupción
Secuencia de eventos
8259A acepta interrupciones
8259A determina prioridad
8259A interrumpe al 8086 (pone un “1” en la línea INTR)
CPU reconoce la interrupción (pone un “1” en la línea INTA)
8259A pone el identificador del dispositivo en el bus de datos
CPU procesa la interrupción
Interrupciones
múltiples (2/2)
Se pueden poner en
cascada como en la
figura
Preguntas?