Está en la página 1de 23

2.

6 INTERRUPCIONES EN UN
PROCESADOR SEGMENTADO
 En esta sección se introducen los aspectos relacionados con el procesamiento
de las interrupciones y las excepciones en un procesador segmentado
 El procesamiento de las interrupciones y las excepciones afecta negativamente
al rendimiento del procesador segmentado
Efecto de una interrupción en la ejecución de un programa. Ejemplo de
interrupción por fallo de pagina

Proceso original Gestor de interrupciones Continua el proceso original

Se produce la interrupción. Se Prosigue el proceso original


suspende el proceso original y se
guarda información sobre el proceso
interrumpido (PC, al menos)

Comienza otro proceso

Proceso original Continua el proceso original

El gestor de fallos de pagina envía una La pagina ya esta disponible


petición de pagina al sistema de E/S
TAXONOMÍA DE LOS DISTINTOS TIPOS DE
INTERRUPCIONES

1. Si son originadas por una fuente externa al procesador o parten del


propio procesador

2. Si indican una condición de error que debe subsanar la rutina de


gestión de interrupción o permiten acceder a algún servicio que
proporciona el sistema operativo a través del correspondiente gestor
de interrupción
A. Generadas por el propio procesador para indicar una condición de error
B. Generadas por el propio procesador para acceder a un servicio del sistema
operativo
C. Generadas fuera del procesador para indicar una condición de error
D. Generadas fuera del procesador para acceder a un servicio del sistema
operativo
TAXONOMÍA DE LAS INTERRUPCIONES

Indican una
condición de Interrupciones
error y dan criticas para
paso a una comunicarse
rutina de con el S.O.
recuperación

Memoria virtual
Fuente interna a Excepciones Instrucciones
la CPU (A) no
implementadas

Fallo hardware Temporización


Fuente externa
(C) E/S (D)
EJEMPLOS DE INTERRUPCIONES EN UN PROCESADOR SEGMENTADO

IF ID EX MEM WB
ADD IF ID EX MEM WB

El orden temporal de las interrupciones puede ser


distinto del orden de las instrucciones en el código:
la AAD da lugar a una excepción de falta de pagina
de instrucción al captarse en IF, y l LW, a una falta
de página en MEM

IF ID EX MEM WB
ADD IF ID EX MEM WB

Se puede producir una excepción de falta de pagina


en LW, y una excepción aritmética en ADD al mismo
tiempo
SEGÚN SE ATIENDAN AS INTERRUPCIONES RESPETANDO EL ORDEN DE
EJECUCIÓN DE LAS INSTRUCCIONES O NO, SE HABLA DE INTERRUPCIONES
PRECISAS O IMPRECISAS

 Las interrupciones precisas son las que permiten


garantizar que el proceso interrumpido continúe
correctamente después de una interrupción no catastrófica.
 [Smith 85]

 Todas las instrucciones que se emitieron antes de la instrucción


indicada por el contador de programa (PC) almacenado (para
continuar el proceso interrumpido) se han completado
 Las instrucciones posteriores al valor indicado por el PC
almacenado no se ejecutan y no han cambiado el estado del
procesador.
 Si la interrupción fue ocasionada por una instrucción, el
contador de programa apunta a esa instrucción, que puede
ejecutarse completamente o no.
SIGNIFICADO DE LAS CONDICIONES DE SMITH Y PLESZKUN EN UN CAUCE

El contador de programa
almacenado para restaurar
el proceso apunta a la
instrucción que esta aquí

Instrucciones que no se ejecutan Instrucciones que se ejecutan


ni cambian de estado completamente

Instrucción completamente
ejecutada o no ejecutada
 La implementación de las interrupciones como interrupciones
precisas es un cauce en el que las escritura en los registros
de las arquitectura se produce en la ultima etapa del cauce
(etapa WB), puede realizarse como sigue:
 En primer lugar, hay que garantizar que el orden en que se
atienden las interrupciones coincide con el orden de las
instrucciones, más que con el orden en que se producen
éstas.
 Una posible implementación imprecisa de las interrupciones
