Tema 2: Lenguaje máquina

Slides:



Advertisements
Presentaciones similares
Org. y Arquitectura del Computador
Advertisements

Arquitectura RISC & CISC y DSP
El modelo de Von Neumann
DISEÑO DE TRANSFERENCIA ENTRE REGISTROS
UNIVERSIDAD DEL VALLE DE MEXICO CAMPUS CHAPULTEPEC
III - Gestión de memoria
I S A INSTRUCTION SET ARCHITECTURE
ARQUITECTURA DE COMPUTADORES - VON NEUMANN MODEL
TEMA 2 Arquitectura de un Ordenador
Fermín Sánchez Carracedo Universitat Politècnica de Catalunya
CICLO DE EJECUCION DE UNA INSTRUCCION
Sistemas Operativos Funcionamiento general de una computadora bajo el control de un programa.
ARQUITECTURA INTEL FORMATOS DE INSTRUCCIÓN
Andrés Núñez Herrero Enrique España Blanco Rodrigo Cembrero Carazo
VAX Diego Esteban Moreno Germán Aguado Llorente Félix Huete García.
Tema II Unidad de memoria. 2 Unidad de memoria 2.1 Definiciones y conceptos básicos Localización Capacidad Unidad de transferencia
Introducción a la programación
Circuitos Digitales II Elementos sobre la Arquitectura del Conjunto de Instrucciones Semana No.2 Semestre Prof. Gustavo Patiño
Arquitectura de Conjunto de Instrucciones (ISA)
Composición Interna de un Procesador
Microcomputadores Prof : Tatiana Marín R.. Sistema basado en microprocesador de 8 bits.
Arquitectura del Computador
ISA (Instruction Set Architecture)
Tema 10: Gestión de Memoria
ARQUITECTURA DE LOS MICROPROCESADORES DE 8 BITS
Introducción a la Ingeniería en Sistemas
EL MICROPROCESADOR.
Instrucciones: FORMATO DE INSTRUCCIONES
Organización del Computador I Verano MIPS (1 de 2) Basado en el capítulo 3 del libro de Patterson y Hennessy Verano 2004 Profesora Borensztejn.
Tecnología de la información Unidad: 3 El software Profesor: Fernando J. Martini.
Secciones y Segmentos STARTUP
Arquitectura de Computadoras
ARQUITECTURA DE COMPUTADORES Semestre A-2009 Clase 13.
Maquinas Digitales  La idea principal es dividir el procesamiento de cada una de las instrucciones en una serie de pasos totalmente independientes.
Tema 10.3: Asignación de Espacio No Contiguo. Tema 10.3: 2 Silberschatz, Galvin and Gagne ©2005 Fundamentos de los Computadores (ITT, Sist. Electr.),
Overview Sistemas Computacionales
Asignación de Espacio No Contiguo
Conceptos Arquitectónicos del computador
ICC243 Sistemas Operativos P03: Introducción: Conceptos Prof. Jonathan Makuc.
Capítulo 7 Gestión de memoria.
Funcionamiento de la CPU
Microcomputadores Prof: Tatiana Marín R.. Lenguaje máquina = lenguaje binario InstrucciónLenguaje máquina (binario)OP ( hex)Nemónico Restar F0SUB.
Diseño de la Unidad de Control Multiciclo: Microprogramación
Organización del Computador
“Organización y Arquitectura de Computadores” William Stallings
UNIDAD CENTRAL DE PROCESO
Arquitectura RISC y CISC 1er semestre 2009 Autores: Carolina Torres,Matías Monsalve Profesor de Cátedra: Mg. Jorge Urbina F. Profesor de Laboratorio: Lic.
Sánchez Manjarrez Silvana Ing. Daniel Domínguez C. México, D.F. a 13 de septiembre del 2006 Arquitectura de Computadoras Arquitecturas CISC Y RISC Campus.
Metodología de la programación
Capítulo 4 CPU y la memoria.
Informática Clase Arquitectura de la Computadora.
Unidad 2 – Gestión de Procesos
ARQUICTECTURA DE SERVIDORES
introducción al Lenguaje Ensamblador
Modos de direccionamiento
Maquinas Digitales UNIDADES DE CONTROL.
Son los atributos de un sistema que son visibles para un programador, es decir aquellos atributos que impactan directamente en la ejecución lógica de un.
Principio unidad 1.
* UNIVERSIDAD TECNOLOGICA DE PUEBLA TECNOLOGIAS DE LA INFORMACION Y COM. AREA REDES Y TELECOMUNIC IONES ADMINISTRACION DE SERVIDORES «ARQUITECTURA DE COMPUTADORAS»
Unidad Central de Proceso
Introducción a los TADs
ARQUITECTURAS DE LOS SERVIDORES El computador tiene 2 aspectos para entender su funcionamiento al nivel de programación: Almacenamiento Procesamiento Para.
INTEGRANTES: JOSE ESTEVEZ _HUGO ANDRADE CURSO: 5TO “B”
CONJUNTO DE INSTRUCCIONES Maquinas Digitales
 PRESENTADO POR : ANDRES MAYORGA DANIELA PAEZ VEGA.
El microprocesador y su arquitectura
Lenguaje ensamblador Conceptos introductorios. Formatos de Instrucción. Modos de Direccionamiento. Conjunto de instrucciones básico. Introducción al Lenguaje.
CAPITULO V Arquitectura de Von Neumann
Estructura y funcionamiento de un sistema de cómputo
Transcripción de la presentación:

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

Í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

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?

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.

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

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.

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.

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

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.

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

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.

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.

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.

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

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.

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

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

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.

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

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

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.

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

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.

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

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

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

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

Resumen de los modos de direccionamiento más comunes

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.

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.

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

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

Frecuencia de utilización de las instrucciones (2)

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.

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.

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

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.

ARM: tipos de instrucciones

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

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

ARM: Repertorio de instrucciones

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.