Subido por augusto.lencina4

Arquitectura II-M2-El Procesador

Anuncio
Arquitectura II
Docentes:
Lucas Benjamín Cicerchia
[email protected]
Arquitectura II
Contenidos del día
- El Procesador
- Registros
- ALU
- Unidad de Control Memorias
- Ciclo de Ejecución
- CISC VS. RISC
Arquitectura II
REPASANDO
Un computador
a) se lo conoce como programa cableado
Arquitectura II
REPASANDO
Un computador
Se construye una
configuraciónde usogeneral de funciones
lógicas y aritméticas.
Este hardware realizara diferentes funciones de acuerdo a las
señales de control aplicadas al mismo.
Acepta DATOS, SEÑALES DE CONTROL y PRODUCE
RESULTADOS.
En lugar de reconfigurar el hardware, reconfiguramos las
SEÑALES DE CONTROL para cada caso
-Cada programa es una secuencia de pasos
-En cada paso se realiza una operación aritmética o lógica
con ciertos datos.
-Para cada paso se necesita un nuevo conjunto de señales
lógicas
Arquitectura II
REPASANDO
Arquitectura Von Neumann
CPU - El Procesador





Unidad de Control (UC)
Controla todos los componentes
Interpreta instrucciones
Decodifica y Ejecuta instrucciones.
Transforma instrucciones en órdenes a otros
componentes
 Puede ser programada por hardware (cableada) y
“microprogramada” (varias microinstrucciones por
instrucción)




Unidad Aritmético Lógica (ALU)
Realiza operaciones matemáticas y lógicas
Sumas, restas, multiplicaciones
Operaciones lógicas: And, Or, Xor






Registros
Tamaño fijo y Almacenan datos binarios
Acceso rápido
De propósito general (programas) - Ax, Bx, Cx, Dx
Específicos
Registros de Instrucción
Arquitectura II
CPU - Procesador
En los procesadores actuales no solo tienen estos 3 componentes sino
además contiene:
Unidades de ejecución SIMD: unidades especializadas en la ejecución de
instrucciones SIMD (single instruction, multiple data), instrucciones que
trabajan con estructuras de datos vectoriales, como por ejemplo
instrucciones multimedia.
Memoria caché: prácticamente todos los procesadores modernos
incorporan dentro del propio chip del procesador algunos niveles de
memoria caché.
Unidad de gestión de memoria o memory management unit (MMU):
gestiona el espacio de direcciones virtuales, traduciendo las direcciones de
memoria virtual a direcciones de memoria física en tiempo de ejecución.
Unidad de punto flotante o floating point unit (FPU): unidad especializada
en hacer operaciones en punto flotante; puede funcionar de manera
autónoma, ya que dispone de un conjunto de registros propio.
Arquitectura II
Ciclo de Ejecución de una Instrucción
1. Recuperar la siguiente
instrucción desde
memoria (apuntada por
el program counter) y
luego incrementar el
program counter.
2. Decodificar el patrón de
bits en el registro de
instrucción IR
3. Ejecutar la instrucción
indicada en el registro de
instrucción IR
Arquitectura II
Ciclo de Ejecución de una Instrucción
1. UC obtiene la próxima instrucción de
memoria (usando el registro PC) y dejando
la información en el registro IR – Fetch de
Instrucción (FI)
2. Se incrementa el PC
3. La instrucción es decodificada (del IR) a un
lenguaje que entiende la ALU - Decode de
Instrucción (DI)
4. Obtiene de memoria los operando
requeridos por la instrucción – Calcular
Operandos (CO) y Fetch de Operandos (FO)
5. La ALU ejecuta y deja los resultados en
registros o en memoria - Execute
Instrucción (EI) y Write Operand (WO)
6. Volver al paso 1
Arquitectura II
Segmentación de las instrucciones
La segmentación de las instrucciones (pipeline) consiste en dividir el
ciclo de ejecución de las instrucciones en un conjunto de etapas
pueden coincidir o no con las fases del ciclo de ejecución de las
instrucciones.
Arquitectura II
Segmentación de las instrucciones
Arquitectura II
Registros
Memoria de rápido acceso dentro del procesador.
Utilizadas por la ALU para almacenamiento temporal.
Tipos:
Registros de Propósito general
Registros de Instrucción
Registros de Acceso a Memoria
Registros de Estado y Control
Arquitectura II
Registros de Propósito General
Los registros de propósito general son los que suelen
utilizarse como operandos en las instrucciones assembler.
Estos registros se pueden asignar a funciones concretas:
datos, direccionamiento o ambos (en algunos procesadores).
Los registros de datos se pueden diferenciar por el formato y
el tamaño de los datos que almacenan; por ejemplo, puede
haber registros para números enteros y para números en punto
flotante.
Los registros de direccionamiento se utilizan para acceder a
memoria y pueden almacenar direcciones o índices.
Arquitectura II
Registros de Instrucción
Los registros relacionados a las instrucciones son:
Program Counter o Instruction Pointer (PC o IP): registro
contador de programa, contiene la dirección de la instrucción
siguiente que hay que leer de la memoria (segmento de código)
Instruction Register (IR): registro puntero de instrucción,
contiene la dirección (del segmento de código) de la próxima
instrucción a ejecutar.
Arquitectura II
Registros de Acceso a Memoria
Los registros de lectura y escritura en memoria son:
Memory Address Register (MAR): registro de direcciones de
memoria, donde ponemos la dirección de memoria a la que
queremos acceder.
Memory Buffer Register (MBR): registro de datos de memoria,
registro donde la memoria deposita el dato leído o el dato que
se quiere escribir.
Arquitectura II
Registros de Estado y de Control
La información sobre el estado del procesador puede estar
almacenada en un registro o mas de uno aunque habitualmente
suele ser uno llamado registro de estado.
Los bits del registro de estado son modificados por el
procesador como resultado de la ejecución de algunos tipos de
instrucciones. Ejemplo: en una operación aritmética los flags.
Los registros de control son los que dependen más de la
organización del procesador. Información de la unidad de
control o del sistema operativo.
Arquitectura II
Unidad Aritmética Lógica - ALU
Es la encargada de resolver todas las operaciones aritméticas
y lógicas.
Las operaciones aritméticas tanto con números enteros
(representados
en
Ca2)
como
con
números
reales
(representados en IEEE754, simple, doble y hasta cuádruple
representación)
Las operaciones lógicas AND, OR, NOT, XOR, operaciones de
desplazamiento y rotaciones de bits.
Las operaciones matemáticas anteriormente se utilizaba un
co-procesador matemático, en la actualidad con el avance en el
desarrollo de los procesadores hizo que dicho co-procesador se
encuentre dentro del mismo micro.
Arquitectura II
Unidad de Control - UC
La unidad de control se puede considerar el cerebro del
computador. Como el cerebro, está conectada al resto de los
componentes del computador mediante las señales de control
(el sistema nervioso del computador).
La función básica de la unidad de control es la ejecución de las
instrucciones.
Es imprescindible para coordinar los diferentes elementos que
tiene el computador y hacer un buen uso de ellos.
Arquitectura II
Unidad de Control – UC - Microoperaciones
En base a lo visto en el ciclo de ejecución la unidad de control
deberá:

