Você está na página 1de 16

Universidad Rey Juan Carlos

ESTRUCTURA Y TECNOLOGA DE COMPUTADORES


Camino de datos y control: implementacin uniciclo
Luis Rincn Crcoles Licesio J. Rodrguez-Aragn

Camino de datos y control: implementacin uniciclo

Programa
1. 2. 3. 4. 5. 6. Introduccin. Construccin incremental del camino de datos uniciclo. El control de la UAL. Diseo de la unidad de control para el camino de datos uniciclo. Funcionamiento del camino de datos uniciclo. Las instrucciones de salto incondicional en el camino de datos uniciclo. 7. Conclusiones e implicaciones del diseo uniciclo.

Camino de datos y control: implementacin uniciclo

1. Introduccin
En la primera parte del tema:
Se han presentado varias instrucciones del repertorio del MIPS. Se han estudiado los elementos bsicos 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 disear la circuitera de control para dicho camino de datos. Se analizar el funcionamiento de dicho camino de datos.

Caractersticas 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 sera preciso ampliar el camino de datos, tanto en sus interconexiones como en la circuitera de control. Las instrucciones se ejecutan en un nico ciclo de reloj.

Camino de datos y control: implementacin uniciclo

2. Camino de datos uniciclo


Esquema global del camino de datos:

Data Register # PC Address Instruction memory Instruction Registers Register # Register # Data Data memory ALU Address

El camino de datos se va a construir en forma incremental, aadindole gradualmente la circuitera necesaria para ejecutar nuevas instrucciones.
4

Camino de datos y control: implementacin uniciclo

Camino de datos uniciclo


Circuitera necesaria para las instrucciones de memoria y aritmtico-lgicas.

Camino de datos y control: implementacin uniciclo

Camino de datos uniciclo


Se aade la circuitera para la bsqueda de instrucciones.

Camino de datos y control: implementacin uniciclo

Camino de datos uniciclo


Se aade la circuitera para las instrucciones de ramificacin incondicional.

Camino de datos y control: implementacin uniciclo

3. El control de la UAL
Operaciones efectuadas por la UAL:
Seales de control de la UAL 000 001 010 110 111 Funcin And Or Suma Resta Set on less than

Supondremos que existe una seal ALUOp de 2 bits que distingue el tipo de operacin en funcin del tipo de instruccin que se va a ejecutar:
ALUOp 00 01 10 Operacin Sumar para calcular la direccin en una instruccin de memoria. Restar para calcular la direccin de salto en una ramificacin. Dada por el campo Funct de la instruccin (instrucciones de tipo R).
8

Camino de datos y control: implementacin uniciclo

El control de la UAL
As, las seales para controlar la UAL se generan mediante un circuito cuyas entradas son:
Los dos bits de ALUOp. Los 6 bits del campo Funct.

Clculo de los 3 bits de control de la UAL:


Cdigo de operacin LW SW BEQ Tipo R Tipo R Tipo R Tipo R Tipo R ALUOp 00 00 01 10 10 10 10 10 Operacin Cargar palabra Almacenar palabra Ramificar si iguales Sumar Restar AND OR Activar si menor que Campo de funcin XXXXXX XXXXXX XXXXXX 100000 100010 100100 100101 101010 Accin deseada en la UAL Suma Suma Resta Suma Resta And Or Activar si menor que Entradas de control 010 010 110 010 110 000 001 111
9

Camino de datos y control: implementacin uniciclo

El control de la UAL
Tabla de verdad para generar los 3 bits de control de la UAL:
ALUOp ALUOp1 0 X 1 1 1 1 1 ALUOp0 0 1 X X X X X F5 X X X X X X X F4 X X X X X X X Campo Funct ALU Operation F3 X X 0 0 0 0 1 F2 X X 0 0 1 1 0 F1 X X 0 1 0 0 1 F0 X X 0 0 0 1 0 010 110 010 110 000 001 111

10

Camino de datos y control: implementacin uniciclo

El control de la UAL
ALUOp Campo Funct F5 X X F4 X X F3 X X F2 X X F1 X 1 F0 X X

Tabla de verdad para ALUOp1 Operation2 = 1:


X 1

ALUOp0 1 X

ALUOp

Campo Funct F5 X X F4 X X F3 X X F2 X 0 F1 X X F0 X X

Tabla de verdad para ALUOp1 Operation1 = 1:


0 X

ALUOp0 X X

ALUOp

Campo Funct F5 X X F4 X X F3 X 1 F2 X X F1 X X F0 1 X
11

Tabla de verdad para ALUOp1 Operation0 = 1:


1 1

ALUOp0 X X

Camino de datos y control: implementacin uniciclo

El control de la UAL
Circuito resultante:
ALUOp ALU control block ALUOp0 ALUOp1

F3 F2 F (5 0) F1

