Camino de datos y control: implementación uniciclo.

16
Universidad Rey Juan Carlos ESTRUCTURA Y TECNOLOG ESTRUCTURA Y TECNOLOGÍ A DE A DE COMPUTADORES COMPUTADORES Luis Rincón Córcoles Licesio J. Rodríguez-Aragón Camino de datos y control: implementación uniciclo Camino de datos y control: implementación uniciclo 2 Programa 1. Introducción. 2. Construcción incremental del camino de datos uniciclo. 3. El control de la UAL. 4. Diseño de la unidad de control para el camino de datos uniciclo. 5. Funcionamiento del camino de datos uniciclo. 6. Las instrucciones de salto incondicional en el camino de datos uniciclo. 7. Conclusiones e implicaciones del diseño uniciclo.

Transcript of Camino de datos y control: implementación uniciclo.

Page 1: Camino de datos y control: implementación uniciclo.

Universidad

Rey Juan Carlos

ESTRUCTURA Y TECNOLOGESTRUCTURA Y TECNOLOGÍÍA DE A DE COMPUTADORESCOMPUTADORES

Luis Rincón CórcolesLicesio J. Rodríguez-Aragón

Camino de datos y control:

implementación uniciclo

Camino de datos y control: implementación uniciclo

2

Programa

1. Introducción.

2. Construcción incremental del camino de datos uniciclo.

3. El control de la UAL.

4. Diseño de la unidad de control para el camino de datos uniciclo.

5. Funcionamiento del camino de datos uniciclo.

6. Las instrucciones de salto incondicional en el camino de datos

uniciclo.

7. Conclusiones e implicaciones del diseño uniciclo.

Page 2: Camino de datos y control: implementación uniciclo.

Camino de datos y control: implementación uniciclo

3

En la primera parte del tema:•Se han presentado varias instrucciones del repertorio del MIPS.•Se han estudiado los elementos básicos que forman parte de un camino de datos en un computador sencillo.•Se han presentado algunos caminos de datos sencillos para ciertas operaciones.

Con todo ello, en esta segunda parte:•Se construirá un camino de datos conjunto para todas las instrucciones presentadas.•Se diseñará la circuitería de control para dicho camino de datos.•Se analizará el funcionamiento de dicho camino de datos.

Características del camino de datos construido:•Es muy sencillo, ya que responde a un subconjunto reducido del repertorio de instrucciones del MIPS.•Para ejecutar otras instrucciones sería preciso ampliar el camino de datos, tanto en sus interconexiones como en la circuitería de control.•Las instrucciones se ejecutan en un único ciclo de reloj.

1. Introducción

Camino de datos y control: implementación uniciclo

4

Esquema global del camino de datos:

2. Camino de datos uniciclo

El camino de datos se va a construir en forma incremental, añadiéndole gradualmente la circuitería necesaria para ejecutar nuevas instrucciones.

Registers

Register #

Data

Register #

Datamemory

Address

Data

Register #

PC Instruction ALU

Instructionmemory

Address

Page 3: Camino de datos y control: implementación uniciclo.

Camino de datos y control: implementación uniciclo

5

Circuitería necesaria para las instrucciones de memoria y aritmético-lógicas.

Camino de datos uniciclo

Camino de datos y control: implementación uniciclo

6

Se añade la circuitería para la búsqueda de instrucciones.

Camino de datos uniciclo

Page 4: Camino de datos y control: implementación uniciclo.

Camino de datos y control: implementación uniciclo

7

Camino de datos unicicloSe añade la circuitería para las instrucciones de ramificación incondicional.

Camino de datos y control: implementación uniciclo

8

Operaciones efectuadas por la UAL:

Supondremos que existe una señal ALUOp de 2 bits que distingue el tipo de operación en función del tipo de instrucción que se va a ejecutar:

3. El control de la UAL

Set on less than111

Resta110

Suma010

Or001

And000

FunciónSeñales de control de la UAL

Dada por el campo Funct de la instrucción (instrucciones de tipo R).10

Restar para calcular la dirección de salto en una ramificación.01

Sumar para calcular la dirección en una instrucción de memoria.00

OperaciónALUOp

Page 5: Camino de datos y control: implementación uniciclo.

Camino de datos y control: implementación uniciclo

9

Así, las señales para controlar la UAL se generan mediante un circuito cuyasentradas son:

