Anda di halaman 1dari 32

Organizacin y arquitectura

Cuando se describe un computador, frecuentemente se distingue entre arquitectura y


organizacin.
La arquitectura de computadores se refiere a los atributos de un sistema que son visibles
a un programador, o para decirlo de otra manera, aquellos atributos que tienen un impacto
directo en la ejecucin lgica de un programa. La organizacin de computadores se
refiere a las unidades funcionales y sus interconexiones, que dan lugar a especificaciones
arquitectnicas. Entre los ejemplos de atributos arquitectnicos se encuentran el conjunto
de instrucciones, el nmero de bits usados para representar varios tipos de datos (por
ejemplo, nmeros, caracteres), mecanismos de E/S y tcnicas para direccionamiento de
memoria. Entre los atributos de organizacin se incluyen aquellos detalles de hardware
transparentes al programador, tales como seales de control, interfaces entre el
computador y los perifricos y la tecnologa de memoria usada.
Estructura y funcionamiento
Estructura: el modo en que los componentes estn interrelacionados.
Funcionamiento: la operacin de cada componente individual como parte de la
estructura.
Cmo estamos aprendiendo arquitectura de computadoras?
En trminos de descripcin tenemos dos opciones: empezar por lo ms bajo y construir
una descripcin completa, o comenzar con una visin desde arriba y descomponer el
sistema en sus subpartes. La experiencia a partir de muchos campos nos ha enseado
que la descripcin de arriba abajo (top-Down) es la ms clara y efectiva.
El computador ser descrito de arriba abajo. Comenzamos con los componentes
principales del sistema describiendo su estructura y funcionamiento, y seguimos
sucesivamente hacia capas ms bajas de la jerarqua.
FUNCIONAMIENTO:
Las funciones bsicas que un computador puede llevar a cabo. En trminos generales
hay solo cuatro:
Procesamiento de datos
Almacenamiento de datos
Transferencia de datos
Control
El computador, por supuesto, tiene que ser capaz de procesar datos. Los datos pueden
adoptar una gran variedad de formas, y el rango de los requisitos de procesado es amplio.
Tambin es esencial que un computador almacene datos. Incluso si el computador est
procesando datos al vuelo (es decir, los datos se introducen, se procesan, y los resultados
se obtienen inmediatamente), el computador tiene que guardar temporalmente al menos

aquellos datos con los que est trabajando en un momento dado. As hay al menos una
funcin de almacenamiento de datos a corto plazo.
Con igual importancia el computador lleva a cabo una funcin de almacenamiento de
datos a largo plazo. El computador almacena ficheros de datos para que se recuperen y
actualicen en un futuro.
Qu es un fichero?
El computador tiene que ser capaz de transferir datos entre l mismo y el mundo
exterior. El entorno de operacin del computador se compone de dispositivos que sirven
bien como fuente o bien como destino de datos. Cuando se reciben o se llevan datos a un
dispositivo que est directamente conectado con el computador, el proceso se conoce
como entrada-salida (E/S), y este dispositivo recibe el nombre de perifrico. El proceso de
transferir datos a largas distancias, desde o hacia un dispositivo remoto, recibe el nombre
de comunicacin de datos.
Finalmente, debe haber un control de estas tres funciones. Este control es ejercido por
el(los) ente(s) que proporciona(n) al computador instrucciones. Dentro del computador,
una unidad de control gestiona los recursos del computador y dirige las prestaciones de
sus partes funcionales en respuesta a estas instrucciones.

A este nivel general de discusin, el nmero de operaciones posibles que pueden ser
realizadas es pequeo. La Figura 1.2 muestra los cuatro posibles tipos de operaciones. El
computador puede funcionar como un dispositivo de transferencia de datos (Figura 1.2a),
simplemente transfiriendo datos de un perifrico o lnea de comunicaciones a otro.
Tambin puede funcionar como un dispositivo de almacenamiento de datos (Figura 1.2b),
con datos transferidos desde un entorno externo al almacn de datos del computador
(leer) y viceversa (escribir). Los dos diagramas siguientes muestran operaciones que

