Documentos de Académico
Documentos de Profesional
Documentos de Cultura
A tomar en cuenta
Laejecución de una instrucción implica
la ejecución de una secuencia de pasos
más pequeños, normalmente llamados
ciclos.
MAR 0000000001100100
Primero: llevar esa dirección al registro de MBR
dirección de memoria (MAR), por ser el único
PC 0000000001100100
registro conectado a las líneas de dirección del bus
IR
del sistema.
AC
ALU
Registros
Caminos de datos internos
Caminos de datos externos
Unidad de control
2. Tipos de mirooperaciones
La ejecución de un programa consta de operaciones
que involucran todos elementos del procesador.
Las operaciones consisten en una secuencia de
microoperaciones.
Todas las microoperaciones se pueden clasificar en una
de las siguientes categorías:
Ejecución
Hacer que se ejecute cada microoperacion
Señales de Control de entrada
• Reloj
—La señal que hace que se ejecute una microoperación por ciclo de reloj
• Registro de Instrucción
—Código de operación de la instrucción en curso
—Determina cuales micro-instrucciones se realizan en el ciclo de ejecución
• Indicadores (Flags)
—Estado de la CPU
—Resultado de operaciones previas
• Señales de control de bus del sistema
—Interrupciones
—Reconocimientos
Señales de Control de salida
MBR (memoria)
—Activa las compuertas entre MAR y el bus de direcciones
—Activa la señal de control de lectura de la memoria
—Activa las compuertas entre el bus de datos y el MBR
Señales de control de la lógica que suma I al contenido de
PC y almacena el resultado en el nuevo PC
Despues, la unidad de control envía una señal de control que
abra las puertas adecuadas entre el MBR y IR
UN EJEMPLO DE SEÑALES DE CONTROL
• procesador sencillo con un único acumulador.
• Se indican los caminos de datos entre los distintos elementos.
• Los caminos de control de las señales que proceden de la unidad de control no
se muestran, pero las terminaciones de las señales de control están designadas
como Ci y se indican mediante un círculo designadas como Ci
Caminos de datos: la unidad de control dirige el flujo interno de datos.
• Bus del sistema: la unidad de control envía señales de control a las líneas de control del bus
del sistema (por ejemplo, lectura de la memoria).
Organización Interna del procesador
Las compuertas o señales que controlan el
movimiento de datos desde y hacia el bus interno
Las señales de control manejan la transferencia de
datos desde y hacia el bus externo.
Es necesario agregar registros temporales (de entrada
y de salida) para asegurar una operación apropiada
de la ALU
IMPLEMENTACIÓN CABLEADA
• Implementación cableada
• Implementación microprogramada
Actualización del
estado
Diseño: Pasos necesarios
1er Paso: Analizar el conjunto de instrucciones para
determinar los requerimientos del Camino de Datos
2o Paso: Seleccionar los componentes
3er Paso: Construir el Camino de Datos según los
requerimientos
4o Paso: Analizar la implementación de cada
instrucción para determinar las señales de control
necesarias
5o Paso: Construir el Control.
1er Paso: Formato MIPS de
47
Instrucción
Son todas de 32 bits. Tres formatos:
31 26 21 16 11
Tipo R
6 0
op rs rt rd sha funct
mt
Tipo I
31 26 21 16
0
op rs rt Address/inmediate
Tipo J
31 26
0
op Target Address
1er Paso: Subconjunto MIPS
ADD y SUB 31 26 21 16 11
addu rd ,rs ,rt 6 0
o rs rt rd sham fun
subu rd, rs ,rt t ct
p
OR inmediato 31 26 21 16
0
ori rt, rs, inm16
BRANCH 31 26 21 16
0
beq rs, rt, inm16
op rs rt Address/inmedia
te
1er Paso: RTL
Todas las instrucciones comienzan haciendo el fetch
ADDU R[rd]<--R[rs]+R[rt]; PC<--PC+4
PC
Instruction Add Sum
Instruction
memory
MemWrite
RegWrite
a. Registers b. ALU
2o Paso: Componentes del Camino de
Datos 52
Elementos Combinacionales
ALU
Sum
MUX
a Resultado 2
3 3 32
B 2 2
B
B
2o Paso: Componentes del Camino de
Datos
Elementos de Almacenamiento: Banco de
Registros
RegW
WE
LRA
5
LRB BusA
5
ER 32
Dat Dat
32 5 32 Registros BusB
a In 32 a
de 32 bits
Out
BusW 32
32
CLK CLK
2o Paso: Componentes del Camino de
Datos
Elementos de Almacenamiento: Banco de
Registros: dos puertos de lectura
RegW
Read register
number 1
Register 0 LRA
Register 1 M 5
u Read data 1 LRB BusA
Register n – 1 x 5
ER 32
Register n
5 32 Registros BusB
de 32 bits
Read register
number 2 BusW 32
32
M
u Read data 2
x
CLK
2o Paso: Componentes del Camino de
Datos
Elementos de Almacenamiento: Banco de
Registros: un puerto de escritura
RegW
Write
C
0 LRA
Register 0
1 D
5
n-to-1 C LRB BusA
Register number
decoder Register 1
5
D ER 32
n– 1
n 5 32 Registros BusB
de 32 bits
BusW 32
C
Register n – 1
32
D
C
Register n
Register data D
CLK
2o Paso: Componentes del Camino de
Datos
Elementos de Almacenamiento:
Memorias WE
direcció
n
Dato
dirección 32
instrucci Out
ón
32 32
32
Memoria de Memoria
Instrucciones de Datos
Dato In
32
CLK
3er Paso:Construcción del Camino de Datos
Fetch de Instrucciones
Mem[PC]; PC<-- PC+4 (código secuencial)
3
2
3
+
2
WE
3
4 2
dirección
instrucci
PC
ón
32
32
Memoria
de
Instruccio
nes
CLK
3er Paso:Construcción del Camino de Datos
Formato R: Addu y Subu 58
5
rt BusA
LRB
5
rd 32 3
WR
n
2
5 32 BusB
Registros
BusW de 32 bits
32
32
CLK
3er Paso:Construcción del Camino de Datos
Formato I: lógicas con Inmediato 59
RegDs
t Reg
W Alusrc
ALUctr
rs
LRA
5
rt BusA
LRB
5
32 3
WR
MUX
2
Instrucció
5 32 BusB
r Registros
de 32 bits M
d BusW 32 U
n
X
32
CLK
3
Inm16
xt
ZeroE
2
3er Paso:Construcción del Camino de Datos
Formato I: LOAD 60
Lw rt,rs,inmm1 6
R[rt]<--Mem[R[rs]+ SignExt[inm16]]; PC<--PC+4
RegDs
t Reg
W Alusrc
ALUctr
W_src
rs
LRA
5
rt BusA
LRB
5
32 3
WR
MUX
2
Instrucció
32 BusB M
5
Registros U
r WE
de 32 bits M X
d BusW 32 U
n
X
@
32
Memori
a de
Datos
CLK
3 32
Inm16 CLK
n
EXtensio
2
3er Paso:Construcción del Camino de Datos
Formato I: STORE 61
Sw rt,rs,inmm1 6
Mem[R[rs]+ SignExt[inm16]]<----R[rt]; PC<--PC+4
RegDs
t Reg
W Alusrc
ALUctr
W_src
rs
LRA
5
rt BusA
LRB
5
32 3
WR
MUX
2
Instrucció
32 BusB M
5
Registros U
r WE
de 32 bits M X
d BusW 32 U
n
X
@
32
Memori
a de
Datos
CLK
3 32
Inm16 CLK
n
EXtensio
2
3er Paso:Construcción del Camino de Datos
Formato I: Branch 62
Beq rs, rt, inm16
if (R[rs]==R[rt]) then PC<--PC+4+(sign_ext(Inm16)*4
else PC<--PC+4
PC_sr
c
WE
3
2
3
+
2
instrucci
MUX
PC
3 dirección
4 2 ón
Memoria 32
3
de
2
Instruccio
nes
3
+
2
n
Extensió
3
2
<<
CLK
2
3er Paso:Juntando Todo
Pcsrc
MUX
2
>>
RegDs
t Reg ZER
W Alusr
32 O
c
ALUctr
W_sr
32 rs c
+ LRA
5
3 r BusA
4 2 LRB
t
5
32 32
WR
MUX
32 BusB M
5
Registr U
instrucci rd WE
M X
ón Bus os de
32 U
PC
Memoria W 32 bits
32 X
de 32 @
Instruccio Memori
nes a de
Datos
CLK
CLK
3 3
Inm C
n
EXtensio
2 2
16 L
K
Señales de Control
No Activa Activa
RegDst destino es rt destino es rd
MUX
2
>>
RegD ZER
st Reg O
W Alusr
3
c
2 ALUct
W_sr
32 r
rs c
+ LRA
5
32 rt BusA
4 LRB
5
32 3
WR
MUX
2
32 BusB M
5
Registr U
instrucci rd WE
M X
ón BusW os de
32 U
PC
Memoria de 32 bits
32 X
Instruccione 3 @
s 2 Memo
ria de
Datos
CL
CLK K
3 3
Inm16 C
n
EXtensio
2 2 L
K
Ejemplo: ADDU 66
Pcsrc
MUX
2
>>
RegD ZERO
st Reg
W Alusr
3
c
2 ALUct
W_sr
32 r
rs c
+ LRA
5
32 rt BusA
4 LRB
5
32 3
WR
MUX
2
32 BusB M
5
Registr U
instrucci rd WE
M X
ón BusW os de
32 U
PC
Memoria de 32 bits
32 X
Instruccione 3 @
s 2 Memo
ria de
Datos
CL
CLK K
3 3
Inm16 C
n
EXtensio
2 2 L
K
40 Paso:Control
Inm16
Memoria de <0..15>
Branch
Instrucciones Rd Unidad
<11..15 RegW
Unidad
>
Rt
de de
<16..20 Control RegDst Proceso
>
Rs
<21..25
>
Funct
<0..6> ALUsrc
Op
<26..31 ALUctr
>
WE
W_src
4o Paso:Control
Branc
68
h
MUX
WE
CONTROL
W_sr
2
>>
c
Pcsrc
32 RegDs Reg Alusr ZER
W c O
t ALUctr
32 rs
+ LRA
5
3 r BusA
4 2 LRB
t
5
32 32
WR
MUX
32 BusB M
5
Registr U
instrucci rd
M X
ón Bus os de
32 U
PC
Memoria W 32 bits
32 X
de 32 @
Instruccio Memori
nes a de
Datos
CLK
CLK
3 3
Inm C
n
EXtensio
2 2
16 L
K
4o Paso: Control Principal
Addu Subu Lw Sw Ori Beq
RegDst 1 1 0 x 0 x
ALUsrc 0 0 1 1 1 0
W_src 0 0 1 x 0 x
RegW 1 1 1 0 1 0
WE 0 0 0 1 0 0
Branch 0 0 0 0 0 1
ALUctr suma resta suma suma or resta
4 o Paso: Control de la ALU
000 AND
001 OR
010 add
110 subtract
111 set-on-less-than
Op
3
2
A
3
2
ALU
Resultado
3 Cer
2 o
B
4 o Paso: Control de la ALU
ALUop
Control
Control
de
5..0
la ALU
3
2
A
Operación
31..26
3
2
ALU
Resultado
Instrucción 3 Cer
2 o
B
4 o Paso: Control de la ALU 72
La ALU necesita 3 bits de control
Dado el tipo de instrucción
00 = lw, sw
01 = beq,
10 = arithmetic
y el código de función para las tipo R
ALUOp Funct field Operation
ALUOp1 ALUOp0 F5 F4 F3 F2 F1 F0
0 0 X X X X X X 010
X 1 X X X X X X 110
1 X X X 0 0 0 0 010
1 X X X 0 0 1 0 110
1 X X X 0 1 0 0 000
1 X X X 0 1 0 1 001
1 X X X 1 0 1 0 111
Control 0
M
u
x
Add ALU 1
result
Add Shift
RegDst left 2
4 Branch
MemRead
Instruction [31– 26] MemtoReg
Control ALUOp
MemWrite
ALUSrc
RegWrite
Instruction [5– 0]
Operation2
F3 Outputs
Operation R-format Iw sw beq
F2 Operation1 RegDst
F (5– 0) ALUSrc
F1
MemtoReg
Operation0
RegWrite
F0
MemRead
MemWrite
Branch
ALUOp1
ALUOpO
Implementación de la UC
UC COMBINACIONAL
Implementación de la UC
La UC computa las señales de control basándose en el
opcode y en el campo funct de la instrucción.
La mayoría de la información de control proviene del opcode
● Diseño simplificado. Dos bloques.
Multiciclo
Diseño monociclo
83
Todas las instrucciones tardan tanto como la
más lenta
Ciclo de reloj es largo, pero CPI=1
No hay reuso de unidades funcionales
Diseño multiciclo
Reduce el tiempo de ciclo
Un ciclo de reloj=una etapa de ejecución
Reuso de Unidades Funcionales
Cada instrucción puede utilizar o no todas
las etapas, el CPI > 1.
Comparación