Instrucciones de mбquina y tipos de software Software del sistema

Anuncio
Instrucciones de máquina y tipos de software
Software del sistema: Implementa sobre la máquina
convencional («desnuda») una «máquina virtual»:
la máquina operativa
Software de aplicaciones: Hace uso de la máquina operativa
Soporte (mínimo) del hardware para la protección:
la UCP puede estar en «modo supervisor» o en «modo usuario»
Instrucciones privilegiadas: Sólo se pueden ejecutar en modo
supervisor (si no, la UCP genera interrupción por violación del
modo usuario)
c 2009 DIT-ETSIT-UPM
Instrucciones y direccionamiento
transp. 1
Formatos de instrucciones
ADD .1, d
CO
MD1
CD1
MD2
CD2
MD3
CD3
DIR. SIG.
CO
CR MD
CD
(R1)+(d) −> R1
(e) una y media
(a) cuatro
ADD d3, d2, d1
(obsoletos)
CO
MD1
CD1
MD2
CD2
MD3
CD3
(d1)+(d2) −> d3
ADD .15, .1, .7
CO
CR1 CR2 CR3
(R1)+(R7) −> R15
(f) media, media y media
(b) tres
ADD d2, d1
CO
MD1
CD1
(c) dos
MD2
CD2
ADD .1, .7
(d1)+(d2) −> d1
o: (d1)+(d2) −> AC
CO
CR1 CR2
ADD d
CO
MD
CD
(d) una
(AC)+(d) −> AC
(R1)+(R7) −> R1
(g) media y media
CO
CR
DEC .1
(R1)−1 −> R1
(h) media
CO
PUSH, POP, ADD, SUB, ...
(máquinas de pila)
(i) cero
c 2009 DIT-ETSIT-UPM
Instrucciones y direccionamiento
transp. 2
Modos de direccionamiento de la MP
DE = f((CD),(MD))
Directo, o absoluto: DE = (CD)
Inmediato: DE = la de la instrucción
Indirecto: DE = (MP[(CD)]) = ((CD))
Indexado: DE = (CD) + (RX)
Autoincremento y autodecremento
Relativo
• a programa
• a página
• a base
• a segmento
c 2009 DIT-ETSIT-UPM
Instrucciones y direccionamiento
transp. 3
Direccionamiento inmediato
n−1
0
MD
i=1
CO
operando
7
0
(a) Instrucción en una palabra
7
0
MD
i=1
CO
MD
operando
i=1
CO
operando
(b) instrucción de dos bytes, con
operando en el segundo
c 2009 DIT-ETSIT-UPM
(c) instrucción de cinco bytes, con
operando de treinta y dos bits
Instrucciones y direccionamiento
transp. 4
Direccionamiento indirecto
7
n−1
0
MD
0
I=1
CO
MD
CO
CD
I=1
CD
puntero
puntero
operando o
instrucción
operando o
instrucción
(a) instrucción, puntero y operando
(o instrucción siguiente,
en caso de bifurcación)
en una palabra cada uno
c 2009 DIT-ETSIT-UPM
(b) instrucción de dos bytes,
puntero de dos y
operando (o instrucción
siguiente) de uno
transp. 5
Instrucciones y direccionamiento
Direccionamientos indexados
registro de índice
MD
CO J=1
CD
+
DE
operando o
instrucción
registro de índice
MD
I=1
CO J=1
(a) direccionamiento
indexado
operando o
instrucción
CD
MD
+
CO I=1
J=1
DE
operando o
instrucción
DE
CD
+
puntero
puntero
(b) direccionamiento
postindexado
c 2009 DIT-ETSIT-UPM
registro de índice
Instrucciones y direccionamiento
(c) direccionamiento
preindexado
transp. 6
Puntero en registro
Por ejemplo: ADD .0, [.1℄ (formato « 21 + 12 »):
DE = (R1), operando = (MP[(R1)]) = ((R1));
(R0) + ((R1)) → R0
Autoincremento:
Tras calcular DE se incrementa el puntero en un número igual
al de bytes que ocupa el operando
Ejemplo: ADD .0, [.1++℄:
(R0) + ((R1)) → R0; (R1) + k → R1
Autodecremento:
Se decrementa el puntero y luego se calcula DE
Ejemplo: ADD .0, [--.1℄:
(R1) – k → R1; (R0) + ((R1)) → R0
c 2009 DIT-ETSIT-UPM
transp. 7
Instrucciones y direccionamiento
Direccionamientos relativos (1)
Relativo a programa: DE = (CD)+(CP)
instrucc. u operando
MD
CD
DE
CO (prog) 0
+
CD
MD
CO (prog) 1
DE
instrucc. u operando
+
CP
CP
(a) (CD)>0
(b) (CD)<0
En muchas UCP sólo existe para las instrucciones de bifurcación
c 2009 DIT-ETSIT-UPM
Instrucciones y direccionamiento
transp. 8
Direccionamientos relativos (2)
0000
PAGINA 0
Relativo a página: DE = (CD) + dir. pág.
00FF
0100
Ejemplo:
MP de 64 KB
(direcciones de 2 bytes)
FE00
Instrucciones
de 1 ó 2 bytes
si P = 0, DE = A0
si P = 1, DE = FEA0
256 páginas
de 256 bytes
CO
MD
(CD)=A0
8
15
CP:
FEA0 palabra direccionada
A0
P
A0
0
7
instrucción:
PAGINA FE
FE
15
DE:
0
FEA0
FEFF
FF00
PAGINA FF
1 byte
FFFF
c 2009 DIT-ETSIT-UPM
Instrucciones y direccionamiento
transp. 9
Direccionamientos relativos (3)
Relativo a base: DE = dir. previa + (RB)
Registros de base y de límite:
RB1
zona asignada
al código
RL1
RB2
zona asignada
a los datos
RL2
c 2009 DIT-ETSIT-UPM
Instrucciones y direccionamiento
transp. 10
Direccionamientos relativos (4)
Relativo a segmento: DE = dir. previa + 2n×(RS)
Ejemplo, con dir. previa de 16 bits, DE de 20 bits y n = 4:
15
0
dirección previa
15
+
=
0
registro de segmento 0 0 0 0
19
0
dirección efectiva
c 2009 DIT-ETSIT-UPM
Instrucciones y direccionamiento
transp. 11
Pilas
PUSH
POP
Memoria de pila:
cima
cima
Máquinas de pila:
p
n
p
n−1
p
n+1
p
n
p
n−1
p
0
p
0
PILA INICIAL
cima
PILA DESPUES
DE INTRODUCIR
p
n
p
n−1
cima
p
n−1
p
0
p
0
PILA INICIAL
PILA DESPUES
DE EXTRAER
Datos en la pila. En una máquina de pila «pura» no hay
registros «visibles» (en el nivel de máquina convencional)
Instrucciones en memoria de acceso aleatorio
Instrucciones con direccionamiento implícito (a la cima)
c 2009 DIT-ETSIT-UPM
Instrucciones y direccionamiento
transp. 12
Simulación de una pila en la MP
MP
−k
+k
(pop) (push)
cima
PP
fondo
ZONA
RESERVADA
PARA
LA PILA
Utilidad: anidamiento de subprogramas (con instrucciones
CALL y RET) y de interrupciones
c 2009 DIT-ETSIT-UPM
Instrucciones y direccionamiento
transp. 13
Repertorios de instrucciones
De movimiento:
LD, ST, LD.B, LD.H, LD.L...
LDU, LDS, LDU.B...
PUSH, POP, MOVE, IN, OUT
Aritméticas, lógicas
y de comparación:
ADD, SUB, MUL, DIV, ADD.B...
ADDC, ADDC.B...
INC, DEC, NOT, AND, OR, CLR...
CMP, CMP.B...
De desplazamiento:
SHR, SHL, ROR...
De transferencia
de control:
BR, BZ, BNZ,... SKIP, SKIPZ...
CALL, RET, RETI
BRK (INT, o TRAP)
De gobierno:
HALT, EI, DI...
c 2009 DIT-ETSIT-UPM
Instrucciones y direccionamiento
transp. 14
Medidas de prestaciones
Velocidad (performance): V = 1/tpo.respuesta
Potencia (throughput): P = trabajo/tiempo
Con monoprogramación, P = V
Con multiprogramación, P > V
Ejemplo: con tres programas, A, B y C,
P1A
ESA P2A P1B
ESB P2B
PC
(a) con monoprogramación
P1A P1B PC P2A PC P2B PC
ESA
ESB
t
(b) con multiprogramación
c 2009 DIT-ETSIT-UPM
Instrucciones y direccionamiento
transp. 15
Velocidad de la UCP: medidas elementales
Tiempo de respuesta para un programa: TR = I × CPI/F
para una instrucción: TRI = CPI/F
(Si F en MHz, TR y TRI en µs).
De aquí, velocidad «de la UCP»:
V = 1/TRI = F/CPI MIPS
Pero distintas instrucciones tienen distintos CPI...
Mezcla de instrucciones: Ii instrucciones de Ci ciclos...
CPI =
I1×C1+I2×C2+... In×Cn
I1+I2+... In
MIPS depende de la mezcla, y, por tanto, del programa
c 2009 DIT-ETSIT-UPM
Instrucciones y direccionamiento
transp. 16
Velocidad de la UCP: bancos de medida (benchmarks)
Pequeños programas: factorial, quicksort...
Benchmarks clásicos: Whetstone, Dhrystone...
(«perfil medio» de programas reales)
SPECmarks (Standard Performance Evaluation Corporation):
fp fp
1. Conjuntos de programas {P1int, P2int...}, {P1 , P2 ...},...
2. Vi = VPi (MM )/VPi (MR)
(MM : UCP a medir; MR: UCP de referencia)
3. V =
√
n
V1 ×V2 × ...Vn SPECmarks
SPEC CPU2006 = CINT2006 + CFP2006
(rendimiento conjunto de UCP, MP y compilador)
c 2009 DIT-ETSIT-UPM
Instrucciones y direccionamiento
transp. 17
RISC/CISC
Reduced Instruction Set Computer:
Arquitectura load/store:
Instrucciones de procesamiento con formato 21 + 12 + 21
Instrucciones sólo para las operaciones más frecuentes
Formato de instrucciones regular:
Una palabra de 32 o 64 bits; pocos formatos, y campos
homogéneos
Implementación (en el nivel de micromáquina) cableada
c 2009 DIT-ETSIT-UPM
Instrucciones y direccionamiento
transp. 18
Descargar