Documente Academic
Documente Profesional
Documente Cultură
Veremos
Ciclo de Instruccin
Normal Con interrupciones
Ciclo de Instruccin
Dos pasos:
Fetch Execute
Ciclo Fetch
El Program Counter (PC) tiene la direccin de la prxima instruccin El procesador trae desde memoria la instruccin apuntada por el PC Se carga la instruccin en el Instruction Register (IR) Se incrementa el PC, a menos que se indique otra cosa
Ciclo Execute
Procesador - memoria
Transferencia entre CPU y memoria
Procesador - E/S
Transferencia entre CPU y mdulo de E/S
Procesamiento de datos
Operacin lgica o aritmtica sobre los datos
Control
Alteracin de la secuencia de operaciones
Ej. jump
Opcode
1 bit
Direccin
15 bits
Magnitud
0001 Cargar AC desde memoria 0010 Almacenar AC en memoria 0101 Sumar a AC un dato de memoria
Ciclo de Instrucciones
Diagrama de Estados
Interrupciones
Mecanismo que permite interrumpir la secuencia normal de procesamiento de la CPU ante condiciones particulares Pueden ser de alguna de las siguientes clases:
Programa
Ej. overflow, divisin por cero, proteccin de memoria
Timer
Generado por un temporizador interno del procesador Usado en pre-emptive multi-tasking
E/S
Provocada por el controlador de E/S
Fallo de Hardware
Ej. Error de paridad de memoria
Ciclo de Interrupciones
Se agrega al ciclo de instruccin Procesador chequea por la interrupcin
Indicado por una seal de interrupcin
Mltiples Interrupciones
Deshabilitar interrupciones
El procesador ignorar las interrupciones mientras se procesa otra interrupcin Las interrupciones quedan pendientes y son atendidas una vez que la primera interrupcin 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 interrupcin de mayor prioridad, se retorna al manejador de la interrupcin previa
La Unidad de Control
10
La Unidad de Control
La instruccin contenida en el Instruction Register (IR) determina la accin de la Unidad de Control La ejecucin incluye los siguientes pasos:
Instruction Fetch (IF) Instruction Decode (ID) Operand Fetch (OF) Operation Execution (OE) Operand Store(OS)
La mayora de las instrucciones son registro-memoria o registroregistro 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.
11
Control cableado
Se implementa como un circuito secuencial, usando compuertas y componentes (NAND, NOR flip-flops, contadores, etc.).
Normalmente se usa una combinacin de control cableado para instrucciones sencillas y microcdigo para instrucciones complejas y poco frecuentes
Control microprogramado
Solucin en software del control de la mquina Un control microprogramado se puede ver como un computador interno que implementa las funciones requeridas por el set de instrucciones del computador externo
El cdigo elemental necesario para implementar las macroinstrucciones se almacena en memoria de microprograma
Usualmente denominado firmware
12
Buses
(1/2)
Camino de comunicacin entre dispositivos Normalmente broadcast El bus del sistema interconecta CPU, memoria y mdulos de entrada/salida Lneas en paralelo, agrupadas por funcin
Ej. 32 bits de bus de datos y 32 bits de direcciones
13
Buses
Bus de datos
(2/2)
Transporta datos
A este nivel no hay diferencia entre datos e instrucciones (Von Neuman)
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
Informacin de control y temporizacin
Lectura/Escritura Pedidos de interrupcin Seales de reloj
14
Buses:
Tradicional (con cache)
Buses:
Bus de Alta Performance
15
Solo un mdulo puede controlar el bus a la vez! Se debe arbitrar Arbitraje Centralizado
Dispositivo hardware nico controlando acceso al bus
rbitro o Controlador del Bus
Arbitraje Distribuido
Cada mdulo puede reclamar el control del bus Lgica de control en todos los mdulos
Temporizacin:
Caso sincrnico
Coordinacin de eventos en el bus Sincrnica
Eventos determinados por las seales de reloj El Bus de Control incluye la lnea de reloj
Todos los dispositivos usan el reloj Sincronizacin en flanco creciente (usualmente)
Asincrnica
No existe lnea de reloj Se utilizan seales de control para sincronizacin Ms flexible pero tambin ms complicado
16
Bus PCI
(1/3)
32 o 64 bit 33/66 Mhz -> hasta 528 MBytes/seg Temporizacin sincrnica 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 dinmicamente cuando arranca el sistema Informacin bsica (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 configuracin de 256 bytes
Los primeros 64 bytes (en la figura) estn definidos en la especificacin PCI y contienen informacin estndar Los restantes 192 bytes se pueden usar para almacenar informacin especfica del dispositivo
17
Bus PCI
(3/3):
arbitraje
Control de E/S
Polling Interrupciones DMA Controladores de E/S Procesadores de E/S
18
Mdulo de E/S
Funciones
Control & Temporizacin Comunicacin con la CPU Comunicacin con dispositivos Almacenamiento temporal (buffering) de datos Deteccin de Errores
(1/2)
19
Mdulo de E/S
(2/2)
Mostrar propiedades del dispositivo a la CPU? Soporte de mltiples dispositivos? Control de funcionalidades del dispositivo, o dejar esa tarea a la CPU?
Direccionamiento de la E/S
E/S aislada
Espacios de direcciones separados Se necesitan lneas de seleccin entre E/S y memoria Instrucciones especficas para E/S
No hay instrucciones especiales para E/S A cada dispositivo se le asigna un identificador nico Los comandos emitidos por la CPU contienen este identificador (direccin)
20
E/S Programada
La CPU controla directamente la E/S
Monitorizar estado Comandos de lectura/escritura Transferencia de datos
La CPU debe esperar que el mdulo de E/S complete las operaciones indicadas
Prdida de tiempo de CPU!
E/S Programada:
Comandos
La CPU emite direcciones
Identifica mdulo de E/S (y dispositivo si el mdulo controla ms de uno)
Lectura/Escritura
El mdulo de E/S transfiere datos desde/hacia el dispositivo
21
22
Problemas de diseo
Como identificar el mdulo que interrumpe? Como resolver mltiples interrupciones?
Polling
La CPU interroga cada dispositivo (por software) Lento
Arbitraje de bus
Mdulo debe conseguir el bus para poder interrumpir Cuando CPU reconoce la interrupcin, el master pone su cdigo de identificacin en el bus.
23
Interrupciones mltiples
(1/2)
Cada dispositivo tiene una prioridad determinada En una jerarqua de bus masters, solo el master actual puede interrumpir Ejemplo - Bus del PC
80x86 tiene una sola lnea de interrupcin
Usan un controlador de interrupciones, el 8259A El 8259A tiene 8 lneas de interrupcin
Secuencia de eventos
8259A acepta interrupciones 8259A determina prioridad 8259A interrumpe al 8086 (pone un 1 en la lnea INTR) CPU reconoce la interrupcin (pone un 1 en la lnea INTA) 8259A pone el identificador del dispositivo en el bus de datos CPU procesa la interrupcin
24
Preguntas?
25