Operation2 Operation1 Operation0 Operation

F0

12

Camino de datos y control: implementacin uniciclo

4. Diseo de la unidad de control


Para disear la unidad de control es preciso examinar los formatos de las instrucciones utilizadas.
Cd. Op. Registro fuente 1 rs 5
25-21

Tipo R
(shamt: shift amount en instrucciones de desplazamiento)

Registro fuente 2 rt 5
20-16

Registro destino rd 5
15-11

Funct shamt 5
10-6

0 6
31-26

funct 6
5-0

Carga o almacenamiento (tipo I)

Cd. Op. 0x23 0X2B 6


31-26

Registro base rs 5
25-21

Registro destino rt 5
20-16

Desplazamiento Offset 16
15-0

Ramificacin condicional (tipo I)

Cd. Op. 0x04 6


31-26

Registro fuente 1 rs 5
25-21

Registro fuente 2 rt 5
20-16

Desplazamiento Offset 16
15-0 13

Camino de datos y control: implementacin uniciclo

Observaciones sobre los formatos de instruccin


El campo del cdigo de operacin tiene siempre el mismo tamao (6 bits) y est siempre en el mismo lugar (bits 31-26). En las instrucciones de tipo R, BEQ y SW los nmeros de los registros de lectura estn siempre en los campos rs (bits 25-21) y rt (bits 20-16). El nmero del registro base para la instruccin 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 aadir un multiplexor para seleccionar el nmero del registro sobre el que se va a escribir.

14

Camino de datos y control: implementacin uniciclo

Camino de datos uniciclo

15

Camino de datos y control: implementacin uniciclo

Seales de control
Seal de control RegDest RegDst EscrReg RegWrite FuenteALU ALUSrc FuentePC PCSrc LeerMem MemRead EscrMem MemWrite MemaReg MemtoReg Efecto cuando est inactiva El identificador de registro destino est en rt (bits 20-16) Ninguno El segundo operando de la UAL proviene del segundo registro ledo El PC se incrementa normalmente (sumndole 4) Ninguno Ninguno El valor en la entrada del banco de registros procede de la UAL Efecto cuando est activa El identificador de registro destino est en rd (bits 15-11) El registro destino se escribe con el valor correspondiente El segundo operando de la UAL es el desplazamiento extendido a 32 bits El PC se carga con una nueva direccin dada por la salida del sumador de clculo de direcciones Se lee una posicin de memoria y su contenido se coloca a la salida de datos Se escribe una posicin de memoria con el valor dado en la entrada de datos El valor de la entrada del banco de registros procede de la memoria

La seal PCSrc no se puede generar directamente por la unidad de control, porque hace falta conocer la seal de resultado nulo procedente de la UAL. La seal ALUOp es de dos bits, e indica a la UAL qu operacin tiene que realizar.

16

Camino de datos y control: implementacin uniciclo

Camino de datos con la unidad de control

17

Camino de datos y control: implementacin uniciclo

Implementacin de la funcin de control


La funcin de control est completamente especificada por los bits del cdigo de operacin.
Instruccin y cdigo de operacin Formato R 000000 LW 100011 SW 101011 BEQ 000100 RegDest RegDst 1 0 X X FuenteALU ALUSrc 0 1 1 0 MemaReg MemtoReg 0 1 X X EscrReg RegWrite 1 1 0 0 LeerMem MemRead 0 1 0 0 EscrMem MemWrite 0 0 1 0 Saltocond Branch 0 0 0 1 ALUOp1 ALUOp0

1 0 0 0

0 0 0 1

El control es muy sencillo, porque se utilizan slo unas pocas de las combinaciones posibles para el cdigo de operacin. La sencillez del control justifica su realizacin mediante una red de puertas. Si se incluyesen todas las instrucciones del repertorio, la funcin de control se especificara mediante una gran tabla, y su sntesis se realizara mediante otras tcnicas:
Decodificadores, ROM. PLA: simplificacin asistida por mtodos automticos.
18

Camino de datos y control: implementacin uniciclo

Tabla de la funcin de control


Control Seal
Op5 Op4 Entradas Op3 Op2 Op1 Op0 RegDest (RegDst) FuenteALU (ALUSrc) MemaReg (MemtoReg) EscrReg (RegWrite) Salidas LeerMem (MemRead) EscrMem (MemWrite) Saltocond (Branch) ALUOp1 ALUOp0

Formato R
0 0 0 0 0 0 1 0 0 1 0 0 0 1 0

LW
1 0 0 0 1 1 0 1 1 1 1 0 0 0 0

SW
1 0 1 0 1 1 X 1 X 0 0 1 0 0 0

BEQ
0 0 0 1 0 0 X 0 X 0 0 0 1 0 1

19

Camino de datos y control: implementacin uniciclo

Circuito de control
Inputs Op5 Op4 Op3 Op2 Op1 Op0

