You are on page 1of 42

Tema 2: Lenguaje mquina

La interfaz entre el hardware y el software

1
ndice
Introduccin.
Formatos de Instruccin.
Modos de Direccionamiento.
Ortogonalidad y Regularidad.
Frecuencia de Utilizacin de Instrucciones.
Filosofas RISC y CISC.
Caso de estudio: ARM
2
Arquitectura y Organizacin
de computadores
Arquitectura de un sistema
Atributos visibles para el usuario (programador)
Instrucciones, formatos, modos de direccionamiento, ...
Ej: Hay una instruccin de multiplicar?

Organizacin de un sistema
Cmo se implementan las caractersticas?
Seales de control, interfaces, tecnologa de memoria, ...
Ej: Hay un multiplicador, o se hace por sumas repetidas?

3
Arquitectura vs. Organizacin

Toda la familia Intel x86 comparte la misma arquitectura


bsica.
La familia de IBM System/370 comparte la misma
arquitectura bsica.

Esto proporciona compatibilidad de cdigo (al menos


hacia atrs).
La organizacin vara en las diferentes versiones dentro
de una misma aquitectura.

4
Arquitectura del repertorio de
instrucciones (ISA)

Lenguaje Alto Nivel L. Ensamblador

Compilador
Programa
Software ensamblador
Arquitectura del L. Mquina
Repertorio de Instrucciones
(ISA) Procesador
Salida
Unidad
de Control Memoria
Hardware Unidad
Aritmtico- Entrada
Lgica

Computador

5
Lenguaje mquina

Lenguaje restringido y de bajo nivel que entiende el


computador.
Expone las capacidades bsicas del computador.
Caractersticas ms importantes de su arquitectura.
Depende del computador, lo que crea incompatibilidades
entre distintos computadores.

6
Instrucciones mquina

Se almacenan en la memoria de programa.


Realizan una nica y sencilla operacin.
Utilizan un nmero fijo de operandos, representados de
una determinada forma.
Codificacin sistemtica. Decodificacin sencilla.
Son autocontenidas e independientes.

7
Ejecucin de instrucciones

: 1000100086008113831203130430A4007F30A200F2
: 100020002208860000000608A5002202031D1F28E2 Unidad
: 100030000314A20CA40B10288030A2000800643026 Aritmtico-Lgica

Memoria de programa
: 10004000A600A7016400A70B2328A60B21282208DD
: 100050008600000006082502031D10282508A500BB
Acumulador
: 10006000A4013A20250203193728A40A31282408BC
: 10007000A2000800240882077D34EE34ED34EB340E
: 10008000DE34DD34DB34BE34BD34BB347E347B340B
: 100090007734B734D734E7340520A21B4C28A300AB
: 1000A0000520A21F50282308A2000800831603136E

Ruta de
datos
Registro de Instruccin
Unidad de control

8
Formatos de Instruccin (1)

Representacin de la instruccin.
o Significado de cada uno de los bits.
Informacin que debe contener:
o Operacin a realizar.
o Direccin de los operandos y de los resultados.
o Direccin de la siguiente instruccin.
o Modo de representacin de los operandos.

9
Formatos de Instruccin (2)
Las instrucciones se dividen en campos de una longitud
determinada.
Tipos bsicos de campos:
Cdigo de operacin (COP).
Campo/s de direccin (CD).
COP CD1 CD2 Instruccin de 2 operandos

COP CD Instruccin de 1 operando

COP Instruccin sin operandos

10
Caractersticas del
Formato de Instruccin
Pocos formatos y sistemticos.
Instrucciones cortas mejor que largas: menos memoria
y mayor rapidez de ejecucin.
o No se suele especificar la representacin.
o No se suele poner la direccin de la siguiente
instruccin.
o El resultado suele coincidir con un operando.
El tamao de los formatos suelen encajar con el tamao
de palabra de la mquina.
11
Campo de Cdigo de Operacin

Funcin: codificar la funcin que debe realizar la instruccin.

Codificacin en bloque Codificacin por extensin


Instrucciones de tamao variable. Instrucciones de tamao fijo.
Tamao COP fijo. Tamao COP variable.
Con n bits se pueden obtener 2n Extensin de COP para
COP distintos. instrucciones. con menor nmero de
Ej: Intel, Motorola. operandos.
Ej: PowerPC.

12
Codificacin por extensin (1)

Ejemplo: Un computador tiene las siguientes caractersticas:


Instrucciones mquina de 16 bits.
16 direcciones posibles.
Disear mediante codificacin por extensin el siguiente juego
de instrucciones:
15 instrucciones de 3 direcciones.
14 instrucciones de 2 direcciones.
31 instrucciones de 1 direccin.
16 instrucciones sin direccin.

13
Codificacin por extensin (2)

COP CD1 CD2 CD3


xxxx Sobra 1 combinacin
Por ejemplo 1111
COP CD1 CD2
1111xxxx Sobran 2 combinaciones
COP CD Por ejemplo 111X
1111111xxxxx
Sobra 1 combinacin
COP Por ejemplo 1111
111111111111xxxx

14
Codificacin por extensin (3)
15 Instrucciones con 3 dir. 31 Instrucciones con 1 dir.
COP CD1 CD2 CD3 COP CD
0000 111111100000

1110 111111111110
14 Instrucciones con 2 dir. 16 Instrucciones sin dir.
COP CD1 CD2 COP
11110000 1111111111110000

11111101 1111111111111111

Mediante codificacin por extensin se consigue 76 instrucciones.


Mediante codificacin en bloque fijando el COP a 4 bits segn el caso ms
restrictivo (instrucciones con 3 direcciones) se hubiera obtenido 16 instrucciones.

15
Modelo de ejecucin
Especifica los dispositivos en los que estn almacenados los
operandos. Muchos computadores emplean varios modelos de
ejecucin.
Modelo Operandos Ejemplos
Pila Operandos y
PUSH, POP
resultado en la pila
Registro-Registro Operandos en
registros. Se indica addi $1,$3,$5
nmero de registro
Registro-Memoria Mixto MOV AX,1000
Memoria-Memoria Operandos en
MOV 800,1000
memoria

16
Modos de direccionamiento

Implcito.
Inmediato.
Directo:
o Absoluto:
A registro / a memoria.
o Relativo:
Al PC / mediante reg. base / mediante reg. ndice.
Indirecto.

17
Direccionamiento Implcito

No existe campo de direccin (CD).


La direccin del operando se encuentra implcita en el
propio cdigo de operacin.
o Ventaja: no ocupa espacio en la instruccin.
o Inconveniente: limita la aplicacin de la operacin.
Ejemplo:
Instrucciones del modelo de pila. Introducir y sacar
datos de la pila.
18
Direccionamiento Inmediato

El operando est contenido dentro de la propia


instruccin (literal).
Ventaja: no requiere accesos a memoria ni a registros.
Inconveniente: rango limitado por ancho del campo.

CP COP CD=1000
ALU

Memoria principal
A

19
Direccionamiento
Directo Absoluto (1)
La instruccin contiene la direccin del operando.

Campo de operando
A registro Registro donde se almacena el
operando

A memoria Direccin donde se almacena el


operando

A pgina base Direccin donde se almacena el


operando dentro de un rango
limitado (pgina)

20
Direccionamiento
Directo Absoluto (2)
Ejemplo (i8085): Instruccin LDA 1000, carga el
acumulador con el contenido de la posicin 1000 de la
memoria.
CP COP CD=1000

1000 Operando ALU


Memoria principal

El caso de direccionamiento directo absoluto a registro presenta como ventajas


que el acceso a un registro de la CPU es ms rpido que a memoria y que el CD
ocupa menos espacio al haber pocos registros. Como inconveniente est el
reducido nmero de registros que suele haber en la CPU.
21
Directo Relativo (1)

La instruccin no contiene la direccin, sino un desplazamiento D


sobre una direccin marcada por un puntero.
Puntero
CP COP CD + P
d bits
o Ventaja: Necesita menos
bits que en Absoluto P - 2d-1

o Inconveniente: Necesita Operando


realizar una suma

Rango direccionable P + 2d-1 - 1

Memoria principal

22
Directo Relativo (2)

La mayora de los computadores permiten desplazamiento


positivos y negativos.
o Permite generar cdigo reubicable, recorrer
estructuras de datos, esquemas de proteccin de
memoria, ...
Segn el puntero, existen diversas variantes:
o Contador de programa (PC).
o Registro base.
o Indexado.
o Pila.

23
Directo Relativo (3)

CP
102 COP CD=16 + 103
103

119 Operando Relativo al


Relativo a Contador de
Memoria principal Programa
Registro Base

RB
CP COP RB CD=16 + 200

