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

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

 

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

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



 

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

Изобретение относится к области измерительной техники и касается энкодера. Энкодер содержит растр с последовательностью примыкающих друг к другу участков размера h, называемых шагами кодирования и содержащих доступные для считывания устройствами считывания коды Грея, блок считывающих устройств с номерами 0, …1, …, n-1, имеющих фиксированное относительно других считывающих устройств положение и логическое устройство.

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

Группа изобретений относится к области цифроаналогового преобразования, в частности к реализациям высокоскоростного и маломощного цифроаналогового преобразователя с повышением частоты.

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

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

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

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

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

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

Заявленное решение относится к устройствам цифро-аналогового преобразования. Технический результат - уменьшение потребляемой мощности.

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