•Los dos bits de ALUOp.•Los 6 bits del campo Funct.

Cálculo de los 3 bits de control de la UAL:

El control de la UAL

001Or100101OR10Tipo R

110Resta100010Restar10Tipo R

000And100100AND10Tipo R

10

10

01

00

00

ALUOp

Tipo R

Tipo R

BEQ

SW

LW

Código de operación

Activar si menor que

Sumar

Ramificar si iguales

Almacenar palabra

Cargar palabra

Operación

101010

100000

XXXXXX

XXXXXX

XXXXXX

Campo de función

111Activar si menor que

010Suma

110Resta

010Suma

010Suma

Entradas de control

Acción deseada en la UAL

Camino de datos y control: implementación uniciclo

10

Tabla de verdad para generar los 3 bits de control de la UAL:

El control de la UAL

0000010XXX1

0011010XXX1

Campo FunctALUOp

X

X

X

1

0

ALUOp0

X

X

X

X

X

F5

X

X

X

X

X

F4

1

0

0

X

X

F3

1

1

1

X

0

ALUOp1

0

0

0

X

X

F2

1

1

0

X

X

F1

1110

1100

0100

110X

010X

ALU OperationF0

Page 6: Camino de datos y control: implementación uniciclo.

Camino de datos y control: implementación uniciclo

11

Tabla de verdad para Operation2 = 1:

El control de la UALCampo FunctALUOp

X

1

ALUOp0

X

X

F5

X

X

F4

X

X

F3

1

X

ALUOp1

X

X

F2

1

X

F1

X

X

F0

Tabla de verdad para Operation1 = 1:

Campo FunctALUOp

X

X

ALUOp0

X

X

F5

X

X

F4

X

X

F3

X

0

ALUOp1

0

X

F2

X

X

F1

X

X

F0

Tabla de verdad para Operation0 = 1:

Campo FunctALUOp

X

X

ALUOp0

X

X

F5

X

X

F4

1

X

F3

1

1

ALUOp1

X

X

F2

X

X

F1

X

1

F0

Camino de datos y control: implementación uniciclo

12

Circuito resultante:

El control de la UAL

Operation2

Operation1

Operation0

Operation

ALUOp1

F3

F2

F1

F0

F (5– 0)

ALUOp0

ALUOp

ALU control block

Page 7: Camino de datos y control: implementación uniciclo.

Camino de datos y control: implementación uniciclo

13

Para diseñar la unidad de control es preciso examinar los formatos de las instrucciones utilizadas.

4. Diseño de la unidad de control

655556

5-010-615-1120-1625-2131-26

Funct

functshamtrdrtrs0

Registro destino

Registro fuente 2

Registro fuente 1

Cód. Op.Tipo R

(shamt: shift amounten instrucciones de

desplazamiento)

16556

15-020-1625-2131-26

Offsetrtrs0x23 ó 0X2B

DesplazamientoRegistro destino

Registro base

Cód. Op.Carga o

almacenamiento (tipo I)

16556

15-020-1625-2131-26

Offsetrtrs0x04

DesplazamientoRegistro fuente 2

Registro fuente 1

Cód. Op.Ramificación condicional

(tipo I)

Camino de datos y control: implementación uniciclo

14

El campo del código de operación tiene siempre el mismo tamaño (6 bits) y estásiempre en el mismo lugar (bits 31-26).

En las instrucciones de tipo R, BEQ y SW los números de los registros de lectura están siempre en los campos rs (bits 25-21) y rt (bits 20-16).

El número del registro base para la instrucción LW está siempre en el campo rs.

El desplazamiento relativo, ya sea para BEQ o para las instrucciones de memoria, siempre ocupa 16 bits y está en los bits 15-0.

El registro destino puede estar en dos lugares:•En LW está en rt (bits 20 a 16).•En las instrucciones de tipo R está en rd (bits 15-11).•Esto implica que sea preciso añadir un multiplexor para seleccionar el número del registro sobre el que se va a escribir.

Observaciones sobre los formatos de instrucción

Page 8: Camino de datos y control: implementación uniciclo.

Camino de datos y control: implementación uniciclo

15

Camino de datos uniciclo

Camino de datos y control: implementación uniciclo

16

Señales de control

Se escribe una posición de memoria con el valor dado en la entrada de datos

NingunoEscrMem