implican procesamiento de datos, en datos, o bien almacenados (Figura 1.2c) o en


trnsito entre el almacn y el entorno externo (Figura 1.2d).

ESTRUCTURA:
Representacin ms sencilla del computador. El computador es una entidad que
interacta de alguna manera con su entorno externo. En general, todas sus conexiones
con el entorno externo pueden ser clasificadas como dispositivos perifricos o lneas de
comunicacin.

Hay cuatro componentes estructurales principales:


Unidad Central de Procesamiento (CPU, Central Processing Unit): controla el
funcionamiento del computador y lleva a cabo sus funciones de procesamiento de datos.
Frecuentemente se le llama simplemente procesador.
Memoria principal: almacena datos.
E/S: transfiere datos entre el computador y el entorno externo.
Sistema de interconexin: es un mecanismo que proporciona la comunicacin entre la
CPU, la memoria principal y la E/S.

UNIDAD CENTRAL DE PROCESAMIENTO:


Sus principales componentes estructurales son:
Unidad aritmtico-lgica (ALU, Arithmetic Logic Unit): lleva a cabo las funciones de
procesamiento de datos del computador.
Registros: proporcionan almacenamiento interno a la CPU.
Interconexiones CPU: son mecanismos que proporcionan comunicacin entre la unidad
de control, la ALU y los registros.

Unidad de control: controla el funcionamiento de la CPU y por tanto del computador.

Por qu estudiar la organizacin y arquitectura de computadoras?


El computador est en el corazn de la informtica. Sin l la mayora de las asignaturas
de informtica seran hoy una rama de la matemtica terica. Para ser hoy un profesional
en cualquier campo de la informtica uno no debe ver al computador como una caja negra
que ejecuta programas mgicamente. Todos los estudiantes deben, en cierta medida,
comprender y valorar los componentes funcionales de un computador, sus caractersticas,
su funcionamiento y sus interacciones. Tambin sus implicaciones prcticas. Los
estudiantes necesitan comprender la arquitectura del computador para estructurar un
programa de forma que este sea ms eficiente en una mquina real. Seleccionando el

sistema que se va a usar, debe ser capaz de comprender el compromiso entre varios
componentes, como la velocidad del reloj de la CPU frente al tamao de la memoria.

MEMORIA PRINCIPAL
La memoria del IAS consiste en 1 000 posiciones de almacenamiento, llamadas palabras,
de cuarenta dgitos binarios (bits) cada una. Tanto los datos como las instrucciones se
almacenan en la memoria principal.
Por tanto, los nmeros se pueden representar en forma binaria y cada instruccin tiene
tambin un cdigo binario. La Figura 2.2 muestra estos formatos. Cada nmero se
representa con un bit de signo y 39 bits de valor. Una palabra puede contener tambin
dos instrucciones de veinte bits, donde cada instruccin consiste en un cdigo de
operacin de ocho bits (codop) que especifica la operacin que se va a realizar y una
direccin de doce bits que indica una de las palabras de la memoria (numeradas de 0 a
999).

No hay una definicin universal del trmino palabra. En general, una palabra es un
conjunto ordenado de bytes o bits que representa la unidad bsica de almacenamiento de
informacin que se puede almacenar, transmitir o con la que se puede operar en un
determinado computador. Normalmente, si un procesador tiene un conjunto de
instrucciones de longitud fija, entonces la longitud de las instrucciones es igual a la
longitud de palabra.
La memoria principal tiene posiciones de memoria, las cuales son llamadas palabras, con
cierta cantidad de dgitos binario (bit) cada una. Tanto los datos como las instrucciones se
almacenan en la memoria principal.