216 Operando
Memoria principal

24
Directo Relativo (4)

Directo indexado: Se utiliza un registro ndice y un


desplazamiento, que se especifica mediante registro.

RB
CP COP Ri RB 200

216 Operando +
Ri
Memoria principal
16

25
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.
o Preincremento, predecremento.
o (Primero se incrementa / decrementa el RB y despus se resuelve la direccin)
o Postincremento, postdecremento.
o (Primero se resuelve la direccin y despus se incrementa / decrementa el RB)
+1
RB
CP COP RB CD=16 + 200

217 Operando ALU

Memoria principal

26
Direccionamiento Indirecto

La instruccin indica la direccin de memoria o el registro


que contiene la direccin del operando.

CP COP CD=100

100 Dir. Operando=200

200 Operando

Memoria principal

27
Resumen de los modos de
direccionamiento ms comunes

Operando
Inmediato CD
Directo a registro R(CD)
Directo a memoria M(CD)
Directo a pgina 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
Regularidad

Regularidad: El juego de instrucciones no presenta casos


especiales.

Es ms fcil programar arquitecturas regulares.


Permite disear compiladores ms sencillos y eficaces.

29
Ortogonalidad

Ortogonalidad: Cada operacin debe poder hacerse con


cualquier tipo de operandos y con cualquier tipo de
direccionamiento.

Gran nmero de instrucciones con un pequeo nmero


de nemnicos.
La ortogonalidad proporciona simplicidad y claridad al
programador.

30
Tipos de instrucciones

Aritmticas / lgicas / desplazamiento.


Transferencia de datos.
Comparacin / condicional.
Saltos, llamadas a subrutinas.
De entrada / salida.

31
Frecuencia de utilizacin de las
instrucciones (1)
Para optimizar diseo se han realizado estudios sobre la
utilizacin de las instrucciones en computadores
comerciales.
o Analizan la frecuencia de utilizacin de las
instrucciones y las secuencias ms utilizadas.
Dos tipos de estudios:
o Estticos (lectura del listado de los programas).
o Dinmicos (en tiempo de ejecucin).
32
Frecuencia de utilizacin de las
instrucciones (2)

33
Conclusiones de los estudios

50% de las instrucciones se dedican a mover


informacin dentro del computador.

Las bifurcaciones constituyen el segundo grupo de


instrucciones ms empleado.

El 50% de las instrucciones de los computadores se


utilizan menos de un 2%, pero son importantes para
aplicaciones especficas y no se pueden eliminar.

34
Filosofas CISC y RISC (1)

Histricamente, CISC (Complex Instruction Set Computing):


o Al principio las memorias eran lentas y costosa. Haba que
reducir el tamao de los programas.
o Muchas instrucciones para tareas complejas.
ms HW, ralentiza el ordenador.

Actualmente, RISC (Reduced Instruction Set Computing):


o Concepto introducido por Hennesy y Patterson en los aos 80.
o Menos instrucciones y modos de direccionamiento.
o Formato fijo para las instrucciones, ejecucin regular.
o Unidad de control simple.
o Aumenta las prestaciones y el rendimiento. Reduce el coste.

35
Filosofas CISC y RISC (2)

Tiempo de ejecucin de un programa (Tp):

Tp = I x C x Tc
I: n de instrucciones.
C: n de ciclos.
Tc: duracin de un ciclo.

CISC: 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 diseada
por la empresa Acorn Computers Ltd desde inicios de los aos 80.
La Nintendo DS incorpora 2 microprocesadores ARM en su diseo.
Caractersticas principales:
CPU con 37 registros de 32 bits.
Instrucciones de 32 bits de longitud.
La mayora de instrucciones se ejecuta en un solo ciclo.
Los 4 primeros bits de cada instruccin forman el campo de condicin que
permite su ejecucin condicional. Una instruccin no ejecutada consume
slo un ciclo.
Arquitectura (Load/Store). Los datos deben ser guardados en los registros
de la CPU antes de operar con ellos. Modelo de ejecucin muy rpido.
37
ARM: tipos de instrucciones

38
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 instrucciones

41
Conceptos importantes

Arquitectura y organizacin de un computador.


Lenguaje mquina.
Formatos de instruccin.
Modos de direccionamiento.
Tipos de instruccin y su frecuencia de utilizacin.
Filosofa RISC vs. CISC como bsqueda del mejor
compromiso rendimiento/coste.

42

You might also like