Desde que Palm
introdujo en el año 2004 la Tungsten T5, todos los modelos
posteriores cuentan con un nuevo tipo de memoria, la memoria flash
no volátil.
La memoria flash no volátil, o
NVFS, tiene como principal característica que mantiene los datos
almacenados en ella incluso cuando el terminal se queda sin batería.
Los siguientes terminales cuentan con
este tipo de memoria flash no volátil: Tungsten
T5, Treo
650, LifeDrive,
Tungsten
E2, Palm
Z22 y Palm
T|X.
La memoria NVFS introduce adicionalmente
una nueva organización de la memoria interna ROM y RAM de los terminales.
Nota:
En el artículo se han simplificado ciertos conceptos y procesos
para poder facilitar su lectura al usuario no técnico.
¿Cómo
eran los antiguos terminales?
Hasta la Tungsten T5, los PDAs y smartphones
contaban con:

- Un chip de memoria ROM, donde se almacenaban
los ficheros relativos al sistema operativo Palm OS en sus diferentes
idiomas, los drivers y los programas incluidos de serie, tales
como Contactos, Calendario, Tareas, etc. También podemos referirnos
a esta información almacenada en el chip ROM como rom
(con minúsculas). Estos chips podían ser de tipo Flash-ROM
(que permitían su actualización posterior) o de tipo ROM
(que no permitían una actualización posterior).
- Un chip de memoria RAM, con un espacio donde
se almacenaban los programas instalados por el usuario y los datos de
todas las aplicaciones (Storage Heap), y con otro espacio reservado
para la Dymanic Heap (espacio de memoria necesario para la ejecución
de programas). La memoria RAM necesitaba de alimentación eléctrica
para mantener sus datos, con lo que si el equipo se quedaba sin batería
se perdía toda la información almacenada en él.
De esta manera podíamos decir que
la Palm
m515 tenía 16Mb de memoria RAM y 4Mb de memoria Flash-ROM,
o que la Tungsten
T2 tenía 32Mb de RAM y 8Mb de Flash-ROM.
En los dispositivos antiguos se accedía
a los ficheros de sistema (rom) directamente desde el chip de memoria
ROM y se dejaba libre para el usuario la casi totalidad del chip de memoria
RAM para datos y programas.
Además, con programas del tipo
JackFlash
y JackSprat
podíamos acceder a la memoria Flash-ROM de nuestros terminales
y eliminar aquellos idiomas del sistema operativo que no usábamos
(inglés, francés, etc.), y así ganar unos pocos megas
para almacenar en la ROM algunos de nuestros programas más usados.
Esta posibilidad se ha perdido en los modelos posteriores a T5.
¿Cómo
son los terminales actuales?
A partir de la Tungsten
T5 cambia la organización interna de la memoria, quedando de
la siguiente manera:

- Un chip de memoria NAND Flash, que contiene
la rom comprimida (el sistema operativo, librerías, idiomas y
los programas incluidos de serie), una parte de la rom descomprimida
y un espacio de almacenamiento de usuario que es donde se almacenan
los programas instalados por el usuario y sus datos. Estos dos últimos
espacios formarían el llamado Storage Heap.
- Un chip de memoria RAM, con un espacio para
otra parte de la rom descomprimida, un espacio para caché de
programas y datos abiertos recientemente (llamado DBCache), y una espacio
para la Dynamic Heap (espacio de memoria necesario para la ejecución
de los programas).
Sí, has leído bien: la Palm
Z22, la Palm
T|X o el Treo
650 sí tienen memoria RAM y no tienen chip de
memoria ROM.
El nuevo modelo de
memoria al detalle