Los nmeros se pueden representar de forma binaria y cada instruccin tambin tiene un
cdigo binario. Cada bit se representa con un bit de signo y los dems de valor.
La unidad de control dirige el IAS captando instrucciones de la memoria y ejecutando una
a una.
Para explicar esto, se necesita un diagrama de estructura ms detallado, como se indica
en la Figura 2.3. Esta figura muestra que tanto la unidad de control como la ALU
contienen posiciones de almacenamiento, llamadas registros, definidos de la siguiente
manera:
Registro Temporal de Memoria (MBR, MemoryBufferRegister): contiene una palabra
que debe ser almacenada en la memoria, o es usado para recibir una palabra procedente
de la memoria.
Registro de Direccin de Memoria (MAR): especifica la direccin en memoria de la
palabra que va a ser escrita o leda en MBR.
Registro de Instruccin (IR): contiene los ocho bits del cdigo de operacin de la
instruccin que se va a ejecutar.
Registro Temporal de Instruccin (IBR): empleado para almacenar temporalmente la
instruccin contenida en la parte derecha de una palabra en memoria.
Contador de Programa (PC): contiene la direccin de la prxima pareja de
instrucciones que van a ser captadas de la memoria.
Acumulador (AC) y Multiplicador cociente (MQ): Se emplean para almacenar
operandos y resultados de operaciones de la ALU temporalmente. Por ejemplo, el
resultado de multiplicar dos nmeros de cuarenta bits es un nmero de ochenta bits; los
cuarenta bits ms significativos se almacenan en el AC y los menos significativos en el
MQ.

El computador LA.S tiene un total de 21 instrucciones, que se indican en la Tabla 2.1.


Estas se pueden agrupar de la siguiente manera:
Transferencia de datos: transferir datos entre la memoria y los registros de la ALU o
entre dos registros de la ALU.
Salto incondicional: normalmente la unidad de control ejecuta instrucciones
secuencialmente en la memoria. Las instrucciones de salto pueden cambiar esta
secuencialidad. Esto facilita las operaciones repetitivas.
Salto condicional: el salto depende de una condicin, lo que permite puntos de
decisin.
Aritmtica: operaciones realizadas por la ALU.

Modificacin de direcciones: permite que la ALU haga operaciones con las direcciones
y las inserte en instrucciones almacenadas en memoria. Esto permite una considerable
flexibilidad de direccionamiento en un programa.

Generaciones de computadoras:

Procesadores Recientes
PENTIUM
Intel ha sido el nmero uno de los fabricantes de microprocesadores durante dcadas,
una posicin que no parece probable que abandone. La evolucin de su microprocesador
ms representativo es un buen indicador de la evolucin de la tecnologa de
computadores en general.

POWER PC

COMPONENTES DEL COMPUTADOR


La Figura 3.2 muestra estos componentes de alto nivel y sugiere las interacciones entre
ellos.
Tpicamente, la CPU se encarga del control. Intercambia datos con la memoria. Para ello,
usualmente utiliza dos registros internos (en la CPU): un registro de direcciones de
memoria (MAR, Memory Address Register), que especifica la direccin en memoria de la
prxima lectura o escritura, y un registro para datos de memoria (MBR, Memory Buffer
Register), que contiene el dato que se va a escribir en memoria o donde se escribe el dato
que se va a leer de memoria. Igualmente, un registro de direcciones de E/S (E/SAR, E/S
Address Register) especifica un dispositivo de E/S. Un registro para datos de E/S (E/S
BR, E/S Buffer Register) se utiliza para intercambiar datos entre un mdulo de E/S y la
CPU.
Un mdulo de memoria consta de un conjunto de posiciones, designadas por direcciones
numeradas secuencialmente. Cada posicin contiene un nmero binario que puede ser
interpretado como una instruccin o como un dato. Un mdulo de E/S transfiere datos
desde los dispositivos externos a la CPU y a la memoria, y viceversa. Contiene los
registros (buffers) internos para almacenar los datos temporalmente, hasta que puedan
enviarse.

Funcionamiento del computador


La funcin bsica que realiza un computador es la ejecucin de un programa, constituido
por un conjunto de instrucciones almacenadas en memoria. El procesador es
precisamente el que se encarga de ejecutar las instrucciones especificadas en el
programa.
Ejecucin de un programa:
En su forma ms simple consta de dos etapas: El procesador lee {capta} la instruccin de
memoria, y la ejecuta. La ejecucin del programa consiste en la repeticin del proceso de
captacin de instruccin y ejecucin de instruccin. Por supuesto, la ejecucin de la
instruccin puede a su vez estar compuesta de cierto nmero de pasos.
El procesamiento que requiere una instruccin se denomina ciclo de instruccin.

