Ныне прогресс в сфере жестких дисков замедлился, в то время как полупроводниковая память начала развиваться все более быстрыми темпами. К чему это привело?

Во-первых, скорость работы у винчестеров давно уже прирастает весьма небольшими темпами, «упираясь» именно в механику. Давно уже списан со счетов стандарт АТА100, а винчестеры, которым пропускной способности этой вариации интерфейса РАТА недостаточно, появились относительно недавно. Причем все они относятся к моделям с форм-фактором 3.5 дюйма, т.е. достаточно громоздким и прожорливым, в то время как все большее распространение портативных компьютеров (объем продаж которых уже примерно равен объему продаж десктопов, а в некоторых странах и превосходит последний) наибольшие требования предъявляло к более компактным накопителям. Да и хоть какой-то рост производительности можно наблюдать лишь в области линейной скорости записи и чтения — случайные операции продолжают оставаться медленными, ибо не отказываясь от механики что-то путное сделать со временем доступа уже невозможно.

Емкость продолжает расти, однако тоже все медленнее и медленнее. Впрочем, она уже превысила основные требования массового пользователя к рабочему накопителю (разумеется, в области хранения больших объемов информации такого не наблюдается, так что внешние или внутренние массивы, емкостью в несколько терабайт, так и будут долго еще строиться исключительно на базе винчестеров) — сотни гигабайт для этого уже много, а ведь это «стартовый» объем для многих линеек винчестеров, поскольку меньше делать просто невыгодно. Да, место на диске это ресурс, которого вечно не хватает — чем забить гигабайты свободного пространства всегда найдется, но часто такое «забивание» происходит именно потому, что «лишняя» емкость уже есть. Не будь ее — можно и ограничить потребности, либо решить задачу другими способами. Если будет для того стимул — например, более высокая скорость работы и низкое энергопотребление.

Посмотрим, что нам в данном случае могут предложить флэш-накопители. Основные их достоинства проистекают из самой сущности флэш-памяти: это чисто электронный полупроводниковый носитель. Соответственно, чем «тоньше» техпроцессы, тем больше ячеек памяти можно уместить в тот же физический объем, так что рост емкости чипов флэш-памяти может быть вполне линейным. Емкость одной микросхемы ныне уже исчисляется гигабайтами. Вроде бы немного, однако это одна микросхема. Соответственно, самые компактные флэш-карты, в которые больше одного чипа не вмещается, имеют емкость в те самые несколько гигабайт, более крупные карты типа CompactFlash или флэшдрайвы содержат несколько чипов, так что самые емкие их представители уже могут предложить нам десятки гигабайт доступного места, а уж в корпус винчестера хотя бы на пластинах диаметром 1.8 дюйма, не говоря уже о более крупных «ноутбучных» моделях на пластинах по 2.5 дюйма,  можно вместить очень много чипов флэш-памяти — тут уже счет пойдет на сотни гигабайт. Но ведь до сих пор массово продаются и покупаются ноутбуки с винчестерами по 160-200 ГБ — значит, в ряде случаев этого достаточно, а такие величины современным флэш-накопителям уже доступны. Завтра же мы получим новые технологии и дальнейший рост емкости в расчете на микросхему, а значит и более емкие накопители.

Вторым следствием «электронной сущности» флэш-памяти является крайне низкое время доступа к любому блоку информации. В винчестерах мы вычисляем, где он находится, потом перемещаем блок магнитных головок на нужную дорожку, потом ждем, пока нужный сектор окажется под головкой — вторая и третья операции оптимизации не поддаются, поскольку зависят уже от физических параметров самих дисков: никакие более тонкие технологии их ускорить не могут. А во флэше все просто — вычисляем адрес нужного блока и сразу же получаем к нему доступ. Никаких механических операций — все время уходит на дешифрацию адреса и, собственно, передачу блока. Чем быстрее контроллер, тем быстрее и доступ к данным. Причем хаотические запросы к разным областям жесткого диска (а такое в современных многозадачных операционных системах происходит сплошь и рядом — с винчестером работают сразу несколько приложений) еще больше усугубляют ситуацию: для полупроводниковых носителей ничего страшного нет, винчестеры же вынуждены постоянно «гонять» головки по всей поверхности «блинов» и даже переупорядочивание очереди команд спасает не всегда.

