ФЛЭШ-НАКОПИТЕЛЬ

Данная полезная модель относится к вычислительной технике и является частью информационной управляющей системы, представляющей полупроводниковую систему памяти, аналогичной дисковому накопителю, предназначенной для долговременного хранения дискретной информации больших объемов, записываемой в накопитель типа флэш-память, обеспечивающей сохранность записанной информации при штатных и аварийных включениях/выключениях напряжения его питания и поддерживающей внешний интерфейс.
Известен модуль оперативной памяти, выполненный на множестве микросхем памяти, размещенных на одной поверхности печатной платы и соединенных с соединительными разъемами, расположенными на печатной плате (патент RU на полезную модель №94750, опубликовано 27.05.2010 г., МПК G11C 8/00). При такой организации память может иметь очень высокое быстродействие, зависящее от рабочей тактовой частоты, но при этом ограничиваются ее функциональные возможности, в частности, невозможность перезаписи содержимого памяти.
Известен вычислительный модуль, содержащий внутреннюю системную магистраль адреса, внутреннюю системную магистраль данных, внутреннюю системную магистраль управления, центральный процессор, оперативное запоминающее устройство, постоянное запоминающее устройство и контроллер связи с внешними устройствами (патент RU №21310, опубликовано 10.01.2002 г., МПК G06F 7/00), в котором за счет использования элементов энергонезависимой электроперепрограммируемой памяти стало возможным изменять содержимое памяти без демонтажа элементов памяти или применения дополнительных устройств (например, программаторов). Недостатком такой модели является отсутствие системы определения и адресации/переадресации блоков памяти.
Наиболее близким по технической сущности к заявляемой модели является модуль накопителя (патент RU на полезную модель №13113, опубликовано 20.03.2000 г., МПК G11C 16/00), взятый за прототип, содержащий блок энергонезависимой электроперепрограммируемой памяти, интерфейсный контроллер, внешнюю интерфейсную магистраль адреса, внешнюю интерфейсную магистраль данных, внешнюю интерфейсную магистраль управления, первую внутреннюю интерфейсную магистраль адреса, внутреннюю интерфейсную магистраль данных, в котором за счет совмещения во времени процедуры загрузки данных в один банк буферного запоминающего устройства из вычислительного модуля по внешним магистралям адреса, данных и управления, и процедуры записи данных в блок энергонезависимой электроперепрограммируемой памяти позволило повысить эффективность подсистемы хранения данных.
Недостатком прототипа является то, что при использовании в одном устройстве различных типов памяти, имеющих разные характеристики, не были учтены особенности примененных микросхем энергонезависимой электроперепрограммируемой памяти (флэш), а именно:
несоответствие минимальных объемов информации, которыми оперируют флэш-память и другие типы накопителей,
- специфика выполнения операции чтения/записи во флэш-памяти,
- ограниченное количество циклов записи во флэш-памяти,
- неравномерное распределение циклов записи на кластер,
- ограниченное количество циклов записи всех блоков,
- наличие изначально нерабочих («битых») блоков во флэш-памяти,
- «битые» блоки во флэш-памяти, приобретаемые во время работы,
что значительно ограничило его быстродействие, а используемая фиксированная адресация, не позволяющая управлять областями памяти, уменьшила ресурс изделия.
Техническая задача, решаемая заявляемой полезной моделью-интеграции в одном модуле компонентов различных типов памяти (SEPROM, SRAM, SDRAM, EEPROM), увеличения объема буферного ОЗУ и организации оптимального скоростного режима работы системы, в результате чего обеспечивается следующий технический результат - создание полупроводниковой системы памяти, аналогичной дисковому накопителю, с быстродействием, ресурсом и надежностью, значительно превышающими показатели прототипа.
Указанная задача решается тем, что, флэш-накопитель, содержащий буферное ОЗУ, флэш-память, устройство управления, контроллер шины интерфейса, контроллер флэш-памяти и внешний интерфейс, дополнительно содержит контроллер ОЗУ, непосредственно связанный с буферным ОЗУ, а по внутренней магистрали - с контроллером кэш-памяти, контроллером флэш-памяти и устройством управления, кэш-память и контроллер кэш-памяти, связанные между собой, а контроллер кэш-памяти соединен с устройством управления, в которое дополнительно введены блок переадресации и блок обнаружения и коррекции ошибок и подведен внешний сигнал STORE, и контроллером интерфейса со стандартным подключением к внешнему интерфейсу.
Сущность заявляемой полезной модели поясняется чертежом, на котором изображена структурная схема модуля.
На чертеже обозначены:
1 - устройство управления;
1.1 - блок логической переадресации;
1.2 - блок обнаружения и коррекции ошибок;
2 - контроллер интерфейса;
3 - контроллер буферного ОЗУ;
4 - контроллер флэш-памяти;
5 - контроллер кэш-памяти;
6 - буферное ОЗУ;
7 - флэш-память;
8 - кэш-память;
Устройство управления 1 выполнено на микроконтроллере ATMEGA и обеспечивает организацию работы контроллеров интерфейса, ОЗУ, флэш- и кэш-памяти при обращениях к флэш-накопителю и переписывания данных из буферного ОЗУ в накопитель флэш-памяти при снятии напряжения питания. Внутри устройства каждый массив имеет свой адрес, соответствующий адресу в пространстве памяти накопителя. Устройство управления преобразует адреса операционной системы во внутренние адреса массивов устройства. Во время хранения массива информации в буферном ОЗУ адрес данного массива хранится в дополнительном буфере оперативной памяти.
Блок логической переадресации 1.1 в составе устройства управления служит для выравнивания циклов записи по всем блокам флэш-памяти и определения нерабочих блоков флэш-памяти.
Блок обнаружения и коррекции ошибок 1.2 в составе устройства управления контролирует достоверность блоков информации, и, при необходимости, проводит их корректировку.
Контроллер интерфейса 2, выполненный на микросхемах ПЛИС, обеспечивает передачу команд и данных между внешней шиной интерфейса и внутренней локальной шиной модуля. Контроль данных осуществляется с помощью контрольных разрядов на всех этапах обращения к модулю во всех его узлах.
Контроллер буферного ОЗУ 3, реализованный на микросхемах ПЛИС, обеспечивает выполнение режимов чтения и записи в буферное ОЗУ информации из кэш- и флэш-памяти по командам устройства управления, а так же обеспечивает режим автообновления микросхем SDRAM, на которых построено буферное ОЗУ.
Контроллер флэш-памяти 4, реализованный на микросхемах ПЛИС, преобразует внутреннюю систему сигналов в набор сигналов для работы с микросхемами флэш-памяти, используется для временного хранения блока данных при записи страницы, и обеспечивает выполнение режимов чтения и записи во флэш-памяти.
Контроллер кэш-памяти 5, реализованный на микросхеме ПЛИС, обеспечивает выполнение режимов чтения и записи в массив кэш-памяти.
Буферное ОЗУ 6, выполненное на микросхемах SDRAM, служит для временного хранения, модификации и перераспределения массивов данных, обеспечивая сокращение количества записей в микросхемы флэш-памяти, существенно увеличивая тем самым срок службы изделия.
Массив флэш-памяти 7, обеспечивающий энергонезависимое хранение данных, содержит 16 энергонезависимых электроперепрограммируемых микросхем с объемом памяти 1 Гбайт. Каждая микросхема содержит 8192 блока по 128 Кбайт, каждый блок содержит 64 страницы по 2 Кбайта. Чтение и запись производится постранично, причем запись возможна только в предварительно стертый блок.
Кэш-память 8, реализованная на микросхемах SRAM, служит для буферизированного хранения данных при обмене по интерфейсу и предназначена для одновременного выполнения нескольких операций, а так же выравнивания скорости работы различных узлов. Единицей хранения кэш является блок флэш. Всего в кэш помещается 8 Кбайтов (8192 блока). Кэш заполняется, начиная с нулевого адреса.
Для быстрого определения места нахождения (в буферном ОЗУ или флэш-памяти), а так же быстрого нахождения в буферном ОЗУ достоверного блока, в заявляемой модели используется тег. Тег содержит столько же ячеек, сколько блоков во флэш-памяти. Адресация ячеек тег соответствует адресации блоков во флэш-памяти и в пространстве флэш-накопителя. Тег содержит следующие поля:
- признак наличия блока в буферном ОЗУ,
- 13-ти разрядный адрес блока в буферном ОЗУ,
- 8-ми разрядное смещение адреса блока во флэш-памяти, обеспечивающее адресацию блоков во флэш-памяти с учетом плохих (битых) блоков.
Для загрузки конфигурационных файлов в ПЛИС используются микросхемы SEPROM. Конфигурационные файлы записываются в микросхемы SEPROM по интерфейсу.
Обмен данными внутри флэш-накопителя происходит массивами по 1024 шестнадцатиразрядных слов. Чтение данных происходит непосредственно из флэш-памяти через ее контроллер. Запись данных ведется в буферное ОЗУ. При заполнении буфера данные, записанные ранее, блоками вытесняются во флэш-память, а новые записываются на место наиболее старых данных. Данные, записанные ранее в буферное ОЗУ так же доступны для чтения и перезаписи.
Кроме внешнего интерфейса флэш-накопитель имеет внешний сигнал STORE, программно вырабатываемый непосредственно перед выключением устройства и предназначенный для подачи команды принудительной записи всех данных из буферного ОЗУ во флэш-память.
При использовании в одном устройстве нескольких флэш-накопителей, их адреса на шине интерфейса задаются идентификационным номером ID0…ID3.
Работа с флэш-памятью 7 организована следующим образом: каждому кластеру ставится в соответствие дополнительный блок информации, содержащий служебный код. Страница информации во флэш-памяти, равная по объему 2048 байт, разбивается на 4 части по 512 байт. Реальный физический адрес и бит достоверности хранятся в собственной энергонезависимой памяти блока логической переадресации.
Процесс чтения из флэш-памяти 7 происходит следующим образом: определяется наличие необходимого кластера в буфере ОЗУ 6 и буфере чтения, равному по объему одной странице (2 Кбайта). Если кластер был ранее записан в ОЗУ, он выводится на внешнюю шину. Если кластер есть в кэш-памяти 8, он выдается на шину, если отсутствует - происходит считывание страницы в кэш-память 8 и на внешнюю шину выдается только запрошенный кластер из данной страницы.
Таким образом, учитывая, что флэш-память 7 имеет ограниченное количество циклов записи блока информации (~ 105 циклов), а в процессе работы одни кластеры подвергаются единичным циклам записи, другие - свыше нескольких миллионов, вновь введенная кэш-память, фактически являясь кэшем отложенной записи, значительно продлевает срок работоспособности флэш-накопителя, а блок логической переадресации увеличивают ресурс изделия за счет выравнивания циклов записи по всем блокам. Буферное ОЗУ 6 дублирует блоки данных флэш-памяти 7, а блок логической переадресации 11, в дополнение к выше указанным операциям, при первом включении флэш-накопителя определяет наличие и количество изначально неисправных блоков флэш-памяти 7 и исключает их из использования, и, как следствие, эти блоки не видны для внешних устройств и операционной системы.
Наличие неисправных блоков флэш-памяти 7 определяется следующим образом: блок обнаружения и коррекции ошибок генерирует с небольшой задержкой код обнаружения и коррекции ошибок (ЕСС), который записывается в дополнительную энергонезависимую память параллельно с данными, записываемыми в массив флэш-памяти. При чтении данных блок обнаружения и коррекции ошибок генерирует код ЕСС и сверяет его с кодом ЕСС, считанным из служебной памяти. При обнаружении ошибки в одном бите данные корректируются, и вырабатывается сигнал SingleBitError. При обнаружении ошибки в двух и более битах данные не могут быть скорректированы, и вырабатывается сигнал MultiBitError. Эти сигналы увеличивают на единицу код с информацией о количестве ошибок чтения. По достижении определенного порога, блок, которому принадлежит данный кластер, считается неисправным.
В заявляемой полезной модели штатное выключение питания происходит после получения предварительного сигнала завершения работы STORE, при поступлении которого происходит запись всех данных буферного ОЗУ во флэш-память.