La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Tema 2: Lenguaje máquina

Presentaciones similares


Presentación del tema: "Tema 2: Lenguaje máquina"— Transcripción de la presentación:

1 Tema 2: Lenguaje máquina
La interfaz entre el hardware y el software

2 Índice Introducción. Formatos de Instrucción.
Modos de Direccionamiento. Ortogonalidad y Regularidad. Frecuencia de Utilización de Instrucciones. Filosofías RISC y CISC. Caso de estudio: ARM

3 Arquitectura y Organización de computadores
Arquitectura de un sistema Atributos visibles para el usuario (programador) Instrucciones, formatos, modos de direccionamiento, ... Ej: ¿Hay una instrucción de multiplicar? Organización de un sistema ¿Cómo se implementan las características? Señales de control, interfaces, tecnología de memoria, ... Ej: ¿Hay un multiplicador, o se hace por sumas repetidas?

4 Arquitectura vs. Organización
Toda la familia Intel x86 comparte la misma arquitectura básica. La familia de IBM System/370 comparte la misma arquitectura básica. Esto proporciona compatibilidad de código (al menos hacia atrás). La organización varía en las diferentes versiones dentro de una misma aquitectura.

5 Arquitectura del repertorio de instrucciones (ISA)
Software Hardware Lenguaje Alto Nivel L. Ensamblador Compilador L. Máquina Programa ensamblador

6 Lenguaje máquina Lenguaje restringido y de bajo nivel que entiende el computador. Expone las capacidades básicas del computador. Características más importantes de su arquitectura. Depende del computador, lo que crea incompatibilidades entre distintos computadores.

7 Instrucciones máquina
Se almacenan en la memoria de programa. Realizan una única y sencilla operación. Utilizan un número fijo de operandos, representados de una determinada forma. Codificación sistemática. ⇒ Decodificación sencilla. Son autocontenidas e independientes.

8 Ejecución de instrucciones
Unidad de control Registro de Instrucción Ruta de datos

9 Formatos de Instrucción (1)
Representación de la instrucción. Significado de cada uno de los bits. Información que debe contener: Operación a realizar. Dirección de los operandos y de los resultados. Dirección de la siguiente instrucción. Modo de representación de los operandos.

10 Formatos de Instrucción (2)
Las instrucciones se dividen en campos de una longitud determinada. Tipos básicos de campos: Código de operación (COP). Campo/s de dirección (CD). COP CD2 CD1 CD Instrucción de 1 operando Instrucción de 2 operandos Instrucción sin operandos

11 Características del Formato de Instrucción
Pocos formatos y sistemáticos. Instrucciones cortas mejor que largas: menos memoria y mayor rapidez de ejecución. No se suele especificar la representación. No se suele poner la dirección de la siguiente instrucción. El resultado suele coincidir con un operando. El tamaño de los formatos suelen encajar con el tamaño de palabra de la máquina.

12 Campo de Código de Operación
Función: codificar la función que debe realizar la instrucción. Codificación en bloque Instrucciones de tamaño variable. Tamaño COP fijo. Con n bits se pueden obtener 2n COP distintos. Ej: Intel, Motorola. Codificación por extensión Instrucciones de tamaño fijo. Tamaño COP variable. Extensión de COP para instrucciones. con menor número de operandos. Ej: PowerPC.

13 Codificación por extensión (1)
Ejemplo: Un computador tiene las siguientes características: Instrucciones máquina de 16 bits. 16 direcciones posibles. Diseñar mediante codificación por extensión el siguiente juego de instrucciones: 15 instrucciones de 3 direcciones. 14 instrucciones de 2 direcciones. 31 instrucciones de 1 dirección. 16 instrucciones sin dirección.

14 Codificación por extensión (2)
COP CD1 CD2 CD3 1 CD Sobra 1 combinación Por ejemplo 1111 Sobran 2 combinaciones Por ejemplo 111X

15 Codificación por extensión (3)
COP CD1 CD2 CD3 1 CD 15 Instrucciones con 3 dir. 31 Instrucciones con 1 dir. 16 Instrucciones sin dir. 14 Instrucciones con 2 dir. Mediante codificación por extensión se consigue 76 instrucciones. Mediante codificación en bloque fijando el COP a 4 bits según el caso más restrictivo (instrucciones con 3 direcciones) se hubiera obtenido 16 instrucciones.

16 Modelo de ejecución Especifica los dispositivos en los que están almacenados los operandos. Muchos computadores emplean varios modelos de ejecución.

17 Modos de direccionamiento
Implícito. Inmediato. Directo: Absoluto: A registro / a memoria. Relativo: Al PC / mediante reg. base / mediante reg. índice. Indirecto.

18 Direccionamiento Implícito
No existe campo de dirección (CD). La dirección del operando se encuentra implícita en el propio código de operación. Ventaja: no ocupa espacio en la instrucción. Inconveniente: limita la aplicación de la operación. Ejemplo: Instrucciones del modelo de pila. Introducir y sacar datos de la pila.

19 Direccionamiento Inmediato
El operando está contenido dentro de la propia instrucción (literal). Ventaja: no requiere accesos a memoria ni a registros. Inconveniente: rango limitado por ancho del campo. Memoria principal ALU CP COP CD=1000 A

20 Direccionamiento Directo Absoluto (1)
La instrucción contiene la dirección del operando.

21 Direccionamiento Directo Absoluto (2)
Ejemplo (i8085): Instrucción LDA 1000, carga el acumulador con el contenido de la posición 1000 de la memoria. A ALU Memoria principal COP CD=1000 Operando 1000 CP El caso de direccionamiento directo absoluto a registro presenta como ventajas que el acceso a un registro de la CPU es más rápido que a memoria y que el CD ocupa menos espacio al haber pocos registros. Como inconveniente está el reducido número de registros que suele haber en la CPU.

