You are on page 1of 52

Departamento de Sistemas Telemticos y Computacin

(GSyC)

Lenguaje Mquina

Katia Leal Algara


Septiembre 2011
katia@gsyc.es
http://gsyc.escet.urjc.es/~katia/

0
Introduccin

Instrucciones y direccionamiento
Direccionamientos, juego de instrucciones y
formato
Secuencia bsica de ejecucin
1. Leer de memoria una instruccin
2. UC interpreta la instruccin
3. Ejecucin de la instruccin bajo las rdenes de la UC
Un computador solo entiende lenguaje mquina
El lenguaje mquina es distinto para cada
computador, salvo compatibilidad entre familias
El lenguaje mquina establece las capacidades
bsicas del computador
Al conjunto de instrucciones del lenguaje mquina
se conoce como juego de instrucciones
GSyC 2011 - Lenguaje mquina 1
Lenguaje mquina y lenguaje ensamblador

Lenguaje ensamblador

Z80 8086/88

Tipo de
instruc
codificado ensamblador operacin codificado ensamblador operacin
cin

transfer 323353 LD(5333),A M(5333)<-A A323353 MOV[5333],A M(5333)<-A


encia

Transfiere el contenido del registro A a la Transfiere el contenido del registro AX


posicin de memoria 5333h (acumulador) a la posicin de memoria 5333h

multiplic F7E3 MUL BX AX, DX<-AXBX


acin - - -

No existe equivalente Multiplica el contenido de los registros AX y BX


y deja el resultado en AX y DX (32 bits)

GSyC 2011 - Lenguaje mquina 2


Lenguaje mquina y lenguaje ensamblador

Lenguaje ensamblador
Lenguaje simblico a base de nemnicos
(nombres que recuerdan la operacin a realizar)
Este lenguaje simblico se conoce como
lenguaje ensamblador
Al programa que traduce a binario un programa
escrito en lenguaje ensamblador se le conoce
como programa ensamblador
El programa ensamblador utiliza una tabla que
hace corresponder a cada nemnico con su
cdigo binario

GSyC 2011 - Lenguaje mquina 3


Lenguaje mquina y lenguaje ensamblador

Lenguaje ensamblador
Propiedades que cumplen las instrucciones:
Emplean un nmero fijo de operandos
Codificacin sistemtica y ajustada a un formato de
instrucciones
Autocontenidas e independientes, contienen toda la
informacin que necesitan para ejecutarse
Por ser autocontenidas deben tener la siguiente
informacin:
Operacin a realizar
Ubicacin de los operandos
Ubicacin del resultado
Posicin de la siguiente instruccin
siguiente
operacin operandos resultado
instruccin
GSyC 2011 - Lenguaje mquina 4
Lenguaje mquina y lenguaje ensamblador

Lenguaje ensamblador

Juego de instrucciones: anlisis de las


operaciones posibles y determinacin de
la siguiente instruccin a ejecutar
Modos de direccionamiento:
determinacin de la ubicacin de los
operandos
Formato de las instrucciones: modo en
que se codifica en binario toda esta
informacin

GSyC 2011 - Lenguaje mquina 5


Lenguaje mquina y lenguaje ensamblador

GSyC 2011 - Lenguaje mquina 6


Diseo de un repertorio de instrucciones

Diseo de un repertorio de instrucciones


El repertorio de instrucciones influye directamente en:
1. El nmero de instrucciones necesarias para realizar una
determinada tarea
2. El diseo del compilador
3. El diseo de la ruta de datos y la unidad de control
Hasta los 80 todo era CISC. Despus se impusieron los RISC
CISC, gran nmero de instrucciones complejas
Gran variedad de tipos de datos, de modos de
direccionamiento y de operaciones
Permite implementar instrucciones de alto nivel directamente o
con un nmero pequeo de instrucciones ensamblador
HW ms complejo
RISC, pocas instrucciones y muy bsicas
Pocos tipos de datos y de modos de direccionamiento
Tcnicas de optimizacin, tanto a nivel de HW como del
compilador, ms sencillas de implementar
Necesitan ms instrucciones para realizar la misma tarea
GSyC 2011 - Lenguaje mquina 7
Diseo de un repertorio de instrucciones

