Tema 4 Procesador: camino de datos y unidad de...

48
Tema 4 Procesador: camino de datos y unidad de control Índice Introducción Estructura básica de la CPU: camino de datos y control El ciclo de instrucción Diseño de un procesador monociclo Descomposición de la ejecución en etapas Realización multiciclo Diseño de la unidad de control Procesamiento de excepciones

Transcript of Tema 4 Procesador: camino de datos y unidad de...

Page 1: Tema 4 Procesador: camino de datos y unidad de controlquegrande.org/apuntes/EI/2/ECm1/teoria/07-08/tema_4.pdf · Instrucción de salto condicional: beq Instrucción de salto incondicional:

Tema 4Procesador: camino de datos y unidad de control

Índice

√ Introducción√ Estructura básica de la CPU: camino de datos y

control√ El ciclo de instrucción√ Diseño de un procesador monociclo√ Descomposición de la ejecución en etapas√ Realización multiciclo√ Diseño de la unidad de control√ Procesamiento de excepciones

Page 2: Tema 4 Procesador: camino de datos y unidad de controlquegrande.org/apuntes/EI/2/ECm1/teoria/07-08/tema_4.pdf · Instrucción de salto condicional: beq Instrucción de salto incondicional:

Introducción� En este tema se estudia la Unidad Central de Procesamiento (CPU)

� Camino de datos:� Es la sección del computador encargada de manipular y transformar los

datos procedentes de la memoria o los registros internos, para obtener los resultados

� Su labor es soportar el conjunto de operaciones que precisan lasinstrucciones del repertorio que es capas de interpretar la unidad de control

� Unidad de control:� Es la sección del computador encargada de interpretar las instrucciones del

programa y gobernar la ejecución de las mismas

� La organización de los procesadores ha evolucionado con el paso de los años, guiada por el desarrollo tecnológico y la necesidad de obtener altas prestaciones

� En este tema se analizan las ideas básicas comunes a todos los procesadores, que sientan las bases para poder comprender los avances en arquitectura de computadores

Introducción� El procesador es el que se encarga de ejecutar las

instrucciones especificadas por el programa. � Funciones básicas:

� Captar instrucciones. El procesador debe leer instrucciones de la memoria

� Interpretar instrucciones. La instrucción debe decodificarse para determinar qué acción es necesaria

� Captar datos. La ejecución puede exigir leer datos de la memoria o de un módulo de E/S

� Procesar datos. La ejecución de una instrucción puede exigir llevar a cabo alguna operación aritmética o lógica

� Escribir datos. Los resultados de una ejecución pueden tener que ser escritos en la memoria o en un módulo de E/S

Page 3: Tema 4 Procesador: camino de datos y unidad de controlquegrande.org/apuntes/EI/2/ECm1/teoria/07-08/tema_4.pdf · Instrucción de salto condicional: beq Instrucción de salto incondicional:

Estructura básica de un procesador

� El procesador se compone de varias partes:

1. La unidad de control

2. La unidad aritmético-lógica

3. Un banco de registros

4. Otros registros internos, algunos de los más importantes:

1. El contador de programa (PC)2. El registro de instrucciones (IR)

Estructura básica de un procesador

� Vamos a construir un camino de datos y su unidad de control para dos realizaciones diferentes de un subconjunto del repertorio de instrucciones del MIPS:� Instrucciones de acceso a memoria: lw, sw� Instrucciones aritmético-lógicas: add, sub, or, slt� Instrucción de salto condicional: beq� Instrucción de salto incondicional: j

Memoria deinstrucciones

Instrucción

Dirección

Memoria de Datos

Dirección

Datos

Datos

nº de registro

nº de registro

nº de registroRegistrosPC

ALU

Page 4: Tema 4 Procesador: camino de datos y unidad de controlquegrande.org/apuntes/EI/2/ECm1/teoria/07-08/tema_4.pdf · Instrucción de salto condicional: beq Instrucción de salto incondicional:

Estructura básica de un procesador

� Metodología de sincronización� Las unidades funcionales se clasifican en dos tipos:

combinacionales y secuenciales� La metodología de sincronización define cuándo pueden leerse y

escribirse la diferentes señales� Asumimos sincronización por flancos

Estado 1 Estado 2

Ciclo de reloj

Lógica combinatoria

El ciclo de instrucción

� El procesamiento que requiere una instrucción se denomina ciclo de instrucción.

� Ciclo básico de instrucción:

INICIO

Captura de instrucción

Ejecución de la instrucción

FIN

Ciclo de captación

Ciclo de ejecución

Page 5: Tema 4 Procesador: camino de datos y unidad de controlquegrande.org/apuntes/EI/2/ECm1/teoria/07-08/tema_4.pdf · Instrucción de salto condicional: beq Instrucción de salto incondicional:

El ciclo de instrucción� Para el subconjunto de instrucciones MIPS, los dos primeros pasos son

idénticos:� Usar el contenido del PC para cargar, desde la memoria que contiene el

código, la siguiente instrucción� Leer uno o dos registros, utilizando para ello los campos de la instrucción

específicos para seleccionarlos

0x40000000 000000010100101101001000001000000x40000004 100101010010101000000000000000000x40000008 000100010100101111111111111110110x4000000C 00000000100001000001000100001010

0x40000004 PC

00000001010010110100100000100000 IR

0x40000000 00000001010010110100100000100000

0x40000008 000100010100101111111111111110110x4000000C 00000000100001000001000100001010

0x40000004 100101010010101000000000000000000x40000004 PC

1001010100101010000000000000000 IR

0x40000000 000000010100101101001000001000000x40000004 100101010010101000000000000000000x40000008 000100010100101111111111111110110x4000000C 00000000100001000001000100001010

0x40000008 PC

1001010100101010000000000000000 IR

Memoria Procesador

Diseño de un camino de datos sencillo

� Procesador monociclo:

� Comenzaremos por los elementos básicos y sus funciones asociadas

� Veremos los elementos necesarios para implementarlos

� Veremos un conjunto de instrucciones básico� Veremos como implementar estas instrucciones

Page 6: Tema 4 Procesador: camino de datos y unidad de controlquegrande.org/apuntes/EI/2/ECm1/teoria/07-08/tema_4.pdf · Instrucción de salto condicional: beq Instrucción de salto incondicional:

Diseño de un camino de datos sencillo

� Contador de programa:� Cada instrucción está en una dirección de memoria dada� Almacenamos la dirección en el registro PC� Tras procesar una instrucción avanzamos el contador hasta la

siguiente instrucción

Memoria deinstrucciones

Instrucción

DirecciónPC

Sumador4

Diseño de un camino de datos sencillo

� Operaciones tipo R:� Involucran tres registros: dos de lectura y uno de

escritura� Usan la ALU para realizar las operaciones

Instrucción

EscribirReg

Reg. delectura 1

Dato a escribir

Datoleído 1

Datoleído 2

Reg. delectura 2

Reg. deescritura

RE

GIS

TRO

S

3 Operación de la ALU

Cero

Resultadode la ALU

ALU

Page 7: Tema 4 Procesador: camino de datos y unidad de controlquegrande.org/apuntes/EI/2/ECm1/teoria/07-08/tema_4.pdf · Instrucción de salto condicional: beq Instrucción de salto incondicional:

Diseño de un camino de datos sencillo

� Acceso a memoria:� Instrucciones lw y sw� La dirección se indica con un registro más un

desplazamiento de 16 bits con signo� El desplazamiento se extiende a 32 bits

lw $t0, 8($s0) 100011 10000 01000 0000000000001000

sw $t0, 32($s0) 101011 10000 01000 0000000000100000

Diseño de un camino de datos sencillo

Memoria de Datos

Dirección

Dato aescribir

