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



Владельцы патента RU 2752782:

АКЦИОНЕРНОЕ ОБЩЕСТВО "КРАФТВЭЙ КОРПОРЭЙШН ПЛС" (RU)

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

 

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

Из уровня техники известен способ управления памятью в вычислительном устройстве, описанный в патенте 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 – максимальное количество секторов, которое одновременно может содержать кэш.

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

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



 

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

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

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

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

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

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

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

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

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

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

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