La memoria del PC

Informática computacional. Alimentación. Memoria del 8086. Componentes de la caché

  • Enviado por: Daniel Maestre Monroy
  • Idioma: castellano
  • País: España España
  • 6 páginas
publicidad

TEMA 8: LA MEMORIA DEL PC

8.1 Manejo de la memoria del 8086

El 8086 es un microprocesador de 16 bits, pero que también puede manejar datos de 8 bits. La memoria esta organizada en 2 bancos, estos bancos se denominan el banco par y el banco impar.

  • Banco par: En este banco se guardan las direcciones pares.

  • Banco impar: En este banco se guardan las direcciones impares.

Para obtener los daros de uno y otro banco, o de los dos, utilizaremos las señales: A0 y BHE.

La señal A0 es para el acceso de los bytes pares y para los bytes impares la señal BHE. Si se desea el acceso a una palabra usaremos las dos señales al mismo tiempo.

El byte bajo de la palabra será recogido por las líneas D0......D7 del bus de datos y las líneas D8.....D15 contendrán el byte alto.

8.1.1 Alineamiento de la memoria.

Este método tiene un ligero problema: La palabra de 16 bits esta almacenada en dos bytes alineados, ambos bytes pueden ser leidos o escritos al mismo tiempo. Sin embargo, en el 8086 no siempre es así.

La operación de acceso debe realizarse en dos ciclos de reloj por lo que es mas lento.

* Si los daros son de tipo byte o word alineados en el ciclo de lectura como el de escritura tarda dos ciclos de reloj.

* Si los datos de tipo word no están alineados, en lugar de tardar dos ciclos de reloj tarda tres.

Es necesaria la señal M/IO (que llegan a los Chip Select de las memorias) para diferenciar si el acceso es a la memoria o a los puertos de Entrada/Salida.

8.1.2 Organización de la memoria en los 80286,80386,i486 y Pentium.

Estos ordenadores tienen para instalar la memoria, unas ranuras, donde se insertan módulos SIP, SIMM oDIMM.

80286: Posee un bus de datos de 16 bits y tiene 4 ranuras: 2 ranuras para el BANK 0 y otras 2 para el BANK 1.A la hora de instalar la memoria dibemos hacirlo ocupando completamente uno de los dos BANK.

El primer módulo del VAN 0 contendría los bytes pares y el segundo los impares.

80386 y i846: Es idéntico al 80286 pero tiene espacio para cuatro modulos. En lugar de seleccionar uno y otro modulo con las líneas Ao y BHE, disponemos de 4 líneas llamadas: BE3, BE2, BE1, BE0.Con esto obtenemos datos de 8,16,24,32 bits.

Pentium: Dispone de dos BANK, cada uno tiene espacio para ocho módulos, ya que son ordenadores de 64 bits. Dispone de 7 líneas para obtener datos de hasta 64 bits.

8.1.3 Entrelazado.

A este tipo de organización, de tener la memoria dividida en dos filas: una que contiene las direcciones pares y otra las impares, se la denomina memoria entrelazada.

El proceso de la memoria entrelazada consiste en refrescar las direcciones pares cuando se esta almacenando un dato en una dirección impar y viceversa.

Actualmente, se ha conseguido una mayor mejora del tiempo de acceso incorporando una pequeña memoria intermedia SRAM conocida con el nombre de memoria caché.

8.2.1 Memoria convencional.

La memoria convencional es la memoria en la que funciona la mayoría de los programas escritos para el sistema operativo DOS. Se extiende desde el primer byte direccionable de la RAM del sistema hasta la 640 kb.

*000H a 3FFH: los primeros 1024 bytes se utilizan para almacenar la tabla de vectores de interrupción que es un medio que tienen los dispositivos hardware para indicar a la CPU que necesitan atención.

*400H a 4FFH:Estos 256 bytes de memoria existentes sobre la tabla de vectores de interrupción son el aria de comunicación ROM donde la BIOS almacena las direcciones de E/S de los puertos serie y paralelo.

*500H a 6FFH:Los 512 bytes siguientes forman el área de comunicación de DOS como almacenaje de punteros y datos -objetos destinados al interprete BASIC de IBM.

*700H en adelante: directamente encima de la zona anterior, es donde el sistema operativo carga los archivos IO.SYS MSDOS.SYS y los controladores de dispositivos interno.

8.2.2 Memoria extendida(XMS)