Datoleído

Instrucción

16 32

3 Operación de la ALU

EscribirReg

LeerMem

EscribirMemReg. delectura 1

Dato a escribir

Datoleído 1

Datoleído 2

Reg. delectura 2Reg. deescritura

RE

GIS

TRO

S

CeroResultadode la ALU

ALU

Extensiónde signo

Page 8: Tema 4 Procesador: camino de datos y unidad de controlquegrande.org/apuntes/EI/2/ECm1/teoria/07-08/tema_4.pdf · Instrucción de salto condicional: beq Instrucción de salto incondicional:

Diseño de un camino de datos sencillo

� Saltos condicionales:� Evalúan si dos registros contienen ó no el mismo

valor� Si la condición se cumple aplican el salto� El salto es relativo con signo� Los 16 bits se extienden a 32 y se desplazan 2

posiciones a la izquierda para direccionar sólo palabras completas

� El PC ya se ha actualizado a PC + 4

Diseño de un camino de datos sencillo

Instrucción

16 32

EscribirReg

Reg. delectura 1

Dato a escribir

Datoleído 1

Datoleído 2

Reg. delectura 2

Reg. deescritura

RE

GIS

TRO

S

3 Operación de la ALU

Cero

ALU

Extensiónde signo

Desp.2 bits ala izq.

ResultadoSumador

PC +4 del camino de datos de instrucciones

Destino salto

Decidir si se hace el salto

Page 9: Tema 4 Procesador: camino de datos y unidad de controlquegrande.org/apuntes/EI/2/ECm1/teoria/07-08/tema_4.pdf · Instrucción de salto condicional: beq Instrucción de salto incondicional:

Diseño de un camino de datos sencillo

� Todo junto:� Para construir el camino de datos hemos de

combinar los elementos explicados anteriormente� Intentaremos reutilizar parte del hardware� El hardware compartido selecciona los datos

mediante multiplexores� Parte del hardware no se podrá reutilizar y habrá que

replicarlo

Diseño de un camino de datos sencillo

Instrucción

16 32

EscribirReg

FuenteALU

Mem2reg

Reg. delectura 1

Dato a escribir

Datoleído 1

Datoleído 2

Reg. delectura 2

Reg. deescritura

RE

GIS

TRO

S

Memoria de Datos

Dirección

Dato aescribir

Datoleído

3 Operación de la ALU

LeerMem

EscribirMem

Cero

Resultadode la ALU

ALU

Extensiónde signo

Mux

Mux

Aritmética + Acceso a Memoria

Page 10: Tema 4 Procesador: camino de datos y unidad de controlquegrande.org/apuntes/EI/2/ECm1/teoria/07-08/tema_4.pdf · Instrucción de salto condicional: beq Instrucción de salto incondicional:

Diseño de un camino de datos sencillo

16 32

EscribirReg

FuenteALU

Mem2reg

Reg. delectura 1

Dato a escribir

Datoleído 1

Datoleído 2

Reg. delectura 2

Reg. deescritura

RE

GIS

TRO

S

Memoria de Datos

Dirección

Dato aescribir

Datoleído

3 Operación de la ALU

LeerMem

EscribirMem

Cero

Resultadode la ALU

ALU

Extensiónde signo

Mux

Mux

Memoria deinstrucciones

Instrucción

Direcciónde lecturaP

C

Sumador4

Incorporamos gestión de PC

Diseño de un camino de datos sencillo

16 32

EscribirReg

FuenteALU

Mem2reg

Origen del PC

Reg. delectura 1

Dato a escribir

Datoleído 1

Datoleído 2

Reg. delectura 2

Reg. deescritura

RE

GIS

TRO

S

Memoria de Datos

Dirección

Dato aescribir

Datoleído

3 Operación de la ALU

LeerMem

EscribirMem

CeroResultadode la ALU

ALU

Extensiónde signo

Mux

Mux

Mux

Memoria deinstrucciones

Instrucción

Direcciónde lecturaP

C

Sumador4

Desp.2 bits ala izq.

Resultado

Sumador

Añadimos saltos condicionales

Page 11: Tema 4 Procesador: camino de datos y unidad de controlquegrande.org/apuntes/EI/2/ECm1/teoria/07-08/tema_4.pdf · Instrucción de salto condicional: beq Instrucción de salto incondicional:

��

Diseño de la unidad de control� Realización monociclo: señales de control

Diseño de la unidad de control� Activación de las líneas determinada por el código de operación:

Page 12: Tema 4 Procesador: camino de datos y unidad de controlquegrande.org/apuntes/EI/2/ECm1/teoria/07-08/tema_4.pdf · Instrucción de salto condicional: beq Instrucción de salto incondicional:

��

Diseño de la unidad de control� Pasos en la realización de una instrucción tipo R (I):

Diseño de la unidad de control� Pasos en la realización de una instrucción tipo R (II):

Page 13: Tema 4 Procesador: camino de datos y unidad de controlquegrande.org/apuntes/EI/2/ECm1/teoria/07-08/tema_4.pdf · Instrucción de salto condicional: beq Instrucción de salto incondicional:

��

Diseño de la unidad de control� Pasos en la realización de una instrucción tipo R (III):

Diseño de la unidad de control� Pasos en la realización de una instrucción tipo R (IV):

Page 14: Tema 4 Procesador: camino de datos y unidad de controlquegrande.org/apuntes/EI/2/ECm1/teoria/07-08/tema_4.pdf · Instrucción de salto condicional: beq Instrucción de salto incondicional:

��

Diseño de la unidad de control� Pasos en la realización de una instrucción lw (I):

Diseño de la unidad de control� Pasos en la realización de una instrucción lw (II):

Page 15: Tema 4 Procesador: camino de datos y unidad de controlquegrande.org/apuntes/EI/2/ECm1/teoria/07-08/tema_4.pdf · Instrucción de salto condicional: beq Instrucción de salto incondicional:

��

Diseño de la unidad de control� Pasos en la realización de una instrucción lw (III):

Diseño de la unidad de control� Pasos en la realización de una instrucción lw (IV):

Page 16: Tema 4 Procesador: camino de datos y unidad de controlquegrande.org/apuntes/EI/2/ECm1/teoria/07-08/tema_4.pdf · Instrucción de salto condicional: beq Instrucción de salto incondicional:

��

Diseño de la unidad de control� Pasos en la realización de una instrucción lw (V):

Diseño de la unidad de control� Pasos en la realización de una instrucción sw (I):

Page 17: Tema 4 Procesador: camino de datos y unidad de controlquegrande.org/apuntes/EI/2/ECm1/teoria/07-08/tema_4.pdf · Instrucción de salto condicional: beq Instrucción de salto incondicional:

��

Diseño de la unidad de control� Pasos en la realización de una instrucción sw (II):

Diseño de la unidad de control� Pasos en la realización de una instrucción sw (III):

Page 18: Tema 4 Procesador: camino de datos y unidad de controlquegrande.org/apuntes/EI/2/ECm1/teoria/07-08/tema_4.pdf · Instrucción de salto condicional: beq Instrucción de salto incondicional:

��

Diseño de la unidad de control� Pasos en la realización de una instrucción sw (IV):

Diseño de la unidad de control� Pasos en la realización de una instrucción beq (I):

Page 19: Tema 4 Procesador: camino de datos y unidad de controlquegrande.org/apuntes/EI/2/ECm1/teoria/07-08/tema_4.pdf · Instrucción de salto condicional: beq Instrucción de salto incondicional:

Diseño de la unidad de control� Pasos en la realización de una instrucción beq (II):

Diseño de la unidad de control� Pasos en la realización de una instrucción beq (III):

