2.6 INTERRUPCIONES EN UN
PROCESADOR SEGMENTADO
Veremos el procesamiento de las Interrupciones y las
excepciones de microarquitectura en un procesador
segmentado.
Estos procesamientos afecta negativamente al
rendimiento del procesador segmentado porque
ocasiona una ruptura del flujo de instrucciones de un
programa, análogo a los saltos.
Figura 2.38-
Efecto de una interrupción.
El programa se suspende y ejecuta el gestor de
interrupción .
Algunos tipos de interrupción, debe continuar el
programa suspendido, para lograr esto debe
guardarse la información (contador del programa y
algunos registros
de la arquitectura pueden ser modificados.)
Ejemplo: fallo de pagina.
El gestor de interrupción inicia la transferencia DMA
desde el disco a la memoria principal, a la vez el
sistema operativo ordena al procesador a realizar
otros procesos.
Cuando la página esta en memoria principal se
continua con el proceso interrumpido.
LOS DISTINTOS TIPOS DE TAXONOMÍA DE TIPOS DE
INTERRUPCIONES.
 Originadas por una fuente externa al procesador o
parten del propio procesador
 Indican una condición de error que debe subsanar la
rutina de gestión de interrupción o permite algún
servicio proporcionado por el S.O.
A) GENERADAS POR PROPIO PROCESADOR
PARA INDICAR UNA CONDICION DE ERROR
Conocidas como excepciones, generadas por
anomalías en operaciones aritmeticas.
Ejemplo el desbordamiento(overflow) y el
agotamiento (underflow), proteccion de la
memoria, etc
B) GENERADAS POR EL PROPIO PROCESADOR
AL ACCEDER A UN SERVICIO DEL SISTEMA
OPERATIVO
Aquí encontramos a los fallos por pagina,
interrupciones que introduce el
programador en el codigo.
Ejemplo
Generar trazas, definir instrucciones no
contempladas dentro del set de
instrucciones del computador
C) GENERADAS FUERA DEL PROCESADOR PARA
INDICAR ERROR
Error en el hardware del computador, fallo de
alimentación, etc.
D) GENERADAS FUERA DEL PROCESADOR
PARA ACCEDER A UN SERVICIO DEL SISTEMA
OPERATIVO
Corresponden a las peticiones de servicio
de los dispositivos de E/S a los eventos
de temporizaciones, etc.
INTERRUPCIÓN PRECISA
 Garantiza que el proceso interrumpido continue
correctamente despues de una interrupcion no catastrofica
 Para que se cumpla un estado preciso, debe cumplir las
sgtes condiciones
 Todas las instrucciones que se emitieron antes de la
instrucciones indicada por el contador de programa (PC)
almacenado se ha completado
 Las instrucciones posteriores al valor indicado por el PC
almacenado no se ejecutan y no han cambiado el estado
del procesador
 Si la interrupcion fue ocasionada por una instrucción, el