Aspectos a tener en cuenta

Tipo de almacenamiento de operandos


Interpretaciones de las direcciones de
memoria
Modos de direccionamiento soportados
Otras decisiones

GSyC 2011 - Lenguaje mquina 8


Diseo de un repertorio de instrucciones

Tipo de almacenamiento de los operandos

Los distintos repertorios se diferencian


en el tipo de almacenamiento interno
que utilizan:
Pila
Acumulador
Registros de propsito general
(General Purpose Registers, GPR)

GSyC 2011 - Lenguaje mquina 9


Diseo de un repertorio de instrucciones

Tipo de almacenamiento de los operandos

Pila: los operandos son implcitos, siempre


en la parte superior de la pila (Top of Stack,
TOS)
No es necesario indicar dnde se encuentran
los operandos
Acumulador: uno de los operandos es
implcito
El otro se debe especificar de forma explcita

GSyC 2011 - Lenguaje mquina 10


Diseo de un repertorio de instrucciones

Tipo de almacenamiento de los operandos

GPR: los operandos se especifican de


forma explcita
Pueden ser dos o tres operandos, por
qu?
Alguno o todos los operandos pueden
estar en memoria. Por lo tanto, se
pueden disear

GSyC 2011 - Lenguaje mquina 11


Diseo de un repertorio de instrucciones

Tipo de almacenamiento de los operandos: GPR

Registro-Registro de 3 operandos,
todos deben estar en registros
Se utilizan instrucciones de carga (load)
y almacenamiento (store)
Registro-Memoria de 2 operandos, al
menos uno de los operandos debe
estar en registro
Memoria-Memoria de 2 o 3
operandos, todos ellos en memoria

GSyC 2011 - Lenguaje mquina 12


Diseo de un repertorio de instrucciones

Tipo de almacenamiento de los operandos

Casi todas las arquitecturas se basan en


GPR
Los registros son ms rpidos
Son utilizados de manera mucho ms
eficiente por los compiladores
Almacenamiento temporal de variables
Diferentes alternativas para disear un
repertorio basado en GPR
En los repertorios registro-registro todas las
instrucciones tienen la misma longitud y se
ejecutan en un nmero similar de ciclos

GSyC 2011 - Lenguaje mquina 13


Diseo de un repertorio de instrucciones

Tipo de almacenamiento de los operandos

En arquitecturas registro-registro:
La codificacin es sencilla, siempre hay que
especificar el identificador de tres registros
Pero los programas ocupan ms, por qu?
En arquitecturas memoria-memoria:
Cdigo ms compacto
La memoria, un cuello de botella, por qu?
Grandes diferencias entre la longitud de las
instrucciones y entre su duracin
Se complica la codificacin de las
instrucciones y puede variar mucho el CPI
(Ciclos Por Instruccin) entre instrucciones
GSyC 2011 - Lenguaje mquina 14
Diseo de un repertorio de instrucciones

Ejemplo
Vamos a evaluar dos alternativas:
1. Registro-Registro de 3 operandos con 8 registros de
propsito general
2. Memoria-Memoria de 3 operandos
Se desea realizar una secuencia de operaciones
lgicas
R = X AND Y
Z = X OR Y
Y = R AND X
El cdigo de operacin ocupa 1Byte
Las direcciones de memoria y los operandos
ocupan 4 Bytes
Los operandos estn almacenados inicialmente en
memoria
GSyC 2011 - Lenguaje mquina 15
Diseo de un repertorio de instrucciones
Trfico con la memoria de Trfico con la memoria
instrucciones de datos
load r1,X opcode+dir+registro=6B 1 operando = 4B
load r2,Y opcode+dir+registro=6B 1 operando = 4B
and r3,r1,r2 opcode+3 registro=3B -
or r4,r1,r2 opcode+3 registro=3B -
and r2,r3,r1 opcode+3 registro=3B -
store r3,R opcode+dir+registro=6B 1 operando = 4B
store r4,Z opcode+dir+registro=6B 1 operando = 4B
store r2,Y opcode+dir+registro=6B 1 operando = 4B
Total, 39B Total, 20B
Trfico con la memoria de Trfico con la memoria
instrucciones de datos
and R,X,Y opcode+3 direcciones=13B 3 operandos = 12B
or Z,X,Y opcode+3 direcciones=13B 3 operandos = 12B
and Y,R,X opcode+3 direcciones=13B 3 operandos = 12B
Total, 39B Total, 36B
GSyC 2011 - Lenguaje mquina 16
Diseo de un repertorio de instrucciones