Page 20: Tema 4 Procesador: camino de datos y unidad de controlquegrande.org/apuntes/EI/2/ECm1/teoria/07-08/tema_4.pdf · Instrucción de salto condicional: beq Instrucción de salto incondicional:

Diseño de la unidad de control� Pasos en la realización de una instrucción beq (IV):

Diseño de la unidad de control� La función de control para una realización monociclo

está especificada por la siguiente tabla de verdad:

0110Op5

1000ALUOp0

0001ALUOp1

1000Branch

0100MemWrite

0010MemRead

0011RegWrite

XX10MemtoReg

0110ALUSrc

XX01RegDest

0110Op0

0110Op1

1000Op2

0100Op3

0000Op4

beqSwLwFormato Rseñal

entra

das

salid

as

Ejercicio:

Mapas de Karnaugh

Implementación combinacional

Page 21: Tema 4 Procesador: camino de datos y unidad de controlquegrande.org/apuntes/EI/2/ECm1/teoria/07-08/tema_4.pdf · Instrucción de salto condicional: beq Instrucción de salto incondicional:

��

Inconvenientes de la implementación monociclo

� El ciclo de reloj está definido por la instrucción más lenta

� No es posible reutilizar ninguna unidad funcional

� Estos inconvenientes se verían agravados en una arquitectura más compleja que la arquitectura MIPS

Evaluación del rendimiento

� Supóngase los tiempos de ejecución de las unidades funcionales siguientes:

� Acceso a memoria: 2ns� ALU y sumadores: 2ns� Acceso a registros: 1ns

� ¿Cúal de las siguientes realizaciones será más rápida?� Una realización en la que cada instrucción se ejecuta en un ciclo

de tamaño fijo (cada instrucción tarda lo que tardaría la más lenta).

� Una realización donde cada instrucción se ejecuta en un ciclo delongitud variable (cada instrucción tarda únicamente lo necesario)

Page 22: Tema 4 Procesador: camino de datos y unidad de controlquegrande.org/apuntes/EI/2/ECm1/teoria/07-08/tema_4.pdf · Instrucción de salto condicional: beq Instrucción de salto incondicional:

��

Cálculo del ciclo de reloj

Reg. delectura 1

Dato a escribir

Datoleído 1

Datoleído 2

Reg. delectura 2

Reg. deescritura

RE

GIS

TRO

SCero

Resultadode la ALU

ALU

Extensiónde signo

Control

Mux

Mux

Memoria deinstrucciones

Instrucción

Direcciónde lectura

PC

Sumador4

Desp.2 bits ala izq.

Desp.2 bits ala izq.

Inst. [25-21]

Inst. [20-16]

Inst. [15-11]

Inst. [31-26]

Inst. [25-0]

26 28Dirección de jump. [31-0]

PC + 4 [31-28]

16 32Controlde laALU

Resultado

Sumador

Inst. [15-0]

Inst. [5-0]

Memoria de Datos

Dirección

Dato aescribir

Datoleído

Mux

Mux

Mux

EscribirReg

SaltoIncondRegDest

Fuente ALU

Salt Cond

ALUop

Mem2regLeerMem

EscribirMem

1 ns1 ns2 ns2 ns2 ns2 ns

2 ns2 ns

2 ns2 ns2 ns2 ns

Cálculo del ciclo de reloj

2

5

7

8

6

ns

Cargar instrucciónJump

ALULectura de registros

Cargar instrucción

Salto condicional

Escritura en memoriaALULectura de

registrosCargar instrucciónsw

Escritura de registros

Lectura memoriaALULectura de

registrosCargar instrucciónlw

Escritura de registrosALULectura de

registrosCargar instrucciónAritmética

Unidades funcionales utilizadas por cada tipo de instrucciónTipo de instrucción

Page 23: Tema 4 Procesador: camino de datos y unidad de controlquegrande.org/apuntes/EI/2/ECm1/teoria/07-08/tema_4.pdf · Instrucción de salto condicional: beq Instrucción de salto incondicional:

��

Evaluación del rendimiento

Tiempo medio ejecución para monociclo: 8 nsTiempo medio ejecución ideal:6 x 44% + 8 x 24% + 7 x 12% + 5 x 18% + 2 x 2% = 6.3 ns

Rendimiento relativo: 8 / 6.3 = 1.27

Jump: 2%Saltos condicionales: 18%

sw: 12%lw: 24%Aritméticas: 44%

Reducción de costes

Reg. delectura 1

Dato a escribir

Datoleído 1

Datoleído 2

Reg. delectura 2

Reg. deescritura

RE

GIS

TRO

S

Cero

Resultadode la ALU

ALU

Extensiónde signo

Control

Mux

Mux

Memoria deinstrucciones

Instrucción

Direcciónde lectura

PC

Sumador4

Desp.2 bits ala izq.

Desp.2 bits ala izq.

Inst. [25-21]

Inst. [20-16]

Inst. [15-11]

Inst. [31-26]

Inst. [25-0]

26 28Dirección de jump. [31-0]

PC + 4 [31-28]

16 32Controlde laALU

Resultado

Sumador

Inst. [15-0]

Inst. [5-0]

Memoria de Datos

Dirección

Dato aescribir

Datoleído

Mux

Mux

Mux

Page 24: Tema 4 Procesador: camino de datos y unidad de controlquegrande.org/apuntes/EI/2/ECm1/teoria/07-08/tema_4.pdf · Instrucción de salto condicional: beq Instrucción de salto incondicional:

��

Reducción de costes

Reg. delectura 1

Dato a escribir

Datoleído 1

Datoleído 2

Reg. delectura 2

Reg. deescritura

RE

GIS

TRO

SCero

Resultadode la ALU

ALU

Extensiónde signo

Control

Mux

Mux

Memoria deinstrucciones

Instrucción

Direcciónde lectura

PC

Sumador4

Desp.2 bits ala izq.

Desp.2 bits ala izq.

Inst. [25-21]

Inst. [20-16]

Inst. [15-11]

Inst. [31-26]

Inst. [25-0]

26 28Dirección de jump. [31-0]

PC + 4 [31-28]

16 32Controlde laALU

Resultado

Sumador

Inst. [15-0]

Inst. [5-0]

Memoria de Datos

Dirección

Dato aescribir

Datoleído

Mux

Mux

Mux

Implementación multiciclo

� Dedicaremos varios ciclos a cada instrucción� Necesitaremos

� Más multiplexores� Más registros

� Cada dato y resultado estará en un registro para que no se destruya al terminar el ciclo

Page 25: Tema 4 Procesador: camino de datos y unidad de controlquegrande.org/apuntes/EI/2/ECm1/teoria/07-08/tema_4.pdf · Instrucción de salto condicional: beq Instrucción de salto incondicional:

��

Esquema multiciclo

Reg. delectura 1

Dato a escribir

Datoleído 1

Datoleído 2

Reg. delectura 2

Reg. deescritura

RE

GIS

TRO

SMemoria

Instruccioneso datos

Dirección

Resgistro de datos dememoria

Registro deinstrucciones

ALU

A

BDato

SalidaALU

PC

Sin coste adicional

Implementación multiciclo

RE

GIS

TRO

S

Reg. delectura 1

Dato a escribir

Datoleído 1

Datoleído 2

Reg. delectura 2Reg. deescritura

Instrucción[25-21]

Registro de instrucción

Instrucción[20-16]

Instrucción[15-0]

Mux

0

1

Mux

0

1

Mux

0

1

Mux

0

1

Mux

0

1

2

3

A

B

Registro de datos de

memoria Exten.signo

Desp.2 bits ala izq.

Desp.2 bits ala izq.

Memoria

Instruccioneso datos

Dirección

Datos

PC

Instr.[15-0]

16

26

32

4

Instr.[15-11]

