Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
1
Objetivos
El estudio a fondo de la arquitectura del
computador nos va a permitir:
● Evaluar el rendimiento
● Identificar cuellos de botella
● Identificar problemas de fiabilidad y como hacer
sistemas tolerantes a fallos
2
Generalidades
● Todos los computadores digitales modernos
siguen la arquitectura Von Neumann, cuyos
componentes principales son:
● Unidad Central de Procesamiento (CPU)
● Memoria
● Entradas/Salidas
3
Arquitectura von Neumann
Unidad
aritmético-
lógica
Dispositivos
Memoria
de E/S
Unidad de
control
4
Componentes de la
Arquitectura von Neumann
● CPU: Se descompone en una unidad de control
y una unidad aritmético lógica.
● Memoria: Sirve para almacenar tanto datos
como instrucciones.
● Entradas/Salidas: Permiten el intercambio de
datos con el mundo exterior.
5
Alternativas de Diseño:
Programación cableada
● Un circuito lógico puede diseñarse para llevar a
cabo una operación específica.
● Por cada dato de entrada, produce a su salida
la respuesta correspondiente.
● Cambiar la función del circuito implica “re-
cablear” el circuito.
6
Ejemplo:
Diseño de un sumador de 1 bit
7
Alternativas de diseño:
Programación por Software
● En lugar de tener un circuito diseñado
específicamente para una función, se puede diseñar
un circuito que mediante unas entradas de control
pueda realizar distintas operaciones con los datos de
entrada:
Código de Decodificador
instrucción de instrucción
Señales de control
Módulos de E/S
dato
Registros
2d-2
2d-1
10
Operación del computador
● El procesador opera realizando repetidamente
“ciclo de instrucción”.
● El ciclo de instrucción consta de 2 etapas:
● Fetch: Obtener una instrucción desde la memoria.
● Execution: Ejecutar la instrucción
11
Fetch: Obtener la siguiente instrucción
● El registro contador de programa (PC) contiene
la dirección de memoria de la siguiente
instrucción a ejecutar.
● Se lee la instrucción de la posición indicada por
el PC y se trae al IR.
● El PC se incrementa
● Ciertas instrucciones pueden alterar el PC
también (ejecución no necesariamente
secuencial).
12
Execution: Ejecución de instrucción
● La unidad de control interpreta la instrucción
(binaria) almacenada en el IR.
● Se realiza la operación correspondiente.
Existen 4 tipos de operaciones:
➢ Transferencia procesador memoria
➢ Transferencia procesador E/S
➢ Operaciones aritmético-lógicas
➢ Operaciones de control
13
Ejemplo: Máquina hipotética
Formato de instrucción:
15 12 11 0
Opcode Address
Formato de enteros:
15 0
S Value
14
Ejemplo: Programa y datos
Memoria
300 PC
300 1940
301 5941
302 2941
940 3
941 2
15
Ciclos de instrucción
● Muchos procesadores modernos ofrecen
instrucciones complejas, que pueden operar
sobre arreglos de datos (arrays, strings).
● Esto da lugar a que el proceso de ejecución
sea cíclico.
16
Diagrama de estados
del ciclo de instrucción
17
Interrupciones
● El proceso normal de ejecución se puede
suspender para hacer que el procesador
atienda otros eventos:
➢ Errores de programa: Ejemplo división por cero, o
acceso a un área de memoria no permitida.
➢ Fallas en el hardware: Paridad de memoria
➢ Temporizador: Periódicamente se interrumpe el
procesador para llevar la hora y otras tareas del
sistema operativo.
➢ Entradas/Salidas: Utilizadas por los dispositivos
de E/S cuando requieren atención del procesador.
18
Uso de interrupciones
para operaciones de E/S
● Normalmente los dispositivos de E/S son
mucho más lentos que el procesador.
● Muchas veces los eventos de E/S ocurren
aleatoriamente, e.g. teclado, recepción de
paquetes, etc.
● Poner el procesador en un ciclo de espera es
ineficiente.
● Una interrupción permite que el procesador
atienda un dispositivo de E/S en el momento
que se genere un evento.
19
Ejemplo: Tarjeta de red
Eventos que se producen:
● Llega un paquete: Al momento de llegar un
paquete este se almacena temporalmente en
un buffer de la tarjeta. Si no se lee
oportunamente, la llegada del siguiente
paquete lo sobre-escribirá.
● Transmisión de paquetes: El procesador
escribe el paquete a transmitir en un buffer de
la tarjeta de red. Se debe esperar a que el
paquete haya sido transmitido antes de escribir
otro paquete en el buffer. 20
Illustración:
● Eventos en la tarjeta de red con y sin
interrupciones.
21
Interrupciones y el ciclo de instrucción
● Las interrupciones de hardware se transmiten
por medio de una señal del bus directamente al
procesador.
● La interrupción ocurre en cualquier instante de
tiempo – el procesador se encuentra
posiblemente ejecutando algún programa.
● El procesador debe atender la interrupción tan
pronto como sea posible.
22
Ciclo de instrucción modificado
Ciclo de interrupción
Interrupt?
Start Fetch Execution
Intr
enabled?
Stop
23
Transferencia de control y
gestor de interrupciones
Si hay una interrupción, el procesador:
● Guarda el estado actual (PC,
registros, etc.) para poder continuar el programa
programa en la instrucción siguiente. en ejecución
procesador.
24
Comparación de tiempos
● Sin interrupciones
● Con interrupciones
25
Múltiples interrupciones
● Existen un gran número de dispositivos de E/S
que pueden generar interrupciones.
● Excepciones del procesador.
● Interrupciones de software permitidas en
muchos procesadores (e.g. x86)
26
Ejemplo: Algunas de las
interrupciones en un PC
27
Gestión de Múltiples interrupciones
Cómo gestionar múltiples interrupciones?
● Atender una a la vez: Se ignoran otras interrupciones
hasta concluir la atención de la interrupción en curso.
Resulta inconveniente pues estos tiempos de espera
pueden afectar el desempeño de ciertos dispositivos.
● Permitir interrupciones anidadas: Un gestor de
interrupciones puede ser interrumpido para dar lugar a
atender una interrupción de mayor prioridad.
● Ilustración: Proceso de gestión de interrupciones
anidadas.
28
Entradas y Salidas
Los dispositivos de E/S se controlan de forma
muy similar a como se maneja la memoria:
● Una dirección de E/S determina el dispositivo
con el que se va a hacer la operación.
● Cada dispositivo internamente tiene registros
que pueden ser leídos o escritos según su
función.
29
Ejemplo: Puertos E/S en un PC
30
Entradas Salidas
Mapeadas en Memoria
● Algunos dispositivos de E/S aparecen como
parte de la memoria del sistema. El ejemplo
más frecuente son los controladores de video.
● Operaciones estándar de lectura/escritura en
memoria permiten controlar el dispositivo.
31
Transferencias Directas a Memoria
(DMA – Direct Memory Access)
● Para algunos tipos de dispositivos resulta
mucho más eficiente permitir que el dispositivo
transfiera datos directamente entre la memoria
del sistema y sus buffers internos.
● Ejemplos:
➢ Discos duros
➢ Controladores de sonido
➢ Algunas tarjetas de red
32
Medida de las prestaciones
de un sistema
Se usan varios parámetros para estimar el
desempeño de un determinado sistema:
● MIPS: Millions of Instructions Per Second
● CPI: Clocks per Instruction
● f: Clock frequency
Estos parámetros se relacionan así:
f
MIPS=
CPI
33
Ejemplo
● Se tiene un sistema con f=1GHz
● El programa ejecutado tiene la siguiente
mezcla de instrucciones:
Aritméticas (1 clock): 45000
Transferencia de datos (2 clock): 32000
Punto flotante (2 clock): 15000
Control (2 clock): 8000
● Determinar el CPI efectivo, la velocidad en
MIPS y el tiempo necesario para ejecutar el
programa.
34
CISC vs. RISC
Las arquitecturas CISC
● En la era de los 70s, mucho software era escrito en
lenguaje ensamblador.
● Los fabricantes de procesadores trataban de ofrecer
un lenguaje ensamblador poderoso:
● Conjunto amplio de instrucciones, e.g. para
manipulación de strings y vectores.
● Modos de direccionamiento ortogonales: Casi todas
las instrucciones podían usar todos los modos de
direccionamiento.
● Posteriormente este modelo se denominó CISC:
Complex Instruction Set Computing.
● Ejemplos: x86, 68k, IBM 360, VAX. 35
CISC vs. RISC
Transición a RISC
● Estudios en los 70s y 80s identificaron que la
mayoría de programas generados por los
compiladores utilizan solo un subconjunto de
las instrucciones de un procesador CISC.
● En algunos casos se observó que la instrucción
del procesador toma más tiempo que una
rutina implementada con instrucciones más
simples.
36
CISC vs. RISC
Primeros procesadores RISC
● Esto motivo el diseño de procesadores con un
conjunto de instrucciones simples.
● Esto facilita el diseño del procesador, y el
procesador resultante requiere menor número
de transistores y menos potencia.
● Estos diseños dieron origen al término
“Reduced Instruction Set Computing” (RISC)
● Ejemplos: DEC Alpha, ARM, MIPS, POWER,
PowerPC, SPARC, etc.
37
Características de procesadores
RISC
● Pocos formatos de instrucciones
● Gran número de registros de propósito general
● Modos de direccionamiento muy simples
● Operaciones aritmético/lógicas operan sobre
los registros.
● Se tienen instrucciones especiales para
transferencias a memoria (load/store)
● Esto da origen al uso del término “Load/Store
Architectures”.
38
Situación actual
● Las implementaciones modernas de la familia
x86 utilizan un conjunto de micro-operaciones
muy sencillo y muy optimizado.
● Las instrucciones de máquina son traducidas
por decodificadores internos. De esta forma se
mantiene la compatibilidad binaria.
● Una secuencia de instrucciones CISC da lugar
a una serie de micro-operaciones, muchas de
las cuales se pueden realizar en paralelo,
permitiendo así la implementación de
arquitecturas super-escalares. 39