Способ инкрементального сохранения Российский патент 2021 года по МПК G06F12/02 

Описание патента на изобретение RU2754601C1

Изобретение относится к компьютерной технике и предназначено для обеспечения корректности работы немеханических запоминающих устройств на основе микросхем памяти (SSD, USB Flash Drive, Flash Card и т.д.).

В настоящее время для сохранения расположения данных секторов в блоках запоминающих устройств используют таблицы трансляции, сохраняемые в адресах страниц.

Недостатком такого метода хранения данных секторов и последующее их восстановление является большой объем сохраняемых данных и длительное время на проведение такой процедуры.

Техническим результатом является уменьшение объема памяти для хранения данных секторов и сокращение времени сохранения таких данных в запоминающем устройстве.

Заявленный результат обеспечивается способом инкрементального сохранения данных секторов в немеханических запоминающих устройствах, в котором у блоков, у которых осталась одна свободная страница, осуществляют сохранение на эту страницу данных о секторах, содержащихся в соответствующем блоке, при этом для каждого блока, кроме зарезервированных для сохранения, отмечают момент, когда он был заполнен. А для восстановления таблицы трансляции предлагается способ инкрементального восстановления таблиц трансляции данных секторов в немеханических запоминающих устройствах, заключающийся в том, что при подаче питания на запоминающее устройство вначале загружаются данные из зарезервированных блоков, после чего считывают последнюю страницу каждого блока и для каждого логического адреса из этой страницы в таблицу трансляции записывается физический адрес страницы, на которую этот сектор записан.

Предлагаемый способ хранения и восстановления данных о секторах позволит уменьшить объем памяти для хранения данных секторов и ускорить время сохранения таких данных в запоминающем устройстве из-за отсутствия лишних операций.

Подробное описание изобретения.

Суть состоит в записи логических адресов всех секторов, записанных в блок, на последнюю страницу блока. Эта процедура вызывается для блока в тот момент, когда в нем остается одна свободная страница. Кроме адресов секторов, на последнюю страницу блока записываются и некоторые другие данные – температура блока и износ блока, что позволяет не тратить время на сохранение этих данных при отключении питания. Для каждого блока (кроме зарезервированных для сохранения) отмечается момент, когда этот блок оказывается заполнен (время его закрытия).

При включении питания сначала загружаются все данные из зарезервированных блоков. Затем происходит чтение последней страницы каждого блока (кроме зарезервированных и свободных), и для каждого логического адреса из этой страницы в таблицу трансляции записывается физический адрес страницы, на которую этот сектор записан (этот адрес легко вычисляется по положению адреса сектора на последней странице). Если логический адрес находится на последней странице нескольких блоков, предпочтение отдается тому блоку, который был заполнен позже остальных

Реализация включает две группы функций – функции, вызываемые при сохранении программного обеспечения (ПО) и функции, вызываемые при загрузке ПО.

Функции, вызываемые при сохранении ПО:

Сохранение инициируется функцией сохранения драйвера нижнего уровня ПО. Эта или аналогичная ей функция будет вызвана после поступления в драйвер аппаратного сигнала о том, что началось выключение накопителя.

У всех классов ПО, требующих сохранения, реализована собственная функция сохранения, переписывающая требующие сохранения данные во внутренний буфер объекта класса потока вывода. Все эти функции вызываются из функции сохранения для одного и того же объекта класса потока вывода.

Объект потока вывода накапливает сохраняемые данные в своем внутреннем буфере. Если буфер заполнен (либо вызвана функция сброса буфера класса потока вывода, что означает, что все предназначенные для сохранения данные уже записаны в буфер), то он переписывается на зарезервированный блок флеш-памяти. Размер буфера равен произведению длины страницы на количество путей на диске, поэтому запись на носитель осуществляется параллельно на все пути.

При записи на носитель в зарезервированный блок в параметрах передается номер страницы зарезервированного блока, куда будет осуществлена запись; указатель на начало переписываемого участка в буфере объекта; и признак, который указывает аппаратуре, является ли данная страница последней страницей, записываемой при сохранении ПО.

Основные данные ПО, сохраняемые в зарезервированные блоки при выключении питания - последние страницы открытых блоков (при 512 страниц в блоке потребуется не более 2 страниц на 1 путь, а при 1024 страниц в блоке - не более 4 на 1 путь, независимо от числа блоков на пути), время закрытия каждого блока (не более чем по 4Б на каждый блок). Кроме того, ядро ТНИ сбрасывает на флеш-память свой кэш (128 страниц).

