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

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

 

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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



 

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

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

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

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

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

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

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

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

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

Изобретение относится к области вычислительной техники. Технический результат заключается в повышении скорости сборки мусора и сокращении загрузки контроллера при выполнении соответствующих операций. Технический результат достигается за счет загрузки логических адресов секторов; для загруженной таблицы соответствия, для каждой из рабочих матриц суперблока, для каждого из логических адресов последовательной проверки наличия совпадения физического адреса сектора, соответствующего логическому адресу с физическим адресом сектора блока суперблока; отмечания проверенных секторов, для которых имеется совпадение с формированием маски валидности секторов; после чего используют маску валидности при сборке мусора соответствующим обработчиком матрицы так, что: в соответствии с маской валидности секторов последовательно считывают страницы блока, содержащие валидные сектора, выполняют избирательное декодирование валидных секторов считанной страницы, формируют строки, содержащие декодированные валидные сектора с указанием логических адресов декодированных секторов, перезаписывают декодированные валидные сектора путем записи сформированных строк в свободные ячейки ТНИ, после перезаписи всех секторов, указанных в маске валидных секторов, производят стирание блоков суперблока; после стирания всех блоков суперблока формируют сигнал завершения сборки мусора в суперблоке, деактивирующий блок управления аппаратного сборщика мусора. 2 з.п. ф-лы, 1 ил.
Наверх