142
Universidad de Oviedo ESTRUCTURA DE LOS COMPUTADORES Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) Alberto Suárez López Página 1 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 “Fundamentos de Computadores” (1º curso de I.T.Informática de Gestión y Sistemas) y el computador real son, 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ón de sistemas operativos multitarea sobre la CPU.

109154402 estructura-computadores

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: 109154402 estructura-computadores

Universidad de Oviedo ESTRUCTURA DE LOS COMPUTADORES

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 1

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 “Fundamentos

de Computadores” (1º curso de I.T.Informática de Gestión y Sistemas) y el computador real son, 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ón

de sistemas operativos multitarea sobre la CPU.

Page 2: 109154402 estructura-computadores

Universidad de Oviedo ESTRUCTURA DE LOS COMPUTADORES

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 2

Capítulo 1.2. INTRODUCCIÓN A LOS SISTEMAS OPERATIVOS MULTITAREA. Un usuario no trabaja con una máquina desnuda; sino con un sistema operativo

corriendo sobre dicha máquina. Definición: Máquina virtual: El hardware más el sistema operativo definen una máquina virtual, sobre la que

trabajamos. 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 la

máquina virtual. Definición: Sistema operativo multitarea: Prácticamente todos los sistemas operativos actuales son multitarea, es decir, permiten

ejecutar varias aplicaciones de manera concurrente. Por otra parte, el sistema operativo no deja de ser un programa encargado de la gestión

de 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 hardware llamará 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 la

máquina, determinando que tarea pasará a ejecutarse a continuación, es decir, el sistema operativo sobrecarga la CPU.

En el momento en que una tarea deja de ejecutarse y entra el sistema operativo en la

CPU se produce una transferencia de control.

Page 3: 109154402 estructura-computadores

Universidad de Oviedo ESTRUCTURA DE LOS COMPUTADORES

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 3

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 obtener

servicios por parte del operativo. Por ejemplo, cuando una tarea abre un archivo se invoca un servicio de la API del sistema operativo.

Hay dos tipos de instrucciones relacionadas con las llamadas a servicios del sistema

operativo (funciones de la API): • syscall • sysret La instrucción syscall es la instrucción de llamada a un servicio y sysret, la instrucción

de 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 la instrucción siguiente a syscall.

La transferencia de control la realiza la tarea que invocó la llamada al servicio.

�����������������������������������������������������

Page 4: 109154402 estructura-computadores

Universidad de Oviedo ESTRUCTURA DE LOS COMPUTADORES

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 4

Capítulo 1.2.2. INTERRUPCIONES. Las interrupciones permiten “avisar” a la CPU cuando un evento está disponible. Por

ejemplo, 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 a

continuación se transfiere el control a un manejador o rutina de tratamiento de interrupción, que forma parte del sistema operativo.

Cuando se termina de ejecutar la rutina (instrucción sysret) se transfiere el control a la

instrucció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.

������������������������

Page 5: 109154402 estructura-computadores

Universidad de Oviedo ESTRUCTURA DE LOS COMPUTADORES

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 5

Capítulo 1.2.3. EXCEPCIONES. El objetivo de las excepciones es transferir el control al sistema operativo cuando ocurre

una situación anómala durante la ejecución de una instrucción. Por ejemplo, una división por cero.

Cuando ocurre una excepción se transfiere el control a una rutina de tratamiento de

excepció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ón

anómala.

���������������������

Page 6: 109154402 estructura-computadores

Universidad de Oviedo ESTRUCTURA DE LOS COMPUTADORES

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 6

En ultimo lugar cabe descatar los siguientes puntos relacionados con las llamadas a servicios, 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.

Page 7: 109154402 estructura-computadores

Universidad de Oviedo ESTRUCTURA DE LOS COMPUTADORES

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 7

Capítulo 2. LA CPU. Vamos a estudiar las técnicas empleadas en las CPU´s reales para mejorar el

rendimiento y soportar sistemas operativos multitarea. Capítulo 2.1. SOPORTE A LOS SISTEMAS OPERATIVOS MULTITAREA. Para que un computador soporte sistemas operativos multitarea necesita hardware

especí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? Para

responder a esta pregunta, partiremos de la CPU teórica e implementaremos un pequeño sistema operativo multitarea sobre esta CPU teórica, buscando a continuación los problemas encontrados. 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) apunta

a una instrucción de dicha tarea así como el registro puntero de pila (SP) apunta a la cabeza de su pila. Los registros de propósito general tienen los valores correspondientes a dicha tarea (estado de la tarea).

����������������������������������������������������������� ������������������!�

Page 8: 109154402 estructura-computadores

Universidad de Oviedo ESTRUCTURA DE LOS COMPUTADORES

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 8

A continuación, se produce una interrupción y se produce una transferencia de control entre la tarea 0 y el sistema operativo. Cuando se produce una interrupción se guarda inmediatamente el PC y el registro de estado (SR) en la pila de la tarea activa y se produce un salto incondiconal a la primera instrucción de la rutina de tratamiento de la interrupción. Esta rutina pertenece, obviamente, al sistema operativo.

����������"���������������������������

����������#����������$���������������������������������%�&���� ������������������������������

Page 9: 109154402 estructura-computadores

Universidad de Oviedo ESTRUCTURA DE LOS COMPUTADORES

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 9

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 de transferir el control) y conmuta la pila para que la pila utilizada sea la del sistema operativo y no la de la tarea. Esta conmutación se traduce en un cambio en el valor del registro SP.

����������'����������������������������������������������������������������������������

����������(��������������������������������!��������������������

Page 10: 109154402 estructura-computadores

Universidad de Oviedo ESTRUCTURA DE LOS COMPUTADORES

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 10

Finalizada la rutina de tratamiento de la interrupción se realiza una planificación de tareas, para lo cual se produce una llamada a un procedimiento. Esta llamada conlleva almacenar el estado de la CPU dentro de la pila activa (la pila del sistema operativo) y situar el PC en la primera instrucción del procedimiento.

���������� !���������)����������$���������������

Page 11: 109154402 estructura-computadores

Universidad de Oviedo ESTRUCTURA DE LOS COMPUTADORES

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 11

Finalizado el procedimiento de planificación se determina que la próxima tarea a ejecutarse sea la tarea 1. De este modo, el sistema operativo debe ceder el control a la tarea tras 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ón de la pila, dejando de utilizarse la del sistema operativo para pasar a emplearse la de la tarea 1.

���������� ��*���)�����������$�����������������&��������������������� ��������������������

A continuación se ejecuta la instrucción IRET de tal modo que se devuelve el control a la tarea 1. Así, el PC, SR y los registros de propósito general tienen los valores que tenía la tarea 1 justo donde había sido interrumpida por última vez.

���������� ���������������������������������������������������������������������������� �

Page 12: 109154402 estructura-computadores

Universidad de Oviedo ESTRUCTURA DE LOS COMPUTADORES

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 12

���������� ������� �������������������+�,�&���������������������������������� �

En último lugar, el temporizador genera una nueva interrupción. Se salva el valor de SR

y PC en la pila de la tarea y se transfiere el control al sistema operativo, repitiéndose el ciclo anterior.

Visto el funcionamiento de este sistema operativo teórico vamos a determinar las

deficiencias 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 tal

modo que dicha tarea monopolice el uso de la CPU, estando está indefinidamente efecutándose y evitando que se transfiera el control al sistema operativo a menos que se invoque 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 ser

independientes entre si. Deficiencia 4: Cada vez que se produce una interrupción durante la ejecución de una tarea se guarda

en la pila de la tarea el valor de SR y PC, de tal modo que una tarea malintencionada podría producir el cuelgue del sistema o tomar el control total de la máquina modificando dichos valores.

Page 13: 109154402 estructura-computadores

Universidad de Oviedo ESTRUCTURA DE LOS COMPUTADORES

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 13

Deficiencia 5: La CPU teórica no soporta excepciones. Estas excepciones son necesarias para

informar de situaciones anómalas: se intenta ejecutar una instrucción inválida, errores aritméticos, se intenta acceder a una dirección inválida, etc.

Vistas las deficiencias anteriores, vamos a proporcionar soluciones a cada una de estas

deficiencias. Cada una de estas soluciones nos va a indicar la funcionalidad que debemos incluir 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 ser ejecutadas por el sistema operativo.

Para implementar esta solución se añade un bit al registro de estado que indica el nivel

de privilegios. Por ejemplo, el sistema operativo tendrá el valor 0 (máxima prioridad) y una tarea, el nivel 1 (mínima prioridad). Así, si una tarea se está ejecutando e intenta ejecutar una instrucció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 a

direcciones del sistema operativo definimos una tabla con los rangos de direcciones asignados al sistema operativo. De tal modo que, al intentar acceder a una dirección, se comprueba previamente 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 a

direcciones de otras taras definimos una tabla con los rangos de direcciones asignados a cada tarea de tal modo que una tarea sólo podrá acceder a direcciones de su rango, comprobándose al 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 en

una estructura de datos del sistema operativo. Así, algunas CPU´s incorporan dos registros para almacenar los valores temporales del

estado y el contador de programa. De este modo, cuando se produce una interupción se salvan en estos registros los valores de SR y PC. El sistema operativo conmuta el valor de la pila paa que apunte a la pila del mismo y a continuación salvar el estado de la tarea en la pila del sistema operativo. Esta solución la implementan arquitecturas como PowerPC y MIPS64.

Por otra parte, IA – 32, cuando se produce una interrupción se conmuta inmediatamente

la pila de la tarea a la pila del sistema operativo. Este proceso es automático. A continuación se salva 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 casos

se ejecuta una rutina. Así, dentro de la tabla de vectores de interrupción hay direcciones reservadas a las excepciones y con posiciones prefijadas.

Page 14: 109154402 estructura-computadores

Universidad de Oviedo ESTRUCTURA DE LOS COMPUTADORES

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 14

Ejercicio: La CPU teórica no soporta sistemas operativos multitarea, entre otras cosas, debido a

que cada vez que se produce una interrupción durante la ejecución de una tarea se guarda automáticamente en la pila de la tarea el valor de los registros de estado y contador de programa.

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.

Page 15: 109154402 estructura-computadores

Universidad de Oviedo ESTRUCTURA DE LOS COMPUTADORES

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 15

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 de ejecución de instrucciones. En la CPU, la ejecución de cada instrucción requería un determinado número de ciclos de reloj. Cada uno de estos ciclos tiene una longitud constante y

recibe 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 aumentar

la 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 menor

separación entre éstos y así se incrementa la velocidad. Este incremento de velocidad repercute 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 estructura

interna 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 de

cualquier instrucción en etapas que funcionan en paralelo. Vamos a suponer que hemos rediseñado la estructura interna de la CPU teórica de tal

modo 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.

���������� ���-�����������������$�� ������ �������������������������������

Page 16: 109154402 estructura-computadores

Universidad de Oviedo ESTRUCTURA DE LOS COMPUTADORES

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 16

Buscamos la instrucción ADD R4, R3, R2 y transcurridos los ����� se ejecutará la instricción. Este proceso requerirá en total de ���� (búsqueda y ejecución) para la ejecución completa de una instrucción. Así, en ��� se

ejecutarán ������ ����������

����� �����

����

�����

����� �����

����

��� ��

== .

Esta implementación desperdicia recursos ya que en cada etapa uno de los dos