Leer una instrucción

Leer los operandos fuente

Ejecutar una instrucción y almacenar los operandos en destino

Comprobar interrupciones
Cada una de estas operaciones tiene microoperaciones, que no
son ni mas ni menos que transformación y transferencia de
información.
Arquitectura II
Unidad de Control – UC - Microoperaciones
 Los tipos de microoperaciones que esta realiza son:

Transferencia interna: transferencia entre registros internos al
procesador

Transferencia interna con transformación: operaciones
aritméticas y lógicas entre registros internos al procesador

Transferencia externa: transferencia entre registros internos al
procesador y módulos o registros externos al procesador (bus o
memoria principal)
Arquitectura II
Unidad de Control
¿Qué es un programa?
-Una secuencia de pasos
-Para cada paso se realiza una operación lógica o matemática
-Para cada operación se necesita un set de señales de
control diferentes
La CPU genera las direcciones, mientras que la memoria las
recibe.
El usuario escribe un programa en lenguaje de alto nivel, el
cual se traduce a un lenguaje ensamblador por medio de un
programa compilador.
Un programa ensamblador convierteel programa
lenguaje simbólico o lenguaje de máquina
en
Arquitectura II
¿Qué es un programa?
LENGUAJE DE ALTO NIVEL
Var = Var + 1
COMPILADOR
LENGUAJE ENSAMBLADOR
INC VAR
ENSAMBLADOR
LENGUAJE DE MAQUINA
0110 1011 1010 1101
Arquitectura II
¿Qué es un programa?
Lenguaje de maquina: Lenguaje que puede entender el hardware.
Utiliza palabras binarias
Lenguaje ensamblador (o simbólico): Funcionalmente equivalente
al lenguaje de máquina pero que utiliza nombres mas intuitivos
(Add, Jmp)
Add AX, BX → 0110 1011 1010
ENSAMBLADOR
MAQUINA
Para cada operación se provee un código único
ej: ADD, MOV
Un segmento de hardware acepta ese código y genera las señales
de control necesarias
YA TENEMOS UNA COMPUTADORA
Arquitectura II
Formato en lenguaje simbólico
Lab_1:
add
AX,
BX ;Ejemplo de código simbólico
Comentario
Rotulo
Operandos de destino
Mnemonico
Operandos de origen
Arquitectura II
Ciclo de Instrucción básico de 2 pasos
Extraer Ejecutar
Al comienzo de cada ciclo de instrucción, la CPU capta una
instrucción de memoria.
Se utiliza un registro llamado contador de programa ( PC Program
Counter ) para seguir los pista de la instrucción que debe
captarse a continuación
Arquitectura II
Instrucciones
Secuencia de bits divididas en campos.
Para no usar secuencias de bits se utiliza una
representación simbólica.
CODOP
REFERENCIA A
OPERANDO
REFERENCIA A
OPERANDO
Arquitectura II
Mediante un programa ensamblador convierte el programa
mnemonico en lenguaje simbólico o lenguaje de máquina
Arquitectura II
Diagrama de estado del ciclo de instrucción
Arquitectura II
Flujo de Datos. Ciclo de extracción
Depende del diseño particular de la CPU pero en general se
cumplen los siguientes pasos:
CARGA
 PC contiene la dirección de la próxima instrucción
 La dirección se mueve al MAR
