Sei sulla pagina 1di 19

Arquitectura de un sistema basado en microprocesador

Un sistema basado en microprocesador o microprogramable est formado por los


siguientes componentes:

Hardware: Es el conjunto de circuitos electrnicos que forman el sistema


microprogramable o, dicho de otra forma, es la parte fsica del sistema.

Software: Es el conjunto de programas y aplicaciones formado por instrucciones y


rutinas que se utilizan para programar y coordinar al sistema microprogramable.
Tambin se denomina software al conjunto de lenguajes empleados para elaborar
dichos programas.

Firmware: Es un "software" grabado en la estructura electrnica del sistema


microprogramable y que el usuario en principio no puede alterar. En los
ordenadores personales, la BIOS (Basic Input/Output System) utiliza firmware y
contiene un grupo de programas que sirven de intermediario entre el software y
hardware.

En este punto se ver con mayor profundidad cuales son los bloques que componen
un sistema microprogramable basado en el uso de una CPU. Esto incluye tanto a los
sistemas basados en microprocesador como los que utilizan microcontroladores.

Elementos esenciales que constituyen un sistema basado en microprocesador


son:

Reloj
CPU
o Unidad Aritmtica-Lgica (ALU).
o Acumuladores y Registros.
o Unidad de Control (UC).
Memoria
Unidad de entrada/salida
Buses del sistema

a) Reloj
Para que el microprocesador genere todas las seales necesarias para controlar los
restantes bloques del sistema y para que todo el sistema est sincronizado (que cada
elemento funcione cuando le corresponde), se parte de ondas cuadradas de
frecuencia constante generadas normalmente por un cristal de cuarzo.

La frecuencia de este reloj se mide en Khz, Mhz o GHz y determina la velocidad de


funcionamiento y proceso de todo el sistema. El periodo de tiempo de esta seal de
reloj se denomina ciclo de reloj.

A partir de esta seal de reloj, se genera el denominado ciclo mquina, que est
formado por dos fases:

Fase de bsqueda (Fetch cycle): En esta fase se realiza la bsqueda de una


instruccin en memoria y se guarda en el registro correspondiente.
Fase de ejecucin (Execute cycle): En esta fase se ejecuta o realiza la
transferencia de datos ordenada.

Este ciclo mquina tarda en realizarse mayor o menor tiempo, dependiendo del
fabricante. A veces para completar la ejecucin de una instruccin se requiere ms de
un ciclo mquina. El nmero de ciclos mquina necesaria para procesar por completo
una instruccin se denomina ciclo de instruccin.

b) CPU

La CPU est formada por:

Unidad Aritmtica-Lgica
Acumuladores y Registros
Unidad de Control

Unidad Aritmtica Lgica ALU (Aritmetic Logic Unit)

Est compuesta por un circuito combinacional complejo que se encarga de realizar las
operaciones aritmticas (suma, multiplicacin...), lgicas (AND, OR...)
desplazamientos, etc.

Estas operaciones son ordenadas por las instrucciones que se estn ejecutando, con
las informaciones presentes en los registros de entrada y/o en posiciones
determinadas de la Memoria Central y devuelve los resultados a los registros o a la
Memoria Central.
Acumuladores y registros

Un registro es una pequea memoria interna, donde se almacenan temporalmente los


resultados intermedios de las operaciones. Los registros estn formados por
biestables colocados de tal forma que pueden almacenar la informacin en un
momento determinado. La longitud de estos registros viene determinada por el nmero
de biestables que los forman.

Existen varios registros diferentes, entre los que destacamos:

Registro acumulador.
Registro de estado.
Registros auxiliares.
Registro SP (Stack Pointer).
o La pila.
Registro CP (Contador de Programa)
Registros internos.

Registro acumulador

Como se ha mencionado, en la ALU se realizan las operaciones aritmticas y lgicas


con los datos.

La CPU contiene al menos un acumulador o registro en el que se almacenan datos


procedentes de la memoria o de otros registros que posea el sistema. Las operaciones
con dos comandos se realizan siempre entre acumuladores (si existe ms de uno),
entre el acumulador y el contenido de una posicin de memoria, entre un acumulador y
otro registro, o entre el acumulador y un trmino constante implcito en la propia
instruccin a travs de la Unidad Aritmtica-Lgica (ALU). Es decir, siempre las
operaciones se realizan a travs del acumulador, apareciendo tambin el resultado en
el acumulador.

Registro de estado (status)

En una CPU, existen unos biestables denominados banderas o "flags" que cambian
de estado como consecuencia del resultado de la ltima operacin efectuada sobre el
registro acumulador. La estructura del registro de estado vara mucho de unos
sistemas a otros, tanto en la posicin que cada uno de los flag ocupa dentro del
registro, como en los tipos de informaciones que almacenan.

Registros auxiliares
Estos registros auxiliares o de uso general los puede utilizar el programador para
almacenar datos o resultados intermedios. El nmero de estos registros depende del
tipo de microprocesador.

Registro SP (Stack Pointer)

Este registro lo puede modificar el programador, y apunta a una zona de memoria


denominada pila o Stack. De ah, su nombre de puntero de pila o Stack Pointer

La pila

