Arquitectura isa 1

castie 253 views 13 slides Jun 20, 2018
Slide 1
Slide 1 of 13
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13

About This Presentation

arquitectura dlx


Slide Content

Arquitectura de Computadores Universidad de M‡laga
Procesadores segmentados 1 Dpt. Arquitectura de Computadores
Arquitectura del Conjunto de Instrucciones (ISA)
3ClasiÞcaci—n de las arquitecturas ISA
3Modos de direccionamiento
3Operaciones en el conjunto de instrucciones
3Tipo y tama–o de los operandos
3CodiÞcaci—n del conjunto de instrucciones
3El papel de los compiladores
3La arquitectura DLX
Arquitectura de Computadores Universidad de M‡laga
Procesadores segmentados 2 Dpt. Arquitectura de Computadores
ClasiÞcaci—n de las arquitecturas ISA
3El nivel ISA es la parte de la m‡quina visible al programador en lenguaje
ensamblador o al compilador.
3Discutiremos la gran variedad de alternativas de dise–o 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 prop—sito general (RPG) no se impone orden al calcular (con la pila s’)
GRPG se usan para almacenar variables y reducen el tr‡fico 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 instrucci—n C=A+B

Arquitectura de Computadores Universidad de M‡laga
Procesadores segmentados 3 Dpt. Arquitectura de Computadores
ClasiÞcaci—n de las Arquitecturas ISA
3Cuantos m‡s registros RPG mejor. Se usan para evaluar expresiones,
pasar par‡metros a funciones y el resto para almacenar variables
3ClasiÞcaci—n de arquitecturas RPG segœn el nœmero de operandos (2 — 3)
y el nœmero de Žstos que pueden residir en memoria (de 0 a 3):
3Conclusi—n: Usar RPG en el modo (0,3)
n¼ de direcciones de
memoria
m‡x. 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. M‡s 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 M‡laga
Procesadores segmentados 4 Dpt. Arquitectura de Computadores
Modos de direccionamiento
3ÀC—mo se interpreta una direcci—n de memoria?
GLittle Endian: El byte con direcci—n Òxxxx...xx00Ó es el menos significativo (Intel)
GBig Endian: El byte con direcci—n Òxxxx...xx00Ó es el m‡s significativo (Motorola, SPARC, DLX)
GLos datos deben estar alineados: Si es de 4 bytes la direcci—n debe acabar en 00
3ÀC—mo especiÞcar la direcci—n 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 est‡ticos
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 M‡laga
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 M‡laga
Procesadores segmentados 6 Dpt. Arquitectura de Computadores
Modos de direccionamiento
3ÀCu‡l 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 M‡laga
Procesadores segmentados 7 Dpt. Arquitectura de Computadores
Modos de direccionamiento
3ÀCu‡l debe ser el tama–o 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 M‡laga
Procesadores segmentados 8 Dpt. Arquitectura de Computadores
Operaciones en el conjunto de instrucciones
3Tipos de instrucciones:
GMovimiento de datos, AritmŽticas (incluye enteras, FP, decimal, cadena y gr‡ficos), l—gicas, control.
3En general, las instrucciones m‡s simples son las m‡s usadas:
Posici—n Instrucci—n 80x86 Porcentaje de uso
1 Load 22%
2 Salto condicional 20%
3 Comparaci—n 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. m‡s usadas en el 80x86 para cinco programas del SPECint92

Arquitectura de Computadores Universidad de M‡laga
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 direcci—n destino se especiÞca como
GUn desplazamiento a sumar al PC (consume pocos bits y permite relocalizar el c—digo)
GEl contenido de un registro (œtil para implementar ÒcaseÓ o funciones virtuales en C++)
Arquitectura de Computadores Universidad de M‡laga
Procesadores segmentados 10 Dpt. Arquitectura de Computadores
Operaciones del IS: Control
3En direccionamiento relativo a PC Àcu‡ntos bits necesitamos?
GLos saltos m‡s frecuentes necesitan 2 o 3 bits (de 3 a 7 instrucciones m‡s lejos)
3Tres formas de especiÞcar la condici—n:
GC—digo de Condici—n (CC) en registro de estado (SR). En CISC. El SR impide reordenar instrucciones.
GRegistro de condici—n. Se testea un registro cualquiera. Consume un registro, pero es muy simple.
GComparaci—n y salto unificados. Reduce N, pero es demasiado trabajo para incluirlo en 1 instrucci—n
3El mayor porcentaje de comparaciones son del tipo igual/no igual (con
cero en un gran nœmero de casos).

