Memoria RAM
La memoria es uno de los componentes fundamentales de las computadoras, ya que sin ellas, éstas no podrían procesar información de ninguna manera, porque no tendrían un medio de información temporario.
La memoria principal es el medio de almacenamiento temporal en el que el microprocesador puede escribir, leer o modificar información. A esta memoria se la conoce como memoria RAM (Randon Acces Memory - memoria de acceso aleatorio). Se puede considerar a la memoria como una gigantesca cajonera en donde, cada casilla representa un byte y tiene una dirección. El microprocesador puede leer, escribir o modificar la información en cada una de las casillas, pero para ello debe indicar la dirección de la misma y la información que desea depositar o leer, es por ellos que se llama de acceso aleatorio. La memoria se demora un cierto tiempo en encontrar la casilla por su dirección y actualizar la información existente en la misma por otra. La velocidad de la memoria tendrá que ser adecuada para el microprocesador con que que se trabaje.
La memoria RAM se puede leer o escribir, es decir, puede cambiar su contenido. Estas memorias también se conocen como memorias de acceso directo, porque el tiempo necesario para leer un dato es constante, a diferencia de una cinta de cassette, es la cual el acceso es secuencial, es decir, para buscar un dato al final de la cinta se debe pasar primero por los datos anteriores, consumiendo esta tarea mucho más tiempo que con las memorias RAM.
Las memorias RAM entran en la categoría de memorias volatiles, es decir que su contenido se borra cuando se apaga la computadora. Cualquier dato que estuviese almacenado, se pierde.
La cantidad de memoria que se necesita depende de manera proporcional de la cantidad de información con la que se va a trabajar. Mientras más programas se tengan corriendo en la computadora al mismo tiempo, más memoria se necesitará para poder trabajar con ellos.
Mapa de memoria
La memoria del 8088
Este procesador solamente puede direccionar 1 megabyte. De este megabyte, sólo los primeros 640 Kb son utilizados por los programas para ejecutarse, mientras que los 384 Kb restantes son utilizados por los fabricantes de computadoras para almacenar operaciones de la ROM BIOS, la memoria de video, etc. Por esa razón, esta sección de memoria no puede ser utilizada por programas, aunque quedan huecos de memoria que sí pueden ser aprovechados. La forma de aprovecharlos se verá más adelante
Memoria convencional
Este tipo de memoria consiste en los primeros 640 Kb o menos en computadoras antiguas. La utilizan los sistemas operativos para cargar su parte fija en memoria, sus controladores y los programas residentes. Es un área de memoria plana accesible de forma directa y utilizada para almacenar y correr programas. La cantidad de memoria máxima está limitada por el tipo de procesador, pero para ejecutar la mayoría de los programas sigue existiendo el límite de 640 Kb, esto es para mantener la compatibilidad entre los computadores nuevos con los viejos.
La memoria superior
La memoria superior está compuesta por los huecos de la memoria no utilizados entre los 640 Kb y 1024 Kb. Esta memoria no puede ser utilizada directamente por el DOS o los programas, aunque los huecos que quedab pueden aprovecharse para cargar los controladores o programas residentes.
Los huecos libres se llaman UMB (Upper Memory Blocks, bloques de memoria superior) y los controladores que allí se carguen deben aprovechar al máximo dichos huecos. De esta tarea se encargan los drivers y administradores de dispositivos.
Área de memoria reservada
El segmento de memoria entre los 640 Kb y los 1024 Kb es un área de memoria que no puede ser utilizada directamente por programas, ya que en la PC original era un área de memoria reservada para ser usada por el sistema. Esta parte de la memoria es utilizada para lo siguiente:
* Memoria de video
* Direcciones de memoria que necesitan alguna placa de expansión
* la ROM BIOS
La memoria alta (HMA)
Se encuentra entre los 1024 Kb y los 1088 Kb, permitiendo el almacenamiento de un programa a la vez. Se utiliza para cargar la parte residente del DOS y algunos controladores, liberando de esta forma más memoria convencional para que trabajen los programas.
El modo protegido

