Documentos de Académico
Documentos de Profesional
Documentos de Cultura
ARCHIVO DE REGISTOS
¿Qué es el Archivo de Registros?
• Un registro es un conjunto de n flip-flops que permite guardar n
bits en una sola palabra
Operación Tipo
Lectura Asíncrona
Carga Síncrona
Retención Síncrona
>> Síncrona
<< Síncrona
LI R9 0x218 R9 = 0x218
24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0
Diseño del Archivo de Registros
ADD R4, R5, R12 R4 = R5 + R12
24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
0 0 0 0 0 0 1 0 0 0 1 0 1 1 1 0 0 0 0 0 0 0 0 0 0
Diseño del Archivo de Registros
ADD R4, R5, R12 R4 = R5 + R12
24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
0 0 0 0 0 0 1 0 0 0 1 0 1 1 1 0 0 0 0 0 0 0 0 0 0
Diseño del Archivo de Registros
0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 1 1 1 0 0 1
Aluop (3 .. 0)
Aluop(3) : sela
Aluop(2) : selb
ALU1 Port map ( Aluop(1) : op(1)
A Aluop(0) : op(0)
B
Sela => aluop(3),
Selb => aluop(2),
Op => aluop(1 downto 0)
);
Registro
Registro
Diseño del Archivo de Registros
clr clk WR SHE DIR OPERACIÓN
1 x x x x Reset
registros[0, 1, … 15] = 0
0 0 0 0 Retención
registros = registros
resgistros [0] = registros[0]
0 1 0 x Carga
registros[writeReg] = writeData
0 1 1 0 >>
registros[writeReg] =
registros[readReg2] >> shamt
0 1 1 1 <<
registros[writeReg] =
registros[readReg2] << shamt
x x x x x Lectura
readData1 = registros[readReg1]
readData2 = registros[readReg2]
LI R6, #0x45
R6 = 0x45 => registros[6] = 0x45
Archivo de Registros
2 Multiplexores 16 a 1
1 Multiplexor 2 a 1
1 Demultiplexor 1 a 16
REGISTRO DE 16 BITS
clr clk L Operación
1 x x Q = 0; reset
0 0 Q = Q; retención
0 1 Q=D
writeReg = 0010
LI R2, #X40
R2 = x40
00001 0010 0000 0000 0100 0000
Corrimiento de 1 bit;
shamt = 001
Barrel shifter Ejemplo 1
Corrimiento de 1 bit;
Shift = 001
Corrimiento de 1 bit;
Shift = 101
m s(0)=0 s(0)=1
0 p(0) 0
1 p(1) p(0)
2 p(2) p(1)
3 p(3) p(2)
4 p(4) p(3)
5 p(5) p(4)
6 p(6) p(5)
7 p(7) p(6)
Para i = 1
m s(1)=0 s(1)=1
0 p(0) 0
1 p(1) 0
2 p(2) p(0)
3 p(3) p(1)
4 p(4) p(2)
5 p(5) p(3)
6 p(6) p(4)
7 p(7) p(5)
Para i = 2
m s(2)=0 s(2)=1
0 p(0) 0
1 p(1) 0
2 p(2) 0
3 p(3) 0
4 p(4) p(0)
5 p(5) p(1)
6 p(6) p(2)
7 p(7) p(3)
De forma general, para un barrel shifter de N bits
con corrimiento a la izquierda
𝑖 = 0, 1, … , (𝑙𝑜𝑔! 𝑁 − 1) Ejercicio: Realizar el análisis para
𝑗 = 0 ; 𝑗 < 2" obtener las ecuaciones para el
𝑚 𝑗 =3
0 ;𝑠 𝑖 = 1 barrel shifter hacia la derecha
𝑝 𝑗 ;𝑠 𝑖 = 0
𝑗 = 2" ; 𝑁 − 1
𝑝 𝑗 − 2" ; 𝑠 𝑖 = 1
𝑚 𝑗 =6
𝑝 𝑗 ;𝑠 𝑖 = 0
Architecture