Instrucción [25-0]

PC [31-28]

Saltoincond. [31-0]28

Mux

0

1

2

Cero

ResultadoALU

ALU

SalidaALU

Page 26: Tema 4 Procesador: camino de datos y unidad de controlquegrande.org/apuntes/EI/2/ECm1/teoria/07-08/tema_4.pdf · Instrucción de salto condicional: beq Instrucción de salto incondicional:

��

Carga de una instrucción

RE

GIS

TRO

S

Reg. delectura 1

Dato a escribir

Datoleído 1

Datoleído 2

Reg. delectura 2Reg. deescritura

Instrucción[25-21]

Registro de instrucción

Instrucción[20-16]

Instrucción[15-0]

Mux

0

1

Mux

0

1

Mux

0

1

Mux

0

1

Mux

0

1

2

3

A

B

Registro de datos de

memoria Exten.signo

Desp.2 bits ala izq.

Desp.2 bits ala izq.

Memoria

Instruccioneso datos

Dirección

Datos

PC

Instr.[15-0]

16

26

32

4

Instr.[15-11]

Instrucción [25-0]

PC [31-28]

Saltoincond. [31-0]28

Mux

0

1

2

Cero

ResultadoALU

ALU

SalidaALU

IR=Memoria[PC]PC=PC+4

Instrucciones Aritmético-Lógicas: Búsqueda de registros

RE

GIS

TRO

S

Reg. delectura 1

Dato a escribir

Datoleído 1

Datoleído 2

Reg. delectura 2Reg. deescritura

Instrucción[25-21]

Registro de instrucción

Instrucción[20-16]

Instrucción[15-0]

Mux

0

1

Mux

0

1

Mux

0

1

Mux

0

1

Mux

0

1

2

3

A

B

Registro de datos de

memoria Exten.signo

Desp.2 bits ala izq.

Desp.2 bits ala izq.

Memoria

Instruccioneso datos

Dirección

Datos

PC

Instr.[15-0]

16

26

32

4

Instr.[15-11]

Instrucción [25-0]

PC [31-28]

Saltoincond. [31-0]28

Mux

0

1

2

Cero

ResultadoALU

ALU

SalidaALU

A=Reg[IR[25-21]]B=Reg[IR[20-16]]

Page 27: Tema 4 Procesador: camino de datos y unidad de controlquegrande.org/apuntes/EI/2/ECm1/teoria/07-08/tema_4.pdf · Instrucción de salto condicional: beq Instrucción de salto incondicional:

��

Instrucciones Aritmético-Lógicas: Ejecución

RE

GIS

TRO

S

Reg. delectura 1

Dato a escribir

Datoleído 1

Datoleído 2

Reg. delectura 2Reg. deescritura

Instrucción[25-21]

Registro de instrucción

Instrucción[20-16]

Instrucción[15-0]

Mux

0

1

Mux

0

1

Mux

0

1

Mux

0

1

Mux

0

1

2

3

A

B

Registro de datos de

memoria Exten.signo

Desp.2 bits ala izq.

Desp.2 bits ala izq.

Memoria

Instruccioneso datos

Dirección

Datos

PC

Instr.[15-0]

16

26

32

4

Instr.[15-11]

Instrucción [25-0]

PC [31-28]

Saltoincond. [31-0]28

Mux

0

1

2

Cero

ResultadoALU

ALU

SalidaALU

ALUOut = A op B

Instrucciones Aritmético-Lógicas: Guarda resultados en registro

RE

GIS

TRO

S

Reg. delectura 1

Dato a escribir

Datoleído 1

Datoleído 2

Reg. delectura 2Reg. deescritura

Instrucción[25-21]

Registro de instrucción

Instrucción[20-16]

Instrucción[15-0]

Mux

0

1

Mux

0

1

Mux

0

1

Mux

0

1

Mux

0

1

2

3

A

B

Registro de datos de

memoria Exten.signo

Desp.2 bits ala izq.

Desp.2 bits ala izq.

Memoria

Instruccioneso datos

Dirección

Datos

PC

Instr.[15-0]

16

26

32

4

Instr.[15-11]

Instrucción [25-0]

PC [31-28]

Saltoincond. [31-0]28

Mux

0

1

2

Cero

ResultadoALU

ALU

SalidaALU

Reg[IR[15-11]]=ALUOut

Page 28: Tema 4 Procesador: camino de datos y unidad de controlquegrande.org/apuntes/EI/2/ECm1/teoria/07-08/tema_4.pdf · Instrucción de salto condicional: beq Instrucción de salto incondicional:

��

Instrucción lw: Búsqueda de registros

RE

GIS

TRO

S

Reg. delectura 1

Dato a escribir

Datoleído 1

Datoleído 2

Reg. delectura 2Reg. deescritura

Instrucción[25-21]

Registro de instrucción

Instrucción[20-16]

Instrucción[15-0]

Mux

0

1

Mux

0

1

Mux

0

1

Mux

0

1

Mux

0

1

2

3

A

B

Registro de datos de

memoria Exten.signo

Desp.2 bits ala izq.

Desp.2 bits ala izq.

Memoria

Instruccioneso datos

Dirección

Datos

PC

Instr.[15-0]

16

26

32

4

Instr.[15-11]

Instrucción [25-0]

PC [31-28]

Saltoincond. [31-0]28

Mux

0

1

2

Cero

ResultadoALU

ALU

SalidaALU

A=Reg[IR[25-21]]B=Reg[IR[20-16]]

Instrucción lw: Cálculo de la dirección

RE

GIS

TRO

S

Reg. delectura 1

Dato a escribir

Datoleído 1

Datoleído 2

Reg. delectura 2Reg. deescritura

Instrucción[25-21]

Registro de instrucción

Instrucción[20-16]

Instrucción[15-0]

Mux

0

1

Mux

0

1

Mux

0

1

Mux

0

1

Mux

0

1

2

3

A

B

Registro de datos de

memoria Exten.signo

Desp.2 bits ala izq.

Desp.2 bits ala izq.

Memoria

Instruccioneso datos

Dirección

Datos

PC

Instr.[15-0]

16

26

32

4

Instr.[15-11]

Instrucción [25-0]

PC [31-28]

Saltoincond. [31-0]28

Mux

0

1

2

Cero

ResultadoALU

ALU

SalidaALU

ALUOut = A + signo extendido (IR[15-0])

Page 29: Tema 4 Procesador: camino de datos y unidad de controlquegrande.org/apuntes/EI/2/ECm1/teoria/07-08/tema_4.pdf · Instrucción de salto condicional: beq Instrucción de salto incondicional:

Instrucción lw: Lectura de memoria

RE

GIS

TRO

S

Reg. delectura 1

Dato a escribir

Datoleído 1

Datoleído 2

Reg. delectura 2Reg. deescritura

Instrucción[25-21]

Registro de instrucción

Instrucción[20-16]

Instrucción[15-0]

Mux

0

1

Mux

0

1

Mux

0

1

Mux

0

1

Mux

0

1

2

3

A

B

Registro de datos de

memoria Exten.signo

Desp.2 bits ala izq.

Desp.2 bits ala izq.

Memoria

Instruccioneso datos

Dirección

Datos

PC

Instr.[15-0]

16

26

32

4

Instr.[15-11]

Instrucción [25-0]

PC [31-28]

Saltoincond. [31-0]28

Mux

0

1

2

Cero

ResultadoALU

ALU

SalidaALU

MDR=Memoria[ALUOut]

Instrucción lw: Guarda dato en registro

RE

GIS

TRO

S

Reg. delectura 1

Dato a escribir

Datoleído 1

Datoleído 2

Reg. delectura 2Reg. deescritura

Instrucción[25-21]

Registro de instrucción

