¿Qué es un caché de disco?

Hay dos clases principales de caché, la caché de lectura y la caché de escritura. Una memoria caché de lectura es una herramienta que proporciona acceso rápido a datos que, de lo contrario, serían de acceso lento. Un caché de escritura es una herramienta que ofrece la ilusión de velocidades de escritura rápidas, generalmente ocultando al usuario la verdadera velocidad lenta de un dispositivo de memoria.

Estructura de un caché

Por lo general, un caché se almacena un nivel de memoria más bajo que los datos reales. Sin embargo, los datos de un caché pueden almacenarse en caché en el siguiente nivel de memoria. Hay cuatro niveles de memoria, siendo la memoria caché/registros de la CPU el nivel más bajo y más rápido y el almacenamiento de archivos el nivel más alto y más lento. Los niveles más bajos a los más altos son la memoria caché/registros de la CPU, la RAM del sistema, las unidades de almacenamiento y el almacenamiento de archivos.

Cada paso hacia abajo en los niveles de memoria ofrece una mayor velocidad de acceso pero una capacidad reducida. La mayoría de los usuarios domésticos solo tienen los tres niveles de almacenamiento más bajos del mundo real. El almacenamiento de archivo generalmente se refiere al almacenamiento en cinta destinado al almacenamiento a largo plazo y fuera de línea. El almacenamiento de archivos también puede referirse al uso de medios de almacenamiento ópticos u otros medios de almacenamiento estándar que se han eliminado de los dispositivos y se mantienen fuera de línea. Es mucho más probable que estos ejemplos se encuentren en el hogar, pero aún no son tan comunes.

Nota:Hasta cierto punto, el almacenamiento en la nube podría considerarse una variante del almacenamiento de archivos. Está muy en línea, pero no necesariamente accesible de inmediato y, en general, es de acceso lento. Los medios extraíbles, como la memoria USB, también cruzan un poco el límite entre la unidad de almacenamiento y el almacenamiento de archivos.

Tipos de caché de disco

Un caché de disco se refiere a cualquier caché en un "disco", es decir, unidades de almacenamiento como SSD y HDD. Hay tres tipos de caché de disco. El caché de lectura implicaría copiar algunos datos del almacenamiento de archivo temporalmente para hacer que el acceso sea más rápido mientras sea necesario. Una caché de escritura podría tomar la forma de una caché SLC en un SSD. Una caché de E/S generalmente sería una memoria flash o DRAM utilizada para almacenar en caché las operaciones de lectura y escritura. La característica definitoria de todos estos es que el caché está en el propio disco.

Leer caché de disco

La versión de caché de lectura de una caché de disco es probablemente el tipo de caché de disco menos utilizado. El almacenamiento de archivos, por su propia definición, rara vez se necesita. Los datos también se pueden leer directamente desde los medios de archivo. El tema es la velocidad. El tiempo de acceso es lento ya que los datos están fuera de línea, lo que requiere que se identifique y conecte un dispositivo de almacenamiento adecuado. Las velocidades de lectura dependen del medio de archivo, pero generalmente serán suficientes para la mayoría de los casos. Pero puede que no sea ideal para los requisitos de gran ancho de banda, como la visualización de videos de alta definición. En estos escenarios, se puede usar un caché de disco de lectura para almacenar en caché una copia del archivo de video en un medio de almacenamiento que pueda reproducirlo en tiempo real.

Caché de disco de escritura

Los SSD modernos son ultrarrápidos y ofrecen velocidades de lectura y escritura increíblemente rápidas. Lo que quizás no se dé cuenta es que esto no es técnicamente cierto. La mayoría de los SSD en el mercado son TLC, también conocidos como Celdas de triple capa. Esto significa que cada celda de memoria puede almacenar tres bits de datos. Si bien esto ofrece tres veces la densidad de almacenamiento de SLC (celdas de una sola capa) sin formato con un bit por celda, también es mucho más lento.

