Documente Academic
Documente Profesional
Documente Cultură
8.1 In tro d u c c ió n
En este capítulo se estudiarán las características que se han de tener en cuenta para eva
luar el rendimiento de un microprocesador.
En la página W eb de apoyo encon
trará un breve comentario de la autora La mayor preocupación del usuario de una computadora tiene que ver con la velocidad
sobre este capítulo. de su CPU. Este parámetro mide la cantidad de trabajo que se realiza por ciclo de reloj;
cuando decimos trabajo nos referimos a cuántas operaciones se pueden ejecutar por unidad
de tiempo.
Es habitual que se considere que cuanto mayor es la frecuencia del reloj que sincroniza las
operaciones, más veloz es la ejecución de instrucciones. Sin quitar la validez de este concepto,
se debe considerar que no es el único parámetro que incide en la velocidad de ejecución; por
ejemplo, la eficiencia del microcódigo establece la cantidad de operaciones invertidas en la
ejecución de una instrucción, puede ser que una CPU realice una multiplicación en muchas
menos operaciones que otra y esto mejora la velocidad de ejecución, independientemente del
ritmo que impone el reloj. La unidad de coma flotante mejora la velocidad de operaciones que
involucran números con coma o números muy grandes respecto de la unidad de coma fija, por
lo tanto, cuantas más unidades de coma flotante se repliquen en el diseño, mayor es la posibi
lidad de ejecución de estas operaciones en paralelo.
Otra característica que representa mayor rendimiento es la cantidad de bits que se pueden
operar simultáneamente; es decir que sumar dos números de 64 bits en una CPU con registros
de 32 bits, implica que la suma se realice en dos etapas. La cantidad de bits que se operan
simultáneamente se denomina palabra de CPU.
8 .2 M ic ro p ro c e s a d o re s y m ic ro c o n tro la d o re s
Los circuitos integrados (IC o Integiated Circuits), también llamados chips, están consti
tuidos por una base de silicio en la que se encuentran millones de dispositivos electrónicos
interconectados (diodos, transistores, resistencias, capacitores, etc.).
Un microprocesador es un chip que junto con la memoria principal, los buses de sistema,
los módulos de E/S y los buses de E/S constituyen la estructura de una computadora completa
que se integra en una arquitectura abierta, ya que es configurable según la necesidad del
negocio, tanto desde el punto de vista del hardware como del software.
controla; pertenecen a lo que se denomina arquitectura cerrada. Un ejemplo de ello son los
controladores PLC [Programmable Logic Controller o controlador lógico programable).
Los microprocesadores son ejemplos de chips muy avanzados que varían en velocidad y
capacidad de direccionamiento a memoria, registros, niveles de caché, capacidad de transfe
rencia de datos, etcétera. También se encuentran microchips en las placas de memoria (por
ejemplo, placas de memoria dinámica) y en las placas de expansión (por ejemplo, placa gráfica).
En este ejemplo, el procesador de la máquina Von Neumann contiene las tres partes bási
cas: CU, ALU y un registro AC, funciones agrupadas bajo el término CPU.
8 .3 L o n g itu d d e p a la b ra
Un microprocesador "procesa” bits que obtiene de una memoria, los opera y luego alma
cena el resultado de nuevo en memoria. Hablamos de "una memoria”, puesto que ya sabemos
que la memoria de una computadora es la memoria principal, los datos surgen inicialmente de
allí y los resultados terminan allí de manera definitiva, aun cuando el microprocesador cuente
con sus propios registros e incluso con memorias caché y alojadas en su interior. La cantidad
de estos bits que "procesa" como grupo es su longitud de palabra.
A su vez, se indica que una "palabra de memoria" es la cantidad de bits a los que se puede
acceder por vez, lo que no necesariamente debe coincidir con el concepto de palabra al que
nos referimos aquí.
Un programa que esté compilado con un compilador de 32 bits “considera" que un dato u
operando de 64 bits está almacenado en dos palabras de memoria de 32. Entonces, el código
ejecutable generará dos instrucciones de lectura a memoria en lugar de una, o sea que para un
buen uso de la longitud de palabra del microprocesador lo sugerido es recompilar los progra
mas fuente con "compiladores de 64 bits”.
8 .4 C a p a c id a d d e d ire c c io n a m ie n to
salto. Por lo tanto, todas las instrucciones que están en "fase de ejecución” posteriores a la de
salto "se ejecutaron en vano” . Si se considera posible que entre 25% y 30% de las instrucciones
en un programa es de salto y que se puede aumentar la velocidad de ejecución a causa del
pipeline entre 4 y 5 veces más, entonces la pérdida se equilibra con la ganancia.
Es importante entonces el estudio de los distintos saltos que puedan producirse y de las
posibles estrategias que se han de seguir para minimizar su impacto.
Una primera observación que podemos hacer es que hay saltos incondicionales, JMPXXX,
saltos condicionales, JZXXX, además de retornos de rutinas RET, saltos por iteraciones, LOOP
XXX, CALL XXX, o llamado a rutina.
Se puede utilizar una estrategia de "penalización por salto”. Esto implica que se considera
que ningún salto se va a producir y que en el caso de que se produzca, se perderá lo ejecutado
a posteriori y se vaciará el cauce de ejecución. La EU debe contar con registros especiales e
invisibles al programador de aplicaciones, para resguardar el entorno de ejecución al momento
en que se produzca el salto.
8 .9 C a p a c id a d d e in te rru p c ió n
S
Las interrupciones y las excepciones son acontecimientos causados tanto por los disposi
Las interrupciones y las excepciones tivos de E/S como por el programa que se ejecuta en el microprocesador y su efecto produce
son acontecimientos causados tanto
una suspensión de la actividad actual del micro, para pasar a ejecutar un servicio que "inter
por los dispositivos de E/S como por
el programa que se ejecuta en el prete el manejo de esa interrupción” .
microprocesador. Los dispositivos externos utilizan interrupciones para informar su estado o solicitar la ejecución
de actividades que le son necesarias. Por ejemplo, "solicito que la CPU ejecute mi driver”. Los pro
gramas a su vez solicitan información de los dispositivos de E/S, por ejemplo, para obtener un
bloque de información de un disco.
Cada interrupción está asociada con un número que la identifica; éste permite convocar al
servicio que la atiende, que puede ser provisto por el sistema operativo o, en las computadoras
que albergan una BIOS, por un servicio de la BIOS (Basic Input Output System).
Si un programa quiere provocar una interrupción para acceder a un disco o a otro dispo
sitivo de E/S, utiliza una instrucción especial del set de instrucciones (p. ej., el mnemònico
IN T #). El microprocesador decodifica el código de operación, en este caso "CD", y ejecuta
el servicio identificado por el número "# ". Para ejemplificar lo enunciado, a continuación se
muestra cómo en una computadora personal se produjo un “desensamblado” (unassembler)
de una instrucción ingresada en modo ífSbits.
-u 0100 <ENTER>
1 5 31:0100 CD08
tantos números de interrupción que se puede programar. Para saber qué servicio brinda cada
número debemos recurrir a un manual de servicios de interrupción del sistema operativo o al
manual de referencias técnicas de las BIOS. Las interrupciones programadas se denominan
exactamente interrupciones internas, interrupciones program adas o interrupciones Las interrupciones programadas se
software, y causan la suspensión momentánea del programa que las convoca para bifurcar el denominan exactamente interrupcio
nes internas, interrupciones progra
servicio solicitado; éste se ejecuta y se retoma el programa interrumpido.
madas o interrupciones software.
Cuando el microprocesador "recibe” una señal de interrupción "desde afuera”, deja la eje
cución del programa actual y bifurca al servicio residente en la memoria principal. Estos servi
cios se denominan servicios de interrupción o de dispositivo; estas interrupciones se clasifican
como externas o hardw are
Internas o softw are: Se pueden producir por la ejecución de una instrucción específica dentro de
son convocadas por el programa. un programa, para solicitar una interrupción que cumpla con alguna función
determinada.
La forma de convocarla es INT #, donde # corresponde al número que identifi
ca la interrupción.
Excepciones: Faltas o errores Son las que se pueden detectar y corregir antes de que se produzca la eje
son provocadas como consecuen cución de una instrucción determinada (p. ej., se produce una falla al invocar
cia de anomalías que se producen una página que no está en memoria principal). La atención de esta interrup
y detectan durante la ejecución ción provoca que el sistema operativo localice la página faltante y la cargue.
del programa y a causa de ella.
Trampas Son las que se detectan una vez ejecutada la instrucción que las provoca
(p. ej., las que de alguna manera incorpora el usuario en el programa, como
sobreflujo u ov eiñ o w ).
Abortos Son las que se detectan sin localizar la instrucción que las provoca, abortando
la ejecución del programa (p. ej., un valor no válido en un registro de sistema).
Cuando se produce una interrupción y cuando ésta no provoca la finalización del programa
en ejecución, se debe resguardar la información que se aloja en todos los registros del micro
y que se relaciona con la ejecución del programa interrumpido (p. ej., no se sabrá hasta qué
instrucción se ejecutó si no se resguarda el contenido del registro I P o EIP, según el modo de
operación del microprocesador. Toda la información de la CPU asociada con la ejecución se al
macena en memoria principal, en una estructura de dato denominada pila asociada al programa.
Este procedimiento permite resguardar el entorno de CPU para luego reanudar la ejecución
a partir del momento en que se produjo la interrupción. El programa pasa a un estado de espera
que durará como mínimo el tiempo que tarde en ejecutarse el servicio de interrupción.
Cuando el servicio se ejecutó por completo, el programa interrumpido debe continuar su eje
cución, pero los registros internos contienen información que no le sirve, es entonces el momen
to de restaurar el entorno de CPU, "rescatando” la información que tenían los registros internos
desde la pila. Este procedimiento se conoce como restauración de contexto de CPU.
O sea que si queremos indicar qué ocurre cuando se detecta una interrupción y ésta puede
ser atendida, podemos indicar tres pasos:
a) Programa en ejecución.
b) Presentación de la interrupción.
Los servicios que atienden a las diversas interrupciones y excepciones que se pueden pro
ducir se alojan en la memoria principal y, obviamente, "comienzan" en lugares de memoria dife
rentes. Para conocer dónde se aloja un servicio, también se mantiene en memoria una tabla de
vectores de interrupción de n entradas. Cada una de éstas se corresponde con el número de inte
rrupción: así, la INT 10, encuentra su vector en la entrada 10hexadecimal. Hay tantas entradas
como servicios definidos; cada vector “contiene” la posición del servicio. El término vector debe
asumirse como señalador o puntero. Estos vectores señalan zonas de memoria RAM o ROM. Al
conjunto de servicios se lo denomina manejadores de interrupciones (Interruptíon Dríveis). Para
encontrar en una computadora hogareña las descripciones de las interrupciones que controlan
tanto la ROM-BIOS como el sistema operativo, se debe recurrir al manual de referencia técnica
de la BIOS y al manual de referencia técnica del sistema operativo instalado. Por simple curiosi
dad, daremos el ejemplo de cómo se representaba la tabla de vectores de interrupción en modo
16 bits; como el ejemplo es ilustrativo, está sombreado y su lectura se puede obviar.
C:\>d ebu g
-dO: 0
0000 0000 0A 2B 57 1C 65 04 70 00-16 00 IB 10 65 04 70 00 . +W. e . p . . . .e .p .