Como ya habíamos adelantado, la
rom se almacena ahora comprimida en un área oculta de la memoria
Flash. Cuando se realiza un hardreset una parte de la rom se descomprime
en un espacio oculto de la memoria RAM y otra parte se descomprime en
la el Storage Heap de la memoria Flash, es decir, en el espacio para programas
y datos del usuario.
La rom descomprimida en la RAM (y a la
que no podemos acceder) corresponde a ficheros de sistema. La parte de
la rom descomprimida en la Flash corresponde a programas, librerías
e idiomas.
Otra particularidad de las memorias NAND
Flash es que no permiten ejecutar programas directamente, por lo que cada
vez que ejecutamos un programa, éste se carga junto con sus ficheros
de datos en la RAM, en el espacio denominado DBCache.
Cuando realizamos cambios en los ficheros
de datos o respondiendo a ciertos eventos del sistema, Palm OS copiará
automáticamente de vuelta el fichero modificado desde la RAM a
la memoria Flash. De esta manera los cambios se mantendrán siempre
guardados.
Algunos ejemplos: Palm
Treo 650
Por ejemplo veamos cómo está
organizada la memoria en un Treo 650:
En el gráfico anterior podemos
ver que el Treo 650 tiene en su interior una memoria NAND Flash de 32
Mb y una memoria RAM de 32 Mb.
De forma aproximada, de la memoria RAM
se utilizan 16Mb para almacenar una parte de la rom descomprimida, 10Mb
para esa caché intermedia de archivos (DBCache) y otros 6Mb de
Dynamic Heap.
Por otro lado y también de forma
aproximada, la memoria Flash utiliza 8Mb para almacenar la rom comprimida,
3.5Mb para almacenar la otra parte de la rom descomprimida y 20.5Mb para
guardar datos y programas del usuario.
¿Por qué siempre se ha dicho
que el Treo 650 tiene 24Mb de memoria total y 21Mb disponibles para el
usuario?
- Por un lado intentamos mantener la misma notación
que usábamos años atrás para la memoria y, erróneamente,
en ocasiones nos seguimos refiriendo a la memoria en la que podemos
almacenar programas y datos como memoria RAM, cuando en realidad es
memoria Flash.
- Por otro lado, la memoria RAM real de los terminales
está oculta para nosotros, de tal forma que cuando vamos a Aplicaciones
> Menú > Info el espacio libre/total se refiere únicamente
al espacio de almacenamiento de usuario. Es decir, la memoria RAM real
a nuestros ojos es como si no existiera.
- Y por último, como la rom comprimida también
está oculta y no podemos acceder a ella, el espacio disponible
es el resultado de restar del tamaño total de la Flash el espacio
ocupado por la rom comprimida.
Por todo esto, si de los 32Mb reales de la memoria Flash
de nuestro Treo 650 descontamos los 8Mb ocupados por la rom comprimida,
nos quedan los 24Mb de memoria al que nos solemos referir habitualmente.
Si a estos 24Mb totales les restamos los 3.5Mb ocupados por los otros
ficheros de la rom, nos quedan aproximadamente los 21Mb que decimos que
están disponibles para almacenar programas y datos en el Treo 650.
Algunos ejemplos: Palm
T|X
Veamos en otro ejemplo cómo está
organida, de forma aproximada, la memoria de la Palm T|X:

En este caso, la memoria RAM se organiza
de la misma manera que en el Treo 650. Con respecto a la memoria Flash,
la rom comprimida ocupa 14Mb, la rom descomprimida otros 14Mb y el espacio
de almacenamiento para el usuario es de 100Mb.
El tamaño real de la tarjeta de
memoria Flash es de 128Mb, pero restando el espacio oculto de la rom y
el espacio reservado para la rom descomprimida, nos quedan los 100Mb que
se anuncian como memoria disponible en la Palm T|X.
Conclusiones
El uso de memoria NVFS tiene una clara
ventaja que ya adelantábamos al principio del artículo:
la permanencia de los datos en memoria aunque el PDA o smartphone se quede
sin batería -Microsoft anunciaba el soporte de memoria NVFS en
Windows
Mobile 2005 este mes de mayo, mientras que Palm OS ya lo soporta desde
octubre del año pasado-.
Aunque ya hemos visto que los nuevos modelos
sí que tienen memoria RAM, ésta queda reservada para uso
interno del sistema y no podemos usarla para almacenar nuestros programas
y datos. Estos ficheros los guardaremos en la memoria Flash. Y aunque
físicamente la memoria Flash sea de una capacidad total determinada
(ej: 32Mb), de forma práctica sólo podremos hacer uso de
una porción de ella (ej: 20.5Mb).
Este tipo de memoria no presenta grandes
desventajas salvo, como ocurrió en los primeros meses tras el lanzamiento
de T5, la necesidad de que determinados programas se actualizaran para
funcionar correctamente en el nuevo tipo de memoria.
Recomendación:
si das el salto a uno de los nuevos modelos (posteriores a T5) desde
un modelo anterior a T5, es muy recomendable que instales en el nuevo
dispositivo versiones actualizadas de los programas que vayas a usar.
Algunos programas como por ejemplo RepliGo
tuvieron que actualizarse.