Interpretacin de las direcciones de memoria


La mayora de las mquinas estn direccionadas por bytes
Proporcionan acceso a bytes (8 bits), medias palabras (16
bits), palabras (32 bits) y dobles palabras (64 bits)
Convenios para clasificar los bytes de una palabra
Little Endian, little-end-in, de comienzo por el extremo
pequeo
Coloca el byte menos significativo en la posicin ms
significativa de la palabra
La direccin de un dato es la del byte menos significativo
Big Endian, big-end-in, de comienzo por el extremo grande
Coloca el byte menos significativo en la posicin menos
significativa de la palabra
La direccin de un dato es la del byte ms significativo
Middle Endian, arquitectura capaz de trabajar con ambas
ordenaciones, como por ejemplo los procesadores MIPS o
Power PC
GSyC 2011 - Lenguaje mquina 17
Diseo de un repertorio de instrucciones

Interpretacin de las direcciones de memoria


Ejemplo: el valor hexadecimal 0x4A3B2C1D se
codificara en memoria en la secuencia:
{4A, 3B, 2C, 1D} en big-endian
{1D, 2C, 3B, 4A} en little-endian

GSyC 2011 - Lenguaje mquina 18


Diseo de un repertorio de instrucciones

Interpretacin de las direcciones de memoria


Ejercicio 1: explica cmo puede ser que tras la ejecucin del
mismo cdigo, en unas mquinas se imprima un mensaje y
en otras otro. Debes indicar la ordenacin de los datos en
memoria teniendo en cuenta que un entero ocupa 16 bits y
un char 8 bits. Adems, debes indicar el valor de p[0] y p[1]
en cada caso
#include <stdio.h>

int main(void){
int i = 1;
char *p = (char *) &i;
if ( p[0] == 1 )
printf("Little Endian\n");
else
printf("Big Endian\n");
return 0;}

GSyC 2011 - Lenguaje mquina 19


Diseo de un repertorio de instrucciones

Accesos a informacin de tamao mayor que 1 byte


Estos accesos deben estar alineados, es decir, un
acceso a una informacin de s bytes en la
direccin del byte B est alineado si
B mdulo s = 0
Estas restricciones de alineamiento se deben a
que las memorias, fsicamente, estn diseadas
para hacer accesos alineados
Un acceso no alineado o mal alineado, supone
varios accesos alineados a la memoria
Si el dato est bien alineado, soportar accesos a
bytes y medias palabras requiere una red de
alineamiento para alinear los bytes y medias
palabras en los registros
GSyC 2011 - Lenguaje mquina 20
Diseo de un repertorio de instrucciones

Alineacin datos en registros


Red de alimentacin para cargar un byte o media
palabra
La mquina tambin puede necesitar extender el
signo
En algunas mquinas, un byte o media palabra no
afecta a la parte superior de un registro
Ejemplo: en un sistema de memoria de 32 bits, se
necesitan cuatro caminos de alineacin para los
bytes

GSyC 2011 - Lenguaje mquina 21


Modos de direccionamiento

Modos de direccionamiento

Dnde podemos encontrar un operando?


En la propia instruccin
En un registro
En memoria principal
Siempre en la propia instruccin?
Ahorro de espacio: instrucciones ms cortas
Direccionamiento relativo: cdigo reubicable
Estructuras de datos: direccionamiento ms
fcil mediante ndices y punteros