La pila en los ordenadores personales es una zona de memoria, que es una parte de
la memoria central (RAM), de manera que se reserva un pequeo espacio de esta
para que funcione como una pila, denominndolo segmento de pila. Sin embargo, por
ejemplo en los microcontroladores PIC, se encuentra separada tanto de la memoria de
programa como de la de datos y est formada por registros. En todo caso, para
moverse por la pila, almacenar y recuperar los datos se utiliza el registro puntero de
pila o stack pointer.

La pila se utiliza para almacenar los datos de los registros internos cuando se salta a
una subrutina dentro de un programa para que no se pierda su contenido, ya que
probablemente necesite utilizar alguno de los registros internos.

Normalmente el sistema dispone de una bandera (flag o identificador) que indica un


desbordamiento de la pila, si bien hay casos, como en el microcontrolador PIC16X84
donde no dispone de esta bandera y hay que tenerlo en cuenta en el programa que se
disee.

Registro CP (Contador de Programa)

Es un registro que se encuentra en la Unidad de Control y que indica en qu posicin


de la memoria se encuentra la prxima instruccin a ejecutar.

Este registro, se incrementa automticamente para obtener las instrucciones y los


datos de la memoria, ya sea de modo secuencial o de forma aleatoria.

Registros internos

Todos los microprocesadores y microcontroladores tienen registros internos que no


pueden manipularse por el usuario puesto que el sistema los utiliza de forma
automtica cuando es preciso. Estos registros son:

Registro de instrucciones (Re): En este registro se guardan los cdigos de


las instrucciones a decodificar.
Registro de direcciones (RDIR): Su misin consiste en almacenar las
direcciones que se envan por el bus de direcciones. Este registro aade un
conjunto de bufferes unidireccionales que separan las unidades internas del
citado bus.
Registro de datos (RDAT): En este registro, se almacenan los datos que
llegan al microprocesador o que parten de l, a travs del bus de datos. A
diferencia del registro de direcciones, este tiene bufferes triestado direccionales
para separar las unidades internas del citado bus, ya que los datos pueden
entrar o salir del microprocesador.
Unidad de Control (Control Unit, CU)

Es una parte fundamental del sistema puesto que se encarga de gobernar el


funcionamiento global del mismo. Recibe la informacin, la transforma e interpreta,
enviando las rdenes precisas a los elementos que las requieren para un
procesamiento correcto de los datos.

En la Unidad de Control se encuentra el contador de programa (CP) que indica en


qu posicin de la memoria se encuentra la prxima instruccin a ejecutar.

En esta unidad se encuentra tambin el decodificador de instrucciones (DI),


dispositivo que "traduce" las instrucciones del programa contenidas en la memoria a
microordenes grabadas internamente, para saber los pasos que debe realizar para
ejecutar la instruccin.

Una vez decodificada la instruccin, la Unidad de Control generar todas las seales
de control necesarias para hacer funcionar al resto de elementos del sistema y que
todo vaya de una forma ordenada.

c) Memoria (memoria central o principal)

Es la encargada del almacenamiento de los programas y la informacin necesaria para


el funcionamiento del sistema. Se compone de celdas o palabras de memoria.

Su funcin en el sistema es la de almacenar los programas a ejecutar, los datos y los


resultados intermedios del proceso.

No debemos confundirla con las memorias de almacenamiento masivo que se


encuentran en los perifricos de entrada/salida, como los discos duros de un PC.

La Memoria suele dividirse en:

Memoria de programa: Es la zona de memoria donde se almacenan los


programas a ejecutar. No se modifica durante la ejecucin de un programa, ya
que en ella se guardan las instrucciones que lo forman.
Memoria de datos o de trabajo: En esta zona se almacenan los datos del
programa a ejecutar. Siempre es una RAM puesto que se modifica durante la
ejecucin de un programa, ya que en ella se almacenan y se leen los
resultados de las operaciones realizadas, as como los datos de las
operaciones intermedias requeridas.

Memoria de programa

El microcontrolador est diseado para que en su memoria de programa se


almacenen todas las instrucciones del programa de control. Como el programa a
ejecutar siempre es el mismo, debe estar grabado de forma permanente. Los tipos de
memoria adecuados para soportar esta funcin admiten cinco versiones diferentes:

i) ROM con mscara

En este tipo de memoria el programa se graba en el chip durante el proceso de su


fabricacin mediante el uso de mscaras. Los altos costes de diseo e instrumental
slo aconsejan usar este tipo de memoria cuando se precisan series muy grandes.
ii) EPROM

La grabacin de esta memoria se realiza mediante un dispositivo fsico gobernado


desde un computador personal, que recibe el nombre de grabador. En la superficie de
la cpsula del microcontrolador existe una ventana de cristal por la que se puede
someter al chip de la memoria a rayos ultravioletas para producir su borrado y
emplearla nuevamente. Es interesante la memoria EPROM en la fase de diseo y
depuracin de los programas, pero su coste unitario es elevado.

iii) OTP (Programable una vez)

Este modelo de memoria slo se puede grabar una vez por parte del usuario,
utilizando el mismo procedimiento que con la memoria EPROM. Posteriormente no se
puede borrar. Su bajo precio y la sencillez de la grabacin aconsejan este tipo de
memoria para prototipos finales y series de produccin cortas.

iv) EEPROM

