RU2801737C1 - Method and device for organizing memory of network equipment for managing its queues - Google Patents

Method and device for organizing memory of network equipment for managing its queues Download PDF

Info

Publication number
RU2801737C1
RU2801737C1 RU2022124573A RU2022124573A RU2801737C1 RU 2801737 C1 RU2801737 C1 RU 2801737C1 RU 2022124573 A RU2022124573 A RU 2022124573A RU 2022124573 A RU2022124573 A RU 2022124573A RU 2801737 C1 RU2801737 C1 RU 2801737C1
Authority
RU
Russia
Prior art keywords
queue
segment
pdu
network equipment
buffer
Prior art date
Application number
RU2022124573A
Other languages
Russian (ru)
Inventor
Сергей Викторович Козлов
Роман Борисович Трегубов
Сергей Юрьевич Андреев
Станислав Юрьевич Тутов
Антон Станиславович Федосов
Илья Петрович Латышев
Original Assignee
Федеральное государственное казенное военное образовательное учреждение высшего образования Академия Федеральной службы охраны Российской Федерации
Filing date
Publication date
Application filed by Федеральное государственное казенное военное образовательное учреждение высшего образования Академия Федеральной службы охраны Российской Федерации filed Critical Федеральное государственное казенное военное образовательное учреждение высшего образования Академия Федеральной службы охраны Российской Федерации
Application granted granted Critical
Publication of RU2801737C1 publication Critical patent/RU2801737C1/en

Links

Images

Abstract

FIELD: computer network equipment.
SUBSTANCE: invention relates to means for managing a router's queue buffer, in which telecommunications traffic is classified. This result is achieved by logically dividing the network equipment memory area into a pointer segment, a queue segment, a buffer segment, logically dividing queues of different priorities and implementing them as lists of protocol data units.
EFFECT: reduced average delay time of protocol data units of real-time traffic in network equipment when placing protocol data units in the memory of network equipment, searching for and retrieving protocol data units from the memory of network equipment.
3 cl, 14 dwg

Description

Область техникиTechnical field

Настоящее изобретение относится к области телекоммуникационных сетей связи, в частности к способам управления буфером очереди маршрутизатора, в котором выполняется классификация телекоммуникационного трафика.The present invention relates to the field of telecommunications networks, in particular to methods for managing the queue buffer of a router in which the classification of telecommunications traffic is performed.

Уровень техникиState of the art

Для удобства описания способа и устройства организации памяти сетевого оборудования для управления его очередями введем ряд определений.For the convenience of describing the method and device for organizing the memory of network equipment for managing its queues, we introduce a number of definitions.

Дескриптор – лексическая единица, выраженная информативным словом (вербально) или кодом и являющаяся именем класса синонимичных или близких по смыслу ключевых слов. Дескрипторы используются для координатного индексирования документов и информационных запросов с целью последующего поиска (см. ГОСТ 7.74-96).A descriptor is a lexical unit expressed by an informative word (verbally) or code and is the name of a class of synonymous or similar keywords. Descriptors are used for coordinate indexing of documents and information queries for the purpose of subsequent search (see GOST 7.74-96).

Протокольный блок данных (ПБД) – блок данных, передаваемый между логическими объектами одного и того же уровня (см. ГОСТ 24402-88).A protocol data unit (PDU) is a data unit transmitted between logical objects of the same level (see GOST 24402-88).

Дисциплина обслуживания – правило, руководствуясь которым обслуживающее устройство выбирает из очереди пакеты или сообщения на обслуживание (см. Л.М. Невдяев. Телекоммуникационные технологии. Англо-русский толковый словарь-справочник. Под редакцией Ю.М. Горностаева. Москва, 2002).Service discipline - a rule, guided by which the service device selects packets or messages from the queue for service (see L.M. Nevdyaev. Telecommunication technologies. English-Russian explanatory dictionary-reference book. Edited by Yu.M. Gornostaev. Moscow, 2002).

В настоящее время в телекоммуникационных сетях все более востребованными становятся услуги реального времени, такие как голосовая телефония, видеотелефония, видеоконференцсвязь, видеонаблюдение и другие. Причем при использовании приложений реального времени требуется гарантированно обеспечить заданный уровень качества обслуживания. Обеспечение высоких требований качества обслуживания возможно только в том случае, если сетевое оборудование (коммутаторы и маршрутизаторы) будут эффективно выполнять задачи по продвижению трафика в сети. При этом особенно важно, чтобы задержка ПБД в сетевом оборудовании, обусловленная процессами буферизации, классификации и обслуживания, была минимальна. Задержка обслуживания ПБД в меньшей степени зависит от структуры и свойств сетевого оборудования. Чаще всего она возникает из-за занятости выходного порта и может быть минимизирована организационными мерами (повышением пропускной способности каналов, выбором альтернативных маршрутов при возникновении перегрузок, перераспределением значений приоритетов потоков трафика). Задержка буферизации и классификации ПБД в сетевом оборудовании обусловлена свойствами элементов сетевого оборудования. Она возникает из-за того, что маршрутизатору требуется время для размещения каждого ПБД в своей внутренней памяти. Перед тем, как разместить очередной ПБД в своей памяти, сетевому оборудованию необходимо очистить память, которая была занята предыдущим обслуженным ПБД, убедиться в том, что объем памяти, необходимый для буферизации следующего ПБД, может быть выделен и поместить очередной ПБД в свою внутреннюю память. Для осуществления классификации ПБД сетевому оборудованию необходимо прочитать данные из соответствующего заголовка ПБД, что, в свою очередь, также требует временных затрат. В связи с повышением требований по обеспечению качества обслуживания и увеличением объемов трафика в телекоммуникационных сетях, необходимо постоянно совершенствовать алгоритмы и структуры данных, применяемые в сетевом оборудовании при обработке ПБД. Если сетевое оборудование не может справится с нагрузкой, и размер очереди оказывается большой, то происходит сброс ПБД, который существенно снижает качество обслуживания.Currently, real-time services such as voice telephony, video telephony, video conferencing, video surveillance and others are becoming more and more in demand in telecommunication networks. Moreover, when using real-time applications, it is required to ensure a given level of quality of service. Ensuring high quality of service requirements is possible only if the network equipment (switches and routers) will effectively perform the tasks of promoting traffic in the network. It is especially important that the PDU delay in the network equipment due to buffering, classification and maintenance processes is minimal. The PDU service delay is less dependent on the structure and properties of the network equipment. Most often, it occurs due to the busyness of the output port and can be minimized by organizational measures (increasing the throughput of channels, choosing alternative routes in case of congestion, redistributing traffic flow priority values). The buffering and classification delay of PDUs in network equipment is due to the properties of the network equipment elements. It occurs because the router takes time to allocate each PDU to its internal memory. Before placing the next PDU in its memory, the network equipment needs to clear the memory that was occupied by the previous served PDU, make sure that the amount of memory required to buffer the next PDU can be allocated, and place the next PDU in its internal memory. To classify a PDU, the network equipment needs to read the data from the corresponding PDU header, which in turn is also time consuming. Due to the increasing requirements for ensuring the quality of service and the increase in traffic volumes in telecommunication networks, it is necessary to constantly improve the algorithms and data structures used in network equipment when processing PDU. If the network equipment cannot cope with the load, and the queue size is large, then the PDU is reset, which significantly reduces the quality of service.

Известны способ и система «Точное отслеживания использования памяти в многопроцессном вычислительном окружении» (патент US 10558365 B2 от 11.02.2020 г.), описывающие применение указателя используемой памяти в каждом процессе, запущенном в узле многопроцессной вычислительной компьютерной системы. There is a known method and system "Accurate tracking of memory usage in a multi-process computing environment" (patent US 10558365 B2 dated February 11, 2020), which describes the use of the used memory pointer in each process running in the node of a multi-process computing computer system.

