Cap8 Estructura procesador · 2013-03-10 · 1 Introducción • En este capítulo juntaremos todo...

69
Arquitecturas de Computadores 8 Estructura del Procesador Prof. Javier Cañas R.

Transcript of Cap8 Estructura procesador · 2013-03-10 · 1 Introducción • En este capítulo juntaremos todo...

Page 1: Cap8 Estructura procesador · 2013-03-10 · 1 Introducción • En este capítulo juntaremos todo lo estudiado anteriormente para generar la micro-arquitectura de un procesador.

Arquitecturas de Computadores8 Estructura del Procesador

Prof. Javier Cañas R.

Page 2: Cap8 Estructura procesador · 2013-03-10 · 1 Introducción • En este capítulo juntaremos todo lo estudiado anteriormente para generar la micro-arquitectura de un procesador.

Temario

1. Introducción2. Proceso de Diseño3. La Máquina de un Ciclo4. La Máquina Multiciclo

Page 3: Cap8 Estructura procesador · 2013-03-10 · 1 Introducción • En este capítulo juntaremos todo lo estudiado anteriormente para generar la micro-arquitectura de un procesador.

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.

Page 4: Cap8 Estructura procesador · 2013-03-10 · 1 Introducción • En este capítulo juntaremos todo lo estudiado anteriormente para generar la micro-arquitectura de un procesador.

... 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.

Page 5: Cap8 Estructura procesador · 2013-03-10 · 1 Introducción • En este capítulo juntaremos todo lo estudiado anteriormente para generar la micro-arquitectura de un procesador.

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.

Page 6: Cap8 Estructura procesador · 2013-03-10 · 1 Introducción • En este capítulo juntaremos todo lo estudiado anteriormente para generar la micro-arquitectura de un procesador.

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”

Page 7: Cap8 Estructura procesador · 2013-03-10 · 1 Introducción • En este capítulo juntaremos todo lo estudiado anteriormente para generar la micro-arquitectura de un procesador.

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

Page 8: Cap8 Estructura procesador · 2013-03-10 · 1 Introducción • En este capítulo juntaremos todo lo estudiado anteriormente para generar la micro-arquitectura de un procesador.

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

Page 9: Cap8 Estructura procesador · 2013-03-10 · 1 Introducción • En este capítulo juntaremos todo lo estudiado anteriormente para generar la micro-arquitectura de un procesador.

Vista abstracta

Page 10: Cap8 Estructura procesador · 2013-03-10 · 1 Introducción • En este capítulo juntaremos todo lo estudiado anteriormente para generar la micro-arquitectura de un procesador.

Fetch e incremento del PC

Page 11: Cap8 Estructura procesador · 2013-03-10 · 1 Introducción • En este capítulo juntaremos todo lo estudiado anteriormente para generar la micro-arquitectura de un procesador.

Formato de Instrucciones

Page 12: Cap8 Estructura procesador · 2013-03-10 · 1 Introducción • En este capítulo juntaremos todo lo estudiado anteriormente para generar la micro-arquitectura de un procesador.

Componentes para implementar instrucciones ALU tipo R

Page 13: Cap8 Estructura procesador · 2013-03-10 · 1 Introducción • En este capítulo juntaremos todo lo estudiado anteriormente para generar la micro-arquitectura de un procesador.

El camino de datos de una instrucción tipo R

Instruction

Page 14: Cap8 Estructura procesador · 2013-03-10 · 1 Introducción • En este capítulo juntaremos todo lo estudiado anteriormente para generar la micro-arquitectura de un procesador.

Componentes para implementar loads y stores

Page 15: Cap8 Estructura procesador · 2013-03-10 · 1 Introducción • En este capítulo juntaremos todo lo estudiado anteriormente para generar la micro-arquitectura de un procesador.

Instrucciones de memoria y tipo R

Page 16: Cap8 Estructura procesador · 2013-03-10 · 1 Introducción • En este capítulo juntaremos todo lo estudiado anteriormente para generar la micro-arquitectura de un procesador.

El Camino de Datos para saltos