La grabacin es similar a las memorias OTP y EPROM, pero el borrado es mucho ms


sencillo al poderse efectuar de la misma forma que el grabado, o sea, elctricamente.
Sobre el mismo zcalo del grabador puede ser programada y borrada tantas veces
como se quiera, lo cual la hace ideal en la enseanza y en la creacin de nuevos
proyectos. El PIC16C84 dispone de 1 K palabras de memoria EEPROM para contener
instrucciones y tambin tiene algunos bytes de memoria de datos de este tipo para
evitar que cuando se retira la alimentacin se pierda informacin.

Aunque se garantiza 1.000.000 de ciclos de escritura/borrado en una EEPROM,


todava su tecnologa de fabricacin tiene obstculos para alcanzar capacidades
importantes y el tiempo de escritura de las mismas es relativamente grande y con
elevado consumo de energa.

v) FLASH

Se trata de una memoria no voltil, de bajo consumo, que se puede escribir y borrar en
circuito al igual que las EEPROM, pero suelen disponer de mayor capacidad que estas
ltimas. El borrado slo es posible con bloques completos y no se puede realizar sobre
posiciones concretas. En las FLASH se garantizan al menos 1.000 ciclos de escritura-
borrado.

Son muy recomendables en aplicaciones en las que sea necesario modificar el


programa a lo largo de la vida del producto, como consecuencia del desgaste o
cambios de piezas, como sucede con los vehculos. Por sus mejores prestaciones han
sustituido a la memoria EEPROM para contener instrucciones. De esta forma
Microchip comercializa dos microcontroladores prcticamente iguales, que slo se
diferencian en que la memoria de programa de uno de ellos es tipo EEPROM y la del
otro tipo Flash. Se trata del PIC 16C84 y el PIC 16F84, respectivamente. En la
actualidad Microchip tiene abierta una lnea de PIC con memoria Flash cada vez ms
extensa y utilizada.Unidad de entradas/salidas (interfaz)

Memoria de datos

Los datos que manejan los programas varan continuamente, y esto exige que la
memoria que les contiene debe ser de lectura y escritura, por lo que la memoria RAM
esttica (SRAM) es la ms adecuada, aunque sea voltil.
Hay microcontroladores que tambin disponen como memoria de datos una de lectura
y escritura no voltil, del tipo EEPROM. De esta forma, un corte en el suministro de la
alimentacin no ocasiona la prdida de la informacin, que est disponible al
reiniciarse el programa. El PIC16C84, el PIC16F83 y el PIC16F84 disponen de 64
bytes de memoria EEPROM para contener datos.

La memoria tipo EEPROM y la tipo Flash pueden escribirse y borrarse elctricamente.


Sin necesidad de sacar el circuito integrado del zcalo del grabador pueden ser
escritas y borradas numerosas veces.

La memoria RAM (Ramdom Access Memory, memoria de acceso aleatorio) es un tipo


de memoria que permite tanto la lectura (read) como la escritura (write). Es voltil, esto
es, los datos se pierden si deja de alimentarse.

Cuando el sistema necesita leer un dato de la memoria RAM, lo primero que hace es
indicar la posicin de memoria de donde desea obtener el dato. Dependiendo de si la
operacin que va efectuar es una lectura o una escritura, se pone a uno o a cero una
seal de lectura escritura (Read=1/Write=0). Si la operacin es de lectura, la memoria
entrega el dato deseado. Por el contario, si es de escritura, el dato se almacena en la
memoria.

Memoria cach o RAM cach es un sistema especial de almacenamiento de alta


velocidad. Puede ser tanto un rea reservada de la memoria principal como un
dispositivo de almacenamiento de alta velocidad independiente. Hay dos tipos de
cach frecuentemente usados en las computadoras personales: memoria cach y
cach de disco. Una memoria cach, llamada tambin a veces almacenamiento cach
o RAM cach, es una parte de memoria RAM esttica de alta velocidad (SRAM) ms
que la lenta y barata RAM dinmica (DRAM) usada como memoria principal. La
memoria cach es efectiva dado que los programas acceden una y otra vez a los
mismos datos o instrucciones. Guardando esta informacin en SRAM, la computadora
evita acceder a la lenta DRAM.

d) Buses del sistema

Los elementos de un sistema basado en CPU estn interconectados entre s mediante


"canales" de informacin o buses. Estos buses estn compuestos por diferentes lneas
(hilos elctricos) que transportan informacin del mismo tipo. El nmero de lneas que
compone el bus indica el ancho del bus. Por ejemplo, si tenemos un bus de datos de
16 bits, significa que circulan 16 bits en paralelo a la vez, por lo que el bus tiene un
ancho de 16 lneas. En los sistemas microprogramables, existen tres buses
fundamentales que son:

Bus de direcciones (address bus)


Bus de datos (data bus)
Bus de control (Control Bus)
Bus de direcciones (address bus)

Por este bus van a circular los bits (combinacin binaria) que seleccionaran la posicin
de la memoria o el registro de entrada/salida en el que deseamos leer o escribir. Este
bus tiene tantas lneas (conductores) como bits de direccin tenga el sistema. El
nmero de lneas que tiene un sistema basado en microprocesador depende del
fabricante y determina la cantidad mxima de memoria que puede direccionar el
sistema. El nmero total de direcciones de memoria que pueden direccionarse viene
dado por la frmula:

N Direcciones de memoria=2N Lneas del bus de direcciones

Por ejemplo, el microprocesador 8086 de Intel posea un bus de direcciones de 20


lneas, por tanto:

N Direcciones de memoria= 220= 1.048.576 posiciones de memoria.

Si en cada posicin de memoria se almacena 1 byte (8 bits), el microprocesador 8086


poda direccionar como mximo una memoria de 1.024 Kbytes=1 Mbyte.

Como se puede observar en la figura, este bus es unidireccional. Es decir, las lneas
van en un nico sentido, siendo la CPU la nica que puede utilizarlo.

Habitualmente, las lneas del bus de direcciones se denominan con la letra inicial A (de
Address), poer ejemplo A15 (bit de mayor peso) A14 ... A1 A0 (bit de menor peso)

Bus de datos (data bus)

Por este bus circularan los bits que componen la informacin binaria, ya sean
instrucciones o datos contenidos en la posicin de memoria o en los registros de
entrada/salida, seleccionada por el bus de direcciones. Al igual que el bus de
direcciones, este tiene tantos hilos como bits tenga la palabra de datos con que opera
el sistema.

Por ejemplo, un microprocesador de 8 bits posee un bus de datos formado por 8 hilos.
Como podemos observar en la figura, este bus es bidireccional, es decir, que puede ir
en ambos sentidos. Esto es, porque los dispositivos pueden recibir informacin
(escritura) o enviarla (lectura), segn el estado de la lnea read/write del bus de
control. Habitualmente, las lneas del bus de datos se denominan con la letra inicial D
(de data), D7 (bit de mayor peso) D6 ... D1 D0 (bit de menor peso)

Bus de control (Control Bus)

Este bus est formado por una serie de lneas denominadas lneas de control, por las
que va a circular el conjunto de seales necesarias para la correcta coordinacin de
todos los elementos del sistema, tales como: rdenes de lectura o escritura,
inhabilitacin (desactivacin) de un dispositivo, etc.

Funcionamiento de los buses

Cuando uno de los registros de entrada y salida recibe su direccin por el bus de
direcciones, el dispositivo se activa y segn la orden de leer o escribir presente en el
bus de control, pasan la informacin que contienen al bus de datos, o se cargan con la
informacin que contiene el bus de datos.

Por ejemplo, si deseamos enviar un dato por el puerto paralelo de un PC, lo primero
que haremos ser poner la direccin de ese puerto en el bus de direcciones. Como lo
que queremos es enviar, es decir, escribir, activaremos en el bus de control la seal de
escritura y, por ltimo, enviaremos por el bus de datos la informacin a sacar por dicho
puerto. Si, por el contrario, queremos leer un dato por el puerto paralelo, primero
enviaremos por el bus de direcciones la direccin donde se encuentra ese dispositivo.
Como deseamos leer su contenido, activaremos la seal de lectura del bus de control
y, por ltimo, el controlador de ese dispositivo nos pondr en el bus de datos su
contenido.

Arquitectura Von Neumann y arquitectura Harvard

Hay dos arquitecturas distintas relacionadas con el uso y distribucin de la memoria:

Arquitectura Von Neumann: Tradicionalmente los sistemas con microprocesadores


se basan en esta arquitectura, en la cual la unidad central de proceso (CPU), est
conectada a una memoria principal nica (casi siempre slo RAM) donde se guardan
las instrucciones del programa y los datos. A dicha memoria se accede a travs de un
sistema de buses nico (control, direcciones y datos):

En un sistema con arquitectura Von Neumann el tamao de la unidad de datos o


instrucciones est fijado por el ancho del bus que comunica la memoria con la CPU.
As un microprocesador de 8 bits con un bus de 8 bits, tendr que manejar datos e
instrucciones de una o ms unidades de 8 bits (bytes) de longitud. Si tiene que
acceder a una instruccin o dato de ms de un byte de longitud, tendr que realizar
ms de un acceso a la memoria.

El tener un nico bus hace que el microprocesador sea ms lento en su respuesta, ya


que no puede buscar en memoria una nueva instruccin mientras no finalicen las
transferencias de datos de la instruccin anterior.

Las principales limitaciones que nos encontramos con la arquitectura Von Neumann
son:

La limitacin de la longitud de las instrucciones por el bus de datos, que hace


que el microprocesador tenga que realizar varios accesos a memoria para
buscar instrucciones complejas.
La limitacin de la velocidad de operacin a causa del bus nico para datos e
instrucciones que no deja acceder simultneamente a unos y otras, lo cual
impide superponer ambos tiempos de acceso.

Arquitectura Harvard: Este modelo la unidad central de proceso (CPU) conectada a


dos memorias (una con las instrucciones y otra con los datos) por medio de dos buses
diferentes.

Una de las memorias contiene solamente las instrucciones del programa (Memoria de
Programa), y la otra slo almacena datos (Memoria de Datos).

Ambos buses son totalmente independientes lo que permite que la CPU pueda
acceder de forma independiente y simultnea a la memoria de datos y a la de
instrucciones. Como los buses son independientes stos pueden tener distintos
contenidos en la misma direccin y tambin distinta longitud. Tambin la longitud de
los datos y las instrucciones puede ser distinta, lo que optimiza el uso de la memoria
en general.