Известны способ и система «Хранилища данных прямой памяти вне кучи, методы создания и/или управления хранилищами данных прямой памяти вне кучи, и/или системы, содержащие хранилища данных прямой памяти вне кучи» (патент US 9990132 B2 от 05.06.2018 г.), описывающие улучшенные методы управления памятью для компьютерных систем, использующие хранилища данных прямой памяти вне кучи, которые является легко масштабируемым и очень эффективным.There is a known method and system "Direct memory data stores outside the heap, methods for creating and/or managing direct memory data stores outside the heap, and/or systems containing direct memory data stores outside the heap" (patent US 9990132 B2 dated 05.06.2018) , describing improved memory management techniques for computer systems that use non-heap direct memory data stores that are highly scalable and highly efficient.

Известен способ «Организация сетевого процессорного устройства» (патент RU 2755987 С1 от 08.10.2020 г.), заключающийся в обеспечении сохранения разметки произвольных сетевых транспортных протоколов без снижения значения пропускной способности сетевого процессорного устройства.There is a known method "Organization of a network processor device" (patent RU 2755987 C1 dated 10/08/2020), which consists in maintaining the markup of arbitrary network transport protocols without reducing the throughput of the network processor device.

Наиболее близким по технической сущности к заявляемому способу и выбранным в качестве прототипа является «Параллельная очередь с приоритетами, использующая параллельную кучу в многоядерных процессорах для ускорения приложений, базирующихся на приоритетных очередях» (патент CA 2895848 от 08.01.2019 г.), заключающийся в том, что для реализации параллельной приоритетной очереди на одном или более многоядерных процессорах и/или мультипроцессорах, таких как графические процессоры общего назначения, приоритетная очередь может быть реализована как параллельная куча и действовать как эффективная параллельная приоритетная очередь за счет использования нечисловых нерегулярных вычислений для планирования мультипроцессора, а также использования алгоритмов метода ветвей и границ и других различных алгоритмов поиска и/или других нерегулярных вычислений.The closest in technical essence to the claimed method and selected as a prototype is "A parallel priority queue using a parallel heap in multi-core processors to speed up applications based on priority queues" (CA patent 2895848 of 01/08/2019), which consists in that in order to implement a parallel priority queue on one or more multi-core processors and/or multiprocessors, such as general purpose GPUs, the priority queue can be implemented as a parallel heap and act as an efficient parallel priority queue by using non-numeric non-regular computations for multiprocessor scheduling, as well as the use of branch and bound algorithms and various other search algorithms and/or other irregular calculations.

Наиболее близким по технической сущности к заявляемому устройству и выбранным в качестве прототипа является «Параллельная очередь с приоритетами, использующая параллельную кучу в многоядерных процессорах для ускорения приложений, базирующихся на приоритетных очередях» (патент CA 2895848 от 08.01.2019 г.), заключающийся в том, что диспетчер параллельной кучи, располагается на центральном процессоре, менеджер параллельной кучи и очереди приоритетных приложений находятся на графическом процессоре. Диспетчер выступает в качестве посредника между менеджером параллельной кучи и очередью приоритетных приложений, конфигурируется для контроля выполнения системы параллельной кучи, как диспетчер очереди. Параллельные структуры данных кучи перемещаются в памяти устройства, и устанавливают функции ядра через интерфейсы приоритетной очереди и параллельные структуры данных кучи. Очередь приоритетных приложений уведомляет диспетчера, когда его выходные данные готовы. Затем, очередь приоритетных приложений конфигурируется так, чтобы приостановить свою работу для ожидания поступления новых данных самого высокого приоритета на вход, которые затем будут удалены из параллельной кучи. Для этого диспетчер посылает запрос менеджеру параллельной кучи, чтобы удалить новые данные из очереди приоритетных приложений в корне кучи, сортировать их и вернуть данные приложению очереди с минимальным приоритетом. Вышеупомянутый процесс будет итерационно повторяться, пока данные приложений приоритетных очередей не закончатся. The closest in technical essence to the claimed device and selected as a prototype is "A parallel priority queue using a parallel heap in multi-core processors to accelerate applications based on priority queues" (patent CA 2895848 dated 01/08/2019), which consists in the fact that the parallel heap manager resides on the CPU, the parallel heap manager and priority application queue reside on the GPU. The dispatcher acts as an intermediary between the parallel heap manager and the priority application queue, and is configured to control the execution of the parallel heap system as a queue manager. Parallel heap data structures move around in device memory, and establish kernel functions through priority queue interfaces and parallel heap data structures. The priority application queue notifies the dispatcher when its output is ready. Then, the priority application queue is configured to pause its operation to wait for new data of the highest priority to enter, which will then be removed from the parallel heap. To do this, the dispatcher sends a request to the parallel heap manager to remove new data from the priority application queue at the root of the heap, sort it, and return the data to the queue application with the lowest priority. The above process will iteratively repeat until the priority queue application data runs out.

Технической проблемой данных аналогов и прототипа является большое значение среднего времени задержки ПБД трафика реального времени в сетевом оборудовании при размещении ПБД в памяти сетевого оборудования, поиске и извлечении ПБД из памяти сетевого оборудования. Причиной, по которой это происходит является то, что память сетевого оборудования не разделена между очередями разного приоритета, а фрагмент памяти выделяется очередному ПБД, ставшему в очередь, линейно вне зависимости от приоритета ПБД. При этом, очередь ПБД каждого приоритета реализуется в виде связного списка. Поэтому при управлении очередями планировщику для принятия решения о том, какой ПБД отправить на обслуживание, необходимо регулярно анализировать весь список ПБД, находящихся в очереди, а, передав очередной ПБД на обслуживание, очистить область памяти, занятую обслуженным ПБД, и изменить связи общего списка ПБД. При большом размере очередей или большом количестве очередей данный способ неэффективен в связи наличием в нем большого количества операций чтения-записи и значительной фрагментацией памяти сетевого оборудования. The technical problem of these analogs and the prototype is the large value of the average delay time of PDU real-time traffic in network equipment when placing PDU in the memory of network equipment, searching and retrieving PDU from the memory of network equipment. The reason why this happens is that the memory of the network equipment is not divided between queues of different priority, and a memory fragment is allocated to the next PDU that has become queued linearly, regardless of the priority of the PDU. In this case, the PDU queue of each priority is implemented as a linked list. Therefore, when managing queues, in order to decide which PDU to send for servicing, the scheduler must regularly analyze the entire list of PDUs that are in the queue, and, having transferred the next PDU for servicing, clear the memory area occupied by the serviced PDU and change the links of the general list of PDUs . With a large queue size or a large number of queues, this method is inefficient due to the presence of a large number of read-write operations and significant fragmentation of network equipment memory.

Создание способа и устройства организации памяти сетевого оборудования для управления его очередями направлено на решение данной технической проблемы, которые уменьшают среднее время задержки ПБД трафика реального времени в сетевом оборудовании при размещении ПБД в памяти сетевого оборудования, поиске и извлечении ПБД из памяти сетевого оборудования за счет логического разделения области памяти сетевого оборудования на сегмент указателей, сегмент очередей, сегмент буфера и логическом разделении очередей различных приоритетов.The creation of a method and device for organizing the memory of network equipment for managing its queues is aimed at solving this technical problem, which reduce the average delay time of PDUs of real-time traffic in network equipment when placing PDUs in the memory of network equipment, searching for and extracting PDUs from the memory of network equipment due to logical dividing the memory area of network equipment into a pointer segment, a queue segment, a buffer segment and a logical separation of queues of different priorities.

