• No se han encontrado resultados

Tema 4 El procesador: camino de datos y unidad de control

N/A
N/A
Protected

Academic year: 2021

Share "Tema 4 El procesador: camino de datos y unidad de control"

Copied!
75
0
0

Texto completo

(1)

Tema 4

El procesador: camino

de datos y unidad de

control

(2)

Í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

(3)

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 las

instrucciones 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

(4)

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

(5)

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)

(6)

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 de

instrucciones

Instrucción

Dirección

Memoria

de Datos

Dirección

Datos

Datos

nº de registro

nº de registro

nº de registro

Registros

PC

ALU

(7)

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

(8)

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

(9)

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 00000001010010110100100000100000 0x40000004 10010101001010100000000000000000 0x40000008 00010001010010111111111111111011 0x4000000C 00000000100001000001000100001010 0x40000004 PC 00000001010010110100100000100000 IR 0x40000000 00000001010010110100100000100000 0x40000008 00010001010010111111111111111011 0x4000000C 00000000100001000001000100001010 0x40000004 10010101001010100000000000000000 0x40000004 PC 1001010100101010000000000000000 IR 0x40000000 00000001010010110100100000100000 0x40000004 10010101001010100000000000000000 0x40000008 00010001010010111111111111111011 0x4000000C 00000000100001000001000100001010 0x40000008 PC 1001010100101010000000000000000 IR

Memoria Procesador

(10)

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

(11)

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 de

instrucciones

Instrucción

Dirección

PC

Sumador

4

(12)

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

lectura 1

Dato a

escribir

Dato

leído 1

Dato

leído 2

Reg. de

lectura 2

Reg. de

escritura

R

E

G

IS

T

R

O

S

3

Operación de la ALU

Cero

Resultado

de la ALU

ALU

(13)

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

(14)

Diseño de un camino de datos sencillo

Memoria

de Datos

Dirección

Dato a

escribir

Dato

leído

Instrucción

16

32

3

Operación de la ALU

EscribirReg

LeerMem

EscribirMem

Reg. de

lectura 1

Dato a

escribir

Dato

leído 1

Dato

leído 2

Reg. de

lectura 2

Reg. de

escritura

R

E

G

IS

T

R

O

S

Cero

Resultado

de la ALU

ALU

Extensión

de signo

(15)

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

(16)

Diseño de un camino de datos sencillo

Instrucción

16

32

EscribirReg

Reg. de

lectura 1

Dato a

escribir

Dato

leído 1

Dato

leído 2

Reg. de

lectura 2

Reg. de

escritura

R

E

G

IS

T

R

O

S

3

Operación de la ALU

Cero

ALU

Extensión

de signo

Desp.

2 bits a

la izq.

Resultado

Sumador

PC +4 del camino de datos de instrucciones

Destino salto

Decidir si se

hace el salto

(17)

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

(18)

Diseño de un camino de datos sencillo

Instrucción

16

32

EscribirReg

Fuente

ALU

Mem2reg

Reg. de

lectura 1

Dato a

escribir

Dato

leído 1

Dato

leído 2

Reg. de

lectura 2

Reg. de

escritura

R

E

G

IS

T

R

O

S

Memoria

de Datos

Dirección

Dato a

escribir

Dato

leído

3

Operación de la ALU

LeerMem

EscribirMem

Cero

Resultado

de la ALU

ALU

Extensión

de signo

M

u

x

M

u

x

(19)

Diseño de un camino de datos sencillo

16 32 EscribirReg Fuente ALU Mem2reg Reg. de lectura 1 Dato a escribir Dato leído 1 Dato leído 2 Reg. de lectura 2 Reg. de escritura

R

E

G

IS

T

R

O

S

Memoria

de Datos

Dirección Dato a escribir Dato leído 3 Operación de la ALU LeerMem EscribirMem Cero Resultado de la ALU

ALU

Extensión de signo

M

u

x

M

u

x

Memoria de

instrucciones

Instrucción Dirección de lectura

P

C

Sumador 4

Incorporamos gestión de PC

(20)

Diseño de un camino de datos sencillo

16 32 EscribirReg Fuente ALU Mem2reg Origen del PC Reg. de lectura 1 Dato a escribir Dato leído 1 Dato leído 2 Reg. de lectura 2 Reg. de escritura

R

E

G

IS

T

R

O

S

Memoria

de Datos

Dirección Dato a escribir Dato leído 3 Operación de la ALU LeerMem EscribirMem Cero Resultado de la ALU

ALU

Extensión de signo

M

u

x

M

u

x

M

u

x

Memoria de

instrucciones

Instrucción Dirección de lectura

P

C

Sumador 4 Desp. 2 bits a la izq. Resultado

Sumador

(21)

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

(22)

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 de

longitud variable (cada instrucción tarda únicamente lo

necesario)

(23)

Cálculo del ciclo de reloj

