Изобретение относится к области немеханических запоминающих устройств, предназначено для повышения скорости работы запоминающих устройств на основе микросхем памяти (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 обратных накопителей, по одному на каждый кодер.
название | год | авторы | номер документа |
---|---|---|---|
Декодер контроллера твердотельного накопителя информации | 2021 |
|
RU2769562C1 |
Способ записи страничных данных в кэш-память | 2020 |
|
RU2750132C1 |
Способ записи секторных данных в кэш-память | 2020 |
|
RU2752782C1 |
КОНТРОЛЛЕР | 1991 |
|
RU2012043C1 |
Способ декодирования данных на основе LDPC кода | 2020 |
|
RU2747050C1 |
Запоминающее устройство на цилиндрических магнитных доменах | 1987 |
|
SU1451768A1 |
СИСТЕМА ДЛЯ ОБРАБОТКИ КОМПОНЕНТ ПРОГРАММ И СХЕМА УПРАВЛЕНИЯ ПАМЯТЬЮ ДЛЯ ТРАНСПОРТНОГО ПРОЦЕССОРА | 1995 |
|
RU2145728C1 |
Устройство для сопряжения ЭВМ с каналом связи | 1988 |
|
SU1656544A1 |
Устройство для трансляции логических адресов в адреса памяти на магнитных дисках | 1981 |
|
SU966695A1 |
Устройство приоритета | 1982 |
|
SU1108450A1 |
Изобретение относится к области запоминающих устройств. Технический результат заключается в обеспечении возможности бесконфликтного использования одной памяти несколькими аппаратными модулями. Такой результат достигается тем, что время использования памяти разделяется между разными устройствами-потребителями в пропорциях, соответствующих производительности устройств, при этом ширина блочной памяти берется достаточной для того, чтобы устройства-потребители памяти могли бесперебойно функционировать с полученной информацией в период отсутствия доступа к памяти, между устройствами, осуществляющими запись, и памятью устанавливают накопители, хранящие информацию для записи, представляющие собой два регистра, по ширине равных ширине памяти, в одном из которых накапливается информация от устройств, при заполнении передаваемая во второй регистр, из которого, в отведенный временной такт, информация записывается в блочную память, а между памятью и устройствами, осуществляющими чтение из памяти, устанавливают обратные накопители, представляющие собой очередь с входом, по ширине равным ширине памяти, и выходом, по ширине равным ширине шины устройства, извлечение из которой производится устройством по мере необходимости, а загрузка в очередь происходит в соответствующий устройству такт, если в очереди достаточно места.
Способ аппаратной реализации механизма использования одной памяти несколькими устройствами, характеризующийся тем, что время использования памяти разделяется между разными устройствами-потребителями в пропорциях, соответствующих производительности устройств, при этом ширина блочной памяти берется достаточной для того, чтобы устройства-потребители памяти могли бесперебойно функционировать с полученной информацией в период отсутствия доступа к памяти, отличающийся тем, что между устройствами, осуществляющими запись, и памятью устанавливают накопители, хранящие информацию для записи, представляющие собой два регистра, по ширине равных ширине памяти, в одном из которых накапливается информация от устройств, при заполнении передаваемая во второй регистр, из которого, в отведенный временной такт, информация записывается в блочную память, а между памятью и устройствами, осуществляющими чтение из памяти, устанавливают обратные накопители, представляющие собой очередь с входом, по ширине равным ширине памяти, и выходом, по ширине равным ширине шины устройства, извлечение из которой производится устройством по мере необходимости, а загрузка в очередь происходит в соответствующий устройству такт, если в очереди достаточно места.
US 8108625 B1, 31.01.2012 | |||
Способ и приспособление для нагревания хлебопекарных камер | 1923 |
|
SU2003A1 |
Станок для придания концам круглых радиаторных трубок шестигранного сечения | 1924 |
|
SU2019A1 |
Колосоуборка | 1923 |
|
SU2009A1 |
УСТРОЙСТВО ДЛЯ ОПТИМИЗАЦИИ ОРГАНИЗАЦИИ ДОСТУПА К ОБЩЕЙ ШИНЕ ВО ВРЕМЯ ПЕРЕДАЧИ ДАННЫХ С ПРЯМЫМ ДОСТУПОМ К ПАМЯТИ | 1991 |
|
RU2110838C1 |
Авторы
Даты
2021-06-21—Публикация
2020-12-25—Подача