ISA
(Instruction Set Architecture)
Arquitectura del conjunto de instrucciones
Instruction Set Architecture (ISA)
Arquitectura del conjunto de instrucciones
software
Conjunto de instrucciones
hardware
Universidad de Sonora
Arquitectura de Computadoras
2
Modelo de von Neumann
- Las instrucciones y los datos están
en la misma memoria.
- Las instrucciones son leídas de la
memoria y ejecutadas en la unidad de
procesamiento (CPU), una a una.
- Las instrucciones son almacenadas
en la misma secuencia de ejecución.
- La unidad de control es responsable
del control de la lectura y ejecución de
las instrucciones.
Universidad de Sonora
Arquitectura de Computadoras
3
Instruction Set Architecture (ISA)
¿Qué es un conjunto de instrucciones?
 La frontera entre el hardware y el software
 Cada instrucción es directamente ejecutada por el
hardware
Universidad de Sonora
Arquitectura de Computadoras
4
Instruction Set Architecture (ISA)
¿Cómo se representa?
 Con un formato binario. El hardware solo entiende
bits.
 Los objetos físicos son bits, bytes, palabras (words).
 Tamaño típico de palabra: 4 u 8 bytes (32 o 64 bits).
Universidad de Sonora
Arquitectura de Computadoras
5
Instruction Set Architecture (ISA)
Dos opciones de tamaño de las instrucciones:
 Fijo. Cada instrucción ocupa el mismo número de
bytes.
 Variable. Cada instrucción ocupa distintos números de
bytes.
Universidad de Sonora
Arquitectura de Computadoras
6
H ig h -l e v e l
la n g u a g e
p r o g ra m
(in C )
s w a p ( in t v [], in t k )
{ in t te m p ;
te m p = v [ k ];
v [ k ] = v [k + 1 ];
v[k+ 1] = tem p;
Abstracción
}
C c o m p il e r
Bajando el nivel de
abstracción revela
otras informaciones
A s s e m b ly
la n g u a g e
p r o g ra m
(fo r M IP S )
s w ap :
m u li $ 2 , $ 5 , 4
a d d $ 2 , $ 4 ,$ 2
lw
$ 1 5 , 0 ($ 2 )
lw
sw
sw
jr
$ 1 6 , 4 ($ 2 )
$1 6, 0($2 )
$1 5, 4($2 )
$31
A s s e m b le r
B in a ry m a c h in e
la n g u a g e
p r o g ra m
(fo r M IP S )
Universidad de Sonora
Arquitectura de Computadoras
0 00 0 00 00 10 10 00 01 00 0 00 00 00 00 11 00 0
0 00 0 00 00 10 00 11 10 00 0 11 00 00 01 00 00 1
1 00 0 11 00 01 10 00 10 00 0 00 00 00 00 00 00 0
1 00 0 11 00 11 11 00 10 00 0 00 00 00 00 00 10 0
1 01 0 11 00 11 11 00 10 00 0 00 00 00 00 00 00 0
1 01 0 11 00 01 10 00 10 00 0 00 00 00 00 00 10 0
0 00 0 00 11 11 10 00 00 00 0 00 00 00 00 01 00 0
7
Ejemplo ampliado
swap(int v[], int k)
{ int temp;
temp = v[k]
v[k] = v[k+1];
}
v[k+1] = temp;
swap:
muli $2, $5, 4
add $2, $4, $2
lw $15, 0($2)
lw $16, 4($2)
sw $16, 0($2)
sw $15, 4($2)
jr $31
Universidad de Sonora
Arquitectura de Computadoras
8
Instrucciones
 Por lo general son operaciones simples que pueden ser
ejecutadas directamente por el hardware.
 Se identifican por un opcode (código de operación).
 Ejemplo de MIPS:
add $s0, $s1, $s2
 El opcode es “add” (suma)
 Tienen operandos: 0, 1, 2 o 3.
 La instrucción de arriba tiene 3 operandos.
 Significa s0 = s1 + s2
Universidad de Sonora
Arquitectura de Computadoras
9
Instrucciones
Dos opciones de direccionamiento:
 Implícito. El opcode implica la dirección de
los operandos.
 Ejemplo en una máquina de pila (stack)
add
 La instrucción saca (pop) dos valores de la
pila, hace la suma y deja (push) el resultado
en la pila.
Universidad de Sonora
Arquitectura de Computadoras
10
Instrucciones
 Explícito. Las direcciones vienen en los
operandos.
 Ejemplo de MIPS:
add $s0, $s1, $s2
 Dos operandos fuentes: s1 y s2
 Un operando destino: s0
 s0 = s1 + s2
Universidad de Sonora
Arquitectura de Computadoras
11
Organización de la memoria
 Se puede ver como un vector (arreglo de una
dimensión).
 Una dirección de memoria es un índice del vector.
0
1
2
3
4
5
Datos
Datos
Datos
Con n bits, se puede direccionar
hasta 2n – 1 datos
Datos
Datos
Datos
...
Universidad de Sonora
Arquitectura de Computadoras
12
Organización de la memoria
 Alineación. La dirección de una palabra en memoria
comienza en un múltiplo del número de bytes que
ocupa una palabra.
 Ejemplo de memoria con palabras alineadas de 4 bytes.
0
4
8
12
...
Datos 32 bits
Datos 32 bits
Datos 32 bits
Datos 32 bits
Universidad de Sonora
Arquitectura de Computadoras
13
Organización de la memoria
 Hay dos formas de guardar una palabra multi-byte en
memoria:
 Big-endian. El byte mas significativo se guarda en la
dirección mas baja.
 Little-endian. El byte menos significativo se guarda en la
dirección mas baja.
Universidad de Sonora
Arquitectura de Computadoras
14
Big-endian/Little-endian
 Ejemplo: guardar la palabra de 4 bytes 1234567816 en la
dirección 1000.
0001 0010 0011 0100
0101 0110
Byte mas significativo
Universidad de Sonora
Arquitectura de Computadoras
0111 1000
Byte menos significativo
15
Big-endian
1000
0001 0010
1001
0011 0100
1002
0101 0110
1003
0111 1000
Universidad de Sonora
Arquitectura de Computadoras
Byte mas significativo
Byte menos significativo
16
Little-endian
1000
0111 1000
1001
0101 0110
1002
0011 0100
1003
0001 0010
Universidad de Sonora
Arquitectura de Computadoras
Byte menos significativo
Byte mas significativo
17
Big-endian/Little-endian
 Intel x86 es little-endian.
 Sun SPARC es big-endian.
Universidad de Sonora
Arquitectura de Computadoras
18
Instrucciones típicas
 Aritméticas: suma (add), resta (sub), multiplicación
(mul), división (div).
 Lógicas: and, or, xor, not.
 Movimiento de datos: copia (copy), carga (load),
guarda (store), mueve (move).
 Control: brinca (jump), brinca condicional (jump if),
llama subrutina (call), regresa de subrutina (ret).
 Sistema: llamadas a funciones del sistema operativo.
Universidad de Sonora
Arquitectura de Computadoras
19
Descargar

ppt - Universidad de Sonora