Los dos pasos se denotan como ciclo de captacin y ciclo de ejecucin.


La ejecucin del programa se para solo se para solo si la mquina se desconecta, se
produce algn tipo de error irrecuperable o ejecuta una instruccin del programa que
detiene al computador.

Ciclos de captacin y ejecucin


Al comienzo de cada ciclo de instruccin, la CPU capta una instruccin de memoria. En
una CPU tpica, se utiliza un registro llamado contador de programa (PC, Program
Counter) para seguir la pista de la instruccin que debe captase a continuacin. A no ser
que se indique otra cosa, la CPU siempre incrementa el PC despus de captar cada
instruccin, de forma que captar la siguiente instruccin de la secuencia (es decir, la
instruccin situada en la siguiente direccin de memoria). Considrese, por ejemplo, un
computador en el que cada instruccin ocupa una palabra de memoria de 16 bits. Se
supone que el contador de programa almacena el valor 300. La CPU captar la prxima
instruccin almacenada en la posicin 300. En los siguientes ciclos de instruccin, captar
las instrucciones almacenadas en las posiciones 301, 302, 303, y as sucesivamente. Esta
secuencia se puede alterar, como se explicar en breve.
La instruccin captada se almacena en un registro de la CPU conocido como registro de
instruccin (IR, Instruction Register). La instruccin se escribe utilizando un cdigo binario
que especifica la accin que debe realizar la CPU. La CPU interpreta la instruccin y lleva
a cabo la accin requerida.
En general, esta puede ser de cuatro tipos:
Procesador-Memoria: deben transferirse datos desde la CPU a la memoria, o desde la
memoria a la CPU.
Procesador-E/S: deben transferirse datos a o desde el exterior mediante transferencias
entre la CPU y un mdulo de E/S.
Procesamiento de Datos: la CPU ha de realizar alguna operacin aritmtica o lgica
con los datos.
Control: una instruccin puede especificar que la secuencia de ejecucin se altere
(como la una instruccin de salto). Por ejemplo, la CPU capta una instruccin de la
posicin 149 que especifica que la siguiente instruccin debe captarse de la posicin 182.
La CPU registrar este hecho poniendo en el contador de programa 182. As, en el

prximo ciclo de captacin, la instruccin se cargar desde la posicin 182 en lugar de


desde la posicin 150.
La ejecucin de una instruccin puede implicar una combinacin de estas acciones.
Considrese un ejemplo sencillo utilizando una mquina hipottica que incluye las
caractersticas enumeradas en la Figura 3.4. El procesador posee un nico registro de
datos llamado acumulador (AC). Tanto las instrucciones como los datos son de 16 bits.
As, es conveniente organizar la memoria utilizando posiciones de 16 bits, o palabras. El
formato de instruccin indica que puede haber 24 = 16 cdigos de operacin (codops)
diferentes, y se pueden direccionar directamente hasta 212 = 4096 (4K) palabras de
memoria.

La Figura 3.5 ilustra la ejecucin de una parte de un programa, mostrando las partes
relevantes de la memoria y los registros de la CPU *. El fragmento de programa suma el
contenido de la palabra de memoria en la direccin 940 con el contenido de la palabra de
memoria en la direccin 941 y almacena el resultado en esta ltima posicin. Se requieren
tres instrucciones, que consumen tres ciclos de captacin y tres de ejecucin:

Se utiliza notacin hexadecimal, en la que cada dgito representa cuatro bits. Esta es la
notacin ms conveniente para representar los contenidos de la memoria y los registros
cuando la longitud de palabra es mltiplo de 4 (por ejemplo, 8, 16, o 32).
1. El contador de programa (PC) contiene el valor 300, la direccin de la primera
instruccin. Esta instruccin (el valor hexadecimal 1940) se caiga en el registro de
instruccin (IR). Obsrvese que este proceso implicara el uso del registro de direccin de
memoria (MAR) y el registro de datos de memoria (MBR). Por simplicidad, se han
ignorado estos registros intermedios.
2. Los primeros cuatro bits de IR (primer dgito hexadecimal) indican que el acumulador
(AC) se va a cargar. Los restantes 12 bits (tres dgitos hexadecimales) especifican la
direccin (940) que se va a cargar.
3. El registro PC se incrementa, y se capta la siguiente instruccin (5941) desde la
direccin
301.
4. El contenido anterior de AC y el de la posicin de memoria 941 se suman, y el resultado
se almacena en AC.

5. El registro PC se incrementa, y se capta la siguiente instruccin (294) desde la posicin


302.
6. El contenido de AC se almacena en la posicin 941.
En este ejemplo, se necesitan tres ciclos de instruccin, cada uno con un ciclo de
captacin y un ciclo de ejecucin, para sumar el contenido de la posicin 940 y el
contenido de la 941. Con un conjunto de instrucciones ms complejo, se hubieran
necesitado menos ciclos. As, en algunos procesadores ms antiguos se incluan
instrucciones con ms de una direccin. De esta forma, el ciclo de ejecucin de una
instruccin generara ms de una referencia a memoria. Adems, en lugar de referencias
a memoria, una instruccin puede especificar una operacin de E/S.

Estados del ciclo de instruccin

Para un ciclo de instruccin dado, algunos estados pueden no darse y otros pueden
visitarse ms de una vez. Los estados se describen a continuacin:
Clculo de la direccin de la instruccin (IAC): determina la direccin de la siguiente
instruccin a ejecutar. Normalmente, esto implica aadir un nmero fijo a la direccin de la
instruccin previa. Por ejemplo, si las instrucciones tienen un tamao de 16 bits y la
memoria se organiza en palabras de 16 bits, se suma 1 a la direccin previa. En cambio,
si la memoria se organiza en bytes (8 bits) direccionables individualmente, entonces hay
que sumar 2 a la direccin previa.
Captacin de instruccin (if, Instruction Fetch): la CPU lee la instruccin desde su
posicin en memoria.

Decodificacin de la operacin indicada en la instruccin (IOD, Instruction


Operation Decoding): analiza la instruccin para determinar el tipo de operacin a realizar
y el (los) operando(s) a utilizar.
Clculo de la direccin del operando (OAC): si la instruccin implica una referencia a
un operando en memoria o disponible mediante E/S, determina la direccin del operando.
Captacin de operando (OF): capta el operando desde memoria o se lee desde el
dispositivo de E/S.
Operacin con los datos (DO, Data Operation): realiza la operacin indicada en la
instruccin.
Almacenamiento de operando (OS, Operand Store): escribe el resultado en memoria o
lo saca a travs de un dispositivo de E/S.
Modos de direccionamiento y formatos:
El Captulo 11 trata los modos de direccionamiento (considerando tambin los registros) y
los formatos de instrucciones.
Cuando tratemos los modos de direccionamiento en el Captulo 11, veremos que las
direcciones son de hecho un tipo de datos. En muchos casos debe realizarse algn
clculo sobre la referencia a un operando de una instruccin a fin de determinar la
direccin de memoria principal o virtual. En este contexto, las direcciones pueden
considerarse como nmeros enteros sin signo.

PUNTOS CLAVE:
Los elementos esenciales de las instrucciones de los computadores son el cdigo de
operacin, que especifica la operacin a realizar, las referencias a operandos origen y
destino, que especifican la ubicacin de las entradas y salidas para la operacin; y la
referencia a la siguiente instruccin, que usualmente est implcita.
Los cdigos de operacin especifican las operaciones dentro de las siguientes categoras
generales: operaciones aritmticas y lgicas, transferencia de datos entre dos registros,
entre registros y memoria, o entre dos posiciones de memoria; entrada/salida (E/S); y
control.
Las referencias a operandos especifican registros o posiciones de memoria de datos de
operandos. Los datos pueden ser de diversos tipos: direcciones, nmeros, caracteres o
datos lgicos.
Una caracterstica arquitectural comn de los procesadores es la utilizacin de una pila,
que puede estar visible o no al programador. Las pilas se emplean para gestionar las
llamadas y retornos de procedimientos, y pueden contemplarse como una forma
alternativa de direccionar memoria. Las operaciones bsicas con la pila son PUSH
(introducir), POP (extraer), y operaciones con una o dos posiciones de la cabecera