Para un procesador de Set de Instrucciones Reducido, o RISC (Reduced Instruccin


Set Computer), el set de instrucciones y el bus de memoria de programa pueden
disearse de tal manera que todas las instrucciones tengan una sola posicin de
memoria de programa de longitud.

Adems, al ser los buses independientes, la CPU puede acceder a los datos para
completar la ejecucin de una instruccin, y al mismo tiempo leer la siguiente
instruccin a ejecutar.
Ventajas de esta arquitectura:

El tamao de las instrucciones no est relacionado con el de los datos, y por lo


tanto puede ser optimizado para que cualquier instruccin ocupe una sola
posicin de memoria de programa, logrando as mayor velocidad y menor
longitud de programa.
El tiempo de acceso a las instrucciones puede superponerse con el de los
datos, logrando una mayor velocidad en cada operacin.

Procesadores: CISC y RISC

Los procesadores se agrupan hoy en dos familias, la ms antigua y comn de las


cuales es la "CISC" o "Complex InstructionSet Computer": computador de set complejo
de instrucciones. Esto corresponde a procesadores que son capaces de ejecutarun
gran nmero de instrucciones pre-definidas en lenguaje de mquina (del orden del
centenar).

Desde hace unos aos se fabrican y utilizan en algunas mquinas procesadores


"RISC" o "Reduced Instruction Set Computer",es decir con un nmero reducido de
instrucciones. Esto permite una ejecucin ms rpida de las instrucciones pero
requiere compiladores (o sea traductores automticos de programas) ms complejos
ya que las instrucciones que un "CISC" podra admitir pero no un "RISC", deben ser
escritas como combinaciones de varias instrucciones admisibles del "RISC". Se
obtiene una ganancia en velocidad por el hecho que el RISC domina instrucciones
muy frecuentes mientras son operaciones menos frecuentes las que deben
descomponerse.

Dentro de muy poco los usuarios dejaran de hacerse la pregunta RISC O CISC ?,
puesto que la tendencia futura, nos lleva a pensar que ya no existirn los CISC puros.

Hace ya tiempo que se ha empezado a investigar sobre microprocesadores "hibridos",


es decir, han llevado a cabo el que las nuevas CPU's no sean en su cien por cien
CISC, sino por el contrario, que estas ya contengan algunos aspectos de tecnologia
RISC. Este proposito se ha realizado con el fin de obtener ventajas procedentes de
ambas tecnologias (mantener la compatibilidad x86 de los CISC, y a la vez aumentar
las prestaciones hasta aproximarse a un RISC), sin embargo, este objetivo todavia no
se ha conseguido, de momento se han introducido algunos puntos del RISC, lo cual no
significa que hayan alcanzado un nivel ptimo.

Realmente, las diferencias son cada vez ms borrosas entre las arquitecturas CISC y
RISC. Las CPU's combinan elementos de ambas y no son fciles de encasillar. Por
ejemplo, el Pentium Pro traduce las largas instrucciones CISC de la arquitectura x86 a
micro operaciones sencillas de longitud fija que se ejecutan en un nucleo de estilo
RISC. El UltraSparc-II de Sun, acelera la decodificacin MPEG con unas instrucciones
especiales para grficos; estas instrucciones obtienen unos resultados que en otros
procesadores requeriran 48 instrucciones.

Por lo tanto a corto plazo, en el mercado coexistirn las CPU's RISC y los
microprocesadores hbridos RISC - CISC, pero cada vez con diferencias ms difusas
entre ambas tecnologas. De hecho, los futuros procesadores lucharan en cuatro
frentes:

-Ejecutar ms instrucciones por ciclo.


-Ejecutar las instrucciones en orden distinto del original para que las
interdependencias entre operaciones sucesivas no afecten al rendimiento del
procesador.

-Renombrar los registros para paliar la escasez de los mismos.

-Contribuir a acelerar el rendimiento global del sistema, adems de la velocidad de la

CPU.

UNIDADES DE MEDIDA DEL RENDIMIENTO GLOBAL

En la bsqueda de una medida estndar del rendimiento de los computadores, se han


desarrollado una serie de mtricas populares como alternativa al uso del tiempo, el
cual ha conducido en alguna ocasin a resultados distorsionados o interpretaciones
incorrectas. En esta seccin se explican algunas de las mtricas ms comnmente
usadas.

a) MIPS

Los MIPS son los millones de instrucciones por segundo que ejecuta un procesador
para un programa determinado. La ventaja de esta unidad de medida es su fcil
comprensin ya que un mayor nmero de MIPS indicar una mayor velocidad de la
mquina. Sin embargo, no es una medida buena ya que puede producir resultados
errneos, un mismo programa en un mismo computador puede dar resultados
diferentes segn el programador o el repertorio de instrucciones utilizadas, adems los
MIPS pueden variar inversamente al rendimiento.

b) MEGAFLOPS NATIVOS Y RELATIVOS

Surgen ya que los MIPS no hacen distincin entre operaciones normales y


operaciones en coma flotante. Los Megaflops nativos indican los millones de
instrucciones en coma flotante por segundo que se realizan para un determinado
programa.

