Instrucciones: El lenguaje del computador

Lenguaje del computador

Get Started. It's Free
or sign up with your email address
Instrucciones: El lenguaje del computador by Mind Map: Instrucciones: El lenguaje del computador

1. Lenguaje del Computador

1.1. Instrucciones: palabras que entiende el ordenador.

1.2. Juego de instrucciones: comandos que entienden una arquitectura.

1.3. Objetivos:

1.3.1. Lenguaje cuyo hardware y compilador sean sencillos de construir.

1.3.2. Maximice el rendimiento.

1.3.3. Minimice el coste.

2. Operaciones aritméticas

2.1. ALU requisito fundamental de las computadoras. Efectúa operaciones matemáticas básicas

3. Circuitos que contienen ALUs

3.1. Microprocesadores.

3.2. GPUs

3.3. FPU

3.4. Procesadores digitales de señales

3.5. Lectores CD

3.6. Televisores de alta definición

4. ALU

4.1. Opera sobre los datos de una instrucción.

4.2. Operaciones de desplazamiento, lógicas y aritméticas.

4.3. Simple sumador-restador

4.4. Descomposición en pasos elementales Ejecutar rápidamente esos pasos.

5. Sistemas numéricos

5.1. ALU procesa números usando el mismo formato.

5.2. Las primeras PCs realizaban.

5.2.1. Complemento a uno

5.2.2. Signo-Magnitud

5.2.3. Sistemas decimales

5.3. Actualmente usan sistemas binarios

6. Tipos de operadores

6.1. Operaciones aritméticas.

6.1.1. Sumas

6.1.2. Restas

6.1.3. Multiplicación

6.1.4. División

6.2. Operaciones lógicas

6.2.1. AND

6.2.2. NOT

6.2.3. OR

6.2.4. XOR

6.2.5. NOR

6.3. Operaciones de desplazamiento de bits

6.3.1. Rotar a la izquierda

6.3.2. Rotar a la derecha

7. Ámbitos de aplicación del operador

7.1. General

7.1.1. Realiza diferentes operaciones.

7.2. Especializado

7.2.1. Realiza una operación de cierta complejidad.

8. Realización del operador

8.1. Operador combinacional

8.1.1. Circuito combinacional

8.1.1.1. Varias operaciones

8.1.1.1.1. Sin memoria

8.2. Secuencial

8.2.1. Circuito secuencial

8.2.1.1. Funciona por fases

8.2.1.1.1. Necesita memoria

9. Operación de multiplicación

9.1. Conjunto de sumador-restador + algoritmo.

9.1.1. Algoritmos

9.1.1.1. Multiplicación binaria sin signo

9.1.1.2. Multiplicación binaria con signo.

9.2. Máquinas potentes cuentan con un operador específico.

9.3. Multiplicadores combinacionales.

9.3.1. Más rápidos pero más complejos

10. Operación de división

10.1. Más compleja que la multiplicación.

10.2. Sumadores-restadores + un algoritmo

10.3. Raro que un computador disponga de un divisor combinacional.

11. Operacion Aritmetica en MIPS

11.1. Cada instruccion aritmetica realiza una unica operación

11.2. Siempre tiene 3 variables

11.3. Sumar : a = b + c

11.3.1. Instruccion MIPS

11.3.1.1. add a, b, c

11.4. Restar a = b - c

11.4.1. Instruccion MIPS

11.4.1.1. sub a, b, c

12. Principio de Diseño 1

12.1. La simplicidad favorece a la regularidad

13. Operandos

13.1. Tienen un numero limitado

13.2. Corresponden a una parte del Hardware, denominada REGISTROS

13.3. Registros

13.3.1. Parte del Hardware visible a los programadores

13.3.2. En MIPS hay 32 registros de 32 bits

13.3.3. Convencion MIPS para representar registros

13.3.3.1. Usa el simbolo $ seguido de dos caracteres

13.3.3.2. $s0,...$s7 para variables de larga duracion

13.3.3.3. $t0,...$t7 para variables temporales

13.3.3.4. Operacion a = (b + c) - (d + e)

13.3.3.4.1. a : $s0, b : $s1, c : $s2, d : $s4, e : $s5

14. Principio de Diseño 2

14.1. Mas Pequeño es mas rapido

15. Operandos en Memoria

15.1. En MIPS las operaciones se realizan entre registros

15.2. las estructuras de datos, Arrays, se guardan en memoria