Instrucción[20-16]

Instrucción[15-0]

Mux

0

1

Mux

0

1

Mux

0

1

Mux

0

1

Mux

0

1

2

3

A

B

Registro de datos de

memoria Exten.signo

Desp.2 bits ala izq.

Desp.2 bits ala izq.

Memoria

Instruccioneso datos

Dirección

Datos

PC

Instr.[15-0]

16

26

32

4

Instr.[15-11]

Instrucción [25-0]

PC [31-28]

Saltoincond. [31-0]28

Mux

0

1

2

Cero

ResultadoALU

ALU

SalidaALU

Reg[IR[20-16]] = MDR

Page 30: Tema 4 Procesador: camino de datos y unidad de controlquegrande.org/apuntes/EI/2/ECm1/teoria/07-08/tema_4.pdf · Instrucción de salto condicional: beq Instrucción de salto incondicional:

Instrucción sw: Búsqueda de registros

RE

GIS

TRO

S

Reg. delectura 1

Dato a escribir

Datoleído 1

Datoleído 2

Reg. delectura 2Reg. deescritura

Instrucción[25-21]

Registro de instrucción

Instrucción[20-16]

Instrucción[15-0]

Mux

0

1

Mux

0

1

Mux

0

1

Mux

0

1

Mux

0

1

2

3

A

B

Registro de datos de

memoria Exten.signo

Desp.2 bits ala izq.

Desp.2 bits ala izq.

Memoria

Instruccioneso datos

Dirección

Datos

PC

Instr.[15-0]

16

26

32

4

Instr.[15-11]

Instrucción [25-0]

PC [31-28]

Saltoincond. [31-0]28

Mux

0

1

2

Cero

ResultadoALU

ALU

SalidaALU

A=Reg[IR[25-21]]B=Reg[IR[20-16]]

Instrucción sw: Cálculo de la dirección

RE

GIS

TRO

S

Reg. delectura 1

Dato a escribir

Datoleído 1

Datoleído 2

Reg. delectura 2Reg. deescritura

Instrucción[25-21]

Registro de instrucción

Instrucción[20-16]

Instrucción[15-0]

Mux

0

1

Mux

0

1

Mux

0

1

Mux

0

1

Mux

0

1

2

3

A

B

Registro de datos de

memoria Exten.signo

Desp.2 bits ala izq.

Desp.2 bits ala izq.

Memoria

Instruccioneso datos

Dirección

Datos

PC

Instr.[15-0]

16

26

32

4

Instr.[15-11]

Instrucción [25-0]

PC [31-28]

Saltoincond. [31-0]28

Mux

0

1

2

Cero

ResultadoALU

ALU

SalidaALU

ALUOut = A + signo extendido (IR[15-0])

Page 31: Tema 4 Procesador: camino de datos y unidad de controlquegrande.org/apuntes/EI/2/ECm1/teoria/07-08/tema_4.pdf · Instrucción de salto condicional: beq Instrucción de salto incondicional:

��

Instrucción sw: Escritura en memoria

RE

GIS

TRO

S

Reg. delectura 1

Dato a escribir

Datoleído 1

Datoleído 2

Reg. delectura 2Reg. deescritura

Instrucción[25-21]

Registro de instrucción

Instrucción[20-16]

Instrucción[15-0]

Mux

0

1

Mux

0

1

Mux

0

1

Mux

0

1

Mux

0

1

2

3

A

B

Registro de datos de

memoria Exten.signo

Desp.2 bits ala izq.

Desp.2 bits ala izq.

Memoria

Instruccioneso datos

Dirección

Datos

PC

Instr.[15-0]

16

26

32

4

Instr.[15-11]

Instrucción [25-0]

PC [31-28]

Saltoincond. [31-0]28

Mux

0

1

2

Cero

ResultadoALU

ALU

SalidaALU

Memoria[ALUOut] = B

Instrucción beq: Búsqueda de registros

RE

GIS

TRO

S

Reg. delectura 1

Dato a escribir

Datoleído 1

Datoleído 2

Reg. delectura 2Reg. deescritura

Instrucción[25-21]

Registro de instrucción

Instrucción[20-16]

Instrucción[15-0]

Mux

0

1

Mux

0

1

Mux

0

1

Mux

0

1

Mux

0

1

2

3

A

B

Registro de datos de

memoria Exten.signo

Desp.2 bits ala izq.

Desp.2 bits ala izq.

Memoria

Instruccioneso datos

Dirección

Datos

PC

Instr.[15-0]

16

26

32

4

Instr.[15-11]

Instrucción [25-0]

PC [31-28]

Saltoincond. [31-0]28

Mux

0

1

2

Cero

ResultadoALU

ALU

SalidaALU

A=Reg[IR[25-21]]B=Reg[IR[20-16]]

ALUOut = PC + (signo extendido (IR[15-0]) << 2)

Page 32: Tema 4 Procesador: camino de datos y unidad de controlquegrande.org/apuntes/EI/2/ECm1/teoria/07-08/tema_4.pdf · Instrucción de salto condicional: beq Instrucción de salto incondicional:

��

Instrucción beq: Comprobación con éxito

RE

GIS

TRO

S

Reg. delectura 1

Dato a escribir

Datoleído 1

Datoleído 2

Reg. delectura 2Reg. deescritura

Instrucción[25-21]

Registro de instrucción

Instrucción[20-16]

Instrucción[15-0]

Mux

0

1

Mux

0

1

Mux

0

1

Mux

0

1

Mux

0

1

2

3

A

B

Registro de datos de

memoria Exten.signo

Desp.2 bits ala izq.

Desp.2 bits ala izq.

Memoria

Instruccioneso datos

Dirección

Datos

PC

Instr.[15-0]

16

26

32

4

Instr.[15-11]

Instrucción [25-0]

PC [31-28]

Saltoincond. [31-0]28

Mux

0

1

2

Cero

ResultadoALU

ALU

SalidaALU

����

If (A==B) PC = ALUOut

Instrucción beq: Comprobación sin éxito

RE

GIS

TRO

S

Reg. delectura 1

Dato a escribir

Datoleído 1

Datoleído 2

Reg. delectura 2Reg. deescritura

Instrucción[25-21]

Registro de instrucción

Instrucción[20-16]

Instrucción[15-0]

Mux

0

1

Mux

0

1

Mux

0

1

Mux

0

1

Mux

0

1

2

3

A

B

Registro de datos de

memoria Exten.signo

Desp.2 bits ala izq.

Desp.2 bits ala izq.

Memoria

Instruccioneso datos

Dirección

Datos

PC

Instr.[15-0]

16

26

32

4

Instr.[15-11]

Instrucción [25-0]

PC [31-28]

Saltoincond. [31-0]28

Mux

0

1

2

Cero

ResultadoALU

ALU

SalidaALU

����

Page 33: Tema 4 Procesador: camino de datos y unidad de controlquegrande.org/apuntes/EI/2/ECm1/teoria/07-08/tema_4.pdf · Instrucción de salto condicional: beq Instrucción de salto incondicional:

��

Instrucción Jump: Ejecución del salto

RE

GIS

TRO

S

Reg. delectura 1

Dato a escribir

Datoleído 1

Datoleído 2

Reg. delectura 2Reg. deescritura

Instrucción[25-21]

Registro de instrucción

Instrucción[20-16]

Instrucción[15-0]

Mux

0

1

Mux

0

1

Mux

0

1

Mux

0

1

Mux

0

1

2

3

A

B

Registro de datos de

memoria Exten.signo

Desp.2 bits ala izq.

Desp.2 bits ala izq.

Memoria

Instruccioneso datos

Dirección

Datos

PC

Instr.[15-0]

16

26

32

4

Instr.[15-11]

