Escolar Documentos
Profissional Documentos
Cultura Documentos
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.
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.
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
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
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.
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
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
ALUOp0 1 X
ALUOp
Campo Funct F5 X X F4 X X F3 X X F2 X 0 F1 X X F0 X 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
ALUOp0 X X
El control de la UAL
Circuito resultante:
ALUOp ALU control block ALUOp0 ALUOp1
F3 F2 F (5 0) F1
F0
12
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
Registro base rs 5
25-21
Registro destino rt 5
20-16
Desplazamiento Offset 16
15-0
Registro fuente 1 rs 5
25-21
Registro fuente 2 rt 5
20-16
Desplazamiento Offset 16
15-0 13
14
15
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
17
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
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
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
Instruccin R: etapa 1
Leer instruccin de memoria e incrementar el PC.
22
Instruccin R: etapa 2
Leer los registros del banco de registros.
23
Instruccin R: etapa 3
Realizar la operacin en la UAL.
24
Instruccin R: etapa 4
Guardar resultado en el banco de registros.
25
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
Instruccin LW
27
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
Instruccin BEQ
29
Circuitera necesaria:
Otro multiplexor para seleccionar el nuevo PC, con su correspondiente seal de control. Un desplazador.
30
31
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