Как известно, флеш-накопители изнашиваются при многократной перезаписи данных. Однако стоит ли доверять гарантийным срокам эксплуатации, заявленным в технических характеристиках флешек? Исследователи из Северо-Восточного Университета (США) решили выяснить это наверняка.
Симона Бобойла (Simona Boboila) и Питер Десноерс (Peter Desnoyers) осуществили тестирование на уровне микросхем, разбор конструкции, тестирование всего устройства и анализ результатов, чтобы вычислить реальный срок службы трех разных категорий флеш-накопителей. Результаты их исследования опубликованы в отчете «Устойчивость флеш-накопителей к износу по мере перезаписи: измерение и анализ» (Write Endurance in Flash Drives: Measurements and Analysis).
Суть проблемы
Флеш-накопители устроены иначе, чем жесткие диски, и флеш-контроллерам приходится всячески изощряться для того, чтобы они могли успешно имитировать возможности дисковых накопителей. За выполнение этой задачи отвечает встроенное ПО под названием Flash Translation Layer или FTL.
В USB-накопителях обычно используется флеш-память с архитектурой многоуровневых ячеек (Multi-level cell, MLC), которая позволяет втиснуть в каждую ячейку как минимум 2 бита данных, а то и больше, за счет сокращения износостойкости — не более 1000-10 000 циклов записи на ячейку. При записи на флешку, как правило, стирается и заново записывается целый блок памяти объемом 128-256 Кбайт.
Даже при копировании на флеш-накопитель небольшого текстового файла объемом не более 6 Кбайт происходит стирание и перезапись целого блока, в то время как для записи на жесткий диск никакого стирания не требуется, да и магнитные свойства по мере перезаписи никуда не деваются, в отличие от флеш-памяти.
Для продления срока службы флеш-накопителя используется технология управления записью. Кроме того, встроенное ПО следит за тем, чтобы для записи всегда было достаточно свободных блоков, поскольку на стирание и перезапись уходит несколько десятков миллисекунд.
FTL отвечает за виртуализацию емкости, удаление ненужных данных, управление записью и блоками. Все это так или иначе сказывается на производительности и возможностях флеш-дисков (См. Design tradeoffs for SSD performance). В целом, гарантийный срок эксплуатации флешки зависит от износостойкости микросхемы (то есть, от того, сколько циклов перезаписи она может выдержать) и от эффективности FTL.
Тестирование
Симона Бобойла и Питер Десноерс изучили возможности трех разных флеш-дисков — типичного 64-мегабайтного, стандартной 2-гигабайтной флешки, которую можно купить в любом розничном магазине, и USB-накопителя Memorex TravelDrive объемом 512 Мбайт. Исследователи заполнили все логические блоки, поскольку на пустом накопителе цикл «стирание-перезапись» не происходит, а затем начали перезаписывать данные.
При этом флеш-накопители были подключены к логическому анализатору, с тем чтобы выяснить, что происходит в промежутке между отправкой команды на чтение/запись и реальным чтением, стиранием и перезаписью на флеш-микросхеме.
Вот результаты логического анализа для накопителя Memorex:
Результаты
Первая хорошая новость: все три накопителя выдержали гораздо больше циклов перезаписи, чем было обещано в спецификациях. Даже дешевая 64-мегабайтная флешка сдалась только после 77 миллионов циклов записи.
Вторая хорошая новость: флеш-диск Memorex так и не сломался (не зря он столько стоит). По оценкам исследователей, предел накопителя — 60 000 000 000 циклов перезаписи, но у них просто не было времени проверить это на практике. В целом, Memorex оказался приблизительно в тысячу раз выносливее стандартной флешки. Это ли не прекрасно!
Плохая новость: исследователи выявили несколько режимов отказа. Самый неприятный — скрытая ошибка записи, когда данные якобы записываются на диск, но при чтении обнаруживается, что запись все-таки не состоялась. Доверяй, но проверяй, как говорится.
Некоторые модели типичных флеш-накопителей при записи периодически блокируются, что приводит к зависанию записи на неопределенный период времени. В случае с накопителем Memorex такой проблемы замечено не было.
Мнение редакции
После недавних публикаций о недолговечности модулей DIMM и недостатках жестких дисков я был морально готов разочароваться и во флешках, но к счастью, мои ожидания не оправдались. Как оказалось, флеш-накопители вполне соответствуют заявленным спецификациям на практике.
Учитывая, какую спартанскую выносливость демонстрируют в испытаниях даже самые дешевые флешки, можно не сомневаться, что новая флеш-память на основе MLC-чипов, способных вместить 3-4 бита данных в каждую ячейку, окажется вполне долговечной, несмотря на малую износостойкость — до 1000 циклов записи на ячейку. А поскольку стоить такая память будет намного дешевле, ее можно будет применять даже в бюджетных устройствах.
Вместо того, чтобы беспокоиться об износостойкости, разработчикам FTL стоит обратить внимание на проблемы неполной записи и нарушения целостности данных, потому что некоторые флеш-накопители дают сбои именно в этих отношениях.
Но в целом, это исследование несомненно порадует рядовых пользователей и послужит прекрасным признанием заслуг разработчиков и производителей флеш-накопителей.