Instrucción [25-0]

PC [31-28]

Saltoincond. [31-0]28

Mux

0

1

2

Cero

ResultadoALU

ALU

SalidaALU

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

CPI multiciclo

� Hemos repartido las operaciones de forma que el tiempo máximo de computación es el de una unidad funcional

� La unidades más lentas necesitan 2 ns para completar su funcionamiento

� Por tanto el ciclo de reloj durará 2 ns� Por ejemplo, una operación aritmética necesita

4 ciclos = 8 ns

Page 34: Tema 4 Procesador: camino de datos y unidad de controlquegrande.org/apuntes/EI/2/ECm1/teoria/07-08/tema_4.pdf · Instrucción de salto condicional: beq Instrucción de salto incondicional:

��

CPI multiciclo

4,04

Multiciclo

32Jump

318Salto condicional

412sw

524lw

444Aritmética

%Tipo de instrucción

Diseño de la unidad de control

� Realización multiciclo: señales de control

RE

GIS

TRO

S

Reg. delectura 1

Dato a escribir

Datoleído 1

Datoleído 2

Reg. delectura 2

Reg. deescritura

Instrucción[25-21]

Registro de instrucción

Instrucción[20-16]

Instrucción[15-0]

Mux

0

1

Mux

0

1

Mux

0

1

Mux

0

1

Mux

0

1

2

3

A

B

Registro de datos de

memoria Exten.signo

Desp.2 bits ala izq.

Desp.2 bits ala izq.

Memoria

Instruccioneso datos

Dirección

Datos

PC

Instr.[15-0]

16

26

32

4

Instr.[15-11]

Instrucción [25-0]

PC [31-28]

Saltoincond. [31-0]28

Mux

0

1

2

Cero

ResultadoALU

ALU

SalidaALU

SelALUAEscrRegRegDestEscrIREscrMemLeerMem

IoD

EscribirPC

Mem2Reg

ControlALU

ALUop

FuentePCSelALUB

Page 35: Tema 4 Procesador: camino de datos y unidad de controlquegrande.org/apuntes/EI/2/ECm1/teoria/07-08/tema_4.pdf · Instrucción de salto condicional: beq Instrucción de salto incondicional:

��

Diseño de la unidad de control� Realización multiciclo: señales de control

RE

GIS

TRO

S

Reg. delectura 1

Dato a escribir

Datoleído 1

Datoleído 2

Reg. delectura 2

Reg. deescritura

Instrucción[25-21]

Registro de instrucción

Instrucción[20-16]

Instrucción[15-0]

Mux

0

1

Mux

0

1

Mux

0

1

Mux

0

1

Mux

0

1

2

3

A

B

Registro de datos de

memoria Exten.signo

Desp.2 bits ala izq.

Desp.2 bits ala izq.

Memoria

Instruccioneso datos

Dirección

Datos

PC

Instr.[15-0]

16

26

32

4

Instr.[15-11]

Instrucción [25-0]

PC [31-28]

Saltoincond. [31-0]28

Mux

0

1

2

Cero

ResultadoALU

ALU

SalidaALU

SelALUAEscrRegRegDestEscrIR

EscrMemLeerMem

IoD

Control

OP[31-26]

EscrPCEscrPC Cond

Mem2Reg

ControlALU

ALUopFuentePC

SelALUB

Diseño de la unidad de control

� El control del camino de datos multiciclo debe especificar:� Las señales que se van a inicializar en cada paso� El paso siguiente de la secuencia

� Dos técnicas diferentes:� Control cableado. Se basa en las máquinas de

estados finitos. � Control microprogramado. Se representa en forma

de programa de control

Page 36: Tema 4 Procesador: camino de datos y unidad de controlquegrande.org/apuntes/EI/2/ECm1/teoria/07-08/tema_4.pdf · Instrucción de salto condicional: beq Instrucción de salto incondicional:

��

Control cableado� Construiremos una máquina de estados finitos (autómata de

Moore)� El camino de datos multiciclo se controla con las salidas de la

unidad de control (la máquina de estados) � Las entradas de la unidad de control serán

� Los bits de la instrucción� Los indicadores internos

� Máquina de estados finitos:� Cada estado de la máquina representa una etapa y tarda un ciclo

de reloj� Los dos primeros pasos son idénticos para todas las instrucciones� A partir de la tercera etapa depende del código de operación� Después de la última etapa la máquina debe volver al estado inicial

Control cableado

� Realización de máquinas de estados finitos de control:

Estado 0

Inicio

Acceso a memoria

Estado 1

Cargade

instrucción

Decodificarinstrucciones

CargarRegistros

Aritmético-lógicas

beq jump

Page 37: Tema 4 Procesador: camino de datos y unidad de controlquegrande.org/apuntes/EI/2/ECm1/teoria/07-08/tema_4.pdf · Instrucción de salto condicional: beq Instrucción de salto incondicional:

��

Estado 0. Cargar Instrucción

RE

GIS

TRO

S

Reg. delectura 1

Dato a escribir

Datoleído 1

Datoleído 2

Reg. delectura 2

Reg. deescritura

Instrucción[25-21]

Registro de instrucción

Instrucción[20-16]

Instrucción[15-0]

Mux

0

1

Mux

0

1

Mux

0

1

Mux

0

1

Mux

0

1

2

3

A

B

Registrode datos dememoria Exten.

signo

Desp.2 bits ala izq.

Desp.2 bits ala izq.

Memoria

Instruccioneso datos

Dirección

Datos

PC

Instr.[15-0]

16

26

32

4

Instr.[15-11]

Instrucción [25-0]

PC [31-28]

Saltoincond. [31-0]28

Mux

0

1

2

Cero

ResultadoALU

ALU

SalidaALU

SelALUAEscrRegRegDestEscrIR

EscrMemLeerMem

IoD

Control

OP[31-26]

EscrPCEscrPC Cond

Mem2Reg

ControlALU

ALUopFuentePC

SelALUB

Estado 0

Inicio

LeerMemSelALUA = 0

IoD = 0EscrIREscrPC

FuentePC = 00

selALUB = 01ALUOp = 00

A Estado 1

Estado 1. Decodificación

RE

GIS

TRO

S

Reg. delectura 1

Dato a escribir

Datoleído 1

Datoleído 2

Reg. delectura 2

Reg. deescritura

Instrucción[25-21]

Registro de instrucción

Instrucción[20-16]

Instrucción[15-0]

Mux

0

1

Mux

0

1

Mux

0

1

Mux

0

1

Mux

0

1

2

3

A

B

Registro de datos de

memoria Exten.signo

Desp.2 bits ala izq.

Desp.2 bits ala izq.

Memoria

Instruccioneso datos

Dirección

Datos

PC

Instr.[15-0]

16

26

32

4

Instr.[15-11]

Instrucción [25-0]

PC [31-28]

Saltoincond. [31-0]28

Mux

0

1

2

Cero

ResultadoALU

ALU

SalidaALU

SelALUAEscrRegRegDestEscrIR

EscrMemLeerMem

IoD

Control

OP[31-26]

EscrPCEscrPC Cond

Mem2Reg

ControlALU

ALUopFuentePC

SelALUB

Estado 1

De Estado 0 SelALUA = 0selALUB = 11ALUOp = 00

Estado ?

Page 38: Tema 4 Procesador: camino de datos y unidad de controlquegrande.org/apuntes/EI/2/ECm1/teoria/07-08/tema_4.pdf · Instrucción de salto condicional: beq Instrucción de salto incondicional:

��

Control del acceso a memoriaDe Estado 1

Estado 4

Estado 5

Acceso a memoria

Acceso a memor ia

(Op = “LW”) o (Op = “SW”)

(Op = “LW”) (Op = “SW”)