en el cauce que se esta considerando seria: en el momento
en que una instrucción produce una interrupción se
atendería, guardando el contador de programa de la
instrucción que va a pasar a la etapa WB
 Las interrupciones generadas por le propio procesador para indicar una condición de
error se pueden implementar de forma imprecisa en la mayoría de los casos, ya que el
programa interrumpido no suele poder continuar
 Las interrupciones generadas por el propio procesador para acceder a un servicio del
sistema operativo deben implementarse de forma eficaz como interrupciones precisas
 En las interrupciones generadas fuera del procesador para acceder a un servicio del
sistema operativo, una vez detectada la interrupción, se deja de captar instrucciones, se
terminan las instrucciones del cauce y se inicia la ejecución del gestor de interrupción.
 Las interrupciones generadas fuera del procesador para indicar una condición de error
se pueden implementar de forma sencilla como en el caso anterior.

CONCRETAMENTE:
2.7.- LA FAMILIA DE PROCESADORES ARM
Las características de las arquitecturas RISC favorecen un diseño sencillo del
cauce que puede integrarse en un microprocesador, y facilitan un
aprovechamiento eficiente del mismo.
Las propuestas de procesadores RISC se planteaban como procesadores
segmentados.
La segmentación cauces se fue incorporando en las microarquitecturas de
procesadores con repertorios de instrucciones CISC.
Por ejemplo:
microprocesador 80486 de Intel (1989) utiliza un cauce de 5 etapas
MC68040 de Motorola (1991)
 En la actualidad es difícil encontrar un fabricante sin un producto RISC o que no
incorpore principios RISC en sus microprocesadores.
 Desde finales de los 80 hablar de procesadores RISC puros puede considerarse algo
del pasado.

 Los procesadores segmentados han ido introduciendo nuevos elementos para ser
capaces de procesar mas de una instrucción por ciclo dando lugar a los procesadores
superescalares y VLIW.
 De esta forma todos los procesadores utilizados en el ámbito de los computadores de
sobremesa y servidores son procesadores segmentados con microarquitectura
superescalar, VLIW.
 Sigue existiendo un mercado para el que siguen desarrollándose procesadores
segmentados: el de los procesadores embebidos en circuitos integrados para
aplicaciones que requieren niveles de prestaciones que no puedan alcanzarse
 En la figura 2.42 (makimoto 01) junto con la evolución de las prestaciones de los
procesadores RISC y CISC para el mercado de servidores y equipos de sobremesa, se ha
incluido también la línea de nuevos procesadores RISC, representadas
fundamentalmente por las arquitecturas ARM de Advances RISC Machines y SH de
Hitachi, que supone un rediseño de la arquitectura RISC para proporcionar un cociente
prestaciones/potencia elevada.
 La potencia elevada por estas nuevas arquitecturas RISC esta en torno a uno o dos vatios
de forma que pueden incluirse en los computadores de bolsillo o dispositivos similares.
 Detalles de la arquitectura ARM y su implementación a través de microarquitecturas
segmentadas.
 La familia de procesadores ARM se dirige fundamentalmente al mercado de los
sistemas embebidos, por lo que las restricciones de bajo coste y consumo tienen una
importancia determinante en el diseño de los sucesivos modelos de procesadores de la
familia.
2.42
 El primer procesador ARM se desarrollo en Inglaterra entre 1983 y 1985, ese momento
ya se había propuesto las primeras arquitecturas RISC:
 RISC I y RISC II en Berkeley y MIPS en Stanford.
 La arquitectura ARM incorpora una serie de características de la arquitectura de Berkeley:
se trata de una arquitectura de tipo carga/almacenamiento, con instrucciones de tamaño
fijo de 32 bits y formatos de instrucciones con 3 direcciones.

 Han aparecido 5 versiones diferentes del repertorio de instrucciones ARM, v1 a v5.


 La v1 y v2 solo disponen de 26 bits para direcciones de memorias.
 La v3 ya se introducen direcciones de byte de 32 bits y operandos de 32 bits
 La v2 introdujo instrucciones de multiplicación con operandos de 32 bits.
 La v4 las de multiplicación con operandos de 64 bits
 La v5 (y una ampliación de la misma denominada v5E) añade instrucciones