La protección de memoria tiene como principio que, si se corren varias aplicaciones al mismo tiempo, cada una debe tener un límite de memoria para no poder trabajar en ésta y tener cuidado que otra aplicación que éste corriendo al mismo tiempo no utilice una parte de la memoria de la otra, porque se produciría una pérdida de datos.
Cada programa recibe un bloque de memoria del sistema, si uno de los programas se pasa al territorio del otro programa, es decir, accede directamente a la memoria fuera del bloque que reservó sin permiso del sistema operativo, actúa la protección de memoria, el programa que violó los límites es detenido en su intento y si es necesario, se termina su ejecución.
La memoria expandida (EMS)
Es una técnica de software utilizada para acceder a la memoria por encima de 1 Mb. Para emplear memoria expandida se precisa un administrador de memoria expandida. El administrador se encarga de copiar, según se necesiten, los datos por encima de 1 Mb a un marco de página de 64 Kb situado en la memoria superior.
La forma de trabajo de la memoria expandida requiere un tiempo adicional del que requiere la memoria convencional, debido al proceso de intercambio de bloques de memoria.
La memoria extendida
La memoria extendida es aquella que va más allá del primer megabyte de memoria. Para direccionar esa cantidad de memoria debe pasar al modo protegido. Trabaja igual que EMS, con la diferencia que las páginas pueden ser de tamaño variable, es decir, no hay desperdicio de memoria por parte de los programas. Todos los sistemas operativos utilizan este método para cargar y ejecutar las aplicaciones.
Drivers para los diferentes tipos de memoria
Tanto DOS como Windows utilizan drivers para acceder a los tipos de memoria vistos anteiormente. Estos drivers son:
* HIMEM.SYS, para habilitar las memorias XMS y alta
* EMM386.exe, para hablitar las memorias EMS y superior
Factores que determinan el rendimiento de la memoria RAM
No todas las memorias RAM son iguales. Existen factores que las hacen más rápidas o más seguras en el almacenamiento de información. Esos factores son:
* Tiempo de acceso
* Paridad
* EDO
* ECC
Tiempo de acceso
Se expresa en nanosegundos y representa el tiempo que tarda la memoria en responder a un pedido de lectura o escritura Pero, existe otro tiempo más, el tiempo de carga, que junto con el tiempo de acceso constituyen el tiempo total de ciclo de la memoria.
El tiempo de carga es el tiempo que tardan las celdas del circuito en cambiar de un estado a otro. Entonces, el tiempo de ciclo de la memoria es igual a la suma del tiempo de acceso más el tiempo de carga.
Ciclos de estados de espera (wait states)
A medida que fueron aumentando las velocidades del reloj de los procesadores, los tics fueron haciendose cada vez más cortos, requiriendo un tiempo de respuesta menor por parte d ela memoria. Pero el costo impide que se puedan utilizar memorias demasiado rápidas, por lo que se recurre al agregado de estados de espera. Mientras mayor estados de espera tenga el sistema, mayor será el rendimiento del mismo cuando acceda a la memoria.
Paridad
La paridad es una técnica de detección de errores por la cual la memoria puede verificar que los datos que recibe son correctos. Se utiliza un bit llamado paridad, es cual se une a los 8 bits que componen un byte. Este bit de paridad vale 1 cuando la suma de todos los "1" de los 8 bits sea un número par y 0 en caso contrario. Cuando la memoria recibe dicho byte, compara si la cantidad de "1" que lo compone es par o impar, según lo que informe el bit de paridad. Si no concuerdan ambas lecturas, se produce un error de paridad y el sistema se detiene.

EDO
Tecnología de memoria optimizada para entregar una mayor transferencia de datos cuando se necesitan varios bloques de memoria. Es decir, mejoran el rendimiento del subsistema de memoria cuando se acceden a varios bloques de memoria, pero no cuando se acceden de forma aleatoria.. A este tipo d ememoria se las denomina también HPM (Hyper Page Modo - modo de hiper paginación). Las memorias que no cumplen con la tecnología EDO se denominan Fast Page.
ECC
La memoria ECC (Error Correction Code - código de corrección de errores) es capaz de detectar y corregir los errores en el almacenamiento de datos de altas capacidades de memoria.
Aspéctos físicos de las memorias

La memoria de una computadora está compuesta por unos circuitos que son capaces de almacenar una cierta cantidad de datos con un determinado tiempo para acceder a la información que tiene almacenada y otro tiempo para escribir o leer dicha información
Módulos de memoria
Los tipos de memoria vistos anteriormente se fabrican en distintos encapsulados plásticos, los cuales han ido evolucionando a través del tiempo:
* DIP
* SIP
* SIMM
* DIMM
* DDR
* DDR2
* DDR3
Módulos DIP

En las PC antiguas habían módulos DIP (estos eran circuitos integrados) soldados directamente sobre la placa madre, o en algunos casos insertados directamente en zócalos disponibles sobre la placa. Este sistema dificultaba la actualización.
Módulos SIP

Módulos que tenían una fila de pines en un lado para encajarlos en un zócalo especial de la placa base.
Módulos SIMM