Reg. de lectura 1 Dato a escribir Dato leído 1 Dato leído 2 Reg. de lectura 2 Reg. de escritura R E G IS T R O S Cero Resultado de la ALU ALU Extensión de signo Control M u x M u x Memoria de instrucciones Instrucción Dirección de lectura P C Sumador 4 Desp. 2 bits a la izq. Desp. 2 bits a la izq. Inst. [25-21] Inst. [20-16] Inst. [15-11] Inst. [31-26] Inst. [25-0] 26 28 Dirección de jump. [31-0] PC + 4 [31-28] 16 32 Control de la ALU Resultado Sumador Inst. [15-0] Inst. [5-0] Memoria de Datos Dirección Dato a escribir Dato leído Mu x M u x M u x EscribirReg SaltoIncond RegDest Fuente ALU Salt Cond ALUop Mem2reg LeerMem EscribirMem

1 ns

1 ns

2 ns

2 ns

2 ns

2 ns

2 ns

2 ns

2 ns

2 ns

2 ns

2 ns

(24)

Cálculo del ciclo de reloj

Tipo de

instrucción

Unidades funcionales utilizadas por cada tipo de instrucción

ns

Aritmética

Cargar

instrucción

Lectura de

registros

ALU

Escritura de

registros

6

lw

Cargar

instrucción

Lectura de

registros

ALU

Lectura

memoria

Escritura de

registros

8

sw

Cargar

instrucción

Lectura de

registros

ALU

Escritura en

memoria

7

Salto

condicional

Cargar

instrucción

Lectura de

registros

ALU

5

Jump

Cargar

instrucción

2

(25)

Evaluación del rendimiento

Tiempo medio ejecución para monociclo:

8 ns

Tiempo 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

Aritméticas: 44%

lw: 24%

sw: 12%

(26)

Reducción de costes

Reg. de lectura 1 Dato a escribir Dato leído 1 Dato leído 2 Reg. de lectura 2 Reg. de escritura R E G IS T R O S Cero Resultado de la ALU ALU Extensión de signo Control M u x M u x Memoria de instrucciones Instrucción Dirección de lectura P C Sumador 4 Desp. 2 bits a la izq. Desp. 2 bits a la izq. Inst. [25-21] Inst. [20-16] Inst. [15-11] Inst. [31-26] Inst. [25-0] 26 28 Dirección de jump. [31-0] PC + 4 [31-28] 16 32 Control de la ALU Resultado Sumador Inst. [15-0] Inst. [5-0] Memoria de Datos Dirección Dato a escribir Dato leído Mu x M u x M u x

(27)

Reducción de costes

Reg. de lectura 1 Dato a escribir Dato leído 1 Dato leído 2 Reg. de lectura 2 Reg. de escritura R E G IS T R O S Cero Resultado de la ALU ALU Extensión de signo Control M u x M u x Memoria de instrucciones Instrucción Dirección de lectura P C Sumador 4 Desp. 2 bits a la izq. Desp. 2 bits a la izq. Inst. [25-21] Inst. [20-16] Inst. [15-11] Inst. [31-26] Inst. [25-0] 26 28 Dirección de jump. [31-0] PC + 4 [31-28] 16 32 Control de la ALU Resultado Sumador Inst. [15-0] Inst. [5-0] Memoria de Datos Dirección Dato a escribir Dato leído Mu x M u x M u x

(28)

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

(29)

Esquema multiciclo

Reg. de

lectura 1

Dato a

escribir

Dato

leído 1

Dato

leído 2

Reg. de

lectura 2

Reg. de

escritura

R

EG

IST

R

O

S

Memoria

Instrucciones

o datos

Dirección

Resgistro de

datos de

memoria

Registro de

instrucciones

ALU

A

B

Dato

SalidaALU

P

C

(30)

Sin coste adicional

Implementación multiciclo

R

E

G

IS

T

R

O

S

Reg. de lectura 1 Dato a escribir Dato leído 1 Dato leído 2 Reg. de lectura 2 Reg. de escritura Instrucción [25-21] Registro de instrucción Instrucción [20-16] Instrucción [15-0]

M

u

x

0 1

M

u

x

0 1

M

u

x

0 1

M

u

x

0 1

M

u

x

0 1 2 3 A B Registro de datos de memoria Exten. signo Desp. 2 bits a la izq. Desp. 2 bits a la izq.

Memoria

Instrucciones o datos Dirección Datos

P

C

Instr. [15-0] 16 26 32 4 Instr. [15-11] Instrucción [25-0] PC [31-28] Salto incond. [31-0] 28

M

u

x

0 1 2 Cero Resultado ALU

ALU

Salida ALU

(31)

Carga de una instrucción

R

E

G

IS

T

R

O

S

Reg. de lectura 1 Dato a escribir Dato leído 1 Dato leído 2 Reg. de lectura 2 Reg. de escritura Instrucción [25-21] Registro de instrucción Instrucción [20-16] Instrucción [15-0]

M

u

x

0 1

M

u

x

0 1

M

u

x