15.3. Se necesitan instrucciones de transferencia de datos

15.3.1. LoadWork lw

15.3.1.1. para cargar datos de la memoria en registros

15.3.2. StoreWork sw

15.3.2.1. Para guardar registros en Memoria

15.4. Operacion A[12] = h + A[8]

15.4.1. A es un Array de 100 palabras

15.4.1.1. h : $s2 , A : $s3, palabra = 4bytes

15.4.1.1.1. Instrucciones MIPS

16. Diseño de Repertorio de Instrucciones

16.1. el repertorio de instrucciones influye en :

16.1.1. Numero de Instrucciones para realizar una tarea

16.1.2. El diseño del compilador

16.1.3. El dieseño de la ruta de datos y unidad de control

16.2. CISC: Complex Instruction Set Computer

16.2.1. gran numero de instrucciones completas

16.2.2. Hardware mas complejo

16.3. RISC: Reduced Instruction Set Computer

16.3.1. pocas instrucciones y muy basicas

16.3.2. Se necesita mas instrucciones para realizar una tarea

16.4. Aspectos a tener en cuenta

16.4.1. Tipo de almacenamiento de los operandos

16.4.2. Modos de Direccionamiento soportados

17. Tipo de Almacenamiento de los Operandos

17.1. Pila

17.1.1. operandos implicitos

17.1.1.1. los operandos estan en el tope de la Pila

17.2. Acumulador

17.2.1. un operando implicito y otro explicito

17.3. Registros de proposito General GPR

17.3.1. operandos explicitos

17.3.2. Mas usado en las Computadoras Modernas

17.3.3. 3 Tipos

17.3.3.1. Registro - Registro

17.3.3.1.1. todos los operandos estan en registros

17.3.3.1.2. codificación sencilla

17.3.3.2. Registro - Memoria

17.3.3.2.1. Al menos un operando debe estar en registro

17.3.3.3. Memoria - Memoria

17.3.3.3.1. todos los operando en memoria

17.3.3.3.2. Codigo mas compacto

17.3.3.3.3. cuello de botella

17.3.3.3.4. codificación compleja

17.3.4. Los Registros son mas Rapidos

17.3.4.1. se utilizan de forma mas eficiente por los compiladores

17.3.4.2. Tienen mas Throughput que la memoria

18. Interpretación de las Direcciones de Memoria

18.1. Las computadoras estan direccionadas por bytes (1 byte = 8 bits)

18.2. 3 formas de clasificar los bytes de una palabraa

18.2.1. Little Endian

18.2.1.1. Comienza por el mas pequeño

18.2.1.2. Coloca el byte menos significativo en la posicion mas significativa

18.2.1.3. la direccion del un dato es el byte menos significativo

18.2.2. Big Endian

18.2.2.1. Comienza por el mas grande

18.2.2.2. Coloca el byte menos significativo en la posicion menos significativa

18.2.2.3. la direccion de un dato es el byte mas significativo

18.2.3. Middle Endian

18.2.3.1. Arquitectura que trabaja con Little Endian y Big Endian

18.3. Valor Hexadecimal 0x4A3B2C1D

18.3.1. big endian

18.3.1.1. 4A, 3B, 2C, 1D

18.3.1.1.1. 74, 59, 44, 29

18.3.2. little endian

18.3.2.1. 1D, 2C, 3B, 4A

18.3.2.1.1. 29, 44, 59, 74

19. Operandos Inmediatos

19.1. Instruccion en la que uno de los operandos es una constante

19.2. MISP tiene un registro $zero, constante cero

19.3. s3 = s3 + 4

19.3.1. Instruccion MIPS

19.3.1.1. addi $s3, $s3, 4

20. Principio de Diseño 3

20.1. Haz que el caso mas comun sea Rapido

21. Representacion de las Instruciones del Computador

21.1. .

22. Modos de Direcionamiento

22.1. Un operando se encuentra en

22.1.1. la propia instruccion

22.1.1.1. Ahorro de espacio

22.1.1.1.1. instrucciones mas cortas

22.1.1.2. direccionamiento relativo

22.1.1.2.1. codigo reubicable

22.1.1.3. Estructura de datos

22.1.1.3.1. direccionamiento fácil, indices y punteros

22.1.2. en un registro

22.1.3. en memoria principal

22.2. Modos Básicos de Direccionamiento

22.2.1. Inmediato

22.2.1.1. operando dentro de la instrucción

