Anda di halaman 1dari 51

APUNTES MATERIAL DE ESTUDIO

ICB-317 INFORMATICA APLICADA

Unidad 1 : Estructura de un Sistema Computacional

FACULTAD DE INGENIERIA
ESCUELA DE INGENIERA CIVIL BIOMDICA
(1er. Semestre 2015)
1.1. INTRODUCCION.

Para comenzar, se sealar la diferencia sutil entre dos conceptos que se suelen confundir o
mezclar, el de arquitectura y el de estructura. Una visin rpida es que la primera se puede
definir como la apariencia funcional que presenta a sus usuarios inmediatos; es decir, los
atributos o caractersticas de un sistema visibles al programador. En cambio, la organizacin
o estructura de un computador se refiere a la estructura lgica que da forma a su
arquitectura.
En palabras sencillas, la arquitectura describe lo que sucede, mientras que la estructura
describe cmo sucede.
La estructura de un computador nos muestra cmo es por dentro; estudia las unidades
operacionales de un computador as como las formas de relacionarlas para que implementen
las especificaciones de la arquitectura. Atributos de la estructura son los detalles del
hardware transparentes al programador como:
Las seales de control
Interfaces entre el computador y los perifricos
La tecnologa de memoria utilizada
El tipo de operadores aritmticos seleccionados.

Con el ejemplo que se da a continuacin se ven las diferencias entre los dos conceptos. Una
decisin que afecta a la arquitectura es determinar si el computador va a disponer de una
determinada operacin aritmtica, por ejemplo, el producto matricial.
Una decisin de estructura es estudiar cmo implementar dicha operacin, si mediante un
sistema secuencial o combinacional; mediante el co-procesador o una unidad especial o en
la Unidad Aritmtica-Lgica (UAL) del computador. La decisin de diseo de la estructura se
fundamenta, entre otros, en:
La velocidad de ejecucin
En el tamao (de los componentes)
El consumo de potencia; etc.

La diferencia entre arquitectura y estructura aparece de manera clara en las familias de


computadores, que comparten una misma arquitectura pero tienen diferentes estructuras.

2
Consecuentemente, los diferentes modelos de la familia tienen diferentes precios y
caractersticas de rendimiento. An ms, el concepto de estructura est ligado a la
tecnologa de fabricacin, mientras que la arquitectura es independiente de l, de tal manera
que una arquitectura puede perpetuarse durante aos, mientras es muy extrao que una
estructura dure demasiado tiempo.
En lo que respecta al rendimiento del computador, en un principio eran las mejoras
tecnolgicas las que aumentaban el rendimiento de los computadores. En la actualidad, es la
mejora en las arquitecturas la que ha logrado un gran avance en el rendimiento. En esta
direccin ha habido adelantos tan importantes como:
La segmentacin - pipeline
El paralelismo (computacin paralela)
Los computadores RISC

Cuando aparecieron los primeros diseos de computadores, existan dos enfoques.


Denominados en aquella poca como de Harvard y de Von Neumann. Como se muestra en
la Figura 1.1. La mquina de Von Neumann fue el primer computador de programa
almacenado que se defini. Una mquina de programa almacenado es aquella en la que los
datos y las instrucciones estn almacenadas en memoria.

Figura 1.1.

3
Los conceptos principales de la mquina de Von Neumman son:

La mquina se compone de los siguientes mdulos (ver Figura 1.2.):


La Memoria
La Unidad Central de Proceso compuesta a su vez de la Unidad Aritmtico-
Lgica y de la Unidad de Control
La Unidad de entrada/salida.

Adems, bsicamente:

La Memoria Principal almacena datos e instrucciones


El sistema opera con datos binarios
La Unidad de control interpreta las instrucciones de memoria y las ejecuta
La entrada y salida la maneja la Unidad de Control.

Figura 1.2.

La primera mquina que implement estos conceptos se llam IAS, fue desarrollada en el
Institute for Advanced Studies of Princeton, y no estuvo acabada hasta 1946-1952. En la
actualidad, salvo contadas excepciones, todos los computadores tienen su misma estructura.

Se puede recordar que un sistema se puede entender como un conjunto estructurado que
recibe informacin de entrada (inputs) y como producto de cierto(s) proceso(s), muestra
determinadas reacciones de salida (outputs). Por consiguiente, todo sistema puede
caracterizarse indicando las salidas que efecta en funcin de sus entradas.

4
En consecuencia, se puede resumir que un sistema de computadora est formado
esencialmente por (Figura 1.3.):
- Un circuito electrnico (inalterable), que es el Hardware, y que est caracterizado por
la cooperacin entre la computadora en s y su periferia;
- Programas que constituyen el Software, compuesto por programas del sistema, y
programas de aplicacin.

Figura 1.3.

Como se podr visualizar, la computadora consta esencialmente de:

MEMORIA PRINCIPAL (MP):


Es la unidad destinada a almacenar instrucciones (programas operativos) y datos, que se
estn procesando en un momento dado;
Se divide en palabras de memoria; y cada palabra en un nmero de bits;
Todas las celdas son del mismo tamao.

UNIDAD CENTRAL DE PROCESO (CPU): Formada por dos partes:

A. UNIDAD ARITMTICO LGICA (ALU).


Donde fundamentalmente se procesa la informacin. Es la que realiza las operaciones
(aritmticas y lgicas) elementales, tales como:
Suma Resta AND OR
Los datos sobre los que opera provienen de la Memoria Principal y se almacenan en la
misma, aunque pueden almacenarse temporalmente en los registros internos.

5
B. UNIDAD DE CONTROL
Es el mdulo que se encarga de leer las Instrucciones, una a una, de la Memoria Principal y
de generar las seales de control para que el computador las ejecute en el orden correcto
(secuencia y sincroniza). Las seales de control ms habituales son de: carga de registros,
de seleccin de caminos en multiplexores o demultiplexores, de control de la memoria,
apertura/cierre de puertas (o seales) especiales (tercer estado)..

UNIDAD DE ENTRADA/SALIDA (E/S).


Basicamente, realiza las transferencias de informacin (trfico de datos) entre el computador
y las unidades o sistemas perifricos. Una imagen ms detallada, se ensea en la Fig. 1.4.

Figura 1.4.

Toda la informacin se encuentra en la Memoria Principal (MP) y en los registros, adems de


los discos a los que se accede mediante la unidad E/S. Esta informacin puede ser datos o
instrucciones. La memoria principal almacena estos datos e instrucciones (en binario) sin
interpretacin por posicin. Todas las instrucciones estn almacenadas consecutivamente y
se ejecutan de igual forma. La nica manera de acceder a la MP es conociendo su direccin
dentro de la memoria. El ancho de palabra de la memoria es de 32 64 bits (4 u 8 bytes).

Las instrucciones de la MP se ejecutan en la CPU, en la unidad de control, que es donde se


coordinan todas las acciones de dicha instruccin. Muchos datos necesitan para por la ALU
(Unidad Aritmtico-Lgica en sus siglas en ingls). En la ALU es donde se realizan las
acciones de las instrucciones, se realizan operaciones aritmticas y lgicas muy sencillas.

6
La memoria principal es mucho ms lenta (hasta 100 veces) que el procesador. Para evitar
que esto ralentice el trabajo del procesador se crea un registro pequeo (como una pequea
memoria) para disminuir la comunicacin directa con la memoria. La memoria principal es
voltil, se hace con tecnologa RAM. Necesitamos una memoria no voltil donde se pueden
almacenar programas o datos permanentemente. Todos estos dispositivos estn fuera del
computador pero necesitamos que se comuniquen con l, por ello existe la unidad de E/S.
Tambin otros perifricos son importantes para darle utilidad al computador, todos ellos se
comunican a travs del mismo dispositivo [ARLAN-2012] .

Figura 1.5.

7
1.2. COMPONENTES DE UN COMPUTADOR

1.2.1. MEMORIA PRINCIPAL.

Basicamente, la podemos ver como una lista ordenada de posiciones donde se almacenan
datos (con palabras de igual longitud) a razn de una palabra por posicin. O sea, se tiene:
m bits: 0, 1, 2, , 2m-1  2m datos distintos
m suele ser 8, 16, 32, 64
n bits: 0, 1, , 2n-1  2n direcciones distintas