de la pila. Las pilas normalmente se implementan de manera que crecen de direcciones


ms altas hacia ms bajas.
Repertorio de instrucciones:
Desde el punto de vista del diseador, el conjunto de instrucciones mquina constituye la
especificacin o requisitos funcionales del procesador: implementar el procesador es una
tarea que, en buena parte, implica implementar el repertorio de instrucciones mquina.
Desde el punto de vista del usuario, quien elige programar en lenguaje mquina
(realmente en lenguaje ensamblador) se hace consciente de la estructura de registros y
de memoria, de los tipos de datos que acepta directamente la mquina y del
funcionamiento de la ALU.
Caractersticas de las instrucciones maquinas:
El funcionamiento del procesador est determinado por las instrucciones que ejecuta.
Estas instrucciones se denominan instrucciones mquina o instrucciones del computador.
Al conjunto de instrucciones distintas que puede ejecutar el procesador se denomina
repertorio de instrucciones del procesador.
Elementos de una instruccin maquina:
Cada instruccin debe contener la informacin que necesita el procesador para su
ejecucin. La Figura 10.1 muestra los pasos involucrados en la ejecucin de
instrucciones, e implcitamente define los elementos constitutivos de una instruccin
mquina. Dichos elementos son:
Cdigo de operacin: especifica la operacin a realizar (suma, E/S, etc.). La operacin
se indica mediante un cdigo binario denominado cdigo de operacin o, abreviadamente,
codop.
Referencia a operandos fuente u origen: la operacin puede implicar a uno o ms
operandos origen, es decir operandos que son entradas para la instruccin.
Referencia al operando de destino o resultado: la operacin puede producir un
resultado.
Referencia a la siguiente instruccin: dice al procesador de dnde captar la siguiente
instruccin tras completarse la ejecucin de la instruccin actual.
La siguiente instruccin a captar est en memoria principal o, en el caso de un sistema de
memoria virtual, bien en memoria principal o en memoria secundaria (disco). En la
mayora de los casos, la siguiente instruccin a captar sigue inmediatamente a la
instruccin en ejecucin hay referencia explcita a la siguiente instruccin. Cuando sea
necesaria una referencia explcita, debe suministrarse la direccin de memoria principal o
de memoria virtual. La forma en que se da dicha direccin se discute en el Captulo 11.
Los operandos origen y destino pueden estar en alguna de las tres reas siguientes:

Memoria principal o virtual: como en las referencias a instrucciones siguientes, debe


indicarse la direccin de memoria principal o de memoria virtual.
Registro del procesador: salvo raras excepciones, un procesador contiene uno o ms
registros que pueden ser referenciados por instrucciones mquina. Si solo existe un
registro, la referencia a l puede ser implcita. Si existe ms de uno, cada registro tendr
asignado un nmero nico y la instruccin debe contener el nmero del registro deseado.
Dispositivo de E/S: la instruccin debe especificar el mdulo y dispositivo de E/S para
la operacin. En el caso de E/S asignadas en memoria, se dar otra direccin de memoria
principal o virtual.

Representacin de instrucciones:
Dentro del computador, cada instruccin se representa por una secuencia de bits. La
instruccin est dividida en campos correspondientes a los elementos constitutivos de la
misma.

//copiar la imagen del IAS

En la mayora de los repertorios de instrucciones se emplea ms de un formato. Durante


