Publicado el 5 de Julio del 2017
2.146 visualizaciones desde el 5 de Julio del 2017
1,8 MB
41 paginas
Captulo 2
El repertorio de instrucciones
2.1.
Introduccion
El funcionamiento de la CPU esta determinado por las instrucciones que eje-
cuta. Estas instrucciones se denominan instrucciones maquina o instrucciones del
computador. Al conjunto de instrucciones distintas que puede ejecutar la CPU se le
denomina repertorio de instrucciones de la CPU.
En los computadores actuales las instrucciones se representan como numeros y
los programas se pueden almacenar en memoria (concepto de programa almacenado).
Cada instruccion maquina debe contener la informacion que necesita la CPU para
su ejecucion. Los elementos constitutivos de una instruccion maquina son:
Codigo de operacion: especica la operacion a realizar (suma, E/S, etc.).
La operacion se indica mediante un codigo binario.
Referencia a operandos fuente: la operacion puede implicar a uno o mas
operandos fuente, es decir, operandos que son entradas para la instruccion.
Referencia al operando resultado: la operacion puede producir un resul-
tado.
Referencia a la siguiente instruccion: dice a la CPU de donde captar la
siguiente instruccion tras completarse la ejecucion de la instruccion actual.
En la mayora de los casos la siguiente instruccion a captar sigue inmediatamente
a la instruccion en ejecucion. En tales casos no hay referencia explcita a la siguiente
instruccion. Cuando sea necesaria una referencia explcita, debe suministrarse la
direccion de memoria principal o virtual.
23
24
CAPITULO 2. EL REPERTORIO DE INSTRUCCIONES
Los operandos fuente y resultado pueden estar en algunas de las siguentes areas:
Memoria principal o virtual: como en las referencias a instrucciones si-
guientes, debe indicarse la direccion de memoria principal o de memoria vir-
tual.
Registro de la CPU: salvo raras excepciones, una CPU contiene uno o mas
registros que pueden ser referenciados por instrucciones maquina. Si existe mas
de uno, cada registro tendra asignado un numero unico, y la instruccion debe
contener el numero del registro deseado.
Dispositivo de entrada/salida (E/S): la instruccion debe especicar el
modulo y dispositivo de E/S para la operacion. En el caso de E/S asignadas
en memoria, se dara otra direccion de memoria principal o virtual.
2.2. Representacion de las instrucciones
Dentro del computador, cada instruccion se representa por una secuencia de bits.
La instruccion esta dividida en campos, correspondientes a los elementos constitu-
tivos de la misma. La descripcion de la instruccion en campos y bits se denomina
formato de instruccion. La gura 2.1 muestra un ejemplo sencillo de formato de
instruccion. En la mayora de los repertorios de instrucciones se emplea mas de un
formato. Durante su ejecucion, la instruccion se escribe en un registro de instruccion
(IR) de la CPU. La CPU debe ser capaz de extraer los datos de los distintos campos
de la instruccion para realizar la operacion requerida.
Es difcil manejar las representaciones binarias de las instrucciones maquina,
por ello, se utilizan representaciones simbolicas de estas instrucciones. Tanto los
operandos como los codigos de operacion se suelen representar simbolicamente. Por
ejemplo, la instruccion
ADD R, Y
puede signicar \sumar el valor contenido en la posicion Y al contenido en el registro
R".
Es raro encontrar ya programadores en lenguaje maquina. La mayora de los
programas actuales se escriben en un lenguaje de alto nivel o, en su ausencia, en
lenguaje ensamblador.
2.3. DISE ÑO DEL REPERTORIO DE INSTRUCCIONES
25
4 bits
6 bits
6 bits
Codop
Ref. a operando
Ref. a operando
16 bits
Figura 2.1: Un formato de instrucciones sencillo
2.3. Diseño del repertorio de instrucciones
Uno de los aspectos mas interesantes y mas analizados del diseño de un compu-
tador, es el diseño del repertorio de instrucciones del lenguaje maquina. El diseño de
un repertorio de instrucciones es muy complejo, ya que afecta a muchos aspectos del
computador. El repertorio de instrucciones dene muchas de las funciones realizadas
por la CPU y tiene, por tanto, un efecto signicativo sobre la implementacion de
la misma. El repertorio de instrucciones es el medio que tiene el programador para
controlar la CPU.
Los aspectos mas importantes a tener en cuenta en el diseño del repertorio de
instrucciones son:
Repertorio de operaciones: cuantas y que operaciones considerar, y cuan
complejas deben ser.
Tipos de datos: los distintos tipos de datos con los que se efectuan opera-
ciones. Hay dos caractersticas importantes de los repertorios de instrucciones
que dividen las arquitecturas de registros de proposito general. Ambas estan
relacionadas con la naturaleza de los operandos. La primera es el numero de
operandos (dos o tres) que pueden tener las instrucciones de la ALU, y la
segunda, el numero de operandos que se pueden direccionar en memoria. Las
combinaciones posibles son:
Registro-registro (tambien llamada carga/almacenamiento)
Registro-memoria
Memoria-memoria
Formatos de instrucciones: longitud de la instruccion (en bits), numero de
direcciones, tamaño de los distintos campos, etc.
Registros: numero de registros de la CPU que pueden ser referenciados por
instrucciones, y su uso.
26
CAPITULO 2. EL REPERTORIO DE INSTRUCCIONES
Direccionamiento: el modo o modos de direccionamiento mediante los cuales
puede especicarse la direccion de un operando.
Estos aspectos estan fuertemente interrelacionados, y deben considerarse con-
juntamente en el diseño de un repertorio de instrucciones.
2.4. Direccionamiento
Independientemente que una arquitectura sea registro-registro o permita que
cualquier operando sea una referencia a memoria, debe denir cuantas direcciones
de memoria son interpretadas y como se especican. En esta seccion trataremos
ambas cuestiones.
2.4.1.
Interpretacion de las direcciones de memoria
>Como se interpreta una direccion en memoria? Es decir, >que objeto es accedido
como una funcion de la direccion y la longitud? En años recientes casi todos los
fabricantes de computadoras han adoptado como estandar una celda de 8 bits, que
recibe el nombre de byte. Los bytes se agrupan a su vez en palabras. Una computadora
con palabras de 32 bits tiene 4 bytes/palabra, mientras que una con palabras de 64
bits tiene 8 bytes/palabra. La importancia de las palabras es que casi todas las
instrucciones operan con palabras enteras; por ejemplo, suman dos palabras. As ,
una maquina de 32 bits tiene registros de 32 bits e instrucciones para manipular
palabras de 32 bits, mientras que una maquina de 64 bits tiene registros de 64 bits
e instrucciones para transferir, sumar, restar y manipular palabras de 64 bits.
En la mayora de las arquitecturas nos encontramos con un requisito denominado
restriccion de alineacion para el acceso a las direcciones de memoria. Por ejemplo,
en una arquitectura MIPS, cuyo tamaño de palabra es siempre 32 bits, las palabras
deben comenzar siempre en direcciones multiplo de 4 (puesto que cada palabra se
compone de 4 celdas o bytes). Esta restriccion de alineacion facilita la transferencia
de datos mas rapidamente.
Otro aspecto curioso y molesto, relacionado con la forma en que se referencian
y se representan los bytes dentro de una palabra y los bits dentro de un byte, es
el siguiente. Los bytes de una palabra pueden numerarse de izquierda a derecha o
de derecha a izquierda. A primera vista podra parecer que esta decision carece de
importancia pero, sin embargo, tiene implicaciones importantes. Hay dos convenios
diferentes para clasicar los bytes de una palabra:
2.4. DIRECCIONAMIENTO
27
Big Endian: usa la direccion del byte de mas a la izquierda o de \mayor peso"
como direccion de palabra.
Little Endian: usa el byte de mas a la derecha o de \menor peso" como direc-
cion de palabra.
2.4.2. Modos de direccionamiento
Se denominan modos de direccionamiento a aquellos algoritmos empleados por
el procesador para calcular las direcciones de las instrucciones y datos.
Los operandos de la instruccion pueden venir especicados por un registro, una
constante o una posicion de memoria. Cuando se utiliza una posicion de memoria la
direccion real de memoria especicada por el modo de direccionamiento se denomina
direccion efectiva.
El campo o campos de direccion en un formato de instruccion usual esta bastante
limitado. Nos gustara poder referenciar un rango grande de posiciones de memoria
principal o, en algunos sistemas, de memoria virtual. Para conseguir este objetivo
se han empleado diversas tecnicas de direccionamiento. Todas ellas implican algun
compromiso entre el rango de direcciones y/o exibilidad de direccionamiento de una
parte, y por otra, el numero de referencias a memoria y/o la complejidad d
Comentarios de: Capítulo 2 - El repertorio de instrucciones (0)
No hay comentarios