Consejo:El flash TLC sigue siendo rápido. Es muchas veces más rápido que el ancho de banda máximo del bus SATA 3 utilizado por los HDD y los primeros SSD. El flash QLC o las celdas de nivel cuádruple son incluso más lentos; en algunas pruebas, en realidad funcionan más lentamente que los discos duros.

La caché SLC se inventó para ocultar al usuario las bajas velocidades de escritura. La caché SLC simplemente trata el flash TLC como flash SLC, lo que le permite operar a mayor velocidad. Los datos escritos en la memoria caché SLC se copian internamente al formato TLC tan rápido como lo permitan las velocidades de escritura. Esta técnica funciona excelentemente, ofreciendo velocidades crecientes que han requerido el desarrollo de nuevos estándares más rápidos.

Sin embargo, los cachés de SLC tienen algunas advertencias. El tamaño de la caché SLC es 1/3 del espacio libre restante de la SSD. A medida que la SSD se llena, el tamaño de la memoria caché del SLC disminuye. Esto no es un gran problema en unidades vacías grandes, pero puede ser en un SSD más pequeño o de casi capacidad. Una vez que se llena la memoria caché SLC, el usuario ve que las velocidades de escritura caen drásticamente a medida que se exponen a la velocidad de escritura genuina de TLC.

Nota:Técnicamente, si los datos se van a escribir en medios de archivo en el futuro, cualquier disco de almacenamiento podría considerarse como un caché de escritura para los medios de archivo. Sin embargo, este significado generalmente no se asumiría.

Caché de disco de E/S

Los HDD son generalmente bastante lentos, incluso en sus cargas de trabajo óptimas. Para ayudar a ocultar esto al usuario tanto como sea posible, se puede usar un caché de E/S. Una caché de E/S almacena en caché las operaciones de lectura y escritura según sea necesario. Este caché generalmente se compone de memoria Flash o DRAM en la propia unidad. Las capacidades son generalmente bajas, aunque la clase de unidad híbrida de estado sólido o SSHD que cuenta con memoria Flash ofrece capacidades más considerables, aunque no comparables con las capacidades SSD modernas.

El almacenamiento en caché de lecturas significa que el HDD no tiene que buscar y luego leer los datos. Esto puede ofrecer excelentes beneficios de rendimiento, pero solo en operaciones de lectura posteriores. La primera lectura siempre es lenta. El almacenamiento en caché significa que las pequeñas operaciones de escritura pueden absorberse en la memoria caché y luego escribirse en el disco duro real tan rápido como lo permita. Esto ofrece velocidades más rápidas, pero ve una gran caída en el rendimiento si la memoria caché se agota alguna vez.

Una caché de E/S tiene que equilibrar cuidadosamente las necesidades de las funciones de lectura y escritura, especialmente cuando solo hay disponible una caché pequeña. Los cachés más grandes anulan un poco este problema, aunque los casos extremos con grandes conjuntos de datos aún pueden abrumar al caché flash de los SSHD más grandes.

Nota:Los SSD técnicamente también pueden usar su DRAM integrada como caché de E/S. Sin embargo, esto generalmente se usa principal o exclusivamente para almacenar la tabla de traducción de direcciones lógicas a físicas que se usa para encontrar datos en el SSD.

Conclusión

Un caché de disco es un caché que existe directamente en una unidad de almacenamiento. Puede adoptar la forma de una memoria caché de lectura o escritura o una memoria caché de E/S. Las memorias caché de lectura suelen almacenar datos en caché desde un almacenamiento de archivo más lento. Las cachés de escritura ocultan al usuario las bajas velocidades de escritura de los discos de almacenamiento. Las cachés de E/S ocultan al usuario las velocidades de lectura y escritura lentas.

Los cachés son excelentes herramientas de usabilidad, pero pueden causar algunos dolores de cabeza a los usuarios cuando se agotan. Esto es especialmente cierto para las memorias caché de escritura dinámica, como la memoria caché SLC. Como los usuarios no técnicos pueden no entender por qué sus velocidades de escritura son tan lentas y, por lo tanto, no pueden solucionarlos al abordar los problemas de capacidad.