4.1. Conceptos preliminaresAntes que nada es preciso comprender perfectamente varios conceptos preliminares que se explican a continuación. Los ordenadores trabajan con celdas de memoria RAM que sirven para almacenar los datos de forma temporal, hasta que se apaga o reinicializa el ordenador. RAM significa Ramdon Access Memory, memoria de acceso aleatorio; es decir, puede accederse a cualquier punto de la memoria en cualquier momento. Cada posición de memoria puede almacenar 1 byte: una secuencia de 8 bits (1 bit es 0 ó 1) que representan un número del 0 al 255. En los ficheros ASCII, cada byte se interpreta según el código ASCII, que es un código que asigna a las letras, dígitos y símbolos habituales un número entre 0 y 255. Por ejemplo, la A mayúscula se asocia en el código ASCII con el número 65. Y en los ficheros binarios, cada byte se interpreta como una instrucción propia del microprocesador. Por ejemplo, los 2 bytes que forman el número hexadecimal CD21h corresponden a la instrucción INT21h, que activa el microprocesador para que genere la interrupción 21h. Cada posición de memoria o byte se identifica mediante una dirección o número de posición, al igual que las casas y las calles en las que habitamos. ¿Cuántos
bytes de memoria RAM puede tener cada ordenador? La cantidad de bytes de
memoria depende del tamaño del bus de direcciones del microprocesador. El
bus de direcciones está formado por líneas de 1 bit cada una, por las que
viajan en paralelo (1 bit por todas las líneas a la vez) las direcciones de las
celdas de memoria. Una línea de 1 bit es un circuito por el que puede
viajar 1 bit (un 0 ó un 1). Si el bus de direcciones es de 2 bits (tiene
2 líneas), sólo podrá gestionar 4 direcciones de celdas de memoria de 1 byte;
es decir, 4 bytes. Con 2 líneas se pueden enviar estas 4 direcciones:
00, 01, 10 y 11. En general, el número de direcciones de un
microprocesador es 2n siendo n el número de líneas del bus de
direcciones. En este caso 22 es igual a 4. Los
microprocesadores de los ordenadores PC poseen los siguientes tamaños en el bus
de direcciones. El 8088/8086 propio de los PC y XT tenía 20 líneas, por
tanto gestionaba 220, que es igual a 1.048.576 bytes; es decir, 1024K (1MB).
El 286 tenía un bus de direcciones de 24 bits; por tanto, 224
direcciones, que es igual a 16MB. Y los micros 386 y superiores tienen 32
líneas; por tanto, 232, que es igual a 4 GB. Por supuesto, esto es la
capacidad máxima que puede llegar a tener el ordenador. Otra cosa es el número
de chips de memoria RAM que tenga realmente instalados el ordenador. En
resumen, el máximo de direcciones es 1MB en el microprocesador 8088/8086, 16MB
en el 286 y 4.096MB en los 386 y superiores. Por
cierto, a pesar de que todo el rato estamos hablando de Bytes, 8 Bits, en un PC
la memoria no tiene 8 Bits, sino 9. El noveno Bit se usa para el cálculo
de la paridad. ¿Qué
es la paridad? Es una suma de todos los 1 lógicos de un mismo Byte.
El resultado puede ser par o impar. Si es par, se carga un 1 lógico en el
Bit de paridad, si es impar se carga un 0 lógico. Luego, en cada operación
que haga el ordenador se calcula otra vez la suma del Byte correspondiente y se
chequea el Bit de paridad. Si algo cambia, puede deberse a un error, el
cual debe ser corregido. Lamentablemente,
la paridad no es un método fiable: Si cambian dos Bits a la vez debido a
un error, el resultado par o impar seguirá siendo el mismo, de manera que
no será advertido por el sistema. Es por ello que la paridad hoy día no
se usa apenas, siendo sustituido por Sistemas de Corrección de Errores (ECC
Codes).
4.2. Descripción física y técnica de una memoriaAntes
de seguir, debemos intentar comprender de la manera más simple cómo es una
memoria desde el punto de vista electrónico. Puede ser difícil de
comprender para aquellos que no tengan conocimientos suficientes, pero se
intentará hacerlo de la manera más sencilla posible. El
fundamento básico de memoria parte de un circuito con transistores denominado
circuito biestable, el cual es capaz de mantenerse sin conducir (0 lógico) o en
conducción (1 lógico) y cuyo estado puede cambiarse mediante la aplicación de
una señal exterior. Una vez cambiado de estado, se mantiene mientras no
desconectemos el voltaje de la alimentación del circuito (memoriza el estado lógico). Al
principio no se conseguía una alta integración, pero poco a poco fue
aumentando, hasta el punto en el que en un chip pueden caber varios millones de
circuitos de estos (MegaBits). Agrupándolos de ocho en ocho, hacemos
Bytes de memoria. Si
bien su funcionamiento es correcto, este método es caro, por lo que el uso de
las memorias de biestable, denominadas memorias estáticas ha quedado reducido
al ámbito de las memorias caché, que se explicarán más adelante. Con
las memorias dinámicas llegó el boom de los "megas": La alta
integración conseguida y la caída espectacular de los precios (al contrario
que las estáticas) provocó la aparición de los módulos de memoria.
Es
muy simple: al principio, ampliar la memoria del ordenador consistía en aplicar
un número determinado de chips en unos zócalos destinados a tal fin en la
placa base. Pero para el usuario profano, esto era difícil:
las patillas del chip se doblaban, daba lugar a cortocircuitos, etc. La
solución fue simple, ya que se cogieron varios chips y se soldaron en una pequeña
placa de circuito impreso con pines. A
estos módulos se los llamó SIP (Single In-Line Package), y tenían una fila de
pines en un lado, para encajarlos en un zócalo especial de la placa base.
Si bien fue un paso adelante, aun resultaba difícil de manipular por el
torpe usuario profano. Además, como la memoria en sí eran chips
independientes, era una solución cara. El
paso final fue el módulo SIMM (Single In-Line Memory Module), el cual era una
placa de circuito impreso en el cual se aglutinaban chips de memoria pero no de
los normales de ordenador, sino fabricados especialmente para los módulos, con
encapsulado más pequeño de tipo SMD (montaje superficial) y más alta
integración, lo que redundaba en un coste menor. Además, ya no tenían
los pines de conexión, sino unas zonas del circuito impreso hacían de contacto
eléctrico con un zócalo especial de la placa base que tenía unas
"pinzas" en las que encajaba el módulo SIMM. La conexión era
de 30 contactos.
Al
principio, los módulos SIMM eran sólo de 256KB x 8Bits, siendo necesarios
cuatro módulos para conseguir 1MB. Posteriormente aparecieron de 1MB,
2MB, 4MB, 8MB y 16 MB, existiendo algún fabricante que los llegó a hacer de
32MB.
Cuando se popularizaron, IBM lanzó la bomba con unos módulos de 72 contactos
que además tenían un ancho de bus de 32Bits. Eran idóneos para los 486
y posteriormente para los Pentium, si bien para estos últimos es necesaria la
colocación de dos módulos, porque su ancho de bus es de 64Bits. Es
por ello que el siguiente paso fue la implementación del módulo DIMM (Dual In-Line
Memory Module), el cual tiene 168 contactos y un ancho de bus de 64Bits. El
hecho de acceder a los 64Bits en un mismo banco aumenta la velocidad de la RAM
en un 40%. Además,
con los nuevos procesadores con bus FSB de 100MHz, se ha puesto de moda una
memoria DIMM ultrarrápida de 7-8 nseg. Denominada SDRAM PC-100, la cual soporta
velocidades de bus de 100 MHz. El rendimiento es brutal, con lo cual
se ha reducido el cuello de botella del acceso a la memoria.
Si
bien por cálculo sería suficiente una memoria de velocidad 10 nseg., se
utilizan memorias de 7-8 nseg como margen de seguridad, para evitar posibles
cuelgues. Como comentario final, comienza a verse, cada vez más, la
memoria PC-133, para los futuros buses y micros, como el Pentium III Coppermine. Debemos
recordar que los primeros DIMM funcionaban a 5V, mientras que los de última
generación lo hacen a 3,3V. Si bien existen placas base que poseen zócalos
tanto para DIMM y SIMM, no pueden mezclarse, ya que la diferencia de voltaje sería
perjudicial para los DIMM. Otro
detalle, la manera de distinguir los de 5V de los de 3,3V es mediante las
muescas que aparecen en la parte inferior del módulo (ver foto de arriba).
La muesca de la izquierda aparece ligeramente desplazada más hacia la izquierda
en los de 5V. Por
cierto, ya hemos comentado que los de PC100 o DIMM de 100 MHz han aparecido
recientemente. ¿Cómo distinguirlos de los de 66MHz? Si
volvemos a observar la foto superior, en la esquina derecha aparece un pequeño
chip de 8 pines, denominado SPD, el cual es una memoria Flash EPROM que guarda
en su interior los valores correctos aplicables al módulo tanto de refresco de
filas como de columnas (señales RAS y CAS, ya explicadas anteriormente) con
objeto de que la placa base se autoconfigure de manera correcta. El SPD sólo
aparece en los DIMM de tipo PC100. Debido al avance tecnológico del AMD K7, el cual vimos que puede llegar a funcionar con velocidades de bus FSB de 200MHz, una serie de fabricantes han preparado un nuevo tipo de memoria denominado módulo RIMM o RAMBUS, el cual utiliza los flancos de subida y bajada del reloj, consiguiendo la comunicación a 200MHz.
Obsérvese
como la disposición de las muescas y pines de conexión han cambiado, con lo
que probablemente tendremos que volver a cambiar de placa base. Actualmente,
las RAMBUS están apareciendo en las placas con chipsets I810, pero es un
consuelo pensar que dichas placas vienen con un adaptador para los antiguos módulos
DIMM (antiguos de un año, je je) Pero
no sólo existe memoria RAM en un ordenador, hay otros tipos de memoria.
En un capítulo posterior, se analizará en profundidad la ROM BIOS, la memoria
donde se almacena el programa de entradas-salidas del ordenador, el que permite
cambiar el tipo de disco duro, disquetera, etc. La
memoria ROM (Read Only Memory, memoria de sólo lectura) se hace bajo encargo,
ya que es un chip que hay que fabricar a medida, puesto que incorpora un
programa fijo que varía según el fabricante, aunque siempre bajo unas
directivas mínimas que son las que marca la compatibilidad de los sistemas
basados en PC. Es por ello que resulta cara de hacer.
El siguiente paso fue la memoria EPROM (Erasable Programmable Read Only Memory, memoria programable y borrable de sólo lectura). Estas memorias se programaban mediante un aparato que le introducía los valores lógicos adecuados, pero luego podían borrarse mediante una especie de ventanilla en la parte superior del encapsulado, por la que se aplicaba una luz ultravioleta. Los transistores que integran la memoria son sensibles a ese tipo de radiación, de manera que la información almacenada se pierde. De esta forma, una vez borrada, puede volver a programarse para actualizar una BIOS, por ejemplo. De todas formas, la información no se queda de manera estable, puede perderse debido a diversos problemas sobre todo luminosos, lo que obliga a tapar la ventanilla con un material opaco. Además, a veces no quedan bien borradas y en memorias EPROM de muy baja calidad, el borrado puede ser espontáneo. Desde hace un par de años, se han puesto de moda las memorias FLASH, memorias al estilo de las EPROM pero que pueden ser borradas mediante un voltaje determinado en una de sus patillas. Como esto puede hacerlo el ordenador, ahora es muy fácil actualizar una BIOS: se introduce el disquete con el nuevo programa y el ordenador borra la FLASH y carga el nuevo programa. La memoria FLASH se usa como BIOS no sólo en todas las placas base actuales, sino también en ROM de módems, tarjetas SCSI, etc. La FLASH es la memoria del futuro. Incluso se está experimentando para sustituir el disco duro por un módulo de memorias FLASH, pero de momento es una solución cara debido a que el número de borrados está limitado a un centenar (hace poco era una decena de veces) y su baja integración, pero todo se andará.
|
|
|