Publicado el 8 de Mayo del 2018
538 visualizaciones desde el 8 de Mayo del 2018
315,4 KB
49 paginas
Creado hace 13a (05/08/2010)
Arquitectura de Computadores II
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
El bus del sistema
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
El procesador trae desde memoria la instrucción apuntada por el
PC
Se carga la instrucción 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 módulo de E/S
Procesamiento de datos
Operación lógica o aritmética sobre los datos
Control
Alteración de la secuencia de operaciones
• Ej. jump
Combinación de las anteriores
• Ej. Add [100], r1
Ejemplo de ejecución de un
programa
4 bits 12 bits
Opcode Dirección
1 bit 15 bits
S
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, división por cero, protección 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 instrucción
Procesador chequea por la interrupción
Indicado por una señal de interrupción
Si no hay interrupción, fetch próxima instrucción
Si hay una interrupción pendiente:
Suspender ejecución del programa corriente
Salvar contexto
Hacer que PC apunte a la dirección de inicio del manejador de
la interrupción
Procesar interrupción
Restaurar contexto y continuar el programa interrumpido
Transferencia de Control vía
Interrupciones
Control de Flujo del Programa
Tiempos de ejecución sin y
con interrupciones
E/S de corta duración
E/S de larga duración
Ciclo de Instrucción con
Interrupciones
Ciclo de Instrucción con
Interrupciones
Diagrama de Estados
Ciclo de
instrucción
“normal”
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
Está constituido por unidades funcionales que incluyen:
El datapath (camino de datos)
• Set de registros
• ALU
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.).
Los sistemas cableados son rápidos pero pueden ser inflexibles
Las funciones de control son fijas; si se necesita agregar instrucciones
extra, la circuitería debe rediseñarse
Algunos procesadores RISC usan control cableado para aumentar la
velocidad
Normalmente se usa una combinación de control cableado para
instrucciones sencillas y microcódigo para instrucciones complejas y
poco frecuentes
Control microprogramado
Solución en software del control de la máquina
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
macroinstrucción
El código elemental necesario para implementar las
macroinstrucciones se almacena en memoria de microprograma
Usualmente denominado firmware
Módulos del
sistema
Todas las unidades deben
interconectarse
El tipo de conexión varía según
el módulo
Memoria
Entrada/Salida
CPU
Buses (1/2)
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
Muchos dispositivos en el bus…
Retardos de propagación
• Caminos de datos largos complican la coordinación y afectan
negativamente la performance
Problemas eléctricos (“fan out”)
En general se utilizan múltiples buses para contrarrestar
estos problemas
Buses:
Tradicional (con cache)
Buses:
Bus de Alta Performance
Arbitraje del Bus
Bus controlado por más de un módulo
Ej. CPU y controlador de DMA
Solo un módulo 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 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)
Mostrar propiedades del dispositivo a la CPU?
Soporte de múltiples 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 líneas de selección entre E/S y memoria
Instrucciones específicas 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 (dirección)
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 módulo de E/S complete las
operaciones indicadas
Pérdida de tiempo de CPU!
E/S Programada - detalle
CPU requiere una operació
Comentarios de: Clase 2 - Arquitectura de Computadoras II (0)
No hay comentarios