0 1

M

u

x

0 1

M

u

x

0 1 2 3 A B Registro de datos de memoria Exten. signo Desp. 2 bits a la izq. Desp. 2 bits a la izq.

Memoria

Instrucciones o datos Dirección Datos

P

C

Instr. [15-0] 16 26 32 4 Instr. [15-11] Instrucción [25-0] PC [31-28] Salto incond. [31-0] 28

M

u

x

0 1 2 Cero Resultado ALU

ALU

Salida ALU

(32)

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

de registros

R

E

G

IS

T

R

O

S

Reg. de lectura 1 Dato a escribir Dato leído 1 Dato leído 2 Reg. de lectura 2 Reg. de escritura Instrucción [25-21] Registro de instrucción Instrucción [20-16] Instrucción [15-0]

M

u

x

0 1

M

u

x

0 1

M

u

x

0 1

M

u

x

0 1

M

u

x

0 1 2 3 A B Registro de datos de memoria Exten. signo Desp. 2 bits a la izq. Desp. 2 bits a la izq.

Memoria

Instrucciones o datos Dirección Datos

P

C

Instr. [15-0] 16 26 32 4 Instr. [15-11] Instrucción [25-0] PC [31-28] Salto incond. [31-0] 28

M

u

x

0 1 2 Cero Resultado ALU

ALU

Salida ALU

(33)

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

R

E

G

IS

T

R

O

S

Reg. de lectura 1 Dato a escribir Dato leído 1 Dato leído 2 Reg. de lectura 2 Reg. de escritura Instrucción [25-21] Registro de instrucción Instrucción [20-16] Instrucción [15-0]

M

u

x

0 1

M

u

x

0 1

M

u

x

0 1

M

u

x

0 1

M

u

x

0 1 2 3 A B Registro de datos de memoria Exten. signo Desp. 2 bits a la izq. Desp. 2 bits a la izq.

Memoria

Instrucciones o datos Dirección Datos

P

C

Instr. [15-0] 16 26 32 4 Instr. [15-11] Instrucción [25-0] PC [31-28] Salto incond. [31-0] 28

M

u

x

0 1 2 Cero Resultado ALU

ALU

Salida ALU

(34)

Instrucciones Aritmético-Lógicas: Guarda

resultados en registro

R

E

G

IS

T

R

O

S

Reg. de lectura 1 Dato a escribir Dato leído 1 Dato leído 2 Reg. de lectura 2 Reg. de escritura Instrucción [25-21] Registro de instrucción Instrucción [20-16] Instrucción [15-0]

M

u

x

0 1

M

u

x

0 1

M

u

x

0 1

M

u

x

0 1

M

u

x

0 1 2 3 A B Registro de datos de memoria Exten. signo Desp. 2 bits a la izq. Desp. 2 bits a la izq.

Memoria

Instrucciones o datos Dirección Datos

P

C

Instr. [15-0] 16 26 32 4 Instr. [15-11] Instrucción [25-0] PC [31-28] Salto incond. [31-0] 28

M

u

x

0 1 2 Cero Resultado ALU

ALU

Salida ALU

(35)

Instrucción lw:

Búsqueda de registros

R

E

G

IS

T

R

O

S

Reg. de lectura 1 Dato a escribir Dato leído 1 Dato leído 2 Reg. de lectura 2 Reg. de escritura Instrucción [25-21] Registro de instrucción Instrucción [20-16] Instrucción [15-0]

M

u

x

0 1

M

u

x

0 1

M

u

x

0 1

M

u

x

0 1

M

u

x

0 1 2 3 A B Registro de datos de memoria Exten. signo Desp. 2 bits a la izq. Desp. 2 bits a la izq.

Memoria

Instrucciones o datos Dirección Datos

P

C

Instr. [15-0] 16 26 32 4 Instr. [15-11] Instrucción [25-0] PC [31-28] Salto incond. [31-0] 28

M

u

x

0 1 2 Cero Resultado ALU

ALU

Salida ALU

(36)

Instrucción lw:

Cálculo de la dirección

R

E

G

IS

T

R

O

S

Reg. de lectura 1 Dato a escribir Dato leído 1 Dato leído 2 Reg. de lectura 2 Reg. de escritura Instrucción [25-21] Registro de instrucción Instrucción [20-16] Instrucción [15-0]

M

u

x

0 1

M

u

x

0 1

M

u

x

0 1

M

u

x

0 1

M

u

x

0 1 2 3 A B Registro de datos de memoria Exten. signo Desp. 2 bits a la izq. Desp. 2 bits a la izq.

Memoria

Instrucciones o datos Dirección Datos

P

C

Instr. [15-0] 16 26 32 4 Instr. [15-11] Instrucción [25-0] PC [31-28] Salto incond. [31-0] 28

M

u

x

0 1 2 Cero Resultado ALU

ALU

Salida ALU

(37)

Instrucción lw:

Lectura de memoria

R

E

G

IS

T

R

O