componentes (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 el objetivo de la segmentación. Un símil a este problema puede ser una cadena de montaje de coches.

Ahora vamos a ejecutar en paralelo el conjunto de instrucciones anteriores.

���������� ���-�����������������$�� ������ ���������������������������������

Bucamos la instrucción ADD R4, R3, R2 y transcurridos los ����� se ejecutará la

instrucción y además la etapa de búsqueda buscará la siguiente instrucción a ejecutar (SUB R2, 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 ejecutar

una 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 un factor 10.

Las CPU´s de propósito general, en relación con el supuesto anterior, dividen la

ejecución de instruccioes en 8 – 30 etapas.

Page 17: 109154402 estructura-computadores

Universidad de Oviedo ESTRUCTURA DE LOS COMPUTADORES

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 17

En cuanto a los problemas que plantea la segmentación de instrucciones podemos encontrarnos con casos en los que se “rompa” la ejecución paralela de instrucciones cuando se intente acceder simultáneamente a un mismo recurso (por ejemplo, a la memoria para leer la siguiente 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] y

buscar la instrucción siguiente, AND R3, R4, R5. Para solucionar este problema, las CPU´s de propósito general no acceden directamente a la memoria sino que trabajan con una memoria caché de nivel 1 (L1). Esta memoria caché esta dividida en dos partes, una para código y otra para 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 IV

Prescott utiliza una segmentación con 31 etapas. Por otra parte, AMD, en el Athlon 64, utiliza 14 etapas pero en cada etapa se “hacen más cosas”. Con esto también se reduce el calor disipado 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ás

de una instrucción al aumentar el número de unidades funcionales de la CPU (más de una ALU, 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 varias

instrucciones se denominan multiescalares. El extremo de la replicación es tener dos CPU´s completas sobre un mismo circuito

impreso (Dual core CPU). Por otra parte, Intel incorpora la característica del multihilo (hyperthreading).

Page 18: 109154402 estructura-computadores

Universidad de Oviedo ESTRUCTURA DE LOS COMPUTADORES

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 18

Ejercicio: Se ha construido un CPU que requere 4 ciclos (periodos de reloj) para ejecutar cualquier

instrucción. Tras probar diferentes periodos de reloj se comprueba que el periodo mínimo con el 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 la

notablemente la frecuencia de reloj de la CPU, el número de instrucciones que puede ejecutar por 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 las

instrucciones en 20 etapas, cada una de las cuales requiere un ciclo de reloj. Se han hecho pruebas haciendo que las 20 etapas trabajen en modo no segmentado (em este modo no hay paralelismo en en la ejecución, pues en cada ciclo sólo hay una etapa activa) y se comprueba que 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 la

té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?

������

������ ������������

�����

����� ��������

������

������������� �� = "

Page 19: 109154402 estructura-computadores

Universidad de Oviedo ESTRUCTURA DE LOS COMPUTADORES

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 19

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, juegos

de instrucciones, …). Cada uno de los fabricantes mencionados anteriormente proporcionan la misma 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 OPERATIVOS

MULTITAREA. Vamos a estudiar los aspectos más relevantes de la arquitectura IA – 32 y cómo éstos

posibilitan 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 de

operación es por motivos de compatibilidad. Cada vez que una CPU con arquitectura IA – 32 arranca lo hace en modo y real y al ejecutar una determinada instrucción, generalmente por parte del sistema operativo, se pasa a modo protegido.

Dentro del modo protegido existe el modo real virtual que permite emular a varias

arquitecturas 8086. Por ejemplo, dentro de los sistemas operativos Windows actuales, emular varias terminales de MS – DOS.

El modo de gestión es un modo de la CPU en el que ésta entra cuando se producen

determinadas interrupciones especiales. En cuyo caso se salva el contexto de la CPU, se ejecuta una rutina de tratamiento de la interrupción y al finalizar, se restaura el contexto continuando como si nada hubiera sucedido. La CPU entrará en este modo, por ejemplo, al recibir interrupciones relacionadas con la gestión de energía.

A partir de este punto, vamos a centrarnos siempre en el modo protegido.

Page 20: 109154402 estructura-computadores

Universidad de Oviedo ESTRUCTURA DE LOS COMPUTADORES

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 20

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 datos

o 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 seleccionar un 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 la

CPU 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.

Page 21: 109154402 estructura-computadores

Universidad de Oviedo ESTRUCTURA DE LOS COMPUTADORES

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 21

Capítulo 2.3.2.3. MODELO DE MEMORIA. En la CPU teórica disponíamos de un único espacio de direcciones (ED). En la

arquitectura 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 direcciones

que 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ón lógica. Por ejemplo, MOV EAX, [etiqueta].

Una dirección lógica consta de un selector (16 bits) y un desplazamiento (32 bits), por

tanto, 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 de

segmentación. Posteriormente, la dirección linea será traduce en una dirección real mediante un mecanismo de paginación. Tanto el mecanismo de segmentación como de paginación son componentes hardware de la CPU. Por otra parte, el mecanismo de segmencación no se puede desconectar pero sí el de paginación, en cuyo caso, la dirección física coincidirá con la dirección lineal.

Las direcciones físicas son equivalentes a las direcciones con las que trabajábamos en

la CPU teórica. Las direcciones lineales son aquellas direcciones que llegan al mecanismo de

paginación.

���������� #��0������������������������&����������1�2���

Page 22: 109154402 estructura-computadores

Universidad de Oviedo ESTRUCTURA DE LOS COMPUTADORES

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 22

Las direcciones lógicas pueden interpretarse como un conjunto de espacios de direcciones lineales independientes divididos en segmentos. Cada uno de estos segmentos está definido por un selector. Cada selector hace referencia a un descriptor de segmento que nos dice cual es el tamaño del mismo y su dirección de origen. El descriptor de segmento consta 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 de

comienzo de la tabla global y el LDTR, la dirección lineal de comienzo de la tabla local. Cada una de estas tablas tiene ����� = descriptores.

Cualquier acceso a memoria requiere convertir una dirección local a lineal utilizando el

descriptor de segmento, que también se encuentra en memoria. Este proceso sobrecarga el sistema, disminuyendo el rendimiento.

Para solucionar este problema se utilizan unos registros especiales, invisibles al

programador, denominados registros sombra y que se utilizan para almacenar descriptores de segmento.

Page 23: 109154402 estructura-computadores

Universidad de Oviedo ESTRUCTURA DE LOS COMPUTADORES

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 23

Cada vez que se carga un nuevo valor en el registro de segmento, la CPU lee el descriptor de segmento asociado y lo almacena en su registro sombra. Estos valores generalmente sólo son necesarios inicializarlos en el momento en que se ejecuta una tarea y suelen ser constantes durante dicha ejecución.

Vamos a ver ahora cómo las instrucciones de ensamblador trabajan con direcciones

ló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 el

desplazamiento y CS, el selector.

���������� (��3��������������������������������/��&����������������

Para el acceso a datos estáticos, por ejemplo, MOV EAX, [EDX], el registro EDX

proporciona el desplazamiento y DS, el selector.

�����������!��3����������������������������������������������������������

Page 24: 109154402 estructura-computadores

Universidad de Oviedo ESTRUCTURA DE LOS COMPUTADORES

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 24

En último lugar, para el acceso a datos dinámicos, por ejemplo, POP EAX, el registro ESP 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 mecanismo

complejo 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 la segmentación transparente al usuario. La segmentación lo único que presenta son inconvenientes y ninguna ventaja notable frente a la paginación, por lo que este mecanismo no se utiliza.

Sin embargo, el mecanismo de segmentación no se puede desactivar por lo que se opta

por reducirlo a su mínima expresión configurando la tabla de descriptores de modo que la direcció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 la

dirección base 0000 0000h y con un tamaño de 4 Gb. Como consecuencia al “desactivar” la segmentación desaparece la protección que

ofrecia dicho mecanismo. La protección, con el modelo de memoria plano, la proporcionará en este caso, la paginación.

Page 25: 109154402 estructura-computadores

Universidad de Oviedo ESTRUCTURA DE LOS COMPUTADORES

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 25

Capítulo 2.3.2.4. NIVELES DE PRIVILEGIO. Los niveles de privilegio permiten definir qué instrucciones puede ejecutar el sistema

operativo 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 sistemas operativos 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 con dos 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 le

denomina CPL (current privilegde level) y es donde se almacena el nivel de privilegios de ejecución actual.

El campo DPL forma parte del atributo de un descriptor e indica el nivel de privilegio del

segmento, es decir, indica el nivel de privilegio que debe tener la tarea para que pueda acceder a este segmento.

La arquitectura IA – 32 tiene un espacio de direcciones entrada / salida de 4 Kbytes cuyo

objetivo era ubicar las interfaces de los dispostivos de E/S. Para trabajar con este espacio de direcciones 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 espacio

de direcciones de E/S es necesario tener un privilegio mínimo indicado por el campo IOPL. En la práctica, este campo tendrá el valor 00h (nivel 0) y el campo CPL también será 0 para poder ejecutar 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 protege mediante el campo IOPL. Sin embargo, este espacio de direcciones en la práctica sólo se utiliza para interfaces heredadas (por ejemplo, para el puerto serie).

Page 26: 109154402 estructura-computadores

Universidad de Oviedo ESTRUCTURA DE LOS COMPUTADORES

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 26

Descritos los campos marcados con niveles de privilegio vamos a destacar varios puntos relativos 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 llama

a un servicio, se produce una interrupción o una excepción. Esta transferencia se realiza a través de un manejador. En la arquitectura IA – 32 disponemos de una tabla de descriptores de interrupción ó IDT (interruption descriptor table). Cada entrada de dicha tabla recibe el nombre de puerta y son unos descriptores “especiales”.

La tabla de descriptores de interrupción no comienza una dirección fija sino que lo hace

en la dirección lineal a la que apunta el registro IDTR. Este registro además almacena el tamaño de la tabla IDT.

��������������,�/������������������������������

Page 27: 109154402 estructura-computadores

Universidad de Oviedo ESTRUCTURA DE LOS COMPUTADORES

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 27

Cada puerta tiene un tamaño de 8 bytes y el tamaño máximo de la tabla es de 256 entradas. Cada puerta contiene un selector y un desplazamiento que indican la dirección lógica del manejador. Además, tiene un tercer campo, que son atributos utilizados para definir el tipo de puerta y su nivel de privilegio ya que existen servicios a los que sólo puede llamar el propio sistema operativo y servicios que “exporta” a las tareas. En cuanto a los tipos de puertas distinguimos:

• Task gates. Puertas de tarea. • Interrupt gates. Se utilizan para llamadas al sistema e interrupciones. • Trap gates. Se utilizan para las excepciones.

��������������,�/�������������������������������4�7,5����8 ���9�

La diferencia fundamental entre llamadas a servicios, interrupciones y excepciones es la

manera de generar el número de interrupción, como se vio anteriormente (Capítulo 1.2. Introducción a los sitemas opertativos multitarea).

Page 28: 109154402 estructura-computadores

Universidad de Oviedo ESTRUCTURA DE LOS COMPUTADORES

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 28

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. Por

ejemplo, en Windows: INT 2Eh. Capítulo 2.3.2.7. INTERRUPCIONES. Las interrupciones son generadas por las interfaces de los periféricos para solicitar la

atención de la CPU. A través de las líneas LINT del APIC se genera la interrupción y proporciona a la CPU el número de interrupción. Cuando no existe APIC o no está programado las líneas LINT funcionan como entradas INTR o NMI. INTR es una línea de petició de interrupción mascarable que significa que la interrupción pueda estar inhabilitada a través del registro 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 cuando

la CPU detecta una situación anómala. En la arquitectura IA – 32 existen los siguientes tipos de excepciones:

• Fallos (fault) • Abortos (abort) • Trampas (trap) Los fallos señalizan errores no – catastróficos durante la ejecución de instrucciones, es

decir, son errores que no afectan a la integridad del sistema. En la arquitectura IA – 32 distinguimos:

• 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.

��������������*�������������/��

Page 29: 109154402 estructura-computadores

Universidad de Oviedo ESTRUCTURA DE LOS COMPUTADORES

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 29

�����������"��*��������2���������/��

Las excepciones de tipo aborto se utiliza para indicar fallos catastróficos. Por ejemplo: se

corrompen las tablas del sistema, como la IDT. Cuando ocurren este tipo de excepciones, el sistema operativo, mediante el manejador de la excepción, lleva a cabo un cierre controlado del sistema.

�����������#��1/����

Las excepciones de tipo trampa se emplean para transferir el control de la ejecución a

rutinas de depuración. Cuando está habilitado el modo traza, justo después de terminar la ejecución de una instrucción se produce una excepción de tipo trampa. Para que se generen estas excepciones es necesario que el bit TF del registro EFLAGS esté habilitado. Por otra parte, justo después de entrar en la rutina se deshabilitan los bits TF e IF durante un breve intervalo de tiempo. Después de la ejecución de la rutina de tratamiento se ejecutará la siguiente instrucción a la que estaba en curso antes de generarse la excepción.

Page 30: 109154402 estructura-computadores

Universidad de Oviedo ESTRUCTURA DE LOS COMPUTADORES

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 30

�����������'��,�����

Capítulo 2.3.2.9. SECUENCIA DE PASOS DURANTE LA TRANSFERENCIA DE CONTROL. (En apuntes)

Page 31: 109154402 estructura-computadores

Universidad de Oviedo ESTRUCTURA DE LOS COMPUTADORES

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 31

Capítulo 3. LA JERARQUÍA DE MEMORIA. Vamos a estudiar los cambios que tendrá que sufrir la jerarquía de memoria para dar

soporte 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 mayor cantidad de datos y código; y de la mayor velocidad posible. Por ejemplo, en instrucciones de la CPU teórica como MOV [R3], R5 o MOV R3, [R5] se producían ciclos de espera ya que la memoria es más lenta que el procesador. En este sentido, el objetivo que planteamos es conseguir que la jerarquía de memoria sea lo más rápida posible para evitar los ciclos de espera descritos.

Definición: Influencia de la velocidad de la memoria: La velocidad de la memoria influye en el rendimiento del sistema de acuerdo a la

siguiente 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��$�������������������������������-.:�;����������

Page 32: 109154402 estructura-computadores

Universidad de Oviedo ESTRUCTURA DE LOS COMPUTADORES

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 32

Vemos como en principio es necesario aumentar el rendimiento de la memoria, para lo cual 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 la

RAM 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 en relació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. La

solución es combinar todas las soluciones anteriores en o que se denomina jerarquía de memoria.

Page 33: 109154402 estructura-computadores

Universidad de Oviedo ESTRUCTURA DE LOS COMPUTADORES

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 33

Capítulo 3.2. CONCEPTO DE LA JERARQUÍA DE MEMORIA. Como vimos anteriormente, buscamos un sistema de memoria con alta capacidad y alta

velocidad, así como, con un bajo coste. Sin embargo, ninguna de las tecnologías anteriores satisface por sí sola estos requisitos. La solución consiste en combinar todas las tecnologías de tal modo que una tecnología rápida se utilice para almacenar datos usados frecuentemente y una tecnología lenta, para datos usados menos frecuentemente. Para conseguir esto necesitamos conocer a priori los datos que tendrán una mayor probabilidad de acceso futuro para poder ser almacenados en memorias rápidas. Además estos datos deberán ser pocos y de 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 de

memoria próxima. Por ejemplo: ejecución secuencial de instrucciones o ejecución de bucles en el 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 se ejecutarán en periodos de tiempo muy pequeños o proximidad espacial, cuando los datos se encuentran en direcciones próximas o consecutivas en la memoria.

����������� ��=����&�<�����������

Page 34: 109154402 estructura-computadores

Universidad de Oviedo ESTRUCTURA DE LOS COMPUTADORES

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 34

Capítulo 3.3. LA MEMORIA CACHÉ. Vamos a estudiar la jerarquía de memoria partiendo desde el nivel más cercano a la

CPU: la memoria caché. Estudiaremos la memoria caché desde tres puntos de vista: su funcionamiento, la comunicación con la memoria principal y su implementación en la arquitectura 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 utilizando

tecnología SRAM. Esta memoria se organiza en bloques, todos del mismo tamaño. Cuando la CPU intenta acceder a una dirección de memoria se comprueba si está cacheada, es decir, si está 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 memoria principal que contiene dicha dirección se copia en un bloque libre de la memoria caché. Estos bloques 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.

Page 35: 109154402 estructura-computadores

Universidad de Oviedo ESTRUCTURA DE LOS COMPUTADORES

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 35

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 de

los 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 un fallo de caché que producirá que se tenga que servir el bloque correspondiente desde la memoria 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é y

halla 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 cuenta

problemas 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 memoria

principal. 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ón

anterior quedaría: ( ) ( )�.! ����! ����� � ���/��'��� �)*���/��'� =

Así, el bloque de caché se obtiene de los � bits menos significativos que identifican el

bloque de memoria principal. Con este planteamiento va a haber muchos bloques de memoria principal que tienen

asignados el mismo bloque de memoria caché. ¿Cómo podemos saber qué bloque de memoria está cacheado? El bloque de memoria principal que está cacheado en cada momento dentro de un bloque de memoria caché se conoce a través de su campo etiqueta. Cada bloque de caché incorpora celdas de almacenamiento adicionales que almacenan la etiqueta.

Page 36: 109154402 estructura-computadores

Universidad de Oviedo ESTRUCTURA DE LOS COMPUTADORES

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 36

����������������&����������������������>?��������������������������

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.

Page 37: 109154402 estructura-computadores

Universidad de Oviedo ESTRUCTURA DE LOS COMPUTADORES

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 37

Vamos a estudiar ahora el funcionamiento de una memoria caché de correspondencia directa. Partimos de una memoria caché vacía, es decir, con todos sus bits de validez a 0.

��������������������������������������>?���������<�

Page 38: 109154402 estructura-computadores

Universidad de Oviedo ESTRUCTURA DE LOS COMPUTADORES

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 38

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é. Sin embargo, dicha dirección no está cacheada y se produce un fallo de caché.

��������������1��>����� ������������ ����������/��� ����������! !! !���������������$��������

���>?

Page 39: 109154402 estructura-computadores

Universidad de Oviedo ESTRUCTURA DE LOS COMPUTADORES

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 39

A continuación copiamos el bloque de memoria principal que contiene a la dirección especificada sobre el bloque de caché, actualizando el valor de la etiqueta de bloque así como su bit de validez, que pasará a ser 1. Ahora la memoria caché puede servir a la CPU el contenido de la dirección especificada.

�����������"��������������/��&������������������;���������������������������������������-.:

Page 40: 109154402 estructura-computadores

Universidad de Oviedo ESTRUCTURA DE LOS COMPUTADORES

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 40

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 etiqueta coincide por lo que se sirve el contenido de la dirección a la CPU.

�����������#�����������������������������������! !! ������-.:

Page 41: 109154402 estructura-computadores

Universidad de Oviedo ESTRUCTURA DE LOS COMPUTADORES

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 41

En una posterior lectura, intentamos acceder a la dirección 01010000. Esta dirección se deberá encontrar en el bloque 4 de la caché. Sin embargo, su bit de validez es 0 por lo que se produce un fallo de caché.

�����������'��1������������������������������! ! !!!!���������������$�����������>?

Page 42: 109154402 estructura-computadores

Universidad de Oviedo ESTRUCTURA DE LOS COMPUTADORES

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 42

Se copia el bloque en el que se encuentra la dirección especificada de la memoria principal al bloque correspondiente de la caché y se sirve el contenido de la dirección a la CPU.

�����������(��������������/��&���������������������;�������������������������������������

Page 43: 109154402 estructura-computadores

Universidad de Oviedo ESTRUCTURA DE LOS COMPUTADORES

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 43

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 de validez de dicho bloque es 1 pero las etiquetas de la dirección y el bloque no coinciden, por lo que nuevamente se produce un fallo de caché.

�����������!����������������$�����������>?�����������������������������������&�����

Page 44: 109154402 estructura-computadores

Universidad de Oviedo ESTRUCTURA DE LOS COMPUTADORES

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 44

Nuevamente, se carga en el bloque correspondiente de la caché el bloque de memoria principal en el que se encuentra la dirección especificada y se sirve el contenido de la misma a la CPU.

����������� ��������������/��&���������������������������>?�;��������������-.:�������������������

������������$����

Page 45: 109154402 estructura-computadores

Universidad de Oviedo ESTRUCTURA DE LOS COMPUTADORES

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 45

Capítulo 3.3.2.2. CORRESPONDENCIA (TOTALMENTE) ASOCIATIVA. La estrategia de correspondencia directa produce muchos fallos de caché. La estrategia

de correspondencia (totalmente) asociativa permite que cada bloque de memoria principal pueda ir a cualquier bloque de memoria caché. Con esta correspondencia, la etiqueta coincide con el bloque de memoria principal.

Teóricamente, esta correspondencia es la más eficiente ya que produce el menor

número de fallo de caché, sin embargo, su circuitería de control es muy costosa, por lo que en la práctica no se aplica.

����������������&���������������������>?��������������������4����������5���������

Page 46: 109154402 estructura-computadores

Universidad de Oviedo ESTRUCTURA DE LOS COMPUTADORES

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 46

Capítulo 3.3.2.3. CORRESPONDENCIA ASOCIATIVA POR CONJUNTOS. En la correspondencia directa se producían numerosos fallos de caché y en la

correspondencia (totalmente) asociativa, su circuitería de control era muy costosa. En la correspondencia asociativa por conjuntos se opta por un término medio, de modo que la memoria caché se organiza en conjuntos del mismo tamaño formado por un numero determinado de bloques de caché, denominado número de vías. La idea es que cada bloque de memoria principal pueda ir a un único conjunto pero dentro de este conjunto pueda ir a cualquiera de sus bloques.

���������� ���� ���������� ���>?� ��������)�� ��� ��� �������-����/��&���������������������

��������������������� ����������������������������� �������������������&������������/��&���

Los bits menos significativos del bloque de memoria principal proporcionan el conjunto y

los restantes bits, la etiqueta.

Page 47: 109154402 estructura-computadores

Universidad de Oviedo ESTRUCTURA DE LOS COMPUTADORES

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 47

����������������&����������������������>?������������������������������������ �����

La estrategia de correspondencia por conjuntos es una estrategia genérica en el sentido

de que la estrategia de correspondencia directa es una estrategia de correspondencia por conjuntos 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 único conjunto.

Page 48: 109154402 estructura-computadores

Universidad de Oviedo ESTRUCTURA DE LOS COMPUTADORES

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 48

Capítulo 3.3.3. ESTRATEGIAS DE REEMPLAZO. Cada vez que se produce un fallo de caché se copia un bloque de memoria principal a

memoria caché; bloque que contiene la dirección a la que se intenta acceder. El bloque de memoria caché en el que se almacenará depende, entre otras cosas, de la estrategia de reemplazo. Esta estrategia indica qué bloque de memoria caché hay que reemplazar cuando se produce un fallo de caché y hay varios bloques de caché “candidatos”. Hay que tener en cuenta 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 dos

estrategias: • LRU (Least Recent Used) • Aleatoria El algoritmo LRU reemplaza aquel bloque que menos ha sido usado recientemente. Para

lograr esto, la memoria caché añade a los bloques un campo en el que se almacena información referida a la frecuencia de acceso.

El algoritmo aleatorio, como su nombre indica, selecciona el bloque a reemplazar de

manera 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 es

necesario mantener la coherencia entre la memoria principal y la memoria caché. Para dar solució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 CPU

escribe un dato, este dato se escribe tanto en memoria caché como en memoria principal. El principal inconveniente de esta estrategia es la disminución drástica del rendimiento del sistema al realizar continuas escrituras sobre memoria principal.

La estrategia de escritura diferida o write – back consiste en que, cada vez que la CPU

escribe un dato en memoria este dato sólo se escribirá en memoria caché y migrará a memoria principal cuando el bloque de caché sea reemplazado. Con esta estrategia de escritura es necesario añadir un bit adicional a cada bloque de caché denominado bit dirty de tal modo que, cada vez que la CPU escribe un dato en memoria, el bit dirty se activa; y cuando se tenga que reemplazar dicho bloque, previamente tendrá que ser sincronizado con el bloque correspondiente de memoria principal, tras lo cual el bit dirty se desactivará.

Page 49: 109154402 estructura-computadores

Universidad de Oviedo ESTRUCTURA DE LOS COMPUTADORES

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 49

Vamos a ilustrar el funcionamiento de esta estrategia de escritura. Para lo cual partimos de una memoria principal y una memoria caché en el estado inicial:

�����������������������������������������������;�����������������>?

Page 50: 109154402 estructura-computadores

Universidad de Oviedo ESTRUCTURA DE LOS COMPUTADORES

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 50

A continuación se recibe una petición de escritura sobre la dirección 01001101 en la que se intentará escribir el dato FFh. Vemos como la dirección se pertenece al bloque 3 y puesto que el campo etiqueta del bloque 3 y de la dirección 01001101 coinciden y el bit de validez es 1, el bloque de memoria principal en el que se encuentra la dirección referenciada se encuentra actualmente cacheada, por lo que se escribe el dato correspondiente en dicho bloque y a continuación se marca como sucio.

���������� �"�� ����/���� ��� ����� ��� ��� ������� �����$����%� ��������� ��� /��&���

������������������������

Page 51: 109154402 estructura-computadores

Universidad de Oviedo ESTRUCTURA DE LOS COMPUTADORES

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 51

Posteriormente se recibe una petición de lectura sobre la dirección 11101110. Esta dirección produce un fallo de caché ya que no coinciden las etiquetas de la dirección y del bloque asociado a la misma (nuevamente, el bloque 3).

���������� �#�� ������������ ���$�������������� ��� �������� ����� ������������������������ �� ���

/��&������2����>�����

Page 52: 109154402 estructura-computadores

Universidad de Oviedo ESTRUCTURA DE LOS COMPUTADORES

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 52

Puesto que el bit dirty del bloque 3 se encontraba activado, se sava el contenido de dicho bloque en memoria principal.

�����������'���������������������������/��&���@����@������������������

Page 53: 109154402 estructura-computadores

Universidad de Oviedo ESTRUCTURA DE LOS COMPUTADORES

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 53

A continuación se trae de memoria principal el bloque que contiene la dirección referenciada anteriormente, desactivando el bit dirty y finalmente, devolviendo el contenido de la 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 la

CPU es el único elemento que accede a memoria, las estrategias de escritura descritas anteriormente solucionan el problema planteado inicialmente. Sin embargo, hay ciertos periféricos que pueden acceder a la memoria, de tal modo que estos periféricos pueden alterar el contenido de ciertas direcciones.

�����������!��1������������-.:%�����������$?�����������������������������������������������

��������������������

Si el bloque de memoria asociado a dichas direcciones está cacheado y la memoria

principal 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 direcciones

como no cacheables, en cuyo caso, cuando desde la CPU se haga referencia a una dirección perteneciente a un rango no cacheable, se leerá o escribirá directamente sobre la memoria

Page 54: 109154402 estructura-computadores

Universidad de Oviedo ESTRUCTURA DE LOS COMPUTADORES

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 54

principal. Esta solución, obviamente, sólo es viable si se aplica para rangos de memoria relativamente pequeños o de lo contrario, el rendimiento del sistema disminuirá al realizarse operaciones de lectura y escritura directamente sobre la memoria principal. Estas soluciones aparecen con dispositivos mapeados dentro del espacio de direcciones de la memoria principal.

Cuando el rango de direcciones es relativamente grande, es más eficiente utilizar

dispositivos con capacidad DMA (escritura directa sobre memoria). Este tipo de dispositivos tienen la “inteligencia” suficiente como para mover grandes rangos de memoria sin la mediación de la CPU, reduciendo la sobrecarga de la misma y por tanto, incrementando el rendimiento. Sin embargo, con esta solución surge el problema de la coherencia:

Por ejemplo, un dispositivo con capacidad DMA escribe en memoria sobre un bloque

previamente 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 de

escritura diferida. Si a continuación, la interfaz de un periférico con capacidad DMA lee un bloque de memoria principal cacheado antes de ser actualizado, leerá información no actualizada.

���������� � �� .��/����� ���� ������������ ��� ��� ��>������� ���� ����$����� ��� ���$?����� ����

���������701

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íneas de control y datos de la memoria principal de tal modo que, cuando un dispositivo con capacidad DMA accede a la memoria, se comprueba si la dirección que se modificó por la interfaz del dispositivo ha sido cacheada, en cuyo caso, se marcará como inválido el bloque correspondiente.

Por otra parte, si la interfaz de un periférico intenta acceder a una dirección

perteneciente 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 principal estará actualizada y posteriormente, el controlador de caché permitirá a la interfaz del periférico con capacidad DMA que continue con el acceso a memoria.

Vamos a estudiar ahora los distintos casos en los que podemos emplear la técnica de

snooping:

Page 55: 109154402 estructura-computadores

Universidad de Oviedo ESTRUCTURA DE LOS COMPUTADORES

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 55

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 de incoherencia 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 de incoherencia si la interfaz del periférico intenta leer una dirección de memoria principal perteneciente a un bloque de memoria cacheado y además modificado, es decir, su bit dirty está 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�/��A

Page 56: 109154402 estructura-computadores

Universidad de Oviedo ESTRUCTURA DE LOS COMPUTADORES

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 56

Si la interfaz de un periférico realiza una escritura en memoria principal y la memoria caché emplea una estrategia de escritura write – through, en este caso existe un problema de incoherencia si la interfaz del periférico intenta escribir sobre una dirección de memoria perteneciente a un bloque cacheado.

Problema: Si el periférico escribe en un bloque de memoria principal que se encuentra cacheado, el

bloque de la caché se convierte en obsoleto. Solución: Espionaje del bus (snooping) y marca el bloque como inválido.

���������������������������������$�)����������$?�����0 ���������>?���������������������������

9����2��>����>

Page 57: 109154402 estructura-computadores

Universidad de Oviedo ESTRUCTURA DE LOS COMPUTADORES

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 57

Si la interfaz de un periférico realiza una escritura en memoria principal y la memoria caché emplea una estrategia de escritura write – back, en este caso existe un problema de incoherencia si la interfaz del periférico intenta escribir sobre una dirección perteneciente a un bloque cacheado que puede incluso haber sido modificado previamente por la CPU, en cuyo caso, 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 dato

correspondiente.

���������������������������������$�)����������$?�����0 ���������>?���������������������������

9����2�/��A

Page 58: 109154402 estructura-computadores

Universidad de Oviedo ESTRUCTURA DE LOS COMPUTADORES

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 58

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 primeros

computadores que incluían memoria caché. Actualmente es frecuente tener cachés de varios niveles (caché de nivel L1, L2, …), siendo el nivel más bajo el más próximo a la CPU. Así, en el caso de un fallo de caché L1, el bloque es servido por la caché L2 en lugar de ser servido por la memoria principal. Estos dos niveles de caché es frecuente que sean incorporados en la propia 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 datos

como código (instrucciones); sin embargo, es posible disponer de dos cachés especializadas en datos y código, respectivamente y ambas al mismo nivel. La caché unificada proporciona una mayor tasa de aciertos frente a la caché separada. En la práctica, la caché L1 es una caché separada y la L2, unificada.

� �

Memoria Principal

Caché L2 �

Caché L1

Datosl

Caché L2 Código

CPU

����������������&���������������������>?

Al aplicar este modelo estamos consiguiendo un acceso simultáneo a datos y a código

multiplicando, en teoría, la velocidad por dos.

Page 59: 109154402 estructura-computadores

Universidad de Oviedo ESTRUCTURA DE LOS COMPUTADORES

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 59

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é. Vamos

a 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 64

bytes 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) de

