10.07.2015 Views

Tema 2: Lenguaje máquina

Tema 2: Lenguaje máquina

Tema 2: Lenguaje máquina

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<strong>Tema</strong> 2: <strong>Lenguaje</strong> máquinaLa interfaz entre el hardware y el software1


Í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: ARM2


Arquitectura y Organizaciónde computadoresArquitectura 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?3


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


Arquitectura del repertorio deinstrucciones (ISA)<strong>Lenguaje</strong> Alto NivelL. EnsambladorSoftwareArquitectura delRepertorio de Instrucciones(ISA)HardwareCompiladorL. MáquinaProcesadorUnidadde ControlUnidadAritmético-LógicaProgramaensambladorMemoriaSalidaEntradaComputador5


<strong>Lenguaje</strong> máquina• <strong>Lenguaje</strong> restringido y de bajo nivel que entiende elcomputador.• Expone las capacidades básicas del computador.• Características más importantes de su arquitectura.• Depende del computador, lo que crea incompatibilidadesentre distintos computadores.6


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 deuna determinada forma.• Codificación sistemática. ⇒ Decodificación sencilla.• Son autocontenidas e independientes.7


Ejecución de instrucciones: 1000100086008113831203130430A4007F30A200F2: 100020002208860000000608A5002202031D1F28E2: 100030000314A20CA40B10288030A2000800643026: 10004000A600A7016400A70B2328A60B21282208DD: 100050008600000006082502031D10282508A500BB: 10006000A4013A20250203193728A40A31282408BC: 10007000A2000800240882077D34EE34ED34EB340E: 10008000DE34DD34DB34BE34BD34BB347E347B340B: 100090007734B734D734E7340520A21B4C28A300AB: 1000A0000520A21F50282308A2000800831603136EMemoria de programaUnidadAritmético-LógicaAcumuladorRuta dedatosRegistro de InstrucciónUnidad de control8


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


Formatos de Instrucción (2)• Las instrucciones se dividen en campos de una longituddeterminada.• Tipos básicos de campos:‣ Código de operación (COP).‣ Campo/s de dirección (CD).COPCD1CD2Instrucción de 2 operandosCOPCDInstrucción de 1 operandoCOPInstrucción sin operandos10


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


Campo de Código de OperaciónFunció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 2nCOP distintos.• Ej: Intel, Motorola.Codificación por extensión• Instrucciones de tamaño fijo.• Tamaño COP variable.• Extensión de COP parainstrucciones. con menor número deoperandos.• Ej: PowerPC.12


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 juegode instrucciones:• 15 instrucciones de 3 direcciones.• 14 instrucciones de 2 direcciones.• 31 instrucciones de 1 dirección.• 16 instrucciones sin dirección.13


Codificación por extensión (2)COP CD1 CD2 CD3x x x xCOP CD1 CD21 1 1 1 x x x xCOP1 1 1 1 1 1 1 x x x x xCDCOP1 1 1 1 1 1 1 1 1 1 1 1 x x x xSobra 1 combinaciónPor ejemplo 1111Sobran 2 combinacionesPor ejemplo 111XSobra 1 combinaciónPor ejemplo 111114


0 0 0 0Codificación por extensión (3)15 Instrucciones con 3 dir. 31 Instrucciones con 1 dir.COP CD1 CD2 CD3COPCD1 1 1 1 1 1 1 0 0 0 0 0……1 1 1 014 Instrucciones con 2 dir.COP CD1 CD21 1 1 1 0 0 0 0…1 1 1 1 1 1 0 11 1 1 1 1 1 1 1 1 1 1 016 Instrucciones sin dir.COP1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0…1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1• 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ásrestrictivo (instrucciones con 3 direcciones) se hubiera obtenido 16 instrucciones.15


Modelo de ejecución• Especifica los dispositivos en los que están almacenados losoperandos. Muchos computadores emplean varios modelos deejecución.PilaModelo Operandos EjemplosOperandos yresultado en la pilaPUSH, POPRegistro-Registro Operandos enregistros. Se indicanúmero de registroRegistro-Memoria MixtoMemoria-Memoria Operandos enmemoriaaddi $1,$3,$5MOV AX,1000MOV 800,100016


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


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