MemWrite

Se lee una posición de memoria y su contenido se coloca a la salida de datos

NingunoLeerMemMemRead

El valor de la entrada del banco de registros procede de la memoria

El valor en la entrada del banco de registros procede de la UAL

MemaRegMemtoReg

El segundo operando de la UAL es el desplazamiento extendido a 32 bits

El segundo operando de la UAL proviene del segundo registro leído

FuenteALUALUSrc

El PC se carga con una nueva dirección dada por la salida del sumador de cálculo de direcciones

El PC se incrementa normalmente (sumándole 4)

FuentePCPCSrc

Ninguno

El identificador de registro destino está en rt (bits 20-16)

Efecto cuando está inactiva

El registro destino se escribe con el valor correspondiente

EscrRegRegWrite

El identificador de registro destino está en rd (bits 15-11)

RegDestRegDst

Efecto cuando está activaSeñal de control

La señal PCSrc no se puede generar directamente por la unidad de control, porque hace falta conocer la señal de resultado nulo procedente de la UAL.

La señal ALUOp es de dos bits, e indica a la UAL qué operación tiene que realizar.

Page 9: Camino de datos y control: implementación uniciclo.

Camino de datos y control: implementación uniciclo

17

Camino de datos con la unidad de control

Camino de datos y control: implementación uniciclo

18

Implementación de la función de control

0

1

0

0

EscrMem MemWrite

1

0

0

0

Saltocond Branch

0

0

0

1

ALUOp1

0

0

1

0

LeerMem MemRead

1

0

0

0

ALUOp0

BEQ000100

SW101011

LW100011

Formato R000000

Instrucción y código de operación

1001

1110

0X1X

0X0X

MemaReg MemtoReg

EscrReg RegWrite

FuenteALU ALUSrc

RegDest RegDst

La función de control está completamente especificada por los bits del código de operación.

El control es muy sencillo, porque se utilizan sólo unas pocas de las combinaciones posibles para el código de operación.

La sencillez del control justifica su realización mediante una red de puertas.

Si se incluyesen todas las instrucciones del repertorio, la función de control se especificaría mediante una gran tabla, y su síntesis se realizaría mediante otras técnicas:

•Decodificadores, ROM.•PLA: simplificación asistida por métodos automáticos.

Page 10: Camino de datos y control: implementación uniciclo.

Camino de datos y control: implementación uniciclo

19

Tabla de la función de control

0110Op5

Entradas

0000Op4

0100Op3

1000Op2

0110Op1

0110Op0

0001ALUOp1

1000Saltocond (Branch)

1000ALUOp0

Salidas

Control

0

1

1

1

1

0

LW

1

0

0

X

1

X

SW

00EscrMem (MemWrite)

00LeerMem (MemRead)

X0MemaReg (MemtoReg)

01EscrReg (RegWrite)

0

1

Formato R

0FuenteALU (ALUSrc)

XRegDest (RegDst)

BEQSeñal

Camino de datos y control: implementación uniciclo

20

Circuito de control

R-format Iw sw beq

Op0

Op1

Op2

Op3

Op4

Op5

Inputs

Outputs

RegDst

ALUSrc

MemtoReg

RegWrite

MemRead

MemWrite

Branch

ALUOp1

ALUOpO

Page 11: Camino de datos y control: implementación uniciclo.

Camino de datos y control: implementación uniciclo

21

5. Funcionamiento del camino de datosEn la realización uniciclo, la unidad de control genera y activa todas las

señales pertinentes para una instrucción en un único periodo de reloj.

A pesar de ello, puede considerarse que, en su ejecución, las instrucciones atraviesan una serie de fases o etapas.

El número y la secuencia de etapas depende de la propia instrucción.

Las etapas son activadas por la unidad de control, que se encarga de generar las señales de control adecuadas en el instante preciso.

Ejemplo: etapas de una instrucción de tipo R.

1. Lectura de la instrucción que está en memoria e incremento del PC. 2. Lectura de los operandos fuente, contenidos en sendos registros de propósito general ubicados en el banco de registros.3. Realización de la operación en la UAL.4. Escritura del resultado obtenido en el registro destino ubicado en el banco de registros.

Camino de datos y control: implementación uniciclo

22

Instrucción R: etapa 1Leer instrucción de memoria e incrementar el PC.

Page 12: Camino de datos y control: implementación uniciclo.