64 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 y

1 vías, lo cual da un total de 256 conjuntos.

Page 60: 109154402 estructura-computadores

Universidad de Oviedo ESTRUCTURA DE LOS COMPUTADORES

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 60

Capítulo 3.4. MEMORIA PRINCIPAL. Vamos a estudiar la memoria principal centrándonos en la comunicación de ésta con la

memoria caché. El objetivo que seguiremos es reducir el coste de un fallo de caché y de actualizació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 de

tamañ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 a

memoria caché. En cada acceso de lectura de transfieren� bytes desde la memoria principal a la 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. Cada

acceso de lectura de memoria lo mediremos en un tiempo expresado en ciclos del bus. Cada acceso 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 a

memoria caché será:

( ) ( ) ��������������

�����

��!��!�!�� ===++=++

Page 61: 109154402 estructura-computadores

Universidad de Oviedo ESTRUCTURA DE LOS COMPUTADORES

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 61

Capítulo 3.4.2. COSTE TEMPORAL EN LA ACTUALIZACIÓN DE UN BLOQUE DE MEMORIA PRINCIPAL.

Este proceso de actualización de un bloque de memoria principal ocurrirá en dos

circunstancias: • 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 el

coste temporal de un acceso de escritura en memoria principal. Este proceso de actualización se 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é en

memoria 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 se

basa 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ón

de un bloque de memoria principal intervienen las siguientes direcciones: F0000000h - F000001Fh. Además, vamos a suponer que la memoria principal se construye con dos dispositivos de memoria que denotaremos por A y B.

Page 62: 109154402 estructura-computadores

Universidad de Oviedo ESTRUCTURA DE LOS COMPUTADORES

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 62

Capítulo 3.4.3.1. MEMORIA NO – ENTRELAZADA. Vamos a centrarnos únicamente en un proceso de fallo de caché, aunque la

actualización sería análoga. Este tipo de memoria es el visto en el ejemplo anterior, es decir, no presenta

optimizaciones.

���������� �#�� ��&����� ��� ������� ��� 2� �������)����� -���� ��������� ����� ��� ������ ���

���������������������

El bloque que queremos transferir pertenece únicamente al dispositivo A. Al producirse

un fallo de caché, se producirá la lectura del bloque de memoria caché, el cual se encuentra en el dispositivo A. Por tanto, la lectura se realizará siempre sobre dicho dispositivo.

Decimos que la memoria es no – entrelazada cuando cada disposiitivo contiene un rango

de direcciones consecutivas.

Page 63: 109154402 estructura-computadores

Universidad de Oviedo ESTRUCTURA DE LOS COMPUTADORES

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 63

Capítulo 3.4.3.2. MEMORIA ENTRELAZADA. El problema que plantea la memoria no – entrelazada es el desperdicio de recursos. El

objetivo que perseguimos es que ambos dispostivos trabajen simultáneamente, es decir, en paralelo. Teóricamente, empleando dos dispositivos conseguimos disminuir el coste de un fallo de caché casi a la mitad.

�����������'����&������������������������������)���

Durante la operación 1, tanto el dispositivo A como el dispositivo B reciben ambos la

misma dirección. Ambos buscan la dirección, en paralelo. No podemos transferir simultáneamente ambos datos buscados ya que el dato será de

16 bytes y el bus de datos, de 8 bytes. Entonces un dispositivo será el encargado en primera ocasión de servir el dato, mientras que el siguiente dispositivo tendrá que esperar.

Page 64: 109154402 estructura-computadores

Universidad de Oviedo ESTRUCTURA DE LOS COMPUTADORES

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 64

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 B

puedan trabajar completamente en paralelo, disminuyendo el coste de un fallo de caché a la mitad.

�����������(��0 ���������������������)����;�/����������

Page 65: 109154402 estructura-computadores

Universidad de Oviedo ESTRUCTURA DE LOS COMPUTADORES

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 65

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úsqueda

en el bus de direcciones durante la operación 1. Las direcciones sucesivas se consiguen sumando 8 a la dirección actual.

����������"!��0 �����������������2��������)����;���$����

El acceso mediante ráfagas considera que un dispositivo (memoria caché) genera la

dirección base y otro dispostivo (memoria principal) las direcciones sucesivas.

Page 66: 109154402 estructura-computadores

Universidad de Oviedo ESTRUCTURA DE LOS COMPUTADORES

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 66

Esta técnica se puede emplear análogamente para memoria principal entrelazada:

����������" ��0 ���������������������)��������/�����������;���$����

Page 67: 109154402 estructura-computadores

Universidad de Oviedo ESTRUCTURA DE LOS COMPUTADORES

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 67

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ía

de memoria. Una de sus características fundamentales es que permite ampliar la capacidad de la memoria del sistema. Sin embargo, ésta es posiblemente la funcionalidad menos importante.

����������"�����&����������� ����&�<������������

Page 68: 109154402 estructura-computadores

Universidad de Oviedo ESTRUCTURA DE LOS COMPUTADORES

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 68

Los programas que se ejecutan sobre sistemas operativos multitarea trabajan exclusivamente con direcciones lógicas. Estas direcciones virtuales se convierten a direcciones físicas que son las que llegan al sistema de memoria. Esta conversión se llevará a cabo en la MMU (Memory manadgement unit).

����������"��������������������/� ����������������������%�&������������������������00:����

����������$<����%���������&������/� ���������������������

El conjunto de todas las direcciones virtuales posible es lo que se define como espacio

de direcciones lógicas o virtuales. Estas direcciones lógicas que llegan a la MMU son convertirdas en direcciones reales o físicas. El conjunto de todas las direcciones físicas se denomina espacio de direcciones reales o físicas. Estas direcciones reales son las que llegan al sistema de memoria.

Page 69: 109154402 estructura-computadores

Universidad de Oviedo ESTRUCTURA DE LOS COMPUTADORES

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 69

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 la

segmentació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 dispone

de una tabla asociada a cada tarea y empleada por la MMU.

����������"���,�/�����������������������������������

Page 70: 109154402 estructura-computadores

Universidad de Oviedo ESTRUCTURA DE LOS COMPUTADORES

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 70

Capítulo 3.5.2. OBJETIVOS. Los objetivos que ha de satisfaces la memoria virtual son los siguientes: • Ampliación de la capacidad de memoria. • Protección de memoria. • Compartición de memoria. • Simplificación de las herramientas de desarrollo y carga. Capítulo 3.5.2.1. AMPLIACIÓN DE LA CAPACIDAD DE LA MEMORIA. La ampliación de la capacidad de memoria nos va a permitir ejecutar programas de

mayor tamaño. Además, también podremos ejecutar concurrentemente un mayor número de tareas. Esto se consigue gracias a que la tabla de traducción no sólo permite asociar a direcciones virtuales direcciones físicas en memoria principal, sino también en disco.

Los sistemas operativos disponen de zonas de disco para implementar la memoria

virtual. Estas zonas reciben típicamente el nobre de archivos de paginación (en Windows) o particiones de swap (en Linux). También hay que tener en cuenta que a parte del archivo de paginación, es frecuente emplear el propio fichero ejecutable como fichero de paginación, para evitar la duplicación del código.

����������""����&�����������������������������������������$<�����������?��������00:������

����������$<��������������������������������������;���<������������������������������������

������

Cuando intentamos acceder a una dirección virtual que tiene asociada una dirección

física en el archivo de paginación, la MMU genera una excepción de tipo fallo de página. De este modo, la rutina de tratamiento de la excepción mueve el bloque de datos correspondiente del archivo de paginación a memoria principal. Una vez que el manejador ha movido el bloque a memoria principal, la instrucción que generó la excepción puede volver a ejecutarse.

Page 71: 109154402 estructura-computadores

Universidad de Oviedo ESTRUCTURA DE LOS COMPUTADORES

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 71

Capítulo 3.5.2.2. PROTECCIÓN DE MEMORIA. La protección de memoria nos permite solvertar dos deficiencias vistas en la CPU

teórica: • el acceso de una tarea al espacio de direcciones de otra tarea y • del sistema operativo. Para solucionar estos problemas podemos utilizar la tabla de traducción. Cada tarea,

incluido el sistema operativo, dispone de una tabla de traducción. Así, podemos programar de forma adecuada las tablas de página. Esto será realizado por el sistema operativo.

Por otra parte, para evitar el acceso de tareas al espacio de direcciones del sistema

operativo se añade un campo adicional (campo de protección) a las tablas de traducción. Este campo contiene el nivel de privilegio mínimo necesario para poder acceder a una dirección física determinada.

���������� "#�� 1B������� ��� ������ ��� ��������� �� ����� �������� ��� ��� ��/��� ��� ���������

������������/���������������<���������������������������������>��������

Page 72: 109154402 estructura-computadores

Universidad de Oviedo ESTRUCTURA DE LOS COMPUTADORES

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 72