Таким образом, достигается значительная экономия объема сохраняемых данных и времени сохранения по сравнению с диском, где осуществлялось бы сохранение таблицы трансляции. Например, объем данных, сохраняемых при выключении питания для 1 ТБ-диска – менее 7 МБ, а объем таблицы трансляции для такого диска – более 800 МБ.

Функции, вызываемые при загрузке ПО:

Загрузка инициируется функцией загрузки драйвера нижнего уровня ПО. Эта или аналогичная функция будет вызвана после поступления в драйвер аппаратного сигнала о том, что произошло включение накопителя.

У всех классов ПО, для которых реализовано сохранение данных, реализована так же функция загрузки, загружающая значения полей классов из внутреннего буфера объекта класса потока ввода. Все функции загрузки классов вызываются из функции загрузки драйвера нижнего уровня для одного и того же объекта класса потока ввода.

Если все данные из внутреннего буфера объекта оказываются переписаны в поля классов ПО, а загрузка данных из зарезервированных блоков еще не завершена, происходит чтение новой порции данных из зарезервированных блоков накопителя. Размер буфера равен произведению длины страницы на количество путей на диске, поэтому чтение с кристалла флеш-памяти осуществляется параллельно со всех путей.

Чтение с накопителя осуществляется из зарезервированных блоков, при этом в параметрах передается это номер страницы блока, откуда будет осуществлено чтение; указатель на начало участка в буфере объекта, куда будет записана прочитанная страница.

Когда все данные из зарезервированного блока прочитаны, этот блок стирается, после чего он готов к записи при следующем сохранении ПО.

После того, как чтение из зарезервированных блоков завершено, из функции чтения драйвера низкого уровня вызывается чтение последней страницы каждого блока, кроме зарезервированных блоков и свободных блоков. То, что блок свободен, можно определить по тому, что время его закрытия указано как 0.

Для чтения последних страниц также используется функция чтения из зарезервированного блока драйвера нижнего уровня или аналогичная ей функция, которая читает с накопителя любую заданную страницу. Прочитанная страница преобразуется в объект класса, содержащий структурированное представление данных, записанных на последнюю страницу блока, и передается функции обновления таблицы трансляции. В этой функции происходит восстановление участков таблицы трансляции, соответствующих данному блоку.

После окончания чтения обновления таблиц трансляции, в которой происходит формирование участков таблицы трансляции, соответствующих открытым блокам, а также восстановление тех элементов ПО, которые можно восстановить, зная таблицу трансляции (например, валидность блоков). На этом загрузка завершается.

Для 1 ТБ-диска с 512 страницами в блоке объем данных, читаемых при загрузке, составит 2 ГБ, а для 1 ТБ-диска с 1024 страницами в блоке - 1 ГБ.

Похожие патенты RU2754601C1

название год авторы номер документа
СИСТЕМА И СПОСОБ ПРОВЕРКИ ИСПОЛНЯЕМОГО КОДА ПЕРЕД ЕГО ВЫПОЛНЕНИЕМ 2012
  • Павлющик Михаил Александрович
RU2510074C2
ОПИСАНИЕ И ОБРАЩЕНИЕ К ДИСКРЕТНЫМ ОБЛАСТЯМ ФЛЭШ-НОСИТЕЛЯ 2007
  • Роджерс Эндрю Майкл
  • Пател Сахин Химан
  • Гопалан Ядху Н.
RU2433455C2
ОТЛОЖЕННАЯ ОЧИСТКА БУФЕРОВ БЫСТРОГО ПРЕОБРАЗОВАНИЯ АДРЕСОВ 2004
  • Коухен Эрнест С.
RU2361267C2
ОРГАНИЗАЦИЯ ПАМЯТИ КОМПЬЮТЕРА 1997
  • Сарфати Жан-Клод
  • Деклерк Кристоф
RU2182375C2
ОПРЕДЕЛЕНИЕ ФОРМАТОВ ТРАНСЛЯЦИИ ДЛЯ ФУНКЦИЙ АДАПТЕРА ВО ВРЕМЯ ВЫПОЛНЕНИЯ 2010
  • Дейвид Краддок
  • Томас Грегг
  • Дан Грейнер
  • Эрик Норман Лейс
  • Доналд Уилльям Шмидт