В заявленном способе эта задача решается тем, что в способе организации памяти сетевого оборудования для управления его очередями, заключающемся в том, что логически разделяют область памяти сетевого оборудования на сегмент указателей, сегмент очередей, сегмент буфера, получают информацию о дисциплине обслуживания планировщика, устанавливают значение размера фрагмента сегмента буфера равным Lmax, принимают ПБД в порт сетевого оборудования, определяют приоритет ПБД и размер ПБД, проверяют, имеется ли в сегменте очередей очередь для ПБД данного приоритета, если очередь отсутствует, то добавляют очередь для ПБД данного приоритета в сегмент указателей и сегмент очередей, находят в сегменте указателей дескриптор очереди приоритета ПБД, а в сегменте очередей определяют адрес дескриптора последнего ПБД, находящегося в соответствующей очереди, определяют по битовой карте сегмента буфера очереди приоритета ПБД адреса свободных фрагментов сегмента буфера, передают ПБД из порта сетевого оборудования в сегмент буфера, записывают в битовые карты сегмента очередей и сегмента буфера данные о размещении ПБД в очереди, обслуживают ПБД и передают его из сегмента буфера в порт назначения сетевого оборудования, записывают в битовые карты сегмента очередей и сегмента буфера данные об удалении ПБД из очереди, повторяют процесс итерационно, пока в порт сетевого оборудования поступают ПБД.In the claimed method, this problem is solved by the fact that in the method of organizing network equipment memory for managing its queues, which consists in logically dividing the network equipment memory area into a pointer segment, a queue segment, a buffer segment, obtaining information about the scheduler service discipline, setting the value buffer segment fragment size equal to L max , receive PDUs to the network equipment port, determine PDU priority and PDU size, check whether there is a queue for PDUs of this priority in the queue segment, if there is no queue, then add the queue for PDUs of this priority to the segment of pointers and queue segment, find the PDU priority queue descriptor in the pointer segment, and in the queue segment determine the address of the descriptor of the last PDU located in the corresponding queue, determine the addresses of free fragments of the buffer segment from the bitmap of the PDU priority queue buffer segment, transfer the PDU from the network equipment port to the segment buffer, write to the bitmaps of the queue segment and the buffer segment data on the location of the PDU in the queue, service the PDU and transfer it from the buffer segment to the destination port of the network equipment, write to the bitmaps of the queue segment and the buffer segment data on the removal of the PDU from the queue, repeat the process iteratively until PDUs arrive at the port of the network equipment.

Согласно одному из частных вариантов реализации устанавливают класс обслуживания трафика в соответствии с заранее заданными правилами классификации.According to one of the private implementation options, the traffic class of service is set in accordance with predefined classification rules.

Согласно одному из частных вариантов реализации устанавливают размер фрагмента сегмента буфера равным фиксированной величине, выбранной из диапазона от L min до L max . According to one of the private implementation options, the buffer segment fragment size is set to a fixed value,selected from the range fromL min beforeL max .

Согласно одному из частных вариантов реализации устанавливают размер фрагмента сегмента буфера равным случайной величиной, выбранной из диапазона от L min до L max . According to one of the private implementation options, the size of the fragment of the buffer segment is set to a random value,selected from the range fromL min beforeL max .

Новая совокупность существенных признаков позволяет достичь указанного технического результата за счет логического разделения области памяти сетевого оборудования на сегмент указателей, сегмент очередей, сегмент буфера и логическом разделении очередей различных приоритетов.A new set of essential features allows to achieve the specified technical result due to the logical division of the memory area of network equipment into a pointer segment, a queue segment, a buffer segment and a logical division of queues of different priorities.

В заявленном устройстве эта техническая проблема решается тем, что устройство организации памяти сетевого оборудования для управления его очередями состоит из модуля управления памятью, выполненного с возможностью логического разделения области памяти сетевого оборудования на сегмент указателей, сегмент очередей, сегмент буфера, установления значения размера фрагмента сегмента буфера, приёма ПБД в порт сетевого оборудования, определения приоритета ПБД и его размера, добавления очереди для ПБД данного приоритета в сегмент указателей и сегмент очередей, передачи ПБД из порта сетевого оборудования в сегмент буфера, передачи ПБД из сегмента буфера в порт назначения сетевого оборудования, модуля управления указателями, выполненного с возможностью управления очередями ПБД, модуля управления очередями, выполненного с возможностью логической организации очередей и управления ими, модуля памяти сетевого оборудования, реализующего предоставление ресурсов для хранения данных, модуля управления буфером, выполненного с возможностью размещения всех ПБД, поступивших в одну из очередей, планировщика, выполненного с возможностью реализации заданной дисциплины обслуживания ПБД.In the claimed device, this technical problem is solved by the fact that the network equipment memory organization device for managing its queues consists of a memory management module configured to logically divide the network equipment memory area into a pointer segment, a queue segment, a buffer segment, setting the buffer segment fragment size value , receiving PDUs to a network equipment port, determining the PDU priority and its size, adding a queue for PDUs of this priority to the pointer segment and queue segment, transferring PDUs from the network equipment port to the buffer segment, transferring PDUs from the buffer segment to the destination port of the network equipment, module pointer management, configured to manage queues of PDUs, a queue management module, configured to logically organize and manage queues, a network equipment memory module that implements the provision of resources for data storage, a buffer management module, configured to accommodate all PDUs received in one from queues, a scheduler configured to implement a given PDU service discipline.

Благодаря новой совокупности существенных признаков за счет взаимодействия модуля управления памятью, модуля управления указателями, модуля управления очередями, модуля управления буфером достигается указанный технический результат уменьшение среднего времени задержки ПБД трафика реального времени в сетевом оборудовании при размещении ПБД в памяти сетевого оборудования, поиске и извлечении ПБД из памяти сетевого оборудования.Thanks to a new set of essential features due to the interaction of the memory management module, the pointer management module, the queue management module, the buffer management module, the specified technical result is achieved by reducing the average delay time of PDUs of real-time traffic in network equipment when placing PDUs in the memory of network equipment, searching for and extracting PDUs from the memory of the network equipment.

Проведенный анализ уровня техники позволил установить, что аналоги, характеризующиеся совокупностью признаков, тождественных всем признакам заявленных способа и устройства организации памяти сетевого оборудования для управления его очередями, отсутствуют. Следовательно, каждое из заявленных изобретений соответствует условию патентоспособности «новизна».The analysis of the prior art made it possible to establish that there are no analogues characterized by a set of features that are identical to all the features of the claimed method and device for organizing the memory of network equipment for managing its queues. Therefore, each of the claimed inventions meets the condition of patentability "novelty".

Результаты поиска известных решений в данной и смежных областях техники с целью выявления признаков, совпадающих с отличительными от прототипа признаками заявленного объекта, показали, что они не следуют явным образом из уровня техники. Из уровня техники также не выявлена известность влияния предусматриваемых существенными признаками заявленного изобретения преобразований на достижение указанного технического результата. Следовательно, каждое из заявленных изобретений соответствует условию патентоспособности «изобретательский уровень».The results of the search for known solutions in this and related fields of technology in order to identify features that match the distinguishing features of the prototype of the claimed object showed that they do not follow explicitly from the prior art. From the prior art, the influence of the transformations provided for by the essential features of the claimed invention on the achievement of the specified technical result has not been revealed either. Therefore, each of the claimed inventions meets the condition of patentability "inventive step".

«Промышленная применимость» обусловлена наличием элементной базы, на основе которой могут быть выполнены устройства, реализующие данный способ и устройство с достижением указанного в изобретении результата."Industrial applicability" is due to the presence of the element base, on the basis of which devices can be made that implement this method and device with the achievement of the result specified in the invention.

Для более понятной иллюстрации технических решений согласно вариантам осуществления настоящего изобретения ниже приведено краткое описание сопроводительных чертежей.To more clearly illustrate the technical solutions according to the embodiments of the present invention, a brief description of the accompanying drawings is given below.

