Introducción...
Bueno, he visto que por el foro hay gente que no tiene muy claro como debe formatear su memory stick (a partir de ahora MS) para sacarle el máximo rendimiento posible (en realción rapidez/espacio ocupado).
Suelen "echarle la culpa" a los Open Edition, a sus PSPs, etc... de que determinado juego va lento, a "tirones" y demás, cuando el problema casi siempre suele estar en la MS de cada cual.
Se oyen términos como FAT, FAT32, clúster pero no se tiene muy claro su significado y en que puede afectar al rendimiento de una MS
Lo primero que tenemos claro es que una MS es un dispositivo de almacenamiento (flash para ser exactos aunque no entraremos en eso ahora) que usa un sistema de archivos.
Ese sistema de archivos trabaja sobre una única (no se puede tener mas de una en nuestra MS) partición que abarca toda la capacidad de la MS (capacidad real, claro)
Un sistema de archivos nos permite leer, guardar y borrar datos de un dispositivo de almacenamiento.
Bien, este sistema puede ser FAT (que en realidad es FAT16) o FAT32 en la MS.
Para comprender bien como podemos sacar mas rendimiento en una MS usando un sistema de archivos u otro primero debemos comprender como trabajan.
Esto no pretende ser una guía de informatica por lo que lo explicaré de una manera que, sin ser la real, se acerca mucho a la realidad y ayudará a comprenderlo mejor.
Los sistemas FAT y FAT32 trabajan prácticamente igual por lo que si se explica el funcionamiento de uno se sabe el del otro.
Explicaremos el sistema FAT...
Lo primero que debemos saber es qué es un clúster.
Un clúster es lo que usa FAT para representar la unidad mas pequeña de almacenamiento de una MS.
Un clúster está formado por sectores, pero al contener estos tan pocos bytes (en el caso de FAT, 512 bytes) se hacía dificil gestionar grandes cantidades de información con una unidad tan pequeña.
Por eso se ideó la agrupación se sectores formando clusters.
Así pues el tamaño de un clúster de puede delimitar de dos maneras:
* Por agrupación de sectores (8 sectores=4 KB, 16 sectores=8 KB, 32 sectores=16 KB, etc...)
* Por su tamaño total (4 KB, 8 KB, 16 KB, 32 KB, 64 KB...)
En el sisterma FAT tenemos tres elementos en una MS.
Una tabla, un directorio raiz y montones de clusteres.
Esta tabla contiene elementos. Cada elemento representa a un clúster.
En FAT cada clúster es representado por 16 bits (2 bytes)
Cuando escribimos un archivo almacenado en nuestra MS, lo pimero que hace FAT es comprobar el tamaño del cluster (algo que explicaré despues).
Después divide lo que ocupa el archivo (en bytes) entre el tamaño del cluster.
Por ejemplo, un archivo de 100000 bytes y tenemos un tamaño de cluster de 8192 bytes (8 KB)...
100000/8192=12,2070
Obviamente un clúster es una unidad que no puede tener decimales por lo que se redondea al alza (a la unidad siguiente).
En este caso, 100000 bytes se escriben en la MS usando 13 clusters.
Pues bien, como escribe FAT, por ejemplo, un archivo de 16384 bytes (16 KB) en la MS con un clúster de 8192 bytes?
Pues lo pimero que hace es irse a la tabla.
Una vez ahí, esa tabla tiene tantos elementos e información sobre ellos como clusters tiene la partición. La información mas importante es si están o no vacios los clusters.
Así, FAT busca el primer clúster de la MS que esté vacio.
Pongamos el ejemplo de que encuentra el 300.
Ahora se va a dicho cluster, escribe los primeros 8192 bytes (recordad que ese es el tamaño de clúster que estamos usando en este ejemplo) del archivo y vuelve a la tabla.
Lo que hace FAT ahora es marcar el clúster 300 como no vacio y busca el siguiente clúster vacio, por ejemplo el 500 (no tienen por que ser contiguos y esta es la explicación del por qué los datos se fragmentan, pues si llegamos al final de MS, FAT tiene que buscar clusters vacios que estén en "zonas" anteriores de la MS y viceversa).
Se va a ese cluster y escribe los últimos 8192 bytes del archivo.
Ahora vuelve a la tabla y marca el clúster 500 como no vacio, pero además pone el valor 500 en el cluster anterior, el 300 (esto no es así realmente pero sirve para entenderlo mejor).
Luego se va al directorio raiz y escribe el nombre del archivo y el primer clúster por el que empieza (además de otras cosas).
Esto es porque no vale con escribir solo el archivo, luego habrá que leerlo. Por eso FAT, para cada archivo que ocupe varios elemento de la tabla (en este ejemplo ocupa 2), debe
indicar en cada elemento cual es el siguiente elemento (clúster) a leer.
Por eso, cuando FAT vaya a leer el archivo que acabamos de escribir, se irá al directorio raiz. Ahí encontrará el clúster donde empieza el archivo (el 300), luego irá a ese clúster, cargará todo lo que hay en el en memoria RAM, se irá a la tabla a buscar el elemento primero (el 300 de nuevo), verá que
ese elemento apunta a otro elemento (en este caso el 500) y se irá a ese clúster para cargarlo en memoria ya completo.
Sabe que el archivo ya está completo porque el clúster 500 no "apunta" a ningún otro clúster, por lo tanto lo interpreta como fin de archivo.
Yo he empleado un archivo de 16 KB, que como habeis visto en el ejemplo ocupa 2 clusters, siendo estos de 8192 bytes de tamaño (no se desaprovecha nada de espacio).
Para FAT32 es prácticamente igual, solo que en vez de usar una tabla de 16 bits como FAT, usa una de 32 bits (o sea, cada clúster es representado por 32 bits).
Esto le hace consumir mas espacio, claro, aunque no se nota nada (hablamos de bits) pero nos permite poder usar tamaños de particiones mas grandes pues al usar 32 bit por cada elemento/clúster podemos reprensentar muchísimos
mas clusters por partición.
Esto es solo un dato mas, pues para la PSP no nos interesa porque sus particiones son como máximo de 4 GB (aunque se avecinan las de 8 GB).
Deducciones...
Por lo tanto, lo que se gana (a igualdad de tamaño de clúster) usando FAT sobre FAT32 es algo de rapidez (casi imperceptible) pues no es lo mismo representar cada clúster con 32 bits que con 16 bits (el proceso de lectura, escritura y borrado es mayor en FAT32).
El cambio de velocidad no lo notareis con grandes archivos (escribiendo isos/csos, etc...) sino que lo notareis mas con la gestión (lectura/escritura aunque sobre todo escritura) de pequeños archivos en grandes cantidades (como cuando haceis un data.dxar para algún custom de Dark_AleX).
Sin embargo algo que ganamos usando FAT32 en detrimento de FAT es el poder usar un tamaño de cluster mas pequeño.
Esto es pura lógica, a menor tamaño de clúster menos espacio desaprovechamos por cada archivo que le vayamos a meter a la MS.
Por ejemplo, si tienes un clúster de 4 KB y metes un archivo de 404 KB, estás usando 101 clusters para escribir ese archivo. Ese mismo archivo te ocuparía 448 KB si tuvieras un clúster de, por ejemplo, 64 KB.
448-404=44 KB que perderias en espacio en la MS por tener un clúster mas grande.
Esto se "incrementa" cuanto mayor número de archivos tengamos en la MS (cuantos más tengamos, mas perdemos espacio por cada uno).
Pero claro, tener un clúster de mayor tamaño tiene sus beneficios, pues a mayor tamaño de clúster mas rápido te leerá, escribirá y borrará archivos la FAT.
Esto es porque tendría que buscar y leer menor cantidad de clusters por cada archivo.
Por lo tanto podemos decir y decimos que cuanto menor sea el tamaño del clúster, menos tamaño nos dará a la partición, menos rápido irá y menos desaprovehará el espacio de nuestras MS.
Gracias a que las MS no tienen demasiados GB (demasiada capacidad), el usar un clúster de menor tamaño no implica el incoveniente de que nos quite megas a la partición, pues lo que nos quitará será muy poco (en relación a lo que les podría quitar a HDs ATA o SATA de gran capacidad)...
En las MS el sistema FAT nos permite usar clusters de 32 y 64 KB
El sistema FAT32 nos permite esos mismos y 4, 8 y 16 KB
Con FAT32 a tamaño de clúster de 4 KB tendríamos la configuración mas lenta (tanto de lectura y escritura) pero desaprovacharíamos el menor espacio posible de la MS.
Con FAT a tamaño de clúster de 32 KB tendríamos la configuración mas rápida (tanto de lectura y escritura) pero desaprovacharíamos el mayor espacio posible de la MS.
Aquí os paso unas pruebas que he hecho con una MS de 2 GB "Chony" High Speed (Falsa)...
Prueba A Formateando la MS a
FAT con un tamaño de clúster de
64 KB y con 76 MB de datos (tamaño real, no tamaño en disco y no fragmentados) en ella...
Prueba B Formateando la MS a
FAT con un tamaño de clúster de
32 KB y con 76 MB de datos (tamaño real, no tamaño en disco y no fragmentados) en ella...
Prueba CFormateando la MS a
FAT32 con un tamaño de clúster de
32 KB y con 76 MB de datos (tamaño real, no tamaño en disco y no fragmentados) en ella...
Nota - Las diferencias en las gráficas son tan ínfimas que lo ideal sería que metiérais las tres fotos en una carpeta de vuestro HD y los fuérais pasando una y otra vez con un visor de fotos a toda velocidad.
Aquí os paso un video donde podeis verlo mas claro
Nota - El eje Y de la gráfica representa la velocidad en MB/s y el eje X representa el tamaño de los archivos usados en la lectura y escritura de la prueba.
La gráfica
verde representa la lectura, la
roja la escritura.
Nota - Las pruebas han sido realizadas con el
PSXReality Memory Stick Tester v1.0 pero también las podeis hacer con el
BlackSPEED v1.0 BetaHay que fijarese en las gráficas verdes (lectura) y amarillas (escritura) que son las velocidades del sistema de archivos.
Un dato muy importante es el Performance Index, que nos indica la velocidad de indexado (gestión de la tabla) del sistema de archivos sobre la MS.
Conclusiones...
* Con la
Puerba A ha sido con la que he obtenido los mejores resultados de velocidad.
También me dice que tengo
1.821,63 MB libres y me dice que tengo una partición de
1959.81 MB.
* Con la
Puerba B he obtenido menor velocidad tanto de lectura como de escritura sin embargo aprovecha mejor la capacidad de la MS que en la Prueba A, al "darme"
1.858,31 MB libres (36,68 MB más).
Además me dice que tengo una partición de
1959.72 MB por lo que le ha "quitado"
9 KB a la partición respecto a la Prueba A.
* Con la
Puerba C he obtenido menor velocidad, tanto de lectura como de escritura, que con la Prueba B sin embargo aprovecha mejor la capacidad de la MS que en la Prueba B, al "darme"
1.870,98 MB libres (12,67 MB más).
Además me dice que tengo una partición de
1959.00 MB por lo que le ha "quitado"
72 KB a la partición respecto a la Prueba B.
Los datos "hablan" por si solos
Yo lo he hecho con una MS determinada, pero los datos variarán con otras MS (SanDisk, SanDisk Gaming, SanDisk Ultra II, Pro Duo "auténtica", genérica...) y a diferentes capacidades (32 MB, 512 MB, 1 GB, 4 Gb...) pues no todas las MS tienen las mismas prestaciones y especificaciones técnicas.
Podeis mirar
aquí unos cuantos test para diferentes MS...
Otra manera de verlo...
Esto de las gráficas está muy bien pero si de verdad quereis comprobar cual rápida o lenta es vuestra MS teneis un método infalible...
Hacer un data.dxar para cualquier custom de Dark_AleX (el del 2.71 SEC, 3.02 OEA, 3.03OEA, 3.03 OEC, etc...)
Es la prueba de fuego...
Test 1 En las mismas condiciones que las
Pruebas A, B y C usando el Update Maker para el custom firmware 3.03 OEC, el programa me tardó
5 minutos aprox. en hacerme (y validarme) el data.dxar (17,5 MB) teniendo el sistema
FAT32 y un clúster de
16 KB.
Test 2En las mismas condiciones que las
Pruebas A, B y C usando el Update Maker para el custom firmware 3.03 OEC, el programa me tardó
3 minutos aprox. en hacerme (y validarme) el data.dxar (17,5 MB) teniendo el sistema
FAT16 y un clúster de
32 KB.
Como veis, aquí es donde notamos más la diferencia entre usar el sistema FAT o FAT32 y, sobre todo, los distintos tamaños de clusters.
Esto es porque al generar el data.dxar estamos gestionando grandes cantidades de cientos de archivos pequños...
Nota -
Aquí podeis encontrar los diferentes Update Makers para hacer los tests.
Despedida...
Yo, personalmente, la tengo formateada a FAT y con un clúster de 32 KB.
Así considero que obtengo la mejor relación rapidez/espacio pero vosotros mismos podeis decidir (si no lo teniais claro) que es lo mejor para vuestras MS después de leer esta guía...
Podeis formatear desde la PSP.
Esta siempre hace un formateo rápido (borra y rehace la tabla FAT pero no los clusters).
Si teneis una MS de 4 GB os dejará la MS en
FAT32 con 32 KB de tamaño de clúster.
Si usais una de menos de 4 GB, os lo formateará a
FAT con 32 KB de tamaño de clúster.
También podeis formatear desde el Administrador de discos de Windows
Ya sabeis...
Podeis marcar la pestaña "Dar formato rápido" y os lo hará como la PSP.
Si no marcais nada os formateará borrando clúster por clúster toda la MS (tarda mas, claro).
Fragmentación de los datos...
Bueno pues ya he comentado algo sobre esto a lo largo de la guía.
La fragmentación de los datos aparece cuando la FAT no puede escribir los datos de un archivo en clusters contiguos (porque hay clusters de por medio que están usados).
Esto no es mayor problema, pues, como ya hemos visto antes, un archivo puede estar escrito en una sucesión de clusters no contiguos pero cuando tenemos muchos datos fragementados esto empieza a redundar en una pérdida de velocidad de la FAT al escribir o leer archivos.
En las MS, usando archivos de alto "peso" (isos, cisos, eboots de juegos de PSX, etc...) como usamos para este almacenamiento de tan pocos gigas casi siempre llegamos a escribir datos en el último clúster.
Claro, si volvemos a escribir algún archivo, la FAT tiene que biscar clusters libres por toda la MS para poder "alojarlos".
Con esto vengo a decir que en una MS encontremos una gran cantidad de datos fragmentados (muchos mas que los que podremis encontrar en un HD de muchos gigas) la mayor parte del tiempo.
Por esto, lo mejor es que preiódicamente vayamos desfragmentando la MS para poder aumentar su rendimiento.
Para eso, podemos usar el
"Desfragmentador de disco" de Windows (por aquello de ser una herramienta muy "globalizada").
Para ello solo conectad la PSP al PC y ejecutad el "Desfragmentador de disco"
Ahora dadle a "Analizar" y en un rato os dirá si es necesario o no desfragmentar.
Si os dice que es necesario, dadle a "Desfragmentar" y en un rato lo tendreis.
Nota - Las partes en
rojo corresponden a los datos fragmentados. Los contiguos son los
azulesNota - Ya sabies que no perdereis ningún dato de la MS con este proceso.
FIN
Salu2 y perdón por la tochada
Si has llegado hasta aquí leyéndolo todo te mereces un premio...
Downgrade firmware 3.10