Tcnicamente, para acceder a la memoria primero la unidad de control debe procesar la


instruccin con la que lo pedimos y enviar una peticin (MEMRQ). La memoria tarda un
tiempo determinado en introducir el dato o instruccin solicitado en el bus que se denomina
tiempo de acceso (tacc) y que depende de su velocidad. Tambin hay que tener en cuenta su
tamao (que suele ser de 2 a 8 GB).
Estas acciones se pueden representar mediante cronogramas de tiempo (al igual que las
especificaciones tcnicas de los circuitos integrados chips). Estos cronogramas son
importantes para entender cmo funcionan las distintas seales de los dispositivos
electrnicos, y cuando estn disponibles los datos en ellos.

Figura 1.5.

8
Figura 1.6.

En la Figura 1.6. se ensea un esquema ms detallado de la relacin entre la CPU y la


memoria principal. Se explicar brevemente con cronogramas de ejemplos [ARLAN-2012] .

En este caso la instruccin es la lectura de la memoria principal.


Primero se coloca el bus de direcciones. La direccin debe ser estable.

Cuando se estabiliza se hace la peticin de memoria, siempre debe activarse despus.


Como MEMQR tiene rayita arriba, se activa cuando est a cero.

Se mantiene activa hasta el fin de la peticin.


Se activa la instruccin de lectura.

9
Cuando la instruccin finaliza se desactiva la peticin.
Entonces se obtiene el dato, se van activando hasta completarse y estabilizarse.

El tiempo de acceso es el tiempo que tarda el procesador en comenzar la instruccin desde


que se envi la direccin. El tiempo de lectura es el tiempo total que se tarda en leer la
direccin.

La escritura tiene un cronograma simtrico, como el que se muestra a continuacin (Figura


1.7.) [ARLAN-2012] .

La idea es que el alumno entienda y comprenda los diagramas de tiempo, cuando estudie los
manuales de los componentes (y circuitos) electrnicos.

10
Figura 1.7.

Desde los primeros das de la informtica, los programadores han querido contar con una
memoria rpida e infinita para que sus programas se ejecuten ms rpidamente y puedan
manejar grandes cantidades de cdigo y datos de una forma eficiente. El problema es que
hoy en da no existe un nico tipo de memoria que sea a la vez rpida y grande a un coste
razonable. Por ello, como veremos a lo largo de este tema, los sistemas actuales combinan
distintos tipos de memoria, con distintas velocidades y tamaos, para crear la ilusin de que
realmente existe una memoria con las caractersticas deseadas. Esta combinacin dar
lugar a una jerarqua de memoria.

Existen distintos tipos de memoria. El objetivo de combinar los distintos tipos de memoria de
un computador en una jerarqua de memorias es aprovechar el principio de localidad. Una
jerarqua de memoria consiste en mltiples niveles de memoria con diferentes velocidades y
capacidades, donde las memorias ms rpidas suelen ser las ms caras por bit y, por tanto,
las ms pequeas. Hoy en da, son tres las tecnologas que se utilizan habitualmente
construir la jerarqua de memoria. La memoria principal se construye con SDRAM
(Synchronous Dynamic RAM).

11
Figura 1.8.

Los niveles ms cercanos a la CPU, como la memoria cach, se construyen con tecnologa
SRAM. La SDRAM es ms barata por bit que la SRAM pero es ms lenta. Por ltimo, la
tecnologa para construir el nivel ms lento y barato por bit es el disco magntico. En la
Tabla 1.1. tenemos valores de tiempo de acceso y precios de las tres tecnologas en el ao
2009. Cuanto ms rpida es una memoria, ms cara es.

Tabla 1.1.:

Debido a estas diferencias de costo y tiempo de acceso, es ventajoso construir memorias


como una jerarqua de niveles, con las memorias ms rpidas cerca del procesador y las
ms lentas lejos de l (Figura 1.8). El objetivo general que se persigue es proporcionar al
usuario la mxima capacidad de memoria que se pueda conseguir usando la tecnologa ms
barata, pero con un tiempo de acceso similar al de la memoria ms rpida. Esto se puede
lograr debido a que, como ya hemos comentado anteriormente, los programas muestran
tanto localidad temporal (tendencia a volver a utilizar en breve datos a los que ya se ha
accedido) como localidad espacial (tendencia a referenciar datos que estn cerca de otros
recientemente accedidos).

12
Las jerarquas de memoria sacan provecho de la localidad temporal manteniendo los datos
accedidos ms recientemente cerca del procesador (en los niveles de memoria ms
rpidos). Tambin sacan provecho de la localidad espacial moviendo bloques de datos
contiguos a los niveles de la jerarqua ms cercanos al procesador.

Tabla 1.2.

Un esquema que representa la jerarqua y los tipos de las memorias, se muestra en la


Figura 1.9.

Figura 1.9.

13
Adems, desde el punto de vista del almacenamiento fsico, se pueden distinguir:

Semiconductoras: La celda es un condensador o uno o varios transistores. Ejemplos:


Biestables, Registros, ROM (Read Only Memory), RAM (Random Access Memory), Flash,
CCD (Charge Coupled Device),
Magnticas: La celda es un elemento que se magnetiza por campos EM. Ejemplos: Discos,
Cintas, Ferritas,
pticas (magneto-pticas): La celda se calienta por lser y se magnetiza; se lee por lser.
Ejemplos: CDROMs, DVDs,
Otras: Tarjetas perforadas, criognicas, etc.

Tambin, segn la posibilidad de modificar sus contenidos, se pueden distinguir varios tipos
de memoria:

a.- Memoria pasiva. Conocida como ROM (read-only memory).; es una memoria de slo
lectura direccionable discrecionalmente. El fabricante almacena en este mdulo una
informacin fija, de acuerdo con los deseos del usuario. Esta no se pierde (si falla la energa
elctrica), pero tampoco es modificable.

b.- Memoria pasiva programable. Conocida como PROM (programable PROM) es una
memoria tipo ROM que el propio usuario puede programar elctricamente mediante un
equipo especial.

Adems, segn la tecnologa, pueden diferenciarse (y estudiarse) en:


() memoria esttica (SRAM);
() memoria dinmica (DRAM).

La memoria RAM esttica es rpida y cara, y la memoria RAM dinmica es ms barata pero
algo ms lenta (y necesita un proceso habitual de refresh). Por ello, la RAM esttica se usa
para crear la memoria cach de alta velocidad en la CPU, mientras que la RAM dinmica
forma el extendido espacio del sistema RAM.

14
Tambin existen dos conceptos importantes relacionados con la memoria; que se
aprovechar de recordarlos.

A.- La memoria virtual:

La memoria virtual apareci para facilitar la tarea del programador en los casos en que los
programas eran tan largos que no entraban en la memoria. En estos casos, de manera
transparente al usuario, el programa se divida en bloques que iban de la memoria
secundaria a la principal y de la principal a la secundaria,
secundaria segn fueran las necesidades del
programa. Este tipo de memoria
memoria tambin permita la gestin de la multiprogramacin.
Esta memoria la utiliz por primera vez el computador ATLAS diseado en la Universidad de
Manchester; aunque los primeros computadores comerciales que la utilizaron fueron los
IBM/360. En 1974 la familia
ilia IBM/370 introdujo el mecanismo Translation Lookaside Buffer
(TLB) para la traduccin de direcciones.
Las
as direcciones virtuales suelen seleccionarse dentro de un nmero mucho mayor de
direcciones que las disponibles dentro la memoria fsica. Por esta rrazn
azn debemos tener en
cuenta que los procesos hacen referencia a direcciones virtuales pero estas direcciones
deben ser transformadas en direcciones reales para que los procesos se puedan ejecutar.
Ver un esquema en la Figura 1.10a.
1.10

Figura 1.10a.