Page 17: Cap8 Estructura procesador · 2013-03-10 · 1 Introducción • En este capítulo juntaremos todo lo estudiado anteriormente para generar la micro-arquitectura de un procesador.
Page 18: Cap8 Estructura procesador · 2013-03-10 · 1 Introducción • En este capítulo juntaremos todo lo estudiado anteriormente para generar la micro-arquitectura de un procesador.

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.

Page 19: Cap8 Estructura procesador · 2013-03-10 · 1 Introducción • En este capítulo juntaremos todo lo estudiado anteriormente para generar la micro-arquitectura de un procesador.

La unidad de Control

Page 20: Cap8 Estructura procesador · 2013-03-10 · 1 Introducción • En este capítulo juntaremos todo lo estudiado anteriormente para generar la micro-arquitectura de un procesador.

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:

Page 21: Cap8 Estructura procesador · 2013-03-10 · 1 Introducción • En este capítulo juntaremos todo lo estudiado anteriormente para generar la micro-arquitectura de un procesador.

... 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

Page 22: Cap8 Estructura procesador · 2013-03-10 · 1 Introducción • En este capítulo juntaremos todo lo estudiado anteriormente para generar la micro-arquitectura de un procesador.

... 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:

Page 23: Cap8 Estructura procesador · 2013-03-10 · 1 Introducción • En este capítulo juntaremos todo lo estudiado anteriormente para generar la micro-arquitectura de un procesador.

Lógica de Control

Se puede ver que la ALU sólo se controla con 3 bits

Page 24: Cap8 Estructura procesador · 2013-03-10 · 1 Introducción • En este capítulo juntaremos todo lo estudiado anteriormente para generar la micro-arquitectura de un procesador.

Tabla de Verdad

OP2 = ALUop0 + ALUop1 · F1

OP1 = ALUop1 + F2

OP0 = ALUop1 · (F0 + F3)

Page 25: Cap8 Estructura procesador · 2013-03-10 · 1 Introducción • En este capítulo juntaremos todo lo estudiado anteriormente para generar la micro-arquitectura de un procesador.

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:

Page 26: Cap8 Estructura procesador · 2013-03-10 · 1 Introducción • En este capítulo juntaremos todo lo estudiado anteriormente para generar la micro-arquitectura de un procesador.

Camino de datos con MUX y puntos de control

Page 27: Cap8 Estructura procesador · 2013-03-10 · 1 Introducción • En este capítulo juntaremos todo lo estudiado anteriormente para generar la micro-arquitectura de un procesador.
Page 28: Cap8 Estructura procesador · 2013-03-10 · 1 Introducción • En este capítulo juntaremos todo lo estudiado anteriormente para generar la micro-arquitectura de un procesador.

... Control

• La activación de los puntos de control está determinada por los códigos de operación de cada instrucción

Page 29: Cap8 Estructura procesador · 2013-03-10 · 1 Introducción • En este capítulo juntaremos todo lo estudiado anteriormente para generar la micro-arquitectura de un procesador.

Tipo R

Page 30: Cap8 Estructura procesador · 2013-03-10 · 1 Introducción • En este capítulo juntaremos todo lo estudiado anteriormente para generar la micro-arquitectura de un procesador.

Load

Page 31: Cap8 Estructura procesador · 2013-03-10 · 1 Introducción • En este capítulo juntaremos todo lo estudiado anteriormente para generar la micro-arquitectura de un procesador.

Branch equal

Page 32: Cap8 Estructura procesador · 2013-03-10 · 1 Introducción • En este capítulo juntaremos todo lo estudiado anteriormente para generar la micro-arquitectura de un procesador.

Especificación completa del control

Page 33: Cap8 Estructura procesador · 2013-03-10 · 1 Introducción • En este capítulo juntaremos todo lo estudiado anteriormente para generar la micro-arquitectura de un procesador.

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

Page 34: Cap8 Estructura procesador · 2013-03-10 · 1 Introducción • En este capítulo juntaremos todo lo estudiado anteriormente para generar la micro-arquitectura de un procesador.