Es un tipo de encapsulado consistente en una pequeña placa de circuito impreso que almacena chips de memoria y que se inserta en un zócalo SIMM en la placa madre o en la placa de memoria. Usa un conector de 30 ó 72 contactos.
Módulos DIMM

Consiste en una pequeña placa de ciscuito impreso que almacena chips de memoria, que se inserta en un zócalo DIMM en la placa madre y usa un conector de 168 contactos.
Módulos DDR

Módulo de memoria de 180 contactos. Para su fácil reconocimiento e inserción tiene 1 sola muesca y en el centro de la placa.
Módulos DDR2 y DDR3


Módulos de 240 pines con una sola ranura descentrada para que la inserción sea de una sola forma. La ranura cambia de lugar entre los dos módulos mencionados.
Tecnologías de memoria
Las diferentes tecnologías que se utilizan para las memorias de las PC pueden ser de diferentes tipos, estas tecnologías son:
* DRAM
* SRAM
* SDRAM
* DDR - SDRAM
* DDR2 - SDRAM
* DDR3 - SDRAM
DRAM (Dynamic RAM - RAM dinámico)
En los circuitos DRAM el contenido de la memoria debe refrescarse continuamente, lo que significa que, para mantener el contenido de la memoria, estos circuitos deberán someterse a un ciclo de seercritura continuo. La señal de refresco es generada por el microprocesador. Esta memoria está formada por capacitores.
SRAM (Static RAM - RAM estático)
Los circuitos DRAM, no requieren del ciclo de refresco. Cada celda está formada por un transistor y un capacitor. La memoria caché está formada por circuitos SRAM.
SRAM asincrónicos
Estos son los primeros diseños de caché, se usaron hasta 1996 tanto en las placas madres como en microprocesadores. Sus tamaños variaron entre 64 Kb y 256 Kb.
SRAM de Estallido Paralelo (pipeline burst RAM)
Cumplen con la misma función que los anteriores, con la diferencia que ofrecen un mayor rendimiento muy superior. Esto se debe a una técnica especial llamada estallido paralelo, para poder realizar varias operaciones de lectura y escritura en paralelo a altísimas velocidades y no ofrecer estados de espera. Las placas madres y microprocesadores actuales la incorporan. Sus tamaños varían entre 64 Kb y 1 Mb
Módulos SDRAM
Esta nueva memoria logra trabajar en forma sincronizada con la velocidad del bus que la comunica con el microprocesador, evitando muchos estados de espera. Además incorpora modos de transferencia de datos continuos en ráfagas, que aceleran los accesos a datos en posiciones contiguas y a su vez permiten comenzar a acceder otro dato en paralelo sin que se haya completado el primero de ellos.
Módulos DDR - SDRAM (Double Data Rate)
La memoria DDR procesa dos veces más datos que la SDRAM en cada ciclo de reloj
Los tipos de DDR más comunes son:
* PC2100 (DDR266) transfiere 2,1 Gb/s y BUS de 266 MHz
* PC2700 (DDR333) 2,7 Gb/s y 333 Mhz
* PC3200 (DDR400) 3,2 Gb/s y 400 MHz
Módulos DDR2 - SDRAM y DDR3 - SDRAM
Los módulos DDR2 son capaces de trabajar con 4 bits por ciclo, mejorando el ancho de banda potencial bajo la misma frecuencia de una DDR tradicionar. Los módulos DDR3 tienen el doble de velocidad que los DDR2
Los tipso de DDR2 más comunes son:
* PC4200 (DDR2 - 533) 4,2 Gb/s y 533 MHz
* PC5400 (DDR2 - 667) 5,3 Gb/s y 667 MHz
* PC6400 (DDR2 - 400) 6,4 Gb/s y 800 MHz
Los DDR3 más comunes son:
* PC8500 (DDR3 - 1066) 8,5 Gb/s y 1066 MHz
* PC10666 (DDR3 - 1333) 10,6 Gb/s y 1333 MHz
* PC12800 (DDR3 - 1600) 12,8 Gb/s y 1600 MHz
* PC14900 (DDR3 - 1866) 14,9 Gb/s y 1866 MHz
Dual channel

Es una tecnología para memorias que incrementa el rendimiento de estas al permitir el acceso simultáneo a 2 módulos distintos de memoria. Para que una memoria pueda funcionar con dual channel, la placa madre debe soportarlo y los módulos de memoria deben ser exactamente iguales (velocidad, modelo, fabricante, etc.)
Dual channel es soportado por módulos DDR, DDR2 y DDR3.
Muchas placas madres son dual channel limitan la configuración de memoria al activarse esta función, por lo tanto una placa con 4 zócalos con dual channel activo, sólo permitirá la utilización de 3 zócalos.
Memorias de triple canal
Se trata de una arquitectura de sistema que está diseñado para triplicar el ancho de banda máximo teórico sobre sistemas equivalentes de un solo canal.
Los últimos procesadores de Intel (Core I7) y el chipset (x58) admiten esta tecnología. Su arquitectura ah cambiado para que la comunicación entre la CPU y la memoria sea más rápida y más eficiente. La configuración de triple canal sólo es posible con módulos DDR3
Memoria virtual

