• No se han encontrado resultados

Sección de procesamiento: Sección de control

N/A
N/A
Protected

Academic year: 2021

Share "Sección de procesamiento: Sección de control"

Copied!
28
0
0

Texto completo

(1)

Sección de procesamiento:

Sección de control

(2)

Estructura del curso

1.

Evolución y caracterización de los computadores.

2.

Arquitectura del MIPS: Introducción.

3.

Tipo de datos.

4.

El repertorio de instrucciones.

5.

Aritmética del computador.

6.

El camino de datos.

7.

Sección de control.

8.

El camino de datos multiciclo.

9.

Sección de control multiciclo.

(3)

Esquema de contenidos

1.

Diseño del control de la ALU

2.

Diseño de la unidad de control principal

(4)

Camino de datos

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

RE

GI

ST

ROS

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

(5)

Unidad de control

A partir de las señales de entrada se deben generar:

Control de la ALU

Una señal de escritura para cada elemento de estado

(6)

Control de la ALU

Dependiendo de la instrucción a ejecutar la ALU debe realizar cinco

operaciones

Set on less than

111

Resta

110

Suma

010

OR

001

AND

000

Función

Líneas de control

ALU

Cero

Resultado

de la ALU

Control de la ALU

3

(7)

Control de la ALU: Instrucciones

add reg3, reg1, reg2

000000

reg 1

reg 2

reg 3

00000

100000

sub reg3, reg1, reg2

000000

reg 1

reg 2

reg 3

00000

100010

lw reg2, offset(reg1)

100011

reg 1

reg 2

offset

sw reg2, offset(reg1)

101011

reg 1

reg 2

offset

and reg3, reg1, reg2

000000

reg 1

reg 2

reg 3

00000

100100

or reg3, reg1, reg2

000000

reg 1

reg 2

reg 3

00000

100101

slt reg3, reg1, reg2

000000

reg 1

reg 2

reg 3

00000

101010

beq reg1, reg2, salto

000100

reg 1

reg 2

salto

+

-and

or

slt

+

+

(8)

-Control de la ALU: Instrucciones

Código con 12 bits:

Código de operación: 6 bits

Código de función: 6 bits

Por Karnaugh: tablas de 64 x 64 celdas

Además hace falta una tabla por cada bit

de la señal de control

(9)

Control de la ALU: Código de operación

Reducción número bits del código de operación (

ALUOp

):

Códigos de operación (abcdef):

Aritméticas:

000000

=>

10

Load Word:

100011

=>

00

Store Word:

101011

=>

00

(10)

Control de la ALU: Código de función

111

Activar si menor que

101010

10

Activar si menor que

001

Or

100101

10

OR

000

And

100100

10

AND

110

Resta

100010

10

Resta

010

Suma

100000

10

Suma

110

Resta

XXXXXX

01

Branch equal

010

Suma

XXXXXX

00

Store word

010

Suma

XXXXXX

00

Load word

Control

ALU

Acción de la ALU

Campo de

función

ALUOp

Operación

(11)

Control de la ALU: Tabla de verdad

111

0

1

0

1

X

X

X

1

001

1

0

1

0

X

X

X

1

000

0

0

1

0

X

X

X

1

110

0

1

0

0

X

X

X

1

010

0

0

0

0

X

X

X

1

110

X

X

X

X

X

X

1

X

010

X

X

X

X

X

X

0

0

Operación

F0

F1

F2

F3

F4

F5

ALUOp2

ALUOp1

Campo de la función

ALUOp

(12)

Control de la ALU

Código de operación

000000

100011

101010

000100

ALUop

00

01

10

Código de función

100000

100010

100100

100101

101010

Simplificación

mediante un diagrama de

KARNAUGH

Códigos ALU

000

001

010

110

111

(13)

Diseño de la unidad de control principal

Se han de identificar:

Campos de las instrucciones

Líneas de control necesarias para la construcción del camino de

datos.

add reg3, reg1, reg2

000000

reg 1

reg 2

reg 3

00000

100000

sub reg3, reg1, reg2

000000

reg 1

reg 2

reg 3

00000

100010

lw reg2, offset(reg1)

100011

reg 1

reg 2

offset

sw reg2, offset(reg1)

101011

reg 1

reg 2

offset

and reg3, reg1, reg2

000000

reg 1

reg 2

reg 3

00000

100100

or reg3, reg1, reg2

000000

reg 1

reg 2

