Способ организации прямого доступа в память при передаче информации между физическими объектами

Изобретение относится к вычислительной технике. Технический результат заключается в сокращении затрат процессорного времени на многочисленные копирования данных из памяти в память. Способ организации прямого доступа в память при передаче информации между физическими объектами, в котором для передачи данных в формате PCI-Express пакетов между модулем-источником и модулем-приемником использованы аппаратные блоки прямого доступа в память, выполненные с возможностью динамического управления цепочками заданий на отправку и прием данных, входящие в состав HS-контроллеров, выполненных с возможностью обеспечить эффективный обмен данными между памятью модулей при минимальном участии процессоров с аппаратным ограничением пропускной способности канала передачи данных и предоставлением гарантированных временных интервалов доступа к разделяемым ресурсам процессорной шины на базе использования стандарта VI (виртуальных интерфейсов) и стандартной шины PCI-Express и подключения HS-контроллера, при этом в рамках стандарта VI обмен данных происходит между парой процессов в различных процессорах по принципу «точка-точка», причем для каждого из процессов дуплексный канал обмена представляет собой виртуальный интерфейс, который состоит из пары рабочих очередей: очередь на отправку и очередь на прием. 2 ил.

 

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

Известно (RU Патент 2110838, опубл. 10.05.1998) устройство для оптимизации организации доступа к общей шине во время передачи данных с прямым доступом к памяти, содержащее центральный процессор, блок оперативной памяти, не менее двух внешних каналов связи, входы-выходы которых подключены к системной шине устройства, связанной с выходом генератора. Каждый из внешних каналов связи содержит первый инвертор, вход которого связан с выходом генератора через системную шину, второй инвертор, вход которого соединен с выходом первого инвертора, выход второго инвертора соединен с первым входом первого элемента И, второй вход которого соединен с выходом генератора через системную шину, выход первого элемента И соединен с входом первого элемента ИЛИ - НЕ, выход которого соединен с входом первого буферного драйвера и первым входом второго элемента И, второй вход которого соединен с выходом первого инвертора, выход второго элемента И соединен с первым входом второго элемента ИЛИ - НЕ, выход которого соединен с входом второго буферного драйвера.

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

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

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

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

Для достижения указанного технического результата предложено использовать разработанный способ организации прямого доступа в память при передаче информации между физическими объектами. При реализации разработанного способа для передачи данных в формате PCI-Express пакетов между модулем-источником и модулем-приемником использованы аппаратные блоки прямого доступа в память, выполненные с возможностью динамического управления цепочками заданий на отправку и прием данных, входящие в состав HS-контроллеров, выполненных с возможностью обеспечить эффективный обмен данными между памятью модулей при минимальном участии процессоров с аппаратным ограничением пропускной способности канала передачи данных и предоставлением гарантированных временных интервалов доступа к разделяемым ресурсам процессорной шины на базе использования стандарта VI (виртуальных интерфейсов) и стандартной шины PCI-Express и подключения HS-контроллера, при этом в рамках стандарта VI обмен данных происходит между парой процессов в различных процессорах по принципу «точка-точка», причем для каждого из процессов дуплексный канал обмена представляет собой виртуальный интерфейс, который с программной точки зрения состоит из пары рабочих очередей, одна из которых представляет собой очередь заданий на отправку, а другая на прием, при этом стандарт VI представляет собой стандарт виртуальных интерфейсов, разработанный фирмами Intel, Compaq, Microsoft, а используемый HS-контроллер выполнен как проект, реализованный на ПЛИС.

При реализации прикладного программного средства HS-шина была предназначена для передачи данных между модулями (из памяти в память) с минимальным участием процессоров в этой деятельности. Задание на пересылку для контроллера формировалось процессором модуля-источника в памяти; передача адреса задания контроллеру инициировало начало передачи. О завершении передачи процессоры модуля-источника и модуля-приемника могли быть уведомлены контроллером. Примерно эта же идея лежит в основе разработанного фирмами Intel, Compaq, Microsoft стандарта Виртуальных Интерфейсов (VI). Мотивацией для его создания было стремление сократить затраты процессорного времени на многочисленные копирования данных из памяти в память, которые имели место, например, в традиционных сетевых протоколах (а заодно и повысить эффективность использования пропускной способности сети).

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

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

В рамках стандарта VI обмен данных производится между парой процессов в различных процессорах по принципу «точка-точка». Каждому из процессов дуплексный канал обмена представляет собой виртуальный интерфейс, который с программной точки зрения представляет собой пару рабочих очередей, т.н. дескрипторов, которые в дальнейшем будут представлены VI-заданиями. Одна из очередей представляет собой очередь заданий на отправку, соответственно другая на прием.

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