Arquitectura de Computadores Universidad de M‡laga
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 direcci—n 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 direcci—n de salto debe tener al menos 8 bits
GPermitir salto relativo al PC o por registro
Arquitectura de Computadores Universidad de M‡laga
Procesadores segmentados 12 Dpt. Arquitectura de Computadores
Tipo y tama–o de los operandos
3El tipo de los datos se incluye en el c—digo de operaci—n (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 numŽricas 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 M‡laga
Procesadores segmentados 13 Dpt. Arquitectura de Computadores
CodiÞcaci—n del conjunto de instrucciones
3Instrucci—n con informaci—n del CO y operandos
3En arquitecturas Load-Store el modo de dir. se incluye en CO
3Compromisos entre:
GEl deseo de tener el mayor nœmero posible de operandos y modos de direccionamiento
GEl impacto del tama–o de los campos para registros y modos de direccionamiento
GTener un formato de instrucciones de tama–o fijo y mœltiplo de byte
Arquitectura de Computadores Universidad de M‡laga
Procesadores segmentados 14 Dpt. Arquitectura de Computadores
CodiÞcaci—n del conjunto de instrucciones
3El sistema de codiÞcaci—n Þja tiene:
3Ventajas:
GTama–o œnico para todas las instrucciones
GEtapa de decodificaci—n sencilla con un tiempo de decodificaci—n constante
3Inconvenientes:
GAplicable cuando hay pocos modos de direccionamiento y pocas direcciones de memoria
GLas instrucciones consumen m‡s bits que en el formato variable
3Ejemplo de codiÞcaci—n 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 instrucci—n ocupa 6 bytes y requiere 3 accesos a memoria (1 inst + 2 operandos)
3Las longitud de las instrucciones del VAX var’a entre 1 y 53 bytes!!

Arquitectura de Computadores Universidad de M‡laga
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 M‡laga
Procesadores segmentados 16 Dpt. Arquitectura de Computadores
Arquitectura del DLX
332 registros de prop—sito general (RPG)
GR0, R1,..., R31. De 32 bits.
GR0 siempre contiene el valor 0.
332 registros FP (FPR)
GF0,F1,...,F31. De simple precisi—n (32 bits)
GF0,F2,...,F30. De doble precisi—n (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 direcci—n 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 M‡laga
Procesadores segmentados 17 Dpt. Arquitectura de Computadores
Arquitectura del DLX
LENGUAJE MçQUINA
3Instrucciones de c‡lculo (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 operaci—n 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 excepci—n
Arquitectura de Computadores Universidad de M‡laga
Procesadores segmentados 18 Dpt. Arquitectura de Computadores
Arquitectura del DLX
INSTRUCCIONES DELOAD/STORE

Arquitectura de Computadores Universidad de M‡laga
Procesadores segmentados 19 Dpt. Arquitectura de Computadores
Arquitectura del DLX
EJEMPLOS DEINSTRUCCIONESARITMƒTICO/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 M‡laga
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 M‡laga
Procesadores segmentados 21 Dpt. Arquitectura de Computadores
Etapas en las instrucciones del DLX
3Fases de las instrucciones:
3Otras posibilidades
busd/lealu esmem
aritmŽtica entera
1.- bœsqueda
2.- dec. / lectura reg.
3.- ALU
4.- escritura registro
acceso a memoria
1.- bœsqueda
2.- dec. / lectura reg.(s—lo loads)
3.- c‡lculo de la direcci—n 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 M‡laga
Procesadores segmentados 22 Dpt. Arquitectura de Computadores
Implementaci—n simple del DLX
3Bœsqueda de instrucci—n
GIR <- Mem(PC)
GNPC <- PC + 4
3DecodiÞcaci—n/bœsqueda 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 extensi—n de signo)
3Ejecuci—n/c‡lculo de direcci—n efectiva
GReferencia a memoria: ALUOutput <- A op Inm (Tipo I, c‡lculo de la direcci—n 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 operaci—n de comparaci—n op viene del CO. En BEQZ es Ò==Ó

Arquitectura de Computadores Universidad de M‡laga
Procesadores segmentados 23 Dpt. Arquitectura de Computadores
Implementaci—n 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 m‡quina de estados Þnitos puede realizar el control
3Opci—n: bajar la frec. de reloj e implementar todo en un œnico ciclo largo
GPerder’amos el ciclo de ahorro en los branch y store
GTendr’amos que duplicar unidades funcionales que en la implem. multiciclo se pueden compartir.
Arquitectura de Computadores Universidad de M‡laga
Procesadores segmentados 24 Dpt. Arquitectura de Computadores
Implementaci—n simple del DLX

Arquitectura de Computadores Universidad de M‡laga
Procesadores segmentados 25 Dpt. Arquitectura de Computadores
Implementaci—n simple del DLX
Instrucci—n 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 M‡laga
Procesadores segmentados 26 Dpt. Arquitectura de Computadores
Comparaci—n 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