Universidad de OviedoESTRUCTURA DE LOS COMPUTADORES              Escuela Universitaria de Ingeniería Técnica en Informátic...
Universidad de OviedoESTRUCTURA DE LOS COMPUTADORES              Escuela Universitaria de Ingeniería Técnica en Informátic...
Universidad de OviedoESTRUCTURA DE LOS COMPUTADORES              Escuela Universitaria de Ingeniería Técnica en Informátic...
Universidad de OviedoESTRUCTURA DE LOS COMPUTADORES              Escuela Universitaria de Ingeniería Técnica en Informátic...
Universidad de OviedoESTRUCTURA DE LOS COMPUTADORES              Escuela Universitaria de Ingeniería Técnica en Informátic...
Universidad de OviedoESTRUCTURA DE LOS COMPUTADORES              Escuela Universitaria de Ingeniería Técnica en Informátic...
Universidad de OviedoESTRUCTURA DE LOS COMPUTADORES              Escuela Universitaria de Ingeniería Técnica en Informátic...
Universidad de OviedoESTRUCTURA DE LOS COMPUTADORES              Escuela Universitaria de Ingeniería Técnica en Informátic...
Universidad de OviedoESTRUCTURA DE LOS COMPUTADORES              Escuela Universitaria de Ingeniería Técnica en Informátic...
Universidad de OviedoESTRUCTURA DE LOS COMPUTADORES              Escuela Universitaria de Ingeniería Técnica en Informátic...
Universidad de OviedoESTRUCTURA DE LOS COMPUTADORES              Escuela Universitaria de Ingeniería Técnica en Informátic...
Universidad de OviedoESTRUCTURA DE LOS COMPUTADORES              Escuela Universitaria de Ingeniería Técnica en Informátic...
Universidad de OviedoESTRUCTURA DE LOS COMPUTADORES              Escuela Universitaria de Ingeniería Técnica en Informátic...
Universidad de OviedoESTRUCTURA DE LOS COMPUTADORES              Escuela Universitaria de Ingeniería Técnica en Informátic...
Universidad de OviedoESTRUCTURA DE LOS COMPUTADORES              Escuela Universitaria de Ingeniería Técnica en Informátic...
Universidad de OviedoESTRUCTURA DE LOS COMPUTADORES              Escuela Universitaria de Ingeniería Técnica en Informátic...
Universidad de OviedoESTRUCTURA DE LOS COMPUTADORES              Escuela Universitaria de Ingeniería Técnica en Informátic...
Universidad de OviedoESTRUCTURA DE LOS COMPUTADORES              Escuela Universitaria de Ingeniería Técnica en Informátic...
Universidad de OviedoESTRUCTURA DE LOS COMPUTADORES              Escuela Universitaria de Ingeniería Técnica en Informátic...
Universidad de OviedoESTRUCTURA DE LOS COMPUTADORES              Escuela Universitaria de Ingeniería Técnica en Informátic...
Universidad de OviedoESTRUCTURA DE LOS COMPUTADORES              Escuela Universitaria de Ingeniería Técnica en Informátic...
Universidad de OviedoESTRUCTURA DE LOS COMPUTADORES              Escuela Universitaria de Ingeniería Técnica en Informátic...
Universidad de OviedoESTRUCTURA DE LOS COMPUTADORES              Escuela Universitaria de Ingeniería Técnica en Informátic...
Universidad de OviedoESTRUCTURA DE LOS COMPUTADORES              Escuela Universitaria de Ingeniería Técnica en Informátic...
Universidad de OviedoESTRUCTURA DE LOS COMPUTADORES              Escuela Universitaria de Ingeniería Técnica en Informátic...
Universidad de OviedoESTRUCTURA DE LOS COMPUTADORES              Escuela Universitaria de Ingeniería Técnica en Informátic...
Universidad de OviedoESTRUCTURA DE LOS COMPUTADORES              Escuela Universitaria de Ingeniería Técnica en Informátic...
Universidad de OviedoESTRUCTURA DE LOS COMPUTADORES              Escuela Universitaria de Ingeniería Técnica en Informátic...
Universidad de OviedoESTRUCTURA DE LOS COMPUTADORES              Escuela Universitaria de Ingeniería Técnica en Informátic...
Universidad de OviedoESTRUCTURA DE LOS COMPUTADORES              Escuela Universitaria de Ingeniería Técnica en Informátic...
Universidad de OviedoESTRUCTURA DE LOS COMPUTADORES              Escuela Universitaria de Ingeniería Técnica en Informátic...
Universidad de OviedoESTRUCTURA DE LOS COMPUTADORES              Escuela Universitaria de Ingeniería Técnica en Informátic...
Universidad de OviedoESTRUCTURA DE LOS COMPUTADORES              Escuela Universitaria de Ingeniería Técnica en Informátic...
Universidad de OviedoESTRUCTURA DE LOS COMPUTADORES              Escuela Universitaria de Ingeniería Técnica en Informátic...
Universidad de OviedoESTRUCTURA DE LOS COMPUTADORES              Escuela Universitaria de Ingeniería Técnica en Informátic...
Universidad de OviedoESTRUCTURA DE LOS COMPUTADORES              Escuela Universitaria de Ingeniería Técnica en Informátic...
Universidad de OviedoESTRUCTURA DE LOS COMPUTADORES              Escuela Universitaria de Ingeniería Técnica en Informátic...
Universidad de OviedoESTRUCTURA DE LOS COMPUTADORES              Escuela Universitaria de Ingeniería Técnica en Informátic...
Universidad de OviedoESTRUCTURA DE LOS COMPUTADORES              Escuela Universitaria de Ingeniería Técnica en Informátic...
Universidad de OviedoESTRUCTURA DE LOS COMPUTADORES              Escuela Universitaria de Ingeniería Técnica en Informátic...
Universidad de OviedoESTRUCTURA DE LOS COMPUTADORES              Escuela Universitaria de Ingeniería Técnica en Informátic...
Universidad de OviedoESTRUCTURA DE LOS COMPUTADORES              Escuela Universitaria de Ingeniería Técnica en Informátic...
Universidad de OviedoESTRUCTURA DE LOS COMPUTADORES              Escuela Universitaria de Ingeniería Técnica en Informátic...
Universidad de OviedoESTRUCTURA DE LOS COMPUTADORES              Escuela Universitaria de Ingeniería Técnica en Informátic...
Universidad de OviedoESTRUCTURA DE LOS COMPUTADORES              Escuela Universitaria de Ingeniería Técnica en Informátic...
Universidad de OviedoESTRUCTURA DE LOS COMPUTADORES              Escuela Universitaria de Ingeniería Técnica en Informátic...
Universidad de OviedoESTRUCTURA DE LOS COMPUTADORES              Escuela Universitaria de Ingeniería Técnica en Informátic...
Universidad de OviedoESTRUCTURA DE LOS COMPUTADORES              Escuela Universitaria de Ingeniería Técnica en Informátic...
Universidad de OviedoESTRUCTURA DE LOS COMPUTADORES              Escuela Universitaria de Ingeniería Técnica en Informátic...
Universidad de OviedoESTRUCTURA DE LOS COMPUTADORES              Escuela Universitaria de Ingeniería Técnica en Informátic...
Universidad de OviedoESTRUCTURA DE LOS COMPUTADORES              Escuela Universitaria de Ingeniería Técnica en Informátic...
Universidad de OviedoESTRUCTURA DE LOS COMPUTADORES              Escuela Universitaria de Ingeniería Técnica en Informátic...
Universidad de OviedoESTRUCTURA DE LOS COMPUTADORES              Escuela Universitaria de Ingeniería Técnica en Informátic...
Universidad de OviedoESTRUCTURA DE LOS COMPUTADORES              Escuela Universitaria de Ingeniería Técnica en Informátic...
Universidad de OviedoESTRUCTURA DE LOS COMPUTADORES              Escuela Universitaria de Ingeniería Técnica en Informátic...
Universidad de OviedoESTRUCTURA DE LOS COMPUTADORES              Escuela Universitaria de Ingeniería Técnica en Informátic...
Universidad de OviedoESTRUCTURA DE LOS COMPUTADORES              Escuela Universitaria de Ingeniería Técnica en Informátic...
Universidad de OviedoESTRUCTURA DE LOS COMPUTADORES              Escuela Universitaria de Ingeniería Técnica en Informátic...
Universidad de OviedoESTRUCTURA DE LOS COMPUTADORES              Escuela Universitaria de Ingeniería Técnica en Informátic...
Universidad de OviedoESTRUCTURA DE LOS COMPUTADORES              Escuela Universitaria de Ingeniería Técnica en Informátic...
Universidad de OviedoESTRUCTURA DE LOS COMPUTADORES              Escuela Universitaria de Ingeniería Técnica en Informátic...
Universidad de OviedoESTRUCTURA DE LOS COMPUTADORES              Escuela Universitaria de Ingeniería Técnica en Informátic...
Universidad de OviedoESTRUCTURA DE LOS COMPUTADORES              Escuela Universitaria de Ingeniería Técnica en Informátic...
Universidad de OviedoESTRUCTURA DE LOS COMPUTADORES              Escuela Universitaria de Ingeniería Técnica en Informátic...
Universidad de OviedoESTRUCTURA DE LOS COMPUTADORES              Escuela Universitaria de Ingeniería Técnica en Informátic...
Universidad de OviedoESTRUCTURA DE LOS COMPUTADORES              Escuela Universitaria de Ingeniería Técnica en Informátic...
Universidad de OviedoESTRUCTURA DE LOS COMPUTADORES              Escuela Universitaria de Ingeniería Técnica en Informátic...
Universidad de OviedoESTRUCTURA DE LOS COMPUTADORES              Escuela Universitaria de Ingeniería Técnica en Informátic...
Universidad de OviedoESTRUCTURA DE LOS COMPUTADORES              Escuela Universitaria de Ingeniería Técnica en Informátic...
109154402 estructura-computadores
109154402 estructura-computadores
109154402 estructura-computadores
109154402 estructura-computadores
109154402 estructura-computadores
109154402 estructura-computadores
109154402 estructura-computadores
109154402 estructura-computadores
109154402 estructura-computadores
109154402 estructura-computadores
109154402 estructura-computadores
109154402 estructura-computadores
109154402 estructura-computadores
109154402 estructura-computadores
109154402 estructura-computadores
109154402 estructura-computadores
109154402 estructura-computadores
109154402 estructura-computadores
109154402 estructura-computadores
109154402 estructura-computadores
109154402 estructura-computadores
109154402 estructura-computadores
109154402 estructura-computadores
109154402 estructura-computadores
109154402 estructura-computadores
109154402 estructura-computadores
109154402 estructura-computadores
109154402 estructura-computadores
109154402 estructura-computadores
109154402 estructura-computadores
109154402 estructura-computadores
109154402 estructura-computadores
109154402 estructura-computadores
109154402 estructura-computadores
109154402 estructura-computadores
109154402 estructura-computadores
109154402 estructura-computadores
109154402 estructura-computadores
109154402 estructura-computadores
109154402 estructura-computadores
109154402 estructura-computadores
109154402 estructura-computadores
109154402 estructura-computadores
109154402 estructura-computadores
109154402 estructura-computadores
109154402 estructura-computadores
109154402 estructura-computadores
109154402 estructura-computadores
109154402 estructura-computadores
109154402 estructura-computadores
109154402 estructura-computadores
109154402 estructura-computadores
109154402 estructura-computadores
109154402 estructura-computadores
109154402 estructura-computadores
109154402 estructura-computadores
109154402 estructura-computadores
109154402 estructura-computadores
109154402 estructura-computadores
109154402 estructura-computadores
109154402 estructura-computadores
109154402 estructura-computadores
109154402 estructura-computadores
109154402 estructura-computadores
109154402 estructura-computadores
109154402 estructura-computadores
109154402 estructura-computadores
109154402 estructura-computadores
109154402 estructura-computadores
109154402 estructura-computadores
109154402 estructura-computadores
109154402 estructura-computadores
109154402 estructura-computadores
Upcoming SlideShare
Loading in …5
×