RU2556418C2
СПОСОБ ВЫПОЛНЕНИЯ МАШИННОЙ КОМАНДЫ, КОМПЬЮТЕРНАЯ СИСТЕМА И МАШИНОЧИТАЕМЫЙ НОСИТЕЛЬ, ОБЕСПЕЧИВАЮЩИЕ РАСЧЕТ РАССТОЯНИЯ ОТ ПОЛОЖЕНИЯ В ОСНОВНОЙ ПАМЯТИ ДО ГРАНИЦЫ БЛОКА ОСНОВНОЙ ПАМЯТИ 2012
  • Джонатан Дейвид Бредбери
  • Майкл Карл Гшвинд
  • Эрик Марк Шварц
  • Тимоти Дж. Слиджл
  • Кристиан Якоби
RU2568920C2
КОМАНДА НА НЕТРАНЗАКЦИОННОЕ СОХРАНЕНИЕ 2012
  • Дан Ф. Грейнер
  • Кристиан Якоби
  • Тимоти Дж. Слиджл
RU2568324C2
ТРАНСЛЯЦИЯ АДРЕСОВ ВВОДА-ВЫВОДА В АДРЕСА ЯЧЕЕК ПАМЯТИ 2010
  • Дейвид Краддок
  • Томас Грегг
  • Дан Грейнер
  • Эрик Норман Лейс
RU2547705C2
СПОСОБ ОБЕСПЕЧЕНИЯ СВЯЗИ В КОММУНИКАЦИОННОЙ СРЕДЕ, КОМПЬЮТЕРНАЯ СИСТЕМА И ЭНЕРГОНЕЗАВИСИМЫЙ МАШИНОЧИТАЕМЫЙ НОСИТЕЛЬ ДАННЫХ 2012
  • Анджело Маккьяно
  • Ричард Тарча
  • Александра Винтер
  • Густав Зиттманн Iii
  • Джерри Стивенс
RU2574815C2
КОМАНДА ДЛЯ ЗАГРУЗКИ ДАННЫХ ДО ЗАДАННОЙ ГРАНИЦЫ ПАМЯТИ, УКАЗАННОЙ КОМАНДОЙ 2012
  • Джонатан Дейвид Бредбери
  • Майкл Карл Гшвинд
  • Тимоти Дж. Слиджл
  • Эрик Марк Шварц
  • Кристиан Якоби
RU2565496C2

Реферат патента 2021 года Способ инкрементального сохранения

Изобретение относится к области компьютерной техники и предназначено для обеспечения корректности работы немеханических запоминающих устройств на основе микросхем памяти. Техническим результатом является уменьшение объема памяти для хранения данных секторов и сокращение времени сохранения таких данных в запоминающем устройстве. Технический результат заявляемого технического решения достигается тем, что в заявленном решении у блоков, у которых осталась одна свободная страница, осуществляют сохранение на эту страницу данных о секторах, содержащихся в соответствующем блоке, при этом для каждого блока, кроме зарезервированных для сохранения, отмечают момент, когда он был заполнен.

Формула изобретения RU 2 754 601 C1

Способ инкрементального сохранения данных секторов в немеханических запоминающих устройствах, заключающийся в том, что у блоков, у которых осталась одна свободная страница, осуществляют сохранение на эту страницу данных секторов, содержащихся в соответствующем блоке, при этом для каждого блока, кроме зарезервированных для сохранения, отмечают момент, когда он был заполнен, а при подаче питания на немеханическое запоминающее устройство вначале загружаются данные из зарезервированных блоков, после чего считывают последнюю страницу каждого блока и для каждого логического адреса из этой страницы в таблицу трансляции записывается физический адрес страницы, на которую этот сектор записан.

Документы, цитированные в отчете о поиске Патент 2021 года RU2754601C1

Станок для изготовления деревянных ниточных катушек из цилиндрических, снабженных осевым отверстием, заготовок 1923
  • Григорьев П.Н.
SU2008A1
Колосоуборка 1923
  • Беляков И.Д.
SU2009A1
US 8463826 B2, 11.06.2013
US 7319617 B2, 15.01.2008
Способ обработки целлюлозных материалов, с целью тонкого измельчения или переведения в коллоидальный раствор 1923
  • Петров Г.С.
SU2005A1
ОБЩАЯ МОДЕЛЬ ЗАВИСИМОСТИ ДЛЯ АННУЛИРОВАНИЯ ЭЛЕМЕНТОВ КЭША 2004
  • Смит Адам Уэйд
  • Говард Роберт Майкл
  • Нг Патрик Ю-Кван
RU2373567C2

RU 2 754 601 C1

Авторы

Кравцов Алексей Юрьевич

Даты

2021-09-03Публикация

2020-12-18Подача