Capítulo 3.5.2.3. COMPARTICIÓN DE MEMORIA. Normalmente se busca que los espacios de direcciones de las tareas sean

independientes, pero no siempre es así. A veces se necesita que dos tareas compartan memoria, por ejemplo, para comunicarse entre sí o para compartir código (librerías de enlace dinámico).

Para soportar la compartición de memoria podemos programar las tablas de traducción

de dos tareas para que el área de memoria virtual de cada tarea apunte a un mismo área de memoria principal.

����������"'����� �������������������� ��� �������������������������������� ���� ��/�������

����������������������

Page 73: 109154402 estructura-computadores

Universidad de Oviedo ESTRUCTURA DE LOS COMPUTADORES

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 73

Capítulo 3.5.2.4. SIMPLIFICACIÓN DE LAS HERRAMIENTAS DE DESARROLLO Y CARGA. La simplificación de las herramientas de desarrollo (compiladores, enlazadores, etcétera)

y de carga se consigue gracias a que la memoria virtual permite trabajar con espacios de direcciones independientes. De este modo, las herramientas de desarrollo pueden asignar cualquier dirección virtual. Así, las direcciones virtuales de un programa (código, datos, pila, etcétera) son asignadas por las herramientas de desarrollo. Sin embargo, las direcciones físicas son asignadas por el sistema operativo.

Por otra parte, la carga de un programa, es decir, la creación de su imagen en memoria,

es realizada por el sistema operativo. Así, gracias a la memoria virtual conseguimos que los programas se puedan cargar independientemente de donde se encuentren en memoria.

���������� "(�� ���� >����������� ��� ����������� ������� ���� ���������� ��������� ���� ��������%�

�������� &��� ��� ������� ��������� ������ ���� ���������� $<����%� ��� ����%� ������ ��� ��������� ���

������������������

Page 74: 109154402 estructura-computadores

Universidad de Oviedo ESTRUCTURA DE LOS COMPUTADORES

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 74

Capítulo 3.5.3. ESTRATEGIAS DE MEMORIA VIRTUAL. PAGINACIÓN Y SEGMENTACIÓN. La traducción de direcciones virtuales a direcciones físicas se hace a través de bloques,

pues en caso contrario, el tamaño de la tabla de traducción sería inadmisible.

����������#!����&���������������������/��&���

Hay dos formas de realizar la traducción, que dependen del tamaño del bloque: • tamaño fijo o • variable En el caso de bloques variables emplearemos la segmentación; mientras que para

bloques de tamaño fijo, la paginación. En principio, utilizando bloques de tamaño variable hay un mayor aprovechamiento de la

memoria porque cada tarea recibe exactamente la memoria que necesita. Sin embargo, esta técnica ocasiona una fragmentación de la memoria.

Por otra parte, utilizando bloques de tamaño fijo de tamaño, por ejemplo, 4 Kb, el

desperdicio de memoria en la práctica es despreciable. En el caso de la paginación, estos bloques reciben el nombre de páginas. Por otra parte,

en el caso de la segmentación, estos bloques de tamaño variable se denominan segmentos. La principal ventaja que proporciona la segmentación es que permite tener un espacio de

direcciones virtuales muy grande ya que cada dirección segmentada viene determinada por un descriptor de segmento de 14 bits y un desplazamiento de 32 bits lo cual proporciona un tamaño del espacio de direcciones virtuales �+���+������ = .

Page 75: 109154402 estructura-computadores

Universidad de Oviedo ESTRUCTURA DE LOS COMPUTADORES

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 75

Sin embargo, empleando la paginación disponemos de un espacio de direcciones de tan sólo �+��+����� = con procesadores de 32 bits; pero con los inminentes procesadores de 64

bits, el espacio de direcciones virtuales aumentará hasta llegar a 0+��+������ = , quedando diluida la ventaja de la segmentación frente a la paginación.

En conclusión, un sistema operativo con soporte de segmentación como técnica de

memoria virtual será muy ineficiente y costoso de implementar. Por otra parte, esta técnica de memoria virtual complica la implementación de las herramientas de desarrollo.

Capítulo 3.5.4. LA MEMORIA VIRTUAL PAGINADA. Comenzaremos recordando el concepto de página y marco de página. Capítulo 3.5.4.1. CONCEPTO DE PÁGINA Y MARCO DE PÁGINA. Partimos de un espacios de direcciones virtuales y un espacio de direcciones físicas. Los

bloques de memoria dentro del espacio de direcciones virtuales se denominan páginas. Así, cada dirección virtual se descompone en dos campos:

• número de página virtual y • desplazamiento El número de página virtual sirve para identificar la página, es decir, el bloque en el que

se encuentra la dirección. El desplazamiento identifica la dirección virtual dentro de la página. De este modo, el tamaño de una página viene dado por el número total de desplazamientos dentro de dicha página.

����������# ��-�����������������������������������������������;����������)������

Page 76: 109154402 estructura-computadores

Universidad de Oviedo ESTRUCTURA DE LOS COMPUTADORES

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 76

Por otra parte, los bloques de memoria dentro del espacio de direcciones físicas se denominan marcos. De manera análoga a lo visto anteriormente, cada dirección física se divide en dos campos:

• número de marco y • desplazamiento El número de marco sirve para identificar el marco, es decir, el bloque en el que se

encuentra la dirección física. El desplazamiento identifica una dirección física dentro del marco.

����������#���-�����������$<���������������������������������;����������)������

Capítulo 3.5.4.2. LA TABLA DE PÁGINAS. La tabla de páginas sirve para conocer cuál es el marco de página asociado a cada

página virtual. Cada tarea tiene su propia tabla de páginas. Esta tabla de páginas es una estructura de

datos gestionada por el sistema operativo y almacenada tipicamente en memoria. Para determinar el comienzo de la tabla de páginas de cada tarea existe un registro de

tabla de página que indica la dirección de comienzo de la misma. Como cada tarea tiene su propia tabla de páginas, cada vez que se produce un cambio de contexto se modifica el valor de dicho registro.

Pero, ¿qué tamaño tiene la tabla de páginas? En principio, la tabla de páginas de cada

tarea deberá contener tantas entradas como páginas virtuales tengra la tarea.

Page 77: 109154402 estructura-computadores

Universidad de Oviedo ESTRUCTURA DE LOS COMPUTADORES

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 77

Vamos a ver ahora la estructura de la tabla de páginas. Cada entrada de la misma consta de:

• el bit de presencia, • el marco de página o desplazamiento en disco, • los bits de protección y • los bits de estado

����������#���,�/���������������������������

El bit de presencia indica si la página virtual está en memoria. Cuando está activo, la

página virtual está en memoria. Cuando está inactivo, la página está en el disco, concretamente, en el archivo de paginación o bien la página no tiene asociado almacenamiento en disco.

El campo marco de página o desplazamiento en disco indica el marco de página

asociado a la página actual, siempre y cuando el bit de presencia esté activado. Cuando este bit está inactivo, indica la ubicación (desplazamiento) dentro del archivo de paginación. En caso de no tener asociado almacenamiento físico, se puede utilizar un desplazamiento inválido.

Si intentamos leer o escribir en páginas que no tienen asociado almacenamiento en

disco, se produce una excepción de fallo de memoria no recuperable. Los bits de protección sirven para indicar si la página virtual es de lectura, lectura y

escritura, ejecución, etcétera; así como para indicar el nivel de privilegio de la página. Los bits de estado son básicamente dos: • el bit de dirty y • el bit de página accedida

Page 78: 109154402 estructura-computadores

Universidad de Oviedo ESTRUCTURA DE LOS COMPUTADORES

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 78

El bit de dirty se activa cuando se escribe en una página. Así, en un momento dado puede ser necesario reemplazar una página ubicada en memoria. Antes de ser reemplazada es necesario comprobar el estado del bit de dirty. Si éste está activo es necesario llevar la página a disco.

El bit de página accedida se activa para llevar una contabilidad sencilla de cuáles son las

páginas virtuales accedidas más recientemente. Capítulo 3.5.4.3. UBICACIÓN EN MEMORIA DE LAS TAREAS Y DEL SISTEMA OPERATIVO. Las tareas son programas que, mediante unas herramientas de desarrollo, se convierten

en archivos ejecutables que son cargados en memoria por el sistema operativo. Independientemente del lenguaje de programación empleado, los programas de pueden dividir en dos partes:

• código y • datos Así, a través de herramientas de desarrollo (compiladores y enlazadores) se asignan

paginas virtuales a zonas de código y datos.

����������#�������>��������������������������������������������������)��������������������

Page 79: 109154402 estructura-computadores

Universidad de Oviedo ESTRUCTURA DE LOS COMPUTADORES

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 79

Ejemplo: ������������������������ ��������������������� ������������������������������������ ������� �������������������� ����� � ������������ !�� �������!� Por otra parte, el sistema operativo suele estar ubicado dentro de los espacios de

direcciones virtuales de todas las tareas. Cuando se transfiere el control de una tarea al sistema operativo, el registro de tabla de página no cambia. Por tanto, cuando se está ejecutando el sistema operativo, se están traduciendo direcciones virtuales a físicas a través de la tabla de páginas de una tarea. Así, la memoria asociada al sistema operativo es compartida por todas las tareas, aunque éstas no pueden acceder al no tener suficientes privilegios.

����������#����������������������$����������������������������������������������������������

Page 80: 109154402 estructura-computadores

Universidad de Oviedo ESTRUCTURA DE LOS COMPUTADORES

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 80

Capítulo 3.5.4.4. PROTECCIÓN DE MEMORIA. La paginación se emplea para proteger la memoria. Así, existen tres mecanismos de

protección: • Independencia de los espacios de direcciones de las tareas. • Tipos de acceso a memoria. • Niveles de privilegio. La independencia de los espacios de direcciones se consigue programando de forma

adecuada, por parte del sistema operativo, las tablas de páginas de las diferentes tareas evitando que se produzcan solapamientos. Esta independencia facilita la implementación de las herramientas de desarrollo y carga.

El tipo de acceso a memoria permite marcar páginas cmo de sólo lectura, sólo escritura,

lectura y escritura, ejecución, etcétera.

����������#"������/��������������������/��������������������������������������������

Cada entrada de la tabla de páginas contiene un campo que indica el nivel de privilegio

mínimo que deberá tener una tarea para poder acceder a la página.

Page 81: 109154402 estructura-computadores

Universidad de Oviedo ESTRUCTURA DE LOS COMPUTADORES

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 81

Capítulo 3.5.4.5. COMPARTICIÓN DE MEMORIA. La paginación permite compartir memoria para, por ejemplo, comunicar tareas, reducir el

uso de memoria mediante librerías de enlace dinámico, etcétera.

����������##����������������������������������������������$<���

Pero, ¿cómo se realiza la compartición? La tarea T1 solicita dos páginas de memoria. El

sistema operativo se las concede, es decir, programa adecuadamente la tabla de páginas de la tarea. A continuación, la tarea T2 solicitalos dos mismos marcos de página y pide que se asocien a dos páginas virtuales. Así, lo que la tarea T1 escriba en la zona de memoria compartida podrá ser leída por otra tarea.

Page 82: 109154402 estructura-computadores

Universidad de Oviedo ESTRUCTURA DE LOS COMPUTADORES

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 82

Capítulo 3.5.4.6. EL TLB. Hasta ahora únicamente hemos hablado de funcionalidad y no de rendimiento. Hemos

visto como el acceso a memoria requiere en realidad dos accesos. Así, para acceder al contenido de una dirección virtual es necesario convertir esta

dirección virtual en una dirección física, para lo cual necesitamos leer la tabla de páginas. Una vez calculada la drección física se realizará el acceso al contenido de la direccion.

����������#'��.���������������������������������������������������������������������:���������

�������/�������������;����������������������������$<������������������

Estos dos accesos plantean un problema de rendimiento muy grave. Para solucionar

este problema utilizaremos una caché específica, diferente de las cachés vistas hasta ahora, que se encarga e almacenar las entradas de la tabla de páginas usadas más recientemente. Esta caché se denomina TLB (Translation look – aside buffer).

Page 83: 109154402 estructura-computadores

Universidad de Oviedo ESTRUCTURA DE LOS COMPUTADORES

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 83

Características: • Es una caché totalmente asociativa, es decir, cualquier entrada de la tabla de

páginas puede ir a cualquier bloque de caché. Ahora, cada acceso a memoria requerirá dos accesos: • un primer acceso al TLB y • un segundo acceso a la memoria principal (suponiendo que no existe caché) Puesto que el acceso al TLB es instantáneo, en comparación con el acceso a memoria

principal, asi el tiempo de acceso a una dirección de memoria será prácticamente igual al tiempo de acceso a memoria principal.

De acuerdo al principio de localidad, prácticamente siempre se están accediendo a las

mismas páginas. Así, la tasa de aciertos del TLB es muy elevada. Por tanto, puesto que los fallos del TLB son muy escasos, se pueden gestionar por software. Esto tiene la ventaja de permitir implementaciones de algoritmos de reemplazo mucho más sofisticados. Como contrapunto, el coste de reemplazo será muy elevado, pero asumible debido a la escasa frecuencia de estos fallos.

Por otra parte, cuando se produce un fallo de TLB se produce una excepción que será

gestionada por el sistema operativo. Lo más usual es que las CPU´s incorporen instrucciones privilegiadas para el manejo de esta caché.

Vamos a ver ahora qué ocurre cuando se produce un cambio de contexto. Puesto que

cada tarea dispone de una tabla de páginas propia, cada vez que se produce un cambio de contexto en principio habría que vaciar el TLB marcando sus bloques como inválidos. Esto produciría una secuencuencia de fallos de TLB en cadena. La solución será añadir al TLB un identificador de tarea, así no será necesario vaciar la tabla. Para tener entradas de varias tareas será necesario emplear un TLB de mayor tamaño.

Por otra parte, dentro del TLB, que contiene las entradas de las páginas de las tareas,

vamos a tener replicadas las entradas de las páginas del sistema operativo. Para solucionar esto podemos añadir un identificador que sea válido para todas las tareas, de modo que las entradas marcadas con ese identificador se consideren globales por el TLB.

Ahora surge un problema: ¿para qué necesitamos el TLB si ya tenemos la memoria

caché? Al acceder a una dirección de memoria serán necesarios dos accesos a memoria y, de acuerdo al principio de localidad, lo más frecuente es que éstos dos accesos se realicen sobre la caché. Así, teniendo separados el TLB y la caché podemos acceder en parelelo a ambos y así el tiempo de acceso se reducirá a la mitad, equivaliendo al tiempo de acceso de memoria caché.

Pero, ¿se puede acceder en paralelo a la caché y al TLB?

����������#(����&�����������������������������������������?������,�C�;�����������������>?

En el esquema vemos como esto no es exactamente así. Sin embargo existen

soluciones para logar el paralelismo, como son: • la segmentación de los accesos a memoria y • las cachés con memorias virtuales.

Page 84: 109154402 estructura-computadores

Universidad de Oviedo ESTRUCTURA DE LOS COMPUTADORES

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 84

En la segmentación de accesos a memoria, mientras que la caché accede a un dato, el TLB está accediendo a la dirección del siguiente al que va a acceder la caché a continuación.

La solución de cachés con memorias virtuales es muy difícil aunque es la utilizada por la

arquitectura IA – 32. Esta solución funciona aunque tiene problemas con la compartición de memoria.

Capítulo 3.5.4.7. FALLO DE PÁGINA. CONCEPTO Y TRATAMIENTO. Un fallo de página ocurre cuando la unidad de ejecución de la CPU emite una dirección

virtual que no está en memoria. Cuando esto ocurre se produce una excepción de fallo de página. Vamos a ver las operaciones que realiza el manejador del fallo de página.

En primer lugar, se determina la causa del fallo de página. En particular hay dos tipos de

fallo: • página virtual sin almacenamiento asignado o • página virtual con almacenamiento en disco. Así, si se trata de una dirección virtual sin almacenamiento en asignado, lo cual significa

que no tiene asignado almacenamiento ni en memoria ni en el archivo de paginación, se produce una nueva excepción de violación de acceso a memoria.

Por ejemplo, supongamos el siguiente estado inicial de la memoria:

����������'!��������������������������

Page 85: 109154402 estructura-computadores

Universidad de Oviedo ESTRUCTURA DE LOS COMPUTADORES

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 85

Supongamos ahora que intentamos acceder a la dirección 000F F05Eh. Esta dirección se encontrará en el marco 000FFh. Sin embargo, en la tabla de páginas vemos como en el marco 000FFh no se encuentra almacenada ninguna página, ya que su bit de presencia está desactivado. Además, la página tampoco se encuentra en el archivo de paginación ya que el desplazamiento dentro del mismo es inválido. Por tanto, se producirá una violación de acceso a memoria y la tarea finalizará.

���������� ' �� 1�� �������� �������� �� ���� ������� ������� &��� ��� ����� �� �������������� ���

������������������>������������������������������������������������������

Por otro lado, puede ocurrir que se trate de una dirección virtual con almacenamiento en

disco. En este caso, en primer lugar, el sistema operativo determina a qué marco de página tiene que llevar la página virtual desde el archivo de paginación. Puede ocurrir que para ello tenga que reemplazar alguna de las páginas de la tarea que están en memoria, de acuerdo a una determinada política de reemplazo, por ejemplo, LRU.

