СПОСОБ УПРАВЛЕНИЯ ТЕХНИЧЕСКИМ РЕСУРСОМ ЭНЕРГОНЕЗАВИСИМОЙ ПАМЯТИ
METHOD OF CONTROLLING SERVICE LIFE OF NON-VOLATILE MEMORY

Изобретение относится к способу управления техническим ресурсом систем хранения данных, например, энергонезависимой памяти и, в частности, энергонезависимой памяти, пригодной для использования во встроенном программном обеспечении. Данный способ, несмотря на то, что основан на некоторых известных механизмах управления техническим ресурсом, раскрывает новый принцип их использования с целью достижения лучшего результата по сравнению с ранее известными способами. Другой его задачей является раскрытие очень недорогого решения, не требующего использования какой-либо специальной памяти.
Область техники, к которой относится изобретение
В области компьютерной памяти энергонезависимая память отличается тем, что может сохранять свое содержимое даже в отсутствие энергопитания. Тем не менее, одной из ограничительных характеристик энергонезависимой памяти является запас технического ресурса.
Запас технического ресурса определяется как количество стираний и повторных записей в ячейке памяти до того, как она более не сможет нормально функционировать. «Изношенная» ячейка памяти может либо создавать проблемы со стабильностью хранящихся значений, либо может потерять способность считывать предварительно записанное в нее значение.
В частности, настоящее изобретение направлено на повышение запаса технического ресурса устройств, предназначенных для хранения данных, как это описано ниже на примере энергонезависимой памяти.
Запас технического ресурса энергонезависимой памяти
2
2
Запас технического ресурса сильно варьируется в зависимости от типа энергонезависимой памяти (EPROM, FLASH, MRAM и так далее). Речь может идти о нескольких тысячах циклов стирания/записи для некоторых представителей FLASH-памяти и вплоть до сотен тысяч циклов программирования и стирания для лучших представителей (FLASH или EPROM).
2
Указанный запас технического ресурса, разумеется, зависит от типа памяти, (например, EPROM память зачастую лучше, чем FLASH память, с точки зрения технического ресурса), от использованного при изготовлении технологического процесса (например, процесс травления с точностью 0,09 мкм), но он также сильно варьируется для разных ячеек памяти (например, в отношении FLASH-памяти скорее используют термин «сектор памяти», чем «ячейка памяти»).
Для заданной технологии производитель должен гарантировать минимальный запас технического ресурса (например 10000 циклов). Такой запас технического ресурса называется «собственным техническим ресурсом» или «гарантированным техническим ресурсом G». На самом деле это означает, что наиболее «слабые» сектора гарантированно проработают, например, 10000 циклов. Другие сектора будут обладать значительно большим ресурсом, чем 10000 циклов, с разбросом, который может достигать нескольких сотен тысяч, а иногда и миллионов циклов.
Указанный разброс запаса технического ресурса соответствует статистическому распределению Вейбулла. Традиционно устройства управления техническим ресурсом не пытаются использовать преимущества данного статистического распределения. Одной из задач настоящего изобретения является использование преимуществ указанного статистического распределения запаса технического ресурса энергонезависимой памяти.
Потребность программных приложений в техническом ресурсе
Потребность в техническом ресурсе сильно варьируется в зависимости от типа использования энергонезависимой памяти, как видно из нижеследующих примеров.
Постоянное хранение программ
Если NVM (Non Volatile Memory - энергонезависимая память) хранит программу, которая должна быть выполнена микропроцессором (например, в случае встроенных систем программного обеспечения), то потребность в техническом ресурсе очень мала, поскольку с течением времени эта программа практически не изменяется.
Традиционно подобное содержимое хранили в ROM памяти (немодифицируемой), что объясняет низкую потребность в техническом ресурсе.
Хранение файлов
Это характерно, например, для памяти типа «Solid State Drive» (SSD - твердотельный накопитель), которые сегодня очень часто используют в настольных компьютерах или ноутбуках, USB-ключах и МР3-плеерах. Для таких приложений требуется высокий технический ресурс, хотя нормы их эксплуатации априори не могут быть определены. Статистически все сектора SSD памяти имеют априори одинаковую потребность в техническом ресурсе, за исключением таблицы размещения файлов, которая обновляется с каждым изменением файла и, соответственно, требует гораздо более высокого технического ресурса. Необходимо отметить, что в случае хранения операционной системы в памяти типа SSD требования этой зоны к техническому ресурсу будут довольно низкими, но их априори невозможно детектировать и, соответственно, использовать для снижения потребности в техническом ресурсе. Как правило, крупность разбиения файлов в системе хранения файлов составляет порядка 4 килобайт.
Хранение данных
В области встроенного программного обеспечения, в дополнение к зоне хранения программы, микропроцессор нуждается в зоне хранения данных. Эта зона может содержать систему хранения файлов (как в предыдущем примере), а также программные объекты, используемые для обычного функционирования (буферные зоны, рабочие данные и так далее). Эти объекты обычно характеризуются небольшим размером (от порядка одного или нескольких слов CPU (central processing unit - центральный процессор) до нескольких килобайт), но крайне высокой потребностью в техническом ресурсе. Стоит отметить, что таблица размещения файлов, упомянутая в предыдущем случае (хранение файлов), может очень хорошо подойти под это определение. Крупность разбиения данных здесь будет порядка одного слова CPU (как правило, 16, 32 или 64 битов).
Другой задачей настоящего изобретения является использование характерных особенностей разных типов хранения с тем, чтобы значительно повысить эффективность управления техническим ресурсом. В качестве примерного варианта осуществления настоящего изобретения, не имеющего ограничительного характера, далее раскрыта встроенная система, в которую интегрированы CPU и энергонезависимая память.
Уровень техники
На сегодняшний день известно определенное число способов управления техническим ресурсом энергонезависимой памяти. Напомним некоторые из них и их основные характеристики, хотя этот перечень не является исчерпывающим.
Код коррекции ошибок (Error Correction Code - ЕСС)
Данный способ заключается в добавлении к каждому слову в памяти кода коррекции ошибок ЕСС (Error Correction Code). Таким образом исправляют одиночные ошибки, которые называют «однобитные отказы» («single bit fail») и которые являются типичной проблемой, связанной с сохраняемостью или техническим ресурсом.
Одним из преимуществ такой коррекции ошибок является возможность умножить собственный технический ресурс каждого сектора памяти на коэффициент умножения (от 2 до 4). Она также может помочь решению других задач (например, улучшить помехоустойчивость, сохраняемость и так далее). К тому же, это локальный и довольно простой процесс, не требующий дополнительной RAM памяти. Потребуется только ЕСС кодирующее-декодирующее устройство с низкой стоимостью логических вентилей.
С другой стороны, коррекция ошибок имеет также ряд недостатков. Так, например, этот способ является очень дорогостоящим в плане дополнительной энергонезависимой памяти: как правило, 25% всей энергонезависимой памяти может быть занято самим ЕСС. Кроме того, возможна лишь ее аппаратная реализация. Дополнительная стоимость оборудования должна быть уплачена за каждое слово в памяти независимо от реальной потребности в техническом ресурсе. Можно также рассмотреть коррекцию более одного бита, но стоимость такой коррекции будет чрезвычайно высокой.
Итак, ЕСС является простой в применении системой, позволяющей искусственно повысить собственный технический ресурс энергонезависимой памяти ценой обширной дополнительной площади микросхемы.
Резервирование секторов памяти («Sector Sparinq»)
В данном способе к энергонезависимой памяти добавляют определенное количество секторов, предназначенных для замещения изношенных секторов. Для доступа к замещенным секторам необходимо использовать таблицу переадресации.
Данное решение широко применяли в схемах контроллеров жестких дисков, по меньшей мере для решения проблемы изначально дефектных секторов или секторов, которые стали дефектными с течением времени.
К преимуществам данного способа относится возможность реализации данного решения посредством программного обеспечения. Количество дополнительных секторов может быть задано в зависимости от целевой потребности в замещении (этот способ называют модулируемым или масштабируемым). Среди недостатков этого способа можно отметить необходимость использования критерия для определения того, какой сектор является изношенным. Как правило, используют счетчик циклов и сравнивают выходные данные с гарантированным техническим ресурсом G, декларированным производителем памяти. Кроме этого такой способ будет недостаточным в том случае, если для большинства секторов требуется технический ресурс, превосходящий его собственный технический ресурс, поскольку количество дополнительных секторов ограничено. Таким образом, данный способ в первую очередь рассчитан на небольшое количество «пожирателей» технического ресурса.
В то же время при сбое энергопитания требуется сохранить (или воссоздать) таблицу переадресации. Соответственно, для этой цели необходимо предусмотреть дополнительную энергонезависимую память. Общий прирост технического ресурса ограничен величиной, равной N * собственный технический ресурс, где N - количество дополнительных секторов. Кроме того, данный способ мгновенно усложняется в случае, если необходимо организовать замещение уже замещенных секторов.
В конечном счете, это эффективный и относительно недорогой в плане оборудования и производительности CPU способ, но запас дополнительного технического ресурса ограничен количеством секторов, выделенных для резервирования. Подобная система описана, например, в документе US 2004/0057316 А1.
Нивелирование износа («Wear Levelinq»)
Данный способ управления техническим ресурсом состоит в попытке перераспределить потребность в техническом ресурсе равномерным образом на максимальное количество секторов с тем, чтобы использовать собственный технический ресурс каждого сектора. Основная методика, используемая для этой цели, состоит в том, что новое содержимое сектора записывают в свободный сектор, а затем аннулируют старый сектор, который, в свою очередь, становится свободным для последующей операции. Для сохранения адресов переноса секторов необходима довольно сложная таблица размещения.
Существует два известных варианта этого способа:
Динамическое нивелирование износа: при динамическом нивелировании износа используют только активные сектора (те, которые регулярно обновляются), а также резервный сектор для ротации. Это ограничивает запас технического ресурса рамками одного блока памяти. Такой способ очень часто используют в USB-ключах. Подобный способ, в частности, описан в документе US 2007/0294490 А1 (Фрэйтас и др.).
Статическое нивелирование износа: в данном случае, в дополнение к динамическому нивелированию износа, время от времени меняют активные сектора с неактивными, чтобы увеличить запас технического ресурса. Такой способ используют в SSD памяти, но он является гораздо более сложным.
Среди преимуществ нивелирования износа можно отметить, что теоретически оно позволяет получить общий технический ресурс, равный значению собственного технического ресурса ВСЕХ секторов памяти. Таким образом, данный способ позволяет достичь максимально высокого уровня технического ресурса из всех возможных. Он позволяет работать со многими «пожирателями» технического ресурса. Кроме того, данное решение также можно реализовать посредством программного обеспечения.
Среди недостатков этого способа можно отметить, что на практике общий технический ресурс ограничен активными секторами (для динамического нивелирования износа). В противном случае необходимо организовать ротацию неактивных секторов, что значительно увеличивает сложность алгоритмов, как в случае статического нивелирования износа. Кроме этого снижается производительность обращения к памяти во время ротации неактивных секторов или идентификации периодов, когда ротация может быть выполнена во время ожидания.
Помимо этого поскольку косвенная адресация распространяется на всю память, то данный способ также влияет на производительность считывания и выполнения кода («fetch»), если код находится во Flash-памяти, а не только на производительность считывания данных (считывание данных). Кроме этого, требуется большой объем RAM памяти для хранения адресов переноса секторов. К тому же, такой способ обязательно требует наличия возможности воссоздать таблицу размещения при подаче питания на схему, а значит, так или иначе, обязывает хранить содержимое данной таблицы в энергонезависимой памяти. Поскольку ротация секторов является равномерной, то процесс остановится, когда самый слабый из секторов, вовлеченных в ротацию, достигнет предела собственного технического ресурса.
Недостатки уровня техники
Итак, как было показано, ни один из известных способов управления техническим ресурсом не использует характерные особенности различных видов памяти, а также не учитывает различий в требуемом техническом ресурсе в зависимости от приложений, которые будут использовать память. Любой из известных способов зависит от таких фиксированных характеристик, как систематическое сглаживание потребности приложения в общем техническом ресурсе на множестве секторов (нивелирование износа) или же на замещении секторов в зависимости от заданного критерия (резервирование секторов), но ни один из них не пытается использовать существенный разброс запаса технического ресурса (кривая Вейбулла) или же индивидуальные потребности приложений в техническом ресурсе.
Задачи изобретения
[1] Таким образом, главной задачей настоящего изобретения является предложить способ управления техническим ресурсом энергонезависимой памяти, позволяющий устранить недостатки известных способов управления техническим ресурсом с тем, чтобы повысить общий технический ресурс памяти.
[2] Другой задачей настоящего изобретения является использование системы управления техническим ресурсом и, в частности, системы для задействования реального технического ресурса каждого сектора для снижения нагрузки на ячейки памяти при стирании и, соответственно, для того, чтобы естественным образом увеличить реальный технический ресурс всех используемых секторов.
[3] Более специфической задачей настоящего изобретения является создание способа управления техническим ресурсом памяти, позволяющего в режиме реального времени использовать действительный, физический предел технического ресурса каждого сектора, чтобы максимально использовать технический ресурс каждого сектора без учета каких-либо заведомых ограничений или гарантий на технический ресурс, предоставляемых производителем.
[4] Другой задачей настоящего изобретения является учет специфических потребностей приложений в техническом ресурсе для того, чтобы запас технического ресурса памяти соответствовал реальным потребностям приложений.
[5] Другой задачей настоящего изобретения является создание способа и системы, обладающих предельно низкими требованиями к величине площади микросхемы по сравнению с традиционными системами, подобными описанным в US 2004/0057316 А1, но обладающих гораздо более высокой эффективностью.
[6] Другой задачей настоящего изобретения является создание абсолютно прозрачных для конечного пользователя (CPU) способа и системы, почти не снижающих производительности обращения.
[7] Другой задачей настоящего изобретения является обеспечение возможности избежать использования энергонезависимой памяти, специально разработанной для управления техническим ресурсом, и использовать строго типовую память.
[8] Другой задачей настоящего изобретения является создание модулируемой или масштабируемой системы, позволяющей конечному пользователю (CPU) делать выбор между запасом технического ресурса и полезной памятью.
Раскрытие изобретения
Вышеперечисленные задачи настоящего изобретения выполняются посредством заявленного способа управления техническим ресурсом.
Изобретение реализует классический способ управления техническим ресурсом системы хранения данных, используя систему секторов с собственным гарантированным производителем техническим ресурсом (G), ряд рабочих секторов и ряд резервных секторов, способных сформировать резерв технического ресурса; причем определенные рабочие сектора подлежат замещению резервными секторами в случае износа первых после определенного количества циклов программирования и/или стирания. В изобретении предусмотрена зона управления энергонезависимой памяти, позволяющая хранить информацию об изношенных и их замещающих секторах (таблица переадресации). Базовый способ «резервирования секторов» описан, например, в документе US 2004/0057316 А1 и раскрыт в разделе «Уровень техники, к которому относится изобретение» настоящей заявки. Кроме того, данный способ схематично показан на фигуре 2.
Традиционно в таком способе присутствует этап 22 детектирования ненадлежащего стирания сектора, за которым следует этап 25 замещения изношенного сектора резервным сектором.
Настоящее изобретение направлено на усовершенствование способа и базового алгоритма «резервирования секторов» за счет наличия дополнительных средств, кратко описанных ниже.
Первое дополнительное средство состоит в том, что этап 22 стирания выполняют одним из трех возможных способов.
Первый способ выполнения этой задачи состоит в том, что проводят автоматический контроль, например, с помощью машины состояний (фиг.6) того, все ли ячейки памяти стертого сектора имеют значение, соответствующее стиранию, например, с использованием команд нормального считывания. Тем не менее, недостатком этого способа является то, что он не детектирует значения, близкие к стиранию, для которых некоторые биты могли изменить состояние из-за явления плохой сохраняемости.
Второй способ состоит в том, что используют упомянутый автоматический механизм первого способа и несколько раз повторяют считывание 60, показанное на фигуре 6, чтобы выявить возможную нестабильность.
Третий способ состоит в том, что используют упомянутый автоматический механизм первого способа, но на этот раз на этапе 60, показанном на фигуре 6, используют считывание в пограничном режиме («margin mode»), если такой режим доступен для данной памяти. Упомянутый пограничный режим, известный сам по себе и часто используемый при контроле энергонезависимых носителей памяти для отбора секторов, не соответствующих техническим требованиям производства (yield - выход годных изделий), здесь может быть инновационным образом использован для детектирования слабости сектора до того, как он будет полностью изношен. Иными словами, если верификация произведена корректно в упомянутом пограничном режиме, можно гарантировать, что считывание сектора в нормальном режиме всегда будет корректным. Таким образом, это позволяет решить проблемы сохраняемости, описанные в первом способе.
В любом случае три вышеописанных способа позволяют извлечь из каждого сектора максимум технического ресурса, не учитывая значение G гарантированного технического ресурса G или другого фиксированного критерия (например, опорного значения). Это помогает выполнить задачу [3] настоящего изобретения и адаптировать способ «резервирования секторов» к специфическому характеру кривой Вейбулла, максимально используя технический ресурс каждого сектора.
Простота и низкая стоимость машины состояний для верификации позволяют также выполнить задачу [5] (низкая стоимость) и [6] (прозрачность и незначительность снижения производительности).
Второе дополнительное средство, совмещенное с вышеописанным, состоит в том, что используют машину состояний (фиг.5), которая разбивает время стирания, рекомендованное производителем (то есть время, в течение которого источник высокого напряжения направляют на точки памяти сектора для их стирания). Указанное второе средство позволяет проверить в промежуточных временных точках, достаточно ли качество стирания для того, чтобы остановить процедуру стирания. Это позволяет ограничить нагрузку на точки памяти при стирании и, соответственно, существенно увеличить внутренний запас технического ресурса используемого сектора, что способствует выполнению задачи [2]. Простота и низкая стоимость машины состояний, управляющей разбивкой времени стирания, позволяет выполнить задачу [5] (низкая стоимость) и [6] (прозрачность и незначительность снижения производительности). Это также позволяет в среднем значительно сократить время стирания по сравнению с рекомендацией производителя, поскольку в большинстве случаев понадобится лишь часть рекомендованного времени для того, чтобы стереть сектор корректным образом.
В настоящем изобретении также раскрыто третье дополнительное средство, состоящее в том, что алгоритм «резервирования секторов» адаптируют под специфические потребности приложений (задача [4]). Один из частных вариантов осуществления третьего дополнительного средства позволяет адаптировать его к специфическим потребностям мира встроенных приложений. Эти приложения часто отличаются тем, что они требуют крайне высокого технического ресурса на малом количестве секторов и среднего или низкого технического ресурса на других секторах. Первое и второе средство уже вносят значительный вклад для удовлетворения низких и средних потребностей в техническом ресурсе за счет максимального увеличения внутреннего запаса технического ресурса всех секторов] Соответственно, для удовлетворения высоких потребностей в техническом ресурсе в изобретении раскрыто третье дополнительное средство, позволяющее производить множественные замещения одного и того же исходного сектора. Таким образом, добавляют внутренний запас технического ресурса такого количества секторов, которое необходимо для того, чтобы удовлетворить потребность в высоком техническом ресурсе, до тех пор, пока не закончатся все свободные резервные сектора.
В первом варианте осуществления вышеупомянутого третьего средства это становится возможным за счет использования строго типовой памяти с равномерной структурой (задача [7]), где отсутствует физическое отличие между исходным сектором и резервным сектором. Таким образом, резервный сектор, заместивший исходный сектор, может в свою очередь стать исходным сектором для последующего замещения. Как показано на фигуре 7, такой результат получают путем использования зоны управления 70 энергонезависимой памяти, где каждый элемент в указанной зоне соотнесен с одним замещенным сектором и представляет собой адрес замещающего сектора. Таким образом, становится возможным, отслеживая маршрут последовательных замещений исходного сектора, прийти к последней версии исходного сектора после множественных замещений. При таком варианте осуществления становится возможным определить последнюю версию замещенного сектора в момент обращения CPU к исходному сектору.
Во втором, усовершенствованном, варианте осуществления вышеупомянутого третьего средства упомянутый маршрут может быть воссоздан при подаче питания на схему, и кратчайший путь между исходным сектором и последним замещающим сектором может быть сохранен в RAM. Указанный второй вариант осуществления является более дорогостоящим по сравнению с первым, поскольку для него используют дополнительную RAM. С другой стороны, он способствует выполнению задачи [6] (прозрачность и незначительность снижения производительности обращения).
Четвертое дополнительное средство заключается в обеспечении безопасности создания зоны управления энергонезависимой памяти. Записи в указанную зону производятся одновременно с каждым замещением для сохранения адреса замещающего сектора в соотнесенном с замещенным сектором элементе указанной зоны. Следовательно, потеря содержания указанной зоны привела бы к невозможности дальнейшего использования памяти. Указанное четвертое средство использует защитный механизм, чтобы обезопасить зону управления в случае отключения питания, которое могло бы привести к повреждению зоны управления. Указанный защитный механизм заключается в выполнении нижеописанного алгоритма, показанного на фигуре 7.
Первый этап указанного защитного механизма заключается в том, что адрес исходного сектора 73 записывают в первой сигнатурной зоне 72.
Затем для подтверждения корректности ранее запрограммированного адреса записывают сигнатуру 74 конца записи.
После выполнения этих двух этапов загружают элемент 75 в зоне 70 управления, соотнесенный с замещенным сектором и содержащий адрес замещающего сектора.
Для подтверждения корректности последней операции сигнатуру 76 конца замещения заново программируют во второй сигнатурной зоне 71.
Поскольку указанный механизм выполняется во времени последовательно, в случае отключения питания будет прерван только один этап. Таким образом, будет легко определить этап, на котором остановилось выполнение алгоритма, и запустить его заново так, чтобы он смог завершиться.
Как правило, добавление к классическому алгоритму «резервирования секторов» одного или нескольких вышеупомянутых дополнительных средств позволяет привести его в соответствие со специфическими потребностями встроенной памяти, в частности потребностью в высоком запасе технического ресурса, надежности функционирования, малом снижении производительности обращения и низкой стоимости.
Заявленное изобретение обеспечивает выполнение всех поставленных задач, с [1] по [8], в том числе обеспечивает выполнение требования по использованию типовой памяти, поскольку ни одно из устройств не требует специальных характеристик памяти. Кроме того, задача [8] по обеспечению возможности масштабирования системы также выполнена, поскольку соотношение между исходными секторами и резервными секторами может быть задано конечным пользователем (CPU).
Итак, настоящее изобретение относится к способу управления техническим ресурсом системы хранения данных, содержащей набор секторов, обладающих собственным гарантированным техническим ресурсом (G), содержащий следующие этапы:
- разбивают упомянутую систему хранения данных на ряд рабочих секторов и ряд резервных секторов, способных сформировать резерв технического ресурса, причем определенные рабочие сектора подлежат замещению резервными секторами в случае износа упомянутых рабочих секторов после определенного количества циклов программирования и/или стирания;
- задают зону управления адресами для определения расположения резервных секторов, назначаемых на замещение изношенных рабочих секторов;
- определяют, сектор за сектором, изношен ли текущий сектор физически и замещают данный рабочий сектор резервным сектором, только если первый признан физически изношенным;
причем данный способ отличается тем, что для оценки износа сектора производят автоматическое считывание качества стирания точек памяти в упомянутом секторе и сравнивают с пограничным критерием считываемости (Margin Vref), то есть с более жестким критерием, чем нормальный критерий считываемости (Normal Vref), причем упомянутые пограничный и нормальный критерии являются такими, как описано ниже.
Корректное считывание в пограничном режиме гарантирует, что считывание сектора в нормальном режиме всегда будет корректным.
В предпочтительном варианте осуществления способа единственный импульс стирания заменяют несколькими, более короткими последовательными импульсами, а контроль качества стирания производят после каждого импульса; причем рабочий сектор памяти признают изношенным, если результаты упомянутого контроля качества остаются отрицательными после максимального, предварительно заданного количества импульсов и процедур контроля.
Таким образом, ограничивают нагрузку на точки памяти при стирании и существенно увеличивают действительный запас технического ресурса используемого сектора.
Предпочтительно используют строго типовую память с равномерной структурой, где отсутствует физическое отличие между исходным сектором и резервным сектором. Таким образом, количество резервных секторов определяет сам конечный пользователь в зависимости от требуемого запаса технического ресурса. Кроме того, резервный сектор, заместивший рабочий сектор, сам становится рабочим сектором и может быть замещен при достижении своего порога физического износа.
Способ согласно изобретению предусматривает использование зоны управления энергонезависимой памяти для восстановления маршрута между замещенными секторами и замещающими секторами, причем каждый элемент упомянутой зоны соотнесен с одним замещающим сектором и представляет собой адрес замещенного исходного сектора.
Кроме того, маршрут между исходным сектором и замещающим сектором при использовании зоны управления определяют в режиме реального времени во время обращения к исходному сектору.
Согласно изобретению маршрут перестановки между исходным сектором и замещающим сектором восстанавливают при запуске схемы и сохраняют в RAM памяти кратчайший путь между исходным сектором и последним замещающим сектором.
Согласно предпочтительному варианту осуществления способа способ обновления зоны управления рассчитан на то, чтобы выдержать возможное отключение питания и тем самым избежать какого-либо повреждения упомянутой зоны управления.
Изобретение также относится к устройству для реализации вышеописанного способа управления техническим ресурсом, которое отличается тем, что содержит память, разбитую на ряд рабочих секторов и ряд резервных секторов, зону управления резервными секторами и логический контроллер, способный выполнить этапы заявленного способа.
Другие признаки и преимущества изобретения станут более ясны из детального описания приложенных фигур, где:
- на фигуре 1 показана кривая распределения собственного технического ресурса секторов памяти;
- на фигуре 2 показана блок-схема этапов известного способа резервирования секторов;
- на фигуре 3 показана схема организации энергонезависимой памяти, к которой может быть применен заявленный способ;
- на фигуре 4 схематично показан принцип, используемый для оценки качества стирания;
- на фигуре 5 более детально показана блок-схема этапов, соответствующих операции стирания в блок-схеме с фигуры 2, когда вышеуказанное стирание производят за несколько временных этапов;
- на фигуре 6 показана блок-схема этапов способа верификации стирания, используемых в способе резервирования секторов;
- на фигуре 7 показана схема организации зоны управления и две сигнатурные зоны, используемые для восстановления маршрута перестановки между исходными секторами и замещающими секторами.
Рассмотрим фигуру 1. На данной фигуре показан график статистического распределения секторов в памяти в зависимости от их запаса технического ресурса. Таким образом, по оси ординат указан процент секторов, соответствующий техническому ресурсу, указанному по оси абсцисс. Технический ресурс, указанный по оси абсцисс, может быть выражен в количестве допустимых стираний, то есть по существу представляет собой запас технического ресурса сектора.
Как видно на графике 10, распределение доли секторов в зависимости от технического ресурса имеет форму кривой Гаусса, распределенной относительно средней величины, обозначенной ЕМ1, причем запас технического ресурса всех секторов превосходит минимальный гарантированный технический ресурс секторов в данной памяти, называемый также собственным или внутренним техническим ресурсом и обозначенный G.
М
На практике производитель памяти декларирует значение G гарантированного технического ресурса, которое указывает на тот факт, что технический ресурс всех секторов выше, чем данное значение гарантированного технического ресурса. Между тем, на практике форма кривой технического ресурса очень растянута по ширине (на фигуре 1 она представлена не в масштабе), что означает, что минимальное значение G технического ресурса значительно ниже среднего запаса технического ресурса Е. Одна из основных задач способа управления техническим ресурсом согласно изобретению - добиться того, чтобы минимальное значение технического ресурса, который действительно может быть использован, было значительно, то есть на несколько порядков выше, чем соответствующее значение для известного уровня техники.
Рассмотрим теперь фигуру 2, где показана блок-схема этапов традиционного способа резервирования секторов. Данный способ реализован с использованием машины состояний и применен к типичному сектору памяти.
Начиная с состояния покоя 20, на этапе 21 принимают решение стирать текущий сектор или нет. Если да, то на этапе 22 производят стирание, состоящее в том, что на текущий сектор памяти подают напряжение, достаточное для того, чтобы стереть содержимое ячеек. Затем, на этапах 27 и 23, осуществляют верификацию качества стирания с использованием способа верификации, выбранного из числа нескольких доступных способов. В случае если результат контроля качества стирания является положительным (ветвь 24), переходят к этапу 26, полагая, что стирание было осуществлено удовлетворительно. С другой стороны, если результат контроля качества стирания на этапе 23 отрицательный, считают, что текущий сектор изношен и на этапе 25 замещают его исправным резервным сектором (предварительно стертым), что равнозначно признанию того, что стирание было осуществлено (этап 26).
Рассмотрим фигуру 3, на которой показана схема организации энергонезависимой памяти 30, например, FLASH-памяти, содержащей рабочую зону 31 и резервную зону 32, причем каждая зона разделена на сектора, например, рабочие сектора 33 и резервные сектора 34. В случае если контроль стирания, произведенный на рабочем секторе, показывает, что данный сектор изношен, данный сектор перенаправляют к заданному сектору из числа резервных секторов 34 в резервной зоне 32. Конкретный резервный сектор резервной зоны, который будет использован для замещения изношенного рабочего сектора, будет определен в зоне 35 управления техническим ресурсом, чтобы сохранить трассировку произведенных замещений.
Рабочий сектор 33 в рабочей памяти 31 может быть замещен n раз, где n - целое число, меньшее, чем число N, соответствующее количеству резервных секторов 34, содержащихся в резервной зоне 32.
Изобретение предусматривает, что сектора 34 в резервной зоне 32 также могут быть замещены другими секторами резервной зоны, аналогично рабочим секторам, что позволяет дополнительно повысить запас технического ресурса памяти 30.
Вышеописанный способ реализован с использованием логического контроллера (не показан) зоны 35 управления техническим ресурсом, энергонезависимой памяти 30 и устройства (не показано) для оценки износа секторов памяти.
Логический контроллер может быть выполнен в виде аппаратной или программной машины состояний.
Энергонезависимая память 30 может представлять собой физическую память или другое устройство хранения данных.
Устройство для оценки износа может использовать нормальный режим считывания или более жесткий режим считывания памяти или любое другое устройство для определения того, что операция стирания или программирования была произведена корректным образом.
Пример устройства для оценки износа секторов описан далее со ссылкой на фигуру 4, на которой представлен график, где по оси ординат указано количество битов одного сектора памяти в зависимости от порогового напряжения Vt транзисторов памяти, указанного по оси абсцисс.
Условно считают, что бит «запрограммирован» или находится на нулевом уровне, когда пороговое напряжение соответствующего транзистора выше предельного напряжения, обозначенного Vtmin, которое зависит от используемой в памяти технологии.
И наоборот, считается, что бит «стерт» или находится на первом уровне, когда пороговое напряжение транзистора, соответствующего данному биту, ниже предельного напряжения, обозначенного Vtmax.
Как видно на фигуре 4, пороговые напряжения для запрограммированной точки (0) памяти или стертой точки (1) памяти варьируются, и соответствующие количества битов, равных нулю или единице, зависят от приложенного порогового напряжения и подчиняются по существу нормальным распределениям 40, 41.
При считывании в так называемом «нормальном режиме» сравнивают пороговое напряжение Vt текущей точки памяти с фиксированным опорным значением, обозначенным Normal Vref, расположенным между предельными напряжениями Vtmin и Vtmax (и схематично обозначенным пунктирной линией 42), и классифицируют данную точку памяти как равную нулю или единице в зависимости от результата сравнения с нормальным опорным пороговым напряжением Normal Vref.
При считывании в так называемом «пограничном режиме», сравнивают пороговое напряжение текущей точки памяти с другим опорным значением, обозначенным Margin Vref (не показано), которое выше Vtmax, но ниже предыдущего опорного значения Normal Vref. Следовательно, точка памяти с пороговым напряжением Vt, находящимся между опорным значением считываемости в нормальном режиме, Normal Vref, и опорным значением считываемости в «пограничном режиме», Margin Vref, могла бы иметь другое значение в нормальном режиме (например, ноль вместо единицы или наоборот), но в пограничном режиме будет расценена как «ноль».
Такие способы считывания порогового напряжения элемента памяти, как в нормальном, так и в пограничном режиме, могут быть использованы в заявленном способе для оценки качества стирания сектора. Указанные способы помогают детектировать, был ли сектор действительно стерт, основываясь не на теоретическом пределе технического ресурса сектора, а на его внутренних физических качествах. Данный способ также гарантирует надежное считывание верификации стирания.
Рассмотрим фигуру 5, на которой представлен вариант способа стирания сектора памяти, в котором нормальный этап 22 стирания с использованием одного импульса, показанный на блок-схеме фигуры 2, заменен стиранием с использованием нескольких стирающих импульсов.
Как правило, стирание точки памяти заключается в том, что к ней прикладывают высокое напряжение и вводят в нее определенную энергию, что, в конечном счете, разрушает данную точку памяти и делает ее полностью нечитаемой.
В предпочтительном варианте осуществления способа к каждой точке памяти прикладывают лишь напряжение, достаточное для стирания, что позволяет увеличить срок службы каждой точки памяти и, соответственно, срок службы резерва технического ресурса, а значит и всей памяти.
Для выполнения данной задачи в изобретении раскрыта возможность замены единственного нормального стирающего импульса 22 несколькими, более слабыми импульсами, прикладываемыми последовательно 50, причем после каждого стирающего импульса производят контроль 54 качества стирания. Слабые импульсы прикладывают до тех пор, пока результат контроля качества стирания не станет положительным, или до тех пор, пока не будет приложено 53 предварительно заданное количество слабых импульсов. В случае если контроль качества стирания остается отрицательным после приложения заданного максимального числа слабых импульсов, считают, что сектор изношен 55, и производят его замещение путем выделения сектора в резервной зоне.
Очевидно, что если контроль качества стирания дает положительный результат после некоторого количества импульсов, меньшего, чем заданное максимальное количество импульсов 52, то общее количество энергии, приложенной для стирания данного сектора, будет меньше, чем при традиционном стирании, что способствует продлению срока службы памяти.
Как объяснено выше, контроль качества стирания может быть произведен в нормальном режиме или в пограничном режиме.
Рассмотрим фигуру 6, на которой представлена традиционная процедура верификации стирания.
На этапе 60 считывают ячейку памяти стертого сектора, затем на 61 осуществляют верификацию того, что указанная ячейка памяти была стерта корректно. Если это так, обрабатывают следующую ячейку в секторе 65 и повторяют операции 60, 61 и 65 до тех пор, пока операция 63 не детектирует последнюю ячейку сектора. В случае если достигают последней ячейки без отказа 61 при стирании, то на 64 делают вывод, что стирание произведено корректно. Если осуществить стирание не удается, то оно будет остановлено на некорректном стирании на 62.
Рассмотрим фигуру 7, на которой представлен способ, соответствующий четвертому средству.
В данном способе используют зону 70 управления, а также две сигнатурные зоны 71 и 72.
Первый этап этого способа заключается в записи адреса исходного сектора 73 в первую сигнатурную зону 72.
Затем записывают сигнатуру 74 конца записи, чтобы гарантировать корректность ранее запрограммированного адреса.
После выполнения этих двух этапов загружают в элемент упомянутой зоны управления, соотнесенный с замещенным сектором 75, адрес замещающего сектора.
Для подтверждения корректности последней операции сигнатуру 76 конца замещения повторно программируют во второй сигнатурной зоне 71.
Преимущества изобретения
Раскрытое изобретение обеспечивает достижение поставленных задач. Прежде всего, оно позволяет достичь очень высокого запаса технического ресурса, сравнимого с показателями, полученными так называемыми методами нивелирования износа, но без присущих им недостатков.
Следовательно, настоящее изобретение особенно полезно в условиях эксплуатации, когда не все информационные объекты имеют высокую потребность в техническом ресурсе, что обычно справедливо, в частности, для встроенных и защищенных программных приложений, где лишь небольшое количество объектов имеет высокую потребность в техническом ресурсе. Данный способ становится особенно привлекателен и доступен по цене именно для таких случаев, но от также может быть использован в любых других известных или будущих приложениях, имеющих сходные потребности в техническом ресурсе.
Механизм оценки качества стирания посредством сравнения не только со статистическим критерием износа, но и физическим является основополагающим для обеспечения высокого общего технического ресурса памяти. Данный механизм позволяет максимизировать использование исходного сектора до наступления необходимости его замещения (и, соответственно, уменьшить необходимость в резервных секторах), а также максимизировать величину «резерва технического ресурса».
Использование механизма оценки качества стирания позволяет также подавать на сектор только напряжение, необходимое для стирания, и, следовательно, максимизировать срок службы сектора.
На практике количество необходимых резервных секторов может быть легко скорректировано в зависимости от целевой потребности в техническом ресурсе.
Кроме того, заявленный способ позволяет быстро удалить из резерва технического ресурса слабые сектора, требующие значительного технического ресурса.
Заявленный способ лишь слегка увеличивает затраты за счет затрат на дополнительную память, однако стоимость такой дополнительной памяти достаточно низка, поскольку пропорциональна целевому общему техническому ресурсу, а не размеру памяти.
Потребность в RAM памяти и в логических схемах контроля крайне низка, особенно по сравнению с так называемыми способами динамического или статического нивелирования износа.
Заявленный способ позволяет добиться оптимального использования технического ресурса секторов, формирующих часть системы. Исходные сектора, которые больше не требуют технического ресурса, превышающего тот, который они могут обеспечить самостоятельно, никогда не становятся частью системы замещения (в отличие от способа нивелирования износа, где, теоретически, все сектора задействованы в системе). Таким образом, осуществляется радикальное снижение числа необходимых резервных секторов благодаря оптимальному использованию исходных секторов.
На сегодняшний день, изобретение применимо главным образом к энергонезависимой памяти, но потенциально может быть использовано в любой системе хранения данных, подверженной явлению износа.