S

Reg. de lectura 1 Dato a escribir Dato leído 1 Dato leído 2 Reg. de lectura 2 Reg. de escritura Instrucción [25-21] Registro de instrucción Instrucción [20-16] Instrucción [15-0]

M

u

x

0 1

M

u

x

0 1

M

u

x

0 1

M

u

x

0 1

M

u

x

0 1 2 3 A B Registro de datos de memoria Exten. signo Desp. 2 bits a la izq. Desp. 2 bits a la izq.

Memoria

Instrucciones o datos Dirección Datos

P

C

Instr. [15-0] 16 26 32 4 Instr. [15-11] Instrucción [25-0] PC [31-28] Salto incond. [31-0] 28

M

u

x

0 1 2 Cero Resultado ALU

ALU

Salida ALU

(38)

Instrucción lw:

Guarda dato en registro

R

E

G

IS

T

R

O

S

Reg. de lectura 1 Dato a escribir Dato leído 1 Dato leído 2 Reg. de lectura 2 Reg. de escritura Instrucción [25-21] Registro de instrucción Instrucción [20-16] Instrucción [15-0]

M

u

x

0 1

M

u

x

0 1

M

u

x

0 1

M

u

x

0 1

M

u

x

0 1 2 3 A B Registro de datos de memoria Exten. signo Desp. 2 bits a la izq. Desp. 2 bits a la izq.

Memoria

Instrucciones o datos Dirección Datos

P

C

Instr. [15-0] 16 26 32 4 Instr. [15-11] Instrucción [25-0] PC [31-28] Salto incond. [31-0] 28

M

u

x

0 1 2 Cero Resultado ALU

ALU

Salida ALU

(39)

Instrucción sw:

Búsqueda de registros

R

E

G

IS

T

R

O

S

Reg. de lectura 1 Dato a escribir Dato leído 1 Dato leído 2 Reg. de lectura 2 Reg. de escritura Instrucción [25-21] Registro de instrucción Instrucción [20-16] Instrucción [15-0]

M

u

x

0 1

M

u

x

0 1

M

u

x

0 1

M

u

x

0 1

M

u

x

0 1 2 3 A B Registro de datos de memoria Exten. signo Desp. 2 bits a la izq. Desp. 2 bits a la izq.

Memoria

Instrucciones o datos Dirección Datos

P

C

Instr. [15-0] 16 26 32 4 Instr. [15-11] Instrucción [25-0] PC [31-28] Salto incond. [31-0] 28

M

u

x

0 1 2 Cero Resultado ALU

ALU

Salida ALU

(40)

Instrucción sw:

Cálculo de la dirección

R

E

G

IS

T

R

O

S

Reg. de lectura 1 Dato a escribir Dato leído 1 Dato leído 2 Reg. de lectura 2 Reg. de escritura Instrucción [25-21] Registro de instrucción Instrucción [20-16] Instrucción [15-0]

M

u

x

0 1

M

u

x

0 1

M

u

x

0 1

M

u

x

0 1

M

u

x

0 1 2 3 A B Registro de datos de memoria Exten. signo Desp. 2 bits a la izq. Desp. 2 bits a la izq.

Memoria

Instrucciones o datos Dirección Datos

P

C

Instr. [15-0] 16 26 32 4 Instr. [15-11] Instrucción [25-0] PC [31-28] Salto incond. [31-0] 28

M

u

x

0 1 2 Cero Resultado ALU

ALU

Salida ALU

(41)

Instrucción sw:

Escritura en memoria

R

E

G

IS

T

R

O

S

Reg. de lectura 1 Dato a escribir Dato leído 1 Dato leído 2 Reg. de lectura 2 Reg. de escritura Instrucción [25-21] Registro de instrucción Instrucción [20-16] Instrucción [15-0]

M

u

x

0 1

M

u

x

0 1

M

u

x

0 1

M

u

x

0 1

M

u

x

0 1 2 3 A B Registro de datos de memoria Exten. signo Desp. 2 bits a la izq. Desp. 2 bits a la izq.

Memoria

Instrucciones o datos Dirección Datos

P

C

Instr. [15-0] 16 26 32 4 Instr. [15-11] Instrucción [25-0] PC [31-28] Salto incond. [31-0] 28

M

u

x

0 1 2 Cero Resultado ALU

ALU

Salida ALU

(42)

Instrucción beq:

Búsqueda de registros

R

E

G

IS

T

R

O

S

Reg. de lectura 1 Dato a escribir Dato leído 1 Dato leído 2 Reg. de lectura 2 Reg. de escritura Instrucción [25-21] Registro de instrucción Instrucción [20-16] Instrucción [15-0]

M

u

x

0 1

M

u

x

0 1

M

u

x

0 1

M

u

x

0 1

M

u

x

0 1 2 3 A B Registro de datos de memoria Exten. signo Desp. 2 bits a la izq. Desp. 2 bits a la izq.

Memoria

Instrucciones o datos Dirección Datos