La memoria virtual es una técnica empleada para poder utilizar más memoria de la que realmente se posse. El principio de funcionamiento es muy sencillo: cuando la memoria RAM se llena completamente de información, la PC usa una parte del disco duro (de tamaño igual o inferior al de la memoria, pero nunca inferior) para guardar información que normalmente se gurada en la memoria RAM. Si bien esto nos permite tener mayor capacidad de memoria, el acceso al disco es lleva millones de veces más tiempo que el de la memoria, por lo que no soluciona el problema completamente.
Memoria de video
Es la memoria utilizada por las tarjetas de video para mantener el contenido de la pantalla. Cuando se modifican los datos directamente en la memoria de video, éstos se verán reflejados en pantalla, encargándose de esta tarea la placa de video.
ROM BIOS de la placa de video
Las funciones concentradas en el BIOS de estas placas comprenden operaciones básicas para facilitar las modificaciones a la pantalla sin necesidad de alterar registros internos. Algunas de estas funciones son:
* Detección de monitor color o monocromático
* Detección del modo de operación, manejo del cursor, selección de la página activa, manejo de ventanas de texto en la pantalla
* Lectura y escritura de caracteres y atributos, selección de colores, activación y lectura de píxeles, cambio de juego de caracteres, etc.
Memoria shadow

Para solucionar el problema de lentitud del BIOS, se instala desde el setup la opción se Shadow ROM, la cual copia los contenidos del BIOS en la memoria RAM. De esta manera se aceleran las operaciones que lleva a cabo el BIOS, ya que se encuentra en la memoria RAM, que es mucho más rápida.
Fallas comunes que provocan las memorias RAM
* Al arrancar la PC, éstes emite beeps de manera continua y la PC no enciende. Esto puede deberse a módulos de memoria mal colocados, contactos sucios o módulo de memoria dañado.
* Pantalla de error de Windows durante su ejecución. Puede deberse a los motivos anteriores y además a memorias incompatibles en cuanto a velocidades.
* Operaciones ilegales, excepciones fatales
* Reinicios de forma aleatoria.
Cuidados a la hora de trabajar con memorias
* Antes de quitar o tocar los módulos con las manos, debemos descargar la electricidad estática que pudiesemos tener mediante una pulsera antiestática o tocando una superficie metálica
* Al colocar los módulos, verificar que las guías encastren correctamente
* No colocar módulos de memoria de distintas velocidades
* Antes de comprar los módulos consultar la información del fabricante de la placa madre para conocer el máximo de memoira por cada banco y el total admitido.
Direccionamiento de memoria según el sistema operativo
Los sistemas operativos de 32 bits pueden direccionar hasta 4Gb de RAM
* Windows XP Profesional 64 bits_____________________________________16Gb de RAM
* Windows Vista Home Basic 64 bits__________________________________ 8 Gb
* Windows Vista Home Premium 64 bits_______________________________ 16 Gb
* Windows Vista (versiones Bussines Enterprise, Ultimate) 64 bits__________ 128 Gb
* Windows 7 Home Basic 64 bits______________________________________ 8 Gb
* Windows 7 64 bits Home Premium, Profesional, Ultimate, Enterprise_______ 192 Gb
Memorias ROM
ROM BIOS
La BIOS (Basic Input/Output System - sistema básico de entrada/salida) es una memoria ROM (Read Only Memory - memoria de sólo lectura), es el traductor de los llamados del sistema operativo a los dispostivos de entrada/salida. El BIOS se ubica en los últimos 64 Kb de la memoria reservada.
Estructuras de las memorias ROM
En as memorias ROM no se puede modificar su contenido, sólo pueden ser leidas, pertenecen a las memorias no volátiles, es decir, su información no se borra cuando se apaga la computadora. Sus celdas estás compuestas por una especie de diodos, los cuales se quema o no en función del dígito que se quiera grabar. Existen diferentes tipos de memorias ROM:
* ROM
* PROM
* EPRO
* EEPROM
* FLASH
ROM
Esta memoria viene grabada por el fabricante, y su contenido es inalterable.Es útil cuando por ningún motivo se debe modificar su información.
PROM (Programmable ROM - ROM programable)