22.2.1.1.1. .

22.2.2. Registro

22.2.2.1. se incluye el identificador del registro del operando

22.2.2.1.1. .

22.2.3. Directo

22.2.3.1. se incluye la dirección de memoria del operando

22.2.3.1.1. .

22.2.4. Indirecto

22.2.4.1. se indica el registro que almacena la dirección del operando

22.2.4.1.1. .

22.2.5. Indirecto con desplazamiento

22.2.5.1. se suma un operando inmediato al registro para obtener la dirección del operando

22.2.5.1.1. .

22.3. Modos en un repertorio Risc

22.3.1. direccionamiento inmediato

22.3.2. direccionamiento indirecto con desplazamiento

23. Tratamiento de las Instrucciones de Control de Flujo

23.1. Modifican el flujo de control de un programa

23.1.1. Saltos condicionales

23.1.1.1. Comparaciones con uno o mas registros

23.1.2. Saltos incondicionales

23.1.2.1. Destino de salto

23.1.2.1.1. Direccionamiento relativo al PC

23.1.2.1.2. Direccionamiento indirecto con Registro

24. Campos de una Instrucción MIPS

24.1. Formato de Instruccion

24.1.1. representación por medio de campos de números binarios

24.2. Lenguaje Maquina

24.2.1. representación binaria de las instrucciones

24.3. Representación Hexadecimal

24.4. .

24.4.1. op

24.4.1.1. opcode: operacion basica de la instruccion

24.4.2. rs

24.4.2.1. registro del primer operando

24.4.3. rt

24.4.3.1. registro del segundo operando

24.4.4. rd

24.4.4.1. registro del operando destino

24.4.5. shamt

24.4.5.1. desplazamiento

24.4.6. funct

24.4.6.1. función: seleccionar operación a realizar

25. Principio de Diseño 4

25.1. Un buen diseño demanda buenos compromisos

25.1.1. mantener todas las instrucciones con la misma longitud

26. Codificación del Repertorio de Instrucciones

26.1. Longitud variable

26.1.1. soporta cualquier numero de operandos instrucciones y modos de direccionamiento

26.1.2. Etiquetas indican el modo de direccionamiento

26.2. Longitud Fija

26.2.1. el opcode indica el modo de direccionamiento

26.2.2. los campos de instrucción son siempre los mismos

26.3. Hibrida

26.3.1. solo se permiten unos determinados formatos de instrucción

27. Tipos de Instrucciones

27.1. Tipo I (Inmediatas)

27.1.1. Load/Store

27.1.1.1. (rs) registro fuente

27.1.1.1.1. registro base par el acceso a memoria

27.1.1.2. (rt) registro destino

27.1.1.2.1. registro para los datos

27.1.1.3. inmediato

27.1.1.3.1. desplazamiento para el calculo de la dirección de acceso

27.1.2. Aritmetico-Logicas

27.1.2.1. direccionamiento inmediato

27.1.2.1.1. (rs) registro fuente

27.1.2.1.2. (rt) registro destino

27.1.2.1.3. inmediato

27.1.3. Saltos condicionales

27.1.3.1. (rs) registro fuente

27.1.3.1.1. registro de condicion

27.1.3.2. (rt) registro destino

27.1.3.2.1. registro de condición

27.1.3.3. inmediato

27.1.3.3.1. desplazamiento respecto del PC

27.1.4. Satos Incondicionales

27.1.4.1. (rs) registro fuente

27.1.4.1.1. registro dirección destino del salto

27.1.4.2. (rt) registro destino

27.1.4.2.1. no se utiliza

27.1.4.3. inmediato

27.1.4.3.1. 0

27.2. Tipo R (Registro)

27.2.1. Aritmetico-Logicas

27.2.1.1. (rs) registro fuente

27.2.1.1.1. operando 1

27.2.1.2. (rt) registro destino

27.2.1.2.1. operando 2

27.2.1.3. (rd) registro destino

27.2.1.3.1. operando destino

27.2.1.4. (sa) shift amount

27.2.1.4.1. desplazamiento de instrucciones shit

27.2.1.5. function

27.2.1.5.1. indica el tipo de operación a realizar

27.3. Tipo J (Jump)

27.3.1. Salto incondicional y retorno de procedimiento

27.3.1.1. usan direccionamiento con desplazamiento relativo al PC

27.3.1.1.1. opCode

27.3.1.1.2. instr_index