Outputs R-format Iw sw beq RegDst ALUSrc MemtoReg RegWrite MemRead MemWrite Branch ALUOp1 ALUOpO
20

Camino de datos y control: implementacin uniciclo

5. Funcionamiento del camino de datos


En la realizacin uniciclo, la unidad de control genera y activa todas las seales pertinentes para una instruccin en un nico periodo de reloj. A pesar de ello, puede considerarse que, en su ejecucin, las instrucciones atraviesan una serie de fases o etapas. El nmero y la secuencia de etapas depende de la propia instruccin. Las etapas son activadas por la unidad de control, que se encarga de generar las seales de control adecuadas en el instante preciso. Ejemplo: etapas de una instruccin de tipo R.
1. Lectura de la instruccin que est en memoria e incremento del PC. 2. Lectura de los operandos fuente, contenidos en sendos registros de propsito general ubicados en el banco de registros. 3. Realizacin de la operacin en la UAL. 4. Escritura del resultado obtenido en el registro destino ubicado en el banco de registros.
21

Camino de datos y control: implementacin uniciclo

Instruccin R: etapa 1
Leer instruccin de memoria e incrementar el PC.

22

Camino de datos y control: implementacin uniciclo

Instruccin R: etapa 2
Leer los registros del banco de registros.

23

Camino de datos y control: implementacin uniciclo

Instruccin R: etapa 3
Realizar la operacin en la UAL.

24

Camino de datos y control: implementacin uniciclo

Instruccin R: etapa 4
Guardar resultado en el banco de registros.

25

Camino de datos y control: implementacin uniciclo

Instruccin LW
Etapas de una instruccin LW: 1. Lectura de la instruccin que est en memoria e incremento del PC. 2. Lectura de la direccin base, contenida en un registro de propsito general ubicado en el banco de registros. 3. Clculo de la direccin del operando fuente en la UAL mediante la suma del registro base ms los 16 bits menos significativos de la instruccin extendidos en signo. 4. Lectura en memoria del operando fuente. La direccin en la que se encuentra viene dada por el resultado de la suma efectuada en la etapa anterior. 5. Escritura del dato ledo en la etapa anterior en el registro destino, ubicado en el banco de registros en la posicin dada por los bits 20-16 de la instruccin.

26

Camino de datos y control: implementacin uniciclo

Instruccin LW

27

Camino de datos y control: implementacin uniciclo

Instruccin BEQ
Etapas de una instruccin BEQ: 1. Lectura de la instruccin que est en memoria e incremento del PC. 2. Lectura de los operandos fuente, contenidos en sendos registros de propsito 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, ms los 16 bits menos significativos de la instruccin previamente desplazados dos lugares hacia la izquierda y extendidos en signo hasta 32 bits para calcular la direccin de ramificacin. 4. Se almacena la direccin de la siguiente instruccin en el PC. Esta direccin puede ser la que ya contena (en caso de que la resta no d resultado nulo), o bien la direccin de ramificacin (en caso de que el resultado de la resta sea nulo).
28

Camino de datos y control: implementacin uniciclo

Instruccin BEQ

29

Camino de datos y control: implementacin uniciclo

6. Instrucciones de salto incondicional


Formato de la instruccin:
Cd. Op. 0x02 6
31-26

Direccin destino target 26


25-0

Etapas de una instruccin J:


1. Lectura de la instruccin que est en memoria e incremento del PC. 2. Almacenamiento de la direccin de la siguiente instruccin en el PC, que se calcular como la concatenacin de los cuatro bits ms significativos del PC actual y el campo de direccin destino de la instruccin desplazado dos posiciones hacia la izquierda.

Circuitera necesaria:
Otro multiplexor para seleccionar el nuevo PC, con su correspondiente seal de control. Un desplazador.
30

Camino de datos y control: implementacin uniciclo

Instrucciones de salto incondicional

31

Camino de datos y control: implementacin uniciclo

7. Conclusiones e implicaciones del diseo


Todas las instrucciones deben durar lo mismo: 1 ciclo de reloj.
El ciclo de reloj debe ser suficientemente largo como para permitir la ejecucin de la instruccin ms lenta de todas. Camino crtico de la ruta de datos: dado por la instruccin 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 extensin de signo, lectura o escritura del PC: despreciable.

En tal caso, el retardo de lw sera 8 ns


El retardo de las dems instrucciones sera menor, pero todas ocuparan 8 ns! Habra que aadir un margen para evitar problemas debidos al sesgo del reloj.

El ciclo de reloj largo hace que las instrucciones ms cortas se ejecuten en ms tiempo del necesario: esta implementacin es ineficiente. Si hay instrucciones muy largas (coma flotante, mltiples accesos a memoria) frente a otras muy cortas, el desperdicio de tiempo es enorme. 32

Você também pode gostar