Descargar la presentación
La descarga está en progreso. Por favor, espere
1
ISA (Instruction Set Architecture)
Arquitectura del conjunto de instrucciones
2
Instruction Set Architecture (ISA)
Arquitectura del conjunto de instrucciones software Conjunto de instrucciones hardware Universidad de Sonora Arquitectura de Computadoras
3
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
4
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
5
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
6
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
7
Abstracción Bajando el nivel de abstracción revela otras informaciones
Universidad de Sonora Arquitectura de Computadoras
8
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
9
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
10
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
11
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
12
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. 1 2 3 4 5 Datos ... Con n bits, se puede direccionar hasta 2n – 1 datos Universidad de Sonora Arquitectura de Computadoras
13
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. 4 8 12 ... Datos 32 bits Universidad de Sonora Arquitectura de Computadoras
14
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
15
Big-endian/Little-endian
Ejemplo: guardar la palabra de 4 bytes en la dirección 1000. Byte mas significativo Byte menos significativo Universidad de Sonora Arquitectura de Computadoras
16
Big-endian Byte mas significativo Byte menos significativo 1000 1001 1002 1003 Universidad de Sonora Arquitectura de Computadoras
17
Little-endian Byte menos significativo Byte mas significativo 1000 1001 1002 1003 Universidad de Sonora Arquitectura de Computadoras
18
Big-endian/Little-endian
Intel x86 es little-endian. Sun SPARC es big-endian. Universidad de Sonora Arquitectura de Computadoras
19
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
Presentaciones similares
© 2024 SlidePlayer.es Inc.
All rights reserved.