GSyC 2011 - Lenguaje mquina 22


Modos de direccionamiento

Modos de direccionamiento bsicos


Inmediato: el operando se codifica dentro de la
instruccin
Registro: se incluye el identificador del registro
que amacena el operando
Directo: se incluye la direccin de memoria en la
que est almacenado el operando
Indirecto: se indica el registro que almacena la
direccin de memoria en la que se encuentra el
operando
Indirecto con desplazamiento: se suma un
operando inmediato al contenido del registro para
obtener la direccin de memoria en la que se
encuentra el operando
GSyC 2011 - Lenguaje mquina 23
Modos de direccionamiento

Clasificacin modos de direccionamiento


Modo de Ejemplo Significado Uso
direccionamiento
Inmediato Add R4, #3 R4R4+3 Para constantes
Registro Add R4, R3 R4R4+R3 Cuando un valor est en
registro
Directo Add R1, (1001) R1R1+M[1001] Acceso a datos estticos
Indirecto a registro Add R4, (R1) R4R4+M[R1] Acceso utilizando un
puntero a una direccin
calculada
Indirecto + Add R4, 100(R1) R4R4+M[100+R1] Acceso a variables
desplazamiento locales
Indexado Add R3, (R1+R2) R3R3+M[R1+R2] Acceso a arrays,
base+ndice
Indirecto a memoria Add R1, @(R3) R1R1+M[M[R3]]

Post-incremento Add R1, (R2)+ R1R1+M[R2] Recorrido de arrays en


R2R2+d un bucle
Pre-decremento Add R1, -(R2) R2R2-d
R1R1+M[R2]
GSyC 2011 - Lenguaje mquina 24
Modos de direccionamiento

Direcccionamiento inmediato

GSyC 2011 - Lenguaje mquina 25


Modos de direccionamiento

Direcccionamiento de registro

GSyC 2011 - Lenguaje mquina 26


Modos de direccionamiento

Direcccionamiento directo

GSyC 2011 - Lenguaje mquina 27


Modos de direccionamiento

Direcccionamiento indirecto con desplazamiento

GSyC 2011 - Lenguaje mquina 28


Modos de direccionamiento

Modos de direccionamiento en un repertorio RISC


Los repertorios RISC incluyen como mnimo
direccionamiento inmediato e indirecto con
desplazamiento
Direccionamiento inmediato: a la hora de disear
el repertorio hay que decidir s
1. Todas las instrucciones deben soportar este modo o
slo un subconjunto
2. El rango de valores del operando inmediato, en qu
influye esto?
Direccionamiento indirecto con
desplazamiento: la decisin ms importante
consiste en determinar el rango de valores que
puede tomar el desplazamiento

GSyC 2011 - Lenguaje mquina 29


Diseo del repertorio de instrucciones

Otras consideraciones
Tipo y tamao de los operandos:
Qu tipo de datos se soportan? Con qu tamaos?
Carcter, entero, coma flotante, etc
El cdigo de operacin, opcode, indicar el tipo de los
operandos implicados en la ejecucin de la instruccin
tambin lo pueden indicar los operandos mediante
etiquetas, inconvenientes?
Conjunto de operaciones soportadas:
Qu tipo de operaciones van a realizar las instrucciones del
repertorio?
Un conjunto sencillo: aritmtico-logicas, de acceso a
memoria, de control de flujo (saltos) y llamadas al sistema
operativo
Dependiendo de los tipos de datos, instrucciones para
manejo de caracteres, coma flotante, etc
Tratamiento de las instrucciones de control de flujo:
modifican el flujo de control de un cdigo
GSyC 2011 - Lenguaje mquina 30
Diseo del repertorio de instrucciones

Tratamiento de las instrucciones de control de flujo