Los Megaflops nativos tampoco son fiables, ya que dependen mucho de programas y
tipos de computadores. Tuvieron muchas crticas los fabricantes de computadores,
porque, hay computadores que solo tienen operaciones sencillas (ADD, SUB, MUL) y
generan pocas operaciones en coma flotante, en cambio hay otros computadores que
tienen ms operaciones en coma flotante (DIV, SQRT, EXP, SIN, ...). Las operaciones
sencillas tardan menos en ejecutarse que las operaciones complejas, por lo que
apareci el concepto de Megaflops relativos.

Los Meglaflops relativos o normalizados indican los millones de operaciones en coma


flotante por segundo pero teniendo en cuenta la equivalencia que tienen las
operaciones complejas con las simples.

c) PROGRAMAS DE PRUEBA O BENCHMARKS

La mejor y ms fiable forma de calcular el rendimiento es medir el tiempo que los


diversos computadores tardan en ejecutar los programas que realmente el usuario va
a utilizar posteriormente. Ese ser el mejor rendimiento para ese usuario, pero no para
todos los usuarios, ya que el rendimiento es un valor relativo de acuerdo con la
aplicacin que se va a hacer

Hay multitud de programas de prueba o benchmarks. Estos programas se dividen


principalmente en 4 grupos, los tres primeros tipos han quedado en desuso.

benchmark sintticos
benchmarks reducidos
benchmark kernel o de ncleo
programas reales

Unidad de entradas/salidas (interfaz)

Esta unidad comunica al sistema con el mundo exterior, permitiendo la introduccin y


la extraccin de informacin al sistema. Estas unidades consisten generalmente en
registros que, accionados por los buses de control y direcciones, almacenan la
informacin suministrada por el bus de datos. Estos registros son accesibles desde el
exterior por una serie de terminales para su conexin a cualquier dispositivo que se
deba accionar.

En las entradas se introduce la informacin de manera que cuando se ordena


mediante los buses de control y de direcciones, el sistema selecciona en un instante
dado cuales de esas informaciones presentes en las entradas deben transferirse al
bus de datos para su proceso.

La parte de salida, por el contrario, consiste en una serie de registros en los que el
sistema deposita el resultado de la informacin ya procesada. Al igual que sucede en
un sistema abierto con la Memoria Central, la Unidad de E/S es un elemento que no
est en el interior del microprocesador, pero si dentro de un microcontrolador.

Los diferentes perifricos que se pueden conectar a un sistema informtico a travs de


la unidad de entrada/salida, se los dividen en cuatro grupos principales:

Perifricos de Entrada de Informacin.


Perifricos de Salida de Informacin.
Perifricos de Almacenamiento de Informacin.
Perifricos de Comunicaciones.

Por tanto, los dispositivos de entrada/salida son una de las partes fundamentales de la
arquitectura del computador y su objetivo es la eficiencia en la gestin de las
operaciones de entrada/salida, descargando a la CPU de tanto trabajo como sea
posible. Estos dispositivos tienen velocidades muy variadas:

Dispositivos lentos (como el ratn, el teclado, el joystick. . . )


Dispositivos de velocidad media (como una impresora)
Dispositivos rpidos (como un disco duro, una tarjeta de red. . . )
Por tanto, un dispositivo concreto no puede aceptar datos enviados a una tasa
arbitrariamente alta (por ejemplo, una impresora no puede imprimir los millones de
caracteres por segundo que sera capaz de enviarle un Pentium IV). Por ello, ha de
haber alguna forma de coordinar l envi de datos entre la CPU y los perifricos. Esa
es la misin de los circuitos de interfaz que aparecen en la figura siguiente.

Existen 2 formas bsicas de conectar estos circuitos de interfaz, dependiendo del tipo
de Procesador en que se base la arquitectura. Ambos tipos de acceso requieren que la
CPU realice el movimiento de los datos entre el perifrico y la memoria principal:

1. Conexin mapeada en memoria (memorymapped I/O), que usa direcciones


especiales en el espacio normal de direcciones. En este caso el circuito de interfaz se
conecta en el computador como si fuera memoria. Presentan este tipo de
entrada/salida, por ejemplo, aquellas arquitecturas basadas en el M68000 de Motorola.
Cualquier instruccin que acceda a la memoria (como mov) puede acceder a un
puerto I/O mapeado en memoria.

2. Conexin mediante puertos especiales de entrada/salida (I/Omapped I/O), que usa


instrucciones especiales de entrada/salida 1 y un espacio de direcciones especfico.
Este es el caso de las CPUs 80x86.

La familia de procesadores 80x86 proporciona, por tanto, dos espacios de direcciones:

Para memoria
Para dispositivos de E/S

El bus de direcciones (address bus) vara de tamao segn el procesador de la familia


que se emplee (puede ser de 20, 24 o 32 bits), pero para la entrada/salida es siempre
de 16 bits. Esto permite al microprocesador direccionar hasta 65536 diferentes
localizaciones especiales de entrada/salida, lo que es mas que suficiente para la
mayora de los dispositivos, aunque muchas veces un dispositivo requiera mas de una
direccin de entrada/salida (por ejemplo, en el caso del ratn PS/2 veremos que habr
que acceder a las direcciones 60h y 64h; en el caso del puerto de juegos, suele ser la
201h). Hay 2 espacios de direcciones, pero un solo bus de direcciones y son las lneas
de control las que deciden a que espacio estamos accediendo en cada momento. De
esta manera, el direccionamiento de entrada/salida (I/O addressing) se comporta
exactamente igual que el direccionamiento de memoria (memory addressing). La
memoria y los dispositivos I/O comparten el bus de datos y los 16 primeros bits del bus
de direcciones.