На фиг. 1 – способ организации памяти сетевого оборудования для управления его очередями.In FIG. 1 - a way to organize the memory of network equipment to manage its queues.

На фиг. 2 – обобщённая модель системы обслуживания с n очередями и планировщиком.In FIG. 2 is a generalized model of a queuing system with n queues and a scheduler.

На фиг. 3 – схема сегментной структуры памяти.In FIG. 3 - diagram of the segmented memory structure.

На фиг. 4 – метод добавления новой очереди в сегмент указателей.In FIG. 4 is a method for adding a new queue to the pointer segment.

На фиг. 5 – логическая структура сегмента очередей.In FIG. 5 – logical structure of the queue segment.

На фиг. 6 – частотное распределение размеров ПБД для видеотрафика.In FIG. 6 – frequency distribution of PDU sizes for video traffic.

На фиг. 7 – устройство организации памяти сетевого оборудования для управления его очередями.In FIG. 7 - a device for organizing the memory of network equipment for managing its queues.

На фиг. 8 – логическая структура дескриптора сегмента указателей.In FIG. 8 - logical structure of the pointer segment descriptor.

На фиг. 9 – физическая структура сегмента указателей.In FIG. 9 - the physical structure of the pointer segment.

На фиг. 10 – пример битовой карты в сегменте указателей размера 8.In FIG. 10 is an example of a bitmap in a pointer segment of size 8.

На фиг. 11 – логическая структура дескриптора сегмента очередей.In FIG. 11 – logical structure of the queue segment descriptor.

На фиг. 12 – физическая структура сегмента очередей.In FIG. 12 - the physical structure of the queue segment.

На фиг. 13 – физическая структура сегмента буфера.In FIG. 13 - the physical structure of the buffer segment.

На фиг. 14 – модель памяти сетевого оборудования в среде сетевого симулятора OMNet ++.In FIG. 14 – network equipment memory model in the OMNet ++ network simulator environment.

Ниже будут полностью и четко описаны технические решения для вариантов осуществления настоящего изобретения со ссылками на сопроводительные чертежи. Должно быть, очевидно, что варианты осуществления, описанные ниже, являются только частью настоящего изобретения, а не всеми возможными вариантами осуществления настоящего изобретения. Все другие варианты осуществления, полученные специалистами в данной области техники на основе вариантов осуществления настоящего изобретения и не использующие творческий подход, попадают под объем охраны настоящего изобретения.The technical solutions for the embodiments of the present invention will be fully and clearly described below with reference to the accompanying drawings. It should be obvious that the embodiments described below are only a part of the present invention and not all possible embodiments of the present invention. All other embodiments obtained by those skilled in the art based on the embodiments of the present invention and not using creativity fall within the protection scope of the present invention.

Реализация заявленного способа заключается в следующем (Фиг. 1).The implementation of the claimed method is as follows (Fig. 1).

101. Логически разделяют область памяти сетевого оборудования на сегмент указателей, сегмент очередей, сегмент буфера. В сетевом оборудовании планировщику для реализации определенной дисциплины обслуживания (Фиг. 2) доступна фиксированная область памяти объемом TotalMem, которая логически разделяется на три сегмента (Фиг. 3):101. Logically divide the memory area of network equipment into pointer segment, queue segment, buffer segment. In network equipment, the scheduler, in order to implement a certain service discipline (Fig. 2), has access to a fixed memory area with a volume of TotalMem , which is logically divided into three segments (Fig. 3):

– сегмент указателей (PS) размером SizePS;– segment of pointers (PS) with size Size PS ;

– сегмент очередей (QS) размером SizeQS;– queue segment (QS) with size Size QS ;

– сегмент буфера ПБД (BS) размером SizeBS.– PDU buffer segment (BS) with size Size BS .

102. Получают информацию о дисциплине обслуживания планировщика, устанавливают значение размера фрагмента сегмента буфера равным Lmax. 102. Get information about the scheduler service discipline, set the value of the buffer segment fragment size to L max .

103. Принимают ПБД в порт сетевого оборудования, определяют приоритет ПБД и размер ПБД. Согласно данным параметрам планировщик определяет, в какую очередь поставить ПБД, сколько фрагментов сегмента буфера займет ПБД и время, требующееся на его обслуживание.103. PDUs are received at the network equipment port, PDU priority and PDU size are determined. According to these parameters, the scheduler determines in which queue to put the PDU, how many fragments of the buffer segment the PDU will take, and the time required to service it.

104. Проверяют, имеется ли в сегменте очередей очередь для ПБД данного приоритета. Если имеется очередь, то осуществляют переход к 106.104. Check if there is a queue in the queue segment for the PDU of the given priority. If there is a queue, then proceed to 106.

105. Если очередь отсутствует, то добавляют очередь для ПБД данного приоритета в сегмент указателей и сегмент очередей. Для этого в сегменте указателей PS находят первый свободный фрагмент и записывают в него дескриптор. Смещение свободного фрагмента относительно начала сегмента памяти вычисляется по битовой карте в соответствии с методом, представленном на рисунке (Фиг. 4). Для удаления очереди из сегмента указателей PS необходимо в битовой карте установить значение 0 биту, номер которого соответствует фрагменту, занимаемому дескриптором удаляемой очереди.105. If there is no queue, then add the queue for the PDUs of the given priority to the pointer segment and the queue segment. To do this, the first free fragment is found in the PS pointer segment and a descriptor is written to it. The offset of the free fragment relative to the beginning of the memory segment is calculated from the bitmap in accordance with the method shown in the figure (Fig. 4). To remove a queue from the PS pointer segment, you must set the value of bit 0 in the bitmap, the number of which corresponds to the fragment occupied by the descriptor of the queue being removed.

106. Находят в сегменте указателей дескриптор очереди приоритета ПБД, а в сегменте очередей определяют адрес дескриптора последнего ПБД, находящегося в соответствующей очереди. Логическая структура сегмента очередей может быть представлена в виде совокупности двусвязных списков дескрипторов ПБД. Каждый двусвязный список обеспечивает работу каждой очереди в соответствии с дисциплиной FIFO. Для управления очередями дескрипторы очередей в сегменте указателей PS содержат указатели на начало и конец очередей в сегменте очередей QS (Фиг. 5). 106. The PDU priority queue descriptor is found in the pointer segment, and the address of the last PDU descriptor located in the corresponding queue is determined in the queue segment. The logical structure of a queue segment can be represented as a set of doubly linked lists of PDU descriptors. Each doubly linked list ensures that each queue operates according to the FIFO discipline. For queue management, the queue descriptors in the PS pointer segment contain pointers to the beginning and end of the queues in the QS queue segment (FIG. 5).

107. Определяют по битовой карте сегмента буфера очереди приоритета ПБД адреса свободных фрагментов сегмента буфера. Для размещения ПБД в сегменте буфера BS необходимо найти непрерывную последовательность фрагментов сегмента буфера такой длины, в которой бы поместился ПБД. Диапазон памяти сегмента буфера, отведенный для хранения ПБД разбивается на K отрезков длины Lmax. Для каждого отрезка в сегменте буфера BS выделяется отдельный суббуфер со своей битовой картой, в каждом их которых хранятся фрагмент ПБД. Размер каждого суббуфера и длина его битовой карты определяются частотным распределением размеров ПБД и могут быть подобраны опытным путем. Пример частотного распределения размеров ПБД для видеотрафика приведен на рисунке (Фиг. 6).107. Based on the bitmap of the buffer segment of the priority queue PDU, the addresses of free fragments of the buffer segment are determined. To place a PDU in a BS buffer segment, it is necessary to find a continuous sequence of fragments of the buffer segment of such a length that the PDU would fit. The memory range of the buffer segment allocated for PDU storage is divided into K segments of length L max . For each segment in the segment of the BS buffer, a separate sub-buffer with its own bitmap is allocated, each of which stores a PDU fragment. The size of each subbuffer and the length of its bitmap are determined by the frequency distribution of the PDU sizes and can be chosen empirically. An example of the frequency distribution of PDU sizes for video traffic is shown in the figure (Fig. 6).

