You are on page 1of 25

Arquitectura de Computadores II Clase #2

Facultad de Ingeniera Universidad de la Repblica

Instituto de Computacin Curso 2010

Veremos
Ciclo de Instruccin
Normal Con interrupciones

La Unidad de Control El bus del sistema Procesamiento de la Entrada/Salida

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

Combinacin de las anteriores


Ej. Add [100], r1

Ejemplo de ejecucin de un programa


4 bits 12 bits

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

Si no hay interrupcin, fetch prxima instruccin Si hay una interrupcin pendiente:


Suspender ejecucin del programa corriente Salvar contexto Hacer que PC apunte a la direccin de inicio del manejador de la interrupcin Procesar interrupcin Restaurar contexto y continuar el programa interrumpido

Transferencia de Control va Interrupciones

Control de Flujo del Programa

Tiempos de ejecucin sin y con interrupciones

E/S de corta duracin

E/S de larga duracin

Ciclo de Instruccin con Interrupciones

Ciclo de Instruccin con Interrupciones


Diagrama de Estados

Ciclo de instruccin normal

Ciclo de instruccin con interrupciones

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

Mltiples Interrupciones Secuencial

Mltiples Interrupciones Anidadas (1/2)

Mltiples Interrupciones Anidadas (2/2)

El diseo del procesador


La CPU ejecuta o supervisa la ejecucin de las instrucciones que componen un programa, y por lo tanto tiene un impacto fundamental en la performance del sistema

Est constituido por unidades funcionales que incluyen:


El datapath (camino de datos)
Set de registros ALU

La Unidad de Control

10

Algunas decisiones importantes


Cantidad, ancho y reglas de uso del set de registros Direccionamiento Tecnologa del dispositivo Set de Instrucciones Diseo de la Unidad de Control: cableada o microprogramada?

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.).

Los sistemas cableados son rpidos pero pueden ser inflexibles


Las funciones de control son fijas; si se necesita agregar instrucciones extra, la circuitera debe redisearse Algunos procesadores RISC usan control cableado para aumentar la velocidad

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

Una secuencia de microinstrucciones ejecuta una macroinstruccin

El cdigo elemental necesario para implementar las macroinstrucciones se almacena en memoria de microprograma
Usualmente denominado firmware

12

Mdulos del sistema


Todas las unidades deben interconectarse El tipo de conexin vara segn el mdulo
Memoria Entrada/Salida CPU

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)

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
Informacin de control y temporizacin
Lectura/Escritura Pedidos de interrupcin Seales de reloj

Esquema de interconexin del bus

Muchos dispositivos en el bus


Retardos de propagacin
Caminos de datos largos complican la coordinacin y afectan negativamente la performance

Problemas elctricos (fan out)

En general se utilizan mltiples buses para contrarrestar estos problemas

14

Buses:
Tradicional (con cache)

Buses:
Bus de Alta Performance

15

Arbitraje del Bus


Bus controlado por ms de un mdulo
Ej. CPU y controlador de DMA

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

Puede ser parte de la CPU o separado

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)

Peripheral Component Interconnection


Dominio pblico, publicado por Intel
PCI Special Interest Group

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

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

18

Tasas de transferencia de E/S

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

E/S mapeada en memoria


Dispositivos y memoria comparten espacio de direcciones Accesos a E/S se ven como simples accesos a memoria
El HW debe resolver la diferencia

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 - detalle


CPU requiere una operacin de E/S Mdulo de E/S ejecuta la operacin Mdulo de E/S setea bits de estado La CPU chequea los bits de estado peridicamente Mdulo de E/S no informa directamente a la CPU
O sea, no interrumpe a la CPU

La CPU puede esperar (busy wait), o rechequear ms tarde

E/S Programada:
Comandos
La CPU emite direcciones
Identifica mdulo de E/S (y dispositivo si el mdulo controla ms de uno)

La CPU emite comando


Control especifica al mdulo de E/S qu hacer
Ej. Situar cabezal de disco duro en determinada posicin

Test - chequo de estado


Ej. Error?

Lectura/Escritura
El mdulo de E/S transfiere datos desde/hacia el dispositivo

21

E/S Programada (diagrama)


CPU Hay Datos? Memoria Mdulo E/S dispositivo Almacenar Datos Fin? si no si Leer Datos Loop busy wait no es una manera eficiente de usar la CPU no a menos que el dispositivo sea muy rpido!

E/S por Interrupciones


Resuelve las esperas de la CPU No se debe hacer polling del estado
El mdulo de E/S interrumpe cuando est pronto

Como funciona? (Ej. lectura)


La CPU emite un comando de lectura El mdulo de E/S hace la transferencia desde el dispositivo mientras la CPU hace otra cosa Una vez finalizada la transferencia, el mdulo de E/S interrumpe a la CPU La CPU requiere los datos El mdulo de E/S transfiere datos

22

E/S por Interrupciones:


Que hace la CPU?
Emite comando de E/S Hace otra tarea Chequea por interrupciones al fin de cada ciclo de instruccin
Recordar: el procesamiento de interrupciones es uno de los desafos complicados del control de la CPU
Ms difcil en Superescalares

Si hay interrupciones pendientes


Salvar contexto Procesa interrupcin

Problemas de diseo
Como identificar el mdulo que interrumpe? Como resolver mltiples interrupciones?

E/S por Interrupciones:


Identificacin del mdulo que interrumpe
Lneas diferentas para cada mdulo
Nmero limitado de dispositivos

Polling
La CPU interroga cada dispositivo (por software) Lento

Daisy Chain o Polling de Hardware


Lnea de interrupcin compartida La CPU enva acknowledge a una lnea anidada que recorre todos los dispositivos El mdulo que interrumpi pone su cdigo de identificacin en el bus. A este cdigo se le denomina vector La CPU identifica el manejador mediante este cdigo

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

Interrupciones mltiples (2/2)


Se pueden poner en cascada como en la figura

24

Preguntas?

25

You might also like