1 tema 2: lenguaje máquina la interfaz entre el hardware y el software
Post on 31-Jan-2016
228 Views
Preview:
TRANSCRIPT
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)
Programaensamblador
Arquitectura del Repertorio de Instrucciones
(ISA)
Arquitectura del Repertorio de Instrucciones
(ISA)
Software
Hardware
Procesador
Unidad de Control
UnidadAritmético-
Lógica
Memoria
Entrada
Salida
Computador
Lenguaje Alto NivelLenguaje Alto Nivel L. EnsambladorL. Ensamblador
Compilador
L. MáquinaL. Máquina
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
:1000100086008113831203130430A4007F30A200F2:100020002208860000000608A5002202031D1F28E2:100030000314A20CA40B10288030A2000800643026:10004000A600A7016400A70B2328A60B21282208DD:100050008600000006082502031D10282508A500BB:10006000A4013A20250203193728A40A31282408BC:10007000A2000800240882077D34EE34ED34EB340E:10008000DE34DD34DB34BE34BD34BB347E347B340B:100090007734B734D734E7340520A21B4C28A300AB:1000A0000520A21F50282308A2000800831603136E
Memoria de programa
Unidad de controlUnidad de control
Registro de Instrucción
Unidad
Aritmético-Lógica
Acumulador
Ruta de datos
9
Formatos de Instrucción (1)
• Representación de la instrucción.
o Significado de cada uno de los bits.
• Información que debe contener:
oOperación a realizar.
oDirección de los operandos y de los resultados.
oDirección de la siguiente instrucción.
oModo de representación de los operandos.
10
Formatos de Instrucción (2)
COP CD2CD1
COP CD
COP
Instrucción de 1 operando
Instrucción de 2 operandos
Instrucción sin operandos
• 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).
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.oNo se suele especificar la representación.oNo se suele poner la dirección de la siguiente
instrucción.o 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
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.
Función: codificar la función que debe realizar la instrucción.
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)
xx xx xx xxCOP CD1 CD2 CD3
11 11 11 11 xx xx xx xxCOP CD1 CD2
11 11 11 11 11 11 11 xx xx xx xx xxCOP CD
11 11 11 11 11 11 11 11 11 11 11 11 xx xx xx xxCOP
Sobra 1 combinaciónPor ejemplo 1111
Sobran 2 combinacionesPor ejemplo 111X
Sobra 1 combinaciónPor ejemplo 1111
15
Codificación por extensión (3)
00 00 00 00COP CD1 CD2 CD3
11 11 11 11 00 00 00 00COP CD1 CD2
11 11 11 11 11 11 11 00 00 00 00 00COP CD
11 11 11 11 11 11 11 11 11 11 11 11 00 00 00 00COP
15 Instrucciones con 3 dir. 31 Instrucciones con 1 dir.
16 Instrucciones sin dir.14 Instrucciones con 2 dir.
11 11 11 00
…
11 11 11 11 11 11 00 11
… …
…
11 11 11 11 11 11 11 11 11 11 11 00
11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11
• 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
Modelo Operandos EjemplosPila Operandos y
resultado en la pilaPUSH, POP
Registro-Registro Operandos en registros. Se indica número de registro
addi $1,$3,$5
Registro-Memoria Mixto MOV AX,1000Memoria-Memoria Operandos en
memoriaMOV 800,1000
• 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:oAbsoluto:
A registro / a memoria.o 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.
oVentaja: 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 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.
A
ALU
Memoria principal
COP CD=1000CP
20
Direccionamiento Directo Absoluto (1)
Campo de operandoA registro
A memoria
A página base
Registro donde se almacena el operando
Dirección donde se almacena el operando
Dirección donde se almacena el operando dentro de un rango limitado (página)
• La instrucción contiene la dirección del operando.
21
DireccionamientoDirecto 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
Operando1000
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)
Memoria principal
COP CD
Rango direccionable
Operando
P+d bits
Puntero
P - 2d-1
P + 2d-1 - 1
CP
• La instrucción no contiene la dirección, sino un desplazamiento D sobre una dirección marcada por un puntero.
o Ventaja: Necesita menos bits que en Absolutoo Inconveniente: Necesita realizar una suma
23
Directo Relativo (2)
• La mayoría de los computadores permiten desplazamiento positivos y negativos.
o Permite generar código reubicable, recorrer estructuras de datos, esquemas de protección de memoria, ...
• Según el puntero, existen diversas variantes:o Contador de programa (PC).o Registro base.o Indexado.o Pila.
24
Directo Relativo (3)
Memoria principal
COP CD=16
Operando
200+RBRB
216
CP
Memoria principal
COP CD=16
Operando
103+CP
119
102
103
Relativo a Registro Base
Relativo al Contador de Programa
25
Directo Relativo (4)
Memoria principal
COP RB
Operando
200
+
RiRB
216
CP
16Ri
• Directo indexado: Se utiliza un registro índice y un desplazamiento, que se especifica mediante registro.
26
Otros modos relativos
Memoria principal
COP CD=16
Operando
200+RBRB
ALU
+1
217
CP
• Relativo/indexado con auto-incremento: El contenido del registro base o índice puede modificarse para ir recorriendo los 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)
27
Direccionamiento Indirecto
Memoria principal
COP CD=100
Dir. Operando=200
Operando
100
200
CP
• La instrucción indica la dirección de memoria o el registro que contiene la dirección del operando.
28
Resumen de los modos de direccionamiento más comunes
OperandoInmediato CD
Directo 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))
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.
o Analizan la frecuencia de utilización de las
instrucciones 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).
33
Frecuencia de utilización de las instrucciones (2)
Otras 2%Comparación y despl. 15%
Aritmética entera 7%Bifurcación 30%
Aritmética real 3%
Transferencia 43%
Estudio de Fairclough (estático)
Lógicas 4%E/S 1%
Salto 29%De bit 2%Comparación 6%
Desplazamiento 3%
Transferencia 45%
Estudio de Flynn (dinámico)
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):o Al principio las memorias eran lentas y costosa. Había que
reducir 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.
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.
top related