Arquitectura de Computadores Universidad de Mlaga
Procesadores segmentados 1 Dpt. Arquitectura de Computadores
Arquitectura del Conjunto de Instrucciones (ISA)
3ClasiÞcacin de las arquitecturas ISA
3Modos de direccionamiento
3Operaciones en el conjunto de instrucciones
3Tipo y tamao de los operandos
3CodiÞcacin del conjunto de instrucciones
3El papel de los compiladores
3La arquitectura DLX
Arquitectura de Computadores Universidad de Mlaga
Procesadores segmentados 2 Dpt. Arquitectura de Computadores
ClasiÞcacin de las arquitecturas ISA
3El nivel ISA es la parte de la mquina visible al programador en lenguaje
ensamblador o al compilador.
3Discutiremos la gran variedad de alternativas de diseo de este nivel
3Cuatro tipos de almacenamiento interno en la CPU:
3Arquitecturas antiguas basadas en pila o en acumulador
3Actualmente: Registro-Memoria (CISC) o Load-Store (RISC)
GCon registros de propsito general (RPG) no se impone orden al calcular (con la pila s)
GRPG se usan para almacenar variables y reducen el trfico con memoria
Pila Acumulador Registro-Memoria (RPG) Load-Store (RPG)
Push A Load A Load R1,A Load R1,A
Push B Add B Add R1,B Load R2,B
Add Store C Store C,R1 Add R3,R1,R2
Pop C Store C,R3
Tabla 1: Secuencia compilada par la instruccin C=A+B
Arquitectura de Computadores Universidad de Mlaga
Procesadores segmentados 3 Dpt. Arquitectura de Computadores
ClasiÞcacin de las Arquitecturas ISA
3Cuantos ms registros RPG mejor. Se usan para evaluar expresiones,
pasar parmetros a funciones y el resto para almacenar variables
3ClasiÞcacin de arquitecturas RPG segn el nmero de operandos (2 3)
y el nmero de stos que pueden residir en memoria (de 0 a 3):
3Conclusin: Usar RPG en el modo (0,3)
n¼ de direcciones de
memoria
mx. n¼ de
operandos
Ejemplos
0 3 SPARC, MIPS, HP-PA, PowerPC, Alpha
1 2 Intel 80x86, Motorola 68000
22 VAX
33 VAX
Tabla 2: Posibles combinaciones de n¼ de operandos y operandos en memoria
Tipo Ventajas Desventajas
Reg-Reg (0,3) Simple, formato de inst. Þjo N¼ de inst. crece.
Reg-Mem (1,2) Acceso a datos sin carga previa Uno de los operandos se machaca con el result.
Mem-Mem (3,3) Programas compactos. No consume registros Formatos variables. Ms trÞco con memoria.
Tabla 3: Ventajas y desventajas de 3 arquitecturas comunes: (n¼ de direcciones de mem., n¼ de operandos)
Arquitectura de Computadores Universidad de Mlaga
Procesadores segmentados 4 Dpt. Arquitectura de Computadores
Modos de direccionamiento
3ÀCmo se interpreta una direccin de memoria?
GLittle Endian: El byte con direccin Òxxxx...xx00Ó es el menos significativo (Intel)
GBig Endian: El byte con direccin Òxxxx...xx00Ó es el ms significativo (Motorola, SPARC, DLX)
GLos datos deben estar alineados: Si es de 4 bytes la direccin debe acabar en 00
3ÀCmo especiÞcar la direccin efectiva del operando?
Tipo Ejemplo SigniÞcado Cuando usarlo
Registro Add R4,R3 R4<-R4+R3 Con valores en registro
Inmediato Add R4,#3 R4<-R4+3 Constantes
Directo o absolutoAdd R4,(100) R4<-R4+Mem(100) Acceso a datos estticos
Indirecto (deferred)Add R4,(R1) R4<-R4+Mem(R1) Acceso mediante punteros
Relativo (desplaza.)Add R4,100(R1) R4<-R4+Mem(R1+100) Acceso a variables locales
Indexado Add R4,(R1+R2) R4<-R4+Mem(R1+R2) Acceso a arrays
Indirecto MemoriaAdd R4,@(R1) R4<-R4+Mem(Mem(R1)) R1 es un puntero a un puntero
Escalado Add R4,6(R1)[R2] R4<-R4+Mem(6+R1+R2xd); Recorrido de arrays
Tabla 4: Algunos modos de direccionamiento comunes (El valor de ÒdÓ depende del tipo de dato)
Arquitectura de Computadores Universidad de Mlaga
Procesadores segmentados 5 Dpt. Arquitectura de Computadores
Modos de direccionamiento
3El direccionamiento directo a registro se usa en el 50% de las instrucc.
3El porcentaje de uso de los restantes modos de direccionamiento es:
3El modo inmediato y desplazamiento dominan en porcentaje de uso
Arquitectura de Computadores Universidad de Mlaga
Procesadores segmentados 6 Dpt. Arquitectura de Computadores
Modos de direccionamiento
3ÀCul debe ser el rango del desplazamiento en el modo de dir. con desp.?
3El eje x es el log
2 del desplazamiento (o sea, el n¼ de bits del campo desp.)
G12 bits capturan el 75% de los desplazamientos. 16 bits capturan el 99%.
Arquitectura de Computadores Universidad de Mlaga
Procesadores segmentados 7 Dpt. Arquitectura de Computadores
Modos de direccionamiento
3ÀCul debe ser el tamao del campo para el operando inmediato?
3Del 50% al 70% caben en 8 bits. Del 75% al 80% caben en 16 bits
3Conclusiones:
GEsperamos disponer de direccionamiento inmediato, indirecto y con desplazamiento (relativo)
GLos campos de desplazamiento y de operando inmediato deben tener 16 bits
Arquitectura de Computadores Universidad de Mlaga
Procesadores segmentados 8 Dpt. Arquitectura de Computadores
Operaciones en el conjunto de instrucciones
3Tipos de instrucciones:
GMovimiento de datos, Aritmticas (incluye enteras, FP, decimal, cadena y grficos), lgicas, control.
3En general, las instrucciones ms simples son las ms usadas:
Posicin Instruccin 80x86 Porcentaje de uso
1 Load 22%
2 Salto condicional 20%
3 Comparacin 16%
4 Store 12%
5 add 8%
6 and 6%
7 sub 5%
8 Move Reg-Reg 4%
9 call 1%
10 return 1%
Total 96%
Tabla 5: Las 10 inst. ms usadas en el 80x86 para cinco programas del SPECint92
Arquitectura de Computadores Universidad de Mlaga
Procesadores segmentados 9 Dpt. Arquitectura de Computadores
Operaciones en IS: Control
3Distinguimos cuatro tipos de instrucciones de control:
GSalto condicional (branch), Salto incondicional (jump)
GProcedimientos: Llamada (call) y retorno (return)
3Frecuencia relativa de cada uno de los tipos:
3La direccin destino se especiÞca como
GUn desplazamiento a sumar al PC (consume pocos bits y permite relocalizar el cdigo)
GEl contenido de un registro (til para implementar ÒcaseÓ o funciones virtuales en C++)
Arquitectura de Computadores Universidad de Mlaga
Procesadores segmentados 10 Dpt. Arquitectura de Computadores
Operaciones del IS: Control
3En direccionamiento relativo a PC Àcuntos bits necesitamos?
GLos saltos ms frecuentes necesitan 2 o 3 bits (de 3 a 7 instrucciones ms lejos)
3Tres formas de especiÞcar la condicin:
GCdigo de Condicin (CC) en registro de estado (SR). En CISC. El SR impide reordenar instrucciones.
GRegistro de condicin. Se testea un registro cualquiera. Consume un registro, pero es muy simple.
GComparacin y salto unificados. Reduce N, pero es demasiado trabajo para incluirlo en 1 instruccin
3El mayor porcentaje de comparaciones son del tipo igual/no igual (con
cero en un gran nmero de casos).
Arquitectura de Computadores Universidad de Mlaga
Procesadores segmentados 11 Dpt. Arquitectura de Computadores
Operaciones del IS: Control
3En las llamadas a procedimiento al menos hay que salvar la dir. de
retorno, y normalmente los registros que se vayan a utilizar
3Dos alternativas:
GSalva el que llama: Antes de llamar se salvan los registros que necesitas despues del retorno
GSalva el llamado: La rutina llamada salva conservativamente cualquier registro que utilece
3La direccin de retorno se suele guardar en un registro
GEl return se implementa como un salto incondicional al contenido de ese registro
3Conclusiones:
GImportancia de las instrucciones simples: load, store, add, sub, jump, branc, call y return
GEl campo direccin de salto debe tener al menos 8 bits
GPermitir salto relativo al PC o por registro
Arquitectura de Computadores Universidad de Mlaga
Procesadores segmentados 12 Dpt. Arquitectura de Computadores
Tipo y tamao de los operandos
3El tipo de los datos se incluye en el cdigo de operacin (CO)
3Tipos comunes:
GCaracter (1 byte), half word (16 bits), word (32 bits), FP simple (1 word), FP doble (2 word)
GArquitecturas para aplicaciones no numricas incluyen BCD
3Frecuencia de uso de los distintos tipos en el SPECint 92
3No implementar operaciones ni transferencias para byte o half-word
Arquitectura de Computadores Universidad de Mlaga
Procesadores segmentados 13 Dpt. Arquitectura de Computadores
CodiÞcacin del conjunto de instrucciones
3Instruccin con informacin del CO y operandos
3En arquitecturas Load-Store el modo de dir. se incluye en CO
3Compromisos entre:
GEl deseo de tener el mayor nmero posible de operandos y modos de direccionamiento
GEl impacto del tamao de los campos para registros y modos de direccionamiento
GTener un formato de instrucciones de tamao fijo y mltiplo de byte
Arquitectura de Computadores Universidad de Mlaga
Procesadores segmentados 14 Dpt. Arquitectura de Computadores
CodiÞcacin del conjunto de instrucciones
3El sistema de codiÞcacin Þja tiene:
3Ventajas:
GTamao nico para todas las instrucciones
GEtapa de decodificacin sencilla con un tiempo de decodificacin constante
3Inconvenientes:
GAplicable cuando hay pocos modos de direccionamiento y pocas direcciones de memoria
GLas instrucciones consumen ms bits que en el formato variable
3Ejemplo de codiÞcacin variable en el VAX:
addl3 r1,737(r2),(r3)
Gaddl3 significa: suma de 32 bits con tres operandos. El CO consume 1 byte
Gr1 indica el registro destino. Ocupa 1 byte (4 bits para el modo de dir. y 4 bits con el n¼ de reg)
G737(r2) ocupa 3 bytes: mod. dir (4 bits); n¼ de reg. (4 bits); desplazamiento 732 (2 bytes)
G(r3) ocupa 1 byte (4+4 bits)
GEn total la instruccin ocupa 6 bytes y requiere 3 accesos a memoria (1 inst + 2 operandos)
3Las longitud de las instrucciones del VAX vara entre 1 y 53 bytes!!
Arquitectura de Computadores Universidad de Mlaga
Procesadores segmentados 15 Dpt. Arquitectura de Computadores
El papel del compilador
3Salvo excepciones, actualmente se programa en lenguajes de alto nivel
3Estructura del compilador:
Arquitectura de Computadores Universidad de Mlaga
Procesadores segmentados 16 Dpt. Arquitectura de Computadores
Arquitectura del DLX
332 registros de propsito general (RPG)
GR0, R1,..., R31. De 32 bits.
GR0 siempre contiene el valor 0.
332 registros FP (FPR)
GF0,F1,...,F31. De simple precisin (32 bits)
GF0,F2,...,F30. De doble precisin (64 bits)
3Tipos de datos de 32 bits (word), 16 bits
(half-word) y 8 bits (byte). FP simp. y dob.
3Byte y half-word se almacenan en RPG
rellenando el registro con 0Õs o ext. signo.
3Modos de direccionamiento
Ginmediato
Gdesplazamiento. El direccionamiento indirecto a reg. se consigue poniendo desplazamiento 0. El direc-
cionamiento absoluto se simula usando el registro R0 y poniendo la direccin absoluta en el campo desp.
3Big Endian. 32 bits de direc. Todos los accesos deben estar alineados
MAR
MDR
PC
IR
@ datos
datos
@ inst.
inst
M E M O R I A
REGISTROS
ALU
Arquitectura de Computadores Universidad de Mlaga
Procesadores segmentados 17 Dpt. Arquitectura de Computadores
Arquitectura del DLX
LENGUAJE MçQUINA
3Instrucciones de clculo (registro-registro).
GOP R
d
, R
f1
, R
f2
=> R
d
<- R
f1
OP R
f2
3Instrucciones de acceso a memoria (palabra, media palabra y byte).
GLW R
d
, #X(R
f1
)=>R
d
<- Mem[X+R
f1
]
GSW #X(R
f1
), R
d
=> Mem[X+R
f1
] <- R
d
3Formato de las instrucciones
Opcode
6 55 16Inst. tipo I
Opcode rf2rf1 func.
Inst. tipo R
rd
6555 11
rf1 rd inmediato
Opcode
626Inst. tipo J
offset sumado al PC
á Load y Stores con desp: LW rd, Inm(rf1) o SW Inm(rf1), rd
á Todos los dir inmediatos: rd <- rf1 op. inmediato
á Salto Condicional: BEQZ rf1, inmediato
á Salto por registro: rd=0, rf1=destino, inmediato=0
á Operaciones reg-reg: rd <- rf1 func. rf2
á El campo func. codifica la operacin a realizar: add, sub,...
á Movimiento entre reg. y lec/esc de registros especiales
á Salto y salto con enlace (para llamada a subrrutina) á Trap y retorno de excepcin
Arquitectura de Computadores Universidad de Mlaga
Procesadores segmentados 18 Dpt. Arquitectura de Computadores
Arquitectura del DLX
INSTRUCCIONES DELOAD/STORE
Arquitectura de Computadores Universidad de Mlaga
Procesadores segmentados 19 Dpt. Arquitectura de Computadores
Arquitectura del DLX
EJEMPLOS DEINSTRUCCIONESARITMTICO/LîGICAS
3MOV R4,R3 se implementa mediante ADD R4,R3,R0
3MOV R4,#3 se implementa como ADDI R4,R0,#3 (lo llamamos LI R4,#3)
Arquitectura de Computadores Universidad de Mlaga
Procesadores segmentados 20 Dpt. Arquitectura de Computadores
Arquitectura del DLX
INSTRUCCIONES TêPICAS DE CONTROL
3JAL se utiliza para saltar a subrutina. JALR cuando la dir. esta en un reg.
3Instrucciones en FP con suÞjo F o D:
GADDF, ADDD, SUBF, SUBD, MULTF, MULTD, DIVF, DIVD
Arquitectura de Computadores Universidad de Mlaga
Procesadores segmentados 21 Dpt. Arquitectura de Computadores
Etapas en las instrucciones del DLX
3Fases de las instrucciones:
3Otras posibilidades
busd/lealu esmem
aritmtica entera
1.- bsqueda
2.- dec. / lectura reg.
3.- ALU
4.- escritura registro
acceso a memoria
1.- bsqueda
2.- dec. / lectura reg.(slo loads)
3.- clculo de la direccin efectiva
4.- acceso a memoria
5.- escritura en registro
busd/lealues busd/le@ef esmem
alu
@ef
busd/le@ef es
mem
alu
busd/le es
mem
alu
Arquitectura de Computadores Universidad de Mlaga
Procesadores segmentados 22 Dpt. Arquitectura de Computadores
Implementacin simple del DLX
3Bsqueda de instruccin
GIR <- Mem(PC)
GNPC <- PC + 4
3DecodiÞcacin/bsqueda en registros
GA <- Regs(IR
6..10
) ; (rf1)
GB <- Regs(IR
11..15
) ; (rd en tipo I o rf2 en tipo R)
GInm <- ((IR
16
)
16
## IR
16..31
); (campo inmediato de tipo I con extensin de signo)
3Ejecucin/clculo de direccin efectiva
GReferencia a memoria: ALUOutput <- A op Inm (Tipo I, clculo de la direccin efectiva)
GALU reg-reg: ALUOutput <- A func B (Tipo R)
GALU reg-inm: ALUOutput <- A op Inm (Tipo I)
GBranch: ALUOutput <- NPC + Inm; y Cond <- (A op 0); (Tipo I)
[El registro A (que contiene rf1) se chequea para ver si se toma o no el salto
[La operacin de comparacin op viene del CO. En BEQZ es Ò==Ó
Arquitectura de Computadores Universidad de Mlaga
Procesadores segmentados 23 Dpt. Arquitectura de Computadores
Implementacin simple del DLX
3Acceso a memoria
GReferencia a memoria: LMD <- Mem(ALUOutput) (en LOAD) Mem(ALUOutput) <-B; (en STORE)
GBranch: if (Cond) PC <- ALUOutput else PC <- NPC;
3Escritura (Write-Back)
GALU reg-reg: Regs(IR
16..20
) <- ALUOutput; (Tipo R, rd <- ALUOutput)
GALU reg-inm: Regs(IR
11..15
) <- ALUOutput; (Tipo I, rd <- ALUOutput)
GLOAD: Regs(IR
11..15
) <- LMD; (Tipo I, rd <- LMD)
CONCLUSIîN
3Store, Branch y Jump necesitan 4 ciclos. Las demas instrucciones 5 ciclos
3Una simple mquina de estados Þnitos puede realizar el control
3Opcin: bajar la frec. de reloj e implementar todo en un nico ciclo largo
GPerderamos el ciclo de ahorro en los branch y store
GTendramos que duplicar unidades funcionales que en la implem. multiciclo se pueden compartir.
Arquitectura de Computadores Universidad de Mlaga
Procesadores segmentados 24 Dpt. Arquitectura de Computadores
Implementacin simple del DLX
Arquitectura de Computadores Universidad de Mlaga
Procesadores segmentados 25 Dpt. Arquitectura de Computadores
Implementacin simple del DLX
Instruccin Tipo BI DEC ALU MEM ESC Nû ck
ADD R1,R2,R3 R
IR<-(PC)
NPC<-PC+4
A<-R2
B<-R3
Inm<-IR
16..31
AO<-A+B Nada
(PC<-NPC)
R1<-AO 5(4)
LW R1,10(R3) I Ò
A<-R3
B<-R1
Inm<-10
AO<-A+Inm LMD<-Mem(AO)
PC<-NPC
R1<-LMD 5
SW 10(R3),R1 I Ò Ò Ò Mem(AO)<-B
PC<-NPC
Nada 4
ADDI R1,R2,#3 I Ò
A<-R2
B<-R1
Inm<-3
AO<-A+Inm Nada
(PC<-NPC)
R1<-AO 5(4)
BEQZ R1,dir I Ò A<-R1
Inm<-dir
AO<-NPC+Inm
R1==0?
PC<-AO Nada 4
JR R1 I Ò
A<-R1
B<-0
Inm<-0
AO<-R1+B PC<-AO Nada 4(3)
J dir J Ò Inm<-dir AO<-Inm+NPC PC<-AO Nada 4(3)
JAL dir J Ò Inm<-dir AO<-Inm+NPC PC<-AO
R31<-NPC
Nada 4(3)
Tabla 6: Ejemplos de instrucciones
Arquitectura de Computadores Universidad de Mlaga
Procesadores segmentados 26 Dpt. Arquitectura de Computadores
Comparacin CISC (VAX) versus RISC (MIPS)
3N
MIPS = 2 N
VA X pero a cambio CPI
VA X = 6 CPI
MIPS
3Resultado: El MIPS 2000 tiene un rendimiento 3 veces mayor al VAX 8700