Cálculodirección de memoria

Etapa de escritura

Estado 3

Estado 2

Vuelta al Estado 0

SelALUA = 1selALUB = 10ALUOp = 00

LeerMemIoD = 1

EscrMemI0D = 1

EscrRegMem2Reg = 1RegDest = 0

Control de operaciones aritmético-lógicas

De Estado 1

Finalización de la operación

(Op = Aritmético-lógica)

(Op = “LW”)

Ejecución de la operación

Estado 7

Estado 6

Vuelta al Estado 0

SelALUA = 1selALUB = 00ALUOp = 10

RegDest = 1EscrReg

Mem2Reg

Page 39: Tema 4 Procesador: camino de datos y unidad de controlquegrande.org/apuntes/EI/2/ECm1/teoria/07-08/tema_4.pdf · Instrucción de salto condicional: beq Instrucción de salto incondicional:

Control de beq

De Estado 1

(Op = “beq”)

Finalización de salto condicional

Estado 8

Vuelta al Estado 0

SelALUA = 1selALUB = 00ALUOp = 01EscrPCCond

FuentePC = 01

Control de jump

De Estado 1

(Op = “j”)

Finalización de jump

Estado 9

Vuelta al Estado 0

EscrPCCondFuentePC = 10

Page 40: Tema 4 Procesador: camino de datos y unidad de controlquegrande.org/apuntes/EI/2/ECm1/teoria/07-08/tema_4.pdf · Instrucción de salto condicional: beq Instrucción de salto incondicional:

Máquina de estados completa

Estado 0

Inicio

LeerMemSelALUA = 0

IoD = 0EscrIREscrPC

FuentePC = 00

selALUB = 01ALUOp = 00

Estado 1

SelALUA = 0selALUB = 11ALUOp = 00

(Op = “LW”) o (Op = “SW”)

Estado 4

Estado 5

Acceso a memoria

Acceso a memoria

(Op = “LW”) (Op = “SW”)

Cálculodirección de memoria

Etapa de escritura

Estado 3

Estado 2

SelALUA = 1selALUB = 10ALUOp = 00

LeerMemIoD = 1

EscrMemI0D = 1

EscrRegMem2Reg = 1RegDest = 0

Finalización de la operación

(Op

= Ar

itmét

ico-ló

gica

)

Ejecución de la operación

(Op = “beq”)

Finalización de salto condicional

Estado 8

SelALUA = 1selALUB = 00ALUOp = 01EscrPCCond

FuentePC = 01

(Op = “j”)

Finalización de jump Estado 9

EscrPCCondFuentePC = 10

(Op = “LW”)

Estado 7

Estado 6

SelALUA = 1selALUB = 00ALUOp = 10

RegDest = 1EscrReg

Mem2Reg

Implementación física

Lógica de control

Salidas

Código de operación desde

el registro deinstrucción

Señales de controlpara el camino de datos

Entradas

Registro de estado

4Estado

6Código de operación

16Señales de control

BitsConcepto

Page 41: Tema 4 Procesador: camino de datos y unidad de controlquegrande.org/apuntes/EI/2/ECm1/teoria/07-08/tema_4.pdf · Instrucción de salto condicional: beq Instrucción de salto incondicional:

��

ROM

Lógica de control

PLA y/ó ROM

Salidas

Entradas

Código de operaciónBits [31-26] del

registro de instrucción

Registro de estado

FuentePC (2)ALUop (2)SelALUASelALUB (2)EscrRegRegDestEscrPC condEscrPCIoDLeerMemEscrMemMem2RegEscrIR

ROM única

2 palabras de 20 bits

= 20480 bits

10

Código de operación desde

el registro deinstrucción

Estado Nuevoestado

Señales de control

ROM 1

2 palabras de 16 bits

= 256 bits

4EstadoSeñales de control

ROM 2

2 palabras de 4 bits

= 4096 bits

10

Código de operación desde

el registro deinstrucción

Estado

Nuevoestado

64 Veces, una para cada posible valor de los

6 bits de mayor pesode la dirección

PLA

Lógica de control

PLA y/ó ROM

Salidas

Entradas

Código de operaciónBits [31-26] del

registro de instrucción

Registro de estado

FuentePC (2)ALUop (2)SelALUASelALUB (2)EscrRegRegDestEscrPC condEscrPCIoDLeerMemEscrMemMem2RegEscrIR

Op5

Op4

Op3

Op2

Op1

Op0

S3

S2

S1

S0

IoD

IEscrIR

LeerMemEscrMem

EscrPCEscrPC cond

Mem2RegFuentePC1

ALUOp1

SelALUB0SelALUAEscrRegRegDestNS3NS2NS1NS0

SelALUB1ALUOp2

FuentePC2

Page 42: Tema 4 Procesador: camino de datos y unidad de controlquegrande.org/apuntes/EI/2/ECm1/teoria/07-08/tema_4.pdf · Instrucción de salto condicional: beq Instrucción de salto incondicional:

��

Control microprogramado

� Cada grupo de señales causa la ejecución de una operación básicaespecífica: microoperación.

� La interpretación y ejecución de una instrucción da lugar a una secuencia de operaciones máquina básicas (microoperaciones), cada una controlada por un grupo de señales de control, microinstrucción.

� Una secuencia de microinstrucciones constituye un microprograma.� El código de operación de una instrucción máquina, cuando es

decodificado, señala la microrrutina apropiada incluida en la memoria microprogramada.

� Las microinstrucciones suelen estar ubicadas en una ROM o en unaPLA, por lo que pueden asignarse direcciones a las microinstrucciones.

Control microprogramado

Lógica de control

PLA y/ó ROM

Salidas

Entradas

Código de operaciónBits [31-26] del

registro de instrucción

Registro de estado

CtrlDir

Sumador

14

FuentePC (2)ALUop (2)SelALUASelALUB (2)EscrRegRegDestEscrPC condEscrPCIoDLeerMemEscrMemMem2RegEscrIR

Selección6

• El sumador avanza secuencialmente por los estados

• No en todos los casos se pasa al estado siguiente:

• CtrlDir

• Selección

Page 43: Tema 4 Procesador: camino de datos y unidad de controlquegrande.org/apuntes/EI/2/ECm1/teoria/07-08/tema_4.pdf · Instrucción de salto condicional: beq Instrucción de salto incondicional:

��

Secuencia de estados � Tras terminar una instrucción se ha de retornar al estado 0� Las instrucciones sólo tienen algunos estados en común, después divergen� Esta divergencia puede ocurrir en varios lugares en el diagrama de estados� Necesitamos contemplar estos casos

PLA y/ó ROM

Entradas

Código de operaciónBits [31-26] del

registro de instrucción

Registro de estado

CtrlDir

Sumador

14

MUX3 2 1 0

Selección

Tabla de envío 2 Tabla de envío 1

6

0

• CtrlDir = 0

• Nueva instrucción

• CtrlDir = 1

• Tipo de instrucción

• CtrlDir = 2

• Leer/escribir memoria

• CtrlDir = 3

• Secuencia normal

Secuencia de estados

� Cada tabla de envío está asociada a un estado del que no tiene un único estado destino

� En el caso general crearemos una tabla (ROM/PLA) para cada estado con múltiples estados-destino

� En general, en un procesador complejo, los estados se seleccionarán de forma secuencial con pocas excepciones

Page 44: Tema 4 Procesador: camino de datos y unidad de controlquegrande.org/apuntes/EI/2/ECm1/teoria/07-08/tema_4.pdf · Instrucción de salto condicional: beq Instrucción de salto incondicional:

��

Formato de la microinstrucción

A

A

A

PC

PC

Fuente1

B

B

Extend

ExtShft

4

Fuente2