15
Para poder referir a las direcciones virtuales, stas deben ser traducidas, o mapeadas, en
direcciones de memoria fsica por un mecanismo de "traduccin de direcciones". Adems,
Las direcciones virtuales deben ser transformadas dentro de las direcciones reales, mientras
el proceso est en ejecucin; y la traduccin de direcciones deber hacerse rpidamente
para no hacer lento el sistema.
La Figura 1.10b. ensea bsicamente cmo funciona el mecanismo de la memoria virtual,
desde que el programa virtual se lee desde la memoria secundaria, luego la CPU, mediante
la MMU traduce y enva las direcciones fsicas a la memoria principal.

Figura 1.10b.

B.- La memoria cach:

Uno de los problemas ms importantes a solucionar en la actualidad por un diseador de


computadores es la gran diferencia que existe entre las velocidades del microprocesador y
las velocidades de acceso a la memoria principal. Esto provoca que, en muchas ocasiones,
el procesador est inactivo (en su mayor parte del tiempo), lo que lleva aparejado una
degradacin del rendimiento. De las diferentes soluciones propuestas la ms interesante es
la utilizacin de una memoria interpuesta entre el microprocesador y la memoria principal
que permita aprovechar la localidad que aparece en la ejecucin de los programas para
aumentar el rendimiento del sistema. Esta memoria debe ser pequea y rpida para que se
acerque a las velocidades de procesamiento. En la actualidad es una tcnica muy
generalizada. Ver un esquema bsico en la Figura 1.10c.

16
El tiempo medio de acceso a la memoria es funcin del tiempo de acceso a la memoria
cach, la tasa de fallos, y las penalizaciones por fallos. El aumento del grado de
asociatividad y del tamao de la cach disminuyen la tasa de fallos, pero pueden repercutir
negativamente aumentando el tiempo de acceso a memoria cach al aumentar la
complejidad de la lgica de control. Por otro lado, el aumento del tamao del bloque
disminuye la tasa de fallos, pero puede llegar a aumentar el tiempo medio de acceso al
aumentar la penalizacin de cada fallo. En el diseo se debe encontrar un compromiso entre
todos estos factores.
Las clases de memoria cach incluyen cach principal (conocida tambin como cach de
Nivel 1 [L1]) y cach secundario (conocida tambin como cach de Nivel 2 [L2]). La memoria
cach tambin puede ser interna o externa (Nivel L3). La memoria cach interna se
incorpora en la CPU de la computadora, mientras que la externa se encuentra fuera de la
CPU.

Figura 1.10c.

Lo importante: recordar que la mayora de los computadores tienen cuatro tipos de memoria:
registros en la CPU, la memoria cach (tanto dentro como fuera del CPU), la memoria RAM
y el disco duro. En ese orden, van de menor capacidad y mayor velocidad a mayor
capacidad y menor velocidad.