Page 86: 109154402 estructura-computadores

Universidad de Oviedo ESTRUCTURA DE LOS COMPUTADORES

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 86

Por ejemplo, supongamos que tratamos de acceder a la dirección 0010 51B3h, cuyo marco de página es 00105h. En la tabla de páginas vemos como la entrada asociada a dicho maarco no contiene ninguna página ya que su bit de presencia es inválido. Sin embargo, si presenta un desplazamiento X dentro del archivo de paginación.

����������'����������������������������������������������������������<��������

Page 87: 109154402 estructura-computadores

Universidad de Oviedo ESTRUCTURA DE LOS COMPUTADORES

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 87

Además, no hay espacio suficiente para cargar la página desde el disco, al estar el número máximo de páginas permitidas en memoria. En este caso, supongamos que se reemplaza la página 00102h. Puesto que dicha página tiene su bit de dirty activado será necesario almacenar previamente dicha página en disco.

����������'������������������������>�����������������������&�������������)���

Page 88: 109154402 estructura-computadores

Universidad de Oviedo ESTRUCTURA DE LOS COMPUTADORES

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 88

A continuación, se lleva la página virtual a memoria, modificando su entrada en la tabla de páginas.

����������'��������������������������������������

Page 89: 109154402 estructura-computadores

Universidad de Oviedo ESTRUCTURA DE LOS COMPUTADORES

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 89

Capítulo 3.5.5. PAGINACIÓN EN LA ARQUITECTURA IA – 32. Los programas trabajan con direcciones lógicas, que están segmentadas y constan de

un selector y un desplazamiento que nos proporciona un espacio de direcciones lógicas de �+���+������ = . A través del mecanismo de segmentacion transformamos las direcciones

segmentadas en lineales, con un espacios de direcciones de �+��+����� = . Usualmente, los sistemas operativos “desactivan” la segmentación configurando adecuadamente la tabla de descriptores de selectores para que las direcciones segmentadas coincidan con las direcciones lineales, esto nos lleva al modelo de memoria plano. Así, estas direcciones lineales son las direcciones virtuales con las que trabaja el mecanismo de paginación para obtener direcciones físicas.

����������'���0����������������������������������������&����������1�2���

Capítulo 3.5.5.1. LA TABLA DE PÁGINAS EN LA ARQUITECTURA IA – 32. Cuando la unidad de ejecución de la CPU emite una dirección virtual es necesario

conocer su traducción, sea cual sea la dirección virtual. Esto significa que necesitamos que toda la tabla de páginas esté en memoria. Sin embargo, esto conlleva un problema importante: la tabla de páginas tiene tantas entradas como páginas virtuales.

En la arquitectura IA – 32 las páginas tienen un tamaño usual de 4 Kb. y puesto que el

tamaño del espacio de direcciones virtuales es de 4 Gb., la tabla de páginas de una tarea

tendrá �

��

1+"��

!2��� ���34����+"�� === entradas. Suponiendo que cada una de

estas entradas tenga un tamaño de 4 bytes, el tamaño total de la tabla de páginas de cada tarea será de �/��� � = .

Page 90: 109154402 estructura-computadores

Universidad de Oviedo ESTRUCTURA DE LOS COMPUTADORES

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 90

En la arquitectura IA – 32 este problema se resuelve empleado un esquema de doble traducción:

• El primer nivel es una tabla denominado directorio de páginas y • el segundo nivel, la tabla de páginas propiamente dicha.

����������'"����&�������������/���������������������&����������1�2���

Por ejemplo, supongamos una situación inicial en la que una dirección lineal viene dada

por una entrada en la tabla de páginas (20 bits) y un desplazamiento (12 bits). El registro CR3 es un registro de control que proporciona la dirección física de comienzo del directorio de páginas.

Sin embargo, realmente una dirección lineal consta de desplazamiento y una entrada en

la tabla de páginas. Este campo consta a su vez de: • un índice en el directorio de páginas o IDP y • un ínidice en la tabla de páginas o ITP. Así, el índice en el directorio de páginas o IDP proporciona la dirección física de

comienzo de la tabla de páginas, es decir, el contenido de la entrada del directorio de páginas asociado a la entrada a la que apunta.

Page 91: 109154402 estructura-computadores

Universidad de Oviedo ESTRUCTURA DE LOS COMPUTADORES

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 91

Por otra parte, el índice en la tabla de páginas o ITP proporciona la entrada de la tabla de páginas o ETP asociada a la tabla referenciada por el IDP. Este ETP nos proporciona el marco de la página.

Así, con este esquema de dos niveles de traducción es suficiente tener el directorio de

páginas en memoria para ejecutar la tarea. Por otra parte, durante la ejecución de una tarea, la tarea accede a pequeños rangos

dentro de su espacio de direcciones virtuales, es decir, solamente unas pocas entradas del directorio de páginas van a ser válidas y por tanto no necesitan una tabla de páginas completa.

Por ejemplo, supongamos una tarea que ocupa las siguientes páginas virtuales: 00100h,

00101h, 00600h y 00601h. Así, para la página 00100h = 0000 0000 0001 0000 0000b, tenemos un IDP = 0h y un

ITP = 100h.

����������'#��� �����������&����������/�����������

Page 92: 109154402 estructura-computadores

Universidad de Oviedo ESTRUCTURA DE LOS COMPUTADORES

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 92

Así, en este caso, la página cuyo marco es 00100h tiene asociado almacenamiento en memoria principal.

Por otra parte, la página 00101h = 0000 0000 0001 0000 0001b tiene un IDP = 0h y un

ITP = 101h. Así, esta página no tendrá asociado almacenamiento en memoria principal pero sí en el archivo de páginación.

En siguiente lugar, la página 00600h = 0000 0000 0110 0000 0000b tiene un IDP = 1h y

un ITP = 200h. De este modo, esta página tendrá asociado almacenamiento en memoria principal.

Finalmente, en último lugar, la página 00601h = 0000 0000 0110 0000 0001b tiene un

IDP = 1h y un ITP = 201h, con lo que dispone igualmente de almacenamiento en memoria principal.

Así, tanto el directorio de páginas como la tabla de páginas tiene un tamaño igual a la de

la página, es decir, 4 Kb. y puesto que cada entrada del directorio de páginas ocupa 4 bytes., el el directorio de páginas tendrá 1024 entradas. Así, para ejecutar esta tarea hacen falta un total de 12 Kb. para la traducción.

Consideraciones: • Si el bit de presencia está activo en una entrada del directorio de páginas, dicha

entrada proporciona la dirección física de comienzo de la tabla de páginas. • Si el bit de presencia está activo en una entrada de la tabla de páginas, dicha

entrada proporciona la dirección física de comienzo del marco de página. • Si el bit de presencia está desactivado esto produce una excepción de fallo de

página. En este caso la página no está en memoria física y el sistema operativo dispone de los restantes bits de la entrada de la tabla para hacer con ellos lo que quiera.

• El acceso a una dirección virtual válida puede generar dos fallos de página consecutivos. Un primer fallo cuando la tabla de páginas está en el archivo de paginación. El segundo fallo ocurre cuando la entrada de la tabla de páginas hace referencia a una posición dentro del disco.

Page 93: 109154402 estructura-computadores

Universidad de Oviedo ESTRUCTURA DE LOS COMPUTADORES

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 93

Cada entrada de la tabla de páginas es de 4 bytes, de los cuales sólo son necesarios 20 para almacenar el marco de página. El resto de los bits se utilizan para proporcionar información adicional y protección. Así, destacamos los bits:

• p. Indica si la página está presente o no. • w. Indica si la página puede ser escrita. • u. Indica si la página tiene un nivel de privilegio de supervisor. • pwt. Indica si la página tiene una política de correspondencia write – through. • pcd. Indica si la página no puede ser cacheada. • a. Indica si la página ha sido accedida recientemente. • d. Indica si la página ha sido modificada.

����������''����&����������������������������/������������

El tener una doble tabla de traducción tiene también una ventaja importante cuando

tenemos zonas de memoria compartidas entre tareas. En principio estamos desperdiciando memoria si referenciamos las mismas entradas en las tablas de páginas que hacen uso de la memoria compartida.

Por otra parte, cada vez que se modifica algo asociado a la mememoria del sistema

operativo es necesario modificar las tablas de páginas de todas las tareas. Para solucionar esto podemos hacer uso de un doble esquema de paginación y

definiendo tablas de páginas globales y locales.

Page 94: 109154402 estructura-computadores

Universidad de Oviedo ESTRUCTURA DE LOS COMPUTADORES

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 94

Capítulo 4. EL SISTEMA DE E/S. En este capítulo vamos a estudiar las distintas técnicas de entrada / salida así como el

modelo empleado en la arquitectura IA – 32. Capítulo 4.1. INTRODUCCIÓN. El sistema de entrada / salida es parte fundamental de cualquier computador, ya que

permite a éste comunicarse con su entorno. Está formado por las interfaces de todos los periféricos. Habitualmente, cada periférico tiene su propia interface, aunque existen interfaces capaces de gestionar varios periféricos simultáneamente, como son los puertos PS/2, USB, Firewire, etcétera.

����������'(����������������D����������������������������������������������%�������?���������

����$���������������$?����

Las operaciones de entrada / salida son operaciones que llevan información desde la

interfaz del periférico a la memoria y viceversa. Así, se dice que un interface es de salida cuando la información se transmite desde la memoria a la interface. De manera análoga, un interface es de entrada cuando la información se transfiere desde la interface a la memoria.

Por otra parte, aunque un interface sea de salida, podrá recibir información, por ejemplo,

de control.

Page 95: 109154402 estructura-computadores

Universidad de Oviedo ESTRUCTURA DE LOS COMPUTADORES

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 95

Capítulo 4.2. UBICACIÓN DEL SISTEMA DE E/S EN LOS ESPACIOS DE DIRECCIONES.

Las interfaces de los periféricos de entrada / salida son posiciones dentro del espacio de

direcciones de la memoria. Estas posiciones no pueden solaparte. Normalmente, suele haber un único espacio de direcciones, aunque algunas CPU´s, como la arquitectura IA – 32, disponen de un espacio de direcciones dedicado a las interfaces de los periféricos de entrada / salida.