Este tipo de memoria se compra "virgen", y el usuario, utilizando un hardware y software llamado grabador, transfiere la información desde la computadora a la PROM utilizando un puerto serie. Una vez grabada, esta memoria se transforma en una ROM tradicional.
EPROM (Eraseable PROM - ROM programable y borrable)
Es similar a la PROM, con la diferencia que su contenido se puede borrar por completo y volver a escribirse. El proceso de borrado es a través de la exposición de la memoria a una luz ultravioleta por un lapso de tiempo determinado por el fabricante. Las EPROM son fáciles de identificar porque poseen una "ventanita" en el encapsulado, la cual se expone a la luz ultravioleta para el borrado de la información.
EEPROM (Electricly EPROM - ROM programable y borrable eléctricamente)
Son similar a las EPROM, con la diferencia que su contenido se puede borrar con tensión eléctrica, mediante la aplicación de una determinada tensión en determinados pines.
FLASH

Derivan de las memorias EEPROM, con la diferencia que su contenido se puede actualizar por software, es decir, con un programa especial. Los ejemplos más comunes de este tipo de memorias son los pendrive.
Memoria caché
La memoria caché se introduce entre la RAM y la CPU, de esta forma se logra aumentar considerablemente la velocidad con que la CPU accede a la memoria principal. Por supiesto, la memoria caché será muhco más rápida que la RAM y de menor capacidad.
Una caché de memoria se carga desde la RAM con los datos y/o instrucciones que ah buscado la CPU durante las últimas operaciones La CPU siempre buscará primero la información en la caché.
La memoria caché se suele desglosar en 2 niveles: L1 y L2. SIendo L1 de menos capacidad que L2.
Existen 2 tipos de cachés: las internas (que se encuentran incorporadas al microprocesador) y las externas (que se encuentran fuera de éste).
Arquitecturas de caché
La arquitectura de caché determina qué método utiliza para organizar y localizar los datos en la memoria caché. Existen 3 tipos de arquitecturas:
Arquitectura de mapeo directo
Cada sector específico de la caché corresponde a varios sectores específicos de la memoria principal. Cada vez que el procesador pida un dato, la controladora caché debe ir a esa ubicación para encontrar la información, ahorrando tiempo de búsqueda.
Arquitectura asociativa completa
Los bloques de memoria principal se trasladan en cualquier bloque libre de caché.
Arquitectura asociativa en conjunto de varias
Combina las características de las arquitecturas de caché explicadas anteriormente.
Métodos de escritura: write - back y write - through
La información que se encuentra en la caché es actualizada por el microprocesador. La memoria caché actualiza la información modificada en la memoria principal utilizando dos métodos diferentes de escritura.
Write - through: todo lo que el micro escriba en la caché se actualizará automáticamente en la memoria principal.
Write - back: la información que el micro escribe en la caché, queda almacenada en ésta y sólo pasa a la memoria principal bajo ciertas circunstancias:
* Cuando un bloque de memoria debe ser reemplazado por uno nuevo o cuando un sector d ela memoria se requiere para almacenar una nueva información.
* Cuando otra parte del sistema, como un dispositivo que utilice un bus mastering y haya tomado el control del bus, trata de acceder a ese bloque de datos apuntando a la memoria principal.
* Cuando el algoritmo del controlador caché determina que los datos han permanecido en ésta por demasiado tiempo para ser actualizados.
El protocolo MESI
Cuando comenzaron a aparecer los sistemas con múltiples procesadores, cada uno de ellos con su propia caché exterba, surgió la necesidad de establecer un control de coherencia de datos que contiene cada una de las memorias caché.
El problema se puede ilustrar en le siguiente ejemplo: supongamos que el procesador A lee el valor de una dirección determinada de la memoria principal cuyo valor quedará en la caché conectada a este procesador. Al poco tiempo, el procesador B cambia el valor de esa posición de memoria en su memoria caché, que actualizará el cambio a la memoria principal. Como la caché del procesador A no se entera del cambio efectuado, ésta mantiene un dato inválido, que será utilizado si se corre alguna instrucción en este procesador que requiera nuevamente un dato de esta posición de memoria. Este es uno de los problemas que se pueden tener si no se mantiene la coherencia de los datos de la caché.
Al implementar el protocolo MESI en el ejemplo anterior, cuando el procesador B cambia el valor de esa posición de memoria en su caché y consecutivamente en la memorioa principal, se maca la copia del valor que se encuentra en la caché dle procesador A como inválida y si este último intentara acceder a esa posición de memoria, el protocolo garantiza que vaya a leerla a la memoria principal, obteniendo el valor correcto.
GRACIAS POR VISITAR MI POST

