Способ записи секторных данных в кэш-память Российский патент 2021 года по МПК G06F12/02 

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

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

Из уровня техники известен способ управления памятью в вычислительном устройстве, описанный в патенте RU 2395115, опубл. 20.07.2010. Известный способ содержит этапы, в ходе которых обнаруживается, когда внешнее устройство памяти является доступным для использования вычислительным устройством, внешнее устройство памяти содержит множество внешних устройств памяти; назначает приоритеты секторам, которые будут размещены во множестве внешних устройств памяти, посредством заполнения выбранного внешнего устройства памяти из множества внешних устройств памяти копией сектора из запоминающего устройства с вращательным движением, сектора, имеющего возможность осуществления доступа, соответствующего предыстории использования сектора, и выбранное внешнее устройство памяти, имеет большую пропускную способность и меньшее время ожидания в сравнении с другими внешними устройствами памяти из множества внешних устройств памяти; и перенаправляет I/O запроса чтения от вычислительного устройства или приложения на данные, которые хранятся в упомянутом секторе, так, чтобы они считывались из выбранного внешнего устройства памяти прозрачно для вычислительного устройства или приложения.

Данный патент был принят за прототип. Его недостатком является отсутствие возможности предварительного хранения секторов перед их записью в основную память для уменьшения занимаемой памяти.

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

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

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

Далее будет подробно изложено заявленное изобретение.

В тексте настоящего изобретения используются следующие термины:

Страница — это единица информации флеш-памяти, то есть считывать и записывать информацию на флеш-память можно только страницами. Страница состоит из секторов.

Сектор — это единица информации хоста.

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

BSA – адрес блока внутренней памяти.

Кэш (cashe) — область памяти, которая служит для буфера обмена, как правило имеет большую скорость, чем основная память.

Хост — центральный процессор, сервер или любое другое устройство, использующее ТНИ.

В качестве идентификатора сектора в файловой системе используется логический адрес сектора, это натуральное число, которое будем обозначать как LSA.

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

Физический адрес страницы в ТНИ – это целое неотрицательное число, будем обозначать как PPA.

Каждая страница состоит из одинакового количества секторов, но какие-то секторы могут быть пустые, то есть не содержать данные.

Под сборкой мусора понимается процесс удаления данных страниц с ТНИ, сектора которой были перезаписаны.

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

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

В состав контроллера ТНИ входят две основные части: аппаратная и программная.

Программная часть состоит из детектора температур, определяющего температуры секторов, поступающих при записи от хоста, формирует страницы из секторов одной температуры, поддерживает таблицу соответствия (узел “FTL”) логических адресов секторов (LSA) и физических адресов страниц (PPA), на которых находятся соответствующие секторы.

Узлами аппаратной части (“Контроллер ТНИ”) являются:

• узел “Шифратор”, предназначенный для шифрования данных, идущих при записи сектора с хоста в процессор ТНИ, и дешифрования, идущих от процессора ТНИ к хосту при чтении сектора;

• узлы “Encoder” и “Decoder”, используемые для шифрования и дешифрования помехоустойчивым кодеком данных секторов;

• узел “Модуль управления заданиями к ТНИ”, управляющий процессом общения хоста и флеш- памяти;

• узлы “BRAM 1” и “BRAM 2” – блочная память, в которой хранятся данные записываемых, считанных секторов;

• узел “Модуль управления страничным кэш”, используемый для хранения информации о секторах, к которым идет частое обращение;

• узлы Conductor_to_memory и Conductor_from_memory, используемые для разъединения данных ширины 64 бит на 8 8-битных порций данных и наоборот.

Указанный модуль управления секторным кэш обеспечивает

- кэш-память для хранения N элементов, состоящих из логического адреса считанного сектора и информации о том, кому нужен считанный сектор – хосту и/или сборщику мусора;

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

В контроллере ТНИ данные считываются с флеш-памяти (носитель данных) в 2 случаях:

1. хост отправил запрос чтения сектора;

2. сектор нужен сборщику мусора.

В первом случае после скачивания с флеш-памяти в процессор ТНИ данные сектора сначала закачиваются в блочную память (узел “BRAM 2”) и информация о секторе в модуль управления секторным кэш, а затем выдается хосту.

Во втором случае после скачивания с флеш-памяти в процессор ТНИ данные сектора сначала закачиваются в блочную память (узел “BRAM 2”) и информация о секторе в модуль управления секторным кэш, после этого из скачанных секторов формируется новая страница, которая обратно записывается во флеш-память.

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

Общее описание модуля управления секторным кэш.

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

