Контроллер флэш-памяти (или флэш-контроллер ) управляет данными, хранящимися во флэш-памяти (обычно флэш-памяти NAND ), и обменивается данными с компьютером или электронным устройством . Контроллеры флэш-памяти могут быть предназначены для работы в средах с низким рабочим циклом, например карты памяти или другие подобные носители для использования в КПК , мобильных телефонах и т. д. В USB-накопителях флэш- памяти используются контроллеры флэш-памяти, предназначенные для связи с персональными компьютерами через USB-порт на низкий рабочий цикл. Флэш-контроллеры также могут быть разработаны для сред с более высокой нагрузкой, например, твердотельные накопители (SSD), используемые в качестве хранилища данных для портативных компьютерных систем, или критически важные корпоративные массивы хранения данных . [1]
После первоначального изготовления флэш-накопителя контроллер флэш-памяти сначала используется для форматирования флэш-памяти. Это гарантирует правильную работу устройства, определяет поврежденные ячейки флэш-памяти и выделяет запасные ячейки для замены будущих вышедших из строя ячеек. Некоторая часть запасных ячеек также используется для хранения встроенного ПО , которое управляет контроллером и другими специальными функциями конкретного устройства хранения. Создается структура каталогов, позволяющая контроллеру преобразовывать запросы логических секторов в физические местоположения на реальных микросхемах флэш-памяти. [1]
Когда системе или устройству необходимо прочитать данные или записать данные во флэш-память, они будут обмениваться данными с контроллером флэш-памяти. Более простые устройства, такие как SD-карты и USB-накопители, обычно имеют небольшое количество одновременно подключенных кристаллов флэш-памяти. Операции ограничены скоростью отдельного кристалла флэш-памяти. Напротив, высокопроизводительный твердотельный накопитель будет иметь больше кристаллов, организованных с параллельными путями связи, что обеспечит скорость, во много раз превышающую скорость одного флэш-кристалла. [ нужна цитата ]
Флэш-память выдерживает ограниченное количество циклов программного стирания. Если бы конкретный блок флэш-памяти был запрограммирован и удален неоднократно без записи в какие-либо другие блоки, один блок изнашивался бы раньше всех других блоков, тем самым преждевременно заканчивая срок службы устройства хранения. По этой причине флэш-контроллеры используют метод, называемый выравниванием износа, для максимально равномерного распределения операций записи по всем флэш-блокам SSD. В идеальном сценарии это позволило бы записать каждый блок до максимального срока его службы, чтобы все они вышли из строя одновременно. [2]
Обычно контроллеры флэш-памяти также включают в себя «уровень трансляции флэш-памяти» (FTL), уровень ниже файловой системы, который сопоставляет адреса логических блоков (LBA) на стороне хоста или файловой системы с физическим адресом флэш-памяти (логически-физический). картографирование). LBA относятся к номерам секторов и к единице отображения размером 512 байт. Все LBA, которые представляют логический размер, видимый и управляемый файловой системой, сопоставляются с физическим местоположением (идентификатором блока, идентификатором страницы и идентификатором сектора) флэш-памяти. В рамках выравнивания износа и других алгоритмов управления флэш-памятью (управление сбойными блоками, управление нарушениями чтения, безопасная обработка флэш-памяти и т. д.) физическое расположение LBA может часто динамически меняться. Единицы отображения FTL могут различаться, поэтому LBA отображаются на основе блоков, страниц или даже подстраниц. В зависимости от характера использования более высокая степень детализации сопоставления может значительно снизить износ флэш-памяти и максимально увеличить срок службы флэш-носителей. [3] [4] [5] В FTL также добавлена функция дедупликации для устранения избыточных данных и дублирования операций записи. [6]
Поскольку метаданные FTL занимают собственное флэш-пространство, они нуждаются в защите в случае отключения питания. Кроме того, таблица сопоставления может изнашиваться раньше, чем другие части флэш-памяти, что приводит к преждевременному прекращению срока службы устройства хранения данных. В корпоративных устройствах этого обычно избегают, выделяя слишком много места для запасных частей, хотя для FTL также предлагаются более надежные формы хранения, такие как MRAM . [ нужна цитация ] Соотношение размера метаданных FTL и емкости хранилища обычно составляет 1:1000, например, флэш-накопитель емкостью 1 ТБ может иметь 1 ГБ метаданных FTL.
После того, как каждый блок твердотельного запоминающего устройства будет записан один раз, контроллеру флэш-памяти необходимо будет вернуться к некоторым из начальных блоков, в которых больше нет текущих данных (также называемых устаревшими блоками). Данные в этих блоках были заменены вновь записанными блоками и теперь ожидают удаления, чтобы в них можно было записать новые данные. Это процесс, называемый сборкой мусора (GC). Все твердотельные накопители, CF-карты и другие флэш-накопители будут включать в себя определенный уровень сбора мусора. Скорость, с которой контроллер флэш-памяти будет это делать, может варьироваться. [7]