para normalizar números, para realizar operaciones de multiplicación y
acumulación de 16 bits (muy utilices en las rutinas de procesamiento de señales
digitales) y para la gestión de punto de ruptura en la depuración de programas.
 Una características importante del repertorio de instrucciones ARM, es la
existencia de una codificación compacta del conjunto de instrucciones ARM de
las v4 y v5.
 Esta codificación se denomina conjunto de instrucciones Thumb, para el que
se tienen las versiones v4T y v5T, cada instrucción del repertorio THUMB
ocupa 16 bits, de forma que es posible reducir la memoria ocupada por los
programas de las aplicaciones en sistemas embebidos de bajo costo y consumo.
 Una característica importante de repertorio de instrucciones ARM, sobre todo
desde el punto de vista del punto eficiente del cauce, es la posibilidad de ejecución
condicional de cualquier instrucción (excepto algunas instrucciones de la versión
v5T), es posible condicionar la ejecución de cualquier instrucción al
cumplimiento de una condición que se comprueba en CPSR.
 La condición a comprobar se indica en la propia instrucción.
 Los diseños de ARM se incluyen en un único circuito integrado, junto con el
hardware especifico correspondiente a la aplicación, de esta forma, los diseños de
ARM , que se suelen denominar núcleos (cores) se proporcionan de dos formas:
 como diseños detallados y específicos para un proceso de fabricación de circuitos
determinado (macroceldas hardware),
 Como un modulo hardware descrito a través de un lenguaje de descripción de
hardware (VHDL o Verilog) que puede sintetizarse a través de la biblioteca de celdas
correspondientes a la tecnología de fabricación usada (núcleos sintetizables)
 El procesador ARM7TDMI es el núcleo como macrocelda hardware
 El procesador ARM7TDMI-S es el nucleo sintetizable.
 En la tabla 2.3
 Hasta la versión ARM7, inclusive los procesadores ARM se implementan a
través de una microarquitectura de 3 etapas captación, decodificacion y
ejecución. Después los cauces pasaron a tener 5 etapas: captación de
instrucciones (fetch), decodificación/captación de operandos
(decode),ejecución/calculo de direcciones de memorias en la ALU (execute)
acceso a memoria si hace falta o no se hace nada (buffer/data) y escritura de los
resultados en el banco de registro (write-black).
 Posteriormente se introdujo un cauce se 6 etapas para poder utilizar ciclos de
reloj mas pequeños.
 En la figura se muestra cauces de 3, 5 y 6 etapas
 A continuación se describirán las decisiones de diseño que han determinado los
cambios en la estructura de los cauces.
 Si tenemos en cuenta la expresión [1.1] para mejorar las prestaciones de un
procesador habría que aumentar la frecuencia de reloj (f), y/o reducir el
números de ciclos por instrucción (CPI).
 Para aumentar la frecuencia de reloj habría que reducir la complejidad de la
circuitería de cada una de las etapas del cauce, dando lugar a un aumento en el
numero de etapas del cauce.
 Para reducir el numero de ciclos por instrucción seria necesario mejorar el
rendimiento del cauce reduciendo las dependencias entre las instrucciones.
 El principal problema que presentaba el cauce de tres etapas que utilizaban los
procesadores de ARM inicialmente están relacionados con el denominado cuello
de botella de von Neumann.
 El cauce con 3 etapas tiene que acceder a memoria en todos los ciclos para
captar las instrucciones y además hay que tener en cuenta los accesos a los
datos, por otra parte, si la memoria esta unificada no se puede acceder a la vez
a una instrucción y a un dato (si se tiene que leer o escribir un dato no se
pueden captar instrucciones en esos ciclos), si se desea reducir el valor de los
ciclos de CPI habría que captar mas de 32 bits (una palabra) en cada ciclo o
separar la memoria en una memoria de datos y una memoria de instrucciones.

 Los procesadores de ARM que siguieron al ARM7 empezaron a utilizar un


cauce de cinco etapas y memorias de datos y de instrucciones de datos y de
instrucciones separadas en la figura 2.43

También podría gustarte