108. Передают ПБД из порта сетевого оборудования в сегмент буфера, записывают в битовые карты сегмента очередей и сегмента буфера данные о размещении ПБД в очереди. Начало и конец последовательности фрагментов ПБД записываются в дескриптор ПБД в сегменте очередей QS. 108. The PDU is transmitted from the port of the network equipment to the buffer segment, the data on the placement of the PDU in the queue is written to the bitmaps of the queue segment and the buffer segment. The start and end of the sequence of PDU fragments are written to the PDU descriptor in the QS queue segment.

109. Обслуживают ПБД и передают его из сегмента буфера в порт назначения сетевого оборудования, записывают в битовые карты сегмента очередей и сегмента буфера данные об удалении ПБД из очереди.109. Serve the PDU and transfer it from the buffer segment to the destination port of the network equipment, write to the bitmaps of the queue segment and the buffer segment data on the removal of the PDU from the queue.

110. Осуществляют переход к 103.110. Go to 103.

Заявленный способ организации памяти сетевого оборудования для управления его очередями позволяет достичь указанного технического результата уменьшение среднего времени задержки трафика данных реального времени в сетевом оборудовании при их размещении в памяти сетевого оборудования, поиске и извлечении из памяти сетевого оборудования за счет логического разделения области памяти сетевого оборудования на сегмент указателей, сегмент очередей, сегмент буфера и логическом разделении очередей различных приоритетов.The claimed method of organizing the memory of network equipment for managing its queues allows to achieve the specified technical result by reducing the average delay time of real-time data traffic in network equipment when they are placed in the memory of network equipment, searched for and retrieved from the memory of network equipment due to the logical division of the memory area of network equipment into pointer segment, queue segment, buffer segment and logical separation of queues of different priorities.

Устройство организации памяти сетевого оборудования для управления его очередями (Фиг. 7) состоит из модуля управления памятью 201, модуля управления указателями 202, модуля управления очередями 203, модуля памяти сетевого оборудования 204, модуля управления буфером 205, планировщика 206.The network equipment memory organization device for managing its queues (Fig. 7) consists of a memory management module 201, a pointer management module 202, a queue management module 203, a network equipment memory module 204, a buffer management module 205, a scheduler 206.

Модуль управления памятью 201, выполненный с возможностью логического разделения области памяти сетевого оборудования на сегмент указателей, сегмент очередей, сегмент буфера, установления значения размера фрагмента сегмента буфера, приёма ПБД в порт сетевого оборудования, определения приоритета ПБД и его размера, добавления очереди для ПБД данного приоритета в сегмент указателей и сегмент очередей, передачи ПБД из порта сетевого оборудования в сегмент буфера, передачи ПБД из сегмента буфера в порт назначения сетевого оборудования.The memory management module 201, configured to logically divide the network equipment memory area into a pointer segment, a queue segment, a buffer segment, set the buffer segment fragment size value, receive PDUs to the network equipment port, determine the PDU priority and size, add a queue for this PDU priority to the pointer segment and queue segment, transfer of PDUs from the network equipment port to the buffer segment, transfer of PDUs from the buffer segment to the destination port of the network equipment.

Модуль управления указателями 202, выполненный с возможностью для добавления и удаления очередей ПБД. Модуль управления указателями 202 организует работу сегмента указателей PS, который предназначен для добавления и удаления очередей ПД. В этом сегменте осуществляются операции: формирование новой очереди, удаление очереди. В сегменте указателей хранятся дескрипторы очередей Pi (где i - номер очереди) (Фиг. 8), каждый из которых имеет фиксированный размер (Фиг. 9) и содержит следующие данные:A pointer management module 202, configured to add and remove PDU queues. The pointer management module 202 organizes the operation of the pointer segment PS, which is designed to add and remove AP queues. Operations are performed in this segment: formation of a new queue, deletion of the queue. The pointer segment stores queue descriptors P i (where i is the queue number) (Fig. 8), each of which has a fixed size (Fig. 9) and contains the following data:

– указатели на начало (Qнач) и конец (Qкон) очереди в сегменте очередей и на следующий сегмент (Pслед);– pointers to the beginning (Q start ) and end (Q end ) of the queue in the queue segment and to the next segment (P next );

– атрибуты и параметры (Attr): идентификатор, время создания, вес, максимальный размер, параметры RED/WRED очереди.– attributes and parameters (Attr): identifier, creation time, weight, maximum size, RED/WRED queue parameters.

Сегмент указателей PS ограничен значением n, которое определяется как максимальное количество очередей. В начале сегмента указателей PS содержится битовая карта BitMap длиной n бит, по которой определяются какие фрагменты сегмента указателей заняты дескрипторами, а какие фрагменты свободны. Пример битовой карты сегмента указателей представлен на рисунке (Фиг. 10).The PS pointer segment is limited to n, which is defined as the maximum number of queues. At the beginning of the PS pointer segment, there is an n-bit BitMap bitmap that determines which fragments of the pointer segment are occupied by descriptors and which fragments are free. An example of a pointer segment bitmap is shown in the figure (Fig. 10).

Модуль управления очередями 203, выполненный с возможностью логической организации очередей и управления ими. Модуль управления очередями 203 организует работу сегмента очередей QS, который предназначен для логической организации очередей и управления ими. В сегменте очередей хранятся дескрипторы ПБД Qij (где i - номер очереди, j – номер ПБД), расположенных в данной очереди (Фиг. 11). Каждый дескриптор ПБД имеет фиксированный размер и содержит следующие данные:Queue management module 203, configured to logically organize and manage queues. The queuing module 203 organizes the operation of the queue segment QS, which is designed to logically organize and manage queues. The queue segment stores descriptors of PDUs Q ij (where i is the queue number, j is the PDU number) located in this queue (Fig. 11). Each PDU descriptor has a fixed size and contains the following data:

– указатели на начало (Qнач) и конец (Qкон) ПБД в сегменте буфера BS и на следующий ПБД (Qслед);– pointers to the beginning (Q start ) and end (Q end ) of the PDU in the BS buffer segment and to the next PDU (Q trace );

– атрибуты и числовые параметры ПБД (идентификатор и приоритет).– PDU attributes and numerical parameters (identifier and priority).

В начале сегмента очередей QS содержится битовая карта BitMap, по которой определяются какие фрагменты сегмента очередей дескрипторами, а какие фрагменты свободны. (Фиг. 12). В сегменте очередей QS ПБД одного приоритета обслуживаются по дисциплине FIFO.At the beginning of the QS queue segment, there is a BitMap bitmap, which determines which fragments of the queue segment are descriptors, and which fragments are free. (Fig. 12). In the QS segment, PDUs of the same priority are served in FIFO fashion.

Максимальное количество фрагментов в сегменте очередей QS ограничено некоторым значением N Qmax , которое определяется как максимальное суммарное количество ПБД во всех очередях, для которого должно выполняться условие: The maximum number of fragments in a segment of queues QS is limited by some value N Qmax , which is defined as the maximum total number of PDUs in all queues, for which the condition must be satisfied:

где m i – размер i-й очереди (в ПБД).where m i is the size of the i -th queue (in PDU).

Модуль памяти сетевого оборудования 204, реализующий функции хранения ПБД и передачи информации между модулями устройства.Network equipment memory module 204, which implements the functions of storing PDUs and transferring information between device modules.

