Аппаратная реализация механизма использования одной памяти несколькими устройствами Российский патент 2021 года по МПК H03M1/00 G06F12/00 

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

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

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

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

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

Контроллеру устройства хранения данных поступают от внешнего устройства (хост) блоки данных (сектора) по шине шириной 64 бита.

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

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

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

Для обеспечения бесконфликтной работы этих модулей с одной блочной памятью используется следующий механизм разделения времени. Для обеспечения работы с четырьмя типами устройств все время работы памяти делиться на 32-тактовые циклы. Такты 0, 4, 8, 12, 16, 20, 24, 28 выделяются шифратору, в эти такты шифратор может обращаться к памяти с запросами на запись зашифрованных данных. Такты 3, 7, 11, 15, 19, 23, 27, 31 также выделяются дешифратору, в эти такты дешифратор может обращаться к памяти с запросами на чтение зашифрованных данных для их последующей расшифровки. Такты 1, 5, 9, 13, 17, 21, 25, 29 выделяются блоку декодеров (каждый декодер из блока может обратиться к памяти один раз за цикл), причем декодеры обращаются к памяти только с запросами на запись. Такты 2, 6, 10, 14, 18, 22, 26, 30 выделяются блоку кодеров (аналогично, каждый кодер из блока может обратиться к памяти один раз за цикл), причем кодеры обращаются к памяти с запросами на чтение.

Поскольку шифратор может обращаться к памяти каждый четвертый такт, то за четыре такта в нем накапливается 4*64 = 256 бит данных, которые затем за один такт должны быть записаны в память. Таким образом, согласно этим расчетам ширина блочной памяти должна быть не менее 64 * 4 = 256 бит. Каждый кодер (или декодер) может обратиться к памяти не чаще одного раза в 32 такта, поэтому он должен обеспечить накопление данных за 32 такта и последующий обмен накопленным за один такт. Поскольку ширина шины кодеров и декодеров равна 8 бит, то ширина блочной памяти должна быть 8 * 32 = 256 бит. Таким образом, ширина блочной памяти контроллера равна256 двоичным разрядам.

При этом, блоки декодеров и шифратор обращаются к блочной памяти с запросами на запись, тогда как блок кодеров и дешифратор обращаются к блочной памяти с запросами на чтение.

При записи в блочную память между устройствами, осуществляющими запись данных, т.е. декодером или шифратором, и памятью устанавливается специальный модуль, являющийся накопителем, содержащий 2 регистра шириной 256 бит. В первом регистре накапливается информация (по 64 бита за такт от шифратора, и по 8 бит за такт от декодеров), и при накоплении в нём 256 бит информации, они перебрасываются во второй регистр, из которого в отведенный такт, информация записывается в блочную память, причем от шифратора информация в первый регистр поступает порциями в 64 бита, а от декодеров – порциями в 8 бит, а накопление идет соответственно 4 и 32 такта.. В блоке из 8 декодеров декодеров таких накопителей устанавливают 8, по одному на каждый декодер.

Аналогичным образом при чтении из блочной памяти между памятью и устройством, которому предназначены данные, т.е. дешифратором или кодером, необходимо устанавливается специальный модуль, который являющийся обратным накопителем, представляющим собой очередь с широким входом (в 256 бит) и узким выходом (64 бита для дешифратора и 8 бит для кодеров). Извлечение из очереди производится дешифратором или кодерами по мере необходимости, а загрузка в очередь происходит в соответствующий устройству такт, если в очереди достаточно места для 256 бит данных. В блоке из 8 кодеров содержится 8 обратных накопителей, по одному на каждый кодер.

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

название год авторы номер документа
Декодер контроллера твердотельного накопителя информации 2021
  • Кравцов Алексей Юрьевич
RU2769562C1
Способ записи страничных данных в кэш-память 2020
  • Кравцов Алексей Юрьевич
RU2750132C1
Способ записи секторных данных в кэш-память 2020
  • Кравцов Алексей Юрьевич
RU2752782C1
КОНТРОЛЛЕР 1991
  • Россинский В.П.
RU2012043C1
Способ декодирования данных на основе LDPC кода 2020
  • Кравцов Алексей Юрьевич
RU2747050C1
Запоминающее устройство на цилиндрических магнитных доменах 1987
  • Блюменау Израиль Меерович
  • Иванов-Лошканов Валерий Сергеевич
  • Тащиян Виталий Вагранович
SU1451768A1
СИСТЕМА ДЛЯ ОБРАБОТКИ КОМПОНЕНТ ПРОГРАММ И СХЕМА УПРАВЛЕНИЯ ПАМЯТЬЮ ДЛЯ ТРАНСПОРТНОГО ПРОЦЕССОРА 1995
  • Бриджуотер Кевин Эллиотт
  • Дайсс Майкл Скотт
RU2145728C1
Устройство для сопряжения ЭВМ с каналом связи 1988
  • Ельцов Владимир Николаевич
  • Кузьмина Наталья Васильевна
SU1656544A1
Устройство для трансляции логических адресов в адреса памяти на магнитных дисках 1981
  • Заблоцкий Владимир Николаевич
  • Цесин Борис Вульфович
SU966695A1
Устройство приоритета 1982
  • Булавенко Олег Николаевич
SU1108450A1

Реферат патента 2021 года Аппаратная реализация механизма использования одной памяти несколькими устройствами

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

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

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

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

US 8108625 B1, 31.01.2012
Способ и приспособление для нагревания хлебопекарных камер 1923
  • Иссерлис И.Л.
SU2003A1
Станок для придания концам круглых радиаторных трубок шестигранного сечения 1924
  • Гаркин В.А.
SU2019A1
Колосоуборка 1923
  • Беляков И.Д.
SU2009A1
УСТРОЙСТВО ДЛЯ ОПТИМИЗАЦИИ ОРГАНИЗАЦИИ ДОСТУПА К ОБЩЕЙ ШИНЕ ВО ВРЕМЯ ПЕРЕДАЧИ ДАННЫХ С ПРЯМЫМ ДОСТУПОМ К ПАМЯТИ 1991
  • Джордж Богослов Маренин[Us]
RU2110838C1

RU 2 749 911 C1

Авторы

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

Даты

2021-06-21Публикация

2020-12-25Подача