Способ и устройство для выравнивания износа и доступа к энергонезависимой памяти
METHOD AND DEVICE FOR WEAR LEVELLING AND ACCESS TO NON-VOLATILE MEMORY

Настоящее описание относится к области коммуникационных технологий и, в частности, к способу выравнивания износа и доступа и устройству выравнивания износа и доступа для энергонезависимой памяти и носителя данных.
Предпосылки создания изобретения
Энергонезависимые запоминающие устройства (NVM) в последние годы быстро развивались, поскольку они обладают как долговечностью традиционной внешней памяти, так и высокой производительностью традиционной внутренней памяти. Подобно твердотельным накопителям (SSD), энергонезависимую память можно стирать и записывать только ограниченное количество раз. Эта функция определяет, что выравнивание износа должно
поддерживаться в энергонезависимой памяти. В противном случае непреднамеренный доступ к точке доступа или злонамеренные повторные атаки стирания приведут к тому, что определенные физические адреса (страницы, блоки, сегменты) сначала достигнут верхних пределов времени стирания, что приведет к негативным эффектам, таким как уменьшение доступной емкости в менее серьезном случае и полный отказ диска в тяжелом случае.
Твердотельный накопитель выполняет задачи выравнивания износа с помощью метода таблицы сопоставления оборудования, то есть реализует сопоставление между логическими адресами и физическими адресами с помощью таблицы сопоставления на уровне трансляции флэш-памяти (FTL). FTL подсчитывает время доступа к физическим адресам, и для физического адреса, к которому осуществляется доступ с высокой частотой, необходимо только изменить таблицу сопоставления, изменив физический адрес, сопоставленный логическим адресом, на физический адрес, доступ к которому осуществляется с низкой частотой. Помимо сопоставления адресов и выравнивания износа, FTL также выполняет такие задачи, как сборка мусора, проверка кода исправления ошибок (ЕСС), управление сбойными блоками и т.д.
Однако выравнивание износа для энергонезависимой памяти не может просто имитировать традиционный метод таблицы сопоставления оборудования по следующим причинам.
(1) Энергонезависимая память не имеет аппаратного обеспечения FTL. FTL содержит базовые технологии производителя твердотельных накопителей и интегрирован в аппаратные устройства. Однако энергонезависимая память не имеет оборудования FTL. Если увеличивать накладные расходы и затраты на проектирование оборудования только для выравнивания износа, будет сложно получить поддержку от производителя оборудования.
(2) К производительности энергонезависимой памяти предъявляются высокие требования. Поиск в таблице с помощью программного обеспечения неэффективен, а также увеличивает шаг «подсчета количества стирания и записи». Такое снижение производительности составляет менее 1% (в основном незначительное) производительности твердотельного накопителя; однако для энергонезависимой памяти, задержка доступа которой на один-два порядка меньше, чем у твердотельного накопителя, такое снижение производительности приведет к снижению производительности более чем на 30% (очень значительное).
(3) Энергонезависимая память довольно дорога. Если таблица сопоставления реализована и отношения сопоставления «логические адреса, физические адреса и количество раз стирания / записи» записываются с помощью программного обеспечения, ценное пространство памяти будет занято, что значительно уменьшит доступную емкость. Таким образом, ни традиционный метод таблицы сопоставления аппаратных средств, ни метод таблицы сопоставления с улучшенным программным обеспечением не подходят для энергонезависимой памяти.
Ввиду вышеизложенного в настоящем описании предлагается выравнивание износа энергонезависимой памяти для решения проблемы выравнивания микроскопического износа внутри энергонезависимой памяти.
Сущность изобретения
Варианты осуществления настоящего описания относятся к способу выравнивания износа и доступа и устройству выравнивания износа и доступа для энергонезависимой памяти и носителя данных для решения проблемы выравнивания микроскопического износа внутри энергонезависимой памяти.
В варианте осуществления настоящего описания предоставляется способ выравнивания износа и доступа к энергонезависимой памяти, в том числе: логическое разделение энергонезависимой памяти на р уровней физических блоков, энергонезависимая память включает в себя множество физических блоков (р-1)-го уровня, и каждый физический блок (р-1)-го уровня включает в себя множество физических блоков р-го уровня, где р является положительным целым числом больше 1; и перенос, когда приходит временной цикл, соответствующий физическим блокам q-го уровня, данных в каждой из физических блоков q-го уровня в другой физический блок q-го уровня, где q является любым положительным целым числом от 1 до р.
В варианте осуществления настоящего описания предусмотрено устройство выравнивания износа и доступа к энергонезависимой памяти, включая энергонезависимую память, процессор, память и шину передачи данных. Коммуникационная шина сконфигурирована для реализации связной связи между процессором и памятью. Процессор сконфигурирован для выполнения программы ротации данных, хранящейся в памяти, для реализации следующих этапов: логического разделения энергонезависимой памяти на р уровней физических блоков, энергонезависимой памяти, включающей множество физических блоков 1-го уровня, и каждый физический блок (р-1)-го уровня включает в себя множество физических блоков р-го уровня, где р является положительным целым числом больше 1; и перенос, когда приходит временной цикл, соответствующий физическим блокам q-го уровня, данных в каждой из физических блоков q-го уровня в другой физический блок q-го уровня, где q является любым положительным целым числом от 1 до р.
В варианте осуществления настоящего описания предоставляется машиночитаемый носитель данных, хранящий на нем одну или несколько программ. Одна или несколько программ выполняются одним или несколькими процессорами для реализации следующих этапов: логического разделения энергонезависимой памяти на р уровней физических блоков, при этом энергонезависимая память содержит множество физических блоков 1-го уровня, и каждый (р-1) физический блок q-го уровня содержит множество физических блоков р-го уровня, где р является положительным целым числом больше 1; и перенос, когда приходит временной цикл, соответствующий физическим блокам q-го уровня, данных в каждой из физических блоков q-го уровня в другой физический блок q-го уровня, где q является любым положительным целым числом от 1 до р.
В варианте осуществления настоящего описания предлагается устройство выравнивания износа и доступа к энергонезависимой памяти, включая энергонезависимую память и процессор. Процессор сконфигурирован для выполнения программы выравнивания износа и доступа к энергонезависимой памяти, чтобы реализовать следующие этапы: логическое разделение энергонезависимой памяти на р уровней физических блоков, при этом энергонезависимая память содержит множество физических блоков (р-1)-го уровня, и каждый физический блок (р-1)-го уровня содержит множество физических блоков р-го уровня, где р является положительным целым числом больше 1; и перенос, когда приходит временной цикл, соответствующий физическим блокам q-го уровня, данных в каждой из физических блоков q-го уровня в другой физический блок q-го уровня, где q является любым положительным целым числом от 1 до р.
Краткое описание чертежей
Фиг. 1 - блок-схема способа выравнивания износа и доступа к энергонезависимой памяти согласно варианту осуществления настоящего описания;
Фиг. 2 - схематическая диаграмма способа выравнивания износа и доступа к энергонезависимой памяти согласно варианту осуществления настоящего описания;
Фиг. 3 - блок-схема способа выравнивания износа и доступа к энергонезависимой памяти согласно варианту осуществления настоящего описания;
Фиг. 4 - блок-схема способа выравнивания износа и доступа к энергонезависимой памяти согласно другому варианту осуществления настоящего описания;
Фиг. 5 - схематическая диаграмма способа выравнивания износа и доступа к энергонезависимой памяти согласно варианту осуществления настоящего описания;
Фиг. 6 - блок-схема устройства выравнивания износа и доступа к энергонезависимой памяти согласно варианту осуществления настоящего описания; и
Фиг. 7 - блок-схема устройства выравнивания износа и доступа к энергонезависимой памяти согласно другому варианту осуществления настоящего описания.
Дополнительные особенности и преимущества настоящего описания будут дополнительно описаны в связи с вариантами осуществления и со ссылкой на сопроводительные чертежи.
Осуществление изобретения
Следует понимать, что описанные здесь конкретные варианты осуществления предназначены только для объяснения, а не ограничения настоящего описания.
В нижеследующем описании термины, такие как «блок», «компонент», используемые для обозначения элементов, используются только для облегчения описания настоящего описания, и сами по себе они не имеют специального значения. Следовательно, термины «блок», «компонент» или «единица» могут использоваться смешанно.
Как показано на фиг. 1, вариант осуществления настоящего описания обеспечивает способ выравнивания износа и доступа к энергонезависимой памяти, который включает в себя следующие этапы.
На этапе S110 энергонезависимая память логически делится на р уровней физических блоков. Энергонезависимая память включает в себя множество физических блоков 1-го уровня, и каждый физический блок (р-1)-го уровня включает в себя множество физических блоков р-го уровня, р - целое положительное число больше 1.
В настоящем варианте осуществления, например, энергонезависимая память логически разделена на n первых физических блоков, каждая из которых имеет размер N. Каждый из первых физических блоков разделен на m вторых физических блоков, каждая из которых имеет размер М. Каждый второй физический блок делится на k третьих физических блоков, каждый размером К … и так далее.
В настоящем варианте осуществления условия запуска для этапа S110 дополнительно ограничены. Примеры типичных условий запуска: (1) запуск вручную пользователем; и (2) обнаружение центральным процессором того, что за прошедший период времени, например, за один час, количество операций записи по фиксированному адресу в энергонезависимой памяти превысило предварительно установленный порог, например, 100000 раз. Перед запуском этапа S110 используется традиционный метод таблицы отображения.
На этапе S120, когда прибывает временной цикл, соответствующий физическим блокам q-го уровня, данные в каждого из физических блоков q-го уровня переносятся в другой физический блок q-го уровня, q - любое натуральное число от 1 до р.
В настоящем варианте осуществления условия завершения для этапа S120 дополнительно ограничены. Примеры типичных условий завершения: (1) запуск вручную пользователем; (2) обнаружение центральным процессором того, что в прошлом периоде времени, например, в любом периоде времени, таком как один час в течение семи дней, несколько раз записи на фиксированный адрес в энергонезависимой памяти сделали не превышать установленный порог, например, в 100000 раз; (3) обнаружение того, что энергонезависимая память достигла заданного значения срока службы и приближается к концу срока службы, и в этом случае нет необходимости в выравнивании износа; и (4) время записи для множества адресов в энергонезависимой памяти, достигшее верхних пределов. После завершения этапа S120 используется традиционный метод таблицы отображения.
В настоящем варианте осуществления временной цикл ротации для первых физических блоков равен А; временной цикл ротации для вторых физических блоков равен В; а временной цикл ротации для третьих физических блоков равен С … и так далее. В настоящем варианте осуществления, например, когда наступает временной цикл А, вращаются n первых физических блоков; когда наступает временной цикл В, вращаются m вторых физических блоков в каждой из первых физических блоков; и когда наступает временной цикл С, вращаются k третьих физических блоков в каждой из вторых физических блоков … и так далее. После поворота расположение данных изменяется, как показано на фиг. 2.
В настоящем варианте осуществления физические блоки ротации включают, но не ограничиваются ими: (1) сегмент; (2) блок; (3) страница; (4) байты (В); (5) килобайты (КБ); (6) мегабайты (МБ); (7) гигабайты (ГБ); (8) и другие блоки памяти. Блоки времени ротации включают, но не ограничиваются: (1) год; (2) квартал; (3) месяц; (4) неделя; (5) день; (6) час; (7) минута; (8) секунда; (9) и другие блоки времени лунного и тибетского календаря. Режимы ротации включают, но не ограничиваются ими: (1) последовательная ротация по одному; (2) один за другим ротация в перевернутой последовательности; (3) последовательная ротация с прыжком; (4) прыжковая ротация в перевернутой последовательности; (5) псевдослучайная ротация; и (6) другие режимы ротации.
Согласно настоящему варианту осуществления непреднамеренные или централизованные злонамеренные доступы к одному и тому же фиксированному логическому адресу могут фактически равномерно распределяться по различным физическим адресам, чтобы тем самым достичь эффекта выравнивания износа. По сравнению с традиционным способом таблицы сопоставления способ настоящего описания завершает преобразование между логическими адресами и физическими адресами посредством простых вычислений без длительного использования дополнительного пространства памяти и позволяет избежать неэффективных операций поиска в таблице, за счет которых сохраняется пространство и время.
Как показано на фиг. 3, вариант осуществления настоящего описания обеспечивает способ выравнивания износа и доступа к энергонезависимой памяти, который включает в себя следующие этапы.
На этапе S310 энергонезависимая память логически делится на р уровней физических блоков. Энергонезависимая память включает в себя множество физических блоков 1-го уровня, и каждый физический блок (р-1)-го уровня включает в себя множество физических блоков р-го уровня, р - целое положительное число больше 1.
На этапе S320 временной цикл, соответствующий физическим блокам q-го уровня, устанавливается на основе текущего рабочего сценария.
В настоящем варианте осуществления вращаемые физические блоки вращаются независимо и одновременно. Конечно, ротация только сегментов или ротация только блоков может до некоторой степени реализовать эффект выравнивания износа, но фиксированное распределение доступа к одному и тому же логическому адресу на несколько физических адресов не может привести к распределению логического адреса на все физические адреса. Настоящее описание должно защищать все этапы или их комбинации. Чем короче интервал ротации, тем сильнее эффект выравнивания износа и тем чаще происходит перемещение данных, которая временно прерывает внешние службы. Следовательно, интервал ротации не может быть слишком длинным или слишком коротким и должен определяться как практически необходимый при реализации вариантов использования. В варианте осуществления время перемещения должно приходиться на период низкой нагрузки системы. В варианте осуществления, когда система подвергается атаке или в других сценариях, где есть необходимость, временные циклы А, В и С могут быть сокращены и запущены пользователем или автоматически запущены системой.
На этапе S330, когда наступает временной цикл, соответствующий физическим блокам q-го уровня, данные в каждой из физических блоков q-го уровня копируются во внешнюю память или внутреннюю память, а затем копируются из внешней памяти или внутренней памяти в энергонезависимую память в область, куда поворачиваются данные физического блока q-го уровня, q - любое натуральное число от 1 до р.
В настоящем варианте осуществления также предусмотрен другой режим ротации. В частности, данные в физическом блоке q-го уровня копируются во внешнюю память или внутреннюю память; данные в каждом из других физических блоков q-го уровня копируются один за другим в область последних скопированных данных в энергонезависимой памяти; а затем данные во внешней памяти или внутренней памяти копируются в область последних скопированных данных в энергонезависимой памяти.
В настоящем варианте осуществления (1) все данные в энергонезависимой памяти копируются в другую внутреннюю память или внешнюю память, а затем данные копируются в энергонезависимую память в новые области; и (2) последний сегмент (или блок) в энергонезависимой памяти копируется в другую внутреннюю память или внешнюю память, а затем другие данные в энергонезависимой памяти копируются сегмент (или блок) новых ячеек, и, наконец, последний сегмент (или блок), временно сохраненный во внутренней или внешней памяти, копируется в новую область в энергонезависимой памяти.
На этапе S340, когда пользователь обращается к энергонезависимой памяти, логический адрес Ath физического блока среди п физических блоков q-го уровня устанавливается на (х / Q+у / А) % n, где х - логический адрес энергонезависимой памяти; Q - размер каждого из физических блоков q-го уровня; у - время доступа пользователя; и А - временной цикл, соответствующий физическим блокам q-го уровня.
В настоящем варианте осуществления, например, когда пользователь обращается к памяти с логическим адресом х в момент у, физический адрес Z памяти вычисляется этим способом. В первом физическом блоке вычисляется Z = (х / N + у / А)% n; в втором физическом блоке вычисляется как Z = (х / М + у / В)% m; в с-й третьем физическом блоке вычисляется как Z = (х/К + у/ С)% k … и так далее. Физический адрес Z может быть определен через а, b, с … .Вышеупомянутый метод доступа может выполняться пользователем или не пользователем. В первом случае пользователь выполняет указанные выше этапы и сначала преобразует логический адрес в физический при доступе. В последнем случае ротация физического адреса прозрачна для пользователя, и пользователь всегда обращается к логическому адресу только во время доступа, и логический адрес преобразуется в физический адрес драйвером (или операционной системой, или контейнер).
Согласно настоящему варианту осуществления непреднамеренный или злонамеренный централизованный доступ к одному и тому же фиксированному логическому адресу может фактически равномерно распределяться по различным физическим адресам, чтобы тем самым достичь эффекта выравнивания износа. По сравнению с традиционным методом таблицы сопоставления способ настоящего описания завершает преобразование между логическими адресами и физическими адресами посредством простого вычисления без дополнительного длительного использования пространства памяти и избегает неэффективных операций поиска в таблице, посредством которых пространство и время сохранено.
Как показано на фиг. 4, вариант осуществления настоящего описания предоставляет способ выравнивания износа и доступа к энергонезависимой памяти, который включает в себя следующие этапы.
На этапе S31 энергонезависимая память логически делится на р уровней физических блоков. Энергонезависимая память включает в себя множество физических блоков 1-го уровня, и каждый физический блок (р-1)-го уровня включает в себя множество физических блоков р-го уровня, р - целое положительное число больше 1.
На этапе S32 временной цикл, соответствующий физическим блокам q-го уровня, устанавливается на основе текущего рабочего сценария.
В настоящем варианте осуществления вращаемые физические блоки вращаются независимо и одновременно. Конечно, ротация только сегментов или ротация только блоков может до некоторой степени реализовать эффект выравнивания износа, но фиксированное распределение доступа к одному и тому же логическому адресу на несколько физических адресов не может привести к распределению логического адреса на все физические адреса. Настоящее описание должно защищать все этапы или комбинации некоторых этапов. Чем короче интервал ротации, тем сильнее эффект выравнивания износа и тем чаще происходит перемещение данных, которая временно прерывает внешние службы. Следовательно, интервал ротации не может быть слишком длинным или слишком коротким и должен определяться как практически необходимый при реализации вариантов использования. В варианте осуществления время перемещения должно приходиться на период низкой нагрузки системы. В варианте осуществления, когда система подвергается атаке или в других сценариях, где есть необходимость, временные циклы А, В и С могут быть сокращены и запущены пользователем или автоматически запущены системой.
На этапе S33, когда наступает временной цикл, соответствующий физическим блокам q-го уровня, данные в каждой из физических блоков q-го уровня копируются в другую свободную область в энергонезависимой памяти, либо во внешнюю память, либо во внутреннюю память, и затем копируется из указанной другой свободной области в энергонезависимой памяти или из внешней памяти или внутренней памяти в энергонезависимую память в область, где вращаются данные физического блока q-го уровня, q-любое натуральное число от 1 до р.
В настоящем варианте осуществления также предоставляется другой режим ротации: данные в физическом блоке q-го уровня копируются в другую свободную область в энергонезависимой памяти, во внешнюю память или внутреннюю память; данные в каждом из других физических блоков q-го уровня копируются один за другим в область последних скопированных данных в энергонезависимой памяти; и затем данные в указанном другом свободном месте в энергонезависимой памяти, или во внешней памяти, или во внутренней памяти копируются в область последних скопированных данных в энергонезависимой памяти.
В настоящем варианте осуществления (1) все данные в энергонезависимой памяти копируются в другую внутреннюю память или внешнюю память, а затем данные копируются в энергонезависимую память в соответствии с новыми ячейками; и (2) последний сегмент (или блок) в энергонезависимой памяти копируется в другую внутреннюю память или внешнюю память, а затем другие данные в энергонезависимой памяти копируют сегмент (или блок) в новую область, и, наконец, последний сегмент (или блок), временно сохраненный во внутренней или внешней памяти, копируется в новую область в энергонезависимой памяти.
На этапе S34, когда пользователь обращается к энергонезависимой памяти, логический адрес Ath физического блока среди n физических блоков q-го уровня устанавливается равным (х / Q + у / А) % n, где х - логический адрес энергонезависимой памяти; Q - размер каждой из физических блоков q-го уровня; у - время доступа пользователя; и А - временной цикл, соответствующий физическим блокам q-го уровня.
В настоящем варианте осуществления, например, когда пользователь обращается к памяти с логическим адресом х в момент у, физический адрес Z памяти вычисляется этим способом. В первом физическом блоке вычисляется как Z=(х / N+у / А) % п; в втором физическом блоке вычисляется как Z = (х / М + у / В) % m; в с-й третьем физическом блоке вычисляется Z = (х/К + у / С) % к … и так далее. Физический адрес Z может быть определен через а, b, с ….
Вышеупомянутый способ доступа может выполняться пользователем или не пользователем. В первом случае пользователь выполняет указанные выше этапы и сначала преобразует логический адрес в физический при доступе. В последнем случае ротация физического адреса прозрачна для пользователя, и пользователь всегда обращается к логическому адресу только во время доступа, и логический адрес преобразуется в физический адрес драйвером (или операционной системой, или контейнером).
Согласно настоящему варианту осуществления непреднамеренный или злонамеренный централизованный доступ к одному и тому же фиксированному логическому адресу может фактически равномерно распределяться по различным физическим адресам, чтобы тем самым достичь эффекта выравнивания износа. По сравнению с традиционным способом таблицы сопоставления способ настоящего описания завершает преобразование между логическими адресами и физическими адресами посредством простого вычисления без дополнительного длительного использования пространства памяти и избегает неэффективных операций поиска в таблице, посредством которых пространство и время сохранено.
Фиг. 5 показывает конкретный пример настоящего варианта осуществления.
(1) Цикл ротации А составляет месяц. Цикл ротации В составляет год. Энергонезависимая память логически разделена на три сегмента, каждый из которых состоит из десяти блоков. Режим ротации - это поочередное ротация в последовательности.
(2) В последнюю секунду каждого месяца происходит ротация трех сегментов энергонезависимой памяти. То есть содержимое третьего сегмента временно записывается в другую внутреннюю память; содержимое 2-го сегмента записывается в область 3-го сегмента 3; содержимое 1-го сегмента записывается в область 2-го сегмента; и содержимое, временно сохраненное в указанной другой внутренней памяти, записывается в область 1-го сегмента.
(3) В последнюю секунду каждого года блоки в трех сегментах энергонезависимой памяти меняются один за другим. В частности, содержимое 1-го блока записывается в область 2-го блока; содержимое 2-го блока записывается в область 3-го блока … и так далее.
(4) Следующие этапы показывают преобразование логического адреса в физический в определенное время.
(5) В марте 2017 года логический адрес, к которому получил доступ пользователь, - это 16-й блок, который был 7-м блоком во 2-м сегменте. Поскольку сейчас март, сегмент сдвигается назад три раза в своем серийном номере, и сегмент после сдвига по-прежнему является вторым сегментом. Поскольку сейчас 2017 год, блок сдвигается назад две тысячи семнадцать раз в своем серийном номере, и блок после сдвига является 4-м блоком в сегменте. Таким образом, физический адрес этого блока - 4-й блок во 2-м сегменте, а именно 13-й блок.
(6) В апреле 2017 года логический адрес, к которому получил доступ пользователь, все еще оставался 16-м блоком. Поскольку сейчас апрель, сегмент циклически сдвигается назад четыре раза в своем порядковом номере, и сегмент после сдвига является третьим сегментом. Поскольку сейчас 2017 год, блок сдвигается назад две тысячи семнадцать раз в своем серийном номере, и блок после сдвига является 4-м блоком в сегменте. Таким образом, физический адрес этого блока - 4-й блок в 3-м сегменте, а именно 23-й блок.
(7) В мае 2017 года логический адрес, к которому получил доступ пользователь, по-прежнему оставался 16-м блоком. Поскольку сейчас май, сегмент циклически сдвигается назад пять раз в своем серийном номере, и сегмент после сдвига является 1-м сегментом. Поскольку сейчас 2017 год, блок сдвигается назад две тысячи семнадцать раз в своем серийном номере, и блок после сдвига является 4-м блоком в сегменте. Таким образом, физический адрес этого блока - это 4-й блок в 1-м сегменте, а именно 3-й блок.
(8) В мае 2018 года логический адрес, к которому получил доступ пользователь, по-прежнему оставался 16-м блоком. Поскольку сейчас май, сегмент циклически сдвигается назад пять раз в своем серийном номере, и сегмент после сдвига является 1-м сегментом. Поскольку сейчас 2018 год, блок сдвигается назад две тысячи восемнадцать раз в своем серийном номере, и блок после сдвига является 5-м блоком в сегменте. Таким образом, физический адрес этого блока - это 5-й блок в 1-м сегменте, а именно 4-й блок.
(9) Точно так же для блока с логическим адресом 22 его физический адрес в марте 2017 года был 29-м блоком; его физический адрес в апреле 2017 года - 9 квартал; его физический адрес в мае 2017 года - 19 квартал; а его физический адрес в июне 2018 года - 10-й квартал.
Как показано на фиг. 6, вариант осуществления настоящего описания предоставляет устройство ротации данных, включая энергонезависимую память 510, процессор 520, память 530 и шину 540 передачи данных. Шина 540 передачи данных сконфигурирована для реализации подключенного связь между процессором 520 и памятью 530. Процессор 520 сконфигурирован для выполнения программы ротации данных, хранящейся в памяти 530, чтобы реализовать следующие этапы.
Энергонезависимая память логически разделена на р уровней физических блоков. Энергонезависимая память включает в себя множество физических блоков 1-го уровня, и каждый физический блок (р-1)-го уровня включает в себя множество физических блоков р-го уровня, р - целое положительное число больше 1.
В настоящем варианте осуществления, например, энергонезависимая память логически разделена на n первых физических блоков, каждая из которых имеет размер N. Каждый из первых физических блоков разделен на m вторых физических блоков, каждая из которых имеет размер М. Каждый второй физический блок делится на k третьих физических блоков, каждая размером K … и так далее.
Когда наступает временной цикл, соответствующий физическим блокам q-го уровня, данные в каждой из физических блоков q-го уровня переносятся в другой физический блок q-го уровня, q - любое натуральное число от 1 до р.
В настоящем варианте осуществления временной цикл ротации для первых физических блоков равен А; временной цикл ротации для вторых физических блоков равен В; а временной цикл ротации для третьих физических блоков равен С … и так далее. В настоящем варианте осуществления, например, когда наступает временной цикл А, вращаются n первых физических блоков; когда наступает временной цикл В, вращаются m вторых физических блоков в каждой из первых физических блоков; и когда наступает временной цикл С, вращаются k третьих физических блоков в каждой из вторых физических блоков … и так далее. После поворота расположение данных изменяется, как показано на фиг. 2.
В настоящем варианте осуществления физические блоки ротации включают, но не ограничиваются ими: (1) сегмент; (2) блок; (3) страница; (4) байты (В); (5) килобайты (КБ); (6) мегабайты (МБ); (7) гигабайты (ГБ); (8) и другие блоки памяти. Блоки времени ротации включают, но не ограничиваются: (1) годами; (2) квартал; (3) месяц; (4) неделя; (5) день; (6) час; (7) минута; (8) секунда; (9) и другие блоки времени лунного и тибетского календаря. Режимы ротации включают, но не ограничиваются ими:
(1) последовательная ротация по одному;
(2) ротация один за другим в перевернутой последовательности;
(3) последовательная ротация с прыжком;
(4) прыжковая ротация в перевернутой последовательности;
(5) псевдослучайная ротация; и
(6) другие режимы ротации.
Согласно настоящему варианту осуществления непреднамеренные или злонамеренные обращения к одному и тому же фиксированному логическому адресу могут фактически равномерно распределяться по различным физическим адресам, тем самым достигая эффекта выравнивания износа. По сравнению с традиционным методом таблицы сопоставления, способ настоящего описания завершает преобразование логических адресов и физических адресов посредством простого вычисления без дополнительного длительного использования пространства памяти и избегает неэффективных операций поиска в таблице, посредством которых пространство и время сохранен.
Как показано на фиг. 6, вариант осуществления настоящего описания предоставляет устройство ротации данных, включая энергонезависимую память 510, процессор 520, память 530 и шину 540 передачи данных. Шина 540 передачи данных сконфигурирована для реализации подключенного связь между процессором 520 и памятью 530. Процессор 520 сконфигурирован для выполнения программы ротации данных, хранящейся в памяти 530, чтобы реализовать следующий этап: логическое разделение энергонезависимой памяти на р уровней физических блоков. Энергонезависимая память включает в себя множество физических блоков 1-го уровня, и каждый физический блок (р-1)-го уровня включает в себя множество физических блоков р-го уровня, р - целое положительное число больше 1.
Временной цикл, соответствующий физическим блокам q-го уровня, устанавливается на основе текущего рабочего сценария.
В настоящем варианте осуществления вращаемые физические блоки вращаются независимо и одновременно. Конечно, ротация только сегментов или ротация только блоков может до некоторой степени реализовать эффект выравнивания износа, но фиксированное распределение доступа к одному и тому же логическому адресу на несколько физических адресов не может привести к распределению логического адреса на все физические адреса. Настоящее описание должно защищать все этапы или комбинации некоторых этапов. Чем короче интервал ротации, тем сильнее эффект выравнивания износа и тем чаще происходит перемещение данных, которая временно прерывает внешние службы. Следовательно, интервал ротации не может быть слишком длинным или слишком коротким и должен определяться как практически необходимый при реализации вариантов использования. В варианте осуществления время перемещения должно приходиться на период низкой нагрузки системы. В варианте осуществления, когда система подвергается атаке или в других сценариях, где есть необходимость, временные циклы А, В и С могут быть сокращены и запущены пользователем или автоматически запущены системой.
Когда наступает временной цикл, соответствующий физическим блокам q-го уровня, данные в каждой из физических блоков q-го уровня копируются во внешнее хранилище или внутреннюю память, а затем копируются из внешней памяти или внутренней памяти в энергонезависимую память в область, куда поворачиваются данные физического блока q-го уровня, q - любое натуральное число от 1 до p.
В настоящем варианте осуществления также предусмотрен другой режим ротации. В частности, данные в физическом блоке q-го уровня копируются во внешнюю память или внутреннюю память; данные в каждом из других физических блоков q-го уровня копируются один за другим в область последних скопированных данных в энергонезависимой памяти; а затем данные во внешней памяти или внутренней памяти копируются в область последних скопированных данных в энергонезависимой памяти.
В настоящем варианте осуществления (1) все данные в энергонезависимой памяти копируются в другую внутреннюю память или внешнюю память, а затем данные копируются в энергонезависимую память в новые области; и (2) последний сегмент (или блок) в энергонезависимой памяти копируется в другую внутреннюю память или внешнюю память, а затем другие данные в энергонезависимой памяти копируют сегмент (или блок) в новую ячейку, и, наконец, последний сегмент (или блок), временно сохраненный во внутренней или внешней памяти, копируется в новую область в энергонезависимой памяти.
Когда пользователь обращается к энергонезависимой памяти, логический адрес физического блока Ath среди n физических блоков q-го уровня устанавливается равным (х/Q+у / А) % n, где х - логический адрес не-энергозависимая память; Q - размер каждой из физических блоков q-го уровня; у - время доступа пользователя; и А - временной цикл, соответствующий физическим блокам q-го уровня.
В настоящем варианте осуществления, например, когда пользователь обращается к памяти с логическим адресом х в момент у, физический адрес Z памяти вычисляется этим способом. В первом физическом блоке вычисляется кака Z=(х/N+у/А) % n; в втором физическом блоке вычисляется Z=(х/М+у/В) % m; в третьем физическом блоке вычисляется как Z=(х/К+у/С)% k … и так далее. Физический адрес Z может быть определен посредством а, b, с ….
Вышеупомянутый способ доступа может выполняться пользователем или не пользователем. В первом случае пользователь выполняет указанные выше этапы и сначала преобразует логический адрес в физический при доступе. В последнем случае ротация физического адреса прозрачна для пользователя, и пользователь всегда обращается к логическому адресу только во время доступа, и логический адрес преобразуется в физический адрес драйвером (или операционной системой, или контейнером).
Согласно настоящему варианту осуществления непреднамеренный или злонамеренный централизованный доступ к одному и тому же фиксированному логическому адресу может фактически равномерно распределяться по различным физическим адресам, чтобы тем самым достичь эффекта выравнивания износа. По сравнению с традиционным методом таблицы сопоставления, способ настоящего описания завершает преобразование между логическими адресами и физическими адресами посредством простого вычисления без длительного использования дополнительного пространства памяти и избегает неэффективных операций поиска в таблице, посредством которых сохраняется пространство и время.
Как показано на фиг. 7, вариант осуществления настоящего описания обеспечивает устройство выравнивания износа и доступа к энергонезависимой памяти, включая энергонезависимую память 710 и процессор 720.
Процессор 720 сконфигурирован для выполнения программы выравнивания износа и доступа к энергонезависимой памяти для реализации следующего этапа: логического разделения энергонезависимой памяти на р уровней физических блоков. Энергонезависимая память включает в себя множество физических блоков 1-го уровня, и каждый физический блок (р-1) -го уровня включает в себя множество физических блоков р-го уровня, Р - целое положительное число больше 1.
В настоящем варианте осуществления, например, энергонезависимая память логически разделена на n первых физических блоков, каждая из которых имеет размер N. Каждый из первых физических блоков разделен на m вторых физических блоков, каждая из которых имеет размер М. Каждый второй физический блок делится на k третьих физических блоков, каждая размером К … и так далее.
Когда наступает временной цикл, соответствующий физическим блокам q-го уровня, данные в каждой из физических блоков q-го уровня переносятся в другой физический блок q-го уровня, q - любое натуральное число от 1 до р.
В настоящем варианте осуществления временной цикл ротации для первых физических блоков установлен на А; временной цикл ротации для вторых физических блоков установлен на В; а временной цикл ротации для третьих физических блоков равен С … и так далее. В настоящем варианте осуществления, например, когда наступает временной цикл А, вращаются n первых физических блоков; когда наступает временной цикл В, вращаются m вторых физических блоков в каждой из первых физических блоков; и когда наступает временной цикл С, вращаются k третьих физических блоков в каждой из вторых физических блоков … и так далее.
После поворота расположение данных изменяется, как показано на фиг. 2.
В настоящем варианте осуществления физические блоки ротации включают, но не ограничиваются ими: (1) сегмент; (2) блок; (3) страница; (4) байты (В); (5) килобайты (КБ); (6) мегабайты (МБ); (7) гигабайты (ГБ); (8) и другие блоки памяти. Блоки времени ротации включают, но не ограничиваются: (1) год; (2) квартал; (3) месяц; (4) неделя; (5) день; (6) час; (7) минута; (8) секунда; (9) и другие блоки времени лунного и тибетского календаря. Режимы ротации включают, но не ограничиваются ими: (1) последовательная ротация по одному; (2) ротация один за другим в перевернутой последовательности; (3) последовательная ротация с прыжком; (4) прыжковая ротация в перевернутой последовательности; (5) псевдослучайная ротация; и (6) другие режимы ротации.
Согласно настоящему варианту осуществления непреднамеренные или злонамеренные обращения к одному и тому же фиксированному логическому адресу могут фактически равномерно распределяться по различным физическим адресам, тем самым достигая эффекта выравнивания износа. По сравнению с традиционным методом таблицы сопоставления, способ настоящего описания завершает преобразование логических адресов и физических адресов посредством простого вычисления без дополнительного длительного использования пространства памяти и избегает неэффективных операций поиска в таблице, посредством которых пространство и время сохранен.
Как показано на фиг. 7, вариант осуществления настоящего описания обеспечивает устройство выравнивания износа и доступа к энергонезависимой памяти, включая энергонезависимую память 710 и процессор 720.
Процессор 720 сконфигурирован для выполнения программы выравнивания износа и доступа к энергонезависимой памяти для реализации следующего этапа: логического разделения энергонезависимой памяти на р уровней физических блоков. Энергонезависимая память включает в себя множество физических блоков 1-го уровня, и каждый физический блок (р-1)-го уровня включает в себя множество физических блоков р-го уровня, р - целое положительное число больше 1.
Временной цикл, соответствующий физическим блокам q-го уровня, устанавливается на основе текущего рабочего сценария.
В настоящем варианте осуществления вращаемые физические блоки вращаются независимо и одновременно. Конечно, ротация только сегментов или ротация только блоков может до некоторой степени реализовать эффект выравнивания износа, но фиксированное распределение доступа к одному и тому же логическому адресу на несколько физических адресов не может привести к распределению логического адреса на все физические адреса. Настоящее описание должно защищать все этапы или комбинации некоторых этапов. Чем короче интервал ротации, тем сильнее эффект выравнивания износа и тем чаще происходит перемещение данных, которая временно прерывает внешние службы. Следовательно, интервал ротации не может быть слишком длинным или слишком коротким и должен определяться как практически необходимый при реализации вариантов использования. В варианте осуществления время перемещения должно приходиться на период низкой нагрузки системы. В варианте осуществления, когда система подвергается атаке или в других сценариях, где есть необходимость, временные циклы А, В и С могут быть сокращены и запущены пользователем или автоматически запущены системой.
Когда наступает временной цикл, соответствующий физическим блокам q-го уровня, данные в каждой из физических блоков q-го уровня копируются в другую свободную область в энергонезависимой памяти или во внешнюю память или внутреннюю память, а затем копируются из упомянутой другой свободной области в энергонезависимой памяти или из внешней памяти или внутренней памяти в энергонезависимую память в область, куда перемещаются данные физического блока q-го уровня, q - любое натуральное число от 1 до р.
В настоящем варианте осуществления также предоставляется другой режим ротации: данные в физическом блоке q-го уровня копируются в другую свободную область в энергонезависимой памяти, во внешнюю память или внутреннюю память; данные в каждом из других физических блоков q-го уровня копируются один за другим в область последних скопированных данных в энергонезависимой памяти; и затем данные в указанной другой свободной области в энергонезависимой памяти, или во внешней памяти, или во внутренней памяти копируются в область последних скопированных данных в энергонезависимой памяти.
Как показано на фиг. 7, вариант осуществления настоящего описания обеспечивает устройство выравнивания износа и доступа к энергонезависимой памяти, включая энергонезависимую память 710 и процессор 720.
Процессор 720 сконфигурирован для выполнения программы выравнивания износа и доступа к энергонезависимой памяти для реализации следующего этапа: логического разделения энергонезависимой памяти на р уровней физических блоков. Энергонезависимая память включает в себя множество физических блоков 1-го уровня, и каждый физический блок (р-1)-го уровня включает в себя множество физических блоков р-го уровня, р - целое положительное число больше 1.
Временной цикл, соответствующий физическим блокам q-го уровня, устанавливается на основе текущего рабочего сценария.
В настоящем варианте осуществления вращаемые физические блоки вращаются независимо и одновременно. Конечно, ротация только сегментов или ротация только блоков может до некоторой степени реализовать эффект выравнивания износа, но фиксированное распределение доступа к одному и тому же логическому адресу на несколько физических адресов не может привести к распределению логического адреса на все физические адреса. Настоящее описание должно защищать все этапы или комбинации некоторых этапов. Чем короче интервал ротации, тем сильнее эффект выравнивания износа и тем чаще происходит перемещение данных, которая временно прерывает внешние службы. Следовательно, интервал ротации не может быть слишком длинным или слишком коротким и должен определяться как практически необходимый при реализации вариантов использования. В варианте осуществления время перемещения должно приходиться на период низкой нагрузки системы. В варианте осуществления, когда система подвергается атаке или в других сценариях, где есть необходимость, временные циклы А, В и С могут быть сокращены и запущены пользователем или автоматически запущены системой.
Когда наступает временной цикл, соответствующий физическим блокам q-го уровня, данные в каждой из физических блоков q-го уровня копируются в другую свободную область в энергонезависимой памяти или во внешнюю память или внутреннюю память, а затем копируются из упомянутой другой свободной области в энергонезависимой памяти или из внешней памяти или внутренней памяти в энергонезависимую память в область, куда перемещаются данные физического блока q-го уровня, q - любое натуральное число от 1 до р.
В настоящем варианте осуществления также предоставляется другой режим ротации: данные в физическом блоке q-го уровня копируются в другую свободную область в энергонезависимой памяти, во внешнюю память или внутреннюю память; данные в каждом из других физических блоков q-го уровня копируются один за другим в область последних скопированных данных в энергонезависимой памяти; и затем данные в указанной другой свободной области в энергонезависимой памяти, или во внешней памяти, или во внутренней памяти копируются в область последних скопированных данных в энергонезависимой памяти.
Согласно настоящему варианту осуществления непреднамеренный или злонамеренный централизованный доступ к одному и тому же фиксированному логическому адресу может фактически равномерно распределяться по различным физическим адресам, чтобы тем самым достичь эффекта выравнивания износа. По сравнению с традиционным методом таблицы сопоставления способ настоящего описания завершает преобразование между логическими адресами и физическими адресами посредством простого вычисления без дополнительного длительного использования пространства памяти и избегает неэффективных операций поиска в таблице, посредством которых пространство и время сохранено.
Фиг. 5 показывает конкретный пример настоящего варианта осуществления.
(1) Цикл ротации А составляет месяц. Цикл ротации В составляет год. Энергонезависимая память логически разделена на три сегмента, каждый из которых состоит из десяти блоков. Режим ротации - это поочередная ротация в последовательности.
(2) В последнюю секунду каждого месяца происходит ротация трех сегментов энергонезависимой памяти. То есть содержимое третьего сегмента временно записывается в другую внутреннюю память; содержимое 2-го сегмента записывается в область 3-го сегмента 3; содержимое 1-го сегмента записывается в область 2-го сегмента; и содержимое, временно сохраненное в указанной другой внутренней памяти, записывается в область 1-го сегмента.
(3) В последнюю секунду каждого года блоки в трех сегментах энергонезависимой памяти меняются один за другим. В частности, содержимое 1-го блока записывается в область 2-го блока; содержимое 2-го блока записывается в область 3-го блока … и так далее.
(4) Следующие этапы показывают преобразование логического адреса в физический в определенное время.
(5) В марте 2017 года логический адрес, к которому получил доступ пользователь, - это 16-й блок, который был 7-м блоком во 2-м сегменте. Поскольку сейчас март, сегмент сдвигается назад три раза в своем серийном номере, и сегмент после сдвига по-прежнему является вторым сегментом. Поскольку сейчас 2017 год, блок сдвигается назад две тысячи семнадцать раз в своем серийном номере, и блок после сдвига является 4-м блоком в сегменте. Таким образом, физический адрес этого блока - 4-й блок во 2-м сегменте, а именно 13-й блок.
(6) В апреле 2017 года логический адрес, к которому получил доступ пользователь, все еще оставался 16-м блоком. Поскольку сейчас апрель, сегмент циклически сдвигается назад четыре раза в своем порядковом номере, и сегмент после сдвига является третьим сегментом. Поскольку сейчас 2017 год, блок сдвигается назад две тысячи семнадцать раз в своем серийном номере, и блок после сдвига является 4-м блоком в сегменте. Таким образом, физический адрес этого блока - 4-й блок в 3-м сегменте, а именно 23-й блок.
(7) В мае 2017 года логический адрес, к которому получил доступ пользователь, по-прежнему оставался 16-м блоком. Поскольку сейчас май, сегмент циклически сдвигается назад пять раз в своем серийном номере, и сегмент после сдвига является 1-м сегментом. Поскольку сейчас 2017 год, блок сдвигается назад две тысячи семнадцать раз в своем серийном номере, и блок после сдвига является 4-м блоком в сегменте. Таким образом, физический адрес этого блока - это 4-й блок в 1-м сегменте, а именно 3-й блок.
(8) В мае 2018 года логический адрес, к которому получил доступ пользователь, по-прежнему оставался 16-м блоком. Поскольку сейчас май, сегмент циклически сдвигается назад пять раз в своем серийном номере, и сегмент после сдвига является 1-м сегментом. Поскольку сейчас 2018 год, блок сдвигается назад две тысячи восемнадцать раз в своем серийном номере, и блок после сдвига является 5-м блоком в сегменте. Таким образом, физический адрес этого блока - это 5-й блок в 1-м сегменте, а именно 4-й блок.
(9) Аналогичным образом, для логического адреса, к которому осуществляется доступ, который был 22-м блоком, его физический адрес в марте 2017 года был 29-м блоком; его физический адрес в апреле 2017 года - 9 квартал; его физический адрес в мае 2017 года - 19 квартал; а его физический адрес в июне 2018 года - 10-й квартал. Вариант осуществления настоящего описания предоставляет машиночитаемый носитель данных, на котором хранится одна или несколько программ.
Одна или несколько программ могут выполняться одним или несколькими процессорами для реализации следующего этапа: логического разделения энергонезависимой памяти на р уровней физических блоков. Энергонезависимая память включает в себя множество физических блоков 1-го уровня, и каждый физический блок (р-1) -го уровня включает в себя множество физических блоков р-го уровня, р - целое положительное число больше 1.
В настоящем варианте осуществления, например, энергонезависимая память логически разделена на n первых физических блоков, каждая из которых имеет размер N. Каждый из первых физических блоков разделен на m вторых физических блоков, каждая из которых имеет размер М. Каждый второй физический блок делится на k третьих физических блоков, каждый размером К … и так далее.
Когда наступает временной цикл, соответствующий физическим блокам q-го уровня, данные в каждой из физических блоков q-го уровня переносятся в другой физический блок q-го уровня, q - любое натуральное число от 1 до р.
В настоящем варианте осуществления временной цикл ротации для первых физических блоков равен А; временной цикл ротации для вторых физических блоков равен В; а временной цикл ротации для третьих физических блоков равен С … и так далее. В настоящем варианте осуществления, например, когда наступает временной цикл А, вращаются n первых физических блоков; когда наступает временной цикл В, вращаются m вторых физических блоков в каждой из первых физических блоков; и когда наступает временной цикл С, вращаются k третьих физических блоков в каждой из вторых физических блоков … и так далее. После поворота расположение данных изменяется, как показано на фиг. 2.
В настоящем варианте осуществления физические блоки ротации включают, но не ограничиваются ими: (1) сегмент; (2) блок; (3) страница; (4) байты (В); (5) килобайты (КБ); (6) мегабайты (МБ); (7) гигабайты (ГБ); (8) и другие блоки памяти. Блоки времени ротации включают, но не ограничиваются: (1) года; (2) квартал; (3) месяц; (4) неделя; (5) день; (6) час; (7) минута; (8) секунда; (9) и другие блоки времени лунного и тибетского календаря. Режимы ротации включают, но не ограничиваются ими: (1) последовательная ротация по одному; (2) ротация один за другим в перевернутой последовательности; (3) последовательная ротация с прыжком; (4) прыжковая ротация в перевернутой последовательности; (5) псевдослучайная ротация; и (6) другие режимы ротации.
Согласно настоящему варианту осуществления непреднамеренные или злонамеренные обращения к одному и тому же фиксированному логическому адресу могут фактически равномерно распределяться по различным физическим адресам, тем самым достигая эффекта выравнивания износа. По сравнению с традиционным методом таблицы сопоставления, способ настоящего описания завершает преобразование логических адресов и физических адресов посредством простого вычисления без дополнительного длительного использования пространства памяти и избегает неэффективных операций поиска в таблице, посредством которых пространство и время сохранен.
Следует понимать, что все или некоторые из этапов способов и функциональных блоков/блоков систем и устройств, раскрытых выше, могут быть реализованы как программное обеспечение, встроенное программное обеспечение, аппаратные средства и любые подходящие их комбинации. В аппаратных реализациях разделение на функциональные модули/блоки, упомянутые в вышеприведенном описании, не обязательно соответствует разделению между физическими компонентами. Например, один физический компонент может иметь несколько функций, или одна функция или этап могут выполняться посредством комбинации множества физических компонентов. Некоторые или все компоненты могут быть реализованы как программное обеспечение, выполняемое процессором, таким как ЦП, процессор цифровых сигналов или микропроцессор, или быть реализованы как аппаратные средства или как интегральная схема, такая как специализированная интегральная схема. Такое программное обеспечение может распространяться на машиночитаемом носителе, который может включать в себя компьютерный носитель данных (или энергонезависимый носитель) и среду связи (или временный носитель). Следует понимать, что термин компьютерный носитель данных включает в себя энергозависимый и энергонезависимый, съемный и несъемный носитель, реализованный любым способом или технологией для хранения информации (например, машиночитаемых инструкций, структур данных, программных блоков или других данных). Компьютерный носитель данных включает, помимо прочего, RAM, ROM, EEPROM, флэш-память или другие технологии памяти, CD-ROM, цифровой универсальный диск (DVD) или другие оптические дисковые накопители, магнитные кассеты, магнитные ленты, накопители на магнитных дисках или другие магнитные хранилища или любой другой носитель, который можно использовать для хранения желаемой информации и к которому можно получить доступ с компьютера. Кроме того, следует понимать, что среда связи обычно содержит машиночитаемые инструкции, структуры данных, программные модули или другие данные в модулированном сигнале данных, таком как несущая волна или другой транспортный механизм, и может включать в себя любую среду доставки информации.
Выше описаны варианты осуществления настоящего описания со ссылкой на прилагаемые чертежи, но настоящее описание не ограничивается описанными выше конкретными вариантами осуществления. Вышеупомянутые конкретные варианты осуществления являются только иллюстративными, а не ограничительными. Специалисты в данной области техники, знакомые с идеями настоящего описания, могут сделать множество изменений, не выходя за рамки сущности настоящего описания и объема защиты формулы изобретения, и все такие изменения должны находиться в пределах объема зашиты описания настоящего изобретения.