Некоторое время не рекомендовали использовать флеш-память для работы настольной системы, такой как Windows. Но что сделало его желанным и жизнеспособным вариантом для мобильных устройств? В сегодняшнем посте SuperUser Q&A есть ответ на любопытный вопрос читателя.
Сегодняшняя сессия вопросов и ответов проходит благодаря SuperUser - подразделению Stack Exchange, группы веб-сайтов вопросов и ответов, управляемой сообществом.
Вопрос
Читатель SuperUser RockPaperLizard хочет знать, что делает флэш-память eMMC жизнеспособной в мобильных устройствах, но не в ПК:
С тех пор, как были изобретены USB-накопители, люди задавались вопросом, могут ли они запускать на них свои операционные системы. Ответом всегда было «нет», потому что количество операций записи, требуемых операционной системой, быстро изнашивает их.
По мере того, как твердотельные накопители становятся все более популярными, технология выравнивания износа улучшается, чтобы на них можно было работать. В различных планшетах, нетбуках и других тонких компьютерах вместо жесткого диска или твердотельного накопителя используется флэш-память, на которой хранится операционная система.
Как это вдруг стало практичным? Например, они обычно применяют технологии выравнивания износа?
Что делает флэш-память eMMC жизнеспособной в мобильных устройствах, но не в ПК?
Ответ
У авторов SuperUser, Speeddymon и Journeyman Geek, есть ответ для нас. Во-первых, Speeddymon:
Все устройства флэш-памяти, от планшетов до мобильных телефонов, смарт-часов, твердотельных накопителей, SD-карт в камерах и флэш-накопителей USB используют технологию NVRAM. Разница заключается в архитектуре NVRAM и в том, как операционная система монтирует файловую систему на любом носителе, на котором она находится.
Для планшетов и мобильных телефонов Android технология NVRAM основана на eMMC. Данные, которые я могу найти по этой технологии, предполагают от 3 до 10 тысяч циклов записи. К сожалению, ни один из того, что я нашел до сих пор, не является окончательным, поскольку в Википедии нет данных о циклах записи этой технологии. Все другие места, которые я искал, оказались различными форумами, поэтому вряд ли это можно назвать надежным источником.
Для сравнения: циклы записи на других технологиях NVRAM, таких как твердотельные накопители, которые используют технологию NAND или NOR, составляют от 10k до 30k.
Теперь по поводу выбора операционной системой способа монтирования файловой системы. Я не могу говорить о том, как это делает Apple, но для Android чип разделен на разделы, как и жесткий диск. У вас есть раздел операционной системы, раздел данных и несколько других проприетарных разделов в зависимости от производителя устройства.
Настоящий корневой раздел находится внутри загрузчика, который упакован в виде сжатого файла (jffs2, cramfs и т. Д.) Вместе с ядром, так что когда загрузка устройства на этапе 1 завершена (обычно экран с логотипом производителя), тогда ядро загружается, и корневой раздел одновременно монтируется как RAM-диск.
Когда операционная система загружается, она монтирует файловую систему основного раздела (/ system, которая является jffs2 на устройствах до Android 4.0, ext2 / 3/4 на устройствах начиная с Android 4.0 и xfs на последних устройствах) как доступная только для чтения, поэтому что в него нельзя записать никакие данные. Это, конечно, можно обойти с помощью так называемого «укоренения» вашего устройства, которое дает вам доступ в качестве суперпользователя и позволяет перемонтировать раздел для чтения / записи. Ваши «пользовательские» данные записываются в другой раздел на чипе (/ data, который следует тому же соглашению, что и выше, в зависимости от версии Android).
Поскольку все больше и больше мобильных телефонов отказываются от слотов для SD-карт, вы можете подумать, что вы достигнете ограничения цикла записи раньше, потому что все ваши данные теперь сохраняются в хранилище eMMC, а не на SD-карте. К счастью, большинство файловых систем обнаруживают неудачную запись в заданную область хранения. В случае сбоя записи данные автоматически сохраняются в новой области хранения, а поврежденная область (известная как плохой блок) блокируется драйвером файловой системы, чтобы в будущем данные туда больше не записывались. В случае сбоя чтения данные помечаются как поврежденные, и либо пользователю предлагается запустить проверку файловой системы (или проверить диск), либо устройство автоматически проверяет файловую систему во время следующей загрузки.
Фактически, у Google есть патент на автоматическое обнаружение и обработку плохих блоков: Управление сбойными блоками во флэш-памяти для электронных данных флэш-карты
Чтобы перейти к делу, ваш вопрос о том, как это внезапно стало практичным, не тот вопрос. Во-первых, это никогда не было непрактичным. Настоятельно не рекомендуется устанавливать операционную систему (Windows) на SSD (предположительно) из-за большого количества операций записи на диск.
Например, реестр получает буквально сотни операций чтения и записи в секунду, что можно увидеть с помощью Инструмент Microsoft-SysInternals Regmon .
Не рекомендуется устанавливать Windows на твердотельные накопители первого поколения, потому что из-за отсутствия выравнивания износа данные, записываемые в реестр каждую секунду (вероятно), в конечном итоге попали в руки первых пользователей и привели к невозможности загрузки систем из-за повреждения реестра.
В планшетах, мобильных телефонах и практически любом другом встраиваемом устройстве нет реестра (за исключением, конечно, устройств Windows Embedded), и, следовательно, можно не беспокоиться о том, что данные постоянно записываются в одни и те же части флэш-носителя.
Для устройств Windows Embedded, таких как многие киоски в общественных местах (например, Walmart, Kroger и т. Д.), Где вы можете время от времени видеть случайный BSOD, не так уж много настроек, которые можно выполнить, поскольку они предварительно разработаны с конфигурациями, которые никогда не меняются. В большинстве случаев изменения происходят только до того, как чип будет записан. Все, что необходимо сохранить, например платеж в продуктовый магазин, осуществляется по сети в базах данных магазина на сервере.
Затем следует ответ от Подмастерье Гика:
Ответом всегда было «нет», потому что количество операций записи, требуемых операционной системой, быстро изнашивает их.
Наконец, они стали рентабельными для массового использования. Единственное, что вызывает беспокойство, - это «износ». Существуют системы, работающие с твердотельной памятью в течение значительного периода времени. Многие люди, которые строили автомобильные компьютеры, загружались с CF-карт (которые были электрически совместимы с PATA и были просты в установке по сравнению с жесткими дисками PATA), а промышленные компьютеры имели небольшие надежные флеш-накопители.
Тем не менее, для обычного человека было не так много вариантов. Вы можете купить дорогую CF-карту и адаптер для ноутбука или найти крошечный, очень дорогой промышленный диск в модульном блоке для настольного компьютера. Они были не очень большими по сравнению с современными жесткими дисками (я думаю, что современные IDE DOM имеют максимум 8 или 16 ГБ). Я почти уверен, что твердотельные системные диски можно было установить задолго до того, как стандартные твердотельные накопители стали обычным явлением.
Насколько мне известно, на самом деле не было никаких универсальных / магических улучшений в выравнивании износа. Были внесены постепенные улучшения, когда мы отошли от дорогих SLC к MLC, TLC и даже QLC вместе с меньшими размерами процессов (все из которых более низкая стоимость с некоторым более высоким риском износа). Вспышка стала намного дешевле.
Также было несколько альтернатив, у которых не было проблем с износом. Например, запуск всей системы с помощью ПЗУ (которое, возможно, является твердотельным накопителем) и оперативной памяти с резервным питанием, которую использовали многие ранние твердотельные накопители и портативные устройства, такие как Palm Pilot. Ничего из этого сегодня не распространено. Жесткие диски качались по сравнению, скажем, с ОЗУ с батарейным питанием (слишком дорого), ранними твердотельными устройствами (несколько дорого) или крестьяне с флагами (никогда не прижился из-за ужасной плотности данных). Даже современная флеш-память - это потомок быстро стирающихся eeproms а eeproms веками использовались в электронных устройствах для хранения таких вещей, как прошивки.
Жесткие диски просто идеально сочетались с большим объемом (что важно), низкой стоимостью и относительно достаточным объемом памяти.
Причина, по которой вы обнаруживаете eMMC в современных компьютерах низкого уровня, заключается в том, что компоненты относительно дешевы, достаточно велики (для настольных операционных систем) при такой стоимости и имеют общие черты с компонентами мобильных телефонов, поэтому они производятся массово со стандартным интерфейсом. Они также обеспечивают большую плотность хранения для своего объема. Учитывая, что у многих из этих машин есть ничтожные диски на 32 или 64 ГБ, наравне с жесткими дисками большей части десятилетней давности, они являются разумным вариантом в этой роли.
Мы наконец-то подошли к тому моменту, когда вы можете хранить разумный объем памяти по доступной цене и с разумной скоростью на eMMC и флэш-дисках, поэтому люди выбирают их.
Есть что добавить к объяснению? Отключить звук в комментариях. Хотите узнать больше ответов от других технически подкованных пользователей Stack Exchange? Ознакомьтесь с полной веткой обсуждения здесь .
Кредит изображения: Мартин Вольтри (Flickr)