Aparece con los 80286 ya que estos pueden manejar 16 Mb como máximo(640 kb convencional, 340 kb superior y 15Mb extendida).El 80386 puede direccionar hasta 4Gb.

Acceso a la memoria extendida: Para acceder, la CPU cambia a modo protegido. Esto permite al microprocesador formar direcciones de numeración superior, que le permiten llegar mas allá de 1 Mb.0

Controlador de memoria extendida: Para utilizar este tipo de memoria, es necesario tener instalado en controlador XMS en el CONFIG.SYS. El controlador de Microsoft es el HIMEN.SYS, y proporciona 18 funciones diferentes que pueden usar los programas para acceder a la memoria mas allá de los 640 Kb.

8.2.1 El área de memoria alta (HMA)

Un 80286 y superiores pueden acceder a la mayoría de las primeros 64 Kb de memoria extendida sin abandonar el modo real. Esta región de memoria es conocida como HMA.

Manipulando la línea A20, un programa puede direccionar los primeros 64 Kb de memoria extendida, excepto los 16 Kb bytes finales. Eso es la que hace exactamente la versión 5.0 o superior del sistema operativo DOS, mediante el controlador para ganar acceso a la HMA. Al situar la mayor parte del sistema operativo en esta zona, se libera memoria convencional, tan necesaria para ejecutar las aplicaciones.

8.2.4 Memoria expandida(EMS)

Surgió ante la necesidad de mas memoria para ejecutar algunos programas en ordenadores basados en el microprocesador 8086 y 8088.

En 1985 se propuso una solución que utilizaba una combinación de hardware y software denominada memoria expandida, es mas bien un área de almacenamiento de memoria que se encuentra sobre una tarjeta. Dicha tarjeta se instala dentro del ordenador en una de las ranuras de expansión.

* Instalación de la memoria expandida: Para que el ordenador pueda usar la memoria expandida se necesita una serie de elementos que descubriremos a continuación:

- Una tarjeta de memoria compatible EMS que se instala en una de las ranuras de expansión libres del equipo.

- Un controlador de dispositivos conocido con el nombre de gestor de memoria expandida o EMM.Hasta la versión 3.2 se podían manejar hasta 8 Mb de memoria adicional de este modo.La versión 4.0 incrementó el rango hasta los 32 Mb.

* Funcionamiento de la memoria expandida: La memoria expandida se sitúa en una de tarjeta de expansión introducida en una de las ranuras de expansión del PC y es independiente de la memoria principal.

Un programa puede disponer de fragmentos de 16 Kb.

Esta memoria utiliza la conmutación de paginas realizadas por el hardware y software es decir que las paginas de 16 Kb pueden intercambiarse dentro y fuera del marco de pagina.

* Emuladores de memoria expandida: Hay utilidades disponibles de otras empresas que almacenan los datos EMS en el disco duro en vez de la memoria física.

8.2.5 Memoria superior (bloques de memoria superior A0000H- FFFFFH )

La región de memoria entre los 640 Kb y 1 Mb se llamaría memoria superior porque en un principio esta reservada para usos relacionados con el sistema, tales como:

* Proporcionar espacio de dirección a la placa del sistema y a los adaptadores de ROM.

* Los módulos BIOS, así como cualquier modulo de BIOS adicional que trae cada una de las tarjetas instaladas en los slots de expansión, tales como: controladoras de disco duro y tarjetas de video

* El buffer o RAM de video, determina lo que aparece en la pantalla.

Las zonas dentro del primer Mb las podría utilizar el micro para ejecutar programas. Para conseguirlo, se mapea la memoria extendida en las áreas no utilizadas entre 640 Kb y 1 Mb para crear regiones o bloques de memoria superior, o UMB.

* Acceso a los bloques de memoria superior: Para crear los UMB, se necesita tener un ordenador 80386 o superior que posea memoria extendida.

Para conseguir este acceso a los bloques de memoria superior, el controlador examina el espacio de dirección desde los 640 Kb hasta 1 Mb buscando regiones que no estén habilitadas ni por la RAM ni por la ROM.

El controlador funciona en modo protegido y hace funcionar al sistema DOS en modo virtual-86 que proporciona aplicaciones con acceso completo a todo el rango de direcciones.

* Instalación de los bloques de memoria superior: Para que el ordenador pueda usar los bloques de memoria superior se necesitan los dispositivos:

- Un 80386

