Есть SSD. Cкорость записи максимальна до примерно 1/3 его объёма. Далее скорость падает до 1/3 от максимальной. Типичное поведение для TLC-памяти.
Задача: Найти условия, при которых SSD обеспечивает максимальную или близкую к максимальной скорость записи за пределами SLC-объёма.
Гипотеза: Контроллер диска во время простоя перепаковывает SLC в TLC. Если дать контроллеру достаточно времени на перепаковку, он сможет записывать данные на максимальной скорости на большей части объёма SSD.
Проверка гипотезы: Буду записывать информацию на SSD кусками фиксированного размера (~1/20 объёма SLC), выдерживая паузу перед записью очередного куска. Длительность паузы должна быть не меньше разности наихудшего и наилучшего времени записи куска. Например, если в лучшем случае кусок был записан за 120 секунд, а худший за 600 секунд, то длительность паузы составит 480 секунд.
Результат проверки: При уменьшении средней скорости записи в 5 раз скорость записи куска данных увеличилась всего в 1.5 раза.
Вывод: Контроллер не спешит перепаковывать записанные данные. Вероятно, требуется увеличить длительность паузы.
Вопросы:
- Что мешает контроллеру немедленно приступить к перепаковке SLC в TLC?
- Как его к этому подтолкнуть?
- Как найти условия, при которых контроллер гарантированно освободит в SLC кусок памяти нужного мне объёма?