contador apunta a esa instrucción, que pueda ejecutarse
completamente o no
La interrupción se produce cuando la instrucción esta en
su 3era etapa(EX), todas las etapas posteriores deben
terminar de ejecutarse , las que están en etapas
anteriores no deben ejecutarse ni cambiar de estado(se
volverá a captar después de que se haya atendido a la
excepción)
En el momento en que se produce una
interrupción se atendería, guardando el
contador de programa de la instrucción que
va a pasar a la etapa WB. Una vez atendida
la interrupción se empezaría a ejecutar a
partir de esta instrucción que sería una
instrucción anterior en el código a la que ha
originado la interrupción.
HISTORIA
1983 comenzó con un proyecto de la empresa Acorn Computers Ltd.
Roger Wilson y Steve Furber cuya meta era, originalmente, el desarrollo
de un procesador avanzado, pero con una arquitectura similar a la del
MOS 6502.
El primer microprocesador fue desarrollado en Inglaterra en 1983 y 1985
(incorpora característica de Berkeley)
Favorecen a un diseño sencillo de cause
Desde un principio trabajaron con procesadores segmentados como
microprocesador 80486 de Intel y el mc 68040
Dieron lugar a los procesadores superescalares y VLIW
En la actualidad todavía se siguen desarrollando procesadores
segmentados
Arquitecturas RISC se planteaban como procesadores segmentados y
actualmente a dichos procesadores se le coloca micro arquitecturas
superescalares.
La familia de procesadores ARM esta dirigido fundamentalmente a
sistemas embebidos.
Se le incorporo 5 versiones diferentes de instrucciones.
ARM V1 Y ARM V2 solo dispone de 26 bits para direcciones de memoria
ARM V3: Se introducen direcciones de byte de 32 bits y operandos de 32
bits.
ARM V4: Introduce multiplicaciones con operandos de 64 bits.
ARM V5: Añade instrucciones para normalizar números para realizar
operaciones de multiplicación y acumulación de 16 bits.
Las instrucciones V4 y V5 se tiene una codificación compacta y esto se
denomina conjunto de instrucciones Thumb . Cada instrucción del
repertorio ocupa 16 bits, de tal forma que es posible reducir la memoria
ocupada
Su codificación se vuelve compacta a la cual se la conoce
como THUMB
Hasta la versión ARM7, los procesadores se implementaban a
través de una micro arquitectura de 3 etapas: captación,
decodificación y ejecución y después pasaron a 5 etapas,
captación de instrucciones (Fetch), decodificación/captacion
de operandos (Decode), ejecución/ calculo de direcciones
de memoria en la ALU (execute), acceso a memoria si hace
o no hace falta (Buffer, Data) y escritura de los resultados
en el banco de registros (write-back)
Posteriormente se introdujo un cauce de 6 etapas, para poder
hacer mas pequeños los ciclos de reloj
El principal problema que presentaba el cauce de tresetapas que uitlizaban los
procesadores de ARM era el denominado “CUELLO DE BOTELLA DE Neuman,
su almacenamiento de datos y memoria se daban en uno solo ”
Si la memoria está unificada no se puede acceder a la vez a una instrucción y a
un dato.
Mejoras en diseño de cauce de 5 etapas:
 Las etapas de captación de instrucción y de acceso a
memoria aumentan su duración en relación a las otras
etapas (ciclo y medio en lugar de un ciclo). Por ejemplo, en
la etapa de acceso ala memoria de datos, se calcula la
dirección de memoria en su sumador especifico, mas
rápido (medio ciclo) que si se hace en la ALU. De esta
forma de dispone de la dirección de memoria que hace
falta en el siguiente ciclo para realizar el acceso a
memoria.
 La etapa de ejecución se mejora gracias a un diseño mas
eficiente de los circuitos aritméticos que disminuyen la
longitud de sus caminos críticos. Así, el multiplicador no
hace uso de la ALU para realizar las sumas parciales que
requiere, sino que dispone de un sumador propio que
actúa coincidiendo con la etapa de memoria que no se
utilizan en las multiplicaciones.
 La lógica de decodificación tiene una complejidad tal
que debe rediseñarse ocupando dos etapas en lugar de
una para permitir aumentar la frecuencia de reloj. Por lo
tanto, se tiene al final un cause de seis etapas. Esta
nueva etapa que se añade da lugar ala perdida de un
ciclo adicional solo cuando se ejecutan instrucciones de
salto que no se predicen correctamente. Además, como
esta etapa nueva se encuentra antes de la etapa en la
que se leen los registros, no da lugar a mas posibles
dependencias entre datos y, por lo tanto, no se
necesitan caminos de bypass. Si se incluyen recursos
que implementen mecanismos de predicción de saltos
se pueden conseguir valores de CPI similares a los
obtenidos con cauces de 5 etapas, pero a una
frecuencia de reloj mas elevada.
Los accesos a memoria para cargar o almacenar datos que no
se completen en un ciclo (por ser lenta la memoria o por
transferirse los contenidos de varios registros) no detienen el
cauce, a no ser que aparezca una dependencia entre los
operandos.
 Se utiliza una memoria de datos de 64 bits que permite transferir
dos registros por ciclo de reloj, se necesitaran, por tanto, cuatro
puertos de lectura y tres de escritura en el banco de registros.
 Se introduce una unidad de predicción de salto para mantener la
eficiencia del cauce y reducir el valor medio de CPI: se captan 2
instrucciones por ciclo y la unidad de predicción de salto
reconoce los saltos antes de que pasen a primera etapa de
decodificación. Los saltos hacia atrás se predicen como tomados
y los saltos hacia adelante, como no tomados.

