Académique Documents
Professionnel Documents
Culture Documents
Introduccin
Arquitectura de Computadoras I
Caractersticas de las arquitecturas RISC
El juego de instrucciones
Arquitectura de Computadoras I
Procesadores MIPS
Procesadores MIPS
En 1981, un equipo liderado por John L.
Hennessy en la Univ. de Stanford comenz a
trabajar en el primer procesador MIPS.
A principios de los '90 MIPS Technologies
comenz a otorgar licencias de sus diseos a
terceros, de ah procedan ms de la mitad de
los ingresos de MIPS. R10000 (Toshiba
TC86R10000-200,1996)
Los procesadores MIPS se utilizaron por
ejemplo en dispositivos para Windows CE;
routers Cisco; y videoconsolas como la
Nintendo 64 o las Sony PlayStation,
PlayStation 2, etc.
Debido a que su conjunto de instrucciones tan
claro, los cursos sobre arquitectura de
computadores en universidades a menudo se Emotion Engine (Sony, 2000)
MIPS-IV (R4000) de 128 Bits
basan en la arquitectura MIPS.
Arquitectura de Computadoras I
Procesador MIPS
Arquitectura de Computadoras I
Arquitectura de Computadoras I
Convencin para el banco de registros MIPS
Arquitectura de Computadoras I
31 26 21 16 11 6 0
op rs rt rd shamt funct
6 bits 5 bits 5 bits 5 bits 5 bits 6 bits
Arquitectura de Computadoras I
El repertorio de instrucciones: Tipo-I
31 26 21 16 0
op rs rt inmediato
6 bits 5 bits 5 bits 16 bits
ADD inmediato
addi rt, rs, inm # rt=rs+inm
LOAD y STORE word
lw rt, rs, inm # rt=mem[rs+inm]
sw rt, rs, inm # mem[rs+inm]=rt
SALTOS
beq rs, rt, inm # si rs=rt,
# entonces PC=PC+4+inm*4
# el lenguaje ensamblador admite etiquetas y calcula inm
Arquitectura de Computadoras I
Ejemplos: Cdigo C
if (i == j) f = (g + h); else f = g h;
Arquitectura de Computadoras I
El repertorio de instrucciones: Ejemplo
Ejemplos: Cdigo C
Si las variables i y k estn en los registros $s3 y $s5 y el registro base del
arreglo save esta en $s6, el compilador puede generar:
Arquitectura de Computadoras I
31 26 21 16 11 6 0
op rs rt rd shamt funct
6 bits 5 bits 5 bits 5 bits 5 bits 6 bits
Arquitectura de Computadoras I
Arquitectura de Computadoras I
Generalidades para el diseo de un procesador
Arquitectura de Computadoras I
Reg. fuente 1
PC Dato Salida 1
Nmero
Memoria de 5
Reg. fuente 2
De
Instrucciones Datos
Registro Dato Salida 2
5
Reg. destino
M e m R ea d
Arquitectura de Computadoras I
Diseo del procesador: sincronizacin
Flanco de bajada
(Falling edge)
Flanco de subida
(Rising edge)
Arquitectura de Computadoras I
M Seales de control.
u
Sumador x Captura de la siguiente instruc.
4 Resultado Incremento de PC.
Despl. Instrucciones de la ALU entre
<< 2 M e m W ri te registros.
Registros
A L U o p.
Reg. fuente 1 Memoria de Me m 2 R e g
PC Direccin 3
de lectura Dato Salida 1 Datos
Reg. fuente 2 A L U S rc Cero Dato Salida
M
Instruccin ALU u
Dato Salida 2 Resultado Direccin x
M
Memoria de Reg. destino u
Instrucciones x
Dato Entrada
R e g W rit e
Dato Entrada
16 Exten. 32
Signo M em R ea d
Arquitectura de Computadoras I
Conexiones en la ruta de datos (Datapath)
Operaciones de carga y almacenamiento, Tipo-I (Load / Store)
Sumador
M
u Captura de la siguiente instruc.
Sumador x
Incremento de PC.
4 Resultado
Instrucciones LOAD/STORE.
Despl.
<< 2 M e m W ri te
Registros
A L U o p.
Reg. fuente 1 Memoria de Me m 2 R e g
PC Direccin 3
de lectura Dato Salida 1 Datos
Reg. fuente 2 A L U S rc Cero Dato Salida
M
Instruccin ALU u
Dato Salida 2 Resultado Direccin x
M
Memoria de Reg. destino u
Instrucciones x
Dato Entrada
R e g W rit e
Dato Entrada
16 Exten. 32
Signo M em R ea d
Arquitectura de Computadoras I
M Seales de control.
u
Sumador x Captura de la siguiente
4 Resultado instruccin o del destino de
Despl. salto =>Incremento de PC.
<< 2 M e m W ri te Instrucciones de Salto.
Registros
A L U o p.
Reg. fuente 1 Memoria de Me m 2 R e g
PC Direccin 3
de lectura Dato Salida 1 Datos
Reg. fuente 2 A L U S rc Cero Dato Salida
M
Instruccin ALU u
Dato Salida 2 Resultado Direccin x
M
Memoria de Reg. destino u
Instrucciones x
Dato Entrada
R e g W rit e
Dato Entrada
16 Exten. 32
Signo M em R ea d
Arquitectura de Computadoras I
Instruccin RegDest FuenteALU MemaReg EscrReg LeerMem EscrMen SaltoCond ALUOp1 ALUOp0
Control:
Bloque combinacional que
con 6 bits de la instruccin
(bits 31:26) genera las 9
seales de control
Arquitectura de Computadoras I
Jump 2 address
31:26 25:0
Arquitectura de Computadoras I
Ruta de Datos agregando Jumps
Arquitectura de Computadoras I
Clk
Clk-to-Q
PC Old Value New Value
Tiempo de acceso a la Memoria de Instrucciones
Rs, Rt, Rd, Old Value New Value
Op, Func
Retardo debido a la lgica de control
ALUctr Old Value New Value
Rd Rs Rt
RegWr 5 5 ALUctr Escritura en
5
el registro
busA
Rw Ra Rb
busW 32 Reg. 32 ALU Resultado
32 de 32-bit 32
Clk busB
32
Arquitectura de Computadoras I
Desventajas del diseo uniciclo (CPI=1)
Arithmetic & Logical
PC Inst Memory Reg File mux ALU mux setup
Load
PC Inst Memory Reg File mux ALU Data Mem mux setup
Camino crtico
Store
PC Inst Memory Reg File mux ALU Data Mem
Branch
PC Inst Memory Reg File cmp mux
Arquitectura de Computadoras I
Ejecucin multiciclo
Arquitectura de Computadoras I
Arquitectura de Computadoras I
Ejecucin en cinco pasos (5 ciclos)
Todas: A = Reg[IR[25-21];
B = Reg[IR[20-16];
SalidaALU = PC + (extension_signo(IR[15-0]<<2);
Arquitectura de Computadoras I
Arquitectura de Computadoras I
Ejecucin en cinco pasos (5 ciclos)
Arquitectura de Computadoras I
Load : MDR =
Acc. a MEM y Fin de Reg [IR[15-11]] =
Memoria[SalidaALU] Store:
instrucc tipo R SalidaALU
Memoria[SalidaALU] = B
Fin lectura MEM Load : Reg [IR[20-16]] = MDR
Arquitectura de Computadoras I
Control Multiciclo
Arquitectura de Computadoras I
M e m o ry a d d res s
CALCULO nch FIN INSTR.
c o m p u t aEFECTIVA
DIRECCION ti o n
EJECUCION
x e c u ti o n FIN INSTR.
e tiBEQ
on JUMP le tio n
8 9
2 6
SelALUA = 1
SelALUA = 1 SelALUA = 1 EscrPC
SelALUB = 00
SelALUB = 10 SelALUB = 00 FuentePC = 10
ALUOp = 01
ALUOp = 00 ALUOp = 10 EscrPCCond
FuentePC =01
(Op = LW)
ACCESO
M emo A ACCESO Ar y
M em o
MEMORIA
a c ce s MEMORIA
acc ess ESCRIBE
R - t y p e c oEN REGISTRO
3 5 7
ESCRIBE
W r ite - EN REGISTRO
4
RegDest = 0
EscrReg
MenaReg = 1
Segmentacin: Perspectiva General
Arquitectura de Computadoras I
Planchado 20 MIN
Realizar 4 tareas
Orden de Tarea
Ejemplo de
Hennesy - Patterson
Arquitectura de Computadoras I
Segmentacin: Perspectiva General (un ejemplo)
Lavado 30 MIN
FUNCIONAMIENTO SEGMENTADO
Secado 40 MIN
Planchado 20 MIN
Realizar 4 tareas
Orden de Tarea
Arquitectura de Computadoras I
2 Tt = Tp + (N-1)Ts
Ts
3
= sT s+ (N-1)Ts
Tp = (N+s-1)Ts
N-1
N
Si N >>s Tt NTs
Arquitectura de Computadoras I
Segmentacin: Funcionamiento Ideal
Proceso segmentado vs Proceso secuencial
VENTAJAS
La segmentacin, aunque no mejora la latencia de un solo proceso,
mejora el rendimiento o productividad (throughput) de una tarea con
muchos procesos.
Varios procesos se ejecutan en paralelo.
RESTRICCIONES
Arquitectura de Computadoras I
Arquitectura de Computadoras I
Segmentacin: Segmentacin de instrucciones.
EJEMPLO: Segmentacin de instrucciones con 5 etapas (MIPS)
IMem Reg ALU DMem Reg
Etapa IF Etapa ID Etapa EX Etapa MEM Etapa WB
Obtener instruccin Decodificar instruccin Ejecutar instruccin Acceso a Memoria Escribir en un
Acceso a la memoria Lectura de operandos, o bien o bien registro el resultado
de instrucciones carga de registros de la operacin.
Calcular direccin Escribir en PC la
efectiva memoria. direccin de salto.
Arquitectura de Computadoras I
Arquitectura de Computadoras I
Segmentacin: Load vs Operacin entre registros
1 2 3 4 5
Load Ifetch Reg/Dec Exec Mem Wr
Arquitectura de Computadoras I
Ciclo nico
Load Store Sin uso
Ciclo 1 Ciclo 2 Ciclo 3 Ciclo 4 Ciclo 5 Ciclo 6 Ciclo 7 Ciclo 8 Ciclo 9Ciclo 10
Clk
Multiciclo
Load Store R-type
Ifetch Reg Exec Mem Wr Ifetch Reg Exec Mem Ifetch
Arquitectura de Computadoras I
Ruta de Datos de MIPS segmentado
La informacin
de derecha a
izquierda va a
producir riesgos
MEM
WB
Arquitectura de Computadoras I
Arquitectura de Computadoras I
Etapa IF
Arquitectura de Computadoras I
Etapa ID
Arquitectura de Computadoras I
Etapa EX para Load
Arquitectura de Computadoras I
Arquitectura de Computadoras I
Etapa WB para Load
Nmero de
registro
errado
Arquitectura de Computadoras I
La informacin del
registro de escritura
avanza con la
instruccin
Arquitectura de Computadoras I
Segmentacin: Aadir el control
Tambin se deben
retrasar las
seales de control
para que la info de
control avance con
la instruccin
Arquitectura de Computadoras I
Instruction
Control M WB
EX M WB
Arquitectura de Computadoras I
Las 8 grandes ideas en Arquitectura de
Computadoras
Arquitectura de Computadoras I
Riesgos estructurales:
Se intenta usar el mismo recurso de dos maneras diferentes al mismo tiempo.
El hardware impide una cierta combinacin de operaciones.
Riesgos de control:
Se intenta tomar una decisin antes de evaluarse la condicin.
Si se salta, las instrucciones posteriores no deben ejecutarse (o al menos,
no deben finalizar).
Arquitectura de Computadoras I
Segmentacin: Conflictos en funcionamiento real
Arquitectura de Computadoras I
ALU Mem
Orden de instruccin
ALU
Instr 1 Mem Reg Mem Reg
ALU
Instr 2 Mem Reg Mem Reg
ALU
Instr 3 Mem Reg Mem Reg
Arquitectura de Computadoras I
Segmentacin: Riesgos estructurales
Soluciones:
Introducir esperas.
Duplicar recursos o separar memoria de datos de la memoria de instrucciones
(Harvard en lugar de Von Neuman).
Orden de instruccin Tiempo ( ciclos de reloj)
Arquitectura de Computadoras I
Arquitectura de Computadoras I
Segmentacin: Riesgos por dependencia de datos
Aparecen problemas al poder empezar la siguiente instruccin antes de
que la primera haya terminado.
TIEMPO (CICLOS)
Ejemplo (RAW): Ciclo1 Ciclo2 Ciclo3 Ciclo4 Ciclo5 Ciclo6 Ciclo7 Ciclo8 Ciclo9
Valor de r1 10 10 10 10 10 20 20 20 20 20
PROGRAMA
Dependencias
add r1, r2, r3 IM Reg DM Reg
problemticas son
aquellas que necesitan
datos que hay que sub r5, r1, r6 IM Reg DM Reg
buscar hacia atrs en
el esquema de tiempos.
and r16, r5, r1 IM Reg DM Reg
Arquitectura de Computadoras I
PROGRAMA
Arquitectura de Computadoras I
Segmentacin: Riesgos por dependencia de datos
Necesidades hardware para adelantar resultados:
Multiplexores adicionales donde se vaya a recibir el dato (p. ej. en las entradas
de datos de la ALU).
Buses extra entre registros internos y multiplexores.
Comparadores entre los operandos de una instruccin y los operandos destino
de instrucciones previas.
ID/EX EX/MEM MEM/WB
M
u
x
ALU Data
memory M
u
M x
u
x
M EX/MEM.RegisterRd
u
x
Arquitectura de Computadoras I
Arquitectura de Computadoras I
Segmentacin: Riesgos por dependencia de datos
Soluciones:
Insertar un ciclo de espera (stall) en el ciclo 3, para la instruccin SUB y siguientes
Insertar una operacin NOP detrs del LOAD (es lo ms utilizado, lo puede automatizar el
compilador sin necesidad de ms hardware)
Tiempo (ciclos de reloj)
Orden de instrucciones
Arquitectura de Computadoras I
Arquitectura de Computadoras I
Segmentacin: Control para adelantamiento de datos
Arquitectura de Computadoras I
Arquitectura de Computadoras I
Segmentacin: Control para adelantamiento de datos
(Riesgos en EX)
if (EX/MEM.EscrReg and
EX/MEM.RegistroRd 0 and
EX/MEM.Registro.Rd = ID/EX.Registro.Rs)
then AnticiparA = 10
else AnticiparA = 00
if (EX/MEM.EscrReg and
EX/MEM.RegistroRd 0 and
EX/MEM.Registro.Rd = ID/EX.Registro.Rt)
Then AnticiparB = 10
else AnticiparB = 00
Arquitectura de Computadoras I
(Riesgos en MEM)
if (MEM/WB.EscrReg and
MEM/WB.RegistroRd 0 and
EX/MEM.Registro.Rd ID/EX.RegistroRs
and
MEM/WB.Registro.Rd =
ID/EX.RegistroRs)
then AnticiparA = 01
else AnticiparA = 00
if (MEM/WB.EscrReg and
MEM/WB.RegistroRd 0 and
EX/MEM.Registro.Rd ID/EX.RegistroRt
and
MEM/WB.Registro.Rd = ID/EX.Registro.Rt)
then AnticiparB = 01
else AnticiparB = 00
Arquitectura de Computadoras I
Segmentacin: Deteccin de riesgos insalvables
Unidad de deteccin de riesgos (hazard detection unit)
Para cuando el adelantamiento no resuelve los riesgos (caso de load y
uso del registro destino en la siguiente instruccin)
Bloquear el pipeline:
PCWrite = 0
IF/IDWrite = 0
MuxNOP = 1
Arquitectura de Computadoras I
Riesgos de control (instrucciones de salto)
Arquitectura de Computadoras I
Ejemplo: Salto Efectivo
Para descartar una instruccin cambia a 0 el campo de instruccin (opcode) del registro de
segmentacin IF/ID NOP
Arquitectura de Computadoras I
Arquitectura de Computadoras I
Riesgos de Control (Instrucciones de salto)
Arquitectura de Computadoras I
add r1, r2, r3 ........... add r1, r2, r3 add r1, r2, r3
bnz r2, L1 bnz r2, L1 bnz r2, L1 bnz r2, L1
nop add r1, r2, r3 and r2, r3, r2 sub r6,r7,r6
sub r6,r7,r6 sub r6,r7,r6 sub r6,r7,r6 .................
mul r2, r3, r8 mul r2, r3, r8 mul r2, r3, r8 mul r2, r3, r8
................. ................. ................. .................
L1: and r2, r3, r2 L1: and r2, r3, r2 L1: andi r5,r6,inm L1: and r2, r3, r2
andi r5,r6,inm andi r5,r6,inm ............ andi r5,r6,inm
Arquitectura de Computadoras I
Riesgos de Control. Predecir el salto
Direccin
Instruccin Fetch Decod.
SEGMENTACIN DE INSTRUCCIONES
Arquitectura de Computadoras I
Segmentacin: Tratamiento de excepciones y mejoras
Arquitectura de Computadoras I
Arquitectura de Computadoras I