P

C

Instr. [15-0] 16 26 32 4 Instr. [15-11] Instrucción [25-0] PC [31-28] Salto incond. [31-0] 28

M

u

x

0 1 2 Cero Resultado ALU

ALU

Salida ALU

(43)

Instrucción beq:

Comprobación con éxito

R

E

G

IS

T

R

O

S

Reg. de lectura 1 Dato a escribir Dato leído 1 Dato leído 2 Reg. de lectura 2 Reg. de escritura Instrucción [25-21] Registro de instrucción Instrucción [20-16] Instrucción [15-0]

M

u

x

0 1

M

u

x

0 1

M

u

x

0 1

M

u

x

0 1

M

u

x

0 1 2 3 A B Registro de datos de memoria Exten. signo Desp. 2 bits a la izq. Desp. 2 bits a la izq.

Memoria

Instrucciones o datos Dirección Datos

P

C

Instr. [15-0] 16 26 32 4 Instr. [15-11] Instrucción [25-0] PC [31-28] Salto incond. [31-0] 28

M

u

x

0 1 2 Cero Resultado ALU

ALU

Salida ALU

(44)

Instrucción beq:

Comprobación sin éxito

R

E

G

IS

T

R

O

S

Reg. de lectura 1 Dato a escribir Dato leído 1 Dato leído 2 Reg. de lectura 2 Reg. de escritura Instrucción [25-21] Registro de instrucción Instrucción [20-16] Instrucción [15-0]

M

u

x

0 1

M

u

x

0 1

M

u

x

0 1

M

u

x

0 1

M

u

x

0 1 2 3 A B Registro de datos de memoria Exten. signo Desp. 2 bits a la izq. Desp. 2 bits a la izq.

Memoria

Instrucciones o datos Dirección Datos

P

C

Instr. [15-0] 16 26 32 4 Instr. [15-11] Instrucción [25-0] PC [31-28] Salto incond. [31-0] 28

M

u

x

0 1 2 Cero Resultado ALU

ALU

Salida ALU

(45)

Instrucción Jump:

Ejecución del salto

R

E

G

IS

T

R

O

S

Reg. de lectura 1 Dato a escribir Dato leído 1 Dato leído 2 Reg. de lectura 2 Reg. de escritura Instrucción [25-21] Registro de instrucción Instrucción [20-16] Instrucción [15-0]

M

u

x

0 1

M

u

x

0 1

M

u

x

0 1

M

u

x

0 1

M

u

x

0 1 2 3 A B Registro de datos de memoria Exten. signo Desp. 2 bits a la izq. Desp. 2 bits a la izq.

Memoria

Instrucciones o datos Dirección Datos

P

C

Instr. [15-0] 16 26 32 4 Instr. [15-11] Instrucción [25-0] PC [31-28] Salto incond. [31-0] 28

M

u

x

0 1 2 Cero Resultado ALU

ALU

Salida ALU

(46)

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

(47)

CPI multiciclo

Tipo de instrucción

%

Multiciclo

Aritmética

44

4

lw

24

5

sw

12

4

Salto condicional

18

3

Jump

2

3

4,04

(48)

Diseño de la unidad de control

(49)

Diseño de la unidad de control

(50)

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:

señal

Formato R

Lw

Sw

beq

Op5

0

1

1

0

Op4

0

0

0

0

Op3

0

0

1

0

Op2

0

0

0

1

Op1

0

1

1

0

Op0

0

1

1

0

RegDest

1

0

X

X

ALUSrc

0

1

1

0

MemtoReg

0

1

X

X

RegWrite

1

1

0

0

MemRead

0

1

0

0

MemWrite

0

0

1

0

Branch

0

0

0

1

ALUOp1

1

0

0

0

ALUOp0

0

0

0

1

en

trad

as

sal

id

as

Ejercicio:

Mapas de Karnaugh

Implementación

combinacional

(51)

Diseño de la unidad de control

Realización multiciclo: señales de control

R E G IS T R O S Reg. de lectura 1 Dato a escribir Dato leído 1 Dato leído 2 Reg. de lectura 2 Reg. de escritura Instrucción [25-21] Registro de instrucción Instrucción [20-16] Instrucción [15-0] M u x 0 1 M u x 0 1 M u x 0 1 M u x 0 1 M u x 0 1 2 3 A B Registro de datos de memoria Exten. signo Desp. 2 bits a la izq. Desp. 2 bits a la izq. Memoria Instrucciones o datos Dirección Datos P C Instr. [15-0] 16 26 32 4 Instr. [15-11] Instrucción [25-0] PC [31-28] Salto incond. [31-0] 28 M u x 0 1 2 Cero Resultado ALU ALU Salida ALU SelALUA EscrReg RegDest EscrIR EscrMem LeerMem IoD Escribir PC Mem2Reg Control ALU ALUop FuentePC SelALUB

(52)

Diseño de la unidad de control

Realización multiciclo: señales de control