Jump

Page 35: Cap8 Estructura procesador · 2013-03-10 · 1 Introducción • En este capítulo juntaremos todo lo estudiado anteriormente para generar la micro-arquitectura de un procesador.

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

Page 36: Cap8 Estructura procesador · 2013-03-10 · 1 Introducción • En este capítulo juntaremos todo lo estudiado anteriormente para generar la micro-arquitectura de un procesador.

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

Page 37: Cap8 Estructura procesador · 2013-03-10 · 1 Introducción • En este capítulo juntaremos todo lo estudiado anteriormente para generar la micro-arquitectura de un procesador.

... Alternativas

• Se asume la siguiente mezcla de instrucciones:

- 24% loads,

- 44% tipo R,

- 18% branch,

- 2%jump

Page 38: Cap8 Estructura procesador · 2013-03-10 · 1 Introducción • En este capítulo juntaremos todo lo estudiado anteriormente para generar la micro-arquitectura de un procesador.

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

Page 39: Cap8 Estructura procesador · 2013-03-10 · 1 Introducción • En este capítulo juntaremos todo lo estudiado anteriormente para generar la micro-arquitectura de un procesador.

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:

Page 40: Cap8 Estructura procesador · 2013-03-10 · 1 Introducción • En este capítulo juntaremos todo lo estudiado anteriormente para generar la micro-arquitectura de un procesador.

... Desempeño

• Ahora se puede asociar tiempos a los caminos críticos anteriores:

Page 41: Cap8 Estructura procesador · 2013-03-10 · 1 Introducción • En este capítulo juntaremos todo lo estudiado anteriormente para generar la micro-arquitectura de un procesador.

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.

Page 42: Cap8 Estructura procesador · 2013-03-10 · 1 Introducción • En este capítulo juntaremos todo lo estudiado anteriormente para generar la micro-arquitectura de un procesador.

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.

Page 43: Cap8 Estructura procesador · 2013-03-10 · 1 Introducción • En este capítulo juntaremos todo lo estudiado anteriormente para generar la micro-arquitectura de un procesador.

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.

Page 44: Cap8 Estructura procesador · 2013-03-10 · 1 Introducción • En este capítulo juntaremos todo lo estudiado anteriormente para generar la micro-arquitectura de un procesador.

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:

Page 45: Cap8 Estructura procesador · 2013-03-10 · 1 Introducción • En este capítulo juntaremos todo lo estudiado anteriormente para generar la micro-arquitectura de un procesador.

Visión de alto nivel

Page 46: Cap8 Estructura procesador · 2013-03-10 · 1 Introducción • En este capítulo juntaremos todo lo estudiado anteriormente para generar la micro-arquitectura de un procesador.

Camino de datos para instrucciones básicas

Page 47: Cap8 Estructura procesador · 2013-03-10 · 1 Introducción • En este capítulo juntaremos todo lo estudiado anteriormente para generar la micro-arquitectura de un procesador.

Camino de datos con puntos de control

Page 48: Cap8 Estructura procesador · 2013-03-10 · 1 Introducción • En este capítulo juntaremos todo lo estudiado anteriormente para generar la micro-arquitectura de un procesador.
Page 49: Cap8 Estructura procesador · 2013-03-10 · 1 Introducción • En este capítulo juntaremos todo lo estudiado anteriormente para generar la micro-arquitectura de un procesador.

Acciones señales de control de 1 bit

Page 50: Cap8 Estructura procesador · 2013-03-10 · 1 Introducción • En este capítulo juntaremos todo lo estudiado anteriormente para generar la micro-arquitectura de un procesador.

Acciones señales de control de 2 bit

Page 51: Cap8 Estructura procesador · 2013-03-10 · 1 Introducción • En este capítulo juntaremos todo lo estudiado anteriormente para generar la micro-arquitectura de un procesador.

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)

Page 52: Cap8 Estructura procesador · 2013-03-10 · 1 Introducción • En este capítulo juntaremos todo lo estudiado anteriormente para generar la micro-arquitectura de un procesador.

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