Третий плюс флэша — энергопотребление. В винчестере блок дисков сначала нужно раскрутить, а потом поддерживать постоянную скорость его вращения. И даже в те моменты, когда он не совсем нужен, нам все равно требуется подавать энергию электромотору: если диски просто остановить, то, во-первых, мы потратим много энергии на последующий их старт, во-вторых, будем наблюдать достаточно длительные задержки как только нам потребуется информация (время выхода в рабочий режим не так уж и мало), а в-третьих, очень может быть, что быстро доведем накопитель до преждевременной кончины. С флэшем все проще: нужен — подаем питание, не нужен — отключаем. «Выход из спячки» практически мгновенный, да и ничего не испортится в отличие от постоянно останавливаемого и запускаемого электродвигателя. Соответственно, имеем более низкое энергопотребление и в работе (не нужно расходовать энергию на вращение дисков) и, в особенности, в состоянии покоя.

Но есть у флэш-памяти и недостатки. Во-первых, общая емкость накопителей уже достаточно велика, но, все же, пока заметно меньше, чем у винчестеров. Во-вторых, стоимость хранения каждого гигабайта информации в разы выше. Это пока ставит крест на применении флэш-памяти там, где нам реально нужны большие массивы информации. «Пока», поскольку развивается эта технология быстрее винчестеров, так что со временем эти два недостатка сойдут на нет. В свое время, кстати, подобная история была с оперативной памятью на магнитных сердечниках — остальные схемы компьютеров уже перешли на полупроводниковые элементы, а вот ОЗУ оставалось все таким же архаичным: так получалось дешевле, да и компактнее. И ничего — со временем развитие полупроводниковых технологий позволило от отдельных транзисторов перейти к интегральным микросхемам, которые магнитные сердечники и похоронили. В-третьих же не все просто со скоростью работы. Да, доступ к любой ячейке осуществляется почти мгновенно, а вот само по себе ее чтение и передача информации по шине уже занимает достаточно большое количество времени. В частности, на сегодняшний момент, типичные скорости чтения информации с одной микросхемы составляют 20-25 МБ/с, в то время, как многие массовые модели винчестеров шагнули уже за 100 МБ/с. Еще хуже ситуация с операциями записи. Во-первых, мы не можем просто взять и изменить содержимое любой ячейки — стирание информации происходит достаточно большими блоками. Соответственно, нам нужно этот блок считать, нужное изменить и перезаписать обратно. Соответственно, при реализации записи просто «в лоб» ничего хорошего мы не получим. Во-вторых, даже при последовательной записи больших объемов информации (где нам не обязательно использовать вышеприведенные сложные схемы), скорость записи достаточно невелика — 15-20 МБ/с для микросхем с одноуровневыми ячейками (SLC) и всего 5-10 МБ/с для многоуровневых чипов (MLC). Причем при массовом применении о первых цифрах нам можно сразу забыть, ориентируясь на вторые: SLC-чипы банально дороже и объем их ниже, так что для массовых решений подходит только MLC. Но даже если с первыми двумя проблемами мы что-то сделать можем, то встает в полный рост третья — операции стирания не полностью обратимы, так что со временем ячейки флэш-памяти банально разрушаются. Ресурс достаточно высок, но далеко не бесконечен. А самое неприятное то, что изнашиваться будут разные области неравномерно. Это фотографам с флэш-картами хорошо — обычно карта отснимается целиком, потом целиком же и очищается. В данном случае обещанных теорией 10000 операций стирания/записи для ML-ячейки хватает как раз примерно на те же 10000 раз полного заполнения карты. Даже если делать это по три раза в день без выходных, проработает 10 лет: скорее всего, ненужной окажется раньше, чем физически «отбросит копыта». Ресурс же SL-ячеек в 10 раз выше, так что тут поводов для волнений вообще особых нет. А у рабочего накопителя на базе флэш-памяти все гораздо хуже: некоторые блоки будут перезаписываться редко, зато некоторые — постоянно. Например, возьмем такую «милую» файловую систему, как FAT, до сих применяемую в индустрии. В ней большинство операций изменения файлов приводит к необходимости что-либо поменять и в самой таблице размещения файлов, которая достаточно компактна и легко может вместиться в несколько блоков. В результате через некоторое время мы рискуем получить следующую картину: все блоки флэш-накопителя выработали ресурс дай боже на 5%, а те, куда попадала сама FAT, уже умерли смертью храбрых из-за постоянного стирания и записи. И не стоит думать, что более современные файловые системы этой напасти лишены в принципе — активно используемые системные области есть всегда.