su ejecucin, la instruccin se escribe en un registro de instruccin (IR) del procesador.
El procesador debe ser capaz de extraer los datos de los distintos campos de la
instruccin para realizar la operacin requerida.
Los codops se representan mediante abreviaturas, denominadas nemotcnicos, que
indican la operacin en cuestin. Ejemplos usuales son:
ADD Sumar
SUB Restar
MPY Multiplicar
DIV Dividir
LOAD Cargar datos de memoria
STOR Almacenar datos en memoria (memorizar)
Tipos de instrucciones:
Instruccin de alto nivel X=X+Y;
Considerando un repertorio simple de instrucciones mquina, la operacin podra llevarse
a cabo con tres instrucciones:
1. Cargar un registro con el contenido de la posicin de memoria 513.
2. Sumar al registro el contenido de la posicin de memoria 514.
3. Memorizar el contenido del registro en la posicin de memoria 513.
Como se observa, una sola instruccin BASIC puede necesitar de tres instrucciones
mquina. Este es un caso tpico de relacin entre un lenguaje de alto nivel y un lenguaje
mquina.
El lenguaje de alto nivel expresa las operaciones de forma algebraica concisa, utilizando
variables. Un lenguaje mquina expresa las operaciones de una manera elemental,
implicando operaciones de transferencia de datos a o desde registros.
Cualquier programa escrito en alto nivel debe traducirse a lenguaje mquina para ser
ejecutado. Por tanto, el repertorio de instrucciones mquina debe ser suficientemente
amplio como para expresar cualquiera de las instrucciones de un lenguaje de alto nivel.
Teniendo esto presente, los tipos de instrucciones se pueden clasificar de la siguiente
manera:
De procesamiento de datos: instrucciones aritmticas y lgicas

De almacenamiento de datos: instrucciones de memoria.


De transferencia de datos: instrucciones de E/S.
De control: instrucciones de comprobacin y de bifurcacin.
Numero de Direcciones:
Cul es el nmero mximo de direcciones que seran necesarias en una instruccin?
Evidentemente, las instrucciones aritmticas y lgicas son las que requieren ms
operandos. Prcticamente todas las operaciones aritmticas y lgicas son o bien unarias
(un operando) o binarias (dos operandos). As pues, necesitaramos un mximo de dos
direcciones para referenciar operandos.
El resultado de una operacin debe almacenarse, lo que sugiere una tercera direccin.
Finalmente, tras completar una instruccin debe captarse la siguiente, y su direccin es
pues necesaria.

Es posible arreglrselas con una sola direccin haciendo uso de las pilas

Diseo del repertorio de instrucciones:


Los ms importantes entre dichos aspectos fundamentales de diseo son:
El repertorio de operaciones: cuntas y qu operaciones considerar, y cun complejas
deben ser.
Los tipos de datos: los distintos tipos de datos con los que se efectan operaciones.
Los formatos de instrucciones: longitud de la instruccin (en bits), nmero de
direcciones, tamao de los distintos campos, etc.
Los registros: nmero de registros del procesador que pueden ser referenciados por las
instrucciones y su uso.
El direccionamiento: el modo o modos de direccionamiento mediante los cuales puede
especificarse la direccin de un operando.
Tipos de operandos
Las instrucciones mquina operan con datos. Las categoras generales ms importantes
de datos son:
Direcciones.
Nmeros.
Caracteres.
Datos lgicos.
Tipos de operaciones

Modos de direccionamiento y formato:


Puntos clave:
La referencia a un operando en una instruccin contiene o bien su valor (inmediato) o una
referencia a la direccin del operando. Los diversos repertorios de instrucciones utilizan

una gran variedad de modos de direccionamiento. Estos modos incluyen el


