Эта информация иногда публикуется в спецификациях производителя SSD, но в других случаях ее нет, особенно для карт памяти CF или SD. Если не использовать Google для поиска кого-то, кто провел исследование, вы можете попытаться оценить его самостоятельно с помощью FlashBench. Загрузите его здесь: https://github.com/bradfa/flashbench
Этот инструмент выполняет случайное чтение на SSD и построит таблицу, показывающую время чтения. (Вы должны были уже сделать некоторые записи на SSD, потому что чтение полностью стертых страниц часто симулируется микросхемой контроллера.) Посматривая разрывы времени по размеру блока, вы можете определить, какой размер блока стирания. Вот образец из README
:
== Угадай стереть блок и размеры страницы ==
''flashbench -a <device>''
Это простой тест, предназначенный только для чтения, который выполняет небольшие операции чтения через границы разных размеров. Пример:
$ sudo ./flashbench -a /dev/mmcblk0 --blocksize=1024
align 134217728 pre 735µs on 1.08ms post 780µs diff 324µs
align 67108864 pre 736µs on 1.05ms post 763µs diff 300µs
align 33554432 pre 722µs on 1.04ms post 763µs diff 294µs
align 16777216 pre 727µs on 1.05ms post 772µs diff 302µs
align 8388608 pre 724µs on 1.04ms post 768µs diff 299µs
align 4194304 pre 741µs on 1.08ms post 788µs diff 317µs
align 2097152 pre 745µs on 950µs post 811µs diff 171µs
align 1048576 pre 745µs on 945µs post 807µs diff 169µs
align 524288 pre 743µs on 936µs post 799µs diff 165µs
align 262144 pre 746µs on 948µs post 809µs diff 171µs
align 131072 pre 737µs on 935µs post 804µs diff 165µs
align 65536 pre 735µs on 925µs post 796µs diff 159µs
align 32768 pre 735µs on 925µs post 800µs diff 157µs
align 16384 pre 745µs on 911µs post 781µs diff 148µs
align 8192 pre 785µs on 808µs post 725µs diff 53.3µs
align 4096 pre 784µs on 788µs post 779µs diff 5.85µs
align 2048 pre 787µs on 793µs post 789µs diff 4.65µs
Это показывает время доступа для двух 1024-байтовых считываний вокруг границ выровненных блоков степени двух. Чтение в конце блока 128 МБ занимает около 735 микросекунд, чтение последнего блока этого блока вместе с первым блоком следующего занимает около 1080 микросекунд, а чтение первых двух блоков в блоке 128 МБ - около 780 микросекунд.
Наиболее интересное число здесь - последнее, разница между вторым и средним первым и третьим составляет 324 микросекунды. Все эти цифры остаются примерно одинаковыми для всех устройств от 4 МБ до 128 МБ.
Однако от 2 МБ до 16 КБ последний столбец имеет гораздо меньшее значение. Это указывает на то, что все, что делает карта памяти на границе 4 МБ, не происходит на других границах. Обоснованное предположение здесь состоит в том, что 4 МБ - это размер стираемого блока, также называемый размером сегмента или единицы выделения. Этот размер блока стирания нужно будет использовать в других тестах, следующих за этим.
Точно так же границы 16 КБ и 8 КБ являются особыми. Логическим объяснением этого является то, что карта имеет 8 КБ страниц, но может использовать многоплоскостной доступ для одновременного чтения двух 8 КБ страниц.
Некоторые карты показывают четкий шаблон, используя доступ с определенными размерами блоков, другие карты не показывают никакого шаблона, что означает, что числа должны быть определены по-разному.
Кроме того, карты, которые никогда не были полностью записаны, могут демонстрировать другое поведение, поскольку время доступа к предварительно стертым сегментам отличается от времени записи.