Saltos condicionales: Cmo se especifica la condicin?
Cmo se indica la direccin destino de salto?
Saltos incondicionales: Cmo se indica el destino?
Dos alternativas para indicar el destino de salto
Direccionamiento relativo al PC
Se conoce el destino de salto en tiempo de
compilacin
Los destinos de los saltos estn cercanos al salto
Cdigo reubicable
Cuntos bits se necesitan para el desplazamiento?
Direccionamiento indirecto con registro
No se conoce la direccin de salto o su valor excede
del que se puede indicar con el desplazamiento
Se indica el identificador del registro que contiene la
direccin destino de salto
GSyC 2011 - Lenguaje mquina 31
Diseo del repertorio de instrucciones

Tratamiento de las instrucciones de control de flujo

La condicin de salto consiste en una


comparacin
Evaluar los cdigos de condicin de la
ALU
Evaluar uno o varios registros
Especificar la comparacin en la propia
instruccin

GSyC 2011 - Lenguaje mquina 32


Operaciones del repertorio de instrucciones

Codificacin del repertorio de instrucciones

La codificacin afecta al tamao del cdigo de los


programas y a la implementacin del procesador
En la codificacin influyen factores como
Tipo de almacenamiento de los operandos
Nmero de registros
Modos de direccionamiento soportados
Tipos y tamao de los operandos
Existen tres tipos de codificacin
Longitud variable
Longitud fija
Hbrida

GSyC 2011 - Lenguaje mquina 33


Operaciones del repertorio de instrucciones

Codificacin del repertorio de instrucciones


Longitud variable
Soporta cualquier nmero de operandos y cualquier
combinacin instruccin/modo de direccionamiento
Etiquetas que indican el modo
Se aaden tantos campos como sean necesarios + las
etiquetas que permiten su interpretacin
Longitud fija
El cdigo de operacin especifica el modo de
direccionamiento
Slo se permiten unas combinaciones determinadas de
operaciones+modos
Los campos de la instruccin son siempre los mismos
Hbrida
Slo se permiten unos determinados formatos de instruccin,
que incluyen un nmero variable de modos y operandos
GSyC 2011 - Lenguaje mquina 34
Operaciones del repertorio de instrucciones

Codificacin del repertorio de instrucciones


CISC
Soporta muchos tipos de modo de direccionamiento y
operaciones, y distinto nmero de operandos
Cdigos de menor tamao
Decodificacin ms complicada
RISC
Pocos modos de direccionamiento y operaciones
El cdigo tiene un tamao mayor (campos
infrautilizados)
Gran rendimiento en la decodificacin

En cualquiercaso, la longitud de las instrucciones


debe ser un nmero entero de bytes para facilitar
la decodificacin y el almacenamiento
GSyC 2011 - Lenguaje mquina 35
Ejemplo de codificacin hbrida: MIPS64

Repertorio de instrucciones del procesador MIPS64


MIPS64, arquitectura RISC basada en registros
de propsito general de tipo
carga/almacenamiento
32 registros de propsito general de 64 bits (R0-
R31)
R0 siempre almacena un 0 y no se puede modificar
32 registros para coma flotante (F0-F31) que
almacenan nmeros en precisin simple o doble
Soporta tipos enteros de 8, 16, 32 y 64 bits
Soporta tipos en coma flotante de 32 y 64 bits

GSyC 2011 - Lenguaje mquina 36


Ejemplo de codificacin hbrida: MIPS64

Repertorio de instrucciones del procesador MIPS64

Modos de direccionamiento soportados


Inmediato
Indirecto con desplazamiento
Indirecto puro, si el desplazamiento es 0
Absoluto, si R0 es el registro base
Todas las instrucciones son de 32 bits con
un opcode de 6 bits
Tres formatos diferentes de instruccin
Tipo I (Inmediato)
Tipo R (Registro)
Tipo J (Jump)

GSyC 2011 - Lenguaje mquina 37


Ejemplo de codificacin hbrida: MIPS64

Instrucciones de Tipo I