reg 3

00000

100101

slt reg3, reg1, reg2

000000

reg 1

reg 2

reg 3

00000

101010

(14)

Camino de datos: Con todos los

multiplexores necesarios

16 32 EscribirReg RegDest Fuente ALU 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

REGIS

T

ROS

ALUop Cero Resultado de la ALU

ALU

Extensión de signo Controlde la ALU

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

Inst. [25-21] Inst. [20-16] Inst. [15-11] Inst. [15-0] Inst. [5-0] Mem2reg

Memoria

de Datos

Dirección Dato a escribir Dato leído LeerMem EscribirMem

M

u

x

M

u

x

(15)

Efecto de las señales de control

otras

aritméticas

ALUop (bit 1)

no escribir

otras

escribir registro

lw y aritméticas

EscrReg

registro

otras

valor inmediato

lw, sw

FuenteALU

desde ALU

aritméticas

desde memoria

lw

Mem2Reg

no escribir

otras

escribir memoria

sw

EscrMem

no leer

otras

leer memoria

lw

LeerMem

0

otras

ALU_cero

beq

SaltoCond

bits 20-16

lw

bits 15-11

aritméticas

RegDest

selecciona

operación

selecciona

operación

Efecto cuando no está

activa (0)

Efecto cuando está activa (1)

Señal de

control

(16)

Unidad de control principal

Efecto de cada señal de control

16 32 Reg. de lectura 1 Dato a escribir Dato leído 1 Dato leído 2 Reg. de lectura 2 Reg. de escritura RE GI STR O S Cero Resultado de la ALU ALU Extensión de signo Controlde la ALU 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. Resultado Sumador Inst. [25-21] Inst. [20-16] Inst. [15-11] Inst. [15-0] Inst. [5-0] Memoria de Datos Dirección Dato a escribir Dato leído Mu x M u x Inst. [31-26] EscribirReg RegDest Fuente ALU Salt Cond ALUop Mem2reg LeerMem EscribirMem

(17)

Unidad de control principal

Efecto de cada señal de control

16 32 Reg. de lectura 1 Dato a escribir Dato leído 1 Dato leído 2 Reg. de lectura 2 Reg. de escritura RE GI STR O S Cero Resultado de la ALU ALU Extensión de signo Controlde la ALU 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. Resultado Sumador Inst. [25-21] Inst. [20-16] Inst. [15-11] Inst. [15-0] Inst. [5-0] Memoria de Datos Dirección Dato a escribir Dato leído Mu x M u x Inst. [31-26] EscribirReg RegDest Fuente ALU Salt Cond ALUop Mem2reg LeerMem EscribirMem

0

1

0

1

1

0

(18)

Activación líneas de control

La activación de las líneas está determinada por el código de

operación de las instrucciones:

1

0

1

0

0

0

X

0

X

beq

0

0

0

1

0

0

X

1

X

sw

0

0

0

0

1

1

1

1

0

lw

0

1

0

0

0

1

0

0

1

Formato R

ALUOp0

ALUOp1

Salto

Cond

Escr

Mem

Leer

Mem

Reg

Write

Mem2

Reg

Fuente

ALU

RegDest

Instrucción

(19)

Ejemplo: Instrucción tipo R

add $t1, $t2, $t3

Hay cuatro etapas en la ejecución de una instrucción tipo R:

1.

Se carga la instrucción de la memoria de instrucciones y se

incrementa el PC

2.

Se leen los registros $t2 y $t3 del banco de registros.

Adicionalmente la unidad de control principal se encarga de

calcular la activación de las señales de control.

3.

La ALU se encarga de realizar la operación adecuada con los

datos procedentes del banco de registros, utilizando para ello el

campo de función (bits 5-0).

4.

El resultado calculado en la ALU se escribe en el banco de

registros utilizando los bits 15-11 de la instrucción para seleccionar

el registro destino ($t1).

(20)

16 32 Reg. de lectura 1 Dato a escribir Dato leído 1 Dato leído 2 Reg. de lectura 2 Reg. de escritura

REGIS

T

ROS

Cero Resultado de la ALU

ALU

Extensión de signo Controlde la ALU 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. Resultado

Sumador

Inst. [25-21] Inst. [20-16] Inst. [15-11] Inst. [15-0] Inst. [5-0]

Memoria

de Datos

Dirección Dato a escribir Dato leído

M

u

x

M

u

x