Пусть под секторный кэш выделено N блоков, каждый из которых предназначен для сохранения одного сектора, т.е. в блочной памяти может быть сохранено N секторов. Тогда модуль управления секторным кэш содержит массив из N структур, которые будем называть элементами. Каждый элемент будет содержать информацию об одном блоке-секторе памяти. Элемент состоит из 3 полей: need_for_host – однобитное поле говорящее, что сектор хранит данные, предназначенные для передачи хосту; need_for_gc – однобитное поле, говорящее, что сектор считан сборщиком мусора и предназначен для перезаписи на ТНИ; lsa – логический адрес сектора, хранящегося в данном блоке. Если у элемента оба поля и need_for_host, и need_for_gc равны 1, то это значит, что данный блок нужен и хосту, исборщику мусора. Если у элемента оба поля и need_for_host, и need_for_gc равны 0, то это значит, что данный блок является свободным.

Когда декодеру поступает для декодирования новый сектор, он просит у модуля управления секторным кэш новый блок для сохранения данных и сообщает ему, кому нужен этот сектор. В ответ на это модуль управления секторным кэш, ориентируясь на поля need_for_host и need_for_gc, находит первый свободный блок и проставляет в соответствии с полученной информацией поля need_for_host и need_for_gc. Декодер начинает декодировать сектор; в первых четырех байтах декодированного слова находит логический адрес данного сектора и сообщает его модулю управления секторным кэш. Модуль управления секторным кэш записывает этот логический адрес в поле lsa элемента данного блока. В результате элемент, соответствующий данному блоку, оказывается полностью заполненным. В момент, когда сектор полностью передан хосту поле need_for_host элемента, соответствующего блока, устанавливается в 0. В момент, когда сектор, предназначенный для перезаписи на ТНИ, полностью передан ТНИ поле need_for_gc элемента, соответствующего блока, устанавливается в 0.

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

При инициализации модуля управления секторным кэш задаются следующие параметры:

1. lsa_width – ширина двоичного представления максимального значения LSA;

2. capacity – максимальное количество секторов, которое одновременно может содержать кэш.

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

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

название год авторы номер документа
Способ записи страничных данных в кэш-память 2020
  • Кравцов Алексей Юрьевич
RU2750132C1
Декодер контроллера твердотельного накопителя информации 2021
  • Кравцов Алексей Юрьевич
RU2769562C1
Способ сборки мусора в твердотельном накопителе информации 2021
  • Кравцов Алексей Юрьевич
RU2759503C1
КОНТРОЛЛЕР МАССИВА, ТВЕРДОТЕЛЬНЫЙ ДИСК И СПОСОБ ДЛЯ УПРАВЛЕНИЯ ТВЕРДОТЕЛЬНЫМ ДИСКОМ ДЛЯ ЗАПИСИ ДАННЫХ 2015
  • Цзян Пэйцзюнь
  • Сюэ Цян
  • Хуан Кэцзи
RU2661280C2
Накопитель магнитный с разделёнными областями 2020
  • Носков Александр Георгиевич
RU2757659C1
Аппаратная реализация механизма использования одной памяти несколькими устройствами 2020
  • Кравцов Алексей Юрьевич
RU2749911C1
ОТОБРАЖЕНИЕ ВСТРОЕННОГО АДРЕСА ЕСС 2014
  • Фогт Пит Д.
RU2644529C2
Способ инкрементального сохранения 2020
  • Кравцов Алексей Юрьевич
RU2754601C1
Способ шифрования данных 2020
  • Кравцов Алексей Юрьевич
RU2759862C1
ОПЕРАТИВНОЕ РЕГУЛИРОВАНИЕ ПРОИЗВОДИТЕЛЬНОСТИ ТВЕРДОТЕЛЬНЫХ ЗАПОМИНАЮЩИХ УСТРОЙСТВ 2014
  • Регленд Дэниэль Дж.
  • Салески Кристофер Е.
  • Мэнголд Ричард П.
  • И Чунь Л.
  • Алекал Пранава Й.
  • Сатерн Кевин
RU2624563C2

Реферат патента 2021 года Способ записи секторных данных в кэш-память

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

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

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

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

Устройство для закрепления лыж на раме мотоциклов и велосипедов взамен переднего колеса 1924
  • Шапошников Н.П.
SU2015A1
Способ защиты переносных электрических установок от опасностей, связанных с заземлением одной из фаз 1924
  • Подольский Л.П.
SU2014A1
Токарный резец 1924
  • Г. Клопшток
SU2016A1
Способ приготовления лака 1924
  • Петров Г.С.
SU2011A1
ИСПОЛЬЗОВАНИЕ ВНЕШНИХ УСТРОЙСТВ ПАМЯТИ ДЛЯ УЛУЧШЕНИЯ ПРОИЗВОДИТЕЛЬНОСТИ СИСТЕМЫ 2005
  • Киршенбаум Александр
  • Эрган Сенк
  • Фортин Майкл Р.
  • Рейнауэр Роберт Л.
RU2395115C2

RU 2 752 782 C1

Авторы

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

Даты

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

2020-12-18Подача