19
ISA (Instruction Set Architecture) Arquitectura del conjunto de instrucciones

ISA (Instruction Set Architecture) Arquitectura del conjunto de instrucciones

Embed Size (px)

Citation preview

Page 1: ISA (Instruction Set Architecture) Arquitectura del conjunto de instrucciones

ISA(Instruction Set Architecture)

Arquitectura del conjunto de instrucciones

Page 2: ISA (Instruction Set Architecture) Arquitectura del conjunto de instrucciones

Universidad de Sonora Arquitectura de Computadoras 2

Instruction Set Architecture (ISA)

Arquitectura del conjunto de instrucciones

Conjunto de instrucciones

software

hardware

Page 3: ISA (Instruction Set Architecture) Arquitectura del conjunto de instrucciones

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.

Page 4: ISA (Instruction Set Architecture) Arquitectura del conjunto de 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

Page 5: ISA (Instruction Set Architecture) Arquitectura del conjunto de instrucciones

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).

Page 6: ISA (Instruction Set Architecture) Arquitectura del conjunto de instrucciones

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.

Page 7: ISA (Instruction Set Architecture) Arquitectura del conjunto de instrucciones

Universidad de Sonora Arquitectura de Computadoras 7

Abstracción

Bajando el nivel de abstracción revela otras informaciones

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

00000000101000010000000000011000000000001000111000011000001000011000110001100010000000000000000010001100111100100000000000000100101011001111001000000000000000001010110001100010000000000000010000000011111000000000000000001000

Binary machinelanguageprogram(for MIPS)

C compiler

Assembler

Assemblylanguageprogram(for MIPS)

High-levellanguageprogram(in C)

Page 8: ISA (Instruction Set Architecture) Arquitectura del conjunto de instrucciones

Universidad de Sonora Arquitectura de Computadoras 8

Ejemplo ampliadoswap(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

Page 9: ISA (Instruction Set Architecture) Arquitectura del conjunto de instrucciones

Universidad de Sonora Arquitectura de Computadoras 9

InstruccionesPor 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, $s2El opcode es “add” (suma)

Tienen operandos: 0, 1, 2 o 3.La instrucción de arriba tiene 3 operandos.Significa s0 = s1 + s2

Page 10: ISA (Instruction Set Architecture) Arquitectura del conjunto de instrucciones

Universidad de Sonora Arquitectura de Computadoras 10

InstruccionesDos opciones de direccionamiento:

Implícito. El opcode implica la dirección de los operandos.Ejemplo en una máquina de pila (stack)

addLa instrucción saca (pop) dos valores

de la pila, hace la suma y deja (push) el resultado en la pila.

Page 11: ISA (Instruction Set Architecture) Arquitectura del conjunto de instrucciones

Universidad de Sonora Arquitectura de Computadoras 11

InstruccionesExplícito. Las direcciones vienen en

los operandos.Ejemplo de MIPS:

add $s0, $s1, $s2Dos operandos fuentes: s1 y s2Un operando destino: s0s0 = s1 + s2

Page 12: ISA (Instruction Set Architecture) Arquitectura del conjunto de instrucciones

Universidad de Sonora Arquitectura de Computadoras 12

Organización de la memoriaSe 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

Datos

Datos

Datos

...

Con n bits, se puede direccionarhasta 2n – 1 datos

Page 13: ISA (Instruction Set Architecture) Arquitectura del conjunto de instrucciones

Universidad de Sonora Arquitectura de Computadoras 13

Organización de la memoriaAlineació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

Page 14: ISA (Instruction Set Architecture) Arquitectura del conjunto de instrucciones

Universidad de Sonora Arquitectura de Computadoras 14

Organización de la memoriaHay 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.

Page 15: ISA (Instruction Set Architecture) Arquitectura del conjunto de instrucciones

Universidad de Sonora Arquitectura de Computadoras 15

Big-endian/Little-endianEjemplo: guardar la palabra de 4 bytes

1234567816 en la dirección 1000.

0001 0010 0011 0100 0101 0110 0111 1000

Byte mas significativo Byte menos significativo

Page 16: ISA (Instruction Set Architecture) Arquitectura del conjunto de instrucciones

Universidad de Sonora Arquitectura de Computadoras 16

Big-endian

0001 0010

0011 0100

0101 0110

0111 1000

Byte mas significativo

Byte menos significativo

1000

1001

1002

1003

Page 17: ISA (Instruction Set Architecture) Arquitectura del conjunto de instrucciones

Universidad de Sonora Arquitectura de Computadoras 17

Little-endian

0111 1000

0101 0110

0011 0100

0001 0010

Byte menos significativo

Byte mas significativo

1000

1001

1002

1003

Page 18: ISA (Instruction Set Architecture) Arquitectura del conjunto de instrucciones

Universidad de Sonora Arquitectura de Computadoras 18

Big-endian/Little-endianIntel x86 es little-endian.Sun SPARC es big-endian.

Page 19: ISA (Instruction Set Architecture) Arquitectura del conjunto de instrucciones

Universidad de Sonora Arquitectura de Computadoras 19

Instrucciones típicasAritmé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.