Load/Store
RS (registro fuente): registro base para el acceso a memoria
RT (registro destino): registro para los datos
Inmediato: desplazamiento para el clculo de la direccin de
memoria a la que hay que acceder
Aritmtico-lgicas con direccionamiento inmediato
RS (registro fuente): operando 1
RT (registro destino): registro destino de la operacin
Inmediato: operando 2, directamente su valor
Saltos codicionales/incodicionales
RS (registro fuente): registro de condicin (para la
comparacin)/Registro que contiene la direccin destino del salto
RT (registro destino): registro de condicin (para la
comparacin)/No se utiliza
Inmediato: desplazamiento respecto del PC/0
GSyC 2011 - Lenguaje mquina 38
Ejemplo de codificacin hbrida: MIPS64

Instrucciones de Tipo R

Aritmtico-lgicas registro-registro
RS (registro fuente): operando 1
RT (registro destino): operando 2
RD: registro destino
sa (Shift Amount): indica el desplazamiento para las
instrucciones de tipo Shift
function: junto con el OpCode indica el tipo de
operacin que se debe realizar

GSyC 2011 - Lenguaje mquina 39


Ejemplo de codificacin hbrida: MIPS64

Instrucciones de Tipo J

Salto incondicional y retorno de procedimiento


que utilizan direccionamiento con desplazamiento
relativo al PC
opCode: Cdigo de la operacin
Instr_index: offset relativo el PC

GSyC 2011 - Lenguaje mquina 40


Diseo de un repertorio de instrucciones

Optimizaciones del repertorio de instrucciones


Casi todas las mejoras se basan en la extensibilidad
Instrucciones que mejoran el rendimiento de los
procesadores en la ejecucin de aplicaciones y cdigos
concretos
Instrucciones que incorporan predicados y ahorran
bifurcaciones
Instrucciones que combinan dos o ms operaciones que
suelen aparecer agrupadas
Extensiones multimedia
Operaciones repetitivas sobre diferentes operandos que no
llegan a los 32 bits de un tpico tipo entero (un pxel son 8
bits, una muestra de audio son 16 bits)
Instrucciones capaces de operar con vectores que agrupan
en los registros tpicos de 64 bits, 8 operandos de 8 bits, 4
operandos de 16 bits, o 2 operandos de 32 bits
Se incluyen instrucciones aritmtico-lgicas, de acceso a
memoria y de empaquetamiento, reordenamiento y copia de
datos
GSyC 2011 - Lenguaje mquina 41
Diseo de un repertorio de instrucciones

Optimizaciones del repertorio de instrucciones

Ejemplos
MIPS Digital Media eXtension (MDMX) o a las
Multimedia Acceleration eXtensions (MAX)
Extensiones de las arquitecturas x86, primero las MMX,
despus las diferentes versiones de 3Dnow! y las SSE
MIPS64
Application Specific Extensions

GSyC 2011 - Lenguaje mquina 42


Mecanismo completo de ejecucin de una instruccin

Ejecucin de una instruccin

Fetch (F): buscar en memoria la instruccin


apuntada por el PC. Actualizacin del PC
Decode (D): decodificacin de la instruccin,
separar los diferentes campos. Si es necesario, se
leen 1 o 2 operandos de los registros
Execution (X): ejecucin de la operacin indicada
en el opcode
Memory Access (M): si es necesario, acceder a
memoria para leer o escribir
Writeback (W): si es necesario, se vuelca un
resultado a un registro

GSyC 2011 - Lenguaje mquina 43


Ejemplo: ejecucin de las instrucciones del repertorio del MIPS64

Instrucciones tipo I: Load/Store


- Bsqueda en la MI de la instruccin MI[PC]
F apuntada por PC.
- Actualizacin del PC PC PC+4
- Decodificacin y lectura de registros [RS]
D - Extensin de signo para inmediato ext(Inmediato)
Si es Store: [RD]
- Suma en la ALU del registro base + [RS]+ext(Inmediato)
X el desplazamiento

- Acceso a la direccin de memoria Load:


calculada en la etapa anterior MD[[RS]+ext(Inmediato)]
M
Store:
MD[[RS]+ext(Inmediato)] [RD]
- En caso se Load, se escribe el [RD] MD[[RS]+ext(Inmediato)]
W contenido de memoria en el registro
RD

GSyC 2011 - Lenguaje mquina 44


