Post on 15-Jan-2017
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.
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
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
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
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
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
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
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.
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.
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
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.
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
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.
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).
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.
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