����������(!��:���������%���������$���������������$?����������������D�������������������������

���� �������������������������������������� ���&��� ��� ��������-.:E�� ������ ��� ����������

���������������������������������$����

Page 96: 109154402 estructura-computadores

Universidad de Oviedo ESTRUCTURA DE LOS COMPUTADORES

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 96

����������( ��� ���������������������;��� ����$����� ���������������������������������������

�������������������������������������������������������������<$��������������D�������

Page 97: 109154402 estructura-computadores

Universidad de Oviedo ESTRUCTURA DE LOS COMPUTADORES

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 97

Capítulo 4.3. PROTECCIÓN DEL SISTEMA DE E/S. El sistema operativo es el único programa que debe acceder a las interfaces de entrada /

salida. Si una tarea no privilegiada pudiera acceder a estas interfaces podria tomar el control de la máquina. Además, los dispositivos de entrada / salida deben ser compartidos por todas las tareas, por lo que es necesario gestionarlos.

Para llevar a cabo la protección tenemos dos opciones, dependiendo de: • si la interface se encuentra hubicada en el espacio de direcciones de memoria. • si la interface se encuentra hubicada en el espacio de direcciones de entrada /

salida. Así, si la interface se encuentra hubicada en el espacio de direcciones de memoria

principal, marcamos las páginas virtuales asociadas a la interface con el nivel de privilegio de supervisor.

Por otro lado, si la interface se encuentra hubicada en el espacio de direcciones de

entrada / salida, puesto que para acceder a dicho espacio de direcciones se utilizan instrucciones especiales y específicas, (por ejemplo, en la arquitectura IA – 32 existen las instrucciones IN y OUT) la protección se consigue haciendo que dichas instrucciones sólo se puedan ejecutar con un nivel de privilegio de supervisor.

����������(�����&���������������������������D�������������������;�������������

De este modo conseguimos que sólo el sistema operativo pueda acceder al sistema de

entrada / salida.

Page 98: 109154402 estructura-computadores

Universidad de Oviedo ESTRUCTURA DE LOS COMPUTADORES

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 98

Capítulo 4.4. TÉCNICAS DE E/S. Una operación de entrada / salida equivale a mover información desde la interface de un

periférico y la memoria. Pero, ¿cuándo comienza una operación de entrada / salida? Existen dos posibilidades:

• por un lado, puede ser que sea la CPU la que decida que se inicie una operación de entrada / salida o

• por otra parte, puede ser que sea la interface de un periférico la que dedida iniciar una operación de entrada / salida.

En el segundo, caso, la CPU no sabe a priori cuando va a comenzar una operación de

entrada / salida. Independientemente de estos dos escenarios, existen varias técnicas para gestionar la

entrada / salida. La diferencia fundamental entrada cada una de estas técnicas viene dada por estas dos preguntas:

• ¿Quién mueve la información entre la interface y la memoria? • ¿Cómo se sincroniza la CPU con la operación de entrada / salida? Capítulo 4.4.1. E/S CON MUESTREO. La CPU sondea los registros de control de las interfaces de los periféricos de entrada /

salida hasta que detecta que una de las interfaces está lista. En caso de una interface de entrada significa que se ha recibido un dato, el cual se encontrará usualmente en el registro de datos. En caso de una interface de salida, significa que la interface está lista para recibir información a través de su registro de datos.

Esta técnica es muy ineficiente ya que la CPU debe estar comprobando constantemente

las interfaces de los periféricos. Así, la CPU se sincroniza leyendo continuamente el registro de estado de las interfaces y es la CPU la encargada de mover la información.

����������(�����������������D�����������������������-.:�����������>�����������������������

�������������������������������$���������������$?����������������D������

Page 99: 109154402 estructura-computadores

Universidad de Oviedo ESTRUCTURA DE LOS COMPUTADORES

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 99

En la entrada / salida con muestreo periódico, la CPU en lugar de muestrear las interfaces de los periféricos de entrada / salida constantemente, las muestrea cada cierto tiempo T, que es periodo de muestreo, y constituye el tiempo entre dos muestreos consecutivos.

Esta técnica no se emplea por varias razones: • Es necesario implementar un temporizador para medir los periodos de tiempo T. • No todos los dispositivos tienen la misma velocidad. • ¿Qué criterio se sigue para elegir el periodo T? Capítulo 4.4.2. E/S CON INTERRUPCIONES. La interface del periférico avisa a la CPU cuando está lista. De esta forma, la CPU no

tiene que estar comprobando constantemente si la interface está lista. De todas formas, la CPU sigue siendo la encargada de mover la información entre la interface y la memoria.

Cuando la interface está lista solicita una petición de interrupción. Al final de la ejecución

de la instrucción en curso, la CPU comprueba si existe una petición de interrupción, en cuyo caso se detiene la ejecución de la tarea y se pasa a ejecutar una rutina de tratamiento de la interrupción (manejador de la interrupción) y este manejador es el encargado de mover la información entre la CPU y la memoria. Al final de la ejecución del manejador, el programa prosigue su ejecución como si nada hubiera pasado.

����������(������ ��� ��������D����������� ������������ ���-.:����������� ������� ��� ���������

� ������������������4���� ����5����������������

La implementación de las interrupciones plantea una serie de problemas: • la priorización, • la inhabilitación de interrupciones y • la identificación de la interface. El problema de la priorización consiste en que estamos suponiendo que hay muchas

interfaces que pueden generar interrupciones. Supongamos que dos interfaces generan interrupciones “simultáneamente”. ¿Cuál se trata primero?

En cuanto a la inhabilitación de interrupciones, hay situaciones en las que las

interrupciones hay que deshabilitarlas. Esto es especialmente necesario en sistemas operativos multitarea en los que determinados fragmentos de código deben ejecutarse de manera atómica. Estos fragmentos deberán ser lo más pequeños posibles.

Finalmente, el problema de la identificación de la interface que generó la interrupción es

debido a que en la prácica existen muchas interfaces. Lo ideal sería que cada una tuviera una línea de interrupción. Sin embargo, en la arquitectura IA – 32 existe una única línea

Page 100: 109154402 estructura-computadores

Universidad de Oviedo ESTRUCTURA DE LOS COMPUTADORES

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 100

multiplexada por lo que es necesario mecanismos para identificar la interface que generó la petición de interrupción.

Capítulo 4.4.3. DMA. Las interfaces de los periféricos pueden leer / escribir en memoria tomando el control de

los buses. Así, la información entre la CPU y la memoria no la moverá la propia CPU sino un dispositivo denominado controlador de DMA.

EL DMA suele aplicarse cuando hay que mover grandes cantidades de información, por

ejemplo, en una interface de red. El controlador de DMA ni lee ni escribe. El controlador de DMA lo único que hace es activar y desactivar líneas de dirección y control.

En un sistema operativo multitarea el DMA mejora el rendimiento del sistema. En un

sistema operativo monotarea, el DMA resulta útil cuando el controlador es más rápido que la CPU.

����������(�����&�������������������������$����������������������������D�����������701

El proceso de movimiento de la información consta de una serie de pasos: • La CPU ejecutando el sistema operativo programa el controlador de DMA

indicándole el tipo de operación a realizar, el número de datos a transferir y las direcciones implicadas en la transferencia.

• La CPU ejecutando el sistema operativo programa la interface del periférico indicándole que debe funcionar con DMA.

• Cuando la interface está lista para que pueda llevarse a cabo la transferencia, solicita una petición al controlador de DMA, el cual toma el control de los buses y transfiere los datos entre la interface y la memoria tal y como había sido programada.

• La CPU es notificada del final de la transferencia mediante una petición de interrupción.

Page 101: 109154402 estructura-computadores

Universidad de Oviedo ESTRUCTURA DE LOS COMPUTADORES

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 101

Existen dos variantes del DMA: • DMA clásico o third party DMA. Hay un único controlador de DMA que comparten

todas las interfaces. • DMA moderno o first party DMA. Cada interface tiene su propio controlador de

DMA mucho más inteligente que el DMA clásico. Capítulo 4.4.4. PROCESADORES DE E/S. Básciamente se trata de interfaces con un alto grado de inteligencia. En el caso de la

entrada facilitan información ya procesada. En el cado de la salida pueden recibir información de muy alto nivel. Por ejemplo, tarjetas gráficas, tarjetas descompresoras de video y audio, etcétera.

Page 102: 109154402 estructura-computadores

Universidad de Oviedo ESTRUCTURA DE LOS COMPUTADORES

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 102

Capítulo 4.5. INTERRUPCIONES EN LA ARQUITECTURA IA – 32. Vamos a estudiar el mecanismo de las interrupciones en la arquitectura IA – 32 (PC).

Las interrupciones se utilizan con interfaces de baja tasa de transferencia, es decir, interfaces lentas como el teclado, el ratón, el puerto de serie, etcétera. Esto es así ya que la CPU es la encargada de mover la información.

Las CPU´s que implementan la arquitectura IA – 32 disponen de una linea de petición de

interrupción, así todos los periféricos piden interrupciones a través de esta líneas, que denominaremos INTR. En la arquitectura IA – 32 las interrupciones que se solicitan a través de esta línea son aceptadas o no dependiendo del bit IF del registro EFLAGS.

Así, al final de la ejecución de la instrucción en curso, la CPU comprueba si hay alguna

petición de interrupción. En caso afirmativo, si el bit IF está activado se acepta la interrupción y ocurren dos ciclos de bus especiales denominados ciclos de reconocimiento de la interrupción. En el primer ciclo la CPU avisa que ha reconocido la interrupción. En el segundo ciclo, la interface proporciona a través del bus de datos un número de 8 bits denominado número de interrupción que será la entrada en el IDT.

����������("����&�����������������������������������������&����������1�2���

En la arquitectura IA – 32 existen unos dispositivos denominados controladores de

interrupciones ó 8259. Básicamente, el controlador de interrupciones activa la línea INT de salida cada vez que se activa cualqueira de sus entradas IR. Además, prioriza las posibles peticiones de interrupción. En particular, la petición a través de la línea IR0 es la más prioritaria; y la realizada a través de la línea IR7, la menos. De este modo es necesario identificar la interface del periférico que solicitó la interrupción. Por otra parte, el empleo de un único controlador de interrupciones limita el número de interfaces de periféricos a 8. Para solucionar este problema se posibilita la conexión de controladores en cascada.

Page 103: 109154402 estructura-computadores

Universidad de Oviedo ESTRUCTURA DE LOS COMPUTADORES

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 103

Además, existe una línea NMI a parte de INTR, para interrupciones no mascarables. Así, las interrupciones pedidas a traés de la línea NMI se aceptarán siempre, no pudiéndose emplear el bit IF para deshabilitar estas interrupciones debidas, por ejemplo, a fallos graves, como fallos de paridad en memoria.

Por otra parte, hoy en día existe una gestión de interrupciones más moderna y adicional,

por ejemplo, para sistemas multiprocesadores. En el año 1994, Intel incorporó con el Pentium Pro un nuevo esquema de gestión de interrupciones denominado APIC destinado a gestionar sistemas multiprocesadores aunque también permite gestionar sistemas monoprocesadores. Así, cada CPU incorpora su propio APIC local. Por otra parte, existe el APIC de E/S común al sistema. Así, las interfaces de los periféricos solicitan peticiones de interrupción al APIC. Este APIC se comunica a través de tres líneas con los APIC´s locales. Estas líneas son INTR, NMI e INTA.

����������(#����&���������������������)����������������������1.�-

Page 104: 109154402 estructura-computadores

Universidad de Oviedo ESTRUCTURA DE LOS COMPUTADORES

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 104

Capítulo 5. SISTEMAS DE INTERCONEXIÓN. En este capítulo vamos a estudiar las distintas técnicas de entrada / salida así como el

modelo empleado en la arquitectura IA – 32. Capítulo 5.1. TOPOLOGÍAS DE INTERCONEXIÓN. Vamos a estudiar cómo podemos conectar cada uno de los componentes de un

computador. Así, vamos a estudiar las siguientes topologías de interconexión: • conexiones punto a punto, • conexión en estrella y • conexión en bus. Capítulo 5.1.1. CONEXIONES PUNTO A PUNTO. La forma más sencilla de interconexión entre los componentes del computador es

emplear canales o conexiones punto a punto, es decir, emplear un canal específico de comunicacióon para comunicar dos elementos cualesquiera.

����������('����&���������������<�������������������������

El principal inconveniente que implica esta técnica es el elevado número de canales

necesarios. Así, para � dispositivos serán necesarios ( )

�−�� canales.

Page 105: 109154402 estructura-computadores

Universidad de Oviedo ESTRUCTURA DE LOS COMPUTADORES

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 105

Por otro lado, las principales ventajas que conlleva esta técnica son: • la facilidad de implementación, • la elevada velocidad de transferencia y • la posibilidad de realizar transferencias en paralelo. Capítulo 5.1.2. CONEXIÓN EN ESTRELLA. La conexión en estrella pretende solucionar el problema de la conexión basada en

canales punto a punto. Para solucionar el problema que implicaba el uso de conexiones punto a punto, es decir, el elevado número de canales necesarios, se emplea un dispositivo denominado contrentrador o hub, de tal modo que todos los dispositivos se comunican a través de este concentrador.

����������((����&���������������<���������������������������

Este mecanismo tiene las principales ventajas de: • reducir el número de canales al número de dispositivos y, • si el concentrador lo permite, realizar transferencias en paralelo. Por el contrario, su principal inconveniente es la necesidad del contrador, el cual, en

caso de ser lento, puede colapsar las transmisiones (cuello de botella). Además resulta necesario identificar los dispositivos.

Page 106: 109154402 estructura-computadores

Universidad de Oviedo ESTRUCTURA DE LOS COMPUTADORES

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 106

Capítulo 5.1.3. CONEXIÓN EN BUS. La conexión en bus es el mecanismo de interconexión más utilizado con diferencia

dentro del computador. Consiste en un conjunto de lineas compartidas por todos los dispositivos.

���������� !!����&���������������<�������������������/��

Sus principales ventajas son: • la simplicidad, • su bajo coste y • la posibilidad de que todos los dispositivos pueden acceder a la información del bus. Por el contrario, tiene los inconvenientes de: • no permitir transmisiones en paralelo, • necesitar identificar los dispositivos, • estar la velocidad de transmisión limitada a la información del bus.

Page 107: 109154402 estructura-computadores

Universidad de Oviedo ESTRUCTURA DE LOS COMPUTADORES

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 107

Puesto que todas las topologías presentan ventajas e inconvenientes, en la práctica se combinan formando una jerarquía de topologías de interconexión de dispositivos.

���������� ! ����&������������ ����&�<������������<�����������������������������

Page 108: 109154402 estructura-computadores

Universidad de Oviedo ESTRUCTURA DE LOS COMPUTADORES

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 108

Capítulo 5.2. LOS BUSES. Un bus es un conjunto de líneas compartio por todos los dispostivos conectados a dicho

bus. Así, cuando un dispositivo pone una determinada secuencia de bits en el bus, esta información está en el bus y puede ser leída por todos los dispositivos. Sin embargo, sólo puede escribir un único dispositivo en cada instante. Para determinar qué dispositivo tiene la facultad de poner información en el bus, existe un dispositivo, denominado maestro del bus o bus master encargado de determinar a qué dispositivo se le concede el permiso para colocar información en el bus. Este bus master puede no ser único y existir varios, sin embargo, en cada instante uno y sólo uno estará actuando

Por otra parte, las líneas del bus se clasifican en: • lineas de datos, • lineas de direcciones y • lineas de control. En las líneas de datos, un dispositivo pone la información que será leída por el resto de

dispositivos. En las líneas de dirección se sitúan las direcciones del dispositivo del cuál se va a leer o

a escribir así, como la posición de memoria dentro del propio dispositivo. En las líneas de control se especifica información relativa a la configuración del bus. Se

establece el tipo de operación (lectura, escritura). También sirven para sincronizar (dónde empieza y dónde termina la lectura, etcétera).

Además, también existen otras líneas, por ejemplo, de alimentación. Capítulo 5.2.1. EL CONCEPTO DE CICLO DE BUS. Cada bus consta de un protocolo que debe ser implementado por todos los dispositivos.

En caso contrario, éste quedará inutilizale. La especificación de un bus es muy compleja y consta de especificación lógica, eléctrica, mecánica, etcétera.

Vamos a centrarnos únicamente en la especificacióm lógica, es decir, en el protocolo del

bus. Este protocolo se especifica a través de lo que denominamos ciclo del bus. Un ciclo del bus se define como una de las operaciones que puede realizar el bus en un instante determinado. Por ejemplo, lectura, escritura, configuración, etcétera.

En un ciclo de lectura, el maestro del bus pone una dirección en las líneas de dirección

de bus. Esta dirección especifica el dispositivo sobre el que se realizará la lectura y el desplazamiento. A continuación, el maestro del bus activa las líneas de control necesarias y el dispositivo coloca sobre las líneas de datos el dato que será leído por el maestro.

En el ciclo de escritura el maestro pone sobre las líneas de direcciones la dirección del

dispositivo y la dirección dentro del mismo y sobre las líneas de datos, el dato a escribir. A continuación se activan las líneas de control necesarias y se escribe el dato sobre el dispositivo indicado.

Page 109: 109154402 estructura-computadores

Universidad de Oviedo ESTRUCTURA DE LOS COMPUTADORES

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 109

Capítulo 5.2.2. CARACTERÍSTICAS DE UN BUS. Vamos a estudiar las diversas caracterísiticas de un bus. Concretamente: • la sincronización, • el tamaño de los datos, • bus serie o paralelo, • bus multiplexado o no – multiplexado, • ancho de banda teórico, • máxima longitud del bus, • bus plug and play (PnP) y • bus con conexión en caliente Capítulo 5.2.2.1. SINCRONIZACIÓN. Los buses pueden ser: • síncronos o • asíncronos. En los buses síncronos hay una señal de reloj que sincroniza todas las operaciones que

se realizan en el bus. En los buses asíncronos no existe tal señal. La idea es que existen determinadas

señales de control que permiten sincronizar unos ciclos con otros. Capítulo 5.2.2.2. TAMAÑO DE LOS DATOS. Esta característica nos dice el tamaño de los datos que se transfieren en cada ciclo de

lectura o escritura. Así, hablamos de buses de 32 ó 4 bits. Normalmente, coincide con el número de líneas de datos.

Capítulo 5.2.2.3. BUS SERIE O PARALELO. En un bus serie tenemos una única línea de datos mientras que en un bus paralelo

tenemos tantas líneas de datos como el tamaño de los datos a transferir. Capítulo 5.2.2.4. BUS MULTIPLEXADO O NO – MULTIPLEXADO. Hay buses en los cuales las líneas de direcciones y datos están multiplexadas, es decir,

físicamente tenemos las mismas líneas de direcciones y de datos. En un bus no – multiplexado las líneas de direcciones y datos son específicas.

La principal ventaja que presentan los buses multiplexados es la reducción de coste y la

mayor fiabilidad, sacrificando rendimiento. Capítulo 5.2.2.5. ANCHO DE BANDA TEÓRICO O TASA DE TRANSFERENCIA. Valor que indica la máxima velocidad a la cual se pueden transferir datos sobre el bus.

Este ancho de danta se da en condiciones ideales, pero en circunstancias normales, el ancho de banda será necesariamente inferior.

Capítulo 5.2.2.6. MÁXIMA LONGITUD DEL BUS. La información no viaja instantáneamente a través del bus. Esta velocidad suele ser

ligeramente inferior a la velocidad de la luz. Además, cuanto más largo sea el bus, éste se puede comportar como una antena.

Page 110: 109154402 estructura-computadores

Universidad de Oviedo ESTRUCTURA DE LOS COMPUTADORES

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 110

Capítulo 5.2.2.7. PLUG AND PLAY (PNP). En bus plug and play se definen mecanismos de identificación de los dispositivos

conectados a él, así como los recursos hardware que necesitan. Capítulo 5.2.2.8. CONEXIÓN EN CALIENTE. La conexión en caliente permite conectar dispositivos con el computador encendido. Esta

caracterísitca es especialmente útil en sistemas de alta disponibilidad. Capítulo 5.2.3. BUS CON MÚLTIPLES MAESTROS. CONCEPTO DE ARBITRAJE. En un bus puede haber varios dispositivos que puedan ser maestros. En este caso es

necesario llevar a cabo un arbitraje del bus para decidir, entre todos estos dispositivos, cuál será el maestro.

Para llavar a cabo este arbitraje existen varios algoritmos: • arbitraje centralizado, • arbitraje distribuido por autoselección y • arbitraje distribuido con detección de colisión. Capítulo 5.2.3.1. ARBITRAJE CENTRALIZADO. Existe un dispositivo específico para determinar qué dispositivo es el maestro. Este

arbitraje se emplea en el bus PCI. Capítulo 5.2.3.2. ARBITRAJE DISTRIBUIDO POR AUTOSELECCIÓN. Los dispositivos se ponen de acuerdo entre sí. Cada dispositivo pone un número que

tiene asociado en determinadas líneas del bus, de tal modo que aque dispositivo que tiene el mayor valor se convierte en el maestro. Este abitraje se utiliza en el bus multibús.

Capítulo 5.2.3.3. ARBITRAJE DISTRIBUIDO CON DETECCIÓN DE COLISIONES. Cada dispositivo supone que el bus le pertenece y coloca sobre las líneas de datos un

dato determinado. A continuación, si el valor leído coincide con el escrito sólo él desea ser el maestro y se le concede. En caso contrario, se habrá producido una colisión y cada dispositivo intentará tomar el control del bus transcurrido cierto tiempo aleatorio. Este arbitraje es empleado en redes ethernet.

Page 111: 109154402 estructura-computadores

Universidad de Oviedo ESTRUCTURA DE LOS COMPUTADORES

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 111

Capítulo 5.2.4. JERARQUÍA DE BUSES. Si conectamos todos los dispositivos del sistema a través de un único bus tendríamos

muchos problemas: • El bus sería un cuello de botella ya que todas las transferencias se realizarían a

través de dicho bus. • Al aumentar el número de dispositivos conectados al bus se ralentizaría la velocidad

de éste, debido a las capacidades parásitas. • Si pretendemos conectar cualquier dispositivo con un mismo tipo de bus éste sería

muy lento debido a su complejidad intrínseca. Para solucionar estos problemas emplearemos una jerarquía de buses. Cada uno de

estos buese estaría conectado con el resto a través de un puente, capaces de traducir señales entre buses de distinta velocidad.

���������� !���� ��������� ����&�<�����/����

Capítulo 5.2.5. EL BUS PCI. Es un bus síncrono, multiplexado, paralelo y con soporte plug and play. Existen varias

especificaciones de este bus. Vamos a estudiar la especificación del PCI empleado en los PC´s de propósito general. Así, en estos computadores, el bus PCI tiene un tamaño de dato de 32 bits, una frecuencia de 33 MHz. y en condiciones ideales se transmite un dato cada ciclo. Por tanto, la velocidad de transferencia teórica de este bus es:

������

�+5���

� ����

+5����

�����

������

�� ����

���"���� =

Page 112: 109154402 estructura-computadores

Universidad de Oviedo ESTRUCTURA DE LOS COMPUTADORES

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 112

El bus PCI es un bus plug and play, así que los dispositivos que se conectan a dicho bus disponen de unos registros especiales que permiten al bus determinar las caracterísitcas de la tarjeta. Estos datos son accesidos a través del controlador del bus.

En el bus PCI hay dos tipos de dispositivos: • el iniciador (iniciator) y • el destinatario (tarjet) El iniciador es el dispositivo que actúa como maestro y el destinatario con el que se

quiere comunicar (leer o escribir) el maestro. Cada dispositivo con capacidad de ser maestro tiene dos líneas relacionadas con la

petición: • la línea REQ de petición de bus y • la línea GNT de concesión del bus. En el bus PCI el arbitraje es centralizado. Así, cada dispositivo activa la línea REQ de

petición de bus y el árbitro activará una y sólo una línea GNT concediéndole al dispositivo correspondiente el bus.

���������� !�����&��������/���.-�

Los dispositivos leen sus entradas en el flanco ascendente de la señal de reloj CLK y

generan sus salidas poco después. La señal FRAME es una señal que se pone a cero el iniciador al comienzo de un ciclo,

ya sea de lectura o de escritura y que se pone a uno al final de dicho ciclo. Las señales AD constituyen las líneas de direcciones y datos. Se trata de líneas de 32

bits y están multiplexadas. Las señales C/BE son líneas cuya función depende del ciclo del bus en que nos

encontremos. Cuando funcionan como C indican el tipo de transacción y como BE, qué lineas de AD son válidas.

Page 113: 109154402 estructura-computadores

Universidad de Oviedo ESTRUCTURA DE LOS COMPUTADORES

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 113

Capítulo 5.2.5.1. EL CICLO DE LECTURA ÓPTIMO.

���������� !���-�������������������

Por ejemplo, el iniciador pone en las líneas C/BE el comando de lectura y en las líneas

AD la dirección que identifica el dispositivo (destinatario) donde se realizará la lectura y una posición de memoria dentro del mismo.

A continuación, los dispositivos identifican que la operación en curso es de lectura y leen

la dirección de las líneas AD. Si dicha dirección referencia a un dispositivo, éste ejecutará la orden. Por otra parte, el iniciador activará las líneas BE para indicar qué líneas serán leídas y desactivará las líneas AD.

En siguiente lugar, el destinatario pone en el bus el dato leído. El indicador pone una

comunicación de habilitación de bytes, es decir, indica cuáles van a ser los bytes válidos en el siguiente ciclo de lectura.

Cuando se han completado las lecturas, el iniciador desactivará la señal FRAME y

finalizará la transacción.

Page 114: 109154402 estructura-computadores

Universidad de Oviedo ESTRUCTURA DE LOS COMPUTADORES

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 114

Capítulo 5.2.5.2. EL CICLO DE ESCRITURA ÓPTIMO.

���������� !���������������������������

El iniciador activa la señal FRAME e indica el tipo de transacción (escritura) sobre las

líneas C/BE. A continuación coloca en las líneas AD la dirección del dispositivo destino. Posteriormente, cada uno de los dispositivos lee el tipo de operación y la dirección,

identificándose uno de ellos como destinatario. El iniciador por otra parte, situará sobre las líneas BE el conjunto de bytes válidos para la escritura.

Page 115: 109154402 estructura-computadores

Universidad de Oviedo ESTRUCTURA DE LOS COMPUTADORES

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 115

Capítulo 5.3. CONEXIÓN DE LOS COMPONENTES DE UN PC MODERNO.

���������� !"�� ��&����� ��� ��� ����&�<�� ��� �������<��� ��� ����������� ��� ���������� ��� ���

��&����������1�2���

El north bridge (MCH) o controlador de memoria, el south bridge (IOCH) o controlador de

entrada / salida y el super IO son concentradores. El MCH y el IOCH constituyen el chipset. La CPU está conectada al MCH a través de un bus FSB. El MCH está conectado a un

bus de memoria y a un canal AGP para conectarse con la tarjeta gráfica. El MCH Se comunica con el IOCH, de menor velocidad, el cuál además está conectado

a un canal de controladora de disco y a los buses PCI y USB. También se conecta el bus LPC que comunica con el super IO.

Page 116: 109154402 estructura-computadores

Universidad de Oviedo ESTRUCTURA DE LOS COMPUTADORES

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 116

Capítulo 6. PERIFÉRICOS. En este capítulo vamos a estudiar los periféricos más usuales que podemos

encontrarnos actualmente en los computadores de propósito general. Capítulo 6.1. INTRODUCCIÓN. Los periféricos son parte fundamental de computador ya que permiten comunicar éste

con el entorno. El principal problema que plantea el estudio de los periféricos es su diversidad. Así,

vamos a plantear este estudio dividiendo a los periféricos en las siguientes categorías: • periféricos de entrada (teclado, ratón, gamepad, etcétera) • periféricos de salida (monitor, impresora, plotter, etcétera) • periféricos de entrada / salida (pantalla táctil, tarjetas de sonido, etcétera) • periféricos de almacenamiento (discos duros, disquetes, discos ópticos, cintas,

etcétera)

Page 117: 109154402 estructura-computadores

Universidad de Oviedo ESTRUCTURA DE LOS COMPUTADORES

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 117

Capítulo 6.2. PERIFÉRICOS DE ALMACENAMIENTO DE INFORMACIÓN. Estos periféricos permiten almacenar y obtener información. Buscamos periféricos con

las siguientes caracterísiticas: • alta capacidad, • velocidad, • bajo coste, • mantenimiento de la información en ausencia de alimentación y • fácil transporte. Podemos clasificar estos dispositivos en las siguientes categorías de acuerdo a su

tecnología: • basados en semiconductores (memorias flash) • basados en almacenamiento magnético (discos ópticos) • basados en almacenamiento óptico (CD´s, DVD´s) • basados en almacenamiento magneto – óptico (minidisc) Capítulo 6.2.1.1. ALMACENAMIENTO DE DATOS EN MATERIALES FERROMAGNÉTICOS. Los materiales ferromagnéticos están formados por unas particulas denominados

dominios magnéticos que, en condiciones normales, están orientados de forma arbitraria. Sin embargo, bajo un campo magnético se orientan en su dirección.

���������� !#��0 �������$��������?��������������������������;�/� ���������������?���

Al aumentar la intensidad el campo (H) aumentará a magnetización de los dominios (M).

Si ahora disminuimos la intensidad del campo magnético, la magnetización no disminuirá completamente, sino que quedará un residuo denominado remanencia.

Si invertimos el sentido del campo magnético llegaríamos a un punto en el que se

anularía la remanencia. La intensidad de campo magnético necesaria para anular esta remanencia se denomina coercitividad.

Si seguimos disminuyendo el campo magnético llegaríamos a un punto crítico a partir del

cual el material no experimentaría ninguna alteración frente a esta disminución del campo. Finalmente, si comenzamos a aumentar el campo nuevamente volveríamos al punto de

partida, cerrándose el ciclo de histéresis.

Page 118: 109154402 estructura-computadores

Universidad de Oviedo ESTRUCTURA DE LOS COMPUTADORES

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 118

���������� !'��-�������>��?����

Para almacenar un bit se necesitan � dominios. Mejorando la tecnología de fabricación

conseguimos que � sea lo más pequeño posible hasta llegar a un punto crítico �=� . Capítulo 6.2.1.2. GRABACIÓN Y LECTURA DE DATOS USANDO MATERIALES MAGNÉTICOS. Para llevar a cabo la grabación o lectura de datos usando materiales magnéticos se

produce un movimiento relativo de la cabeza de lectura y escritura y la superficie magnética. Para leer, al desplazarse la cabeza de lectura y escritura sobre la superfice magnética,

se induce sobre esta una corriente eléctrica, cuyos pulsos determinan la información almacenanda.

���������� !(���������������������������?����

Page 119: 109154402 estructura-computadores

Universidad de Oviedo ESTRUCTURA DE LOS COMPUTADORES

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 119

Para escribir, se induce un campo magnético a través de la cabeza de lectura y escritura

que producirá la orientación de los dominios magnéticos en el sentido de dicho campo.

���������� !����������������������������?����

Capítulo 6.2.1.3. CODIFICACIÓN DE LA INFORMACIÓN EN MEDIOS MAGNÉTICOS.

���������� ��-��$���������������������/����������������?����

Hasta ahora hemos visto los principios físicos en los que se basa el almacenamiento

magnético de la información así como los procesos de lectura y escritura, pero, ¿cómo podemos emplear los principios magnéticos para almacenar secuencias de bits? Vamos a estudiar tres mecanismos para llevar a cabo este almacenamiento. Supongamos que deseamos almacenar la secuencia de bists 111010001.

En primer lugar, emplearemos la modulación en frecuencias. Así, utilizaremos una onda

cuadrada cuya frecuencia dependerá de la secuencia de bits. Esta señal se llamará polarización y cada transición va a indicar un camio de polarización.

Page 120: 109154402 estructura-computadores

Universidad de Oviedo ESTRUCTURA DE LOS COMPUTADORES

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 120

Con la modulación en frecuencias (FM) hay un pulso en el centro de cada bit igual a uno.

También hay un pulso al comienzo de todos los bits denominado pulso de reloj. A la hora de elegir el mecanismo de almacenamiento optamos por aquel que permita

mayor densidad de almacenamiento. Con MFM, hay un pulso en el centro de cada bit igual a uno. También hay un pulso al

comienzo del bit cuando se cumple la siguiente condición: “si en el bit anterior no hubo pulso de bit y en el pulso actual tampoco lo hay”.

Si emplearamos codificación FM, sería necesaria una mayor precisión que MFM.

Empleando el mismo material, con la codificación MFM tenemos una mayor precisión. El único inconveniente que plantea es que su lógica de almacenamiento es más compleja. En término medio, con MFM tenemos el doble de almacenamiento respecto a FM.

Con la codificación M2FM, hay un pulso en el centro de cada bit igual a uno. También

hay un pulso al comienzo del bit si se cumple la siguiente condición: “si en el bit anterior no hubo ni pulso de bit ni pulso de reloj y en le bit actual no hay pulso de reloj”.

Capítulo 6.2.1.4. UNIDADES DE DISCO. Vamos a estudiar las características generales a todas las unidades de disco (disquetes,

unidades zip, discos duros, etcétera). Vistas las similitudes, estudiaremos las particularidades de cada una.

Page 121: 109154402 estructura-computadores

Universidad de Oviedo ESTRUCTURA DE LOS COMPUTADORES

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 121

Capítulo 6.2.1.4.1. CONSTITUCIÓN FÍSICA. Físicamente, un disco consta de uno o varios platos magnéticos en los que se almacena

la información.

���������� ���-���������$<���������������

Page 122: 109154402 estructura-computadores

Universidad de Oviedo ESTRUCTURA DE LOS COMPUTADORES

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 122

Capítulo 6.2.1.4.2. ORGANIZACIÓN DE LA INFORMACIÓN EN EL DISCO. Cada superficie magnética se divide en pistas y cada pista a su vez se divide en

sectores.

���������� ���F����)�����������$���������/������������$��

Suponiendo que podemos tener varias superficies, podemos hablar de cilindros, es decir,

el conjunto de todas las pistas que están a la misma distancia del eje.

���������� ���F����)�����������$���������/������������

Page 123: 109154402 estructura-computadores

Universidad de Oviedo ESTRUCTURA DE LOS COMPUTADORES

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 123

El sector es la unidad mínima de almacenamiento de la información en disco. Por otra parte, un cluster es un conjunto de sectores y es un concepto asociado al

sistema operativo. Es el número mínimo de sectores al cual se accede en cada operación de lectura y escritura en disco.

Esta organización de la información en el disco se lleva a cabo durante el formateado a

bajo nivel. Es un proceso que, generalmente, lleva a cabo el fabricante. Así, en el disco también se almacena información de control.

Todos los sectores tienen la misma capacidad. Típicamente, 512 bytes. Si todos tienen

el mismo tamaño puede ocurrir que algunos sectores tengan una densidad de almacenamiento mucho menor que otros. Así, los fabricantes buscan que todos los sectores tengan la mayor densidad posible.

Por otra parte, los sectores suelen estar numerados de acuerdo a un criterio del

fabricante. Capítulo 6.2.1.4.3. PARÁMETROS DE UNA UNIDAD DE DISCO. Los principales parámetros empleados para describir una unidad de disco son su

capacidad, su tiempo de acceso y la densidad de almacenamiento. Capítulo 6.2.1.4.3.1. CAPACIDAD. Es un parámetro fundamental en las unidades de disco. Suele expresarse en KB, MB,

etcétera. Para obtener la capacidad de un disco a partir de sus pistas, sectores y superficies se sigue la siguiente fórmula:

����

+5�������� ��

!���

���� ������� ��

��! 6���

!��� ������� ��

�����

���! 6��������� �� ! ��� � =

Capítulo 6.2.1.4.3.2. TIEMPO DE ACCESO. Es el tiempo medio de lectura y escritura. Intervienen tres factores: • tiempo de búsqueda, • tiempo de latencia y • tiempo de transferencia. El tiempo de búsqueda es el tiempo que transcurre hasta que la cabeza de lectura y

escritura se alinea sobre la pista correspondiente. Es un tiempo mecánico y por tanto, alto. Se le denomina seek – time.

El tiempo de latencia es el tiempo necesario para que el sector a leer se sitúe sobre la

cabeza de lectura y escritura. Es un tiempo aleatorio ya que depende del ángulo de la cabeza. El tiempo medio es el tiempo de dar media vuelta. Al aumentar la velocidad de rotación del disco, disminuye este tiempo.

El tiempo de transferencia es el tiempo necesario para que el sector completo pase

debajo de la cabeza de lectura y escritura. Este tiempo depende nuevamente de la velocidad de rotación del disco.

Así, �� � ��6 �� ���� +��'�� ���� ++=

Page 124: 109154402 estructura-computadores

Universidad de Oviedo ESTRUCTURA DE LOS COMPUTADORES

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 124

Capítulo 6.2.1.4.3.3. DENSIDAD DE ALMACENAMIENTO. Determina el número de bits que se pueden almacenar por unidad de superficie. Suele

venir definida por dos parámetros: • TPI (tracks per inch) • BPI (bits per inch) Capítulo 6.2.1.5. LOS DISCOS FLEXIBLES. Estos discos están formados por un plato de material flexible. Sus cabezas tocan la

superficie del disco. Así, al estar tocando las superficies de los discos se tienen unas velocidades de rotación muy lentas, con lo que su tasa de transferencia es muy baja.

Tienen una baja capacidad y son muy poco fiables. Capítulo 6.2.1.6. LOS DISCOS ZIP. Son básicamente disquetes mejorados. No constituyen un “estándar” sino que son

propiedad de Iomega. Las cabezas siguen tocando la superficie del disco aunque en menor medida. Además,

éstas son mas pequeñas y por tanto se dispone de una mayor densidad de almacenamiento. Capítulo 6.2.1.7. LOS DISCOS DUROS. Son las unidades de almacenamiento magnético de mayor capacidad. Están formadas

por platos rígidos cubieros por una superficie magnética. Pueden tener varios platos girando de manera solidaria. Sus velocidades son muy elevadas ya que las cabezas no tocan la superficie del plato.

Esta separación se consigue gracias a que las cabezas “vuelan” sobre la superficie. Cuando el disco está parado, la cabeza de lectura y escritura toca en la superficie. Los fabricantes determinan una pista sobre la que aparcar las cabezas.

Por otra parte, dentro de la electrónica de los discos suele haber un buffer de

almacenamiento temporal. Capítulo 6.2.1.8. OTROS DISPOSITIVOS DE ALMACENAMIENTO MAGNÉTICO. Podemos destacar las cintas magnéticas.

Page 125: 109154402 estructura-computadores

Universidad de Oviedo ESTRUCTURA DE LOS COMPUTADORES

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 125

Capítulo 6.2.1.8.1. CINTAS MAGNÉTICAS. Son dispositivos de almacenamiento removible. Su acceso es secuencial. Estos

dispositivos son utilizados básicamente para hacer copias de seguridad o back – ups debido a su elevada capacidad, especialemente cuando las copias de seguridad son superiores a 10 GB. Así, cuando la información se lee de forma secuencial, la velocidad de transferencia oscila entre los 5 MB/s.

���������� ���*�����������������������������?����

Físicamente se componen de un material plástico y sobre él, una superficie magnética.

Estas cintas se desplazan a velocidad constante y, gracias a la cabeza de lectura y escritura, se induce un campo magnético variable que magnetiza la superficie de la cinta, almacenando la información correspondiente. El proceso de lectura es análogo.

Capítulo 6.2.2. ALMACENAMIENTO ÓPTICO. Visto el almacenamiento magnético vamos a estudiar el almacenamiento óptico, basado

en las propiedades ópticas de los materiales. Concretamente, vamos a estudiar el CD (compact disk) y el DVD (digital versatile disk).

Capítulo 6.2.2.1. PRINCIPIO DE FUNCIONAMINENTO. En un CD – ROM distinguimos: • un material plástico y transparente que actúa de sustrato; sobre él, • una capa metálica y sobre esta, • una capa protectora donde se sitúa la etiqueta. Concretamente, la información se almacena sobre la capa metálica, la cual es reflectora. Cuando se graba un CD – ROM se marca la superficie metálica. Estas marcas se

denominan pits u hoyos. El resto de la superficie que no ha sido marcada se denomina land. Sobre un land, la luz se refleja. Por el contrario, cuando la luz incide sobre un pit no se

refleja.

Page 126: 109154402 estructura-computadores

Universidad de Oviedo ESTRUCTURA DE LOS COMPUTADORES

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 126

La información se almacena en una espiral que comienza en el centrol del disco hasta la periferia.

���������� "��F����)�����������$���������/�����������$���������-7�2�+F0

Para leer el CD se utiliza un haz de luz láser, gracias a que tienen una frecuencia única y

a su precisión. Así, el haz de luz se sitúa sobre una zona concreta de la superficie y si ésta refleja el haz de luz, será detectado por un fotodetector.

Capítulo 6.2.2.1.1. CODIFICACIÓN DE LA INFORMACIÓN MEDIANTE PITS Y LANDS. Se emplea la codificación ISO 9660. Un uno se codifica como una transición de pit a land

o viceversa. La duración del pit o land indica el número de ceros. Por encima se sitúa un mecanismo de codificación para asegurar que el tamaño de los

pits y de los lands está dentro de un rango, definido por un valor mínimo y un máximo. Concretamente, para codificar un byte se utilizan 14 bits (codificación EFM, eigth to fourteen modulation). Esta codificación se basa en elegir entre las �� combinaciones posibles 256 que nos aseguran que el tamaño de los pits y de los lands esté dentro del rango.

Además, hay tres bits que nos aseguran que el tamaño de los pits estén dentro de los

rangos permitidos, incluso entre dos bytes consecutivos.

Page 127: 109154402 estructura-computadores

Universidad de Oviedo ESTRUCTURA DE LOS COMPUTADORES

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 127

Capítulo 6.2.2.1.2. PRINCIPIO DE FUNCIONAMIENTO. Los bytes se agrupan en bloque s de 2352 bytes. A veces se les denomina sectores.

Cada segundo se reproducen 75 sectores. Así, supongamos un CD típico de 74 minutos. En un CD – ROM, de los 2352 bytes se utilizan 2048 para almacenar información y el resto se utiliza para la detección y tratamiento de errores. Así tenemos:

�/����1/����

�/���

+5������

1/���

���� ��

+5�������

��������

���� �����

��������

��������������������� =

Capítulo 6.2.2.2. TIPOS DE ALMACENAMIENTO ÓPTICO. Distinguimos CD – ROM (vienen estampados de fábrica), CD – R (una sóla escritura),

CD – RW (múltiples escrituras), DVD – ROM, DVD±R y DVD±RW, Capítulo 6.2.2.3. EL CD – ROM. Son unidades capaces de leer CD´s de datos o audio. Emplean un láser con una longitud

de onda de 1.6µm, que se sitúa en el espectro de los infrarrojos y por tanto no es visible. La especificación base del CD – ROM tenía una tasa de transferencia de 150 KB/s. Capítulo 6.2.2.4. EL DVD – ROM. Básicamente es un CD – ROM avanzado. Su láser tiene una longitud de onda de 635

nm., que se sitúa en el espectro del rojo y por tanto es una luz visible. La capacidad de un DVD – ROM es de 4.7 GB (una capa) o 8.5 GB (dos capas). También hay mejoras en la codificación y en la detección y tratamiento de errores. La velocidad base es de 1.3 MB/s. Capítulo 6.2.2.5. CD´S Y DVD´S GRABABLES Y REGRABABLES. Capítulo 6.2.2.5.1. GRABABLES. En este tipo de dispositivos se deposita sobre el sustrato un material fotosensible que

refleja la luz en condiciones normales pero que, cuando el material se quema por la incidencia de un láser de alta potencia, ya no refleja la luz. Así, se puede simular el comportamiento de los pits.

Capítulo 6.2.2.5.2. REGRABABLES. Se dispone en la espiral de una cierta aleacion cristalina que refleja la luz. Cuando se graba se hace incidir un láser de muy alta potencia que hace que el material

se funda (600 ºC) y pierda sus propiedades cristalinas, dejando de reflejar la luz. Para hacer el borrado se utiliza el láser con una potencia menor calentando el material a

temperaturas del orden de 200 ºC. A estas temperaturas el material recupera sus propiedades cristalinas.

Page 128: 109154402 estructura-computadores

Universidad de Oviedo ESTRUCTURA DE LOS COMPUTADORES

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 128

Capítulo 6.2.3. ALMACENAMIENTO MAGNETO – ÓPTICO. Combina las propiedades magnéticas y óptimas de los materiales. Estos discos son muy

utilizados en entornos profesionales para realizar copias de seguridad ya que son muy fiables. Como inconveniente, son muy caros.

Sus tasas de transferencia oscilan entre los 6 MB/s y su tamaño es menor de 10 GB. Capítulo 6.2.3.1. PRINCIPIO DE FUNCIONAMIENTO. Mediante un láser de alta potencia se calienta una zona del material a temperaturas de

300 ºC. Con esta temperatura, el material es sensible a campos magnéticos, luego puede ser escrito

Por otra parte, el proceso de lectura es un proceso óptico. Dependiendo de la polaridad

del material, al hacer incidir un láser de baja potencia, los reflejos varían en función de la orientación magnética

���������� #��.���������$���������������������������������2������

Page 129: 109154402 estructura-computadores

Universidad de Oviedo ESTRUCTURA DE LOS COMPUTADORES

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 129

Capítulo 6.2.4. ALMACENAMIENTO BASADO EN SEMICONDUCTORES. Se emplea la tecnología flash. Son memorias que se pueden leer o escribir

eléctricamente de forma muy sencilla. Son memorias lentas en acceso secuencial y tienen un número limitado de escritura.

Page 130: 109154402 estructura-computadores

Universidad de Oviedo ESTRUCTURA DE LOS COMPUTADORES

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 130

Capítulo 6.3. PERIFÉRICOS DE ENTRADA. Los periféricos de entrada permiten introducir información en el computador. Vamos a

estudiar el teclado y el ratón. Capítulo 6.3.1. EL TECLADO. Es un dispositivo indispensable. Permite introducir caracteres u ordenes de control. Capítulo 6.3.1.1. CONSTITUCIÓN FÍSICA. Cada tecla, al ser pulsada, cierra unos contactos eléctricos.

���������� '����&�������������������

Según como se lleve a cabo esto distinguimos pulsadores de: • muelle • membrana • … Capítulo 6.3.1.2. FUNCIONAMIENTO DEL TECLADO. Es necesario tener en cuenta tres aspectos a la hora de explicar el funcionamiento de un

teclado: • La detección de la pulsación y la liberación de la tecla. • La traducción del evento de teclado a código binario. • La transmisión del código binario al computador.

Page 131: 109154402 estructura-computadores

Universidad de Oviedo ESTRUCTURA DE LOS COMPUTADORES

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 131

Capítulo 6.3.1.2.1. DETECCIÓN DE LA PULSACIÓN Y LIBERACIÓN DE LA TECLA. Los pulsadores se combinan formando una matriz. Así, el número de entradas que llegan

al circuito de tratamiento de la pulsación será lo más pequeña posible.

���������� (��0 ���)��������������

Con este esquema, es necesario realizar un barrido de todas las filas, poniendo sólo una

de ellas en cada instante a uno. Al mismo tiempo, se observan las columnas que se activan. Así, el decodificador activará cada fila, el estado de las columnas llegará al codificador,

que devolverá la columna de la tecla pulsada al chip de teclado. De este modo el par (fila, columna) determinan una única tecla en la matriz de pulsadores.

���������� �!����&�����������������������������������������

Page 132: 109154402 estructura-computadores

Universidad de Oviedo ESTRUCTURA DE LOS COMPUTADORES

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 132

Capítulo 6.3.1.2.2. TRADUCCIÓN DEL EVENTO DEL TECLADO A UN CÓDIGO BINARIO. Cada tecla tiene asociados dos códigos: • un código MAKE, de pulsación y • un código BREAK, de liberación. En la arquitectura IA – 32, el código BREAK es MAKE + 80h. Estos códigos no son códigos ASCII sino códigos de posición en el teclado. Estos

códigos suelen denominarse códigos de scan (scan codes). Además, el controlador de teclado permite la función de repetición automática

(typematics) cuando se mantiene una tecla pulsada durante un prolongado periodo de tiempo. Por otra parte, siempre se envía el código de la última tecla pulsada. Estos códigos son recibidos de forma secuencial en el computador, lo que permite interpretar combinaciones de teclas.

Capítulo 6.3.1.2.3. TRANSMISIÓN DEL CÓDIGO AL COMPUTADOR. Depende de la interface empleada (serie, PS/2, USB, etcétera). Con PS/2, los códigos se

envían en serie a través de la línea KBDATA.

���������� � �������$����.�D������������������������������������������

Capítulo 6.3.2. EL RATÓN. Es un dispositivo de entrada que permite señalizar posiciones en la pantalla del

ordenador. Distinguimos dos tipos de ratones: • mecánicos u • ópticos. Capítulo 6.3.2.1. PRINCIPIO DE FUNCIONAMIENTO. Si el ratón de deslaza a derecha/izquierda el puntero se mueve en pantalla hacia

derecha/izquierda y si el ratón se mueve adelante/atrás, el puntero se mueve en pantalla arriba/abajo.

Suelen constar de dos o tres botones de acción.

Page 133: 109154402 estructura-computadores

Universidad de Oviedo ESTRUCTURA DE LOS COMPUTADORES

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 133

Capítulo 6.3.2.2. CONSTITUCIÓN FÍSICA Y FUNCIONAMIENTO DEL RATÓN MECÁNICO. El ratón mecánico consta de una bola y tres rodillos que actúan de ejes. Cuando más

giren estos rodillos, más se habrá desplazado el ratón. ¿Cómo se detecta el movimiento? Se emplea un fotosensor. Además, existen unos

encoders que permiten contar el número de pulsos producidos.

���������� ����-���������$<��������������������

El principal problema que tiene este tipo de ratón es que consta de partes mecánicas

móviles, susceptibles al desgaste y a la suciedad.

Page 134: 109154402 estructura-computadores

Universidad de Oviedo ESTRUCTURA DE LOS COMPUTADORES

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 134

Capítulo 6.3.2.3. CONSTITUCIÓN FÍSICA Y FUNCIONAMIENTO DEL RATÓN ÓPTICO. El ratón óptimo consta de un led que emite una luz, que se refleja en la superficie y llega

a un sensor óptico, el cual procesa la imagen y determina el movimiento realizado.

���������� ����-���������$<�����������������

Al carecer de partes mecánicas, no sufren desgaste. Capítulo 6.3.2.4. CONEXIÓN DEL RATÓN CON EL COMPUTADOR. Al igual que en el teclado, la conexión del ratón al computador se puede realizar a través

de varias interfaces: PS/2, serie, USB, Bluetooth, etcétera.

Page 135: 109154402 estructura-computadores

Universidad de Oviedo ESTRUCTURA DE LOS COMPUTADORES

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 135

Capítulo 6.4. PERIFÉRICOS DE SALIDA. Distinguimos dos tipos de periféricos de salida: • los que proporcionan información impresa y • los que proporcionan información gráfica. Capítulo 6.4.1. MONITORES CRT. También conocidos como monitores de rayos catódicos. Su funcionamiento es muy

simular al de una televisión. Capítulo 6.4.1.1. CONSTITUCIÓN Y PRINCIPIOS DE FUNCIONAMIENTO DE UN MONITOR. El cátodo es un emisor de electrones. Es un metal que, a temperaturas muy elevadas

emite eletrones. El ánodo es un acelerador de electrones. El conjunto formado por el ánodo y el cátodo se denomina cañón de electrones. El haz de electrones emitido por el cañón llega a una placas deflectoras que generan un campo magnético que desvía la trayectoria de los electrones tanto vertical como horizontálmente, de modo que éstos puedan inicidir en cualquier punto de la pantalla. En esta pantalla existe un material fluorescente que ante el impacto del haz de electrones se ilumina. De modo que, cuanto mayor sea la velocidad de los electrones, mayor será la intensidad de la luz emitida.

���������� ������&�������������������-+,

Existen dos principios físicos que permiten la representación de imágenes en pantalla: • la fluorescencia, ya descrita y, • la persistencia. La persistencia consiste en que la emisión de la luz se mantiene un tiempo aunque no

incida el haz de electrones y también en la retina del ojo humano.

Page 136: 109154402 estructura-computadores

Universidad de Oviedo ESTRUCTURA DE LOS COMPUTADORES

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 136

Capítulo 6.4.1.2. FUNCIONAMIENTO Y CONTROL DE UN MONITOR. Para representar una imagen en pantalla se emplea el método del barrido. Este proceso

se divide en el barrido horizontal y el vertical. Además, se emplean señales de sincronismo para indicar el comienzo de una nueva línea y de una pantalla, respectivamente.

���������� ����+���)��������/�������������������-+,

���������� �"��G�����������������������������������������$��������������������/�����

El barrido puede ser: • entrelazado, es decir, en el primer barrido se barren las líneas impares y en el

segundo, las pares, o • no – entrelazado.

Page 137: 109154402 estructura-computadores

Universidad de Oviedo ESTRUCTURA DE LOS COMPUTADORES

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 137

Capítulo 6.4.1.3. MONITORES EN COLOR. Para generar cualquier color podemos emplear los tres colores básicos: el rojo, el verde

y el azul. Así, para crear monitores en color existen tres fósforos, uno para cada color. De esta forma, para generar imágenes en color se emplean tres haces de luz de modo que cada píxel esté formado por una terna (R,G,B).

Capítulo 6.4.1.4. CARACTERÍSTICAS GENERALES DE UN MONITOR. Las principales características que definen un monitor son: • tamaño, • resolución, • frecuencia de barrido vertical y horizontal y • tamaño del punto o dot pitch. Capítulo 6.4.2. MONITORES LCD. Estos monitores tienen dos ventajas fundamentales frente a los CRT: • el consumo y • el tamaño. Además, emiten menos radiaciones electromagnéticas y su contaminación es menor. Como desventajas: • son mas lentos y • menos precisos. Capítulo 6.4.2.1. PRINCIPIOS FÍSICOS DE FUNCIONAMIENTO. Físicamente, estos monitores están formados por un líquido con moléculas muy

ordenadas. Inicialmente, estas moléculas están alineadas de acuerdo a un eje director o eje óptico. Además, estas moléculas se ven afectadas por campos eléctricos, alineándose en el sentido de éstos.

Un monitor LCD se forma de varias capas de moléculas entre dos superficies de vidrio y

dos polarizadores. Al aplicar un campo eléctrico entre las dos superficies de vidrio, las moléculas se alinearán. Así, podemos controlar que la luz pase o no, actuando como un filtro. Así, los LCD´s no emiten luz sino que necesitan una fuene, generalmente, halógena, que será filtrada para formar una imagen.

Page 138: 109154402 estructura-computadores

Universidad de Oviedo ESTRUCTURA DE LOS COMPUTADORES

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 138

���������� �#������������%������)������)����������$������

���������� �'��1��������������������?�������������?�����������������$�������������)������)���

Page 139: 109154402 estructura-computadores

Universidad de Oviedo ESTRUCTURA DE LOS COMPUTADORES

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 139

Capítulo 6.4.2.2. LA TECNOLOGÍA DE LOS LCD. Para permitir o no el paso de luz a través de una celda existen dos técnicas: • matriz pasiva o • matriz activa. La matriz pasiva se organiza en filas y columnas de electrodos, lo cual no resulta muy

preciso. La matriz activa se organiza en filas y columnas de TFT´s de material traslúcido. Estos

transistores de capa delgada son mucho más precisos que los electrodos empleados por la matriz pasiva.

Capítulo 6.4.2.3. FUNCIONAMIENTO DE LOS LCD. Para generar imágenes en color, los monitores TFT constan de filtros, uno para color

básico. Capítulo 6.4.3. IMPRESORAS. De acuerdo a la forma de transforar la información distinguimos: • impresoras orientadas a carácter o • impresoras orientadas a página. Capítulo 6.4.3.1. PRINCIPIOS DE FUNCIONAMIENTO DE UNA IMPRESORA.

���������� �(����&��������?�������������������

Page 140: 109154402 estructura-computadores

Universidad de Oviedo ESTRUCTURA DE LOS COMPUTADORES

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 140

Capítulo 6.4.3.2. IMPRESORAS DE AGUJAS. Marcan los puntos en el papel al presionar sore una cinta entintada. Estas agujas se

conectan a un solenoide que, al generar una corriente, hacen que la aguja se desplace marcando un punto sobre el papel.

���������� �!����&��������$���������������������������������� ��

Page 141: 109154402 estructura-computadores

Universidad de Oviedo ESTRUCTURA DE LOS COMPUTADORES

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 141

Capítulo 6.4.3.3. IMPRESORAS DE CHORRO DE TINTA. El cabezal dispone de una boquillas a través de las cuales se inyecta la tinta sobre el

papel. Para inyectar la tinta se puede emplear un piezoeléctrico o un elemento térmico. Para generar las impresiones en color se emplean tres colores: cyan, amarillo y

magenta. La saturación del color se consiguie dejando más o menos puntos en blanco.

���������� � ����;�������������������?����������)���?���������������������?����

Page 142: 109154402 estructura-computadores

Universidad de Oviedo ESTRUCTURA DE LOS COMPUTADORES

Escuela Universitaria de Ingeniería Técnica en Informática de Oviedo (E.U.I.T.I.O) �

Alberto Suárez López Página 142

Capítulo 6.4.4.4. IMPRESORAS LÁSER. Están orientadas a página. En primer lugar se genera una matriz de puntos a partir de la

descripción de la página. El tambor en su superficie, que tiene un material fotosensible, pasa al lado de la corona de carga, que realiza una carga electromagnética negativa. Mediante un láser y a través de un espejo, se descargan de manera selectiva determinados puntos. A continuación, se aplica toner (tinta en polvo) sobre el tambor, que se carga negativamente. Este polvo sólo quedará retenido en los puntos sobre los que ha accedido el láser. El papel pasa por otra corona de carga que carga el papel positivamente. Así, el polvo se despega de tambor y queda pegado al papel. Este papel pasa a un eliminador de carga estática y a continuación pasa por unos rodillos de fusión, que calientan el papel, fijando la tinta.

���������� ������&��������������������������

¡