arquitectura interna
TRANSCRIPT
Arquitectura Interna de un CPU
Diagrama de un CPU y Memoria
Memoria
D0
D7
A0
PC
A3
MAR
SP
T1 T2 IR
CU
ACCALU
+- 1
CPU
Operaciones Frecuentes• Los tipos de operaciones mas frecuentes son:
– CPU – Memoria: Los datos son tranferidos de la memoria al CPU o viceversa
– CPU – E/S: Los datos son transferidos de los dispositivos de Entrada al CPU o del CPU a los dispositivos de Salida
– Procesamiento de Datos: El CPU debe realizar operaciones aritméticas o lógicas usando la unidad aritmética lógica (ALU)
– Control: Una instrucción puede especificar que la secuencia de operaciones sea alterada, por ejemplo: cambiar el IP para apuntar a una nueva dirección
Ciclo de Instrucción
• En su operación básica todos los computadores modernos siguen un proceso que ha permanecido sin muchos cambios desde que Von Neumann introdujo su modelo. A este proceso lo llamamos Ciclo de Instrucción
• Todas las computadoras tienen dos componentes básicos:– CPU– Memoria
Ciclo de Instrucción• La función del CPU es ejecutar programas
que están almacenados en memoria principal, eso se logra siguiendo los siguientes pasos:– Cargando las instrucciones desde memoria al
CPU– Decodificándolas– Ejecutándolas.
• Este ciclo se repite hasta que el programa termina
Ciclo de Instrucción
Ciclo de Ejecución• Una vez que la instrucción ha sido cargada
en el IR y la Unidad de Control la ha decodificado determinando las acciones a seguir, comienza el ciclo de ejecución
• Los pasos que se siguen para realizar un ciclo de instrucción dependen del tipo de instrucción que se este procesando
• Depende del código de operación (opcode)
Microprocesador 8085 • MICROPROCESADOR DE 8 BITS
Cargar ACC con dato residente en Memoria
• LDA “address”• Esta instrucción carga el registro A con un dato
almacenado en memoria. La dirección del dato es “address”.
• T1: Bus Dirección ← IP• T2: IP ← IP+1• T3: IR ← código de operación • Decodifica código de operación• Ejecuta la instrucción
LDA “address”: Fase de Ejecución• Las microoperaciones generadas por
unidad de control son:• T1: Bus Dirección ← IP• T2: IP ← IP + 1• T3: Z ← B2• T1: Bus Dirección ← IP• T2: IP ← IP + 1• T3: W ← B3• T1: Bus Dirección ← WZ• T2 y T3: ACC ← dato
Mejora del Ciclo de Instrucción
• Los primeros microprocesadores procesaban totalmente una instrucción antes de continuar con la siguiente.
• El procesador busca una instrucción la decodifica y la ejecuta, luego pasa a la siguiente instrucción repitiendo nuevamente el mismo proceso de búsqueda, decodificación y ejecución.
• Observe que se sub-utilizaba el bus entre el CPU y la memoria ya que este solo estaba ocupado en uno de los tres pasos.
Mejora del Ciclo de Instrucción
• Por otra parte para los procesadores modernos, se ha desarrollado la técnica de tuberías (pipelines).
• Las tuberías son la forma más común de implementar procesadores hoy en día porque incrementan la capacidad del sistema.
• La idea detrás de las tuberías es que mientras se ejecuta la primera instrucción al mismo tiempo decodifica la segunda y busca la tercera.
• De esta manera se sobrelapan los procesos.
“Pipeline” de Múltiples Etapas
• Las primeras tuberías introducidas eran de tres etapas.
• Estas utilizan todos los recursos del sistema pero puede ocurrir conflictos que hace que las instrucciones no sean ejecutadas hasta que lo haya sido la anterior.
• Así el procesador puede ejecutar una instrucción por ciclo y no cada 3 como era anteriormente.
“Pipeline” de Múltiples Etapas
• Sabemos que con la técnica “pipeline” el procesador puede ejecutar todos los pasos de los ciclos de instrucción en paralelo.
• Por ejemplo, el Procesador Intel 80386 usa un ciclo de ejecución de seis etapas.
• Las seis etapas y las partes del procesador que las ejecutan se identifican en la siguiente transparencia.
• Para efectos de la explicación que vamos hacer asumir que cada etapa de ejecución en el procesador requiere de un solo período de reloj.
“Pipeline” de Múltiples Etapas
• Unidad de Interfase de Bus: accesa memoria y provee entrada-salida.
• Unidad de Pre-busqueda: recibe código de máquina proporcionada por la unidad de interfase de bus y la inserta en la cola de instrucciones.
• Unidad de decodificación de instrucciones: decodifica instrucciones de la cola de instrucciones generando microcódigo.
• Unidad de ejecución: ejecuta el microcódigo generado por la unidad de decodificación.
• Unidad de Segmentación: convierte direcciones lógicas a direcciones lineales.
• Unidad de pagina: convierte direcciones lineales en direcciones físicas y mantiene una lista de las páginas recientemente accesadas.
Ciclo de Instrucción “sin pipeline”
• PROCESADORES SIN TUBERIAS
Ciclo de Instrucción “con pipeline”• PROCESADORES CON TUBERIAS
Arquitectura Superescalar
• En la actualidad se desarrollan procesadores usando la tecnología superescalar .
• Un procesador superescalar tiene dos o más tuberías de ejecución haciendo posible que múltiples instrucciones se encuentren en la etapa de ejecución al mismo tiempo.
• Para n tuberías, n instrucciones pueden ejecutase durante el mismo ciclo de reloj.
• Pentium (2 tuberías) 2 instrucciones por ciclo.• Pentium Pro (3 tuberías) 3 instrucciones por ciclo.
• Pentium 4 ejecuta hasta 6 instrucciones por ciclo.
Ejemplo
• Introduzcamos una segunda tubería a la ya existente tubería de 6 etapas y asumamos que la etapa S4 requiere dos ciclos de reloj.
• En el cuadro que mostraremos, las instrucciones impares entran en la tubería u y las pares entran en la tubería v.
• Nos damos cuenta que la presencia de la segunda tubería elimina los ciclos de espera.
Memoria Física 8088
00000H
FFFFFH
8 bits
1 MB
Memoria Física 8086
512KB
Banco 1
512KB
Banco 0
00000H00001H
FFFFEHFFFFFH
8 bits 8 bits
D0D7D8D15
Memoria Física 80286
8 MB
Banco 1
8 MB
Banco 0
000000H000001H
FFFFFEHFFFFFFH
8 bits 8 bits
D0D7D8D15
Memoria Física 80386
1G 1G 1G 1G
00000000000000010000000200000003
FFFFFFFCFFFFFFFDFFFFFFFEFFFFFFFF
00000004000000050000000600000007
Banco
0
Banco
1
Banco
2
Banco
3
D0D7D8D15D16D23D24D31
MICP 8086: Arquitectura Interna• MICROPROCESADOR DE 16 BITS.
MICP 8086: Arquitectura Interna
• Tiene dos unidades de procesamiento- Unidad de Bus- Unidad de ejecución
• La unidad de Bus tiene una cola de instrucciones de 6 bytes.
• La cola de instrucciones alimenta a la unidad de ejecución que es la que decodifica y ejecuta.
MICP 80286: Arquitectura Interna
• Presenta cuatro unidades de procesamieto- Unidad de Bus- Unidad de Instrucciones- Unidad de Ejecución- Unidad de Direcciones
• Las cuatro unidades de procesamiento son independientes.
• Este paralelismo ayuda a mejorar el rendimiento del microprocesador.