Resumiendo, existen dos consideraciones bsicas que debemos hacer en el


subsistema de entrada/salida en un IBM PC:

1. Las CPUs 80x86 requieren instrucciones especiales para acceder a los


dispositivos de entrada/salida.

2. No se pueden direccionar mas de 65536 direcciones de entrada/salida. Esto es un


problema porque algunos dispositivos requieren mas direcciones, como por ejemplo
una tarjeta grafica VGA tpica, que necesita mas de 128000. Afortunadamente, existen
medios, utilizando la circuitera adecuada, para mapear en memoria esos dispositivos.

Un puerto I/O tiene una apariencia de celda de memoria para el computador, pero
tiene conexiones con el mundo exterior. Los puertos de entrada/salida se clasifican
habitualmente en tres tipos diferentes:

Puertos de solo lectura (readonly o input port)


Puertos de solo escritura (writeonly o output port)
Puertos de lecturaescritura (readwrite o inputoutput)

Por regla general, los puertos de entrada/salida utilizan un latch como elemento de
memoria. Por ejemplo, en el caso de un puerto de solo escritura el latch captura los
datos escritos en l por la CPU y los hace disponibles en un conjunto de cables
externos a la CPU y al sistema de memoria. En este tipo de puertos la CPU no puede
leer el dato que ha escrito en el latch ya que para que ste funcione deben estar
activas tanto la lnea de direcciones como la de control, y en el caso de querer realizar
una lectura la lnea control de escritura (write control) no estara activa. La figura
siguiente muestra una posible implementacin de un puerto de solo escritura con un
latch. Si el puerto es de lecturaescritura, la CPU puede comprobar que el dato se ha
escrito correctamente leyendo del puerto. Un puerto de entrada/salida se comportara
como se describe en la figura (la parte inferior de la figura correspondera a un puerto
de solo lectura (input port)). Los datos que se escriban en un puerto de solo lectura
son ignorados por el sistema.

Formas de realizar la entrada/salida

Ya hemos visto que para coordinar el envi de datos entre la CPU y los dispositivos se
usan circuitos de interfaz especiales. Existen bsicamente tres formas de realizar la
gestin de entrada/salida en un dispositivo, es decir, tres formas en que estos circuitos
de interfaz pueden operar:

1. Entrada/salida por encuesta (tambin llamada por consulta o programada, en


ingles polling).
2. Entrada/salida por interrupciones.
3. Entrada/salida por acceso directo a memoria.

Entrada/salida por consulta

El polling, utilizado en las primeras computadoras personales (como Apple II), consiste
en que la CPU sondea peridicamente al dispositivo para ver cual es su estado. Ese
sondeo se puede hacer, por ejemplo, leyendo de una direccin de entrada/salida
correspondiente a uno o varios registros de estado del dispositivo. Los bits de esos
registros de estado nos dirn cual es la situacin concreta del dispositivo (por ejemplo,
si se trata de una impresora, podemos saber si esta lista para recibir nuevos
caracteres; si se trata de un teclado, podemos saber si el usuario ha presionado una
tecla y el carcter aun no se ha ledo, etc.). Otras veces no hay tal registro de estado,
y simplemente se lee lo que haya en la direccin I/O desde programa, decidiendo
luego que hacer con el dato ledo. Este es el caso, por ejemplo, de un joystick
analgico conectado al puerto de juegos del PC.

Esta forma de entrada/salida es sencilla, pero claramente ineficiente. Por ejemplo, si


un usuario tarda 10 segundos en mover el ratn, se habrn realizado miles de
encuestas al dispositivo sin detectar un nuevo evento, con la consecuente perdida de
tiempo para realizar otras tareas en la CPU. Por otra parte, el ritmo de transferencia de
datos esta limitado por la velocidad de la CPU, ya que no podremos encuestar al
dispositivo con una frecuencia arbitrariamente alta. Por tanto, esta forma de
entrada/salida debe evitarse en lo posible. Sin embargo, en algunas ocasiones no
quedara otra opcin, ya que el dispositivo en cuestin no genera interrupciones (como
es el caso del joystick que veremos en este proyecto).

Entrada/Salida por interrupciones

En el caso de la entrada/salida por interrupciones, es el dispositivo quien establece el


momento en que se realiza la transferencia de los datos, avisando a la CPU de que ha
ocurrido un evento (por ejemplo, que el usuario haya presionado una tecla). En este
punto, debemos aclarar que en la familia 80x86 existen tres tipos de interrupciones,
que a veces producen confusin por la nomenclatura empleada en diversos textos:

1. Las traps o interrupciones software son interrupciones invocadas por el usuario