Camino de datos y control: implementación uniciclo

23

Leer los registros del banco de registros.

Instrucción R: etapa 2

Camino de datos y control: implementación uniciclo

24

Realizar la operación en la UAL.

Instrucción R: etapa 3

Page 13: Camino de datos y control: implementación uniciclo.

Camino de datos y control: implementación uniciclo

25

Guardar resultado en el banco de registros.

Instrucción R: etapa 4

Camino de datos y control: implementación uniciclo

26

Instrucción LW

Etapas de una instrucción LW:

1. Lectura de la instrucción que está en memoria e incremento del PC.

2. Lectura de la dirección base, contenida en un registro de propósito general ubicado en el banco de registros.

3. Cálculo de la dirección del operando fuente en la UAL mediante la suma del registro base más los 16 bits menos significativos de la instrucción extendidos en signo.

4. Lectura en memoria del operando fuente. La dirección en la que se encuentra viene dada por el resultado de la suma efectuada en la etapa anterior.

5. Escritura del dato leído en la etapa anterior en el registro destino, ubicado en el banco de registros en la posición dada por los bits 20-16 de la instrucción.

Page 14: Camino de datos y control: implementación uniciclo.

Camino de datos y control: implementación uniciclo

27

Instrucción LW

Camino de datos y control: implementación uniciclo

28

Instrucción BEQ

Etapas de una instrucción BEQ:

1. Lectura de la instrucción que está en memoria e incremento del PC.

2. Lectura de los operandos fuente, contenidos en sendos registros de propósito general ubicado en el banco de registros.

3. La UAL resta los operandos fuente para determinar si son iguales, lo cual es cierto si el resultado de la resta es 0. Al mismo tiempo, se suma el valor del PC, previamente incrementado, más los 16 bits menos significativos de la instrucción previamente desplazados dos lugares hacia la izquierda y extendidos en signo hasta 32 bits para calcular la dirección de ramificación.

4. Se almacena la dirección de la siguiente instrucción en el PC. Esta dirección puede ser la que ya contenía (en caso de que la resta no dé resultado nulo), o bien la dirección de ramificación (en caso de que el resultado de la resta sea nulo).

Page 15: Camino de datos y control: implementación uniciclo.

Camino de datos y control: implementación uniciclo

29

Instrucción BEQ

Camino de datos y control: implementación uniciclo

30

6. Instrucciones de salto incondicional

Formato de la instrucción:

Etapas de una instrucción J:1. Lectura de la instrucción que está en memoria e incremento del PC. 2. Almacenamiento de la dirección de la siguiente instrucción en el PC, que se calculará como la concatenación de los cuatro bits más significativos del PC actual y el campo de dirección destino de la instrucción desplazado dos posiciones hacia la izquierda.

Circuitería necesaria: •Otro multiplexor para seleccionar el nuevo PC, con su correspondiente señal de control.•Un desplazador.

266

25-031-26

target0x02

Dirección destinoCód. Op.

Page 16: Camino de datos y control: implementación uniciclo.

Camino de datos y control: implementación uniciclo

31

Instrucciones de salto incondicional

Camino de datos y control: implementación uniciclo

32

Todas las instrucciones deben durar lo mismo: 1 ciclo de reloj.•El ciclo de reloj debe ser suficientemente largo como para permitir la ejecución de la instrucción más lenta de todas.•Camino crítico de la ruta de datos: dado por la instrucción lw.

Supongamos que las unidades funcionales tienen los siguientes retardos:•Unidades de memoria: 2 ns cada una.•UAL y sumadores: 2 ns cada uno.•Acceso de cualquier tipo al banco de registros: 1 ns.•Multiplexores, unidad de control, cables, unidad de extensión de signo, lectura o escritura del PC: despreciable.

En tal caso, el retardo de lw sería 8 ns•¡El retardo de las demás instrucciones sería menor, pero todas ocuparían 8 ns!•Habría que añadir un margen para evitar problemas debidos al sesgo del reloj.

El ciclo de reloj largo hace que las instrucciones más cortas se ejecuten en más tiempo del necesario: esta implementación es ineficiente.

•Si hay instrucciones muy largas (coma flotante, múltiples accesos a memoria) frente a otras muy cortas, el desperdicio de tiempo es enorme.

7. Conclusiones e implicaciones del diseño