17
Para entender los tres tipos de memoria cach que se pueden encontrar, hay que situarse en
el contexto histrico. Inicialmente, la memoria cach original comenz como una parte de la
memoria principal (RAM). Posteriormente, esta memoria se ubic fuera de la RAM,
pasando a convertirse en un tipo de memoria especial, entre la CPU y la memoria principal (y
en la tarjeta madre).
Con los avances tecnolgicos ((yy para mejorar la velocidad), la memoria cach se incorpor
como parte de la CPU; existiendo una cach interna y una cach externa (de distinto tipo,
tamao, costo y velocidad). Y finalmente, se pudo incorporar dos tipos de memoria cach al
interior de la
a CPU, una principal (L1) y una secundaria (L2). La memoria cach externa es
la L3
3 (y no forma parte de la RAM).

Cach L1
La memoria cache L1 (Nivel L1), es un tipo de memoria pequea y rpida que est constituida
en la CPU. A menudo se refiere como cach o cach interno principal. Se utiliza
para acceder a datos importantes y de uso frecuente. La memoria L1 es el tipo ms rpido y
ms caro de cach que est integrado en el equipo.

Cach L2
La memoria cach L2 (Nivel 2) se utiliza para almacenar la informacin recientemente
visitada. Tambin conocido como cache secundario. Est diseada para reducir el tiempo
necesario para acceder a los datos en los casos en que los datos ya se han utilizados
utilizado
previamente. La memoria cach L2 es secundaria a la CPU y es ms lenta que la
memoria cach L1, a pesar de ser a menudo mucho ms grande. Adems, los datos que se
solicitan desde la memoria cach L2 se copian en la cach L1.

Cach L3
La memoria cach L3
3 o de nivel 3 es una memoria que est integrada en la placa madre
(separada de la CPU). Se utiliza para alimentar a la memoria cach L2, y generalmente es
ms rpida que la memoria principal del sistema, pero todava ms lenta que la
memoria cach L2.

18
1.2.2. UNIDAD CENTRAL DE PROCESO.

Para que un computador pueda funcionar, la CPU necesita contar con un conjunto de
registros, donde pueda almacenar y manejar temporalmente la informacin que est siendo
transferida (y ejecutada). La cantidad de posibles registros depender del tipo y nivel de
los procesadores. Aunque en general, se pueden diferenciar en:

Registros de propsito general:


Son los que se encuentran en este banco de registros y podemos usarlos libremente en
cualquier instruccin. Que estn agrupados quiere decir que tienen seales de control
comunes. Este es el lugar donde se guardan los (generalmente pocos) registros que ms
rpidamente se van a operar.
Ejemplos tpicos son los acumuladores, punteros a direcciones o datos, o simples registros
para manipular datos. Por ejemplo: IR (Registro de Instrucciones), MAR (Registro de
Direcciones de memoria), MDR (Registro de Datos de Memoria) .

Registros de propsito especfico (o dedicados):


Estn reservados para el uso del Sistema, y su uso est restringido a determinadas
instrucciones y, en esas instrucciones, suele aparecer de forma implcita.
a.- Contador de programa
Contiene la direccin de la siguiente instruccin a ejecutar; suele trabajar de forma
secuencial.
b.- Registro de estado
Contiene los cdigos de condicin, que indican el estado de la ejecucin del programa.
Debemos actualizarlo cada vez que se haga una operacin en la ALU. En l se guardan los
flags.
c.- Puntero de pila (SP)
El puntero de pila da informacin sobre cul es el ltimo dato de la pila ya que contiene la
direccin de la MP en la que se encuentra ste o la primera posicin vaca. Podemos decir
que apunta a la cima de la pila. En algunos procesadores no existe el puntero de pila, en
ellos se utiliza un registro de propsito general como puntero de pila.

19
Existen generalmente dos operaciones bsicas: Si se realiza una operacin PUSH para
aadir un dato a la pila, se aumenta SP y se coloca el nuevo elemento en la nueva posicin.
Si se quiere extraer un dato de la pila se realiza la operacin POP, entonces se extrae el
contenido del registro al que apunta el SP y se decrementa el SP.

1.2.3. UNIDADES DE ENTRADA Y SALIDA.

En este tema, se incluyen los distintos elementos que conforman el sistema de


entrada/salida de un computador, el cual permite la comunicacin entre los diferentes
dispositivos conectados al sistema (Ver Figura 1.11.).

Bsicamente, el sistema de E/S es el encargado de proporcionar informacin a la CPU y de


permitir a sta comunicarse con el exterior y con otros dispositivos.

El sistema de E/S de un computador moderno puede ser bastante complejo. Por ello, nos
vamos a centrar slo en algunos aspectos bsicos, como son:
Clasificacin de los diferentes perifricos de E/S.
Programacin de los dispositivos de E/S.
Papel del sistema operativo en las comunicaciones.
Implementacin de la E/S: buses y protocolos de acceso.

Figura 1.11.

20
Debido a la gran cantidad de dispositivos que podemos utilizar para comunicar un
computador con el exterior, se hace necesario algn tipo de clasificacin para poder realizar
un estudio ms en profundidad. De hecho, existen varias clasificaciones de los dispositivos
de E/S, algunas de las cuales se muestran a continuacin.

Si nos centramos en el uso al que se destina un dispositivo, podemos llegar a la siguiente


clasificacin:
Almacenamiento: discos duros, diversos tipos de disquetes (unidades ZIP, etc.),
memorias flash, CDROMs, DVDs, grabadoras de CD/DVD, unidades de cinta, etc.
Interfaz con el usuario: teclados, ratones, tabletas grficas, joysticks, etc.
Visualizacin y multimedia: tarjetas grficas, monitores, impresoras, tarjetas de
sonido, altavoces, etc.
Comunicaciones: tarjetas de red (Ethernet, inalmbricas), mdems, etc.
Adquisicin de datos: cmaras de vdeo, micrfono+tarjeta de sonido, etc.

Si realizamos la clasificacin en funcin de la tasa de transferencia de datos o ancho de


banda, observamos que existe una gran diversidad (desde unos pocos bytes a MB o incluso
GB). Ver tabla 1.3.

Por lo tanto, una de las principales caractersticas de los dispositivos de E/S es su


heterogeneidad (usos muy diversos, grandes diferencias en cuanto a velocidad), debida, en
gran medida, a la tecnologa utilizada para su construccin.

Tabla 1.3.

21
Aunque, como se acaba de apreciar, desde el punto de vista tecnolgico existe una gran
heterogeneidad en los dispositivos de entrada/salida, la comunicacin y programacin siguen
ciertas reglas comunes.
Se puede centrar el estudio de la E/S desde el punto de vista del programador. Para ello se
podr estudiar cmo se direcciona y se accede a los puertos de los dispositivos para, a
continuacin, ver el tipo de instrucciones que se utilizan en dicho acceso y, por ltimo,
estudiar los mecanismos de interaccin entre la CPU y los dispositivos: sondeo (polling),
interrupciones y DMA (acceso directo a memoria).

Todos los perifricos cuentan con una serie de puertos de E/S. Estos puertos estn
implementados como registros externos a la CPU a travs de los cuales se comunican la
CPU y los dispositivos (ver Figura 1.12). Estos puertos de E/S se encuentran integrados en
un chip llamado controladora del dispositivo. Normalmente, en cualquier controladora
tendremos los siguientes registros que nos facilitan la comunicacin y el control del
dispositivo:
Registro de datos: en este registro se realiza la lectura/escritura del dato a transferir entre la
CPU y el dispositivo.
Registro de control: en l la CPU escribe las rdenes a realizar: leer, escribir, nicializacin,
configuracin del dispositivo, etc.
Registro de estado: nos permite saber en qu estado se encuentra el dispositivo. Por
ejemplo, nos informa si est disponible para aceptar una nueva orden o se encuentra
procesando una y debemos esperar (informacin de ready/not ready). Este registro suele
disponer de bits adicionales para indicar otra informacin sobre el estado del dispositivo

En cuanto a la comunicacin, sta se realiza a travs de canales o buses, que se definen


como el conjunto de lneas de comunicacin que conectan los distintos componentes de un
computador (CPU - memoria, dispositivos lentos, dispositivos rpidos, etc.). Los canales o
buses se suelen organizar de forma jerrquica (Figura 1.12) por cuestiones de eficiencia.

22
Figura 1.12.

Mecanismos de Interaccin de la CPU con la E/S

A.- Sondeo (polling)

La tcnica ms sencilla de comunicacin entre la CPU y un dispositivo es la denominada


tcnica de polling, tambin llamada sondeo, encuesta o escrutinio. En ella, el procesador es
el que realiza todo el trabajo, sondeando continua o peridicamente el registro de estado
del dispositivo para, una vez detectado un cambio de estado, obrar en consecuencia. Por
ejemplo, si pensamos en el ratn de un ordenador, podemos implementar esta tcnica
haciendo que el procesador verifique peridicamente el estado del ratn, para ver si el
usuario lo ha movido, en cuyo caso el sistema operativo informa al programa asociado del
cambio de situacin [DITEC-2011] .
El principal problema de esta tcnica es que, cuando la E/S es mucho ms lenta que la CPU,
podemos estar sondeando muchas veces el dispositivo comprobando que no ha cambiado,
lo que implica una gran prdida de tiempo y un uso innecesario de la CPU [AYLAG-2012] .

23
Normalmente, los lazos (loop) de espera activa (encuesta continua) slo son permisibles en
dispositivos dedicados (sistemas empotrados). Para computadores normales, que usan
sistemas operativos de tiempo compartido, lo ms habitual es la encuesta peridica, como es
el caso del mouse.

Veamos a continuacin un ejemplo para determinar el rendimiento de este mtodo de


comunicacin [DITEC-2011] .
Supongamos que, en una CPU a 500 MHz, una operacin de sondeo consume 400 ciclos de
reloj (llamar a la rutina de sondeo, acceder al dispositivo y volver). Determinemos el
porcentaje de tiempo que la CPU gasta realizando sondeos para los siguientes dispositivos:

Mouse: debe escrutarse 30 veces/seg. para no perder el movimiento del usuario.


Ciclos por segundo consumidos en el sondeo del ratn: 30 * 400 = 12.000 ciclos/seg.
consumidos  % CPU: 12.000/(500*106) = 0,0024% (impacto despreciable).
Disquete: transfiere datos en unidades de 2 bytes y tiene un ancho de banda de 50
KB/seg. No pueden perderse datos.
Ciclos por segundo consumidos en el sondeo del disquete: 50 KB/s / 2 bytes por
transferencia = 25.600 encuestas/seg.  25.600 * 400 = 10.240.000 ciclos/seg. consumidos
 % CPU: 10.240.000/(500*106) = 2,048% (impacto apreciable, pero permisible si no hay
muchos dispositivos).
Disco duro: transfiere datos en unidades de 16 bytes y su ancho de banda es de 8
MB/seg. Tampoco pueden perderse datos.
Ciclos por segundo consumidos en el sondeo del disco duro: 8 MB/s / 16 bytes por
transferencia = 524.288 encuestas/seg.  524.288 * 400 = 209.715.200 ciclos/seg.
Consumidos  % CPU: 209.715.200 / (500*106) = 41,95% (impacto inaceptable).

Como se puede observar, aunque en determinadas situaciones la tcnica de sondeo es


perfectamente vlida, para otros dispositivos es necesario recurrir a tcnicas de
comunicacin ms sofisticadas.

24
B.- Interrupcin

El concepto de interrupcin de un programa se utiliza para manejar diversos problemas que


se presentan en la secuencia normal de un programa; y se refiere a la transferencia del
control del programa (de un programa en ejecucin), a otro programa de servicio como
resultado de una peticin o solicitud generada externa o internamente. El control regresa al
programa original despus de que se ejecuta el programa de servicio [DITEC-2010] .

El procedimiento de interrupcin, es similar a una llamada a una subrutina, excepto por tres
variaciones:
1.- La interrupcin es iniciada por una seal externa o interna, y no a partir de la ejecucin de
una instruccin;
2.- La direccin del programa de servicio que procesa la solicitud de interrupcin se
determina por medio de un procedimiento de hardware, y no a partir del campo de direccin
de una instruccin;
3.- En respuesta a una interrupcin es necesario almacenar toda la informacin que defina el
estado de la computadora, en lugar de almacenar slo el contador del programa.

Como se mencion, las interrupciones son cambios en el flujo de control, no ocasionadas por
el programa que se ejecuta (generalmente por un evento relacionado con la E/S). Un
aspecto importante a tener en cuenta es que mientras que en el mtodo de encuesta el
tratamiento de los datos lo hacen las instrucciones que siguen al loop (lazo) de espera
activa, una interrupcin puede llegar en cualquier momento, mientras que la CPU est
haciendo otra cosa (son asncronas respecto al programa en ejecucin). Por lo tanto, como
se aprecia en la Figura 1.13., hay que habilitar mecanismos para que:
() La CPU deje automticamente lo que est haciendo (detiene el programa en curso) y pase
a ejecutar la rutina de servicio de la interrupcin (RSI), tambin llamada manejador.
() Se salve la informacin mnima necesaria para que luego pueda recuperarse el estado de
ejecucin en el que estaba el programa justo en el momento en que lleg la interrupcin.
() Al finalizar la RSI, se vuelva justo a dicho estado y se reanude el proceso interrumpido con
normalidad.

Las rutinas de las interrupciones, se cargan segn el dispositivo que las activ, de acuerdo
a un vector de interrupcin, que empieza a ejecutar la CPU [AYLAG-2012] .

25
Existen tres tipos de interrupciones:
() interrupciones externas (provenientes de dispositivos de E/S, monitorizacin de energa
elctrica);
() interrupciones internas (uso errneo de una instruccin, desbordamientos); tambin
llamadas excepciones;
() interrupciones de software (llamada especial del sistema).

Figura 1.13.

Veamos a continuacin un ejemplo que nos permita analizar cul sera el rendimiento al
utilizar el mecanismo de interrupciones. Supongamos un gasto de 500 ciclos por cada
transferencia (tiempo de ejecucin de la rutina de servicio); tambin que el disco duro se usa
durante un 5% del tiempo. Consideremos, por otro lado, la misma CPU y disco duro que en
el caso anterior [DITEC-2011] . Entonces tenemos que:
Interrupciones de disco duro/seg.: 8 MB/s / 16 bytes por transferencia = 524.288
interrupciones/seg.
El consumo de ciclos/seg. ser: 524.288 intr/seg. * 500 ciclos/intr. = 262.144.000
ciclos/seg.
% CPU (durante las transferencias): 262.144.000 / (500 * 106) = 52,4%
% CPU (total; slo 5% tiempo activo): 52,4% * 5% = 2,62%

26
Es decir, puesto que no hay que estar sondeando continuamente el disco duro y ste se usa
slo durante el 5% del tiempo, el porcentaje total de uso de CPU se reduce al 2,62 %, muy
inferior al 41,95% que obtenamos usando sondeo.

En la Figura 1.14. se muestra un ejemplo de la conexin entre una CPU genrica y un


controlador de interrupciones.

Figura 1.14.

C.- DMA (Acceso Directo a Memoria).

El sondeo y las interrupciones son adecuados para dispositivos con escaso ancho de banda
ya que permiten reducir el costo de la controladora y de la interfaz, dejando casi todo el peso
de las transferencias a la CPU y al sistema operativo: cada transferencia de una palabra
a/desde el dispositivo implica una secuencia de instrucciones que la CPU tiene que ejecutar
para transferir la palabra desde/a memoria (mediante la rutina de sondeo o la de servicio de
interrupcin).
Con dispositivos de gran ancho de banda, sin embargo, las transferencias constan
principalmente de grandes bloques de datos donde los mecanismos como el sondeo o las
interrupciones no son mtodos adecuados, pues se mantendra ocupado el procesador
demasiado tiempo. En estos casos, se utiliza el acceso directo a memoria (DMA) que
permite que la transferencia de datos desde el dispositivo a la memoria o viceversa se
realice sin la intervencin del procesador.

27
El DMA se implementa con un chip especializado (controladora de DMA), que transfiere
datos entre un dispositivo de E/S y la memoria principal independientemente del procesador.
La introduccin del DMA lleva aparejada la aparicin de mltiples dueos del bus (CPU y
DMA), lo que a nivel hardware implica la necesidad de disponer de un sistema de arbitraje
del bus.

Los pasos de los que consta una transferencia DMA son los siguientes (ver Figura 1.15.):
1. El procesador inicializa la controladora de DMA: identidad del dispositivo, operacin a
realizar, direccin de memoria donde leer o escribir, nmero de bytes a transferir y sentido
del desplazamiento (hacia direcciones crecientes o decrecientes de memoria).
2. La controladora de DMA va pidiendo el bus y, cuando lo consigue, va realizando tantas
operaciones de transferencia entre el dispositivo y la memoria como sean necesarias.
3. Finalmente, la controladora de DMA genera una interrupcin informando al procesador de
la finalizacin de la transferencia o de una condicin de error.

Al igual que hemos hecho antes, veamos a continuacin el rendimiento que podemos
obtener utilizando la tcnica de DMA. Supongamos la misma CPU y disco duro de los
ejemplos anteriores y tambin que el proceso de inicio de la controladora DMA
(programacin de los puertos correspondientes) tarda 1.000 ciclos y que la RSI (rutina) de
tratamiento, una vez finalizada la transferencia, tarda 500 ciclos. Adems, supondremos que
cada transferencia DMA es de 4KB. Si el disco estuviese continuamente transmitiendo:
8 MB por seg. / 4KB por transfer. = 2048 transf. DMA por segundo
Ciclos CPU / seg.: (1.000+500) * 2048 = 3.072.000 ciclos/seg.
% CPU (durante las transferencias): 3.072.000 / (500*106) = 0,62%
Como slo transmite el 5% del tiempo: % CPU (total; slo 5% tiempo activo): 0,62 * 5% =
0,031% (prcticamente despreciable) [DITEC-2011] .

28
Figura 1.15.

29
1.3. BUSES.

La ALU y los registros estn comunicados por conjuntos de lneas que se llaman buses. Un
bus es un grupo de lneas digitales que soportan el mismo tipo de informacin del
computador. De esta manera existen tres tipos de buses:

Bus de direcciones
Est formado por las lneas que soportan la direccin binaria de la Memoria. El nmero de
lneas de este bus es un parmetro muy importante porque determina la cantidad de
posiciones que puede alcanzar la Memoria. As, si el nmero de lneas del bus de direcciones
es n, la Memoria puede alcanzar un mximo de 2n posiciones.

Bus de datos
Consta de las lneas que transportan la informacin que se lee o escribe y que puede consistir
en datos o instrucciones. Tambin el nmero de lneas de este bus es muy importante porque
determina la cantidad de bits que pueden transferirse en cada operacin de lectura o
escritura.

Bus de control
Lo componen las lneas auxiliares que indican el tipo de operacin (lectura / escritura), la
sincronizacin (seal de reloj), la zona a acceder (Memoria E/S), etc. Los valores que toman
las lneas de este bus se obtienen en la Unidad de Control de la interpretacin del cdigo OP
de la instruccin en curso.

EJEMPLO
Si un procesador dispone de una Memoria con 512 posiciones de 32 bits cada una, deducir el
tamao del bus de direcciones y del bus de datos.
SOLUCIN:
Bus de direcciones: 9 lneas (29 = 512)
Bus de datos: 32 lneas para soportar los 32 bits de cada posicin de Memoria.

30
Los componentes de esta jerarqua son los siguientes: un bus local que conecta el
procesador a la memoria cache. La memoria cache se conecta a travs de su controlador
con el bus local y el bus de sistema. El uso de cache alivia los accesos del procesador a la
memoria principal. Otra componente es un bus de sistema que conecta la memoria principal
y al procesador a travs de la memoria cache. Como ventaja tiene que la transferencia de
entrada salida no interfiere en la actividad del procesador. Se podran conectar los
controladores de E/S directamente al bus de sistema pero esta opcin no es eficiente y
degrada el rendimiento.

Por ltimo en la jerarqua aparece un bus de expansin al que se conectan los controladores
de entrada/salida. La interfaz del bus de expansin con el bus de sistema controla las
transferencias entre los dispositivos de entrada /salida y el bus de sistema. De esta forma se
conecta gran variedad de dispositivos al sistema al tiempo que se asla la memoria y el
procesador del trfico entre la memoria y los dispositivos de entrada/salida
Esta jerarqua tiene el inconveniente de que a medida que mejoran las prestaciones de los
dispositivos de entrada/salida se degrada la eficiencia de esta estructura MULTIBUS. La
solucin est en disear estructuras ms complejas utilizando buses de alta velocidad, como
se ve a continuacin, en la Figura 1.16.

Figura 1.16..

31
1.4. EJECUCION DE PROGRAMAS.

1.4.1. Funcionamiento Bsico.

Se intentar explicar bsicamente, como funciona el mecanismo de ejecucin de las


instrucciones de un programa en el computador. En el proceso de la Unidad de Control, se
distinguen dos etapas o ciclos (o dos estados diferenciados):
() Un estado en el cual genera los impulsos adecuados para leer la instruccin contenida en
la memoria de instrucciones y que se denomina estado de bsqueda ( fetch);
() Un estado en el cual genera los impulsos adecuados para ejecutar la instruccin y que se
denomina estado de ejecucin (execute). Ver Figura 1.17.

Figura 1.17.

Como se mencion anteriormente, cada sistema computacional tienen su timing (sistema


de tiempo); que genera los pulsos de reloj que sincronizan y temporalizan los procesos
internos. Debe ser muy preciso y estable (normalmente basados en oscilador a cristal).

La instruccin que se lee ha de indicar a la Unidad de Control, la operacin que debe


realizar el Sistema, y la direccin de los operandos con los que se debe realizar aqulla. Por
lo tanto, la instruccin estar constituda por un cierto nmero de bits divididos en dos
campos: el campo del cdigo de operacin y el campo de direccin; como se aprecia en la
Figura 1.18.

32
Figura 1.18.

1.4.2. Instruccin Tpica.

Para poder manejar la mquina, se debe hablar en su lenguaje. Las palabras son
instrucciones. El vocabulario es el repertorio de instrucciones.
Las instrucciones deben ser lo ms sencillas que sea posible, pero deben permitir cualquier
operacin, es decir, el repertorio debe ser completo. En la prctica, los repertorios de
instrucciones de todas las mquinas se parecen.

La idea clave de modelo de von Neumann es representar las instrucciones mediante cdigos
numricos, susceptibles de ser almacenados en memoria como cualquier otro tipo de dato.
En la prctica, nosotros no manejamos directamente los cdigos numricos, sino un
mnemnico asociado a cada instruccin. Al conjunto de todos los mnemnicos lo llamamos
lenguaje mquina. [ARLAN-2012] .
Existe un formato de instruccin, que nos permitir traducir los cdigos numricos a lenguaje
mquina y viceversa.

En casi todas las instrucciones siempre se realizan ciclos de lectura y/o escritura. El primer
paso siempre es un ciclo de lectura para leer la instruccin (ver ejemplo en Figura 1.19.).

Figura 1.19.

33
Sus parmetros ms importantes son la longitud de palabras, direcciones y contenido.
Algunos trminos importantes de una memoria principal son:
Capacidad (Cantidad de palabras). Nmero de direcciones o nmero de bits en
cada direccin. Por ejemplo:
8 GB (computador), 512 MB (mvil), 32 KB (lavadora).
Ancho de palabra. Los ms habituales son: 64 y 32 bits u 8 y 4 Bytes (es lo mismo).
Tiempo de acceso. Tiempo medio de acceso a memoria de lectura y escritura.
Depende de la tecnologa de la memoria. Es mucho ms lenta que el procesador, aunque es
algo que soluciona el uso de una jerarqua de memoria. Tpico: 10 60 seg.

Por ejemplo:
tCPU = 1ns = 0,001 s
tDISCO = 10 ms = 10000 s = 10000000ns

1.4.3. Tipos de Instrucciones.

Existen tres tipos bsicos de instrucciones [ARLAN-2012] ;

a.- De transferencia: Transfieren informacin entre diferentes partes de la mquina.


Entre MP y procesador. (de referencia a la memoria)
Entre E/S y procesador. (de entrada/salida)

Ejemplos:
o LOAD (carga en registro desde MP).
o STORE (Almacena en MP desde registro).

b.- De procesamiento: Realizan operaciones aritmticas, lgicas o de desplazamiento


entre operadores.

c.- De bifurcacin o salto: De los que existen tres tipos, como se muestran en las Figuras
1.20 y 1.21. Nota: Los saltos pueden ser incondicionales, o no.

34
Con retorno, se salta a otro cdigo y se vuelve.

Figura 1.20.

Sin retorno, se salta a otro cdigo y no se vuelve.

Figura 1.21.

Condicionales, se salta si se da una condicin.

Escribir en lenguaje mquina es demasiado difcil para un humano, por ello se utiliza un
lenguaje de programacin cercano al lenguaje mquina pero comprensible para humanos.
Un programa en ensamblador se denomina programa fuente (simblico).
Un programa fuente tiene traduccin directa a lenguaje mquina.

Los nombres simblicos dependen del lenguaje ensamblador utilizado y es especfico para
cada fabricante. Por ejemplo:
 ADDER ADD
 BRANCH BR
 LOAD LD
 STORE ST
 MOVE MV

A un nombre simblico pueden seguirle uno o varios operandos (tambin ninguno) que
dependen del modo de direccionamiento:
BR $10
MOVE .R5, .R1

35
Un modo de direccionamiento es un procedimiento que permite determinar un operando, o
la ubicacin de un operando o una instruccin. Dado que, generalmente, lo que se
especifica es la direccin donde se almacena el dato o la instruccin, la denominacin
genrica de modo de direccionamiento queda justificada [ARLAN-2012] .
Llamaremos objeto a la instruccin, operando o resultado que se desea direccionar. El objeto
puede residir en la propia instruccin, en un registro o en la memoria principal, siendo el
objetivo de los modos de direccionamiento especificar el lugar concreto donde se encuentra.
A este objeto se le suele denominar tambin direccin efectiva, ya que es la direccin
efectiva cuyo objeto se va a tratar.

Objeto
Instruccin o dato al que se desea acceder. Existen tres tipos:
Operandos. Existen desde el principio. Normalmente se leen.
Resultados. Se generan durante la instruccin. No existen desde el principio.
Normalmente se escriben.
Instrucciones. Se encuentran en el RI y se leen mediante el PC. No se modifican,
solo se leen.

Direccin
Lugares en los que reside un objeto. De nuevo existen tres lugares de almacenamiento:
o Una instruccin.
o Un registro. Es recomendable que todo lo que necesitemos est en un registro
porque a ellos se accede de forme muy rpida.
o Memoria. Los datos iniciales deben estar en la memoria.

Los objetos pueden introducirse en estas direcciones segn la siguiente tabla:

Tabla 1.4.:

36
1.4.4. Modos de Direccionamiento.

Existen cuatro modos de direccionamiento bsicos. Los ejemplos que veremos aqu estn
basados en el IEEE 694, un estndar de programacin en ensamblador que no tuvo mucha
aceptacin. [DITEC-2010] [ARLAN-2012] . Estos son los modos:
Inmediato  Instruccin (utiliza la sintaxis: #valor).
Directo  Direccin.
o Absoluto  Direccin completa
Registro  Objeto en registro (utiliza la sintaxis: .reg).
Memoria  Objeto en memoria (utiliza la sintaxis: /Dir).
o Relativo  Parte de la direccin.
a registro base (utiliza la sintaxis: #desp[.reg]).
a contador de programa (utiliza la sintaxis: $desp).
a registro ndice (utiliza la sintaxis: #desp[.reg]).
Indirecto  Direccin de la direccin.
o Registro (utiliza la sintaxis: [.reg]).
o Memoria (utiliza la sintaxis: [/Dir]).
Implcito.

Direccionamiento inmediato
El direccionamiento se llama inmediato cuando el objeto se encuentra contenido en la propia
instruccin. Generalmente se utiliza el smbolo #.

Figura 1.22.

Direccionamiento directo
El objeto se encuentra fuera de la propia instruccin pero la instruccin contiene la direccin
(el lugar) donde est almacenado el objeto. Existen dos formas de direccionamiento directo:

37
Absoluto. Si la instruccin contiene la direccin completa del objeto.
Relativo. Si la instruccin contiene la direccin del objeto de forma parcial. Todos los
direccionamientos relativos lo son a memoria.

Direccionamiento directo absoluto

Este tipo de direccionamiento presenta dos alternativas:

1.- A Registro. El objeto est contenido en un registro. La instruccin contiene el registro que
contiene el objeto del direccionamiento. Es el modo directo ms rpido.

Figura 1.23.

2. A Memoria. El objeto est contenido en una direccin completa de memoria principal. Se


suele utilizar el smbolo /. El nmero de bits necesarios para ello depende del mapa de
direcciones del computador. Por ejemplo, el Z80, con un mapa de 64 Kbytes, requiere 16
bits, mientras que el VAX, con un mapa virtual de 4Gbytes, requiere 32 bits.

Figura 1.24.

38
Direccionamiento directo relativo
En el direccionamiento directo relativo la instruccin no contiene la direccin del objeto, sino
un desplazamiento D sobre una direccin marcada por un puntero. La direccin se calcula
sumando el desplazamiento D al puntero de referencia, que suele estar almacenado en un
registro. Existen varios tipos directo relativos.

Direccionamiento directo relativo a registro base


El direccionamiento relativo a registro base emplea, como puntero, un registro base RB.
Generalmente, los computadores disponen de varios registros que pueden actuar como
base, ya sean stos los registros generales o bien registros especficos para ese fin.
La direccin viene especificada en dos partes:
Registro base: Un registro de propsito especfico o general que contiene una
direccin a memoria.
Desplazamiento: Valor entero con signo.

La direccin efectiva se calcula mediante la siguiente expresin:

El registro base se carga con una direccin de memoria que contiene un conjunto de datos a
los que se accede conociendo su posicin relativa frente al comienzo de dicha zona. El
rango de direcciones al que se puede acceder est limitado por el tamao del
desplazamiento.

Figura 1.25.

39
Direccionamiento relativo al contador de programa (PC)
Es muy similar al anterior pero, en vez de un registro de propsito general, utiliza el contador
de programa (PC) como registro base. Permite alcanzar instrucciones cercanas a la que ya
se est ejecutando (que es la que est en el PC). Por tanto los saltos son cortos. Utilizamos
el smbolo $ para referirnos al PC.

Figura 1.26.

Direccionamiento directo relativo a registro ndice


El direccionamiento relativo al registro ndice es una variacin del anterior, donde el registro
base se modifica aunque permanece constante en un mismo direccionamiento. En este
caso, el registro puntero (que llamamos registro ndice RI) es modificado para ir recorriendo
los elementos de una tabla o vector. En efecto, si cada elemento de la tabla ocupa 1 palabra
de la memoria y, cada vez que se emplea, el registro ndice se incrementa en 1, se van
obteniendo las direcciones de los elementos sucesivos de la tabla.

Direccionamiento indirecto
La instruccin contiene la direccin donde est contenida la direccin donde se almacena el
objeto. El direccionamiento indirecto comienza con un direccionamiento directo (ya sea
absoluto o relativo), pero se diferencia de aqul en que la direccin obtenida no es el objeto
deseado sino su direccin. Por tanto, para obtener el objeto deseado se requiere un acceso
adicional a memoria principal; y existen dos tipos:

40
Direccionamiento indirecto a registro
La instruccin contiene la especificacin del registro que contiene la direccin de memoria
donde est almacenado el objeto.

Figura 1.27.

Direccionamiento indirecto a memoria


La instruccin contiene una direccin de memoria donde est contenida la direccin donde
se almacena el objeto.

Figura 1.28.

Direccionamiento implcito
La instruccin no contiene ni la direccin ni el objeto que se usa en el direccionamiento
Por ejemplo, el direccionamiento implcito relativo al SP (Stack Pointer, puntero de pila).
Existen dos instrucciones generales con este tipo de direccionamiento:
PUSH .R1 M(SP) R1 (actualizando SP) Guardar en la pila.
POP .R1 R1 M(SP) Sacar de la pila.

41
Para ilustrar mejor el funcionamiento y la comparacin entre los direccionamientos directo e
indirecto, en la Figura 1.29 se muestran dos diagramas ilustrativos.

Figura 1.29

42
Para ilustrar mejor el funcionamiento de la ejecucin de una instruccin, en la Figura
1.30. se muestra un diagrama de las distintas fases que se requieren para la ejecucin
de una instruccin. [ARLAN-2012] .

Figura 1.30.

Un esquema que resume las fases de ejecucin de las instrucciones (desde otro punto de
vista), se ensea en la Figura 1.31.

Figura 1.31.

43
1.4.5. PARAMETROS CARACTERISTICOS.

Tipo de procesador
Capacidad de memoria directamente direccionable; nmero de registros de trabajo:
Nmero de instrucciones; y forma de direccionamiento.

Ancho de palabra
Dato privilegiado del computador. ALU, MP, Buses,... utilizan anchos de palabras. Siempre
es un mltiplo de 8 bits.
Ejemplos: 8, 16, 32, 64 bits

Tamao de la memoria
Capacidad de la memoria. No slo de la memoria principal sino de otros tipos de memorias
(CD, DVD, Unidad de disco, Unidad de cinta, Flash). Son potencias de dos.
K (kilo, 210), M (Mega, 220), G (Giga, 230), T (Tera, 240), P (Peta, 250) bytes.

Velocidad de reloj
El reloj es una seal digital constante y fija, es uno de los parmetros de entrada de la
Unidad de Control. La velocidad de reloj mide la frecuencia de esta seal. Se mide en
hercios del orden de Megahercios (MHz) y Gigahercios (GHz).

Duracin de las operaciones


Es el tiempo que tarda la ALU en hacer una operacin.
mili (m), micro (u, ), nano (n), pico (p) segundos.

Capacidad de clculo (cmputo)


Velocidad del procesador. Se mide en flops, operaciones en coma flotante por segundo.
MIPS (Millones de Instrucciones Por Segundo), MFLOPS, specint, specfr
Aunque la flexibilidad y el tipo de instruccin son importantes para medir su velocidad.

Ancho de banda
Velocidad a la que los datos avanzan por el bus de datos. Bps es bytes por segundo y bps
(bits por segundo).
KB/s (KBps), MB/s (MBps), Kb/s (Kbps), Mb/s (Mbps) .

44
Ejercicio
Tenemos una velocidad de reloj de 200 MHz y este compilador divide las operaciones en 5
fases (la fase de Fetch ocupa el triple de ciclos de las otras fases). Sabemos que 200 MHz
son 200 millones de ciclos por segundo. [ARLAN-2012] .Tambin sabemos:

Considerando que se realiza una instruccin en cada ciclo de reloj;

Cul es la capacidad de procesamiento o clculo expresada en MIPS?

(*) Aunque hay otra forma de resolverlo

(*) Ejemplo sacado de Internet.


Encuentre donde est un error.

45
1.5. PROGRAMACION DE SISTEMAS.

Una de las propiedades ms interesantes de los computadores es su capacidad para realizar


funciones muy variadas con el mismo hardware, gracias a que son programables.
Un programa es el conjunto ordenado de instrucciones que dirigen el funcionamiento del
computador. Una instruccin es un smbolo o conjunto de smbolos que representa una
orden concreta para el computador. Dependiendo del nivel de abstraccin del lenguaje, una
instruccin puede representar una operacin simple como sumar dos nmeros o ms
compleja como mostrar un nmero por pantalla.
Los programas se pueden expresar mediante una gran variedad de lenguajes. En esta
asignatura nos ocuparemos de los lenguajes llamados de bajo nivel, en oposicin a los
lenguajes de alto nivel. Esta clasificacin se refiere al nivel de abstraccin del lenguaje
respecto al funcionamiento del computador.
Los lenguajes de bajo nivel se abstraen muy poco de los detalles del computador concreto
que ejecutar el programa, ofreciendo instrucciones simples de ejecutar, especficas y
dependientes de la mquina. Por el contrario, los lenguajes de alto nivel se abstraen ms del
funcionamiento de la mquina que ejecutar los programas y ofrecen instrucciones y
construcciones ms complicadas de ejecutar, ms genricas y ms independientes de la
mquina concreta. Gracias a esta abstraccin, los lenguajes de alto nivel permiten al
programador expresar algoritmos de forma ms natural y ms directa, por lo que son los
utilizados normalmente.
Aunque existen miles de lenguajes de programacin diferentes, la mayora permite expresar
cualquier programa. En particular, no se debe confundir el que un lenguaje sea de ms alto o
ms bajo nivel con la capacidad del lenguaje de expresar un programa concreto.
Para que un programa escrito en un lenguaje determinado pueda ser ejecutado, debe
primero traducirse a un lenguaje de muy bajo nivel que depende de la mquina que
deseamos utilizar para ejecutar el programa. A este lenguaje se le llama normalmente
cdigo mquina. Esta traduccin se realiza casi siempre mecnicamente usando
programas llamados compiladores y ensambladores, con los que el alumno ya estar
familiarizado.

El alumno debera tener cierta experiencia con, al menos, algn lenguaje de programacin
de alto nivel, y al menos, haber desarrollado alguna aplicacin en un lenguaje ensamblador.

46
Al estudiar el lenguaje ensamblador y su traduccin a cdigo mquina, con cierto nivel de
detalle podr permitir la comprensin de cmo se implementa un circuito (procesador) capaz
de ejecutar el cdigo mquina resultante. Tambin se pretende que el alumno sea capaz de
realizar programas de complejidad moderada directamente en ensamblador y que sepa
cmo se traducen a ensamblador algunas de las construcciones ms usuales en lenguajes
de alto nivel.

El repertorio de instrucciones (en ingls, ISA o Instruction Set Architecture) de un


computador es el conjunto de instrucciones ejecutables por dicho computador. El ISA de un
computador tambin determina caractersticas de la mquina como el nmero y tipo de
registros, modos de direccionamiento, manejo de interrupciones y excepciones, y manejo de
la entrada/salida.
En general, los repertorios de instrucciones de los distintos modelos de computador son
bastante similares. Esto se debe a que su hardware se disea usando unos principios
fundamentales similares y, por lo tanto, existe un repertorio bsico de funciones que todos
los computadores deben, de una u otra forma, proporcionar.

De igual manera, el mismo ISA puede ser utilizado por varios computadores diferentes,
incluso computadores totalmente diferentes y diseados por fabricantes diferentes. Por
ejemplo, el ISA IA-32 (tambin conocido como x86) es utilizado por procesadores fabricados
por Intel y AMD, entre otros. El propio ISA MIPS que se puede estudiar, se utiliza en los
procesadores de productos tan diferentes entre s como estaciones de trabajo (algunos
modelos de Silicon Graphics), supercomputadores (NEC, ORIGIN 2000), computadores de
bolsillo (palmtops), mviles, impresoras (modelos lser de Hewlett-Packard), cmaras
digitales, videoconsolas (Nintendo 64 o Playstation 2 de Sony, entre otras), routers o incluso
robots (como el AIBO de Sony).

En principio, es fcil elegir un repertorio de instrucciones que sea capaz de representar


cualquier programa ejecutable por un computador. Sin embargo, la eleccin de un conjunto
de instrucciones adecuado es importante para optimizar el rendimiento y el costo del sistema
final (como lo puede ser un equipo biomdico).
Los objetivos principales a seguir cuando se disea un repertorio de instrucciones (ISA) son
los siguientes:

47
1. Facilitar la construccin del hardware: a no ser que la complejidad est debidamente
justificada, debe disearse un repertorio de instrucciones que permita que el diseo del
procesador sea lo ms sencillo posible.
2. De igual modo, debe permitir que el diseo del compilador encargado de pasar de
lenguaje de alto nivel a lenguaje ensamblador sea sencillo, en la medida de lo posible.
3. Ha de maximizar el rendimiento obtenido, entendido ste, en un sentido amplio, como la
cantidad de procesamiento efectivo til por unidad de tiempo.
4. Debe minimizarse el coste de implementacin del procesador capaz de ejecutar dicho
repertorio.

Para que se pueda programar de forma efectiva un computador (o microprocesador),


adems de conocer el ISA del mismo es necesario conocer y seguir una serie de
convenciones sobre el uso de registros, la llamada a procedimientos o la interfaz con el
sistema operativo y con la entrada/salida. Estas convenciones de programacin junto con el
ISA del computador determinan el interfaz de programacin binaria (en ingles ABI, o
Application Binary Interface) particular de cada plataforma.

En las Figura 1.32. y 1.33. se muestran esquemas que representan cmo se construye un
programa de aplicacin ejecutable.

Figura 1.32.

48
Figura 1.33.

49
REFERENCIAS

[AYLAG-2012] = Aylagas, Paco : Sistemas de Entrada y Salida, Apuntes de la Asignatura


de Arquitectura de Computadores; Depto. de Informtica Aplicada, Universidad Politcnica
de Madrid, Espaa. Extrado el 10/01/2013 desde :
http://www.dia.eui.upm.es/asignatu/arq_com/Paco/5-SistemasES.pdf

[ARLAN-2012] = Arlandis, Pau ; Apuntes de Estructura de Computadores ; Facultad de


Informtica, Universidad Politcnica de Madrid, Espaa.
Extrado el 10/01/2013 desde : http://www.fiwiki.org/wiki/Estructura_de_Computadores

[DEVIC-2009A] = De Vicente, Antonio; Introduccin a las Computadoras, Apuntes de


Estructura de Computadores ; Depto. de Automtica; Universidad de Alcal; Espaa.
Extrado el 10/01/2013 desde :
http://atc2.aut.uah.es/~avicente/asignaturas/ec/pdf/ec_t1.pdf

[DEVIC-2009B] = De Vicente, Antonio; Lenguaje Mquina y Ensamblador, Apuntes de


Estructura de Computadores ; Depto. de Automtica; Universidad de Alcal; Espaa.
Extrado el 10/01/2013 desde :
http://atc2.aut.uah.es/~avicente/asignaturas/ec/pdf/ec_t4.pdf

[DEVIC-2009C] = De Vicente, Antonio; Memorias, Apuntes de Estructura de


Computadores ; Depto. de Automtica; Universidad de Alcal; Espaa. Extrado el
10/01/2013 desde :
http://atc2.aut.uah.es/~avicente/asignaturas/ec/pdf/ec_t5.pdf

[DEVIC-2009D] = De Vicente, Antonio; Perifricos y Entrada-Salida, Apuntes de Estructura


de Computadores ; Depto. de Automtica; Universidad de Alcal; Espaa. Extrado el
10/01/2013 desde :
http://atc2.aut.uah.es/~avicente/asignaturas/ec/pdf/ec_t6.pdf

[DITEC-2010] = Staff Area : Lenguaje Ensamblador, Apuntes de Estructura y Tecnologas


de Computadores ; Depto. de Ingeniera y Tecnologa de Computadores, Facultad de
Informtica; Universidad de Murcia; Espaa. Extrado el 10/01/2013 desde :
http://ditec.um.es/etc/web-curso-09-10/apuntes/tema3.pdf

[DITEC-2011] = Staff Area : Gestin de la Entrada/Salida, Apuntes de Estructura y


Tecnologas de Computadores ; Depto. de Ingeniera y Tecnologa de Computadores,
Facultad de Informtica; Universidad de Murcia; Espaa. Extrado el 10/01/2013 desde :
http://ditec.um.es/etc/web-curso-10-11/apuntes/tema7.pdf

[DURAN-2010] = Durn, Ral : La Memoria, Apuntes de Fundamentos de Computadores;


Escuela Politcnica Superior; Universidad de Alcal; Espaa.
Extrado el 01/03/2013 desde :
http://atc2.aut.uah.es/~rduran/FFCC/pdf/Cap6Beam.pdf

50
[HENNE-2012] = John Hennessy,J &Patterson, D.: "Repaso de Arquitectura y Organizacin;
Criterios de Clasificacin; Apuntes de Arquitectura de Computadoras. Extrado el
16/01/2012 de:
http://electro.fisica.unlp.edu.ar/arq/transparencias/ARQII_00-Repaso-2012.pdf

[LANCH-2000] = Lanchares, Juan; Apuntes de Estructura de Computadores; Depto. de


Arquitectura de Computadores y Automtica; Universidad Complutense de Madrid; Espaa.
Junio 2000. Extrado el 16/01/2013, desde:
http://www.dacya.ucm.es/hidalgo/estructura/lanchares.pdf

[PARRA-2008] = Parra F., Mara: Estructura de Computadores ; Tema 5 , Apuntes del


Depto. de Tecnologa Electrnica ; Universidad de Sevilla ; Espaa.
Febrero 2088. Extrado el 24/01/2013 de
http://www.dte.us.es/docencia/etsii/itis/ec/temas/ectema5.pdf/view

[SOLAR-2010] = Solar, Mauricio; Organizacin Bsica de un Computador; Apuntes de


Arquitectura de Computadores ; Depto. de Informtica, Universidad T. F. Santa Mara; Junio
2010. Extrado el 10/01/2013 desde :
http://www.ramos.utfsm.cl/doc/978/sc/AC_cap6_OrgBasLengMaq.pdf

51

Anda mungkin juga menyukai