Post on 18-Apr-2020
Arquitecturas de Computadores8 Estructura del Procesador
Prof. Javier Cañas R.
Temario
1. Introducción2. Proceso de Diseño3. La Máquina de un Ciclo4. La Máquina Multiciclo
1 Introducción
• En este capítulo juntaremos todo lo estudiado anteriormente para generar la micro-arquitectura de un procesador.
• Este procesador será un subconjunto de la máquina MIPS.
• Generaremos una fuerte conexión entre la lógica estudiada en la primera parte con la arquitectura del conjunto de instrucciones.
... Introducción
• El diseño de la micro-arquitectura está fuertemente basado en el clásico diseño del procesador MIPS y expuesto por David Patterson y John Hennessy en el texto: “Computer Organization & Design” que es el texto guía en esta parte de la materia.
• Figuras han sido tomadas del mismo texto.
2 Proceso de Diseño
• Comenzaremos con una máquina que soporte el siguiente conjunto de instrucciones:
a)lw,sw
b)add, sub, and, or, slt!
c)beq, j
• Comenzaremos por un modelo que considera un reloj de un ciclo.
Diseño• Dividiremos la micro arquitectura en dos
partes: Camino de Datos y Control.
• El Camino de Datos (Data Path) opera sobre palabras (32b). Las estructuras de HW que contiene son memorias, archivo de registros, registros, ALU.
• El Control es básicamente una máquina de estado que actúa en los llamados “puntos de control”
Etapas en la ejecución de una instrucción
• Las etapas generales en la ejecución de una instrucción son:
-IF: Fetch de instrucción
-ID: Decodificación y Fetch de registros
-EX: Ejecución y cálculo de la dirección efectiva
-MEM: acceso a la memoria en lectura o escritura
-WB: Escritura de Registros en archivo de registros
3 La Máquina de un Ciclo
• Se denomina máquina de un ciclo, a la máquina en la cual las 5 etapas (IF, ID, EX, MEM, WB) ocurren en un ciclo de reloj.
• Para que esto sea posible, es necesario separar la memoria de datos de la memoria de instrucciones.
IF ID EX MEM WB
Vista abstracta
Fetch e incremento del PC
Formato de Instrucciones
Componentes para implementar instrucciones ALU tipo R
El camino de datos de una instrucción tipo R
Instruction
Componentes para implementar loads y stores
Instrucciones de memoria y tipo R
El Camino de Datos para saltos
Unidad de Control para la máquina de un ciclo• En el camino de datos, aparecen líneas
azules. Estas líneas se denominan puntos de control.
• La unidad de control es la que debe generar señales para activar los distintos puntos de control acorde a cada instrucción que se interprete.
La unidad de Control
El control de la ALU
• La ALU se controla a través de 4 líneas.
• Dependiendo del estado lógico de estas líneas se determina su función. La Tabla de control es:
... Control ALU
• Los cuatro bits de control los podemos generar a través de los campos de la instrucción y de dos bits de control llamados ALUop.
Prof. Javier Cañas R
Control Función
000 and
001 or
010 +
110 -
111 <
opcode
func
ALUop
Control ALU
func
ALU Control
... Control de la ALU
• Se puede ver que los 4 bits que controlan la ALU dependen del OP_Code (ALUop) y de los bits y de los códigos de función para las distintas operaciones tipo R.
• La siguiente Tabla sintetiza la lógica de control:
Lógica de Control
Se puede ver que la ALU sólo se controla con 3 bits
Tabla de Verdad
OP2 = ALUop0 + ALUop1 · F1
OP1 = ALUop1 + F2
OP0 = ALUop1 · (F0 + F3)
Diseño del control principal
• La activación de los distintos puntos de control va a depender de las instrucciones.
• Un repaso de los distintos formatos:
Camino de datos con MUX y puntos de control
... Control
• La activación de los puntos de control está determinada por los códigos de operación de cada instrucción
Tipo R
Load
Branch equal
Especificación completa del control
Implementación de J (jump)
• Jump se comporta en forma similar al branch, pero en el cáculo del PC final.
• Para implementar el jump, se almacena en el PC la concatenación de:
- Los 4 bits más significativos del PC+4 actual (bits 31:28)
- El campo inmediato de 26b del Jump
- Los bits 002
Jump
Desempeño de la Máquina de un Ciclo
• Para estimar el desempeño, asumiremos lo siguientes tiempos asociados a:
- Unidades de Memoria= 200ps (pico seg)
- ALU= 100ps
- Archivo de Registros= 50ps
- Muxs, compuertas,....=0ps
Alternativas de Diseño
• Se proponen dos alternativas para el reloj:
a) Cada instrucción toma un ciclo de tiempo fijo
b) Cada instrucción se ejecuta en un ciclo de tiempo variable, es decir, ocupa el tiempo que necesita
... Alternativas
• Se asume la siguiente mezcla de instrucciones:
- 24% loads,
- 44% tipo R,
- 18% branch,
- 2%jump
La ecuación madre
• El desempeño de cualquier procesador se calcula a partir del tiempo de ejecución de la CPU. Este tiempo se expresa por:
Tcpu=Ic×CPI×Tcp
Donde: Ic: Instruction count (número de instrucciones) , CPI: Ciclos de reloj por instrucción y Tcp: período del reloj
Desempeño• Como la máquina es de un ciclo, CPI=1,
entonces, el tiempo de CPU es:
Tcpu=Ic×Tcp
• Los caminos críticos son:
... Desempeño
• Ahora se puede asociar tiempos a los caminos críticos anteriores:
Discusión
• La máquina de un ciclo debe ajustar el período de su reloj al peor caso, es decir, 600ps que corresponde a una instrucción load.
• Si se pudiera a ajustar el período de reloj a la clase de instrucción, la situación sería diferente. El período de reloj podría variar entre 200ps y 600ps.
Ciclo de reloj variable
• El tiempo promedio de CPU con un ciclo de reloj variable para el MIX de instrucciones anterior, sería:
Tcpu=600×25%+550×10%+400×45%+350×15%+200×5%=447.5 ps
• Se Observa que se podría lograr una CPU 1.34 veces más rápida (¿por qué?)
• Lamentablemente, no es posible técnicamente construir un reloj con ciclo variable.
4 La Máquina Multiciclo
• La solución es descomponer la ejecución de una instrucción en una secuencia de etapas
• Esta implementación se denomina Multiciclo.
• La implementación Multiciclo tiene ventajas adicionales: es posible usar unidades funcionales más de una vez por instrucción.
Multiciclo
• Se utiliza: una memoria, una ALU simple.
• Se agregan registros a las unidades funcionales para mantener su valor cuando las entradas están cambiando
• La siguiente figura muestra una visión de alto nivel:
Visión de alto nivel
Camino de datos para instrucciones básicas
Camino de datos con puntos de control
Acciones señales de control de 1 bit
Acciones señales de control de 2 bit
Micro operaciones de la Unidad de Control etapas IF y ID
• Fetch de Instrucción (IF)
IR ← Memoria[PC]
! ! PC←PC+4
• Decodificación de Instrucción y fetch de registro (ID)
A ← Reg[IR[25-21]]! ! B ← Reg[IR[20-16]]
ALUOut ← PC + (ext._signo (IR[15-0]) <<2)
Micro operaciones etapa EX
• El ciclo de Ejecución está determinado por el tipo de instrucción
- Referencia a Memoria
ALUOut ← A + ext._signo (IR[15-0])
- Aritmética tipo R
ALUOut ← A op B
... Micro operaciones etapa EX
- Branch
if ( A == B) PC ← ALUOut
- Jump
PC ← PC[31-28] | (IR[25-0] <<2)
(| = or modo bit)
Micro operaciones etapa MEM
• En este paso:
- lw y sw realizan los accesos a memoria.
- instrucciones tipo R escriben sus resultados en el Archivo de Registros.
• Referencia a Memoria
- si es lw: MDR ← Memoria[ALUOut]
- o, si es sw: Memoria[ALUOut] ← B
... Micro operaciones etapa MEM
• Si es una instrucción Aritmética tipo R
Reg[IR[15-11]] ← ALUOut
Micro operaciones etapa WB
• En este paso, se completa lw, cargando en el Archivo de Registros el valor obtenido de la Memoria
Reg[IR[20-16]] ←MDR
Resumen
Vista de alto nivel del Control Secuencial
Máquina de estado:
Fetch de Instrucción y decodificación
Instrucciones con referencia a memoria
Instrucciones tipo R
Instrucciones Branch y Jump
Máquina de estado
Controlador Microprogramado
• La Microprogramación es una técnica para diseñar unidades de control complejas.
• Utiliza un hardware muy simple y mediante programación se pueden implementar conjunto de instrucciones complejos.
• Actualmente se usa para procesadores de propósitos especiales y algunas arquitecturas CISC (Pentium)
Controlador Microprogramado
Memoria de
microcódigo
PCwrite
PCwritecond
IorD
MemRead
RegDst
Data
Path
Micro PC
Lógica selección de dirección
1 AddrCtl
Registro de instrucciónOP[5-0]
Observaciones
• El control microprogramado se parece a un computador:
- Estados: direcciones de instrucciones
- Las palabras de control son microinstrucciones
- El registro de estado es el microPC
... Observaciones
• Se puede usar un Assembler de microcódigo para codificar secuencias de microinstrucciones
• Como un microprograma es una representación abstracta del control, hay una gran flexibilidad en la forma de traducir el microprograma en micro-operaciones.
Arquitecturas de Computadores8 Estructura del Procesador
Prof. Javier Cañas R.