R E G IS T R O S Reg. de lectura 1 Dato a escribir Dato leído 1 Dato leído 2 Reg. de lectura 2 Reg. de escritura Instrucción [25-21] Registro de instrucción Instrucción [20-16] Instrucción [15-0] M u x 0 1 M u x 0 1 M u x 0 1 M u x 0 1 M u x 0 1 2 3 A B Registro de datos de memoria Exten. signo Desp. 2 bits a la izq. Desp. 2 bits a la izq. Memoria Instrucciones o datos Dirección Datos P C Instr. [15-0] 16 26 32 4 Instr. [15-11] Instrucción [25-0] PC [31-28] Salto incond. [31-0] 28 M u x 0 1 2 Cero Resultado ALU ALU Salida ALU SelALUA EscrReg RegDest EscrIR EscrMem LeerMem IoD Control OP [31-26] EscrPC EscrPC Cond Mem2Reg Control ALU ALUop FuentePC SelALUB

(53)

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

(54)

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

(55)

Control cableado

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

Estado 0

Inicio

Acceso a

memoria

Estado 1

Carga

de

instrucción

Decodificar

instrucciones

Cargar

Registros

Aritmético-lógicas

beq

jump

(56)

Estado 0. Cargar Instrucción

R E G IS T R O S Reg. de lectura 1 Dato a escribir Dato leído 1 Dato leído 2 Reg. de lectura 2 Reg. de escritura Instrucción [25-21] Registro de instrucción Instrucción [20-16] Instrucción [15-0] M u x 0 1 M u x 0 1 M u x 0 1 M u x 0 1 M u x 0 1 2 3 A B Registro de datos de memoria Exten. signo Desp. 2 bits a la izq. Desp. 2 bits a la izq. Memoria Instrucciones o datos Dirección Datos P C Instr. [15-0] 16 26 32 4 Instr. [15-11] Instrucción [25-0] PC [31-28] Salto incond. [31-0] 28 M u x 0 1 2 Cero Resultado ALU ALU Salida ALU SelALUA EscrReg RegDest EscrIR EscrMem LeerMem IoD Control OP [31-26] EscrPC EscrPC Cond Mem2Reg Control ALU ALUop FuentePC SelALUB

Estado 0

Inicio

LeerMem SelALUA = 0 IoD = 0 EscrIR EscrPC FuentePC = 00 selALUB = 01 ALUOp = 00

A Estado 1

(57)

Estado 1. Decodificación

R

E

G

IS

T

R

O

S

Reg. de lectura 1 Dato a escribir Dato leído 1 Dato leído 2 Reg. de lectura 2 Reg. de escritura Instrucción [25-21] Registro de instrucción Instrucción [20-16] Instrucción [15-0]

M

u

x

0 1

M

u

x

0 1

M

u

x

0 1

M

u

x

0 1

M

u

x

0 1 2 3 A B Registro de datos de memoria Exten. signo Desp. 2 bits a la izq. Desp. 2 bits a la izq.

Memoria

Instrucciones o datos Dirección Datos

P

C

Instr. [15-0] 16 26 32 4 Instr. [15-11] Instrucción [25-0] PC [31-28] Salto incond. [31-0] 28

M

u

x

0 1 2 Cero Resultado ALU

ALU

Salida ALU SelALUA EscrReg RegDest EscrIR EscrMem LeerMem IoD Control OP [31-26] EscrPC EscrPC Cond Mem2Reg Control ALU ALUop FuentePC SelALUB

Estado 1

De Estado 0

SelALUA = 0 selALUB = 11 ALUOp = 00

Estado ?

(58)

Control del acceso a memoria

De Estado 1

Estado 4

Estado 5

Acceso a

memoria

Acceso a

memor ia

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

(Op = “LW”)

(Op = “SW”)

Cálculo

dirección de

memoria

Etapa de escritura

Estado 3

Estado 2

Vuelta al

Estado 0

SelALUA = 1 selALUB = 10 ALUOp = 00 Leer Mem IoD = 1 EscrMem I0D = 1 Esc rReg Mem2R eg = 1 RegDest = 0

(59)

Control de operaciones aritmético-lógicas

De Estado 1

Finalización de

la operación

(O p = Aritmét ico-lógica)

(Op = “LW”)

Ejecución de la

operación

Estado 7

Estado 6

Vuelta al

Estado 0

S elALUA = 1

selALUB = 00

A LUOp = 10

RegDest = 1

EscrRe g

Mem2R eg

(60)

Control de beq

De Estado 1

(Op = “beq”)

Finalización

de salto condicional

Estado 8

Vuelta al

Estado 0

SelALUA = 1

selALUB = 00

ALUOp = 01

EscrPCCond

FuentePC = 01

(61)

Control de jump

De Estado 1

(Op = “j”)

Finalización

de jump

Estado 9

Vuelta al

Estado 0

Es crPCC ond

FuentePC = 10

(62)

Máquina de estados completa