Page 53: Cap8 Estructura procesador · 2013-03-10 · 1 Introducción • En este capítulo juntaremos todo lo estudiado anteriormente para generar la micro-arquitectura de un procesador.

... Micro operaciones etapa EX

- Branch

if ( A == B) PC ← ALUOut

- Jump

PC ← PC[31-28] | (IR[25-0] <<2)

(| = or modo bit)

Page 54: Cap8 Estructura procesador · 2013-03-10 · 1 Introducción • En este capítulo juntaremos todo lo estudiado anteriormente para generar la micro-arquitectura de un procesador.

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

Page 55: Cap8 Estructura procesador · 2013-03-10 · 1 Introducción • En este capítulo juntaremos todo lo estudiado anteriormente para generar la micro-arquitectura de un procesador.

... Micro operaciones etapa MEM

• Si es una instrucción Aritmética tipo R

Reg[IR[15-11]] ← ALUOut

Page 56: Cap8 Estructura procesador · 2013-03-10 · 1 Introducción • En este capítulo juntaremos todo lo estudiado anteriormente para generar la micro-arquitectura de un procesador.

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

Page 57: Cap8 Estructura procesador · 2013-03-10 · 1 Introducción • En este capítulo juntaremos todo lo estudiado anteriormente para generar la micro-arquitectura de un procesador.

Resumen

Page 58: Cap8 Estructura procesador · 2013-03-10 · 1 Introducción • En este capítulo juntaremos todo lo estudiado anteriormente para generar la micro-arquitectura de un procesador.

Vista de alto nivel del Control Secuencial

Máquina de estado:

Page 59: Cap8 Estructura procesador · 2013-03-10 · 1 Introducción • En este capítulo juntaremos todo lo estudiado anteriormente para generar la micro-arquitectura de un procesador.

Fetch de Instrucción y decodificación

Page 60: Cap8 Estructura procesador · 2013-03-10 · 1 Introducción • En este capítulo juntaremos todo lo estudiado anteriormente para generar la micro-arquitectura de un procesador.

Instrucciones con referencia a memoria

Page 61: Cap8 Estructura procesador · 2013-03-10 · 1 Introducción • En este capítulo juntaremos todo lo estudiado anteriormente para generar la micro-arquitectura de un procesador.

Instrucciones tipo R

Page 62: Cap8 Estructura procesador · 2013-03-10 · 1 Introducción • En este capítulo juntaremos todo lo estudiado anteriormente para generar la micro-arquitectura de un procesador.

Instrucciones Branch y Jump

Page 63: Cap8 Estructura procesador · 2013-03-10 · 1 Introducción • En este capítulo juntaremos todo lo estudiado anteriormente para generar la micro-arquitectura de un procesador.
Page 64: Cap8 Estructura procesador · 2013-03-10 · 1 Introducción • En este capítulo juntaremos todo lo estudiado anteriormente para generar la micro-arquitectura de un procesador.

Máquina de estado

Page 65: Cap8 Estructura procesador · 2013-03-10 · 1 Introducción • En este capítulo juntaremos todo lo estudiado anteriormente para generar la micro-arquitectura de un procesador.

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)

Page 66: Cap8 Estructura procesador · 2013-03-10 · 1 Introducción • En este capítulo juntaremos todo lo estudiado anteriormente para generar la micro-arquitectura de un procesador.

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]

Page 67: Cap8 Estructura procesador · 2013-03-10 · 1 Introducción • En este capítulo juntaremos todo lo estudiado anteriormente para generar la micro-arquitectura de un procesador.

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

Page 68: Cap8 Estructura procesador · 2013-03-10 · 1 Introducción • En este capítulo juntaremos todo lo estudiado anteriormente para generar la micro-arquitectura de un procesador.

... 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.

Page 69: Cap8 Estructura procesador · 2013-03-10 · 1 Introducción • En este capítulo juntaremos todo lo estudiado anteriormente para generar la micro-arquitectura de un procesador.

Arquitecturas de Computadores8 Estructura del Procesador

Prof. Javier Cañas R.