¿Cuál es la mayor sobrecarga de memoria estable para los SSD?

4

Con un HDD, la mayor sobrecarga para acceder a la memoria estable (donde medimos el tiempo de acceso desde el momento en que la instrucción pasa la etapa MEM en la tubería) son los costos de E / S para buscar la pista correcta en el disco.

En general, la contribución al tiempo es probablemente algo como esto (supongo, corríjame si me equivoco):

Seek > Rotation > Copying to buffer > OS page replacement code
     > Actual bus I/O costs and copying to in-memory location
     > Context switches

Aunque estoy bastante seguro de la primera.

¿Cuál es el orden de la memoria flash?

    
pregunta VF1

2 respuestas

4

Para el caso del disco duro, su ejemplo se ve bastante bien. El tiempo de búsqueda promedio es 1/3 del tiempo máximo para moverse por todas las pistas, y el retardo de rotación promedio es la mitad de una revolución del disco.

Si el sistema tiene un búfer de E / S multisector, entonces se verificará si el sector deseado ya está en la memoria, y si lo está, entonces se usará la copia existente en lugar de volver a leerla HDD de nuevo. Esto es particularmente cierto en aquellos casos en que se usan clústeres y se accede a sectores secuenciales en el clúster.

Por otro lado, si los sectores de un archivo se leen de forma secuencial, pero los sectores no se siguen en el disco debido a la fragmentación, entonces se agrega el tiempo de búsqueda más la latencia de rotación a cada sector leído.

También en el caso de HDD, normalmente hay muy poca diferencia entre la lectura y la escritura (me doy cuenta de que acaba de preguntar sobre el acceso al dispositivo de almacenamiento masivo, pero lo incluyo solo para completar). Incluso si los datos están encriptados, hay un retraso en descifrar los datos al leerlos, y al encriptarlos por escrito, dado que esto último podría demorar un poco más.

Para el caso de SSD, la gran diferencia es que no hay tiempo de búsqueda o latencia de rotación. (Hay un tiempo de configuración, pero es del orden de 100 µs). Además, la transferencia de bytes desde la memoria SSD a la RAM puede ser varias veces más rápida que para un HDD. La sobrecarga para un volumen encriptado también sería la misma que la anterior.

El gran éxito con SSD es la escritura de los datos. La memoria flash NAND debe borrarse primero y luego escribirse en las páginas. El borrado puede llevar unos pocos milisegundos. Además, hay un número finito de veces que este ciclo de borrado se puede realizar de manera confiable en cada página, por lo que para evitar que los medios SSD se desgasten demasiado rápido, se utiliza la nivelación de desgaste . Esto significa que una página de sectores escrita con frecuencia se moverá a otra área del disco.

Entonces, para responder a la pregunta en su título, diría que la mayor sobrecarga para los SSD sería la nivelación del desgaste.

    
respondido por el tcrosley
2

A diferencia de los discos duros, donde la escritura de un sector hace que los datos antiguos se escriban en la misma ubicación que el contenido anterior del sector, las unidades de estado sólido manejan invariablemente el sector escribe al almacenar los datos en una nueva ubicación y luego de alguna manera toma nota de que debe encontrarse en la nueva ubicación en lugar de la anterior. Un disco de 32 GB formateado con sectores de 512 bytes necesitará rastrear la posición de aproximadamente 64,000,000 de sectores. Una vez, cuando las unidades eran mucho más pequeñas, algunos sistemas de administración de estado sólido simplemente marcaron cada sector con su dirección lógica y mantendrían una tabla de mapeo en la RAM o examinarían cada sector cuando fuera necesario para encontrar una solicitud, pero ninguno de esos enfoques Es práctico cuando hay 64,000,000 de sectores a seguir. Incluso si una unidad pudiera leer datos de ubicación de un sector por microsegundo, la lectura de 64,000,000 tomaría más de un minuto.

No sé hasta qué punto los fabricantes de SSD publican los algoritmos que están utilizando para la administración del sector, pero es posible diseñar una variedad de compensaciones entre el acceso aleatorio y las velocidades de lectura secuencial, el acceso aleatorio y la escritura secuencial velocidades, requisitos de RAM, robustez frente a la adversidad (como una pérdida inesperada de energía mientras se escribe), etc. En consecuencia, los diferentes chips pueden tener variaciones sustanciales en los tiempos promedio, el mejor y el peor caso para la lectura y la escritura. Las especificaciones pueden ofrecer cifras de desempeño de caso promedio y de caso peor, pero no sé en qué casos se puede garantizar que el rendimiento será significativamente mejor que en el peor de los casos (lo que sería mucho peor que el caso típico).

    
respondido por el supercat

Lea otras preguntas en las etiquetas