Documentos de Académico
Documentos de Profesional
Documentos de Cultura
• Tipo
p R: 31 26 21 16 11 6 0
Aritmético-lógicas op rs rt rd desp funct
• Tipo I: 6 bits 5 bits 5 bits 5 bits 5 bits 6 bits
Referencia a memoria 31 26 21 16 0
Aritméticas (inmediato) op rs rt inmediato
Salto condicional 6 bits 5 bits 5 bits 16 bits
• Tipo J: 31 26 0
Salto incondicional op dirección
6 bits 26 bits
1
ESTRUCTURA DE COMPUTADORES. GRADO EN INGENIERIA DEL SOFTWARE
Arquitectura MIPS: Semántica de las instrucciones seleccionadas
• Instrucciones de referencia a memoria (formato tipo I):
lw rt, inmed(rs) rt Memoria( rs + SignExt( inmed ) ) , PC PC + 4
sw rt, inmed(rs) Memoria( rs + SignExt( inmed ) ) rt , PC PC + 4
2
ESTRUCTURA DE COMPUTADORES. GRADO EN INGENIERIA DEL SOFTWARE
Diseño de la ruta de datos monociclo (1) PCWrite
PC
2 Sumadores:
S d
32
o El primero para sumar 4 al PC
32
o El segundo para sumar al PC el valor inmediato de salto. +
32
ALU
o And 010 A+B
32 32
110 A–B
o Or
1 si (A<B),
111
o Comparación de igualdad mediante resta sino 0
Extensión
de signo
16 32
Extensor de signo:
<< 2
3
1 D RA Registro 1
MUX
busA ....
5 a 32
C busA
M
RW
Banco dee
registros
s
Registro 1 RB Registro 32
D Registro 31
31
32 RW busB RB
C busW
Registro 30 RegWr
MUX
D busB
C
Registro 31
BusW D
M
Mecanismo
i de
d escritura
it M
Mecanismo
i de
d lectura
l t
4
ESTRUCTURA DE COMPUTADORES. GRADO EN INGENIERIA DEL SOFTWARE
Diseño de la ruta de datos monociclo (3)
• Componentes de la ruta de datos (3): Memoria
Se supondrá dividida en dos para poder hacer dos accesos a memoria en el mismo ciclo:
o Memoria de instrucciones
o Memoria de datos
Será direccionable por bytes, pero capaz de aceptar/ofrecer 4 bytes por acceso
o 1 entrada de dirección
o 1 salida de datos de 32 bits
o 1 entrada de datos de 32 bits (sólo en la de datos)
Se supondrá
p qque se comporta
p temporalmente
p como el banco de registros
g ((síncronamente))
y que tiene un tiempo de acceso menor que el tiempo de ciclo
Existirá una entrada de control, MemWrite para seleccionar la operación de
lectura/escritura sobre la memoria de datos
MemWrite
ciones
ADDR
os
Memoriia
Memoriaa
de dato
de instrucc
ADDR DR DR
DW
5
ESTRUCTURA DE COMPUTADORES. GRADO EN INGENIERIA DEL SOFTWARE
Diseño de la ruta de datos monociclo (4)
• Interconexión de la ruta de datos (1)
La búsqueda de instrucciones implica leer la instrucción ubicada en la dirección de la
memoria de instrucciones indicada por el contador de programa (PC).
La ejecución secuencial de programas implica actualizar el contador de programa para
que apunte a la siguiente instrucción (sumando 4 por ser una memoria direccionable por
bytes y una arquitectura con tamaño de palabra de 32 bits):
PC PC + 4
Luego la estructura necesaria para la búsqueda secuencial de instrucciones será:
+
4
PC
nes
ADDR
Memoria dee
instruccion
DR instrucción
6
ESTRUCTURA DE COMPUTADORES. GRADO EN INGENIERIA DEL SOFTWARE
Diseño de la ruta de datos monociclo (5)
• Interconexión de la ruta de datos (2)
Las instrucciones aritmético lógicas (tipo-R) implican operar sobre el banco de
registros BR y la ALU de la siguiente manera:
BR(rd) BR(rs) funct BR(rt)
Por tanto será necesario:
o Leer dos registros cuyos identificadores se ubican en los campos rs y rt de la
instrucción
o Operar sobre ellos según el contenido del campo de código de operación
aritmética (funct)
o Almacenar el resultado en otro registro cuyo identificador se localiza en el
campo rd de la instrucción
RegWrite
ALUCtr
3
rs RA
ucción
busA
o de
registrros
rt RB
ALU
U
instru
Banco
rd RW
busB
busW
7
ESTRUCTURA DE COMPUTADORES. GRADO EN INGENIERIA DEL SOFTWARE
Diseño de la ruta de datos monociclo (6)
• Interconexión de la ruta de datos (3)
La instrucción de carga (lw) requiere la siguiente operación de transferencia:
BR(rt) Memoria( BR(rs) + SignExt( inmed ) )
Lo que implica las siguientes operaciones elementales:
o Calcular la dirección efectiva de memoria:
- Leyendo el registro base cuyo identificador se ubica en el campo rs
- Un desplazamiento
p de 32 bits de la extensión del operando
p inmediato ((inmed))
- Sumando base y desplazamiento.
o Leer el dato de la memoria de datos cuya dirección es la anteriormente calculada
o Almacenar el dato leído en el registro cuyo especificado en el campo rt
RegDst RegWrite
ALUCtr
MemWrite
ALUSrc
rs RA MemtoReg
busA
Banco de
registros
rt RB
ALU
0
de
busB 0
MUX
RW ADDR DR 1
Memoria
MUX
MUX
atos
rd 1 busW
1
da
0
M
DW
Extensión
16 32
de signo
inmed
MemRead
8
ESTRUCTURA DE COMPUTADORES. GRADO EN INGENIERIA DEL SOFTWARE
Diseño de la ruta de datos monociclo (7)
• Interconexión de la ruta de datos (4)
La instrucción de almacenamiento (sw) requiere la siguiente operación:
Memoria( BR(rs) + SignExt( inmed ) ) BR(rt)
Lo que implica las siguientes operaciones elementales:
o Leer el dato almacenado en el registro cuyo identificador se especifica en rt
o Calcular la dirección efectiva de memoria:
- Leyendo el registro base cuyo identificador se ubica en el campo rs
- Un
U desplazamiento
d l i t de
d 32 bits
bit a partir
ti de
d la
l extensión
t ió deld l campo inmed
i d
- Sumando base y desplazamiento.
o Almacenar el dato leído de la memoria de datos en la dirección calculada
RegDst RegWrite
ALUCtr
MemWrite
ALUSrc
rs RA MemtoReg
busA
Banco de
registros
rt RB
ALU
0
de
busB 0
ADDR DR 1
MUX
RW
Memoria
MUX
MUX
datos
rd 1 busW
1
da
0
M
DW
Extensión
16 32
de signo
inmed
MemRead
9
ESTRUCTURA DE COMPUTADORES. GRADO EN INGENIERIA DEL SOFTWARE
Diseño de la ruta de datos monociclo (8)
• Interconexión de la ruta de datos (5)
La instrucción de salto condicional (beq) requiere la siguiente operación:
Si ( BR(rs) = BR(rt) ) entonces ( PC PC + 4·SignExt( inmed ) )
Lo que implica las siguientes operaciones elementales:
o Leer dos registros cuyos identificadores se ubican en los campos rs y rt
o Comparar la igualdad de sus contenidos y en función del resultado:
- Sumar al PC un desplazamiento de 32 bits obtenido a partir de la extensión
del campo de operando inmediato (inmed) o
- No hacer nada
0
MUX
M
+
+
1
<<2
4
PCSrc
RegDst RegWrite
ALUCt
ALUCtr
rs ALUSrc Zero
insttrucciones
RA
PC
ADDR
moria de
anco de
busA
egistros
rt
ALU
RB
DR 0
busB 0
UX
Mem
RW
Ba
MU
MUX
X
re
rd
1 busW
1
xtensión
16 32
e signo
inmed Ex
de
10
ESTRUCTURA DE COMPUTADORES. GRADO EN INGENIERIA DEL SOFTWARE
Diseño de la ruta de datos monociclo (9)
• Ruta de datos monociclo
La ejecución monociclo ha obligado a:
o No usar más de una vez por instrucción cada recurso. Duplicarlo si es necesario
o Memoria de instrucciones y datos separadas
o Añadir
Añ di multiplexores
li l cuando
d un valor
l puedad proveniri de
d varias
i fuentes
f
UX
MU
+
1
+
<<2
4
PCSrc
RegDst RegWrite
ALUCtr
MemWrite
Instrucción [25-21] ALUSrc Zero
RA MemtoReg
PC
nes
ADDR
Instrucción [20-16] busA
bus
Memoria dee
instruccion
Banco dee
registros
RB
ALU
DR
de
0
busB 0
MUX
RW ADDR DR 1
Memoria
MUX
MUX
Instrucción [15-11]
datos
1 busW
1
0
M
d
DW
Extensión
16 de signo 32
Instrucción [15-0]
MemRead
11
ESTRUCTURA DE COMPUTADORES. GRADO EN INGENIERIA DEL SOFTWARE
Diseño del controlador de la ruta de datos monociclo (1)
• La tarea del controlador es:
Seleccionar las operaciones a realizar por los módulos multifunción (ALU, etc.)
Controlar el flujo de datos, activando la entrada de selección de los multiplexores y la
señal
se a de carga
ca ga de los
os registros
eg st os
• Para ello hay que determinar los valores de los puntos de control para cada instrucción:
Instrucción de carga (lw)
lw)
rt Memoria( rs + SignExt( inmed ) ),
) PC PC + 4
RegDest 0, RegWrite 1, ALUsrc 1, ALUctr 010, PCSrc 0, MemWrite 0, MemRead 1, MemtoReg 1
Instrucción and
rd rs and rt, PC PC + 4
RegDest 1, RegWrite 1, ALUsrc 0, ALUctr 000, PCSrc 0, MemWrite 0, MemRead 0, MemtoReg 0
12
ESTRUCTURA DE COMPUTADORES. GRADO EN INGENIERIA DEL SOFTWARE
Diseño del controlador de la ruta de datos monociclo (2)
• Todas las operaciones aritméticas comparten el mismo código de operación y durante su
ejecución todas las señales generales de la ruta de datos son iguales, por ello utilizaremos:
Un control principal para decodificar el campo de código de operación (op) y configurar
gglobalmente la ruta de datos
Un control local a la ALU que decodifique el campo de operación aritmética (funct) y
seleccione la operación que debe realizar
• Adicionalmente,
Adicionalmente en operaciones no aritméticas (lw,
(lw sw y beq) el control principal puede ordenar
alguna operación a la ALU para calcular las DE o realizar comparaciones.
• Utilizaremos la señal intermedia ALUop cuyo valor será:
00 en operaciones con acceso a memoria
01 en operaciones de salto
10 en operaciones aritméticas
• Del mismo modo para controlar qué dirección debe cargar el PC se utilizará una señal
intermedia Branch (activada durante la instrucción beq) a la que se hará la y-lógica con la señal
Zero que genera la ALU.
funct
ALU
Conttrol de
6
U (local)
ALUctr
3 ALUop
principal
Control
2 op
Branch 6
PCSrc
Zero
13
ESTRUCTURA DE COMPUTADORES. GRADO EN INGENIERIA DEL SOFTWARE
Diseño del controlador de la ruta de datos monociclo (3)
ALUop ALU 0
ALUop
• Control de la ALU
ALUop1
ALUctr2
f3
f2 ALUctr
ALUctr1
funct
f1
ALUctr0
f0
op5
op4
op3
• Control principal op2
op1
op0
tipo-R Iw sw beq
RegDst
ALUSrc
MemtoReg
RegWrite
MemRead
MemWrite
Branch
ALUop1
ALU 0
ALUop
14
ESTRUCTURA DE COMPUTADORES. GRADO EN INGENIERIA DEL SOFTWARE
Diseño del procesador
• Ruta de datos monociclo + controlador
UX
MU
+
1
<<2
RegDst
4 Branch
M R d
MemRead
principall
Control
Instrucción [31-26] MemtoReg
ALUOp
MemWrite
ALUSrc
RegWrite
Zero
Instrucción [25-21]
RA
PC
strucciones
ADDR
busA
emoria de
Instrucción [20-16]
de
egistros
RB
ALU
Banco
Memorria de
DR 0
busB 0
MUX
RW ADDR DR 1
UX
re
MUX
X
B
ins
MU
Me
Instrucción [15-11]
datos
1 busW
1 0
DW
Exttensión
signo
Instrucción [15-0] 16 32
Conttrol
de ALU
Instrucción [5-0] de s
15
ESTRUCTURA DE COMPUTADORES. GRADO EN INGENIERIA DEL SOFTWARE
Diseño de la ruta de datos multiciclo (1)
• Inconvenientes de la ruta de datos monociclo
El reloj debe tener igual periodo que la instrucción más lenta
o Con un periodo fijo las instrucciones rápidas desaprovechan tiempo.
o En repertorios reales existen coexisten instrucciones cortas con otras muy largas:
aritmética en punto flotante, modos de direccionamiento complejos, etc.
No se ppuede reutilizar hardware
o Si en una instrucción se necesitara hacer 4 sumas (resolver los 3 modos de
direccionamiento de los operandos y sumarlos) se necesitarían 4 sumadores.
16
ESTRUCTURA DE COMPUTADORES. GRADO EN INGENIERIA DEL SOFTWARE
Diseño de la ruta de datos multiciclo (2)
Clk
Tiempo de acceso a la Memoria de Instrucciones
Tiempo de acceso al Banco de Registros
Retardo de la ALU
aje)
de
ción monocic
Ejecución
n
Cálculo d
(almacena
Búsqueda de
Busqueda de Busqueda de
DE
componentes
instrucciones operando
de DE
Temporizac
o Memoria
Controlador
BR( x)
PC
moria
o Mem
ALUout
Controlador
x)
Lóg
Lóg. Lóg
Lóg. Lóg
Lóg. Lóg
Lóg.
AoB
BR( x
Lóg.
Lóg
R
MDR
PC
IR
Nuevo Clk
17
ESTRUCTURA DE COMPUTADORES. GRADO EN INGENIERIA DEL SOFTWARE
Diseño de la ruta de datos multiciclo (3)
• Introducción de registros
g para
p almacenar datos intermedios entre ciclos
Control
RegWrite de ALU
0
PC
C
MUX
Instrucción [25-21] Zero
RA
MUX
ADDR
A
busA 1
de
Instrucción [20-16]
egistros
Memoria
RB
ALUout
ALU
Banco
1
DR IR 0
UX
RW
A
MU
M
re
B
b B
busB 0
B
DW Instrucción [15-11]
MUX
1 busW 4 1
2
0 3
MUX
MemRead
DR
MD
1
BWrite
ALUSrcB
Extensión
de signo
Instruc. [15-0]
<<2
MDRWrite
MemtoReg
18
ESTRUCTURA DE COMPUTADORES. GRADO EN INGENIERIA DEL SOFTWARE
Diseño de la ruta de datos multiciclo (4)
• Ruta de datos multiciclo con buses
Decod.
busA
busW
A
MDR Instrucción [25-21] busA PC
Banco de
registros
RA
Instrucción [20-16]
RB
busB Zero
B
0
MUX
X
RW
ADDR
Instrucción [15-11]
ALUout
Memoria
ALU
IR
DR
ensión
signo
Instruc. [15-0] 4
<<2
DW
Exte
de s
Decod.
busB Control
de ALU
19
ESTRUCTURA DE COMPUTADORES. GRADO EN INGENIERIA DEL SOFTWARE
Diseño de la ruta de datos multiciclo (5)
Instrucción de carga (lw
(lw)) Instrucción de almacenaje (sw
(sw))
20
ESTRUCTURA DE COMPUTADORES. GRADO EN INGENIERIA DEL SOFTWARE
Diseño del controlador multiciclo
• Diagrama de estados del controlador multiciclo
nstrucción 0
IR Memoria( PC )
Búsqqueda
PC PC + 4
de in
1
A BR( rs )
Decod.
B BR( rt )
D
op = ‘lw’
5 9
Ejeccución
7 2 Zero = 0
ALU t A ffunctt B
ALUout ALU t A + Si
ALUout SignExt(
E t( inmed
i d) ALU t A + Si
ALUout SignExt(
E t( inmed
i d) A -B
Zero = 1
3 6
memooria
Accesso a
MDR Memoria(
M i ( ALUout
ALU t ) M
Memoria( ALUoutt ) B
i ( ALU
8
Write-bback
4 10
BR( rd ) ALUout BR( rt ) MDR PC PC + 4·SignExt( inmed )
21
ESTRUCTURA DE COMPUTADORES. GRADO EN INGENIERIA DEL SOFTWARE
Optimización de la ruta de datos multiciclo
• Ahorro de registros temporales y tiempo de ejecución
PCsrc
PCWrite
RegWrite Zero
Target
0
PC
MUX
0
Instrucción [25-21]
MUX
RA
ADDR busA A*
co de
1
registros
Instrucción [20-16]
Memoria
RB
ALU
1 IR
R
0
DR
Banc
RW
MUX
busB 0
ALUout*
DW Instrucción [15-11]
MUX
1 busW 4 1
2
0 3
UX
MU
MemRead
1 Control
MDR* ALUSrcB de ALU
Extensión
de signo
Instruc. [15-0]
<<2
MemtoReg
ALUop
22
ESTRUCTURA DE COMPUTADORES. GRADO EN INGENIERIA DEL SOFTWARE
Controlador multiciclo para la ruta de datos optimizada
• Diagrama de estados del controlador multiciclo
Se ahorran los estados antiguos 5 y 10 y registros
ucción 0
ueda
IR Memoria( PC )
de instru
Búsqu
PC PC + 4
A* BR( rs ), B* BR( rt )
od.
op = ‘lw’ o ‘sw’
ón
6 8
Ejecució
2
ALUout* A* funct B* ALUout* A* + SignExt( inmed ) A* - B*
PC Target, si Zero=1
op = ‘lw’
5
memoriaa
Acceso a
3
MDR* Memoria( ALUout* ) Memoria( ALUout* ) B*
7
Write-back
k
4
BR( rd ) ALUout* BR( rt ) MDR*
23
ESTRUCTURA DE COMPUTADORES. GRADO EN INGENIERIA DEL SOFTWARE
Diseño del controlador multiciclo (1)
• El controlador se diseña como una máquina de estados finitos (FSM):
1. Se traducen las transferencias entre registros como conjuntos de activaciones de los
puntos de control de la ruta de datos
2. Se codifican los estados
3. Mediante tablas de verdad se describen las transiciones de estado en función del
código de operación y del estado actual de la ruta de datos
4. Mediante tablas de verdad se describe el valor de las señales de control en función
del estado (máquina Moore) y adicionalmente en función del estado de la ruta de datos
(máquina Mealy).
Mealy)
5. La estructura del controlador estará formada por registro de estado y el conjunto
de lógica combinacional de control que implementa las anteriores tablas
Zero 11
Lógica combinacional
de control
op
6
IR
Registro
estado
4
emtoReg
emRead
ALUSrcA
ALUSrcB
RegDest
RegWrite
DRWrite
OutWrite
ALUOp
PCWrite
emWrite
AWrite
IRWrite
BWrite
IorD
MD
R
O
Me
Me
A
A
R
Me
24
ESTRUCTURA DE COMPUTADORES. GRADO EN INGENIERIA DEL SOFTWARE
Diseño del controlador multiciclo (2)
• Tabla de verdad del controlador
25
ESTRUCTURA DE COMPUTADORES. GRADO EN INGENIERIA DEL SOFTWARE
Segmentación (1)
• La segmentación es una técnica que permite optimizar (minimizar) el tiempo de ejecución de
los programas.
• Consiste en aplicar el principio de fabricación en cadena al proceso de ejecución de las
instrucciones solapando en el tiempo la ejecución de fases diferentes de diferentes instrucciones:
instrucciones,
Ejecución secuencial del programa
2 4 6 8 10 12 14 16 18
Tiempo
Lw $1, 100($0) IF ID EX MEM WB
Lw $2, 200($0) IF ID EX MEM WB
Lw $3, 300($0) IF ID
30ns
Ejecución segmentada del programa
2 4 6 8 10 12 14 16 18
Tiempo
Lw $1, 100($0) IF ID EX MEM WB
Lw $2, 200($0) IF ID EX MEM WB
Lw $3, 300($0) IF ID EX MEM WB
14
14ns
26
ESTRUCTURA DE COMPUTADORES. GRADO EN INGENIERIA DEL SOFTWARE
Segmentación
• Modificación de la ruta de datos para segmentar la ejecución de instrucciones
Se replican los sumadores para actualizar el PC y calcular la dirección de memoria
Se replica la memoria para datos e instrucciones
IF Bú
IF: Búsqueda
d dde iinstrucción
ió ID: D
ID Decodificación
difi ió d de iinstrucción
ió EX: Ej
EX Ejecutar / Cálculo
Cál l MEM: WB
WB:
/ Lectura del banco de registros dirección efectiva. Acceso a memoria Escritura de
registros
0
MUX
+
+
<<2
4
nes
RA bus
PC
ADDR
de
instruccion
A
Banco dee
registros
s
Z
Zero
Memoria d
RB
ALU
Memoria de
DR busB
R 0 1
ADDR DR
MUX
MUX
W
datos
busW
1 0
D
W
Extensión
3
de signo
16
2
27
ESTRUCTURA DE COMPUTADORES. GRADO EN INGENIERIA DEL SOFTWARE
Ruta de datos segmentada (1)
• Se necesitan registros entre etapas para pasar la información de datos y control a la siguiente
etapa y la actual quede libre para recibir una nueva instrucción
IF: Búsqueda de instrucción ID: Decodificación de instrucción / EX: Ejecutar / Cálculo MEM: WB:
Lectura del banco de registros dirección efectiva. Acceso a memoria Escritura de
registros
0
MUX
+
+
<<2
4
RA bus
PC
es
ADDR
instruccione
P
A
Memoria dee
Banco de
registros Zero
RB
ALU
de
DR busB
R 0 1
ADDR DR
Memoria
MUX
MUX
W
datos
busW
1 0
D
M
d
W
de signo
3
Extensión
16
2
28
ESTRUCTURA DE COMPUTADORES. GRADO EN INGENIERIA DEL SOFTWARE
Ruta de datos segmentada (2)
• Modificación de algunas señales
IF: Búsqueda de instrucción ID: Decodificación de instrucción / EX: Ejecutar / Cálculo MEM: WB:
Lectura del banco de registros dirección efectiva. Acceso a memoria Escritura de
registros
0
MUX
+
+
<<2
4
RA bus
PC
cciones
ADDR
A
Memorria de
co de
Zero
registros
RB
LU
e
Memoria de
AL
DR busB
instruc
Banc
R 0 1
ADDR DR
MUX
MUX
W
datos
busW
1 0
D
W
no
ón
16 32
de sign
Extensió
29
ESTRUCTURA DE COMPUTADORES. GRADO EN INGENIERIA DEL SOFTWARE
Ruta de datos segmentada
• Nombramiento de los puntos de control
IF: Búsqueda de instrucción ID: Decodificación de instrucción / EX: Ejecutar / Cálculo MEM: WB:
PCSrc Lectura del banco de registros dirección efectiva. Acceso a memoria Escritura de
registros
0
MUX
1 IF/ID ID/EX EX/MEM MEM/WB
+
+
Branch
<<2
4
RegWrite
g
MemWrite
RA bus
instrrucciones
PC
ADDR
moria de
nco de
ALUSrc MemtoReg
gistros
RB Zero
ALU
a de
DR busB
0
Mem
Ban
ADDR DR 1
Memoria
datos
s
RW reg
MUX
X
MUX
busW
1 0
DW
6
nsión
ALU
ntrol
16
de siigno
32
de A
Con
Exten
MemRead
0
MUX
1 ALUOp
RegDst
30
ESTRUCTURA DE COMPUTADORES. GRADO EN INGENIERIA DEL SOFTWARE