Estado 0 Inicio LeerMem SelALUA = 0 IoD = 0 EscrIR EscrPC FuentePC = 00 selALUB = 01 ALUOp = 00 Estado 1 SelALUA = 0 selALUB = 11 ALUOp = 00 (Op = “LW ”) o (Op = “SW ”) Estado 4 Estado 5 Acceso a memoria Acceso a memoria (Op = “LW”) (Op = “SW”) Cálculo dirección de memoria Etapa de escritura Estado 3 Estado 2 SelALUA = 1 selALUB = 10 ALUOp = 00 LeerMem IoD = 1 EscrMem I0D = 1 EscrReg Mem2Reg = 1 RegDest = 0 Finalización de la operación (Op = A ritm étic o-ló gica ) Ejecución de la operación (O p = “b e q”) Finalización de salto condicional Estado 8 SelALUA = 1 selALUB = 00 ALUOp = 01 EscrPCCond FuentePC = 01 (Op =“j”) Finalización de jump Estado 9 EscrPCCond FuentePC = 10 (Op = “LW”) Estado 7 Estado 6 SelALUA = 1 selALUB = 00 ALUOp = 10 RegDest = 1 EscrReg Mem2Reg

(63)

Implementación física

Lógica de control

Salidas

Código de

operación desde

el registro de

instrucción

Señales de control

para el

camino de datos

Entradas

Registro de estado

Concepto

Bits

Señales de

control

16

Código de

operación

6

Estado

4

(64)

ROM

Lógica de control

PLA y/ó ROM

Salidas

Entradas

Código de operación

Bits [31-26] del

registro de instrucción

Registro de estado

FuentePC (2)

ALUop (2)

SelALUA

SelALUB (2)

EscrReg

RegDest

EscrPC cond

EscrPC

IoD

LeerMem

EscrMem

Mem2Reg

EscrIR

ROM única 2 palabras de 20 bits = 20480 bits 10 Código de operación desde el registro de instrucción Estado Nuevo estado Señales de control ROM 1 2 palabras de 16 bits = 256 bits 4

Estado Señales de control

ROM 2 2 palabras de 4 bits = 4096 bits 10 Código de operación desde el registro de instrucción Estado Nuevo estado

(65)

PLA

Lógica de control PLA y/ó ROM

Salidas Entradas Código de operación Bits [31-26] del registro de instrucción Registro de estado FuentePC (2) ALUop (2) SelALUA SelALUB (2) EscrReg RegDest EscrPC cond EscrPC IoD LeerMem EscrMem Mem2Reg EscrIR O p5 O p4 O p3 O p2 O p1 O p0 S 3 S 2 S 1 S 0 IoD IEscrIR LeerMem EscrMem EscrPC EscrPC cond Mem2Reg FuentePC1 ALUOp1 SelALUB0 SelALUA EscrReg RegDest NS3 NS2 NS1 NS0 SelALUB1 ALUOp2 FuentePC2

(66)

Control microprogramado

Cada grupo de señales causa la ejecución de una operación básica

especí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 una

PLA, por lo que pueden asignarse direcciones a las

(67)

Control microprogramado

Lógica de control

PLA y/ó ROM

Salidas Entradas Código de operación Bits [31-26] del registro de instrucción Registro de estado CtrlDir Sumador 1 4 FuentePC (2) ALUop (2) SelALUA SelALUB (2) EscrReg RegDest EscrPC cond EscrPC IoD LeerMem EscrMem Mem2Reg EscrIR Selección 6

El sumador avanza

secuencialmente por los

estados

• No en todos los casos se

pasa al estado siguiente:

• CtrlDir

• Selección

(68)

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ón Bits [31-26] del registro de instrucción Registro de estado CtrlDir Sumador 1 4 MUX 3 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

(69)

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

Tipo de

instrucción

Tabla 1

Tabla2

lw

2

3

sw

2

5

aritmético-lógica

6

beq

8

jump

9

(70)

Formato de la microinstrucción

Etiqueta

Control

ALU

Fuente

1

Fuente

2

Control

Regs

Memoria

Control

EscrPC

Secuencia

Inicio

Sumar

PC

4

Leer PC

ALU

Siguiente

Sumar

PC

ExtShft

Leer

Tabla 1

Mem1

Sumar

A

Extend

Tabla 2

LW2

Leer ALU

Siguiente

Escr Mem

Ir a 0

SW2

Escr ALU

Ir a 0

Aritmetico1

Función

A

B

Siguiente

Escr ALU

Ir a 0

beq1

Restar

A

B

Cond. ALU

Ir a 0

(71)

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

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

(72)

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)

(73)

Procesamiento de excepciones

Camino de datos con los elementos necesarios para el

procesamiento de excepciones:

SelALUA EscrReg RegDest EscrIR EscrMem LeerMem IoD Control OP [31-26] EscrPC EscrPC Cond Mem2Reg ALUop FuentePC EscrEPC CausaInt EscrCausa SelALUB R E G IS T R O S Reg. de lectura 1 Dato a escribir Dato leído 1 Dato leído 2 Reg. de lectura 2 Reg. de escritura Instrucción [25-21] Registro de instrucción Instrucción [20-16] Instrucción [15-0] M u x 0 1 M u x 0 1 M u x 0 1 M u x 0 1 M u x 0 1 2 3 A B Registro de datos de memoria Exten. signo Desp. 2 bits a la izq. Desp. 2 bits a la izq. Memoria Instrucciones o datos Dirección Datos P C Instr. [15-0] 26 4 Instr. [15-11] Instrucción [25-0] PC [31-28] 28 16 32 Salto incond. [31-0] C0000000 M u x 0 1 2 3 Cero Resultado ALU ALU Salida ALU EPC Control ALU

(74)

SelALUA EscrReg RegDest EscrIR EscrMem LeerMem IoD Control OP [31-26] EscrPC EscrPC Cond Mem2Reg ALUop FuentePC EscrEPC CausaInt EscrCausa SelALUB R E G IS T R O S Reg. de lectura 1 Dato a escribir Dato leído 1 Dato leído 2 Reg. de lectura 2 Reg. de escritura Instrucción [25-21] Registro de instrucción Instrucción [20-16] Instrucción [15-0] M u x 0 1 M u x 0 1 M u x 0 1 M u x 0 1 M u x 0 1 2 3 A B Registro de datos de memoria Exten. signo Desp. 2 bits a la izq. Desp. 2 bits a la izq. Memoria Instrucciones o datos Dirección Datos P C Instr. [15-0] 26 4 Instr. [15-11] Instrucción [25-0] PC [31-28] 28 16 32 Salto incond. [31-0] C0000000 M u x 0 1 2 3 Cero Resultado ALU ALU Salida ALU EPC Control ALU

Procesamiento de excepciones

(75)

Procesamiento de excepciones

Estado 0 Inicio LeerMem SelALUA = 0 IoD = 0 EscrIR EscrPC FuentePC = 00 selALUB = 01 ALUOp = 00 Estado 1 SelALUA = 0 selALUB = 11 ALUOp = 0 0 (Op = “LW” ) o (Op = “SW ”) Estado 4 Estado 5 Acceso a memoria Acc eso a memoria (Op = “LW”) (Op = “SW”) Cálculo dirección de memoria Etapa de escritura Estado 3 Estado 2 SelALUA = 1 selALUB = 1 0 ALUOp = 00 LeerMem IoD = 1 EscrMem I0D = 1 EscrReg Mem2R eg = 1 RegDes t = 0 Finalización de la operación (O p = Arit m-Lógi cas ) Ejecución de la operac ión (Op = “be q”) Finalización de salto condicional Estado 8 S elALUA = 1 s elALUB = 0 0 ALUOp = 01 Es crPCCond FuentePC = 01 (Op = “j”) (Op = otro s) Estado 9 EscrPCC ond Fuente PC = 10 (Op = “LW”) Estado 7 Estado 6 SelAL UA = 1 selALUB = 00 ALUOp = 10 RegDest = 1 EscrReg Mem2Reg Estado 10 CausaInt=0 EscrCausa SelALUA = 0 EscrPC FuenteP C = 11 selALUB = 01 ALUOp = 01 Es crEPC Estado 11 CausaInt=1 EscrCausa SelALUA = 0 EscrPC FuentePC = 11 selALUB = 01 ALUOp = 01 EscrEPC Des bordamiento Finalización de jump

Referencias

Documento similar

If you are covered by a reciprocal agreement for health and social security (citizens of Denmark, Finland, France, Luxembourg, Norway, Portugal and Sweden), you may be eligible

22 Enmarcado el proyecto de investigación de I+D «En clave femenina: música y ceremonial en las urbes andaluzas durante el reinado de Fernando VII (1808-1833)» (Plan Andaluz

Pero, al fin y al cabo, lo que debe privar e interesar al sistema, es la protección jurisdiccional contra las ilegalidades de la Administración,221 dentro de las que se contemplan,

Dado un espazo topol´ oxico, denominado base, e dado un espazo vec- torial para cada punto de dito espazo base, chamaremos fibrado vectorial ´ a uni´ on de todos estes

La solución que se ha planteado, es que el paso o bien se hiciese exclusivamente por el adarve de la muralla, o que una escalera diese acceso por la RM evitando la estancia (De

Imparte docencia en el Grado en Historia del Arte (Universidad de Málaga) en las asignaturas: Poéticas del arte español de los siglos XX y XXI, Picasso y el arte español del

De esta manera, ocupar, resistir y subvertir puede oponerse al afrojuvenicidio, que impregna, sobre todo, los barrios más vulnerables, co-construir afrojuvenicidio, la apuesta

La campaña ha consistido en la revisión del etiquetado e instrucciones de uso de todos los ter- mómetros digitales comunicados, así como de la documentación técnica adicional de