- Un controlador de dispositivo como el EMM386.EXE, suministrado por el sistema operativo DOS a partir de la versión 5.0

8.2.6 Shadow RAM

Es una técnica que se basa en copiar la BIOS de video y del sistema en un área no utilizada de la RAM de la memoria superior al arrancar el ordenador.

El por qué de hacer este uso es sencillo, puesto que la RAM es más rápida que la ROM, esto mejora las prestaciones generales del sistema, ya que las rutinas de la BIOS se ejecutan cientos de veces por segundo. Si se activa esta opción se reparten en las zonas libres de los últimos 384 Kb del 1 Mb (memoria superior).

La shadow RAM desvía las direcciones de la ROM a la RAM).

* Instalación de la shadow RAM: En un 386 o superior se pueden activar o desactivar esta opcion en el SETUP o utilizando una opcion del gestor HIMEN.SYS del sistema operativo DOS.

La shadow RAM no puede ser añadida al ordenador. Si desea adquirir un ordenador que tenga shadow RAM fíjese que posibilite el activarla o no porque puede tener conflicto con ciertas aplicaciones.

8.3 La distribución de la memoria en Windows.

La mayoría de los tipos de memoria que estudiamos surgieron por la incapacidad del sistema operativo DOS de manejar mas de 1 Mb de memoria.

Los nuevos sistemas operativos utilizan el modo protegido y el virtual-86.De esta forma, el mapa de memoria es continuo y el usuario no tiene que preocuparse si los drivers deben estar en una u otra zona para liberar memoria.

8.4 La memoria caché

Las memorias SRAM son muy rápidas, debido a que no necesitan ciclo de refresco para mantener los datos, pero su precio es muy elevado comparado con la DRAM.

Cuando el microprocesador lee datos de la memoria principal los almacena en la memoria caché(SRAM). Si el micro vuelve a necesitar esos datos, los lee de la memoria caché en lugar de la memoria principal.

Al principio la caché venia fuera del micro (caché de nivel 2), pero ahora esta dentro de la propia CPU (caché de nivel 1) y una caché de mayor tamaño de nivel 2.

8.4.1 Principio de localidad

Con el uso de la memoria caché el rendimiento es mayor, debido a que se basan en un principio informático denominado principio de localidad de referencia:

* Espacial: Si observamos que se repiten mucho los accesos a unas posiciones de memoria

* Temporal: La probabilidad de que el micro vuelva a acceder a la misma posición de memoria unos ciclos después.

8.4.2 Componentes de la caché

Todo sistema caché esta formado por los siguientes elementos:

* Una memoria asociativa: Constituida por los chips de memoria SRAM (10/45 ns) y que se sitúa entre la memoria principal y el micro. Suele tener una capacidad de 8 Kb y 512 Kb.

* Un controlador de la caché: El controlador como por ejemplo el 82385, mejora la velocidad de acceso a la memoria en un 80% con un porcentaje de aciertos del 95%.

Este tipo de memorias no se puede añadir al ordenador, sino que debe venir implementada en el sistema.

8.4.3 Funcionamiento de la memoria caché

El funcionamiento de la caché es el siguiente: Cuando el micro lee o escribe datos en la mamoria principal, tambien los escribe en la memoria caché, de forma que si vuelve a necesitar esos datos, accede a la caché em vez de acceder a la memoria principal, mejorando de esta forma considerablemente la velocidad del sistema.

Al almacenar los datos necesitamos asociarlos a una etiqueta. Para conseguirlo la caché dispone de un directorio o tag.

* Ciclos de lectura: La lectura se hace de la memoria caché, terminando el ciclo antes de los que seria necesario para acceder a la memoria exterior. Si no la lectura se hará de la memoria central.

* Ciclos de escritura: La escritura de los datos se pueden realizar de dos formas dependiendo del tipo de caché que se integre:

- Write Through (escribir directamente): Si el dato esta en la memoria caché (acierto), ambas, memoria principal y caché, se utilizan con el dato que entrega la CPU.

Este método es mas lento que el que veremos a continuación pero es mas sencillo de implementar.

- Write back (escribir después): Si el dato esta en la memoria caché (acierto), solamente se actualiza la memoria caché y en cada linea se añade un campo denominado “sucio” para indicar que ha sido modificado. En este caso se actualiza la memoria principal a la hora de ser reemplazado.

Esta memoria es más rápida que la anterior.