Модуль управления буфером 205, выполненный с возможностью размещения всех ПБД, поступивших в одну из очередей. Модуль управления буфером 205 организует работу сегмента буфера BS, который предназначен для размещения всех ПБД, поступивших в одну из очередей. В этом сегменте выделяется память при поступлении ПБД в очередь и освобождается при его удалении из очереди. Сегмент буфера обеспечивает хранение ПБД в течение времени его нахождения в очереди. Как только ПБД классифицируется и размещается в очередь, для него резервируется память в сегменте буфера BS. В начале сегмента буфера BS содержится битовая карта BitMap длиной k бит, которая определяет занятые и свободные фрагменты. (Фиг. 13). Каждый дескриптор ПБД включает в себя указатели на начало и конец ПБД в сегменте буфера BS, атрибуты и числовые параметры ПБД (как минимум приоритет и размер), указатели на предыдущий и на следующий дескрипторы в списке. A buffer management module 205 configured to accommodate all PDUs received in one of the queues. The buffer management module 205 organizes the operation of the BS buffer segment, which is designed to accommodate all PDUs received in one of the queues. This segment is allocated memory when a PDU enters the queue and is freed when it is removed from the queue. The buffer segment provides storage for the PDU during its time in the queue. Once a PDU is classified and queued, memory is reserved for it in the BS's buffer segment. At the beginning of the BS buffer segment, there is a bitmap BitMap of length k bits, which defines occupied and free fragments. (Fig. 13). Each PDU descriptor includes pointers to the beginning and end of the PDU in the BS buffer segment, attributes and numeric parameters of the PDU (at least priority and size), pointers to the previous and next descriptors in the list.

Планировщик 206, выполненный с возможностью реализации заданной дисциплины обслуживания ПБД.A scheduler 206 configured to implement a given PDU maintenance discipline.

Модули управления памятью 201, управления указателями 202, управления очередями 203, управления буфером 205 и планировщик 206 соединены с модулем памяти 204 через общую шину.Modules for memory management 201, pointer management 202, queue management 203, buffer management 205 and scheduler 206 are connected to memory module 204 via a common bus.