direccionamiento directo (la direccin del operando est en el campo de direcciones),
indirecto (el campo de direcciones apunta a la posicin que contiene la direccin del
operando), a registro, indirecto con registro, y diversos tipos de desplazamiento en los que
el valor de un registro se suma a un valor de direccin para producir la direccin del
operando.
El formato de instruccin define la forma de los distintos campos de la instruccin. El
diseo del formato de instrucciones es una tarea difcil que debe considerar la longitud de
las instrucciones, fija o variable, los nmeros de bits asignados al cdigo de operacin y a
cada referencia a operando, y la forma en que se determina el modo de direccionamiento.
Qu se debe saber?
Se necesita saber qu hace una instruccin, tipos de operandos y de operaciones que
pueden especificarse mediante instrucciones mquina.
Direccionamiento:
Las direcciones son de hecho un tipo de datos. En muchos casos debe realizarse algn
clculo sobre la referencia a un operando de una instruccin a fin de determinar la
direccin de memoria principal o virtual. En este contexto, las direcciones pueden
considerarse como nmeros enteros sin signo.
Definen como se llevara a cabo determinada instruccin, existen muchos modos de
direccionamiento.
Para que el direccionamiento?
El campo o campos de direcciones en un formato de instruccin usual estn bastante
limitado. Sera deseable poder referenciar un rango elevado de posiciones de memoria
principal o, en algunos sistemas, de memoria virtual. Para conseguir este objetivo se han
empleado diversas tcnicas de direccionamiento.
Todas ellas implican algn compromiso entre el rango de direcciones y/o flexibilidad de
direccionamiento de una parte y, por otra, el nmero de referencias a memoria y/o la
complejidad de clculo de las direcciones. Analizaremos los modos de direccionamiento
ms comunes:
Inmediato
Directo
Indirecto
Registro
Indirecto con registro

Con desplazamiento
. Pila

Estos modos se ilustran en la Figura 11.1. En adelante utilizaremos la siguiente notacin:


A =contenido de un campo de direccin en la instruccin
R = contenido de un campo de direccin en la instruccin que referencia a un registro
EA = direccin real (efectiva) de la posicin que contiene el operando que se referencia
(X) = contenido de la posicin de memoria X o del registro X

La Tabla 11.1 indica el clculo de la direccin realizado para cada modo de


direccionamiento.
Antes de comenzar esta discusin debemos hacer dos comentarios. El primero es que
prcticamente todas las arquitecturas de computadores ofrecen ms de uno de estos
modos de direccionamiento. La cuestin que surge es cmo determina la unidad de
control qu modo de direccionamiento se est empleando en cada instruccin. Se
adoptan diversos enfoques alternativos. A menudo, codops diferentes emplearn modos
de direccionamiento distintos. Tambin, uno o ms bits del formato de instruccin pueden
utilizarse como campo de modo. El valor del campo de modo determina qu modo de
direccionamiento va a utilizarse.
El segundo comentario se refiere a la direccin efectiva (EA, effective address). En un
sistema sin memoria virtual, la direccin efectiva ser o una direccin de memoria
principal o un registro. En un sistema con memoria virtual, la direccin efectiva es una
direccin virtual o un registro. La correspondencia real con una direccin fsica depender
del mecanismo de paginacin y no est visible al programador.
Direccionamiento inmediato:
La forma ms sencilla de direccionamiento es el direccionamiento inmediato, en el que el
operando est en realidad presente en la propia instruccin:

Operando = A
Este modo puede utilizarse para definir y utilizar constantes o para fijar valores iniciales de
variables.
Normalmente, el nmero se almacena en complemento a dos; el bit ms a la izquierda del
campo de operando se utiliza como bit de signo. Cuando el operando se carga en un
registro de datos, el bit de signo se replica hacia la izquierda hasta la longitud total de la
palabra de datos.
La ventaja del direccionamiento inmediato es que, una vez captada la instruccin, no se
requiere una referencia a memoria para obtener el operando, ahorrndose pues un ciclo
de memoria o de cach en el ciclo de instruccin. La desventaja es que el tamao del
nmero est restringido a la longitud del campo de direcciones que, en la mayora de los
repertorios de instrucciones, es pequeo comparado con la longitud de palabra.
Direccionamiento directo:
Una forma muy sencilla de direccionamiento es el direccionamiento directo, en el que el
campo de direcciones contiene la direccin efectiva del operando:
EA = A
Esta tcnica fue comn en las primeras generaciones de computadores y se encuentra
an en diversos sistemas. Solo requiere una referencia a memoria y no necesita ningn
clculo especial. La limitacin obvia es que proporciona un espacio de direcciones
restringido.

Anda mungkin juga menyukai