В рамках стандарта VI имеется 3 модели обмена данными:

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

Задания на прием/передачу для этой модели на обоих концах канала обмена имеют сходную структуру.

2А. Модель прямого удаленного доступа к памяти (RDMA - Remote Direct Memory Access) по записи.

2B. Модель прямого удаленного доступа к памяти по чтению.

Стандарт VI разрешает не реализовывать модель 2В и эта модель в VI для «Соло» реализовываться не будет.

Согласно варианту стандарта, принадлежащего Intel, VI-задание имеет два варианта формата:

каждый из которых представляет собой некоторый заголовок с присоединенным массивом ссылок на буфера данных (плюс длины буферов и т.д.). Массивы имеют переменную длину.

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

Одному VI-заданию ставится в соответствие целая цепочка (т.е. однонаправленный список) аппаратных заданий - т.н. ТСВ (от Task Control Block) - по одному на каждый Сегмент адреса или на Сегмент данных. Последний ТСВ цепочки маркируется признаком ЕОС=1 (End Of Chain). В этот ТСВ упрятывается информация, относящаяся к VI-заданию в целом.

Очередь VI-заданий на прием для одного VI-интерфейса преобразуется в очередь ТСВ, провязанную из таких цепочек ТСВ; все очереди VI-заданий на передачу (т.е. для всех VI-интерфейсов) провязываются из таких цепочек ТСВ в 2 общие очереди ТСВ (по числу используемых приоритетов). Провязывание осуществляется имеющимися в каждом ТСВ указателями Next_TCB (поле NEXT_TCB_ADDRESS) на следующий ТСВ. Признаком конца очереди ТСВ служит нулевое значение такого указателя.

На фиг. 1 проиллюстрирована очередь ТСВ на прием (более простая по сравнению с очередью на отправку - за счет отсутствия смеси VI-заданий из разных VI-интерфейсов и отсутствия ТСВ для RDMA). Пунктирными стрелками показано соответствие между сегментами отдельных VI-заданий и ТСВ. Сплошными прямыми стрелками показаны ссылки из ТСВ на исходные VI-задания. Биты ЕОС - End Of Chain маркируют концы цепочек, соответствующих одному VI-заданию.

Рабочие очереди ТСВ, как и VI, располагаются в памяти.

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

На каждый процессор МОСа (Модуль обработки сигнала) резервируется:

- 256 очередей заданий ТСВ для приема (Receive);

- 2 очереди ТСВ для передачи (одна высокоприоритетная, другая низкоприоритетная);

- 1 очередь завершения.

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

I. Он должен маркировать посылку последнего пакета данных, относящегося к последнему ТСВ цепочки как таковой.

II. Он должен маркировать отсылаемые данные, соответствующие сегменту адреса VI-задания типа RDMA для специальной обработки этих данных контроллером на удаленном конце.

Требование I обеспечивает поддержку синхронизации передачи и приема VI-заданий типа Send/Recv в соответствии с правилом стандарта VI: «передача, выполняющаяся по одному VI-заданию типа Send, должна быть принята по единственному VI-заданию типа Recv».

Требование II обеспечивает предполагаемую стандартом VI возможность осуществления передач типа RDMA Write без участия в пересылке программного агента на удаленном конце.

Адреса головных ТСВ очередей сообщаются контроллеру путем записи адреса в некоторый, собственный для каждой очереди регистр CURRENT_TCB_ADDRESS. Контроллер копирует [частично] эти ТСВ в собственную память (т.н. ТСВ-регистры) и исполняет.

Исполнение ТСВ заключается:

- для очередей на отправку - в передаче данных, адресованных в ТСВ, по каналам связи;

- для очередей на прием - в размещении прибывших данных по адресам, указанным в ТСВ.

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

Предполагается, что контроллер имеет единственный передатчик на кластер и обслуживает ТСВ на отправку по следующей правилу - пока не обслужен очередной ТСВ, не предпринимается попытка обслуживания другого.

Очередность обслуживания ТСВ устанавливается следующая:

1) если непуста очередь с приоритетом 0 хотя бы у одного из двух процессоров, то поочередно обслуживаются именно эти очереди до их исчерпания;

2) если пусты очереди с приоритетом 0 у обоих процессоров, то поочередно обслуживаются эти очереди.

Завершая исполнение цепочки, контроллер помещает уведомление о завершении этой цепочки в аппаратную очередь завершения (уведомления о завершении цепочек на отправку и на прием помещаются в эту очередь вперемешку).

Предполагается, что программы с обоих концов канала обмена будут заняты постоянной «подкачкой» новых цепочек ТСВ-заданий. В этой, на первый взгляд, чисто программной деятельности должен участвовать и контроллер.