109154402 estructura-computadores

344 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
344
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
12
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

109154402 estructura-computadores

  1. 1. Universidad de OviedoESTRUCTURA DE LOS COMPUTADORES Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) Capítulo 1. INTRODUCCIÓN. Capítulo 1.1. OBJETIVOS DE LA ASIGNATURA. Las diferencias fundamentales entre la CPU teórica vista en la asignatura “Fundamentosde Computadores” (1º curso de I.T.Informática de Gestión y Sistemas) y el computador realson, a grandes rasgos, dos: • Rendimiento • Soporte a sistemas operativos multitarea Definición: Rendimiento: Hablamos del rendimiento de la CPU refiréndonos a la velocidad de la misma, nunca a“qué” puede hacer esta CPU. Definición: Soporte a sistemas operativos multitarea: Nos referimos a aquella implementación hardware necesaria para permitir la ejecuciónde sistemas operativos multitarea sobre la CPU.Alberto Suárez López Página 1
  2. 2. Universidad de OviedoESTRUCTURA DE LOS COMPUTADORES Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) Capítulo 1.2. INTRODUCCIÓN A LOS SISTEMAS OPERATIVOS MULTITAREA. Un usuario no trabaja con una máquina desnuda; sino con un sistema operativocorriendo sobre dicha máquina. Definición: Máquina virtual: El hardware más el sistema operativo definen una máquina virtual, sobre la quetrabajamos. Definición: Application Programming Interface: Ésta máquina virtual proporciona una serie de servicios para aplicaciones (API). Éstas aplicaciones nunca acceden directamente al hardware, sino a la API que define lamáquina virtual. Definición: Sistema operativo multitarea: Prácticamente todos los sistemas operativos actuales son multitarea, es decir, permitenejecutar varias aplicaciones de manera concurrente. Por otra parte, el sistema operativo no deja de ser un programa encargado de la gestiónde recursos (tanto hardware como software) para proporcionar los servicios a las aplicaciones,ocultando el hardware. De este modo, cuando una aplicación necesita acceder al hardwarellamará a un servicio ofrecido por la API del sistema operativo. Hemos dicho que la ejecución de las tareas se ejecuta concurrentemente. Sin embargo,la percepción de dicha ejecución es que todas las tareas se ejecutan simultáneamente. Entre la ejecucion de dos tareas el sistema operativo debe tomar el control de lamáquina, determinando que tarea pasará a ejecutarse a continuación, es decir, el sistemaoperativo sobrecarga la CPU. En el momento en que una tarea deja de ejecutarse y entra el sistema operativo en laCPU se produce una transferencia de control.Alberto Suárez López Página 2
  3. 3. Universidad de OviedoESTRUCTURA DE LOS COMPUTADORES Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) Las transferencias de control entre una tarea y el sistema operativo se producen: • durante la llamada a un servicio del sistema operativo • cuando ocurre una interrrupción • cuando ocurre una excepción Capítulo 1.2.1. LLAMADA A LOS SERVICIOS DEL SISTEMA OPERATIVO. El sistema operativo define una API a la cual llaman las aplicaciones para obtenerservicios por parte del operativo. Por ejemplo, cuando una tarea abre un archivo se invoca unservicio de la API del sistema operativo. Hay dos tipos de instrucciones relacionadas con las llamadas a servicios del sistemaoperativo (funciones de la API): • syscall • sysret La instrucción syscall es la instrucción de llamada a un servicio y sysret, la instrucciónde retorno. La instrucción sysret es la última instrucción del servicio y tras su ejecución se retornaráa la instrucción siguiente a aquella que realizó la llamada al servicio, es decir, se retornará a lainstrucción siguiente a syscall. La transferencia de control la realiza la tarea que invocó la llamada al servicio.Alberto Suárez López Página 3
  4. 4. Universidad de OviedoESTRUCTURA DE LOS COMPUTADORES Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) Capítulo 1.2.2. INTERRUPCIONES. Las interrupciones permiten “avisar” a la CPU cuando un evento está disponible. Porejemplo, cuando pulsamos una tecla en el teclado. La CPU no sabe a priori cuando va a recibir una petición de interrupción. Cuando se produce una interrrupción se termina de ejecutar la instrucción en curso y acontinuación se transfiere el control a un manejador o rutina de tratamiento de interrupción, queforma parte del sistema operativo. Cuando se termina de ejecutar la rutina (instrucción sysret) se transfiere el control a lainstrucción siguiente a la que estaba en curso en el momento de la interrupción. En este caso, la transferencia de control la origina la interfaz de un periférico.Alberto Suárez López Página 4
  5. 5. Universidad de OviedoESTRUCTURA DE LOS COMPUTADORES Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) Capítulo 1.2.3. EXCEPCIONES. El objetivo de las excepciones es transferir el control al sistema operativo cuando ocurreuna situación anómala durante la ejecución de una instrucción. Por ejemplo, una división porcero. Cuando ocurre una excepción se transfiere el control a una rutina de tratamiento deexcepción, que forma parte del sistema operativo. Al ejecutar la última instrucción de la rutina puede ocurrir que: • se continúe ejecutando la instrucción que generó la excepción. • Se ejecute la siguiente instrucción a la que generó la excepción. • Se produce un retorno imposible. • En este caso, la transferencia del control la originará la CPU al detectar una situaciónanómala.Alberto Suárez López Página 5
  6. 6. Universidad de OviedoESTRUCTURA DE LOS COMPUTADORES Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) En ultimo lugar cabe descatar los siguientes puntos relacionados con las llamadas aservicios, las interrupciones y las excepciones: • Cada vez que se produce una llamada a un servicio, una interrupción o una excepción, tras la ejecución de la rutina correspondiente se puede producir una planificación de tareas por parte del sistema operativo. Dicho planificador determinará cuál será la siguiente tarea a ejecutarse. • Tanto las llamadas a servicios, interrupciones y excepciones se pueden anidar. • Existe distinta notación para referirse los conceptos descritos anteriormente. Por convenio hablaremos de llamadas a servicios, interrupciones y excepciones. • La CPU debe tener un temporizador con un periodo prefijado que genere una interrupción periódica para permitir que el sistema operativo tome el control cada cierto tiempo.Alberto Suárez López Página 6
  7. 7. Universidad de OviedoESTRUCTURA DE LOS COMPUTADORES Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) Capítulo 2. LA CPU. Vamos a estudiar las técnicas empleadas en las CPU´s reales para mejorar elrendimiento y soportar sistemas operativos multitarea. Capítulo 2.1. SOPORTE A LOS SISTEMAS OPERATIVOS MULTITAREA. Para que un computador soporte sistemas operativos multitarea necesita hardwareespecífico. Prácticamente todas las CPU´s actuales soportan sistemas operativos multitarea.Como excepciones podemos mencionar: • CPU´s antiguas. Por ejemplo: 8088 • CPU´s sencillas. Por ejemplo: en electrodomésticos • CPU´s educativas. Por ejemplo: el simulador Von Neumann Pero, ¿qué tiene que tener una CPU para soportar sistemas operativos multitarea? Pararesponder a esta pregunta, partiremos de la CPU teórica e implementaremos un pequeñosistema operativo multitarea sobre esta CPU teórica, buscando a continuación los problemasencontrados. Dichas carencias serán precisamente aquellas características que deberáincorporar una CPU para que pueda dar soporte a sistemas operativos multitarea. Partimos del espacio de direcciones de la CPU teórica. Cada tarea tiene tres secciones:datos, código y pila. También tenemos un temporizador y un vector de interrupciones. Inicialmente la tarea 0 se está ejecutando. El registro contador de programa (PC) apuntaa una instrucción de dicha tarea así como el registro puntero de pila (SP) apunta a la cabeza desu pila. Los registros de propósito general tienen los valores correspondientes a dicha tarea(estado de la tarea). !Alberto Suárez López Página 7
  8. 8. Universidad de OviedoESTRUCTURA DE LOS COMPUTADORES Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) A continuación, se produce una interrupción y se produce una transferencia de controlentre la tarea 0 y el sistema operativo. Cuando se produce una interrupción se guardainmediatamente el PC y el registro de estado (SR) en la pila de la tarea activa y se produce unsalto incondiconal a la primera instrucción de la rutina de tratamiento de la interrupción. Estarutina pertenece, obviamente, al sistema operativo. " # $ %&Alberto Suárez López Página 8
  9. 9. Universidad de OviedoESTRUCTURA DE LOS COMPUTADORES Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) Posteriormente, el sistema operativo guarda el valor de los registros en su área de datos(registros de propósito general y que contienen el estado en que quedó la tarea 0 antes detransferir el control) y conmuta la pila para que la pila utilizada sea la del sistema operativo y nola de la tarea. Esta conmutación se traduce en un cambio en el valor del registro SP. ( !Alberto Suárez López Página 9
  10. 10. Universidad de OviedoESTRUCTURA DE LOS COMPUTADORES Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) Finalizada la rutina de tratamiento de la interrupción se realiza una planificación detareas, para lo cual se produce una llamada a un procedimiento. Esta llamada conllevaalmacenar el estado de la CPU dentro de la pila activa (la pila del sistema operativo) y situar elPC en la primera instrucción del procedimiento. ! ) $Alberto Suárez López Página 10
  11. 11. Universidad de OviedoESTRUCTURA DE LOS COMPUTADORES Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) Finalizado el procedimiento de planificación se determina que la próxima tarea aejecutarse sea la tarea 1. De este modo, el sistema operativo debe ceder el control a la tareatras restaurar el estado de la misma (registros de propósito general) en el momento en queésta abandonó la CPU por última vez, de este modo se produce indirectamente la conmutaciónde la pila, dejando de utilizarse la del sistema operativo para pasar a emplearse la de la tarea1. * ) $ & A continuación se ejecuta la instrucción IRET de tal modo que se devuelve el control a latarea 1. Así, el PC, SR y los registros de propósito general tienen los valores que tenía la tarea1 justo donde había sido interrumpida por última vez.Alberto Suárez López Página 11
  12. 12. Universidad de OviedoESTRUCTURA DE LOS COMPUTADORES Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) + ,& En último lugar, el temporizador genera una nueva interrupción. Se salva el valor de SRy PC en la pila de la tarea y se transfiere el control al sistema operativo, repitiéndose el cicloanterior. Visto el funcionamiento de este sistema operativo teórico vamos a determinar lasdeficiencias del mismo derivadas a su vez de deficiencias de la CPU teórica. Deficiencia 1: Cualquier tarea puede ejecutar la instrucicón CLI que desactiva las interrupciones de talmodo que dicha tarea monopolice el uso de la CPU, estando está indefinidamenteefecutándose y evitando que se transfiera el control al sistema operativo a menos que seinvoque una llamada a un servicio del sistema. Deficiencia 2: Se podría modificar la sección de datos del sistema operativo. Por ejemplo: MOVL R0, 50h MOVH R0, 80h XOR R1, R1, R1 MOV [R0], R1 Deficiencia 3: Una tarea puede acceder al área de memoria de otra tarea. Las tareas deberían serindependientes entre si. Deficiencia 4: Cada vez que se produce una interrupción durante la ejecución de una tarea se guardaen la pila de la tarea el valor de SR y PC, de tal modo que una tarea malintencionada podríaproducir el cuelgue del sistema o tomar el control total de la máquina modificando dichosvalores.Alberto Suárez López Página 12
  13. 13. Universidad de OviedoESTRUCTURA DE LOS COMPUTADORES Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) Deficiencia 5: La CPU teórica no soporta excepciones. Estas excepciones son necesarias parainformar de situaciones anómalas: se intenta ejecutar una instrucción inválida, erroresaritméticos, se intenta acceder a una dirección inválida, etc. Vistas las deficiencias anteriores, vamos a proporcionar soluciones a cada una de estasdeficiencias. Cada una de estas soluciones nos va a indicar la funcionalidad que debemosincluir e la CPU para que soporte sistemas operativos multitarea. Solución a la deficiencia 1: Dentro del juego de instrucciones de la CPU hay instrucciones potencialmente“peligrosas” que no deberían ser ejecutadas por tareas. Estas instrucciones sólo podrán serejecutadas por el sistema operativo. Para implementar esta solución se añade un bit al registro de estado que indica el nivelde privilegios. Por ejemplo, el sistema operativo tendrá el valor 0 (máxima prioridad) y unatarea, el nivel 1 (mínima prioridad). Así, si una tarea se está ejecutando e intenta ejecutar unainstrucción privilegiada se producirá una excepción. La conmutación de niveles de privilegios será realizada por la CPU. Solucion a la deficiencia 2: Para evitar que una tarea sólo pueda acceder a su espacio de direcciones y no adirecciones del sistema operativo definimos una tabla con los rangos de direcciones asignadosal sistema operativo. De tal modo que, al intentar acceder a una dirección, se compruebapreviamente que dicha dirección no pertenezca al rango anterior. Solución a la deficiencia 3: Para evitar que una tarea sólo pueda acceder a su espacio de direcciones y no adirecciones de otras taras definimos una tabla con los rangos de direcciones asignados a cadatarea de tal modo que una tarea sólo podrá acceder a direcciones de su rango, comprobándoseal intentar acceder a una dirección si dicha dirección pertenece a su rango. Solución a la deficiencia 4: Para solucionar el problema es necesaro que el SR y PC de la tarea se almacenen enuna estructura de datos del sistema operativo. Así, algunas CPU´s incorporan dos registros para almacenar los valores temporales delestado y el contador de programa. De este modo, cuando se produce una interupción se salvanen estos registros los valores de SR y PC. El sistema operativo conmuta el valor de la pila paaque apunte a la pila del mismo y a continuación salvar el estado de la tarea en la pila delsistema operativo. Esta solución la implementan arquitecturas como PowerPC y MIPS64. Por otra parte, IA – 32, cuando se produce una interrupción se conmuta inmediatamentela pila de la tarea a la pila del sistema operativo. Este proceso es automático. A continuación sesalva en la pila del operativo el SP, SR y PC de la tarea. Solución a la deficiencia 5: El funcionamiento de las interrupciones y excepciones es muy similar. En ambos casosse ejecuta una rutina. Así, dentro de la tabla de vectores de interrupción hay direccionesreservadas a las excepciones y con posiciones prefijadas.Alberto Suárez López Página 13
  14. 14. Universidad de OviedoESTRUCTURA DE LOS COMPUTADORES Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) Ejercicio: La CPU teórica no soporta sistemas operativos multitarea, entre otras cosas, debido aque cada vez que se produce una interrupción durante la ejecución de una tarea se guardaautomáticamente en la pila de la tarea el valor de los registros de estado y contador deprograma. a) ¿Por qué es esto un problema? Porque una tarea malintencionada o programada con errores podría modificar el contenido del registro puntero de pila y esperar a que se produzca una interrupción en cuyo caso podría colgar el sistema o hacerse con el control del mismo.Alberto Suárez López Página 14
  15. 15. Universidad de OviedoESTRUCTURA DE LOS COMPUTADORES Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) Capítulo 2.2. MEJORAS DE RENDIMIENTO. Hasta ahora hemos hablado únicamente de funcionalidad (lo que puede hacer la CPU).Ahora hablaremos de rendimiento (velocidad), es decir, cómo podemos mejorar la velocidad deejecución de instrucciones. En la CPU, la ejecución de cada instrucción requería undeterminado número de ciclos de reloj. Cada uno de estos ciclos tiene una longitud constante yrecibe el nombre de periodo . La frecuencia, υ será la inversa del periodo υ = . La primera idea que podemos tener para mejorar el rendimiento de la CPU es aumentarla frecuencia del reloj. Esto se consigue mejorando la tecnología de fabricación ( , , etc), es decir, disminuyendo el tamaño de los transistores se consigue una menorseparación entre éstos y así se incrementa la velocidad. Este incremento de velocidadrepercute en un incremento de la frecuencia, por lo que aumenta el rendimiento de la CPU. Otra opción o camino para incrementar el rendimiento de la CPU es mejorar la estructurainterna de ésta, coordinando de la mejor manera posible los componentes internos de la CPU.Vamos a estudiar el rendimiento de la CPU desde esta opción basándonos en la CPU teórica.Veremos técnicas de: • Segmentación en la ejecución de las instrucciones. • Replicación de unidades funcionales. Capítulo 2.2.1. LA SEGMENTACIÓN EN LA EJECUCIÓN DE INSTRUCCIONES. La segmentación en la ejecución de instrucciones consiste en dividir la ejecución decualquier instrucción en etapas que funcionan en paralelo. Vamos a suponer que hemos rediseñado la estructura interna de la CPU teórica de talmodo que la ejecución de la instrucción se didivide en dos pártes: • Búsqueda de la instrucción. • Ejecución de la instrucción. Suponemos que las etapas de búsqueda y ejecución requieren ambas el mismo tiempo( ) y que este tiempo coincide con el periodo del reloj. Comenzaremos ejecutando secuencialmente una serie de instrucciones aritmético –lógicas. - $Alberto Suárez López Página 15
  16. 16. Universidad de OviedoESTRUCTURA DE LOS COMPUTADORES Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) Buscamos la instrucción ADD R4, R3, R2 y transcurridos los se ejecutará lainstricción. Este proceso requerirá en total de (búsqueda y ejecución) para la ejecucióncompleta de una instrucción. Así, en seejecutarán = = . Esta implementación desperdicia recursos ya que en cada etapa uno de los doscomponentes (bien sea la etapa de búsqueda o la etapa de ejecución) no está trabajando.Necesitamos conseguir que las etapas funcionen en paralelo y no secuencialmente. Este es elobjetivo de la segmentación. Un símil a este problema puede ser una cadena de montaje decoches. Ahora vamos a ejecutar en paralelo el conjunto de instrucciones anteriores. - $ Bucamos la instrucción ADD R4, R3, R2 y transcurridos los se ejecutará lainstrucción y además la etapa de búsqueda buscará la siguiente instrucción a ejecutar (SUBR2, R3, R4). Así se consigue ejecutar una instrucción completa en . De este modo,en segundo se ejecutarán = = . Como consecuencia de la ejecución de instrucciones en paralelo se consigue ejecutaruna instrucción por ciclo de reloj. Por otra parte, si en vez de dividir la ejecución de instrucciones en 2 etapas se divide,por ejemplo, en 10 etapas se estaría incrementando, en teoría, el rendimiento de la CPU en unfactor 10. Las CPU´s de propósito general, en relación con el supuesto anterior, dividen laejecución de instruccioes en 8 – 30 etapas.Alberto Suárez López Página 16
  17. 17. Universidad de OviedoESTRUCTURA DE LOS COMPUTADORES Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) En cuanto a los problemas que plantea la segmentación de instrucciones podemosencontrarnos con casos en los que se “rompa” la ejecución paralela de instrucciones cuando seintente acceder simultáneamente a un mismo recurso (por ejemplo, a la memoria para leer lasiguiente instrucción a ejecutar [código] y para leer almacenar el contenido de un registro[datos]). El conjunto de instrucciones siguiente ilustra este problema: ADD R4, R3, R2 SUB R2, R3, R4 MOV R3, [R2] AND R3, R4, R5 " . / En este ejemplo no se puede ejecutar simultáneamente la instrucción MOV R3, [R2] ybuscar la instrucción siguiente, AND R3, R4, R5. Para solucionar este problema, las CPU´s depropósito general no acceden directamente a la memoria sino que trabajan con una memoriacaché de nivel 1 (L1). Esta memoria caché esta dividida en dos partes, una para código y otrapara datos, de tal modo que sea posible el acceso simultáneo a cada una de estas partes. En cuanto a la implementación llevada a cabo por los fabricantes, Intel, en el Pentium IVPrescott utiliza una segmentación con 31 etapas. Por otra parte, AMD, en el Athlon 64, utiliza14 etapas pero en cada etapa se “hacen más cosas”. Con esto también se reduce el calordisipado por la CPU. Capítulo 2.2.2. LA REPLICACIÓN DE UNIDADES FUNCIONALES. La replicación de unidades funcionales consiste en poder ejecutar simultáneamente másde una instrucción al aumentar el número de unidades funcionales de la CPU (más de unaALU, más de un bus, más de una unidad de control, etc). Las CPU´s que son capaces de trabajar en cada etapa de segmentación sobre variasinstrucciones se denominan multiescalares. El extremo de la replicación es tener dos CPU´s completas sobre un mismo circuitoimpreso (Dual core CPU). Por otra parte, Intel incorpora la característica del multihilo(hyperthreading).Alberto Suárez López Página 17
  18. 18. Universidad de OviedoESTRUCTURA DE LOS COMPUTADORES Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) Ejercicio: Se ha construido un CPU que requere 4 ciclos (periodos de reloj) para ejecutar cualquierinstrucción. Tras probar diferentes periodos de reloj se comprueba que el periodo mínimo conel que es capaz de trabajar correctamente es . a) ¿Cuál es la máxima frecuencia de reloj que puede emplearse en la CPU anterior? υ= = = − = = = = b) ¿Cuántas instrucciones puede ejecutar por cada ciclo de reloj? Ejemplo: 1, 2 instrucciones/ciclo. = c) ¿Cuántas instrucciones por segundo puede ejecutar? = = = = Ejercicio: En la práctica, empleando la técnica de segmentación se consigue incrementar lanotablemente la frecuencia de reloj de la CPU, el número de instrucciones que puede ejecutarpor ciclo de reloj y por tanto, el número de instrucciones por segundo. Para mejorar el rendimiento de la CPU anterior se ha dividido la ejecución de todas lasinstrucciones en 20 etapas, cada una de las cuales requiere un ciclo de reloj. Se han hechopruebas haciendo que las 20 etapas trabajen en modo no segmentado (em este modo no hayparalelismo en en la ejecución, pues en cada ciclo sólo hay una etapa activa) y se compruebaque la CPU es capaz de ejecutar a lo sumo 100 millones de instrucciones por segundo. A continuación se ponen a trabajar las 20 etapas de forma paralela, empleando latécnica de segmentación. a) ¿Cuál es la máxima frecuencia de reloj que puede emplearse una vez segmentada la CPU? ! = = = ! = b) ¿Cuántas instrucciones puede ejecutar la CPU segmentada cada ciclo de reloj? Ejemplo: 1, 2 instrucciones/ciclo. Por definición, . c) ¿Cuántas instrucciones por segundo puede ejecutar la CPU segmentada? = "Alberto Suárez López Página 18
  19. 19. Universidad de OviedoESTRUCTURA DE LOS COMPUTADORES Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) Capítulo 2.3. LA ARQUITECTURA IA – 32. Vamos a explicar el funcionamiento de una CPU real basándonos en la arquitectura IA –32. Esta arquitectura está soportada actualmente por fabricantes como Intel, AMD, VIA,etcétera. Hablaremos de arquitectura en relación a la programación de la CPU (registros, juegosde instrucciones, …). Cada uno de los fabricantes mencionados anteriormente proporcionan lamisma arquitectura, sin embargo, la implementación (organización interna de los componentes)difiere. Esta implementación suele llamarse microarquitectura. Capítulo 2.3.1. INTRODUCCIÓN HISTÓRICA A LA ARQUITECTURA IA – 32. (En apuntes) Capítulo 2.3.2. SOPORTE DE LA ARQUITECTURA IA – 32 A LOS SISTEMAS OPERATIVOSMULTITAREA. Vamos a estudiar los aspectos más relevantes de la arquitectura IA – 32 y cómo éstosposibilitan el soporte a sistemas operativos multitarea. Capítulo 2.3.2.1. MODOS DE OPERACIÓN. Las CPU´s con arquitectura IA – 32 pueden funcionar en tres modos de operación: • Real • Protegido • Gestión Cada uno de estos modos define un comportamiento distinto de la CPU. El modo protegido es el que permite el soporte a sistems operativos multitarea.Generalmente, la CPU trabajará en este modo. El modo real se comporta como un 8086 rápido. La razón de ser de este modo deoperación es por motivos de compatibilidad. Cada vez que una CPU con arquitectura IA – 32arranca lo hace en modo y real y al ejecutar una determinada instrucción, generalmente porparte del sistema operativo, se pasa a modo protegido. Dentro del modo protegido existe el modo real virtual que permite emular a variasarquitecturas 8086. Por ejemplo, dentro de los sistemas operativos Windows actuales, emularvarias terminales de MS – DOS. El modo de gestión es un modo de la CPU en el que ésta entra cuando se producendeterminadas interrupciones especiales. En cuyo caso se salva el contexto de la CPU, seejecuta una rutina de tratamiento de la interrupción y al finalizar, se restaura el contextocontinuando como si nada hubiera sucedido. La CPU entrará en este modo, por ejemplo, alrecibir interrupciones relacionadas con la gestión de energía. A partir de este punto, vamos a centrarnos siempre en el modo protegido.Alberto Suárez López Página 19
  20. 20. Universidad de OviedoESTRUCTURA DE LOS COMPUTADORES Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) Capítulo 2.3.2.2. REGISTROS DE EJECUCIÓN BÁSICOS. Distinguimos los siguientes tipos de registros: • Registros de propósito general • Registros segmento • Registro de estado y control • Registro puntero de instrucción Los registros de propósito general tienen todos 32 bits y se utilizan para almacenar datoso direcciones de memoria. Se denominan: EAX, EBX, ECX, EDX, ESI, EDI, EBP. Los registros segmento tienen 16 bits y sirven para almacenar selectores de segmento.Se denominan: CS, DS, ES, FS, GS, SS. Estos registros constan de tres campos: • RPL (requested priviledge level). Es un campo de 2 bits e indica el nivel de privilegio del selector en el rango [0, 3]. • TI (table indicator). Es un campo de 1 bit e indica la tabla de descriptores de segmento a utilizar. Puede ser: o GDT (global descriptor table). Tabla común para todas las tareas. o LDT (local descriptor table). Tabla específica para cada tarea. • Índice. Es un campo de 13 bits que es un índice dentro de la tabla de descriptores de segmento utilizada. Podemos considerar que el selector tiene en realidad 14 bits que permiten seleccionarun descriptor de segmento. Los registros de estado y control (EFLAGS) contienen los siguientes tipos de flags: • Operaciones aritmético – lógicas (acarreo, signo, zero, overflow, …) • IF (interruption flag) • TF (trace flag). Cada vez que se ejecuta una instrucción se invoca a una rutina de tratamiento de interrupción. Este flag es utilizado por los depuradores. • IOPL (input – output priviledge level). Indica el nivel de privilegio necesario para llevar a cabo operaciones de Entrada/Salida. • … El registro puntero de instrucción (EIP) tiene 32 bits y es equivalente al registro PC de laCPU teórica. Almacena la dirección de la siguiente instrucción a ejecutar. También existen otros registros como CR0 – CR4, registros de coma flotante, etcétera.Alberto Suárez López Página 20
  21. 21. Universidad de OviedoESTRUCTURA DE LOS COMPUTADORES Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) Capítulo 2.3.2.3. MODELO DE MEMORIA. En la CPU teórica disponíamos de un único espacio de direcciones (ED). En laarquitectura IA – 32 existen tres espacios de direcciones de memoria: • Espacio de direcciones lógicas • Espacio de direcciones lineales • Espacio de direcciones reales Hablaremos de espacio de direcciones en relación con todas las posibles direccionesque puede direccionar la CPU. Las direcciones lógicas son las direcciones con las cuales trabajan los programas.Cualquier dirección de memoria que se especifique en un programa será siempre una direcciónlógica. Por ejemplo, MOV EAX, [etiqueta]. Una dirección lógica consta de un selector (16 bits) y un desplazamiento (32 bits), portanto, el espacio de direcciones lógicas es de 64 Tb. Esta dirección lógica se traduce en una dirección lineal mediante un mecanismo desegmentación. Posteriormente, la dirección linea será traduce en una dirección real medianteun mecanismo de paginación. Tanto el mecanismo de segmentación como de paginación soncomponentes hardware de la CPU. Por otra parte, el mecanismo de segmencación no sepuede desconectar pero sí el de paginación, en cuyo caso, la dirección física coincidirá con ladirección lineal. Las direcciones físicas son equivalentes a las direcciones con las que trabajábamos enla CPU teórica. Las direcciones lineales son aquellas direcciones que llegan al mecanismo depaginación. # 0 & 12Alberto Suárez López Página 21
  22. 22. Universidad de OviedoESTRUCTURA DE LOS COMPUTADORES Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) Las direcciones lógicas pueden interpretarse como un conjunto de espacios dedirecciones lineales independientes divididos en segmentos. Cada uno de estos segmentosestá definido por un selector. Cada selector hace referencia a un descriptor de segmento quenos dice cual es el tamaño del mismo y su dirección de origen. El descriptor de segmentoconsta de los siguientes campos: • Dirección base. Dirección de origen del segmento o dirección del desplazamiento cero dentrol del mismo. • Tamaño. Máximo desplazamiento posible dentrol del segmento. Este valor está comprendido entre 4 Kb – 4 Gb. • Atributos. Indican si el segmento es de lectura, escritura, ejecución, etcétera. Además contiene el campo DPL (descriptor priviledge level) que indica cuál es el privilegio necesario para poder acceder a este segmento. - Existen dos registros GDTR y LDTR. El registro GDTR contiene la dirección lineal decomienzo de la tabla global y el LDTR, la dirección lineal de comienzo de la tabla local. Cadauna de estas tablas tiene = descriptores. Cualquier acceso a memoria requiere convertir una dirección local a lineal utilizando eldescriptor de segmento, que también se encuentra en memoria. Este proceso sobrecarga elsistema, disminuyendo el rendimiento. Para solucionar este problema se utilizan unos registros especiales, invisibles alprogramador, denominados registros sombra y que se utilizan para almacenar descriptoresde segmento.Alberto Suárez López Página 22
  23. 23. Universidad de OviedoESTRUCTURA DE LOS COMPUTADORES Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) Cada vez que se carga un nuevo valor en el registro de segmento, la CPU lee eldescriptor de segmento asociado y lo almacena en su registro sombra. Estos valoresgeneralmente sólo son necesarios inicializarlos en el momento en que se ejecuta una tarea ysuelen ser constantes durante dicha ejecución. Vamos a ver ahora cómo las instrucciones de ensamblador trabajan con direccioneslógicas. Distinguimos tres tipos de acceso a memoria: • Búsqueda de instrucción • Acceso a datos estáticos • Acceso a datos dinámicos (pila) En relación con la búsqueda de instrucción, el registro EIP proporciona eldesplazamiento y CS, el selector. ( 3 / & Para el acceso a datos estáticos, por ejemplo, MOV EAX, [EDX], el registro EDXproporciona el desplazamiento y DS, el selector. !3Alberto Suárez López Página 23
  24. 24. Universidad de OviedoESTRUCTURA DE LOS COMPUTADORES Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) En último lugar, para el acceso a datos dinámicos, por ejemplo, POP EAX, el registroESP proporciona el desplazamiento y SS, el selector. 3 4 5 La segmentación es una técnica que no se utiliza en la práctica al ser un mecanismocomplejo por lo que el sistema operativo también es más complejo y disminuye el rendimiento.Además, se complican las herramientas de desarrollo (compiladores) para hacer lasegmentación transparente al usuario. La segmentación lo único que presenta soninconvenientes y ninguna ventaja notable frente a la paginación, por lo que este mecanismo nose utiliza. Sin embargo, el mecanismo de segmentación no se puede desactivar por lo que se optapor reducirlo a su mínima expresión configurando la tabla de descriptores de modo que ladirección lineal sea igual a la dirección lógica. Esto se denomina modelo de memoria plano. El modelo de memoria plano se consigue programando la tabla de descriptores con ladirección base 0000 0000h y con un tamaño de 4 Gb. Como consecuencia al “desactivar” la segmentación desaparece la protección queofrecia dicho mecanismo. La protección, con el modelo de memoria plano, la proporcionará eneste caso, la paginación.Alberto Suárez López Página 24
  25. 25. Universidad de OviedoESTRUCTURA DE LOS COMPUTADORES Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) Capítulo 2.3.2.4. NIVELES DE PRIVILEGIO. Los niveles de privilegio permiten definir qué instrucciones puede ejecutar el sistemaoperativo y cuáles, una tarea. La arquitectura IA – 32 proporciona cuatro niveles de prioridad(0…3) siendo el 0 el más privilegiado y el 3, el menos. Sin embargo en la práctica, los sistemasoperativos multitarea como Windows o Linux utizan sólo dos niveles, el 0 y el 3. Esto es asídebido a que la paginación, que es la que proporciona la protección de memoria, trabaja condos niveles. 6 Los elementos de la CPU que están marcados con niveles de privilegio son: • El campo RPL (requested privilegde level) de un selector • El campo DPL (descriptor privilegde level) de un descriptor • El campo IOPL (input – output priviledge level) El campo RPL de un selector y en particular, el campo RPL del registro CS se ledenomina CPL (current privilegde level) y es donde se almacena el nivel de privilegios deejecución actual. El campo DPL forma parte del atributo de un descriptor e indica el nivel de privilegio delsegmento, es decir, indica el nivel de privilegio que debe tener la tarea para que pueda accedera este segmento. La arquitectura IA – 32 tiene un espacio de direcciones entrada / salida de 4 Kbytes cuyoobjetivo era ubicar las interfaces de los dispostivos de E/S. Para trabajar con este espacio dedirecciones se utilizan dos instrucciones: • IN para leer • OUT para escribir Para poder ejecutar las instrucciones IN y OUT o lo que es igual, para acceder al espaciode direcciones de E/S es necesario tener un privilegio mínimo indicado por el campo IOPL. Enla práctica, este campo tendrá el valor 00h (nivel 0) y el campo CPL también será 0 para poderejecutar IN y OUT. CPL sólo será 0 cuando se esté ejecutando el sistema operativo y así sóloél podrá acceder a los dispositivos de E/S. Así, el espacio de direcciones de E/S se protegemediante el campo IOPL. Sin embargo, este espacio de direcciones en la práctica sólo seutiliza para interfaces heredadas (por ejemplo, para el puerto serie).Alberto Suárez López Página 25
  26. 26. Universidad de OviedoESTRUCTURA DE LOS COMPUTADORES Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) Descritos los campos marcados con niveles de privilegio vamos a destacar varios puntosrelativos a los niveles de privilegios. • Existen un conjunto de instrucciones privilegiadas que sólo pueden ejecutarse cuando el nivel de privilegios es 0. • Hay un conjunto de instrucciones denominadas de E/S que sólo pueden ejecutarse cuando CPL es igual o más privilegiado que IOPL. • Para que el procesador cambie el nivel de privilegio, por ejemplo, durante la llamada a un servicio del sistema operativo, es necesario cargar en el registro CS un valor del campo CPL diferente. Este proceso tiene que ser filtrado para que no pueda ser realizado por una tarea. Así, se llevan a cabo una serie de comprobaciones sobre el valor del CPL actual, el RPL del nuevo CS y con el DPL del nuevo segmento. • Antes de cargar un nuevo valor en un registro de segmento de datos (DS, SS, FS, GS) se llevan a cabo una serie de comprobaciones de privilegios sobre los campos CPL actual, RPL del nuevo selector y DPL del nuevo descriptor. • Cada vez que falla alguna de las comprobaciones anteriores se genera una excepción de protección general. Por ejemplo, esto ocurre cuando una tarea trata de ejecutar la instrucción CLI. En este caso, la excepción transfiere el control al SO por medio de la rutina de tratamiento o manejador asociado, el cual finaliza la tarea. Capítulo 2.3.2.5. MECANISMOS DE TRANSFERENCIA DE CONTROL AL SISTEMA OPERATIVO. Se produce la transferencia de control de una tarea al sistema operativo cuando se llamaa un servicio, se produce una interrupción o una excepción. Esta transferencia se realiza através de un manejador. En la arquitectura IA – 32 disponemos de una tabla de descriptores deinterrupción ó IDT (interruption descriptor table). Cada entrada de dicha tabla recibe el nombrede puerta y son unos descriptores “especiales”. La tabla de descriptores de interrupción no comienza una dirección fija sino que lo haceen la dirección lineal a la que apunta el registro IDTR. Este registro además almacena eltamaño de la tabla IDT. ,/Alberto Suárez López Página 26
  27. 27. Universidad de OviedoESTRUCTURA DE LOS COMPUTADORES Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) Cada puerta tiene un tamaño de 8 bytes y el tamaño máximo de la tabla es de 256entradas. Cada puerta contiene un selector y un desplazamiento que indican la dirección lógicadel manejador. Además, tiene un tercer campo, que son atributos utilizados para definir el tipode puerta y su nivel de privilegio ya que existen servicios a los que sólo puede llamar el propiosistema operativo y servicios que “exporta” a las tareas. En cuanto a los tipos de puertasdistinguimos: • Task gates. Puertas de tarea. • Interrupt gates. Se utilizan para llamadas al sistema e interrupciones. • Trap gates. Se utilizan para las excepciones. ,/ 47,5 8 9 La diferencia fundamental entre llamadas a servicios, interrupciones y excepciones es lamanera de generar el número de interrupción, como se vio anteriormente (Capítulo 1.2.Introducción a los sitemas opertativos multitarea).Alberto Suárez López Página 27
  28. 28. Universidad de OviedoESTRUCTURA DE LOS COMPUTADORES Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) Capítulo 2.3.2.6. LLAMADAS A SERVICIOS DEL SISTEMA OPERATIVO. Para llamar a un servicio se utiliza una instrucción de tipo INT numero_instruccion. Porejemplo, en Windows: INT 2Eh. Capítulo 2.3.2.7. INTERRUPCIONES. Las interrupciones son generadas por las interfaces de los periféricos para solicitar laatención de la CPU. A través de las líneas LINT del APIC se genera la interrupción yproporciona a la CPU el número de interrupción. Cuando no existe APIC o no está programadolas líneas LINT funcionan como entradas INTR o NMI. INTR es una línea de petició deinterrupción mascarable que significa que la interrupción pueda estar inhabilitada a través delregistro EFLAGS. NMI es una línea de petición no marcarable. Capítulo 2.3.2.8. EXCEPCIONES. Son un mecanismo de transferencia de control al sistema operativo y se generan cuandola CPU detecta una situación anómala. En la arquitectura IA – 32 existen los siguientes tipos deexcepciones: • Fallos (fault) • Abortos (abort) • Trampas (trap) Los fallos señalizan errores no – catastróficos durante la ejecución de instrucciones, esdecir, son errores que no afectan a la integridad del sistema. En la arquitectura IA – 32distinguimos: • Fallos recuperables. Fallos leves que se pueden solventar y una vez solventados se vuelve a ejecutar la instrucción que causó el fallo como si nada hubiera pasado. Por ejemplo, al ejecutar la instrucción MOV EAX, [EBX] se intenta acceder a una dirección que no se encuentra en memoria por lo que se produce un fallo de página. El manejador de la excepción del fallo de página cargará la página en memoria y se volverá a ejecutar MOV EAX, [EBX]. • Fallos no – recuperables. Fallos que no se pueden recuperar y provocan por lo tanto la finalización de la tarea. Por ejemplo, al ejecutar la instrucción MOV EAX,[EBX] y EBX apunta a una zona que no tiene asociado almacenamiento ni en disco ni en memoria. El manejador de la excepción de fallo de página no puede subsanar el problema y la tarea finaliza. * /Alberto Suárez López Página 28
  29. 29. Universidad de OviedoESTRUCTURA DE LOS COMPUTADORES Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) " * 2 / Las excepciones de tipo aborto se utiliza para indicar fallos catastróficos. Por ejemplo: secorrompen las tablas del sistema, como la IDT. Cuando ocurren este tipo de excepciones, elsistema operativo, mediante el manejador de la excepción, lleva a cabo un cierre controlado delsistema. # 1/ Las excepciones de tipo trampa se emplean para transferir el control de la ejecución arutinas de depuración. Cuando está habilitado el modo traza, justo después de terminar laejecución de una instrucción se produce una excepción de tipo trampa. Para que se generenestas excepciones es necesario que el bit TF del registro EFLAGS esté habilitado. Por otraparte, justo después de entrar en la rutina se deshabilitan los bits TF e IF durante un breveintervalo de tiempo. Después de la ejecución de la rutina de tratamiento se ejecutará lasiguiente instrucción a la que estaba en curso antes de generarse la excepción.Alberto Suárez López Página 29
  30. 30. Universidad de OviedoESTRUCTURA DE LOS COMPUTADORES Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) , Capítulo 2.3.2.9. SECUENCIA DE PASOS DURANTE LA TRANSFERENCIA DE CONTROL. (En apuntes)Alberto Suárez López Página 30
  31. 31. Universidad de OviedoESTRUCTURA DE LOS COMPUTADORES Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) Capítulo 3. LA JERARQUÍA DE MEMORIA. Vamos a estudiar los cambios que tendrá que sufrir la jerarquía de memoria para darsoporte a sistemas operativos multitarea. Capítulo 3.1. INTRODUCCIÓN. La función de la jerarquía de memoria es almacenar instrucciones (código) e información(datos). El objetivo consiste en obtener una memoria de gran tamaño para almacenar la mayorcantidad de datos y código; y de la mayor velocidad posible. Por ejemplo, en instrucciones dela CPU teórica como MOV [R3], R5 o MOV R3, [R5] se producían ciclos de espera ya que lamemoria es más lenta que el procesador. En este sentido, el objetivo que planteamos esconseguir que la jerarquía de memoria sea lo más rápida posible para evitar los ciclos deespera descritos. Definición: Influencia de la velocidad de la memoria: La velocidad de la memoria influye en el rendimiento del sistema de acuerdo a lasiguiente expresión: ( % = % $ # & + ! Por ejemplo, para un procesador a 1 GHz. con un tiempo de acceso a memoria de 60 ns.y capaz de ejecutar 4 instrucciones “normales” por cada instrucción de acceso a memoria. Así: ( % = = = "= " + ( 7 $ -.: ;Alberto Suárez López Página 31
  32. 32. Universidad de OviedoESTRUCTURA DE LOS COMPUTADORES Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) Vemos como en principio es necesario aumentar el rendimiento de la memoria, para locual disponemos de las siguientes tecnologías: • RAM estática (SRAM). Su celda básica es un biestable. Es la memoria más rápida. • RAM dinámica (DRAM). Su celda básica es un condensador. Su principal inconveniente es que necesita refrescarse con relativa frecuencia. • Almacenamiento magnético (discos duros, cintas, etcétera). Tienen mayor capacidad pero son muy lentos. Ahora comparamos los tiempos de acceso, obteniendo los siguientes resultados: • SRAM. Su tiempo de acceso es aproximadamente el tiempo de un ciclo de la CPU. • DRAM. Su tiempo de acceso es unas 100 – 400 veces el tiempo de un ciclo de la CPU. • Almacenamiento magnético. Su tiempo de acceso es aproximadamente 1.000.000 veces el tiemo de un ciclo de la CPU. Vemos como, a priori, podemos pensar que la tecnología más adecuada puede ser laRAM estática (SRAM); sin embargo, no hemos hablado del precio de la memoria que,obviamente, influye en la toma de decisiones. Hablaremos del precio de la memoria enrelación al material requerido para construir sus celdas básicas y la energía consumida. Asítenemos: • SRAM. Es la tecnología más cara ya que requiere un mínimo de 6 transistores y consume mucha energía. • DRAM. Esta tecnología tiene un precio intermedio y sólo requiere un transistor. • Almacenamiento magnético. Es la tecnología más barata. Su celda básica es una zona de material magnético muy pequeña. !+ 2 < Vemos como la memoria que es muy rápida también resulta muy cara y viceversa. Lasolución es combinar todas las soluciones anteriores en o que se denomina jerarquía dememoria.Alberto Suárez López Página 32
  33. 33. Universidad de OviedoESTRUCTURA DE LOS COMPUTADORES Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) Capítulo 3.2. CONCEPTO DE LA JERARQUÍA DE MEMORIA. Como vimos anteriormente, buscamos un sistema de memoria con alta capacidad y altavelocidad, así como, con un bajo coste. Sin embargo, ninguna de las tecnologías anterioressatisface por sí sola estos requisitos. La solución consiste en combinar todas las tecnologías detal modo que una tecnología rápida se utilice para almacenar datos usados frecuentemente yuna tecnología lenta, para datos usados menos frecuentemente. Para conseguir estonecesitamos conocer a priori los datos que tendrán una mayor probabilidad de acceso futuropara poder ser almacenados en memorias rápidas. Además estos datos deberán ser pocos yde pequeño tamaño. Estas dos condiciones definen el principio de localidad. Definición: Principio de localidad: Si se accede a una dirección de memoria, se accederá en el futuro a una dirección dememoria próxima. Por ejemplo: ejecución secuencial de instrucciones o ejecución de bucles enel caso del código o acceso a valores de arrays, matrices, listas, etcétera en el caso de datos.De este modo podemos hablar de proximidad temporal cuando las direcciones de memoria seejecutarán en periodos de tiempo muy pequeños o proximidad espacial, cuando los datos seencuentran en direcciones próximas o consecutivas en la memoria. = &<Alberto Suárez López Página 33
  34. 34. Universidad de OviedoESTRUCTURA DE LOS COMPUTADORES Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) Capítulo 3.3. LA MEMORIA CACHÉ. Vamos a estudiar la jerarquía de memoria partiendo desde el nivel más cercano a laCPU: la memoria caché. Estudiaremos la memoria caché desde tres puntos de vista: sufuncionamiento, la comunicación con la memoria principal y su implementación en laarquitectura IA – 32. Capítulo 3.3.1. CONCEPTOS PREELIMINARES. La memoria caché es la más rápida del sistema y en la práctica se implementa utilizandotecnología SRAM. Esta memoria se organiza en bloques, todos del mismo tamaño. Cuando laCPU intenta acceder a una dirección de memoria se comprueba si está cacheada, es decir, siestá en un bloque de la memoria caché. Puede ocurrir que • sí se encuentre, en cuyo caso se servirá el contenido de la dirección a la CPU a la máxima velocidad; o que • no se encuentre, en cuyo caso se tendrá que traer el dato de la memoria principal a la caché previamente. Por otra parte,cuando un dato no está en la memoria caché, el bloque de la memoriaprincipal que contiene dicha dirección se copia en un bloque libre de la memoria caché. Estosbloques tendrá el mismo tamaño en la memoria principal y en la caché. 7 > ; ? / & Ejemplo: Vamos a considerar que la memoria caché tendrá 8 bloques de 4 palabras cada bloque.Emplearemos el término byte y palabra como si de sinónimos se tratara.Alberto Suárez López Página 34
  35. 35. Universidad de OviedoESTRUCTURA DE LOS COMPUTADORES Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) Cada dirección de memoria principal consta de dos campos: • un campo que indica el número de bloque de memoria y • otro campo que indica el desplazamiento dentro de dicho campo Por otra parte, la memoria caché incluye un mecanismo de control de caché a parte delos bloques de almacenamiento. Este controlador permite determinar si una dirección estácacheada, en cuyo caso se produce un acierto de caché; o no, en cuyo caso se produce unfallo de caché que producirá que se tenga que servir el bloque correspondiente desde lamemoria principal. Existen tres factores que definen el funcionamiento de la memoria caché: • La estrategia de correspondiencia • La estrategia de de reemplazo • La estrategia de escritura La estrategia de correspondencia define a qué bloque o bloques de memoria cachépuede ir cada bloque de memoria principal. La estrategia de reemplazo define si en el caso de que se produzca un fallo de caché yhalla varios bloques de memoria caché candidatos a ser reemplazados, cuál se reemplaza. La estrategia de escritura define como se realizará la escritura, teniendo en cuentaproblemas de coherencia con la memoria principal. Capítulo 3.3.2. ESTRATEGIAS DE CORRESPONDENCIA. Define a que bloque o bloques de memoria caché puede ir cada bloque de memoriaprincipal. En la práctica hay tres tipos de correspondencia: • Correspondencia directa • Correspondencia (totalmente) asociativa • Correspondencia asociativa por conjuntos Capítulo 3.3.2.1. CORRESPONDENCIA DIRECTA. Cada bloque de memoria principal puede ir a uno y sólo uno de los bloques de caché.Para determinar el bloque de caché se utiliza la siguiente expresión: / )* =(/ ! ! ).(,- + )* ) En la práctica, el número de bloques de caché es una potencia de 2. Así, la expresiónanterior quedaría: / )* =(/ ! ! ).( ) Así, el bloque de caché se obtiene de los bits menos significativos que identifican elbloque de memoria principal. Con este planteamiento va a haber muchos bloques de memoria principal que tienenasignados el mismo bloque de memoria caché. ¿Cómo podemos saber qué bloque de memoriaestá cacheado? El bloque de memoria principal que está cacheado en cada momento dentrode un bloque de memoria caché se conoce a través de su campo etiqueta. Cada bloque decaché incorpora celdas de almacenamiento adicionales que almacenan la etiqueta.Alberto Suárez López Página 35
  36. 36. Universidad de OviedoESTRUCTURA DE LOS COMPUTADORES Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) & >? El bit de validez nos dice si hay un bloque de memoria principal cacheado y la etiqueta,qué bloque está cacheado en caso de que hubiera alguno cacheado.Alberto Suárez López Página 36
  37. 37. Universidad de OviedoESTRUCTURA DE LOS COMPUTADORES Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) Vamos a estudiar ahora el funcionamiento de una memoria caché de correspondenciadirecta. Partimos de una memoria caché vacía, es decir, con todos sus bits de validez a 0. >? <Alberto Suárez López Página 37
  38. 38. Universidad de OviedoESTRUCTURA DE LOS COMPUTADORES Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) Posteriormente se produce una petición de lectura sobre la dirección 01001110. Estádirección, en caso de estar cacheada se tendrá que situar en el bloque 3 de la caché. Sinembargo, dicha dirección no está cacheada y se produce un fallo de caché. 1 > / !!! ! $ >?Alberto Suárez López Página 38
  39. 39. Universidad de OviedoESTRUCTURA DE LOS COMPUTADORES Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) A continuación copiamos el bloque de memoria principal que contiene a la direcciónespecificada sobre el bloque de caché, actualizando el valor de la etiqueta de bloque así comosu bit de validez, que pasará a ser 1. Ahora la memoria caché puede servir a la CPU elcontenido de la dirección especificada. " / & ; -.:Alberto Suárez López Página 39
  40. 40. Universidad de OviedoESTRUCTURA DE LOS COMPUTADORES Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) En otro momento intentamos acceder a la dirección 01001111. Esta dirección estácacheada puesto que se encuentra situada en el bloque 3, cuyo bit de validez es 1 y la etiquetacoincide por lo que se sirve el contenido de la dirección a la CPU. # !!! -.:Alberto Suárez López Página 40
  41. 41. Universidad de OviedoESTRUCTURA DE LOS COMPUTADORES Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) En una posterior lectura, intentamos acceder a la dirección 01010000. Esta dirección sedeberá encontrar en el bloque 4 de la caché. Sin embargo, su bit de validez es 0 por lo que seproduce un fallo de caché. 1 !!!! !! $ >?Alberto Suárez López Página 41
  42. 42. Universidad de OviedoESTRUCTURA DE LOS COMPUTADORES Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) Se copia el bloque en el que se encuentra la dirección especificada de la memoriaprincipal al bloque correspondiente de la caché y se sirve el contenido de la dirección a la CPU. ( / & ;Alberto Suárez López Página 42
  43. 43. Universidad de OviedoESTRUCTURA DE LOS COMPUTADORES Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) En último lugar, tratamos de leer el contenido de la dirección 11001111. Dicha dirección,en caso de estar cacheada, deberá estar localizada en el bloque 3. Vemos como el bit devalidez de dicho bloque es 1 pero las etiquetas de la dirección y el bloque no coinciden, por loque nuevamente se produce un fallo de caché. ! $ >? &Alberto Suárez López Página 43
  44. 44. Universidad de OviedoESTRUCTURA DE LOS COMPUTADORES Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) Nuevamente, se carga en el bloque correspondiente de la caché el bloque de memoriaprincipal en el que se encuentra la dirección especificada y se sirve el contenido de la misma ala CPU. / & > ; ? -.: $Alberto Suárez López Página 44
  45. 45. Universidad de OviedoESTRUCTURA DE LOS COMPUTADORES Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) Capítulo 3.3.2.2. CORRESPONDENCIA (TOTALMENTE) ASOCIATIVA. La estrategia de correspondencia directa produce muchos fallos de caché. La estrategiade correspondencia (totalmente) asociativa permite que cada bloque de memoria principalpueda ir a cualquier bloque de memoria caché. Con esta correspondencia, la etiqueta coincidecon el bloque de memoria principal. Teóricamente, esta correspondencia es la más eficiente ya que produce el menornúmero de fallo de caché, sin embargo, su circuitería de control es muy costosa, por lo que enla práctica no se aplica. & >? 4 5Alberto Suárez López Página 45
  46. 46. Universidad de OviedoESTRUCTURA DE LOS COMPUTADORES Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) Capítulo 3.3.2.3. CORRESPONDENCIA ASOCIATIVA POR CONJUNTOS. En la correspondencia directa se producían numerosos fallos de caché y en lacorrespondencia (totalmente) asociativa, su circuitería de control era muy costosa. En lacorrespondencia asociativa por conjuntos se opta por un término medio, de modo que lamemoria caché se organiza en conjuntos del mismo tamaño formado por un numerodeterminado de bloques de caché, denominado número de vías. La idea es que cada bloquede memoria principal pueda ir a un único conjunto pero dentro de este conjunto pueda ir acualquiera de sus bloques. >? ) - / & & / & Los bits menos significativos del bloque de memoria principal proporcionan el conjunto ylos restantes bits, la etiqueta.Alberto Suárez López Página 46
  47. 47. Universidad de OviedoESTRUCTURA DE LOS COMPUTADORES Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) & >? La estrategia de correspondencia por conjuntos es una estrategia genérica en el sentidode que la estrategia de correspondencia directa es una estrategia de correspondencia porconjuntos con conjuntos de una sóla vía. Por otra parte, la estrategia de correspondencia(totalmente) asociativa es una estrategia de correspondencia por conjuntos con un únicoconjunto.Alberto Suárez López Página 47
  48. 48. Universidad de OviedoESTRUCTURA DE LOS COMPUTADORES Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) Capítulo 3.3.3. ESTRATEGIAS DE REEMPLAZO. Cada vez que se produce un fallo de caché se copia un bloque de memoria principal amemoria caché; bloque que contiene la dirección a la que se intenta acceder. El bloque dememoria caché en el que se almacenará depende, entre otras cosas, de la estrategia dereemplazo. Esta estrategia indica qué bloque de memoria caché hay que reemplazar cuandose produce un fallo de caché y hay varios bloques de caché “candidatos”. Hay que tener encuenta no sólo los posibles candidatos sino además, si están ocupados o no. El problema que tenemos es, ¿cómo elegimos el bloque a reemplazar? Tenemos dosestrategias: • LRU (Least Recent Used) • Aleatoria El algoritmo LRU reemplaza aquel bloque que menos ha sido usado recientemente. Paralograr esto, la memoria caché añade a los bloques un campo en el que se almacenainformación referida a la frecuencia de acceso. El algoritmo aleatorio, como su nombre indica, selecciona el bloque a reemplazar demanera aleatoria entre los candidatos. Capítulo 3.3.4. ESTRATEGIAS DE ESCRITURA. La escritura en memoria presenta problemas respecto a la lectura debido a que esnecesario mantener la coherencia entre la memoria principal y la memoria caché. Para darsolución a este problema tenemos dos estrategias: • Escritura directa (Write – through) • Escritura diferida (Write – back) La estrategia de escritura directa o write – through consiste en que, cada vez que la CPUescribe un dato, este dato se escribe tanto en memoria caché como en memoria principal. Elprincipal inconveniente de esta estrategia es la disminución drástica del rendimiento delsistema al realizar continuas escrituras sobre memoria principal. La estrategia de escritura diferida o write – back consiste en que, cada vez que la CPUescribe un dato en memoria este dato sólo se escribirá en memoria caché y migrará a memoriaprincipal cuando el bloque de caché sea reemplazado. Con esta estrategia de escritura esnecesario añadir un bit adicional a cada bloque de caché denominado bit dirty de tal modoque, cada vez que la CPU escribe un dato en memoria, el bit dirty se activa; y cuando se tengaque reemplazar dicho bloque, previamente tendrá que ser sincronizado con el bloquecorrespondiente de memoria principal, tras lo cual el bit dirty se desactivará.Alberto Suárez López Página 48
  49. 49. Universidad de OviedoESTRUCTURA DE LOS COMPUTADORES Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) Vamos a ilustrar el funcionamiento de esta estrategia de escritura. Para lo cual partimosde una memoria principal y una memoria caché en el estado inicial: ; >?Alberto Suárez López Página 49
  50. 50. Universidad de OviedoESTRUCTURA DE LOS COMPUTADORES Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) A continuación se recibe una petición de escritura sobre la dirección 01001101 en la quese intentará escribir el dato FFh. Vemos como la dirección se pertenece al bloque 3 y puestoque el campo etiqueta del bloque 3 y de la dirección 01001101 coinciden y el bit de validez es1, el bloque de memoria principal en el que se encuentra la dirección referenciada se encuentraactualmente cacheada, por lo que se escribe el dato correspondiente en dicho bloque y acontinuación se marca como sucio. " / $ % / &Alberto Suárez López Página 50
  51. 51. Universidad de OviedoESTRUCTURA DE LOS COMPUTADORES Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) Posteriormente se recibe una petición de lectura sobre la dirección 11101110. Estadirección produce un fallo de caché ya que no coinciden las etiquetas de la dirección y delbloque asociado a la misma (nuevamente, el bloque 3). # $/ & 2 >Alberto Suárez López Página 51
  52. 52. Universidad de OviedoESTRUCTURA DE LOS COMPUTADORES Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) Puesto que el bit dirty del bloque 3 se encontraba activado, se sava el contenido dedicho bloque en memoria principal. / & @ @Alberto Suárez López Página 52
  53. 53. Universidad de OviedoESTRUCTURA DE LOS COMPUTADORES Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) A continuación se trae de memoria principal el bloque que contiene la direcciónreferenciada anteriormente, desactivando el bit dirty y finalmente, devolviendo el contenido dela dirección. ( / & & $ % / ;;$ % Capítulo 3.3.4.1. EL PROBLEMA DE LA COHERENCIA. La CPU trabaja con la memoria caché y por tanto, con una copia de la información. Si laCPU es el único elemento que accede a memoria, las estrategias de escritura descritasanteriormente solucionan el problema planteado inicialmente. Sin embargo, hay ciertosperiféricos que pueden acceder a la memoria, de tal modo que estos periféricos pueden alterarel contenido de ciertas direcciones. !1 -.:% $ ? Si el bloque de memoria asociado a dichas direcciones está cacheado y la memoriaprincipal se modifica, se romperá la coherencia entre la memoria principal y la memoria caché. Este problema se puede solucionar marcando ciertos rangos del espacio de direccionescomo no cacheables, en cuyo caso, cuando desde la CPU se haga referencia a una direcciónperteneciente a un rango no cacheable, se leerá o escribirá directamente sobre la memoriaAlberto Suárez López Página 53
  54. 54. Universidad de OviedoESTRUCTURA DE LOS COMPUTADORES Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O)principal. Esta solución, obviamente, sólo es viable si se aplica para rangos de memoriarelativamente pequeños o de lo contrario, el rendimiento del sistema disminuirá al realizarseoperaciones de lectura y escritura directamente sobre la memoria principal. Estas solucionesaparecen con dispositivos mapeados dentro del espacio de direcciones de la memoriaprincipal. Cuando el rango de direcciones es relativamente grande, es más eficiente utilizardispositivos con capacidad DMA (escritura directa sobre memoria). Este tipo de dispositivostienen la “inteligencia” suficiente como para mover grandes rangos de memoria sin lamediación de la CPU, reduciendo la sobrecarga de la misma y por tanto, incrementando elrendimiento. Sin embargo, con esta solución surge el problema de la coherencia: Por ejemplo, un dispositivo con capacidad DMA escribe en memoria sobre un bloquepreviamente cacheado. En este caso, la información almacenada en el bloque no se actualiza. Por otra parte, supongamos que se escribe sobre un bloque de caché con estrategia deescritura diferida. Si a continuación, la interfaz de un periférico con capacidad DMA lee unbloque de memoria principal cacheado antes de ser actualizado, leerá información noactualizada. . / > $ $ ? 70 1 La solución a estos dos problemas de coherencia es la técnica de espionaje o snooping,que se implementa en el controlador de caché. Así, el controlador está monitorizando las líneasde control y datos de la memoria principal de tal modo que, cuando un dispositivo concapacidad DMA accede a la memoria, se comprueba si la dirección que se modificó por lainterfaz del dispositivo ha sido cacheada, en cuyo caso, se marcará como inválido el bloquecorrespondiente. Por otra parte, si la interfaz de un periférico intenta acceder a una direcciónperteneciente a un bloque cacheado y marcado como sucio detiene temporalmente el acceso,a continuación actualiza el bloque marcado como sucio de tal forma que la memoria principalestará actualizada y posteriormente, el controlador de caché permitirá a la interfaz del periféricocon capacidad DMA que continue con el acceso a memoria. Vamos a estudiar ahora los distintos casos en los que podemos emplear la técnica desnooping:Alberto Suárez López Página 54
  55. 55. Universidad de OviedoESTRUCTURA DE LOS COMPUTADORES Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) Si la interfaz de un periférico realiza una lectura de memoria principal y la memoria cachéemplea una estrategia de escritura write – through, en este caso no hay ningún problema deincoherencia ya que la memoria principal siempre estará actualizada. Si la interfaz de un periférico realiza una lectura de memoria principal y la memoria cachéemplea una estrategia de escritura write – back, en este caso existe un problema deincoherencia si la interfaz del periférico intenta leer una dirección de memoria principalperteneciente a un bloque de memoria cacheado y además modificado, es decir, su bit dirtyestá activado. Problema: Los datos leídos pueden pertenecer a un bloque de memoria principal obsoleto, es decir,modificado en la caché. Solución: Ante esta situación, se detiene la lectura para actualizar el bloque. $) $ ? 0 >?9 2/ AAlberto Suárez López Página 55
  56. 56. Universidad de OviedoESTRUCTURA DE LOS COMPUTADORES Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) Si la interfaz de un periférico realiza una escritura en memoria principal y la memoriacaché emplea una estrategia de escritura write – through, en este caso existe un problema deincoherencia si la interfaz del periférico intenta escribir sobre una dirección de memoriaperteneciente a un bloque cacheado. Problema: Si el periférico escribe en un bloque de memoria principal que se encuentra cacheado, elbloque de la caché se convierte en obsoleto. Solución: Espionaje del bus (snooping) y marca el bloque como inválido. $) $ ? 0 >?9 2 > >Alberto Suárez López Página 56
  57. 57. Universidad de OviedoESTRUCTURA DE LOS COMPUTADORES Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) Si la interfaz de un periférico realiza una escritura en memoria principal y la memoriacaché emplea una estrategia de escritura write – back, en este caso existe un problema deincoherencia si la interfaz del periférico intenta escribir sobre una dirección perteneciente a unbloque cacheado que puede incluso haber sido modificado previamente por la CPU, en cuyocaso, su bit dirty estará activado. Problema: Puede tratar de escribirse en un bloque de memoria cacheado (caso write – through),pero si el bloque además está modificado (incoherente) es un nuevo problema. Solución: Actualizar el bloque en memoria principal, marcarlo como inválido y escribir el datocorrespondiente. $) $ ? 0 >?9 2/ AAlberto Suárez López Página 57
  58. 58. Universidad de OviedoESTRUCTURA DE LOS COMPUTADORES Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) Capítulo 3.3.5. ORGANIZACIÓN DE LA MEMORIA CACHÉ. Hay dos factores que influyen en la organización de la caché: • El número de niveles de caché. • La separación en cachés de código y datos. Hasta ahora hemos trabajado con un único nivel de caché, esto ocurría con los primeroscomputadores que incluían memoria caché. Actualmente es frecuente tener cachés de variosniveles (caché de nivel L1, L2, …), siendo el nivel más bajo el más próximo a la CPU. Así, en elcaso de un fallo de caché L1, el bloque es servido por la caché L2 en lugar de ser servido porla memoria principal. Estos dos niveles de caché es frecuente que sean incorporados en lapropia CPU. Además, la caché L1 es más rápida que la caché L2, pero más pequeña que ésta. Por otra parte, hemos supuesto que teníamos una caché que almacenaba tanto datoscomo código (instrucciones); sin embargo, es posible disponer de dos cachés especializadasen datos y código, respectivamente y ambas al mismo nivel. La caché unificada proporcionauna mayor tasa de aciertos frente a la caché separada. En la práctica, la caché L1 es unacaché separada y la L2, unificada. Memoria Principal Caché L2 Caché L1 Caché L2 Datosl Código CPU & >? Al aplicar este modelo estamos consiguiendo un acceso simultáneo a datos y a códigomultiplicando, en teoría, la velocidad por dos.Alberto Suárez López Página 58
  59. 59. Universidad de OviedoESTRUCTURA DE LOS COMPUTADORES Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) Capítulo 3.3.6. MEMORIA CACHÉ EN LA ARQUITECTURA IA – 32. La mayor parte de los procesadores para PC disponen de dos niveles de caché. Vamosa describir como es este modelo de memoria caché en el procesador Athlon de AMD: • La memoria caché L1 de datos • La memoria caché L1 de código • La memoria caché L2 La memoria caché L1 de datos tiene un tamaño de 64 Kbytes con líneas (bloques) de 64bytes y 4 vías por conjunto, lo cual da un total de 256 conjuntos. La memoria caché L1 de código tiene un tamaño de 64 Kbytes con líneas (bloques) de64 bytes y 16 vías por conjunto, lo cual da un total de 64 conjuntos. La memoria caché L2 tiene un tamaño de 256 Kbytes con líneas (bloques) de 64 bytes y1 vías, lo cual da un total de 256 conjuntos.Alberto Suárez López Página 59
  60. 60. Universidad de OviedoESTRUCTURA DE LOS COMPUTADORES Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) Capítulo 3.4. MEMORIA PRINCIPAL. Vamos a estudiar la memoria principal centrándonos en la comunicación de ésta con lamemoria caché. El objetivo que seguiremos es reducir el coste de un fallo de caché y deactualización de un bloque de memoria. Capítulo 3.4.1. COSTE TEMPORAL DE UN FALLO CACHÉ. La memoria principal y la memoria caché intercambian información en bloques detamaño bytes a través de un bus de datos de tamaño bytes (número de líneas). " / $ > ; ? Cuando ocurre un fallo de caché hay que transferir bytes desde memoria principal amemoria caché. En cada acceso de lectura de transfieren bytes desde la memoria principal ala memoria caché. Luego, ¿cuántos accesos son necesarios para servir un fallo de caché?Serán necesarios accesos. Por otra parte, necesitamos saber el tiempo necesario para un acceso de lectura. Cadaacceso de lectura de memoria lo mediremos en un tiempo expresado en ciclos del bus. Cadaacceso de lectura se divide en tres partes: • Envío por parte del controlador de caché de la dirección a buscar a través del bus de direcciones. • Búsqueda del dato direccionado de tamaño bytes dentro de la memoria principal. • La memoria principal proporciona el dato a la memoria caché sobre las líneas de datos. Vamos a particuarizar los datos anteriores con los valores: • = 32 bytes • = 8 bytes • operación 1 = 1 ciclo • operación 2 = 3 ciclos • operación 3 = 1 ciclo Con estos datos, el tiempo necesario para mover un bloque de memoria principal amemoria caché será: ( ! + ! + ! )= ( + + )= = =Alberto Suárez López Página 60
  61. 61. Universidad de OviedoESTRUCTURA DE LOS COMPUTADORES Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) Capítulo 3.4.2. COSTE TEMPORAL EN LA ACTUALIZACIÓN DE UN BLOQUE DE MEMORIAPRINCIPAL. Este proceso de actualización de un bloque de memoria principal ocurrirá en doscircunstancias: • Se produce un reemplazo de un bloque sucio. • La interfaz de un periférico con capacidad DMA lee de un bloque de memoria cacheado y sucio. El coste temporal de actualización será el número de accesos a memoria principal por elcoste temporal de un acceso de escritura en memoria principal. Este proceso de actualizaciónse divide en tres operaciones: • La memoria caché, a través de su controlador, pone la dirección a través de las lineas de direcciones. • La memoria caché pone el dato a escribir sobre las líneas de datos y activa la escritura. • El dato se escribe en la memoria principal. Vamos a particularizar los datos anteriores con los valores: • = 32 bytes • = 8 bytes • operación 1 = 1 ciclo • operación 2 = 1 ciclo • operación 3 = 4 ciclos Con estos datos, el tiempo necesario para escribir un bloque de memoria caché enmemoria principal será: ( ! + ! + ! )= ( + + )= = = Capítulo 3.4.3. MEJORAS EN LA ORGANIZACIÓN DE LA MEMORIA PRINCIPAL. Vamos a estudiar cómo podemos mejorar el rendimiento de la memoria principal.Tenemos dos caminos: • Mejorar la tecnología de fabricación, disminuyendo el tamaño de los transistores y por tanto, logrando una mayor velocidad de éstos. • Mejorar la organización interna. Vamos a centrarnos en este segundo punto. La mejora de la organización interna sebasa en dos conceptos: • La localidad, esto es, se leerán / escribirán bloques de memoria con direcciones consecutivas. • El paralelismo, esto es, organización de los componentes físicos en grupos (bancos) de modo que éstos trabajen concurrentemente. Vamos a considerar que cada vez que se produce un fallo de caché o una actualizaciónde un bloque de memoria principal intervienen las siguientes direcciones: F0000000h -F000001Fh. Además, vamos a suponer que la memoria principal se construye con dosdispositivos de memoria que denotaremos por A y B.Alberto Suárez López Página 61
  62. 62. Universidad de OviedoESTRUCTURA DE LOS COMPUTADORES Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) Capítulo 3.4.3.1. MEMORIA NO – ENTRELAZADA. Vamos a centrarnos únicamente en un proceso de fallo de caché, aunque laactualización sería análoga. Este tipo de memoria es el visto en el ejemplo anterior, es decir, no presentaoptimizaciones. # & 2 ) - El bloque que queremos transferir pertenece únicamente al dispositivo A. Al producirseun fallo de caché, se producirá la lectura del bloque de memoria caché, el cual se encuentra enel dispositivo A. Por tanto, la lectura se realizará siempre sobre dicho dispositivo. Decimos que la memoria es no – entrelazada cuando cada disposiitivo contiene un rangode direcciones consecutivas.Alberto Suárez López Página 62
  63. 63. Universidad de OviedoESTRUCTURA DE LOS COMPUTADORES Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) Capítulo 3.4.3.2. MEMORIA ENTRELAZADA. El problema que plantea la memoria no – entrelazada es el desperdicio de recursos. Elobjetivo que perseguimos es que ambos dispostivos trabajen simultáneamente, es decir, enparalelo. Teóricamente, empleando dos dispositivos conseguimos disminuir el coste de un fallode caché casi a la mitad. & ) Durante la operación 1, tanto el dispositivo A como el dispositivo B reciben ambos lamisma dirección. Ambos buscan la dirección, en paralelo. No podemos transferir simultáneamente ambos datos buscados ya que el dato será de16 bytes y el bus de datos, de 8 bytes. Entonces un dispositivo será el encargado en primeraocasión de servir el dato, mientras que el siguiente dispositivo tendrá que esperar.Alberto Suárez López Página 63
  64. 64. Universidad de OviedoESTRUCTURA DE LOS COMPUTADORES Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) Capítulo 3.4.3.3. AMPLIACIÓN DEL BUS DE DATOS. Ampliando el bus de datos de 8 a 1 bytes conseguimos que los dispositivos A y Bpuedan trabajar completamente en paralelo, disminuyendo el coste de un fallo de caché a lamitad. ( 0 ) ;/Alberto Suárez López Página 64
  65. 65. Universidad de OviedoESTRUCTURA DE LOS COMPUTADORES Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) Capítulo 3.4.3.4. ACCESO MEDIANTE RÁFAGAS. Con memoria no – entrelazada, el controlador de caché envía la dirección de búsquedaen el bus de direcciones durante la operación 1. Las direcciones sucesivas se consiguensumando 8 a la dirección actual. "! 0 2 ) ; $ El acceso mediante ráfagas considera que un dispositivo (memoria caché) genera ladirección base y otro dispostivo (memoria principal) las direcciones sucesivas.Alberto Suárez López Página 65
  66. 66. Universidad de OviedoESTRUCTURA DE LOS COMPUTADORES Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) Esta técnica se puede emplear análogamente para memoria principal entrelazada: " 0 ) / ; $Alberto Suárez López Página 66
  67. 67. Universidad de OviedoESTRUCTURA DE LOS COMPUTADORES Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) Capítulo 3.5. MEMORIA VIRTUAL. La memoria virtual nos permite proporcionar soporte a sistemas operativos multitarea. Capítulo 3.5.1. INTRODUCCIÓN. La memoria virtual permite utilizar el disco como un nivel adicional dentro de la jerarquíade memoria. Una de sus características fundamentales es que permite ampliar la capacidad dela memoria del sistema. Sin embargo, ésta es posiblemente la funcionalidad menos importante. " & &<Alberto Suárez López Página 67
  68. 68. Universidad de OviedoESTRUCTURA DE LOS COMPUTADORES Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) Los programas que se ejecutan sobre sistemas operativos multitarea trabajanexclusivamente con direcciones lógicas. Estas direcciones virtuales se convierten a direccionesfísicas que son las que llegan al sistema de memoria. Esta conversión se llevará a cabo en laMMU (Memory manadgement unit). " / %& 00: $< % & / El conjunto de todas las direcciones virtuales posible es lo que se define como espaciode direcciones lógicas o virtuales. Estas direcciones lógicas que llegan a la MMU sonconvertirdas en direcciones reales o físicas. El conjunto de todas las direcciones físicas sedenomina espacio de direcciones reales o físicas. Estas direcciones reales son las que lleganal sistema de memoria.Alberto Suárez López Página 68
  69. 69. Universidad de OviedoESTRUCTURA DE LOS COMPUTADORES Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) Cada tarea tiene su propio espacio de direcciones lógicas; sin embargo, solo existe unúnico espacio de direcciones lógicas para todo el sistema. " En los sistemas con arquitectura IA – 32 se utilizan dos MMU´s: una encargada de lasegmentación y otra de la paginación. Por otro lado, para realizar la conversión de dirección virtual a dirección física se disponede una tabla asociada a cada tarea y empleada por la MMU. " ,/Alberto Suárez López Página 69

×