22 Directo Relativo (1) La instrucción no contiene la dirección, sino un desplazamiento D sobre una dirección marcada por un puntero. Memoria principal COP CD Rango direccionable Operando P + d bits Puntero P - 2d-1 P + 2d-1 - 1 CP Ventaja: Necesita menos bits que en Absoluto Inconveniente: Necesita realizar una suma

23 Directo Relativo (2) La mayoría de los computadores permiten desplazamiento positivos y negativos. Permite generar código reubicable, recorrer estructuras de datos, esquemas de protección de memoria, ... Según el puntero, existen diversas variantes: Contador de programa (PC). Registro base. Indexado. Pila.

24 Directo Relativo (3) + COP CD=16 Operando 200 RB 216 CP 103 119 102
Memoria principal COP CD=16 Operando 200 + RB 216 CP 103 119 102 Relativo a Registro Base Relativo al Contador de Programa

25 Directo Relativo (4) Directo indexado: Se utiliza un registro índice y un desplazamiento, que se especifica mediante registro. Memoria principal COP RB Operando 200 + Ri 216 CP 16

26 Otros modos relativos Relativo/indexado con auto-incremento: El contenido del registro base o índice puede modificarse para ir recorriendo los elementos de un vector. Preincremento, predecremento. (Primero se incrementa / decrementa el RB y después se resuelve la dirección) Postincremento, postdecremento. (Primero se resuelve la dirección y después se incrementa / decrementa el RB) Memoria principal COP CD=16 Operando 200 + RB ALU +1 217 CP

27 Direccionamiento Indirecto
La instrucción indica la dirección de memoria o el registro que contiene la dirección del operando. Memoria principal COP CD=100 Dir. Operando=200 Operando 100 200 CP

28 Resumen de los modos de direccionamiento más comunes

29 Regularidad Regularidad: El juego de instrucciones no presenta casos especiales. Es más fácil programar arquitecturas regulares. Permite diseñar compiladores más sencillos y eficaces.

30 Ortogonalidad Ortogonalidad: Cada operación debe poder hacerse con cualquier tipo de operandos y con cualquier tipo de direccionamiento. Gran número de instrucciones con un pequeño número de nemónicos. La ortogonalidad proporciona simplicidad y claridad al programador.

31 Tipos de instrucciones
Aritméticas / lógicas / desplazamiento. Transferencia de datos. Comparación / condicional. Saltos, llamadas a subrutinas. De entrada / salida.

32 Frecuencia de utilización de las instrucciones (1)
Para optimizar diseño se han realizado estudios sobre la utilización de las instrucciones en computadores comerciales. Analizan la frecuencia de utilización de las instrucciones y las secuencias más utilizadas. Dos tipos de estudios: Estáticos (lectura del listado de los programas). Dinámicos (en tiempo de ejecución).

33 Frecuencia de utilización de las instrucciones (2)

34 Conclusiones de los estudios
50% de las instrucciones se dedican a mover información dentro del computador. Las bifurcaciones constituyen el segundo grupo de instrucciones más empleado. El 50% de las instrucciones de los computadores se utilizan menos de un 2%, pero son importantes para aplicaciones específicas y no se pueden eliminar.

35 Filosofías CISC y RISC (1)
Históricamente, CISC (Complex Instruction Set Computing): Al principio las memorias eran lentas y costosa. Había que reducir el tamaño de los programas. Muchas instrucciones para tareas complejas. ⇒ más HW, ralentiza el ordenador. Actualmente, RISC (Reduced Instruction Set Computing): Concepto introducido por Hennesy y Patterson en los años 80. Menos instrucciones y modos de direccionamiento. Formato fijo para las instrucciones, ejecución regular. Unidad de control simple. Aumenta las prestaciones y el rendimiento. Reduce el coste.

36 Filosofías CISC y RISC (2)
Tiempo de ejecución de un programa (Tp): I: nº de instrucciones. C: nº de ciclos. Tc: duración de un ciclo. CISC: Minimiza I, incrementando C y Tc. RISC: Minimiza C y Tc, incrementando I. Tp = I x C x Tc

37 Caso de estudio: ARM ARM (Advanced RISC Machines) es una familia de procesadores RISC diseñada por la empresa Acorn Computers Ltd desde inicios de los años 80. La Nintendo DS incorpora 2 microprocesadores ARM en su diseño. Características principales: CPU con 37 registros de 32 bits. Instrucciones de 32 bits de longitud. La mayoría de instrucciones se ejecuta en un solo ciclo. Los 4 primeros bits de cada instrucción forman el campo de condición que permite su ejecución condicional. Una instrucción no ejecutada consume sólo un ciclo. Arquitectura (Load/Store). Los datos deben ser guardados en los registros de la CPU antes de operar con ellos. Modelo de ejecución muy rápido.

38 ARM: tipos de instrucciones

39 ARM: Ejemplos de instrucciones (1)
Direccionamiento Directo Absoluto a Registro.

40 ARM: Ejemplos de instrucciones (2)
Direccionamiento Directo Absoluto a Registro e Inmediato.

41 ARM: Repertorio de instrucciones

42 Conceptos importantes
Arquitectura y organización de un computador. Lenguaje máquina. Formatos de instrucción. Modos de direccionamiento. Tipos de instrucción y su frecuencia de utilización. Filosofía RISC vs. CISC como búsqueda del mejor compromiso rendimiento/coste.


Descargar ppt "Tema 2: Lenguaje máquina"

Presentaciones similares


Anuncios Google