Inst. [31-26] EscribirReg RegDest Fuente ALU Salt Cond ALUop Mem2reg LeerMem EscribirMem

Instrucciones aritmético-lógicas

(21)

Ejemplo: Instrucción de carga

lw $t1, despl ($t2)

Hay cinco etapas en la ejecución de una instrucción de carga:

1.

Se carga la instrucción de la memoria de instrucciones y se

incrementa el PC

2.

Se lee el valor del registro $t2 del banco de registros

3.

La ALU calcula la suma del valor leído del banco de registros y los

16 bits de menor peso de la instrucción, con el signo extendido.

4.

Dicha suma se utiliza como dirección para acceder a la memoria

de datos

5.

El dato procedente de la memoria se escribe en el banco de

registros. El registro destino viene determinado por los bits 20-16

de la instrucción ($t1).

(22)

16 32 Reg. de lectura 1 Dato a escribir Dato leído 1 Dato leído 2 Reg. de lectura 2 Reg. de escritura

REGIS

T

ROS

Cero Resultado de la ALU

ALU

Extensión de signo Controlde la ALU 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. Resultado

Sumador

Inst. [25-21] Inst. [20-16] Inst. [15-11] Inst. [15-0] Inst. [5-0]

Memoria

de Datos

Dirección Dato a escribir Dato leído

M

u

x

M

u

x

Inst. [31-26] EscribirReg RegDest Fuente ALU Salt Cond ALUop Mem2reg LeerMem EscribirMem

Instrucción lw

(23)

16 32 Reg. de lectura 1 Dato a escribir Dato leído 1 Dato leído 2 Reg. de lectura 2 Reg. de escritura

REGIS

T

ROS

Cero Resultado de la ALU

ALU

Extensión de signo Controlde la ALU 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. Resultado

Sumador

Inst. [25-21] Inst. [20-16] Inst. [15-11] Inst. [15-0]

Memoria

de Datos

Dirección Dato a escribir Dato leído

M

u

x

M

u

x

Inst. [31-26] EscribirReg RegDest Fuente ALU Salt Cond ALUop Mem2reg LeerMem EscribirMem

Instrucción sw

(24)

Ejemplo: Instrucción de salta si igual

beq $t1, $t2, desp

Hay cuatro etapas:

1.

Se carga la instrucción de la memoria de instrucciones y se

incrementa el PC

2.

Se leen los registros $t1 y $t2 del banco de registros.

3.

La ALU realiza una resta de los operandos leídos del banco de

registros. Se suma el valor de PC+4 a los 16 bits de menor peso

(con el signo extendido) de la instrucción desplazados 2 bits. El

resultado es la dirección destino del salto.

4.

Se utiliza la señal de CERO de la ALU para decidir qué valor se

almacena en el PC.

(25)

16 32 Reg. de lectura 1 Dato a escribir Dato leído 1 Dato leído 2 Reg. de lectura 2 Reg. de escritura

REGIS

T

ROS

Cero Resultado de la ALU

ALU

Extensión de signo Controlde la ALU 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. Resultado

Sumador

Inst. [25-21] Inst. [20-16] Inst. [15-11] Inst. [15-0]

Memoria

de Datos

Dirección Dato a escribir Dato leído

M

u

x

M

u

x

Inst. [31-26] EscribirReg RegDest Fuente ALU Salt Cond ALUop Mem2reg LeerMem EscribirMem

(26)

16 32 Reg. de lectura 1 Dato a escribir Dato leído 1 Dato leído 2 Reg. de lectura 2 Reg. de escritura

REGIS

T

ROS

Cero Resultado de la ALU

ALU

Extensión de signo Controlde la ALU 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. Resultado

Sumador

Inst. [25-21] Inst. [20-16] Inst. [15-11] Inst. [15-0] Inst. [5-0]

Memoria

de Datos

Dirección Dato a escribir Dato leído

M

u

x

M

u

x

Inst. [31-26] EscribirReg RegDest Fuente ALU Salt Cond ALUop Mem2reg LeerMem EscribirMem

(27)

Añadir instrucciones

Para añadir instrucciones puede ser

necesario:

Añadir hardware

Modificar el control

Añadir multiplexores para compartir

Hardware

(28)

Añadir instrucciones: salto incondicional

Reg. de lectura 1 Dato a escribir Dato leído 1 Dato leído 2 Reg. de lectura 2 Reg. de escritura REGI STR 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

Referencias

Documento similar