Dado que la memoria NAND Flash se va debilitando por los ciclos de escritura y borrado, tiene sentido que los diseñadores de SSD busquen métodos para intentar reducir estos ciclos y así prolongar la vida útil del SSD, ¿verdad? Hoy vamos a hablaros de la función External Data Buffering, mediante la que las controladoras de los SSD consiguen maximizar la vida útil del dispositivo.
No cabe duda de que la vida útil de un SSD es una de las mayores preocupaciones tanto de fabricantes como de usuarios, con el permiso del rendimiento, claro. Y es que de poco sirve tener el SSD más rápido del mercado si -por poner un ejemplo- en un mes se agotan los ciclos de escritura y ya no sirve para nada. Afortunadamente los diseñadores de este tipo de productos están constantemente trabajando en mejorar la tecnología, y dado que la vida útil es una de las mayores preocupaciones como ya hemos dicho, poco a poco van mejorando los métodos para ampliar este parámetro.
External Data Buffering, cómo la controladora maximiza la vida del SSD
Hay muchas maneras de utilizar la memoria RAM, tanto la memoria interna de la controladora del SSD como la del propio PC, para organizar los datos de una manera que se reduzcan los ciclos de escritura y borrado de un SSD. Cuando se utiliza la RAM del sistema, el método se conoce como External Data Buffering, o búfer de datos externo.
Una es realizar una función llamada «Write Coalescing» (algo así como «fusión de escritura»). Este método implica reunir varias escrituras cortas en sectores adyacentes del SSD para convertirlas en una sola escritura larga en el búfer del SSD, antes de escribir en la memoria NAND Flash. Una escritura grande es menos exigente para el chip que varias escrituras más pequeñas, y de hecho es mucho más rápida.
Un ejemplo: en un SSD sin búfer de escritura, es posible que no todas las escrituras cortas en el mismo área general de la unidad ocurran al mismo tiempo. Es probable que una escritura temprana ya esté comprometida con la memoria flash antes de que el SSD reciba la siguiente, y cuando se escribe la escritura posterior es posible que incluso sea necesario reasignar el bloque flash que contiene ambos sectores a otro bloque para realizar la operación, lo que conlleva un ciclo adicional de borrado y escritura.
Esta «fusión de escritura» no es la única manera de utilizar un búfer de RAM para reducir el tráfico de escritura a la memoria flash de un SSD. Otro enfoque sería almacenar varias escrituras sucesivas en el mismo sector sin escribir realmente en la memoria flash hasta que se hayan realizado varias escrituras del mismo tipo. Aunque el sistema puede creer que se está sobreescribiendo constantemente el mismo sector NAND, en realidad el sector está en la RAM hasta que esa información sea necesaria para otra tarea, momento en el que sí se escribe en la memoria flash. Con esto, varios cientos de escrituras en un solo sector pueden convertirse en una única escritura en la NAND, por lo que estamos ampliando la vida útil del SSD en varios enteros, solo a costa de tener la RAM de la controladora ocupada.
La RAM también se utiliza para asegurar que las escrituras tengan lugar en páginas completas, ya que esta es la distancia que la NAND realiza de manera más eficiente cuando se escribe en ella. Al hacer coincidir la longitud de una escritura NAND con la longitud del mapeado del chip, el búfer ayuda a reducir el tráfico de escritura. Los diferentes chips NAND tienen diferentes longitudes de página (generalmente entre 1 y 4 KB), eso sí, por lo que la controladora debe tener esta información para poder actuar en consecuencia.
Eso sí, estos métodos tienen la desventaja de que un corte de energía podría propiciar pérdida y / o corrupción de los datos, ya que esos datos estarían temporalmente en la RAM (que es volátil) y no en la memoria NAND flash. La solución para esto es proporcionar una pequeña fuente de energía al SSD para mantenerlo activo el tiempo suficiente como para descargar esos datos de la RAM a la NAND. Esto generalmente se realiza mediante una pequeña batería, un súper condensador o incluso un banco de condensadores de tantalio.
En cualquier caso, está claro que agregar un búfer externo de RAM a un SSD para que lo use como almacenamiento temporal es un excelente método que no solo sirve para mejorar el rendimiento de la unidad, sino también para ampliar considerablemente su vida útil.