La dirección se coloca en el bus de direcciones
 La unidad de control requiere la lectura de memoria
 El procesador interpreta y ejecuta la acción
Los resultados se colocan en el bus de datos, copiados al MBR y luego al IR
mientras tanto el PC se incrementa en 1
Se examina el IR
Si el direccionamiento es indirecto, se ejecuta este.
Los N bits de la derecha del MBR se transfieren al MAR
La unidad de control requiere la lectura en memoria
 El resultado (las direcciones de los operandos) se mueven al MBR
Arquitectura II
Flujo de Datos. Ciclo de extracción
Arquitectura II
Ciclo de Instrucción con interrupción
Arquitectura II
Ejecución de un programa
-Un procesador posee un solo registro de datos llamado
ACUMULADOR (AC).
-Las INSTRUCCIONES y los DATOS son de 16 bits (suposición para
el ejemplo).
-El FORMATO DE INSTRUCCIÓN (4 bits CODOP y 12 bits DATOS)
indica que puede haber 24=16 códigos de operación (codops)
diferentes y se pueden redireccionar hasta 212=4096 palabras de
memoria (o datos)
Codops
0001=1
0010=2
0101=5
16
16
16
= cargar AC desde memoria
= Almacenar AC en memoria
=sumar a AC un dato de memoria
Arquitectura II
Ejecución de programa
Memoria y contenido de registros
Arquitectura II
Unidad de Control
TAREAS
Hacer que el procesador ejecute las tareas en la secuencia correcta
determinada por el programa que se esta ejecutando
Generar las señales de control que provocan la ejecuciónde
cada micropperación
Incluimos otro registro ICC (Instrucción Cicle Code) que nos dirá en
que parte del ciclo esta
00 CAPTACIÓN
01 INDIRECTO
10 EJECUCIÓN
11 INTERRUPCIÓN
Arquitectura II
Ciclo de captación
Consta de tres pasos y cuatro microoperaciones
T1= MAR←(PC)
T2=
T3=
MBR←MEMORIA PC ←(PC)+1
IR ←(MBR)
Ciclo de instrucción
La dirección de la instrucción indicara si la dirección es:
Directa / Indirecta
Si la dirección es indirecta, el ciclo indirecto precede a la
ejecución T1 MAR ← (IR(DIRECCIÓN)) DEL BUS
DIRECCIONES
T2 MBR ← MEMORIA DEL BUS DATOS
T3 IR (DIRECCIÓN) ← (MBR(DIRECCIÓN))
Arquitectura II
Ciclo de Interrupción
Finalizado el CICLO DE EJECUCIÓN tiene lugar una
comprobación que no exista una INTERRUPCIÓN
HABILITADA
T1:
T2:
MBR ← (PC)
MAR ← DIRECCIÓN DE SALVAGUARDA
PC ← DIRECCIÓN DE LA RUTINA
T3:MEMORIA ← (MBR)
Arquitectura II
Ejemplo de Ciclo de Ejecución
En una máquina con N códigos de operación puede
tener N secuencias diferentes de microoperaciones
SUMA
ADD AX, VAR
Suma el contenido de la posición VAR al registro R1
T1:
T2:
T3:
MAR ← (IR(DIRECCION))
MBR ← MEMORIA (VAR)
AX ← (AX) + (MBR)
Arquitectura II
Ejemplo Incrementar y saltar Si es Cero
ISZ Var
El contenido de Var se incrementa en 1 y si el resultado es 0, se
salta
T1:
T2:
T3:
T4:
MAR ← (IR direccion)
MBR ← MEMORIA (VAR)
MBR ← (MBR) + 1
MEMORIA ← MBR
Si ((MBR):0) entonces PC ← ((PC)+1)
Arquitectura II
Ejecución de programa
1. El CONTADOR DE PROGRAMA (PC) contiene el valor 300 (dirección de la
primera instrucción). Esta instrucción se carga en el REGISTRO DE
INSTRUCCIÓN (IR)
MEMORIA
REGISTROS
300
1940
300
301
5941
302
2941
…
940
0003
941
0002
PC
AX
1940
IR
Arquitectura II
Ejecución de programa
2. Los primeros cuatro bits de IR indican que el acumulador (AX) se va a
cargar. Los restantes 12 bits especifican la dirección que es 940 (recordar
que son valores hexadecimales)
MEMORIA
REGISTROS
300
1940
300
PC
301
5941
0003
AX
302
2941
1940
IR
…
940
0003
941
0002
Arquitectura II
Ejecución de programa
3. El registro PC se incrementa y capta la siguiente instrucción.
MEMORI
A
REGISTROS
300
1940
301
PC
301
5941
0003
AX
302
2941
5941
IR
…
940
0003
941
0002
Arquitectura II
Ejecución de programa
El contenido anterior de AX y el de la posición de
memoria 941 se suman y el resultado se almacena
en AX
MEMORIA
REGISTROS
4.
300
1940
301
PC
301
5941
0005
AX
302
2941
5941
IR
…
940
0003
941
0002
316+216=516
Arquitectura II
Ejecución de programa
5. El registro PC se incrementa y se capta la siguiente
instrucción
MEMORIA
REGISTROS
300
1940
302
PC
301
5941
0005
AX
302
2941
2941
IR
…
940
0003
941
0002
Arquitectura II
Ejecución de programa
6. El contenido de AC se almacena en la posición 941
MEMORIA
REGISTROS
300
1940
301
PC
301
5941
0005
AX
302
2941
2941
IR
…
940
0003
941
0005
Arquitectura II
Set de Instrucciones (ISA)
¿Qué tipos de datos puede manejar “nativamente”?
¿Cómo se almacenan?
¿Cómo se acceden?
¿Qué operaciones (instrucciones) puede ejecutar?
¿Cómo se codifican estas operaciones?
Un conjunto de respuestas a estas preguntas se llama
Instruction Set Architectura. También conocida como ISA.
Cuando estamos estudiando una ISA, la organización se
vuelve un detalle que sólo
interesa para entender el
comportamiento.
Arquitectura II
Métricas del Set de Instrucciones (ISA)
Cantidad total de instrucciones disponibles (“largo”).
Complejidad del conjunto de instrucciones:

RISC: Reduced Instruction Set Computer
CISC: Complex Instruction Set Computer
Longitud de las instrucciones (“ancho”).

Cantidad de memoria que un programa requiere (“largo x ancho”).
Tipos de datos

Enteros (8, 16, 32 bis; complemento a 2)

Punto flotante. Punto fijo

¿BCD, ASCII?

Almacenamiento: Big Endian y Little Endian
Arquitectura II
Little Endian vs Big Endian
Cantidad total de instrucciones disponibles (“largo”).
Endianness se refiere a la forma en que la computadora guarda
datos multibyte.
Little endian: el byte en una
posición de memoria menor,
es menos significativo. En general, Intel y computadoras CISC.
Big endian: el byte en una posición de memoria menor, es el más
significativo. En general, Motorola, computadoras RISC y redes.
Ejemplo: ¿Cómo se almacena 0x1234 (16bits) en 8 bits?
Little endian:
M[0] = 0x34 M[1] = 0x12
Big endian: M[0] = 0x12 M[1] = 0x34
Arquitectura II
CISC
La microprogramación es una característica
importante y
esencial de casi todas las arquitecturas CISC.
La microprogramación significa que cada instrucción de máquina
es interpretada por un microprograma localizado en una memoria
en el circuito integrado del procesador.
Ejemplos son:
– Intel 8086, 8088, 80286, 80386, 80486.
– Motorola 68000, 68010, 68020, 68030, 6840
Arquitectura II
CISC
El objetivo de CISC será completar la tarea en tan pocas líneas de
código
como sea posible. Esto se lleva a cabo a través de la
construcción de un
microprocesador que entienda y ejecute un
conjunto de operaciones.
El formato de instrucción es de longitud variable.
Dispone de un gran juego de instrucciones, habitualmente más de
cien, para dar respuesta a la mayoría de las necesidades de los
programadores.
Dispone de un número muy elevado de modos de direccionamiento.
Es una familia anterior a la de los procesadores RISC.
La unidad de control es microprogramada; es decir, la ejecución de
instrucciones se realiza descomponiendo la instrucción en una
secuencia de microinstrucciones muy simples.
Procesa instrucciones largas y de tamaño variable, lo que dificulta el
procesamiento simultáneo de instrucciones.
Arquitectura II
CISC
Imaginemos que para éste ejemplo tenemos la instrucción
"MULT". Cuandose ejecuta
la instrucción, ésta carga los
dos operandos en registros separados
La ejecución de la instrucción concluye con solo la siguiente
instrucción:
MOV AX, DS:[0052h]
MULT DS:[0023h], AX
MULT es una “instrucción compleja”, ya que opera directamente
en la memoria de la computadora y no requiere indicaciones
explicitas por el programador para realizar la carga de los datos.
Analizando un poco la expresión tendríamos que ésta representa
una instrucción como:
a = a * b
Una ventaja es que el compilador tiene poco trabajo que hacer al
traducir la instrucción a un lenguaje de alto nivel.
Arquitectura II
RISC
Debido a que se tiene un conjunto de instrucciones simplificado,
éstas se pueden implantar por hardware directamente en la CPU,
lo cual elimina la microprogramación y la necesidad de decodificar
instrucciones complejas.
Permite el uso de la técnica denominada Pipeline para paralelizar
la ejecución de instrucciones
Ejemplos son:

PowerPC, Alpha-Dec, MIPS
Arquitectura II
RISC
 El formato de instrucción es de tamaño fijo y corto, lo que permite un
procesamiento más fácil y rápido.
El juego de instrucciones se reduce a instrucciones básicas y simples, con
las que se deben implementar todas las operaciones complejas. Una
instrucción de un procesador CISC se tiene que escribir como un conjunto
de instrucciones RISC.
Dispone de un número muy reducido de modos de direccionamiento.
La arquitectura es de tipo load-store (carga y almacena) o registroregistro. Las únicas instrucciones que tienen acceso a memoria son LOAD
y STORE, y el resto de las instrucciones utilizan registros como operandos.
Dispone de un amplio banco de registros de propósito general.
Casi todas las instrucciones se pueden ejecutar en pocos ciclos de reloj.
Este tipo de juego de instrucción facilita la segmentación del ciclo de
ejecución, lo que permite la ejecución simultánea de instrucciones.
La unidad de control es cableada y microprogramada.
Arquitectura II
RISC
 El código apropiado para esta ejecución es;
 LOAD AX, DS:[0023h]
 LOAD BX, DS:[0052h]
 PROD AX, BX
 STORE DS:[0023h], AX
 De entrada parece que el programa es menos eficiente ya que requiere
de más instrucciones para ejecutarse, más memoria para almacenarse y el
compilador deberá trabajar más para realizar la traducción a partir de un
lenguaje de alto nivel.
 Sin embargo los microprocesadores RISC tienen ventajas al ejecutar cada
instrucción en un ciclo de reloj. El tiempo de ejecución sería muy similar
al de CISC.
 También requiere de menos transistores en el hardware que las
instrucciones complejas permitiendo un número
Arquitectura II
CISC vs. RISC
Los procesadores actuales no son completamente CISC o RISC. Los nuevos diseños
de una familia de procesadores con características típicamente CISC incorporan
características RISC, de la misma manera que las familias con características
típicamente RISC incorporan características CISC.
Ejemplo
 PowerPC, que se puede considerar un procesador RISC, incorpora características
CISC, tales como un juego de instrucciones muy amplio (más de doscientas
instrucciones).
 Los últimos procesadores de Intel (fabricante de procesadores típicamente CISC)
también incorporan características RISC.
Arquitectura II
¿Preguntas?
Descargar