Модули управления памятью 201, указателями 202, очередями 203, буфером 205 и планировщик 206 могут быть реализованы по известной схеме, например, как контроллер Zynq-7000 SoC Product Advantages (см. https://www.xilinx.com/products/silicon-devices/soc/zynq-7000.html#documentation).The modules for managing memory 201, pointers 202, queues 203, buffer 205, and scheduler 206 may be implemented in a known manner, such as a Zynq-7000 SoC Product Advantages controller (see https://www.xilinx.com/products/silicon- devices/soc/zynq-7000.html#documentation).

Модуль памяти 204 может быть реализован по известной схеме, например, как модуль оперативной памяти DDR3 любого производителя.The memory module 204 may be implemented in a known manner, such as a DDR3 RAM module from any manufacturer.

Устройство работает следующим образом.The device works as follows.

Модуль управления памятью 201 логически разделяет область памяти сетевого оборудования на сегмент указателей, сегмент очередей, сегмент буфера, в соответствии с информацией, полученной от администратора сети устанавливает значение размера фрагмента сегмента буфера, передает информацию о размере фрагмента сегмента буфера в модуль управления буфером 205. Модуль управления буфером 205 получает информацию от модуля управления памятью 201 о размере фрагмента сегмента буфера и устанавливает ее значение. Планировщик 206 получает информацию от администратора сети о выбранной дисциплине обслуживания, в соответствии с которой производит обслуживание ПБД. Модуль управления памятью 201 принимает ПБД в порт сетевого оборудования, определяет приоритет ПБД и размер ПБД, передает информацию о приоритете ПБД в модуль управления указателями 202. Модуль управления указателями 202 получает информацию от модуля управления памятью 201 о приоритете ПБД, определяет, имеется ли в сегменте очередей очередь для ПБД данного приоритета. Если очередь отсутствует, то передает информацию об отсутствии очереди для ПБД данного приоритета в модуль управления памятью 201. Модуль управления памятью 201 получает от модуля управления указателями 202 информацию об отсутствии в сегменте очередей очереди для ПБД данного приоритета, передает информацию о необходимости добавления очереди для ПБД данного приоритета в модуль управления указателями 202 и модуль управления очередями 203. Модуль управления указателями 202 получает от модуля управления памятью 201 информацию о необходимости добавления очереди для ПБД данного приоритета, добавляет новую очередь и передает в модуль управления очередями 203 и модуль управления памятью 201 дескриптор новой очереди. Модуль управления очередями 203 получает от модуля управления указателями дескриптор новой очереди. Модуль управления памятью 201 получает от модуля управления указателями 202 дескриптор новой очереди и передает модулю управления указателями 202 и модулю управления очередями 203 ПБД для размещения в очереди. Модуль управления указателями 202 получает от модуля управления памятью 201 информацию о том, что необходимо разместить ПБД в модуле управления буфером 205, передает в модуль управления очередями 203 дескриптор очереди приоритета ПБД. Модуль управления очередями 203 получает от модуля управления памятью 201 информацию о том, что необходимо разместить ПБД, от модуля управления указателями 202 получает дескриптор очереди приоритета ПБД, находит адрес дескриптора последнего ПБД, находящегося в соответствующей очереди, передают ПБД в модуль управления буфером 205. Модуль управления буфером 205 получает от модуля управления очередями 203 адрес дескриптора последнего ПБД, находящегося в соответствующей очереди, находит по битовой карте адреса свободных фрагментов сегмента буфера, передает ПБД из порта сетевого оборудования в сегмент буфера, передает модулю управления очередями 203 дескриптор ПБД в сегменте буфера. Модуль управления очередями 203 получает от модуля управления буфером 205 дескриптор ПБД в сегменте буфера. Планировщик 206 запрашивает у модуля управления очередями 203, имеется ли в очереди на обслуживание ПБД, получает от модуля управления очередями 203 дескриптор ПБД в сегменте буфера, производит его обслуживание в соответствии с выбранной дисциплиной обслуживания и передает информацию об этом модулю управления памятью 201. Модуль управления памятью 201 получает от планировщика дескриптор обслуженного ПБД, передает ПБД в порт назначения сетевого оборудования, передает информацию в модуль управления очередями 203 и модуль управления буфером 205 данные об удалении ПБД из очереди. Модуль управления очередями 203 и модуль управления буфером 205 получают от модуля управления памятью 201 информацию об удалении ПБД и освобождают память, отведенную для его хранения. Процесс повторяется итерационно, пока в порт сетевого оборудования поступают ПБД.The memory management module 201 logically divides the memory area of the network equipment into a pointer segment, a queue segment, a buffer segment, in accordance with the information received from the network administrator, sets the value of the fragment size of the buffer segment, transmits information about the size of the fragment of the buffer segment to the buffer management module 205. The module The buffer manager 205 receives information from the memory manager 201 about the fragment size of the buffer segment and sets its value. The scheduler 206 receives information from the network manager about the selected service discipline, according to which it performs the service of the PDU. The memory management module 201 receives the PDU at the port of the network equipment, determines the PDU priority and the PDU size, transmits the PDU priority information to the pointer management module 202. The pointer management module 202 receives the PDU priority information from the memory management module 201, determines whether there is a PDU in the segment. queues queue for PDUs of given priority. If there is no queue, then it transmits information about the absence of a queue for PDUs of this priority to the memory management module 201. The memory management module 201 receives from the pointer management module 202 information about the absence of a queue for PDUs of this priority in the queue segment, transmits information about the need to add a queue for PDUs of this priority to the pointer manager 202 and the queue manager 203. The pointer manager 202 receives from the memory manager 201 information about the need to add a queue for the PDU of this priority, adds a new queue and passes to the queue manager 203 and the memory manager 201 a handle to the new queues. The queue manager 203 receives a handle to the new queue from the pointer manager. The memory manager 201 receives a handle to the new queue from the pointer manager 202 and passes the PDU to the pointer manager 202 and the queue manager 203 to place in the queue. The pointer manager 202 receives information from the memory manager 201 that it is necessary to place the PDU in the buffer manager 205, passes the PDU priority queue descriptor to the queue manager 203. The queue management module 203 receives from the memory management module 201 information that it is necessary to place the PDU, from the pointer management module 202 receives the PDU priority queue descriptor, finds the address of the descriptor of the last PDU located in the corresponding queue, transmits the PDU to the buffer management module 205. The module buffer management module 205 receives from the queue management module 203 the address of the descriptor of the last PDU located in the corresponding queue, finds the addresses of free fragments of the buffer segment on the bitmap, transfers the PDU from the network equipment port to the buffer segment, transfers the PDU descriptor in the buffer segment to the queue management module 203. The queue manager 203 receives from the buffer manager 205 a PDU descriptor in the buffer segment. The scheduler 206 asks the queue manager 203 whether there is a PDU in the service queue, receives a PDU descriptor in the buffer segment from the queue manager 203, performs its maintenance in accordance with the selected service discipline, and passes information about this to the memory management module 201. The control module memory 201 receives the handle of the served PDU from the scheduler, transmits the PDU to the destination port of the network equipment, transmits information to the queue management module 203 and the buffer management module 205 to remove the PDU from the queue. The queue manager 203 and the buffer manager 205 receive from the memory manager 201 the PDU deletion information and release the memory allocated for storing it. The process is repeated iteratively until PDUs arrive at the port of the network equipment.

Правомерность теоретических предпосылок была проверена модельными экспериментами на имитационной модели сетевого оборудования в среде сетевого симулятора OMNet ++ с реализацией в модели различной загрузки входного порта сетевого оборудования и различным количеством очередей, реализованных в нем (Фиг. 14). Эксперимент проводился со следующими исходными данными:The validity of the theoretical assumptions was verified by model experiments on a simulation model of network equipment in the environment of the network simulator OMNet ++ with the implementation in the model of different loading of the input port of network equipment and a different number of queues implemented in it (Fig. 14). The experiment was carried out with the following initial data:

- количество ПБД - 1000000,- amount of PBB - 1000000,

- средний размер ПБД - 500 байт,- average PBD size - 500 bytes,

- количество очередей сетевого оборудования – 3; 5; 8.- number of network equipment queues - 3; 5; 8.

- загрузка порта сетевого оборудования – 0,1; 0,3; 0,5; 0,7.- network equipment port load - 0.1; 0.3; 0.5; 0.7.

Результаты эксперимента показали, что при использовании заявленного способа организации памяти сетевого оборудования для управления его очередями обеспечивается уменьшение среднего времени задержки ПБД в сетевом оборудовании от 7 до 12% от среднего времени задержки в зависимости от среднего размера ПБД, поступающего в порт сетевого оборудования, загрузки порта сетевого оборудования и количества очередей, реализованных в нем.The results of the experiment showed that when using the claimed method of organizing the memory of network equipment for managing its queues, the average PDU delay time in the network equipment is reduced from 7 to 12% of the average delay time, depending on the average PDU size entering the network equipment port, port load network equipment and the number of queues implemented in it.

Анализ результатов эксперимента показывает что, заявленные способ и устройство организации памяти сетевого оборудования для управления его очередями обеспечивает уменьшение среднего времени задержки ПБД трафика реального времени в сетевом оборудовании при размещении ПБД в памяти сетевого оборудования, поиске и извлечении ПБД из памяти сетевого оборудования за счет логического разделения области памяти сетевого оборудования на сегмент указателей, сегмент очередей, сегмент буфера и логическом разделении очередей различных приоритетов.An analysis of the results of the experiment shows that the claimed method and device for organizing the memory of network equipment for managing its queues reduces the average delay time of the PDU of real-time traffic in the network equipment when placing the PDU in the memory of the network equipment, searching for and extracting the PDU from the memory of the network equipment due to logical separation memory area of network equipment into pointer segment, queue segment, buffer segment and logical separation of queues of different priorities.

Claims (26)

1. Способ организации памяти сетевого оборудования для управления его очередями, в котором1. A method of organizing the memory of network equipment for managing its queues, in which а) логически разделяют область памяти сетевого оборудования на три сегмента: сегмент указателей, сегмент очередей, сегмент буфера,a) logically divide the network equipment memory area into three segments: a pointer segment, a queue segment, a buffer segment, где сегмент указателей предназначен для хранения дескрипторов очередей Pi (где i - номер очереди), причем в начале сегмента указателей содержится битовая карта, по которой определяются, какие фрагменты сегмента указателей заняты дескрипторами, а какие фрагменты свободны, а сегмент очередей предназначен для хранения дескрипторов протокольного блока данных (ПБД) Qij (где i - номер очереди, j - номер ПБД), расположенных в данной очереди, причем в начале сегмента очередей содержится битовая карта, по которой определяются, какие фрагменты сегмента очередей заняты дескрипторами, а какие фрагменты свободны, в начале сегмента указателей содержится битовая карта, по которой определяются, какие фрагменты сегмента указателей заняты дескрипторами, а какие фрагменты свободны,where the segment of pointers is intended to store descriptors of queues P i (where i is the queue number), and at the beginning of the segment of pointers there is a bitmap that determines which fragments of the segment of pointers are occupied by descriptors and which fragments are free, and the queue segment is intended to store descriptors protocol data unit (PDU) Q ij (where i is the queue number, j is the PDU number) located in this queue, and at the beginning of the queue segment contains a bitmap, which determines which fragments of the queue segment are occupied by descriptors, and which fragments are free , at the beginning of the pointer segment there is a bitmap that determines which fragments of the pointer segment are occupied by descriptors and which fragments are free, б) получают информацию о дисциплине обслуживания планировщика, устанавливают значение размера фрагмента сегмента буфера,b) receive information about the scheduler service discipline, set the value of the buffer segment fragment size, в) принимают ПБД в порт сетевого оборудования, определяют приоритет ПБД и размер ПБД,c) receive PDUs to the network equipment port, determine the PDU priority and PDU size, г) проверяют, имеется ли в сегменте очередей очередь для ПБД данного приоритета, если имеется очередь, то осуществляют переход к этапу е),d) check if there is a queue for the PDU of this priority in the queue segment, if there is a queue, then go to step e), д) если очередь отсутствует, то добавляют очередь для ПБД данного приоритета в сегмент очередей, а в сегменте указателей находят первый свободный фрагмент и записывают в него дескриптор очереди,e) if there is no queue, then add a queue for the PDU of this priority to the queue segment, and find the first free fragment in the pointer segment and write the queue descriptor into it, е) находят в сегменте указателей дескриптор очереди ПБД данного приоритета, а в сегменте очередей определяют адрес j дескриптора последнего ПБД, находящегося в соответствующей очереди i,f) find the PDU queue descriptor of the given priority in the pointer segment, and determine the address j of the descriptor of the last PDU located in the corresponding queue i in the queue segment, ж) определяют по битовой карте сегмента буфера, адреса свободных фрагментов сегмента буфера, очереди ПБД данного приоритета,g) determine from the bitmap of the buffer segment, the addresses of free fragments of the buffer segment, the PDU queue of the given priority, з) передают ПБД из порта сетевого оборудования в сегмент буфера, записывают в битовые карты сегмента очередей и сегмента буфера данные о размещении ПБД в очереди, причем начало и конец последовательности фрагментов ПБД записываются в дескриптор ПБД в сегменте очередей,h) PDUs are transmitted from the network equipment port to the buffer segment, data on the location of the PDUs in the queue is written to the bitmaps of the queue segment and the buffer segment, and the beginning and end of the sequence of PDU fragments are written to the PDU descriptor in the queue segment, и) обслуживают ПБД согласно дисциплине облуживания и передают ПБД из сегмента буфера в порт назначения сетевого оборудования, записывают в битовые карты сегмента очередей и сегмента буфера данные об удалении ПБД из очереди,i) serve the PDU according to the service discipline and transfer the PDU from the buffer segment to the destination port of the network equipment, write to the bitmaps of the queue segment and the buffer segment data on the removal of the PDU from the queue, к) осуществляют переход к этапу в).j) proceed to step c). 2. Способ по п.1, в котором на этапе г) устанавливают класс обслуживания трафика в соответствии с заранее заданными правилами классификации.2. The method of claim 1, wherein in step d) the class of service of the traffic is set according to predefined classification rules. 3. Устройство организации памяти сетевого оборудования для управления его очередями, состоящее из:3. Device for organizing memory of network equipment for managing its queues, consisting of: модуля управления памятью, предназначенного для логического разделения области памяти сетевого оборудования на сегмент указателей, сегмент очередей, сегмент буфера, где сегмент указателей предназначен для хранения дескрипторов очередей Pi (где i - номер очереди), причем в начале сегмента указателей содержится битовая карта, по которой определяются, какие фрагменты сегмента указателей заняты дескрипторами, а какие фрагменты свободны, а сегмент очередей предназначен для хранения дескрипторов ПБД Qij (где i - номер очереди, j - номер ПБД), расположенных в данной очереди, причем в начале сегмента очередей содержится битовая карта, по которой определяются, какие фрагменты сегмента очередей заняты дескрипторами, а какие фрагменты свободны,memory management module designed to logically divide the network equipment memory area into a pointer segment, a queue segment, a buffer segment, where the pointer segment is intended for storing queue descriptors P i (where i is the queue number), and at the beginning of the pointer segment contains a bitmap, according to which determines which fragments of the pointer segment are occupied by descriptors and which fragments are free, and the queue segment is intended for storing PDU Q ij descriptors (where i is the queue number, j is the PDU number) located in this queue, and at the beginning of the queue segment contains a bit a map that determines which queue segment fragments are occupied by descriptors and which fragments are free, установления значения размера фрагмента сегмента буфера,setting the value of the fragment size of the buffer segment, приема ПБД в порт сетевого оборудования,receiving PBD to the port of network equipment, определения приоритета ПБД и его размера,determining the priority of the PDU and its size, добавления очереди для ПБД данного приоритета в сегмент очередей, записи дескриптора очереди в первый свободный фрагмент в сегменте указателей,adding a queue for a PDU of a given priority to the queue segment, writing the queue descriptor to the first free fragment in the pointer segment, передачи ПБД из порта сетевого оборудования в сегмент буфера, а также записи в битовые карты сегмента очередей и сегмента буфера данных о размещении ПБД в очереди, причем начало и конец последовательности фрагментов ПБД записываются в дескриптор ПБД в сегменте очередей,transferring PDUs from the network equipment port to the buffer segment, as well as writing to the bitmaps of the queue segment and buffer segment data on the placement of PDUs in the queue, and the beginning and end of the sequence of PDU fragments are written to the PDU descriptor in the queue segment, передачи ПБД из сегмента буфера в порт назначения сетевого оборудования и записи в битовые карты сегмента очередей и сегмента буфера данные об удалении ПБД из очереди;transferring the PDU from the buffer segment to the destination port of the network equipment and writing to the bitmaps of the queue segment and the buffer segment data about dequeueing the PDU; модуля управления указателями, предназначенного для добавления и удаления очередей протокольных блоков данных;a pointer management module for adding and removing queues of protocol data units; модуля управления очередями, предназначенного для логической организации очередей и управления ими;a queue management module for logical organization and management of queues; модуля управления буфером, предназначенного для размещения всех ПБД, поступивших в одну из очередей согласно приоритету ПБД, в сегменте буфера;a buffer management module for placing all PDUs received in one of the queues according to the PDU priority in a buffer segment; планировщика, предназначенного для реализации выбранной дисциплины обслуживания;a scheduler designed to implement the selected service discipline; модуля памяти сетевого оборудования, предназначенного для хранения протокольных блоков данных и передачи информации между модулями устройства, при этом, модуль управления памятью, модуль управления указателями, модуль управления очередями, модуль управления буфером и планировщик соединены с модулем памяти через общую шину.a network equipment memory module designed to store protocol data blocks and transfer information between device modules, while the memory management module, pointer management module, queue management module, buffer management module and scheduler are connected to the memory module through a common bus.
RU2022124573A 2022-09-19 Method and device for organizing memory of network equipment for managing its queues RU2801737C1 (en)