Restar

Función

Sumar

Sumar

Sumar

ControlALU

Escr ALU

Escr Mem

Leer

ControlRegs

Escr ALU

Leer ALU

Leer PC

Memoria

Ir a 0Cond. ALUbeq1

Ir a 0dir. jumpjump1

Ir a 0

SiguienteAritmetico1

Ir a 0SW2

Ir a 0

SiguienteLW2

Tabla 2Mem1

Tabla 1

SiguienteALUInicio

SecuenciaControlEscrPC

Etiqueta

Traducción de un microprograma a circuitos

Cada campo del microcódigose traduce en un conjunto de señales de control que deben activarse

Page 45: Tema 4 Procesador: camino de datos y unidad de controlquegrande.org/apuntes/EI/2/ECm1/teoria/07-08/tema_4.pdf · Instrucción de salto condicional: beq Instrucción de salto incondicional:

��

Traducción de un microprograma a circuitos

Mem1sw101011

Mem1lw100011

BEQ1beq000100

JUMP1J000010

Rformat1lw000000

ValorNombre

del código de

operación

Campo del código de operación

SW2sw101011

LW2lw100011

ValorNombre

del código de

operación

Campo del código de operación

Tabla 1 de envío de microcódigo

Tabla 2 de envío de microcódigo

Las dos ROMs de envío de microcódigo mostrando el contenido en formasimbólica y usando las etiquetas del microprograma

Contenido de la memoria de control

Page 46: Tema 4 Procesador: camino de datos y unidad de controlquegrande.org/apuntes/EI/2/ECm1/teoria/07-08/tema_4.pdf · Instrucción de salto condicional: beq Instrucción de salto incondicional:

��

Procesamiento de excepciones� Una excepción es un suceso inesperado que se produce en el

procesador, por ejemplo el desbordamiento aritmético� Una interrupción es un suceso que provoca un cambio inesperado,

pero se produce externamente al procesador� Ejemplos de implementación de excepciones:

� Instrucción indefinida� Desbordamiento aritmético

� Métodos para comunicar la causa de una excepción� Registro de estado (denominado registro Causa o Cause Register), que

contiene un campo que indica la razón de la excepción. Es el método utilizado en la arquitectura MIPS. Se utiliza un único punto de entrada al sistema operativo para toda las excepciones

� Interrupciones vectorizadas. La dirección a la que se transfiere el control viene determinada por la causa de la excepción. Por ejemplo,

0xC000 0000Instrucción indefenida

0xC000 0020Desbordamiento arimético

Dirección del vector de excepcionesTipo de excepción

Procesamiento de excepciones

� Acciones a realizar:

� Guardar la dirección de la instrucción causante en el registro contador de programa de la excepción (EPC)

� Transferir el control al sistema operativo en alguna dirección específica

� El sistema operativo ejecuta una rutina específica

� Finalizar el programa o continuar con su ejecución, usando EPC para saber dónde retomar la ejecución

Page 47: Tema 4 Procesador: camino de datos y unidad de controlquegrande.org/apuntes/EI/2/ECm1/teoria/07-08/tema_4.pdf · Instrucción de salto condicional: beq Instrucción de salto incondicional:

��

Procesamiento de excepciones

� Ejemplo de implementación:� Saltaremos a la dirección 0xC0000000 � Necesitamos lo siguientes registros

� Un registro de 32 bits para el EPC� Un registro de 1 bit para el Registro de Causa

� Y las señales de control� Escribir en EPC� Escribir en Registro de Causa� Tipo de excepción (1 bit, pues solo consideramos dos tipos

de excepciones)

Procesamiento de excepciones� Camino de datos con los elementos necesarios para el

procesamiento de excepciones:

SelALUAEscrRegRegDestEscrIR

EscrMemLeerMem

IoD

Control

OP[31-26]

EscrPCEscrPC Cond

Mem2Reg

ALUopFuentePCEscrEPC

CausaIntEscrCausa

SelALUB

RE

GIS

TRO

S

Reg. delectura 1

Dato a escribir

Datoleído 1

Datoleído 2

Reg. delectura 2

Reg. deescritura

Instrucción[25-21]

Registro de instrucción

Instrucción[20-16]

Instrucción[15-0]

Mux

0

1

Mux

0

1

Mux

0

1

Mux

0

1

Mux

0

1

2

3

A

B

Registro de datos de

memoria Exten.signo

Desp.2 bits ala izq.

Desp.2 bits ala izq.

Memoria

Instruccioneso datos

Dirección

Datos

PC

Instr.[15-0]

26

4

Instr.[15-11]

Instrucción [25-0]

PC [31-28]

28

16 32

Saltoincond. [31-0]

C0000000

Mux

0

1

2

3

Cero

ResultadoALU

ALU

SalidaALU EPC

ControlALU

Page 48: Tema 4 Procesador: camino de datos y unidad de controlquegrande.org/apuntes/EI/2/ECm1/teoria/07-08/tema_4.pdf · Instrucción de salto condicional: beq Instrucción de salto incondicional:

��

SelALUAEscrRegRegDestEscrIR

EscrMemLeerMem

IoD

Control

OP[31-26]

EscrPCEscrPC Cond

Mem2Reg

ALUopFuentePCEscrEPC

CausaIntEscrCausa

SelALUB

RE

GIS

TRO

S

Reg. delectura 1

Dato a escribir

Datoleído 1

Datoleído 2

Reg. delectura 2

Reg. deescritura

Instrucción[25-21]

Registro de instrucción

Instrucción[20-16]

Instrucción[15-0]

Mux

0

1

Mux

0

1

Mux

0

1

Mux

0

1

Mux

0

1

2

3

A

B

Registro de datos de

memoria Exten.signo

Desp.2 bits ala izq.

Desp.2 bits ala izq.

Memoria

Instruccioneso datos

Dirección

Datos

PC

Instr.[15-0]

26

4

Instr.[15-11]

Instrucción [25-0]

PC [31-28]

28

16 32

Saltoincond. [31-0]

C0000000

Mux

0

1

2

3

Cero

ResultadoALU

ALU

SalidaALU EPC

ControlALU

Procesamiento de excepciones

Procesamiento de excepciones

Estado 0

Inicio

LeerMemSelALUA = 0

IoD = 0EscrIREscrPC

FuentePC = 00

selALUB = 01ALUOp = 00

Estado 1

SelALUA = 0selALUB = 11ALUOp = 00

(Op = “LW”) o (Op = “SW”)

Estado 4

Estado 5

Acceso a memoria

Acceso a memoria

(Op = “LW”) (Op = “SW”)

Cálculodirección de memoria

Etapa de escritura

Estado 3

Estado 2

SelALUA = 1selALUB = 10ALUOp = 00

LeerMemIoD = 1

EscrMemI0D = 1

EscrRegMem2Reg = 1RegDest = 0

Finalización de la operación

(Op

= Ar

itm-L

ógica

s)

Ejecución de la operac ión

(Op = “beq”)

Finalización de salto condicional

Estado 8

SelALUA = 1selALUB = 0 0ALUOp = 01EscrPCCond

FuentePC = 01

(Op = “j”)(Op = otros) Estado 9

EscrPCCondFuentePC = 10

(Op = “LW”)

Estado 7

Estado 6

SelALUA = 1selALUB = 00ALUOp = 10

RegDest = 1EscrReg

Mem2Reg

Estado 10CausaInt=0EscrCausa

SelALUA = 0

EscrPCFuentePC = 11

selALUB = 01ALUOp = 01

EscrEPC

Estado 11CausaInt=1EscrCausa

SelALUA = 0

EscrPCFuentePC = 11

selALUB = 01ALUOp = 01

EscrEPCDesbordamiento

Finalización de jump