desde programa. En este caso, la CPU pasa a ejecutar el manejador de trap asociado
(subrutina de atencin a la interrupcin o ISR2)
.
2. Las excepciones son traps generadas automticamente en respuesta a alguna
condicin excepcional producida al intentar ejecutar una instruccin: divisin por cero,
cdigo de operacin ilegal. . .Tambin en este caso se ejecuta la ISR asociada,
decidiendo, en su caso, que hacer con la situacin anmala.

3. Las interrupciones hardware, a las que llamaremos simplemente interrupciones, se


basan en un evento hardware externo a la CPU y no relacionado con la secuencia de
instrucciones que se est ejecutando en ese momento. Son las que un ingeniero
electrnico mas intuitivamente relacionara con el termino interrupcin, y con las que
vamos a tratar en este proyecto.

Para cada tipo de interrupcin, por tanto, se puede instalar una rutina de atencin o
servicio de interrupcin. Cuando la CPU recibe notificacin de la interrupcin detiene el
programa en ejecucin, ejecuta la ISR (es decir, sirve al dispositivo haciendo que cese
su peticin de interrupcin (si es necesario, se accede al controlador de interrupciones
para hacer lo mismo)) y finalmente devuelve el control al programa, restaurando su
estado anterior. Por tanto, una condicin importante a cumplir es que una ISR debe
preservar el estado del procesador (el contenido de todos sus registros) para poder
volver al estado anterior a la llamada.

Para permitir nuevas interrupciones hardware en medio de una ISR hardware, hay que
usar una instruccin sti. Las fuentes primarias de interrupcin en el PC son variadas:

Timer chip del PC


Teclado
Puertos series y paralelos
Disco duro
Reloj de tiempo real CMOS
Ratn
Tarjetas de sonido
Otros dispositivos
En la tabla 1 pueden consultarse las fuentes de interrupcin mas frecuentes en el PC,
junto con su nmero de interrupcin asociado. Todos estos dispositivos se conectan al
controlador programable de interrupciones o PIC (Programmable Interrupt Controller)
Intel 8259A, que establece prioridad entre las interrupciones y se conecta con la CPU.
Este controlador de interrupciones (que se denomina genricamente 8259) acepta
interrupciones de hasta 8 dispositivos. Si cualquier dispositivo pide servicio, el 8259 se
conectara con la CPU y le pasara un vector de interrupcin programable. En un
principio, el PC IBM original solo soportaba ocho interrupciones diferentes ya que
usaba un solo chip 8259. Mas tarde IBM (y todos los fabricantes de PCs) aadieron un
segundo PIC en el PC/AT y posteriores maquinas. De hecho, podran encadenarse
hasta nueve chips del 8259 para soportar un total de 64 dispositivos que generen
interrupciones. Lo normal, sin embargo, es tener solamente dos, tal como se muestra
en la figura , y soportar un total de 15 interrupciones.

Sin entrar en demasiados detalles sobre la programacin del PIC, que puede resultar
compleja, s diremos que tiene un registro de mascara de interrupcin (mask register).
Este registro de 8 bits permite habilitar o inhabilitar las interrupciones de los
dispositivos del sistema (un 0 habilita la interrupcin del dispositivo y un 1 la
inhabilita), como puede verse en la figura 6. Cuando ocurre una cierta interrupcin, el
8259 enmascara las posteriores interrupciones de ese dispositivo hasta que recibe fin
de interrupcin de la ISR.

El PIC proporciona varios esquemas de prioridad, pero el BIOS lo inicializa para usar
prioridad fija. En este caso, el dispositivo con IRQ 0 (el timer) tiene la prioridad ms
alta y el IRQ 7 la ms baja. Si tenemos una tarea que queremos que sea de mxima
prioridad (como por ejemplo el control de un reactor nuclear) seguramente usaramos
la interrupcin no enmascarable (int 2), no conectada con el 8259, que no puede
desactivarse mediante software y es de mayor prioridad que cualquiera que venga del
PIC. Esto es as porque en realidad los chips de la familia 80x86 presentan dos
posibles entradas de interrupcin. La primera es la interrupcin enmascarable, a la que
se conecta el 8259, que como su nombre indica se puede enmascarar o
desenmascarar con las instrucciones cli y sti. La segunda es para la interrupcin no
enmascarable, que siempre esta activada por defecto.

Entrada/Salida por acceso directo a memoria (DMA)

Tanto los subsistemas de entrada/salida mapeada en memoria como los que usan
puertos de entrada/salida necesitan que sea la CPU la que realice la transferencia de
los datos entre el dispositivo y la memoria. Para algunos dispositivos de alta velocidad,
esta forma de procesar los datos puede resultar demasiado lenta. En el caso del DMA,
el dispositivo puede operar directamente sobre la memoria, siempre que la CPU le
haya concedido el permiso para hacerlo. De esta manera, solo se avisa a la CPU al
comienzo o al final de una operacin sobre memoria y se consigue una tasa de
transferencia de datos superior a la de los otros mtodos. Adems esto a menudo
permite que las operaciones de entrada/salida se realicen en paralelo a otras
operaciones de la CPU, aumentando as el rendimiento global del sistema. Sin
embargo, ntese que no es posible que la CPU y el dispositivo utilicen a la vez el bus
de direcciones y de datos, por lo que el procesamiento paralelo se dar solo cuando la
CPU este operando sobre datos contenidos en una memoria cache.

Potrebbero piacerti anche