interrupcion de un procesador segmentado.pptx

  • 1.
    2.6 INTERRUPCIONES ENUN PROCESADOR SEGMENTADO Veremos el procesamiento de las Interrupciones y las excepciones de microarquitectura en un procesador segmentado. Estos procesamientos afecta negativamente al rendimiento del procesador segmentado porque ocasiona una ruptura del flujo de instrucciones de un programa, análogo a los saltos. Figura 2.38- Efecto de una interrupción.
  • 2.
    El programa sesuspende y ejecuta el gestor de interrupción . Algunos tipos de interrupción, debe continuar el programa suspendido, para lograr esto debe guardarse la información (contador del programa y algunos registros de la arquitectura pueden ser modificados.)
  • 3.
    Ejemplo: fallo depagina. El gestor de interrupción inicia la transferencia DMA desde el disco a la memoria principal, a la vez el sistema operativo ordena al procesador a realizar otros procesos. Cuando la página esta en memoria principal se continua con el proceso interrumpido.
  • 4.
    LOS DISTINTOS TIPOSDE TAXONOMÍA DE TIPOS DE INTERRUPCIONES.  Originadas por una fuente externa al procesador o parten del propio procesador  Indican una condición de error que debe subsanar la rutina de gestión de interrupción o permite algún servicio proporcionado por el S.O.
  • 5.
    A) GENERADAS PORPROPIO PROCESADOR PARA INDICAR UNA CONDICION DE ERROR Conocidas como excepciones, generadas por anomalías en operaciones aritmeticas. Ejemplo el desbordamiento(overflow) y el agotamiento (underflow), proteccion de la memoria, etc
  • 6.
    B) GENERADAS POREL PROPIO PROCESADOR AL ACCEDER A UN SERVICIO DEL SISTEMA OPERATIVO Aquí encontramos a los fallos por pagina, interrupciones que introduce el programador en el codigo. Ejemplo Generar trazas, definir instrucciones no contempladas dentro del set de instrucciones del computador
  • 7.
    C) GENERADAS FUERADEL PROCESADOR PARA INDICAR ERROR Error en el hardware del computador, fallo de alimentación, etc.
  • 8.
    D) GENERADAS FUERADEL PROCESADOR PARA ACCEDER A UN SERVICIO DEL SISTEMA OPERATIVO Corresponden a las peticiones de servicio de los dispositivos de E/S a los eventos de temporizaciones, etc.
  • 9.
    INTERRUPCIÓN PRECISA  Garantizaque el proceso interrumpido continue correctamente despues de una interrupcion no catastrofica  Para que se cumpla un estado preciso, debe cumplir las sgtes condiciones  Todas las instrucciones que se emitieron antes de la instrucciones indicada por el contador de programa (PC) almacenado se ha completado  Las instrucciones posteriores al valor indicado por el PC almacenado no se ejecutan y no han cambiado el estado del procesador  Si la interrupcion fue ocasionada por una instrucción, el contador apunta a esa instrucción, que pueda ejecutarse completamente o no
  • 10.
    La interrupción seproduce cuando la instrucción esta en su 3era etapa(EX), todas las etapas posteriores deben terminar de ejecutarse , las que están en etapas anteriores no deben ejecutarse ni cambiar de estado(se volverá a captar después de que se haya atendido a la excepción)
  • 11.
    En el momentoen que se produce una interrupción se atendería, guardando el contador de programa de la instrucción que va a pasar a la etapa WB. Una vez atendida la interrupción se empezaría a ejecutar a partir de esta instrucción que sería una instrucción anterior en el código a la que ha originado la interrupción.
  • 13.
    HISTORIA 1983 comenzó conun proyecto de la empresa Acorn Computers Ltd. Roger Wilson y Steve Furber cuya meta era, originalmente, el desarrollo de un procesador avanzado, pero con una arquitectura similar a la del MOS 6502. El primer microprocesador fue desarrollado en Inglaterra en 1983 y 1985 (incorpora característica de Berkeley) Favorecen a un diseño sencillo de cause Desde un principio trabajaron con procesadores segmentados como microprocesador 80486 de Intel y el mc 68040 Dieron lugar a los procesadores superescalares y VLIW En la actualidad todavía se siguen desarrollando procesadores segmentados
  • 15.
    Arquitecturas RISC seplanteaban como procesadores segmentados y actualmente a dichos procesadores se le coloca micro arquitecturas superescalares. La familia de procesadores ARM esta dirigido fundamentalmente a sistemas embebidos. Se le incorporo 5 versiones diferentes de instrucciones. ARM V1 Y ARM V2 solo dispone de 26 bits para direcciones de memoria ARM V3: Se introducen direcciones de byte de 32 bits y operandos de 32 bits. ARM V4: Introduce multiplicaciones con operandos de 64 bits. ARM V5: Añade instrucciones para normalizar números para realizar operaciones de multiplicación y acumulación de 16 bits.
  • 16.
    Las instrucciones V4y V5 se tiene una codificación compacta y esto se denomina conjunto de instrucciones Thumb . Cada instrucción del repertorio ocupa 16 bits, de tal forma que es posible reducir la memoria ocupada
  • 17.
    Su codificación sevuelve compacta a la cual se la conoce como THUMB Hasta la versión ARM7, los procesadores se implementaban a través de una micro arquitectura de 3 etapas: captación, decodificación y ejecución y después pasaron a 5 etapas, captación de instrucciones (Fetch), decodificación/captacion de operandos (Decode), ejecución/ calculo de direcciones de memoria en la ALU (execute), acceso a memoria si hace o no hace falta (Buffer, Data) y escritura de los resultados en el banco de registros (write-back) Posteriormente se introdujo un cauce de 6 etapas, para poder hacer mas pequeños los ciclos de reloj
  • 19.
    El principal problemaque presentaba el cauce de tresetapas que uitlizaban los procesadores de ARM era el denominado “CUELLO DE BOTELLA DE Neuman, su almacenamiento de datos y memoria se daban en uno solo ” Si la memoria está unificada no se puede acceder a la vez a una instrucción y a un dato.
  • 20.
    Mejoras en diseñode cauce de 5 etapas:  Las etapas de captación de instrucción y de acceso a memoria aumentan su duración en relación a las otras etapas (ciclo y medio en lugar de un ciclo). Por ejemplo, en la etapa de acceso ala memoria de datos, se calcula la dirección de memoria en su sumador especifico, mas rápido (medio ciclo) que si se hace en la ALU. De esta forma de dispone de la dirección de memoria que hace falta en el siguiente ciclo para realizar el acceso a memoria.  La etapa de ejecución se mejora gracias a un diseño mas eficiente de los circuitos aritméticos que disminuyen la longitud de sus caminos críticos. Así, el multiplicador no hace uso de la ALU para realizar las sumas parciales que requiere, sino que dispone de un sumador propio que actúa coincidiendo con la etapa de memoria que no se utilizan en las multiplicaciones.
  • 21.
     La lógicade decodificación tiene una complejidad tal que debe rediseñarse ocupando dos etapas en lugar de una para permitir aumentar la frecuencia de reloj. Por lo tanto, se tiene al final un cause de seis etapas. Esta nueva etapa que se añade da lugar ala perdida de un ciclo adicional solo cuando se ejecutan instrucciones de salto que no se predicen correctamente. Además, como esta etapa nueva se encuentra antes de la etapa en la que se leen los registros, no da lugar a mas posibles dependencias entre datos y, por lo tanto, no se necesitan caminos de bypass. Si se incluyen recursos que implementen mecanismos de predicción de saltos se pueden conseguir valores de CPI similares a los obtenidos con cauces de 5 etapas, pero a una frecuencia de reloj mas elevada.
  • 22.
    Los accesos amemoria para cargar o almacenar datos que no se completen en un ciclo (por ser lenta la memoria o por transferirse los contenidos de varios registros) no detienen el cauce, a no ser que aparezca una dependencia entre los operandos.  Se utiliza una memoria de datos de 64 bits que permite transferir dos registros por ciclo de reloj, se necesitaran, por tanto, cuatro puertos de lectura y tres de escritura en el banco de registros.  Se introduce una unidad de predicción de salto para mantener la eficiencia del cauce y reducir el valor medio de CPI: se captan 2 instrucciones por ciclo y la unidad de predicción de salto reconoce los saltos antes de que pasen a primera etapa de decodificación. Los saltos hacia atrás se predicen como tomados y los saltos hacia adelante, como no tomados.