Publications (1)

Publication Number Publication Date
RU2801737C1 true RU2801737C1 (en) 2023-08-15

Family

ID=

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2936308A1 (en) * 2012-12-20 2015-10-28 Georgia State University Research Foundation, Inc. Parallel priority queue utilizing parallel heap on many-core processors for accelerating priority-queue-based applications
US9178830B2 (en) * 2008-05-30 2015-11-03 Marvell International Ltd. Network processor unit and a method for a network processor unit
US20180183724A1 (en) * 2016-12-22 2018-06-28 Huawei Technologies Co., Ltd. Systems and methods for buffer management
RU2755987C1 (en) * 2020-10-08 2021-09-23 Некоммерческое партнерство «Центр прикладных исследований компьютерных сетей» Method for organising a network processor unit

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9178830B2 (en) * 2008-05-30 2015-11-03 Marvell International Ltd. Network processor unit and a method for a network processor unit
EP2936308A1 (en) * 2012-12-20 2015-10-28 Georgia State University Research Foundation, Inc. Parallel priority queue utilizing parallel heap on many-core processors for accelerating priority-queue-based applications
US20180183724A1 (en) * 2016-12-22 2018-06-28 Huawei Technologies Co., Ltd. Systems and methods for buffer management
RU2755987C1 (en) * 2020-10-08 2021-09-23 Некоммерческое партнерство «Центр прикладных исследований компьютерных сетей» Method for organising a network processor unit

Similar Documents

Publication Publication Date Title
US7158964B2 (en) Queue management
US8381230B2 (en) Message passing with queues and channels
US7219121B2 (en) Symmetrical multiprocessing in multiprocessor systems
WO2016011894A1 (en) Message processing method and apparatus
US20040230979A1 (en) Command scheduling in computer networks
CN112214319B (en) Task scheduling method for sensing computing resources
WO2019223596A1 (en) Method, device, and apparatus for event processing, and storage medium
WO2022067531A1 (en) Computing resource aware task scheduling method
KR20110080735A (en) Computing system and method
CN106571978B (en) Data packet capturing method and device
CN103294548A (en) Distributed file system based IO (input output) request dispatching method and system
CN115129621B (en) Memory management method, device, medium and memory management module
CN108304272B (en) Data IO request processing method and device
US20230037783A1 (en) Resource scheduling method and related apparatus
CN110519180B (en) Network card virtualization queue scheduling method and system
US8543722B2 (en) Message passing with queues and channels
CN109150759B (en) Progressive non-blocking opportunity resource reservation method and system
CN111881165B (en) Data aggregation method and device and computer readable storage medium
RU2801737C1 (en) Method and device for organizing memory of network equipment for managing its queues
US9110823B2 (en) Adaptive and prioritized replication scheduling in storage clusters
US11582133B2 (en) Apparatus and method for distributed processing of identical packet in high-speed network security equipment
CN115878333A (en) Method, device and equipment for judging consistency between process groups
CN112597080A (en) Read request control device and method and memory controller
JP7087585B2 (en) Information processing equipment, control methods, and programs
CN107615259A (en) A kind of data processing method and system