Новая цепочка ТСВ-заданий, отвечающая одному VI-заданию, должна быть полностью подготовлена в памяти программным образом заблаговременно (подсоединение к очереди отдельных ТСВ не допускается!). Далее корректировкой нулевого указателя в хвостовом ТСВ очереди производится программное подсоединение цепочки к очереди. Контроллер извещается об изменении состояния очереди «дверным звонком» - записью в особый регистр DOORBELL адреса бывшего хвостового ТСВ, у которого нулевой указатель на следующий ТСВ был откорректирован.

Как уже упоминалось, имеется особая модель обмена RDMA Write, когда с приемной стороны программное участие отсутствует вовсе. Для выполнения такого обмена в очередь на отправку ставится цепочка, головным ТСВ которой является ТСВ особого типа. Этот ТСВ указывает на пакет, который после передачи по каналам связи послужит в качестве ТСВ на приемном конце. (Этим ТСВ контроллер просто вытеснит из ТСВ-регистров текущий ТСВ на прием, который сам же контроллер туда поместил перед этим, считав его из очереди в памяти). В соответствии с внеплановым ТСВ, пришедшим по каналу связи, и будут размещаться идущие вслед за ним данные, отосланные в соответствии с заданиями остальных ТСВ цепочки на отправку.

Управление разрешением прерываний производится оперативно установкой/снятием бита маски для логического номера VI-очереди. Этот логический номер - VI_IDX «зашивается» в ТСВ. Прерывание может происходить только по границам цепочек.

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

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

1) динамическое подсоединение цепочек к очередям;

2) исключение уже обслуженных ТСВ из очередей на основе очереди завершения (разгрузке очередей);

3) поддержка состояния VI-очередей;

4) установка обработчиков завершения обслуживания VI-заданий/цепочек ТСВ.

Пункты1, 2, 4 осуществляются с участием контроллера.

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

Способ организации прямого доступа в память при передаче информации между физическими объектами, характеризуемый тем, что для передачи данных в формате PCI-Express пакетов между модулем-источником и модулем-приемником использованы аппаратные блоки прямого доступа в память, выполненные с возможностью динамического управления цепочками заданий на отправку и прием данных, входящие в состав HS-контроллеров, выполненных с возможностью обеспечить эффективный обмен данными между памятью модулей при минимальном участии процессоров с аппаратным ограничением пропускной способности канала передачи данных и предоставлением гарантированных временных интервалов доступа к разделяемым ресурсам процессорной шины на базе использования стандарта виртуальных интерфейсов (VI) и стандартной шины PCI-Express и подключения HS-контроллера, при этом в рамках стандарта VI обмен данных происходит между парой процессов в различных процессорах по принципу «точка-точка», причем для каждого из процессов дуплексный канал обмена представляет собой виртуальный интерфейс, который с программной точки зрения состоит из пары рабочих очередей, одна из которых представляет собой очередь заданий на отправку, а другая - на прием, при этом стандарт VI представляет собой стандарт виртуальных интерфейсов, разработанный фирмами Intel, Compaq, Microsoft, а используемый HS-контроллер выполнен как проект, реализованный на ПЛИС.



 

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

Группа изобретений относится к средствам обмена данными через непрозрачный мост (NTB) шины межсоединения периферийных компонентов типа экспресс (PCIe). Технический результат - создание механизма для обхода R-LUT NTB PCIe (таблицы поиска ID запросчика), что позволяет создавать крупномасштабные пулы ресурсов процессора, за счет обмена данными, в котором используются исключительно отложенные сообщения.

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

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

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

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

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

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

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

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

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

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

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

Группа изобретений относится к системам связи и характеризует технологии управления авторизацией виртуальной очереди вывода. Техническим результатом является осуществление шейпинга трафика с агрегацией множества пользовательских сервисов согласно информации о состоянии шейпинга. Предложен способ управления авторизацией виртуальной очереди вывода (VOQ). Способ содержит этап, на котором, согласно алгоритму планирования в планировщике блока планирования, непосредственно связанного с физическим портом, и согласно весу и приоритету блока планирования на следующем уровне планирования относительно текущего уровня планирования, определяют индекс блока планирования на следующем уровне планирования относительно текущего уровня планирования. Далее, осуществляют получение информации о списке связей планирования для каждого планировщика в блоке планирования на следующем уровне планирования относительно текущего уровня планирования согласно индексу блока планирования на следующем уровне планирования относительно текущего уровня планирования и определяют индекс авторизуемого планировщика, соответствующего классу обслуживания, который совпадает с текущей авторизацией в блоке планирования на следующем уровне планирования, согласно информации о списке связей планирования. 3 н. и 10 з.п. ф-лы, 5 ил.

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