Ejemplo: ejecucin de las instrucciones del repertorio del MIPS64

Instrucciones tipo I: Aritmtico-Lgicas


- Bsqueda en la MI de la instruccin MI[PC]
F apuntada por PC.
- Actualizacin del PC PC PC+4
- Decodificacin y lectura del registro [RS]
D RS
- Extensin de signo para inmediato ext(Inmediato)
- La ALU realiza la operacin que [RS] OP ext(Inmediato)
X indique el opcode

- Se escribe el resultado de la [RD] [RS] OP ext(Inmediato)


W operacin en el registro RD

GSyC 2011 - Lenguaje mquina 45


Ejemplo: ejecucin de las instrucciones del repertorio del MIPS64

Instrucciones tipo I: Saltos condicionales


- Bsqueda en la MI de la instruccin MI[PC]
F apuntada por PC
- Actualizacin del PC PC PC+4
- Decodificacin de la instruccin [RS]
D - Lectura de los registros RS y RD [RD]
- Extensin de signo para inmediato ext(Inmediato)
- Clculo de la direccin de salto: PC [PC] + ext(Inmediato)
+ Inmediato
- Evaluacin condicin de salto en RS cond ([RS],[RD])
X y RD
- Si evaluacin positiva, se carga el PC Si con = TRUE
con la direccin de salto
PC [PC] + ext(Inmediato)
M
W

GSyC 2011 - Lenguaje mquina 46


Ejemplo: ejecucin de las instrucciones del repertorio del MIPS64

Instrucciones tipo I: Saltos incondicionales

- Bsqueda en la MI de la instruccin MI[PC]


F apuntada por PC
- Actualizacin del PC PC PC+4
- Decodificacin de la instruccin
D - Lectura del registro RS [RS]

- Se carga el PC con el valor del PC [RS]


X registro RS

M
W

GSyC 2011 - Lenguaje mquina 47


Ejemplo: ejecucin de las instrucciones del repertorio del MIPS64

Instrucciones tipo R: Aritmtico-Lgicas


- Bsqueda en la MI de la instruccin MI[PC]
F apuntada por PC.
- Actualizacin del PC PC PC+4
- Decodificacin [RS]
D - Lectura de los registros RS y RD [RD]

- La ALU realiza la operacin indicada [RS] OP [RT]


X por la combinacin del opcode y del
campo Function

- Se escribe el resultado de la [RD] [RS] OP [RT]


W operacin en el registro RD

GSyC 2011 - Lenguaje mquina 48


Ejemplo: ejecucin de las instrucciones del repertorio del MIPS64

Instrucciones tipo J: Saltos incondicionales


con direccionamiento relativo al PC

- Bsqueda en la MI de la instruccin MI[PC]


F apuntada por PC.
- Actualizacin del PC PC PC+4
- Decodificacin
D - Lectura del registros RS [RS]
- Extensin de signo para Offset ext(Offset)
- Se suma al PC el Offset para obtener [PC] + ext(Offset)
la direccin del salto
X
- Se carga el PC con el valor obtenido PC [PC] + ext(Offset)
para la direccin de salto
M
W

GSyC 2011 - Lenguaje mquina 49


Evaluacin de prestaciones de un procesador

Evaluacin de prestaciones

Rendimiento de un procesador

tCPU = I CPI T

T, periodo de reloj del procesador


CPI, ciclos que tarda en ejecutarse en media una
instruccin
I, nmero de instrucciones en ensamblador

En general, trespuesta < tCPU


SSOO multitarea

GSyC 2011 - Lenguaje mquina 50


Evaluacin de prestaciones de un procesador

Ejemplo

Frecuencia procesador = 2.1GHz


1200 instrucciones ensamblador
20% saltos, 50% aritmtico-lgicas, 30% load/store
Saltos 3 ciclos, aritmtico-lgicas 4 ciclos,
load/store 5 ciclos
Cunto tiempo tarde en ejecutarse este cdigo
en el procesador?

T = 1/f
CPI = finstruccin CPIinstruccin

GSyC 2011 - Lenguaje mquina 51

You might also like