Direccionamiento Inmediato• El operando está contenido dentro de la propiainstrucción (literal).• Ventaja: no requiere accesos a memoria ni a registros.• Inconveniente: rango limitado por ancho del campo.CPCOPCD=1000ALUMemoria principalA19


DireccionamientoDirecto Absoluto (1)• La instrucción contiene la dirección del operando.A registroA memoriaA página baseCampo de operandoRegistro donde se almacena eloperandoDirección donde se almacena eloperandoDirección donde se almacena eloperando dentro de un rangolimitado (página)20


DireccionamientoDirecto Absoluto (2)Ejemplo (i8085): Instrucción LDA 1000, carga elacumulador con el contenido de la posición 1000 de lamemoria.CPCOPCD=10001000OperandoMemoria principalALUA• El caso de direccionamiento directo absoluto a registro presenta como ventajasque el acceso a un registro de la CPU es más rápido que a memoria y que el CDocupa menos espacio al haber pocos registros. Como inconveniente está elreducido número de registros que suele haber en la CPU.21


Directo Relativo (1)• La instrucción no contiene la dirección, sino un desplazamiento Dsobre una dirección marcada por un puntero.o Ventaja: Necesita menosbits que en Absolutoo Inconveniente: Necesitarealizar una sumaCPCOP CDd bitsOperandoP - 2 d-1+PunteroPRango direccionableP + 2 d-1 - 1Memoria principal22


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


Directo Relativo (3)102103COPCD=16+CP103Relativo aRegistro Base119OperandoMemoria principalRelativo alContador deProgramaCPCOPRBCD=16+RB200216OperandoMemoria principal24


Directo Relativo (4)• Directo indexado: Se utiliza un registro índice y undesplazamiento, que se especifica mediante registro.CPCOPRiRBRB200216OperandoMemoria principal+Ri1625


Otros modos relativos• Relativo/indexado con auto-incremento: El contenido delregistro base o índice puede modificarse para ir recorriendolos elementos de un vector.o Preincremento, predecremento.o (Primero se incrementa / decrementa el RB y después se resuelve la dirección)o Postincremento, postdecremento.o (Primero se resuelve la dirección y después se incrementa / decrementa el RB)CPCOPRBCD=16+RB200+1217OperandoMemoria principalALU26


Direccionamiento Indirecto• La instrucción indica la dirección de memoria o el registroque contiene la dirección del operando.CPCOPCD=100100Dir. Operando=200200OperandoMemoria principal27


Resumen de los modos dedireccionamiento más comunesOperandoInmediato CDDirecto a registro R(CD)Directo a memoria M(CD)Directo a página M(PAG. & CD)Relativo al CP M(R(CP) + CD)Relativo a registro base M(R(RB) + CD)Indexado M(R(RB) + R(Ri))Indirecto M(M(CD))28


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


OrtogonalidadOrtogonalidad: Cada operación debe poder hacerse concualquier tipo de operandos y con cualquier tipo dedireccionamiento.• Gran número de instrucciones con un pequeño númerode nemónicos.• La ortogonalidad proporciona simplicidad y claridad alprogramador.30


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


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


Frecuencia de utilización de lasinstrucciones (2)33


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


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


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.Tp = I x C x TcCISC: Minimiza I, incrementando C y Tc.RISC: Minimiza C y Tc, incrementando I.36


Caso de estudio: ARM• ARM (Advanced RISC Machines) es una familia de procesadores RISC diseñadapor 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 quepermite su ejecución condicional. Una instrucción no ejecutada consumesólo un ciclo.• Arquitectura (Load/Store). Los datos deben ser guardados en los registrosde la CPU antes de operar con ellos. Modelo de ejecución muy rápido.37


ARM: tipos de instrucciones38


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


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


ARM: Repertorio de instrucciones41


Conceptos importantes• Arquitectura y organización de un computador.• <strong>Lenguaje</strong> 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 mejorcompromiso rendimiento/coste.42

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!