RU2589398C2 - Способ и устройство для быстрого распределения данных - Google Patents

Способ и устройство для быстрого распределения данных Download PDF

Info

Publication number
RU2589398C2
RU2589398C2 RU2014121210/08A RU2014121210A RU2589398C2 RU 2589398 C2 RU2589398 C2 RU 2589398C2 RU 2014121210/08 A RU2014121210/08 A RU 2014121210/08A RU 2014121210 A RU2014121210 A RU 2014121210A RU 2589398 C2 RU2589398 C2 RU 2589398C2
Authority
RU
Russia
Prior art keywords
data
user
requested
network interface
interface controller
Prior art date
Application number
RU2014121210/08A
Other languages
English (en)
Other versions
RU2014121210A (ru
Inventor
Фань ФАН
Кепин ЧЭНЬ
Original Assignee
Хуавэй Текнолоджиз Ко., Лтд.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Хуавэй Текнолоджиз Ко., Лтд. filed Critical Хуавэй Текнолоджиз Ко., Лтд.
Publication of RU2014121210A publication Critical patent/RU2014121210A/ru
Application granted granted Critical
Publication of RU2589398C2 publication Critical patent/RU2589398C2/ru

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3824Operand accessing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0209Architectural arrangements, e.g. perimeter networks or demilitarized zones
    • H04L63/0218Distributed architectures, e.g. distributed firewalls
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/612Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for unicast
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/80Responding to QoS
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/38Universal adapter
    • G06F2213/3808Network interface controller

Abstract

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

Description

Область техники, к которой относится изобретение
[0001] Варианты осуществления настоящего изобретения относятся к области техники связи, в частности к способу и устройству для быстрого распределения данных.
Уровень техники
[0002] Интернет-приложения уже переходят в эру Web 2.0, и выбор обслуживания пользователем главным образом основан на фактических возможностях работы пользователей. Чтобы разрешать проблему, когда время задержки влияет на возможности работы пользователей, предусмотрено большое число схем быстрого доступа, чтобы достигать хороших возможностей работы пользователей. Практически все Интернет-компании реализуют схемы ускорения, в числе которых, в частности, выделяется схема кэшей (кэша) в сети доставки контента (сети доставки контента, CDN). В CDN каждый кэш является промежуточным устройством и предоставляет функцию кэширования.
[0003] С использованием услуги "видео по запросу" в услугах в форме CDN-продуктов, в качестве примера, решение по ускорению для услуги "видео по запросу", предоставляемое в предшествующем уровне техники, показывается на фиг. 1 (линии со стрелками указывают направления информационных потоков или потоков данных, а порядковые номера, присоединенные к линиям, указывают последовательные взаимосвязи): запрос пользователя исходит из сетевого порта, т. е. контроллера сетевого интерфейса (контроллера сетевого интерфейса, NIC); после приема запроса центральный процессор (центральный процессор, CPU) считывает данные из устройства хранения данных (хранилища) и сохраняет данные в запоминающее устройство (запоминающее устройство), отправляет данные в NIC и отправляет данные на клиент (клиент) посредством использования NIC. В этом решении CDN-продукт предоставляет быструю флэш-память (флэш) и сеть и предоставляет кэш (кэш) для данных публичной точки доступа. Если устройство хранения данных не имеет видеоданных, запрашиваемых пользователем в настоящий момент, запрос отправляется посредством использования NIC в другое устройство, допускающее предоставление видеоданных, запрашиваемых пользователем, и видеоданные, запрашиваемые пользователем, извлекаются посредством использования NIC и затем отправляются на клиент (клиент); чтобы удовлетворять запрос пользователя в следующий раз, когда либо после того, как видеоданные, извлеченные из другого устройства, отправляются на клиент, видеоданные сохраняются в локальном устройстве хранения данных (хранилище).
[0004] Недостатки предшествующего уровня техники заключаются в том, что: все видеоданные должны быть обработаны посредством запоминающего устройства и CPU один раз. CPU работает с возможностью удалять и распределять данные, но не может реализовывать разделение плоскости данных и плоскости управления; для CDN-потока, в случае высокого параллелизма, использование CPU является высоким, что приводит к очевидному узкому месту по производительности.
Сущность изобретения
[0005] Варианты осуществления настоящего изобретения предоставляют способ и устройство для быстрого распределения данных, чтобы сокращать использование центрального процессора и запоминающего устройства и повышать производительность системы.
[0006] Вариант осуществления настоящего изобретения предоставляет способ для быстрого распределения данных, включающий в себя:
- отправку, посредством центрального процессора, информации описания данных в модуль быстрого перенаправления, причем информация описания данных включает в себя информацию адреса и длины данных, запрошенных пользователем;
- считывание, посредством модуля быстрого перенаправления согласно информации описания данных, данных, запрошенных пользователем, и перенаправление данных, запрошенных пользователем, в контроллер сетевого интерфейса; и
- отправку, посредством контроллера сетевого интерфейса, данных, запрошенных пользователем, пользователю.
[0007] Другой вариант осуществления настоящего изобретения предоставляет способ для быстрого распределения данных, включающий в себя:
- прием информации описания данных, которая отправляется посредством центрального процессора, причем информация описания данных включает в себя информацию адреса и длины данных, запрошенных пользователем; и
- считывание, согласно информации описания данных, данных, запрошенных пользователем, и перенаправление данных, запрошенных пользователем, в контроллер сетевого интерфейса, так что контроллер сетевого интерфейса отправляет данные, запрошенные пользователем, пользователю.
[0008] Вариант осуществления настоящего изобретения предоставляет систему для быстрого распределения данных, которая включает в себя центральный процессор, контроллер сетевого интерфейса и модуль быстрого перенаправления, при этом:
- центральный процессор сконфигурирован с возможностью отправлять информацию описания данных в модуль быстрого перенаправления, причем информация описания данных включает в себя информацию адреса и длины данных, запрошенных пользователем;
- модуль быстрого перенаправления сконфигурирован с возможностью считывать, согласно информации описания данных, данные, запрошенные пользователем, и перенаправлять данные, запрошенные пользователем, в контроллер сетевого интерфейса; и
- контроллер сетевого интерфейса сконфигурирован с возможностью отправлять данные, запрошенные пользователем, пользователю.
[0009] Вариант осуществления настоящего изобретения предоставляет устройство для быстрого распределения данных, которое включает в себя приемный модуль и модуль считывания данных, при этом:
- приемный модуль сконфигурирован с возможностью принимать информацию описания данных, которая отправляется посредством центрального процессора, причем информация описания данных включает в себя информацию адреса и длины данных, запрошенных пользователем; и
- модуль считывания данных сконфигурирован с возможностью считывать, согласно информации описания данных, данные, запрошенные пользователем, и перенаправлять данные, запрошенные пользователем, в контроллер сетевого интерфейса, так что контроллер сетевого интерфейса отправляет данные, запрошенные пользователем, пользователю.
[0010] Как видно из вышеприведенных вариантов осуществления настоящего изобретения, контроллер сетевого интерфейса отправляет информацию адреса и длины в модуль быстрого перенаправления, модуль быстрого перенаправления считывает данные, запрошенные пользователем, и перенаправляет данные, запрошенные пользователем, в контроллер сетевого интерфейса, и контроллер сетевого интерфейса отправляет данные, запрошенные пользователем. Процесс передачи данных полностью выполняется посредством использования независимого и прямого канала между контроллером сетевого интерфейса и устройством хранения данных, и данные не проходят через центральный процессор и запоминающее устройство; центральный процессор должен только конфигурировать дескриптор передачи и не должен копировать данные. Следовательно, по сравнению с предшествующим уровнем техники, посредством использования способа, предоставленного в вариантах осуществления настоящего изобретения, после того как возрастает объем услуг (например, должна быть увеличена существующая полоса пропускания сетевого адаптера и существующая емкость хранения), должны добавляться только контроллер сетевого интерфейса и устройство хранения данных, и затраты на запоминающее устройство и центральный процессор не должны возрастать. С одной стороны, может сокращаться использование запоминающего устройства и центрального процессора, и повышается производительность всей системы; с другой стороны, снижается вероятность проблемы барьера памяти.
Краткое описание чертежей
[0011] Чтобы более понятно описывать технические решения в вариантах осуществления настоящего изобретения, далее кратко представлены прилагаемые чертежи, требуемые для описания вариантов осуществления или предшествующего уровня техники. Очевидно, что прилагаемые чертежи в нижеприведенном описании показывают только некоторые варианты осуществления настоящего изобретения, и специалисты в данной области техники по-прежнему могут извлекать другие чертежи из этих прилагаемых чертежей.
[0012] Фиг. 1 является принципиальной схемой решения по ускорению для услуги "видео по запросу" в предшествующем уровне техники.
[0013] Фиг. 2 является блок-схемой последовательности операций способа для быстрого распределения данных согласно варианту осуществления настоящего изобретения.
[0014] Фиг. 3 является принципиальной структурной схемой дескриптора передачи согласно варианту осуществления настоящего изобретения.
[0015] Фиг. 4 является принципиальной структурной схемой способа для быстрого распределения данных согласно варианту осуществления настоящего изобретения.
[0016] Фиг. 5 является принципиальной структурной схемой системы для быстрого распределения данных согласно варианту осуществления настоящего изобретения.
[0017] Фиг. 6 является принципиальной структурной схемой системы для быстрого распределения данных согласно другому варианту осуществления настоящего изобретения.
[0018] Фиг. 7 является принципиальной структурной схемой системы для быстрого распределения данных согласно другому варианту осуществления настоящего изобретения.
[0019] Фиг. 8 является принципиальной структурной схемой системы для быстрого распределения данных согласно другому варианту осуществления настоящего изобретения.
[0020] Фиг. 9 является принципиальной структурной схемой системы для быстрого распределения данных согласно другому варианту осуществления настоящего изобретения.
[0021] Фиг. 10 является принципиальной структурной схемой устройства для быстрого распределения данных согласно варианту осуществления настоящего изобретения.
[0022] Фиг. 11 является принципиальной структурной схемой устройства для быстрого распределения данных согласно другому варианту осуществления настоящего изобретения.
[0023] фиг. 12 является принципиальной структурной схемой устройства для быстрого распределения данных согласно другому варианту осуществления настоящего изобретения.
Подробное описание вариантов осуществления
[0024] Варианты осуществления настоящего изобретения предоставляют способ и устройство для быстрого распределения данных, чтобы сокращать использование центрального процессора и запоминающего устройства и повышать производительность системы.
[0025] Фиг. 2 является блок-схемой последовательности операций способа для быстрого распределения данных согласно варианту осуществления настоящего изобретения, который главным образом включает в себя следующие этапы:
[0026] S201: Центральный процессор отправляет информацию описания данных в модуль быстрого перенаправления, причем информация описания данных включает в себя информацию адреса и длины данных, запрошенных пользователем.
[0027] В варианте осуществления, предоставленном посредством настоящего изобретения, модуль быстрого перенаправления является функциональным модулем, который встраивается в PCI-коммутатор или встраивается в контроллер NIC сетевого интерфейса и предоставляет функции прямой отправки и приема. После конфигурирования посредством CPU функциональный модуль может считывать данные в устройстве хранения данных или запоминающем устройстве и отправлять данные в контроллер NIC сетевого интерфейса, выполнять прямой доступ к памяти (прямой доступ к памяти, DMA) и отправку данных, т. е. модуль быстрого перенаправления считывает, на основе DMA, данные, запрошенные пользователем, и перенаправляет данные, запрошенные пользователем, в контроллер сетевого интерфейса.
[0028] В общем, контроллер NIC сетевого интерфейса имеет соответствующую информацию описания данных в запоминающем устройстве. Когда центральный процессор должен отправлять данные, центральный процессор конфигурирует информацию описания данных, например дескриптор передачи (дескриптор передачи). В это время контроллер NIC сетевого интерфейса получает дескриптор передачи данных, которые должны отправляться, и уведомляет внутренний DMA-модуль относительно считывания, согласно полю адреса буфера (адреса буфера) и полю длины (длины) в дескрипторе передачи (дескрипторе передачи), данных из соответствующего адреса и отправки данных. Для каждого фрагмента данных, который должен отправляться, должен быть сконфигурирован дескриптор передачи (дескриптор передачи), и данные отправляются после того, как его дескриптор передачи конфигурируется.
[0029] Если данные, которые должны отправляться, представляют собой данные, которые непрерывно сохраняются, или конкретный поток данных, который может быть прогнозирован посредством центрального процессора, центральный процессор конфигурирует модуль быстрого перенаправления, и контроллер NIC сетевого интерфейса непосредственно отправляет данные в устройство хранения данных (хранилище), так что устройство хранения данных сохраняет данные; или данные могут отправляться непосредственно из устройства хранения данных (хранилища) в контроллер NIC сетевого интерфейса, с тем чтобы выполнять DMA-операции из контроллера NIC сетевого интерфейса в устройство хранения данных (хранилище) и из устройства хранения данных (хранилища) в контроллер NIC сетевого интерфейса без занятия полосы пропускания между PCI-коммутатором и центральным процессором.
[0030] Следовательно, в варианте осуществления настоящего изобретения передача данных не требует вмешательства центрального процессора; центральный процессор должен только конфигурировать информацию описания данных и не должен копировать данные, в силу этого не допуская потребления ресурсов запоминающего устройства вследствие копирования данных.
[0031] Когда линия связи устанавливается для пользователя, идентификатор режима пакетирования (идентификатор пакетирования) назначается пользователю, и идентификатор режима пакетирования доставляется в модуль быстрого перенаправления согласно формату пакетов в ответе пользователя. В варианте осуществления настоящего изобретения идентификатор пакетирования соответствует режиму пакетирования и размещается в списке для пакетирования (packagelist) модуля быстрого перенаправления. Элементом списка главным образом является задание формата пакетов, т. е. контента формата IP-заголовка. Когда данные впоследствии считываются из устройства хранения данных, данные пакетируются согласно заданному формату и данные могут непосредственно отправляться и использоваться.
[0032] Когда пользователь запрашивает данные, центральный процессор принимает, посредством использования контроллера NIC сетевого интерфейса, запрос, отправленный пользователем, и этот запрос переносит такую информацию, как адрес и длина данных, запрошенных пользователем. Центральный процессор отправляет такую информацию, как адрес и длина данных, запрошенных пользователем, в контроллер NIC сетевого интерфейса, с тем чтобы инициировать DMA-модуль контроллера NIC сетевого интерфейса таким образом, что он считывает данные, запрошенные пользователем.
[0033] В качестве варианта осуществления настоящего изобретения центральный процессор может конфигурировать информацию описания данных, например дескриптор передачи (дескриптор передачи), и переносить информацию адреса и длины данных, запрошенных пользователем, в информации описания данных; кроме того, при конфигурировании информации описания данных центральный процессор также может переносить идентификатор режима пакетирования и идентификатор выбора использования пакетирования в информации описания данных, причем идентификатор режима пакетирования соответствует пользователю, запрашивающему данные, и идентификатор выбора использования пакетирования используется для идентификации того, должны или нет пакетироваться данные, запрошенные пользователем. Центральный процессор отправляет информацию описания данных в контроллер сетевого интерфейса, и контроллер сетевого интерфейса перенаправляет информацию описания данных в модуль быстрого перенаправления.
[0034] Формат дескриптора передачи (дескриптора передачи), предоставленного в варианте осуществления настоящего изобретения, показывается на фиг. 3, на котором:
- поле идентификатора выбора использования запоминающего устройства (выбора использования запоминающего устройства) указывает то, должны сохраненные данные считываться из запоминающего устройства (запоминающего устройства) или устройства хранения данных (хранилища), и это может указываться посредством одного двоичного бита (бита), например, если поле равно "1", это указывает, что сохраненные данные должны считываться из запоминающего устройства (запоминающего устройства), а если поле равно "0", это указывает, что сохраненные данные должны считываться из устройства хранения данных (хранилища); или, напротив, если поле равно "0", это указывает, что сохраненные данные должны считываться из запоминающего устройства (запоминающего устройства), а если поле равно "1", это указывает, что сохраненные данные должны считываться из устройства хранения данных (хранилища);
- поле идентификатора выбора использования пакетирования (выбора использования пакетирования) указывает, должен или нет модуль быстрого перенаправления пакетировать либо инкапсулировать считываемые данные;
- поле идентификатора режима пакетирования (идентификатора пакетирования) указывает, какой режим пакетирования или инкапсуляции должен быть использован, причем поле также соответствует пользователю, запрашивающему данные;
- поле адреса буфера (адреса буфера) указывает адрес данных, запрошенных пользователем, причем адрес данных, запрошенных пользователем, предоставляется посредством запроса, который отправляется пользователем при запрашивании данных;
- поле длины (длины) указывает длину данных, запрошенных пользователем; и
- дескриптор передачи (дескриптор передачи) дополнительно включает в себя другие поля управления, которые не описаны в данном документе.
[0035] S202: Модуль быстрого перенаправления считывает, согласно информации описания данных, данные, запрошенные пользователем, и перенаправляет данные, запрошенные пользователем, в контроллер сетевого интерфейса.
[0036] Модуль быстрого перенаправления считывает, согласно информации описания данных (например, дескриптору передачи), такой как адрес буфера, информация длины, идентификатор выбора использования пакетирования и идентификатор выбора использования запоминающего устройства для данных, запрошенных пользователем, данные, запрошенные пользователем, причем данные, запрошенные пользователем, передаются посредством DMA-модуля контроллера сетевого интерфейса.
[0037] В частности, модуль быстрого перенаправления может считывать, согласно такой информации, как информация адреса буфера и длины, включенная в информацию описания данных, данные, запрошенные пользователем, и дополнительно определять, согласно полю идентификатора выбора использования пакетирования (выбора использования пакетирования) в дескрипторе передачи (дескрипторе передачи), то, должны или нет пакетироваться данные, запрошенные пользователем; и если данные, запрошенные пользователем, должны пакетироваться, пакетировать данные, запрошенные пользователем, и перенаправлять пакетированные данные в контроллер сетевого интерфейса. Например, модуль быстрого перенаправления может пакетировать, согласно режиму пакетирования, соответствующему идентификатору режима пакетирования в дескрипторе передачи (дескрипторе передачи), данные, запрошенные пользователем, и перенаправлять пакетированные данные в контроллер сетевого интерфейса.
[0038] Согласно другому примеру, модуль быстрого перенаправления также может определять, согласно идентификатору выбора использования запоминающего устройства, то, данные, запрошенные пользователем, должны считываться из запоминающего устройства, или данные, запрошенные пользователем, должны считываться из устройства хранения данных; и если определено то, что данные, запрошенные пользователем, должны считываться из устройства хранения данных, считывать данные, запрошенные пользователем, из устройства хранения данных и перенаправлять данные, запрошенные пользователем, в контроллер сетевого интерфейса; в противном случае, считывать данные, запрошенные пользователем, из запоминающего устройства и перенаправлять данные, запрошенные пользователем, в контроллер сетевого интерфейса.
[0039] S203: Контроллер сетевого интерфейса отправляет данные, запрошенные пользователем, пользователю.
[0040] Как видно из вышеприведенного варианта осуществления настоящего изобретения центральный процессор отправляет информацию адреса и длины в модуль быстрого перенаправления, модуль быстрого перенаправления считывает данные, запрошенные пользователем, и перенаправляет данные, запрошенные пользователем, в контроллер сетевого интерфейса, и контроллер сетевого интерфейса отправляет данные, запрошенные пользователем. Процесс передачи данных полностью выполняется посредством использования независимого и прямого канала между контроллером сетевого интерфейса и устройством хранения данных, и данные не проходят через центральный процессор и запоминающее устройство; центральный процессор должен только конфигурировать информацию описания данных и не должен копировать данные. Следовательно, по сравнению с предшествующим уровнем техники, посредством использования способа, предоставленного в варианте осуществления настоящего изобретения, после того, как возрастает объем услуг (например, должна быть увеличена существующая полоса пропускания сетевого адаптера и существующая емкость хранения), должны добавляться только устройства, включающие в себя контроллер сетевого интерфейса и устройство хранения данных, и затраты на запоминающее устройство и центральный процессор не должны возрастать. С одной стороны, может сокращаться использование запоминающего устройства и центрального процессора, и повышается производительность всей системы; с другой стороны, исключается проблема барьера памяти.
[0041] Фиг. 4 является блок-схемой последовательности операций способа для быстрого распределения данных согласно варианту осуществления настоящего изобретения. Этот вариант осуществления может быть выполнен посредством модуля быстрого перенаправления в способе для быстрого распределения данных, проиллюстрированном на фиг. 2. Как показано на фиг. 4, способ главным образом включает в себя следующие этапы:
[0042] S401: Прием информации описания данных, которая отправляется посредством центрального процессора, причем информация описания данных включает в себя информацию адреса и длины данных, запрошенных пользователем.
[0043] Когда пользователь запрашивает данные, центральный процессор принимает, посредством использования контроллера NIC сетевого интерфейса, запрос, отправленный пользователем, и этот запрос переносит такую информацию, как адрес и длина данных, запрошенных пользователем. Центральный процессор отправляет такую информацию, как адрес и длина данных, запрошенных пользователем, в контроллер NIC сетевого интерфейса, с тем чтобы инициировать DMA-модуль контроллера NIC сетевого интерфейса таким образом, что он считывает данные, запрошенные пользователем.
[0044] В качестве варианта осуществления настоящего изобретения центральный процессор может конфигурировать информацию описания данных, например, дескриптор передачи (дескриптор передачи) и переносить информацию адреса и длины данных, запрошенных пользователем, в информации описания данных; кроме того, при конфигурировании информации описания данных центральный процессор также может переносить идентификатор режима пакетирования и идентификатор выбора использования пакетирования в информации описания данных, причем идентификатор режима пакетирования соответствует пользователю, запрашивающему данные, и идентификатор выбора использования пакетирования используется для идентификации того, должны или нет пакетироваться данные, запрошенные пользователем. Конкретный формат дескриптора передачи показывается на фиг. 3, и для конкретного его содержания следует обратиться к соответствующему текстовому описанию в вышеприведенном варианте осуществления.
[0045] Центральный процессор отправляет информацию описания данных в контроллер сетевого интерфейса, и модуль быстрого перенаправления принимает информацию описания данных, перенаправляемую посредством контроллера сетевого интерфейса.
[0046] S402: Считывание, согласно информации описания данных, данных, запрошенных пользователем, и перенаправление данных, запрошенных пользователем, в контроллер сетевого интерфейса, так что контроллер сетевого интерфейса отправляет данные, запрошенные пользователем, пользователю.
[0047] Модуль быстрого перенаправления считывает, согласно информации описания данных (например, дескриптору передачи), такой как адрес буфера, информация длины, идентификатор выбора использования пакетирования и идентификатор выбора использования запоминающего устройства для данных, запрошенных пользователем, данные, запрошенные пользователем, причем данные, запрошенные пользователем, передаются посредством DMA-модуля контроллера сетевого интерфейса.
[0048] В частности, модуль быстрого перенаправления может считывать, согласно такой информации описания данных, как информация адреса буфера и длины, данные, запрошенные пользователем, и дополнительно определять, согласно полю идентификатора выбора использования пакетирования (выбора использования пакетирования) в дескрипторе передачи (дескрипторе передачи), то, должны или нет пакетироваться данные, запрошенные пользователем; и если данные, запрошенные пользователем, должны пакетироваться, пакетировать данные, запрошенные пользователем, и перенаправлять пакетированные данные в контроллер сетевого интерфейса. Например, модуль быстрого перенаправления может пакетировать, согласно режиму пакетирования, соответствующему идентификатору режима пакетирования в дескрипторе передачи (дескрипторе передачи), данные, запрошенные пользователем, и перенаправлять пакетированные данные в контроллер сетевого интерфейса.
[0049] Согласно другому примеру, модуль быстрого перенаправления также может определять, согласно идентификатору выбора использования запоминающего устройства, то, данные, запрошенные пользователем, должны считываться из запоминающего устройства, или данные, запрошенные пользователем, должны считываться из устройства хранения данных; и если определено то, что данные, запрошенные пользователем, должны считываться из устройства хранения данных, считывать данные, запрошенные пользователем, из устройства хранения данных и перенаправлять данные, запрошенные пользователем, в контроллер сетевого интерфейса; в противном случае считывать данные, запрошенные пользователем, из запоминающего устройства и перенаправлять данные, запрошенные пользователем, в контроллер сетевого интерфейса.
[0050] Следует отметить, что модуль быстрого перенаправления в этом варианте осуществления является функциональным модулем, который встраивается в PCI-коммутатор или встраивается в контроллер NIC сетевого интерфейса и предоставляет функции прямой отправки и приема. После конфигурирования посредством центрального процессора функциональный модуль может считывать данные в устройстве хранения данных (хранилище) или запоминающем устройстве и отправлять данные в контроллер NIC сетевого интерфейса, выполнять прямой доступ к памяти (прямой доступ к памяти, DMA) и отправку данных, т. е. модуль быстрого перенаправления считывает, на основе DMA, данные, запрошенные пользователем, и перенаправляет данные, запрошенные пользователем, в контроллер сетевого интерфейса.
[0051] Фиг. 5 является принципиальной структурной схемой системы для быстрого распределения данных согласно варианту осуществления настоящего изобретения. Для простоты описания показаны только части, которые связаны с вариантом осуществления настоящего изобретения, и функциональные модули/блоки, включенные в части, могут представлять собой программные модули/блоки, аппаратные модули/блоки или модули/блоки, интегрирующие программное обеспечение и аппаратные средства (этот принцип описания является применимым к каждому варианту осуществления, предоставленному в этом подробном описании). Система для быстрого распределения данных, проиллюстрированная на фиг. 5, включает в себя центральный процессор 501, модуль 502 быстрого перенаправления и контроллер 503 сетевого интерфейса, при этом:
- центральный процессор 501 сконфигурирован с возможностью отправлять информацию описания данных в модуль 502 быстрого перенаправления, причем информация описания данных включает в себя информацию адреса и длины данных, запрошенных пользователем;
- модуль 502 быстрого перенаправления сконфигурирован с возможностью считывать, согласно информации описания данных, данные, запрошенные пользователем, и перенаправлять данные, запрошенные пользователем, в контроллер 503 сетевого интерфейса; и
- контроллер 503 сетевого интерфейса сконфигурирован с возможностью отправлять данные, запрошенные пользователем, пользователю. Когда линия связи устанавливается для пользователя, идентификатор режима пакетирования (идентификатор пакетирования) назначается пользователю, и идентификатор режима пакетирования доставляется в модуль быстрого перенаправления согласно формату пакетов в ответе пользователя. В варианте осуществления настоящего изобретения идентификатор пакетирования соответствует режиму пакетирования и размещается в списке для пакетирования (packagelist) модуля быстрого перенаправления. Элементом списка главным образом является задание формата пакетов, т. е. контента формата IP-заголовка. Когда данные впоследствии считываются из устройства хранения данных, данные пакетируются согласно заданному формату, и данные могут непосредственно отправляться и использоваться.
[0052] Когда пользователь запрашивает данные, центральный процессор 501 принимает, посредством использования контроллера 503 сетевого интерфейса, запрос, отправленный пользователем, и этот запрос переносит такую информацию, как адрес и длина данных, запрошенных пользователем. Центральный процессор 501 отправляет такую информацию, как адрес и длина данных, запрошенных пользователем, в контроллер 503 сетевого интерфейса, с тем чтобы инициировать DMA-модуль контроллера 503 сетевого интерфейса таким образом, что он считывает данные, запрошенные пользователем.
[0053] Фиг. 6 показывает систему для быстрого распределения данных согласно другому варианту осуществления настоящего изобретения, в котором центральный процессор 501 может включать в себя блок 601 конфигурирования и блок 602 отправки, при этом:
- блок 601 конфигурирования сконфигурирован с возможностью конфигурировать информацию описания данных, например дескриптор передачи (дескриптор передачи), и, как показано на фиг. 3, переносить информацию адреса и длины данных, запрошенных пользователем, в информации описания данных; кроме того, при конфигурировании информации описания данных, блок 601 конфигурирования также может переносить идентификатор режима пакетирования, идентификатор выбора использования пакетирования и идентификатор выбора использования запоминающего устройства в информации описания данных, причем идентификатор режима пакетирования соответствует пользователю, запрашивающему данные, идентификатор выбора использования пакетирования используется для идентификации того, должны или нет пакетироваться данные, запрошенные пользователем, и идентификатор выбора использования запоминающего устройства используется для идентификации того, должны сохраненные данные считываться из запоминающего устройства (запоминающего устройства) или устройства хранения данных (хранилища); и
- блок 602 отправки сконфигурирован с возможностью отправлять информацию описания данных в контроллер 503 сетевого интерфейса, так что контроллер 503 сетевого интерфейса перенаправляет информацию описания данных в модуль 502 быстрого перенаправления.
[0054] В варианте осуществления, предоставленном посредством настоящего изобретения, модуль 502 быстрого перенаправления является функциональным модулем, который встраивается в PCI-коммутатор или встраивается в контроллер 503 сетевого интерфейса и предоставляет функции прямой отправки и приема. После конфигурирования посредством центрального процессора 501 функциональный модуль может считывать данные в устройстве хранения данных или запоминающем устройстве и отправлять данные в контроллер NIC сетевого интерфейса, выполнять DMA и отправку данных, т. е. модуль 502 быстрого перенаправления считывает, на основе DMA, данные, запрошенные пользователем, и перенаправляет данные, запрошенные пользователем, в контроллер сетевого интерфейса.
[0055] В общем, контроллер 503 сетевого интерфейса имеет соответствующий связный список дескрипторов передачи (дескрипторов передачи) в запоминающем устройстве. Когда центральный процессор 501 должен отправлять данные, центральный процессор 501 конфигурирует дескриптор передачи (дескриптор передачи). В это время контроллер 503 сетевого интерфейса получает данные, которые должны отправляться, и уведомляет внутренний DMA-модуль относительно считывания, согласно полю адреса буфера (адреса буфера) и полю длины (длины) в дескрипторе передачи (дескрипторе передачи), данных из соответствующего адреса и отправки данных. Для каждого фрагмента данных, который должен отправляться, должен быть сконфигурирован дескриптор передачи (дескриптор передачи), и каждый раз, когда дескриптор передачи конфигурируется, отправляется фрагмент данных.
[0056] Если данные, которые должны отправляться, представляют собой фрагмент непрерывных данных или фиксированный поток данных, который может быть прогнозирован посредством центрального процессора 501, центральный процессор 501 конфигурирует модуль быстрого перенаправления, и контроллер 503 сетевого интерфейса непосредственно отправляет данные в устройство хранения данных (хранилище), так что устройство хранения данных сохраняет данные; или данные могут отправляться непосредственно из устройства хранения данных (хранилища) в контроллер 503 сетевого интерфейса, с тем чтобы выполнять DMA-операции из контроллера 503 сетевого интерфейса в устройство хранения данных (хранилище) и из устройства хранения данных (хранилища) в контроллер 503 сетевого интерфейса без занятия полосы пропускания между PCI-коммутатором и центральным процессором.
[0057] Следовательно, в варианте осуществления настоящего изобретения передача данных не требует вмешательства центрального процессора; центральный процессор должен только конфигурировать информацию описания данных и не должен копировать данные, поскольку копирование данных приводит к потреблению ресурсов запоминающего устройства.
[0058] Фиг. 7 показывает систему для быстрого распределения данных согласно другому варианту осуществления настоящего изобретения, в котором модуль 502 быстрого перенаправления может включать в себя первый блок 701 определения и блок 702 пакетирования, при этом:
- первый блок 701 определения сконфигурирован с возможностью считывать, согласно информации описания данных, данные, запрошенные пользователем, и определять, согласно идентификатору выбора использования пакетирования, то, должны или нет пакетироваться данные, запрошенные пользователем; и
- блок 702 пакетирования сконфигурирован с возможностью: если результат определения первого блока 701 определения заключается в том, что данные, запрошенные пользователем, должны пакетироваться, пакетировать данные, запрошенные пользователем, и перенаправлять пакетированные данные в контроллер 503 сетевого интерфейса.
[0059] Фиг. 8 показывает систему для быстрого распределения данных согласно другому варианту осуществления настоящего изобретения, в котором модуль 502 быстрого перенаправления может включать в себя второй блок 801 определения и блок 802 перенаправления, при этом:
- второй блок 801 определения сконфигурирован с возможностью определять, согласно идентификатору выбора использования запоминающего устройства, то, данные, запрошенные пользователем, должны считываться из запоминающего устройства, или данные, запрошенные пользователем, должны считываться из устройства хранения данных; и
- блок 802 перенаправления сконфигурирован с возможностью: если результат определения второго блока 801 определения заключается в том, что данные, запрошенные пользователем, должны считываться из устройства хранения данных, считывать данные, запрошенные пользователем, из устройства хранения данных и перенаправлять данные, запрошенные пользователем, в контроллер 503 сетевого интерфейса; в противном случае, считывать данные, запрошенные пользователем, из запоминающего устройства и перенаправлять данные, запрошенные пользователем, в контроллер 503 сетевого интерфейса.
[0060] Центральный процессор 501, проиллюстрированный на любом из фиг. 5-8, дополнительно включает в себя модуль 901 доставки, показанный на фиг. 9. Модуль 901 доставки сконфигурирован с возможностью доставлять идентификатор режима пакетирования в модуль 502 быстрого перенаправления, причем идентификатор режима пакетирования соответствует режиму пакетирования.
[0061] Фиг. 10 является принципиальной структурной схемой устройства для быстрого распределения данных согласно варианту осуществления настоящего изобретения. Для простоты описания показаны только части, которые связаны с вариантом осуществления настоящего изобретения, и функциональные модули/блоки, включенные в части, могут представлять собой программные модули/блоки, аппаратные модули/блоки или модули/блоки, интегрирующие программное обеспечение и аппаратные средства (этот принцип описания является применимым к каждому варианту осуществления, предоставленному в этом подробном описании). Устройство для быстрого распределения данных, проиллюстрированное на фиг. 10, может представлять собой модуль 502 быстрого перенаправления, проиллюстрированный на любом из фиг. 5-9, и включает в себя приемный модуль 1001 и модуль 1002 считывания данных, при этом:
- приемный модуль 1001 сконфигурирован с возможностью принимать информацию описания данных, которая отправляется посредством центрального процессора, причем информация описания данных может быть дескриптором передачи (дескриптором передачи), проиллюстрированным на фиг. 3, и включает в себя информацию адреса и длины данных, запрошенных пользователем; и
- модуль 1002 считывания данных сконфигурирован с возможностью считывать, согласно информации описания данных, данные, запрошенные пользователем, и перенаправлять данные, запрошенные пользователем, в контроллер сетевого интерфейса, так что контроллер сетевого интерфейса отправляет данные, запрошенные пользователем, пользователю. В частности, модуль 1002 считывания данных сконфигурирован с возможностью считывать, на основе прямого доступа к памяти согласно информации описания данных, данные, запрошенные пользователем, и перенаправлять данные, запрошенные пользователем, в контроллер сетевого интерфейса.
[0062] Следовательно, в этом варианте осуществления передача данных не требует вмешательства центрального процессора; центральный процессор должен только конфигурировать информацию описания данных и не должен копировать данные, поскольку копирование данных приводит к потреблению ресурсов запоминающего устройства.
[0063] Следует отметить, что согласно вышеприведенному способу реализации устройства для быстрого распределения данных, разделение функциональных модулей является только примерным, и при фактическом применении вышеприведенные функции могут назначаться различным функциональным модулям для реализации согласно требованиям, например требованиям конфигурации связанных аппаратных средств или удобству для реализации программного обеспечения; т. е. внутренняя структура устройства для быстрого распределения данных разделяется на различные функциональные модули, с тем чтобы выполнять все или часть функций в вышеприведенном описании. Кроме того, при фактическом применении соответствующие функциональные модули в этом варианте осуществления могут быть реализованы посредством соответствующих аппаратных средств и также могут выполняться посредством соответствующих аппаратных средств, выполняющих соответствующее программное обеспечение, например, вышеприведенный приемный модуль может представлять собой аппаратные средства, выполняющие прием информации описания данных, отправленной посредством центрального процессора, например приемное устройство, а также может представлять собой общий процессор, допускающий выполнение соответствующей компьютерной программы и в силу этого осуществление вышеприведенных функций, либо другое аппаратное устройство (вышеприведенный принцип описания является применимым к каждому варианту осуществления, предоставленному в этом подробном описании).
[0064] Дополнительно информация описания данных дополнительно может включать в себя идентификатор режима пакетирования и идентификатор выбора использования пакетирования, причем идентификатор режима пакетирования соответствует пользователю, запрашивающему данные, и идентификатор выбора использования пакетирования используется для идентификации того, должны или нет пакетироваться данные, запрошенные пользователем. Модуль 1002 считывания данных, проиллюстрированный на фиг. 10, может включать в себя первый блок 1101 определения и блок 1102 пакетирования, как показано на фиг. 11, который показывает устройство для быстрого распределения данных согласно другому варианту осуществления настоящего изобретения, при этом:
- первый блок 1101 определения сконфигурирован с возможностью считывать, согласно информации описания данных, данные, запрошенные пользователем, и определять, согласно идентификатору выбора использования пакетирования, то, должны или нет пакетироваться данные, запрошенные пользователем; и
- блок 1102 пакетирования сконфигурирован с возможностью: если результат определения первого блока 1101 определения заключается в том, что данные, запрошенные пользователем, должны пакетироваться, пакетировать данные, запрошенные пользователем, и перенаправлять пакетированные данные в контроллер сетевого интерфейса.
[0065] Дополнительно информация описания данных дополнительно может включать в себя идентификатор выбора использования запоминающего устройства, причем идентификатор выбора использования запоминающего устройства используется для идентификации того, данные, запрошенные пользователем, должны считываться из запоминающего устройства, или данные, запрошенные пользователем, должны считываться из устройства хранения данных. Модуль 1002 считывания данных, проиллюстрированный на фиг. 10, может включать в себя второй блок 1201 определения и блок 1202 перенаправления, как показано на фиг. 12, который показывает устройство для быстрого распределения данных согласно другому варианту осуществления настоящего изобретения, при этом:
- второй блок 1201 определения сконфигурирован с возможностью определять, согласно идентификатору выбора использования запоминающего устройства, то, данные, запрошенные пользователем, должны считываться из запоминающего устройства, или данные, запрошенные пользователем, должны считываться из устройства хранения данных; и
- блок 1202 перенаправления сконфигурирован с возможностью: если результат определения второго блока 1201 определения заключается в том, что данные, запрошенные пользователем, должны считываться из устройства хранения данных, считывать данные, запрошенные пользователем, из устройства хранения данных и перенаправлять данные, запрошенные пользователем, в контроллер сетевого интерфейса; в противном случае, считывать данные, запрошенные пользователем, из запоминающего устройства и перенаправлять данные, запрошенные пользователем, в контроллер сетевого интерфейса.
[0066] Следует отметить, что такой контент, как обмен информацией между модулями/блоками устройства и процессы его выполнения, основан на идее, идентичной идее вариантов осуществления способа настоящего изобретения, и формирует технические эффекты, идентичные техническим эффектам вариантов осуществления способа настоящего изобретения. На предмет конкретного контента следует обратиться к описанию в вариантах осуществления способа настоящего изобретения, и подробности не повторяются в данном документе.
[0067] Специалисты в данной области техники могут понять, что все или часть этапов способов в вышеприведенных вариантах осуществления могут выполняться посредством программы, инструктирующей релевантным аппаратным средствам, например, посредством использования одного или более или всех из следующих способов:
[0068] Способ 1:
- отправка, посредством центрального процессора, информации описания данных в модуль быстрого перенаправления, причем информация описания данных включает в себя информацию адреса и длины данных, запрошенных пользователем;
- считывание, посредством модуля быстрого перенаправления согласно информации описания данных, данных, запрошенных пользователем, и перенаправление данных, запрошенных пользователем, в контроллер сетевого интерфейса; и
- отправка, посредством контроллера сетевого интерфейса, данных, запрошенных пользователем, пользователю.
[0069] Способ 2:
- прием информации описания данных, которая отправляется посредством центрального процессора, причем информация описания данных включает в себя информацию адреса и длины данных, запрошенных пользователем; и
- считывание, согласно информации описания данных, данных, запрошенных пользователем, и перенаправление данных, запрошенных пользователем, в контроллер сетевого интерфейса, так что контроллер сетевого интерфейса отправляет данные, запрошенные пользователем, пользователю.
[0070] Программа может сохраняться на машиночитаемом носителе хранения данных. Носитель хранения данных может включать в себя: постоянное запоминающее устройство (ROM, постоянное запоминающее устройство), оперативное запоминающее устройство (RAM, оперативное запоминающее устройство), магнитный диск, оптический диск и т. п.
[0071] Способ, устройство и система для быстрого распределения данных, предоставляемые в вариантах осуществления настоящего изобретения, подробно описываются выше. В этом подробном описании конкретные примеры используются для того, чтобы описывать принцип и способы реализации настоящего изобретения, и описание вариантов осуществления служит только для того, чтобы обеспечивать доступность для понимания способа и базовой идеи настоящего изобретения. Между тем, специалисты в данной области техники на основе идеи настоящего изобретения могут осуществлять модификации относительно конкретных способов реализации и объема применения. Следовательно, содержание этого подробного описания не должно истолковываться как ограничение на настоящее изобретение.

Claims (16)

1. Способ для быстрого распределения данных, содержащий этапы, на которых:
отправляют, посредством центрального процессора, информацию описания данных в модуль быстрого перенаправления, при этом информация описания данных содержит информацию адреса и длины данных, запрошенных пользователем;
считывают, посредством модуля быстрого перенаправления согласно информации описания данных, данные, запрошенные пользователем, из хранилища и перенаправляют данные, запрошенные пользователем, в контроллер сетевого интерфейса; и
отправляют, посредством контроллера сетевого интерфейса, данные, запрошенные пользователем, пользователю;
при этом центральный процессор, хранилище и контроллер сетевого интерфейса взаимосвязаны с помощью PCI-коммутатора и модуль быстрого перенаправления представляет собой функциональный модуль, который встроен в PCI-коммутатор и обеспечивает функции прямой отправки и приема.
2. Способ по п. 1, в котором отправка посредством центрального процессора информации описания данных в модуль быстрого перенаправления содержит этапы, на которых:
конфигурируют, посредством центрального процессора, информацию описания данных и переносят информацию адреса и длины данных, запрошенных пользователем, в информации описания данных; и
отправляют, посредством центрального процессора, информацию описания данных в контроллер сетевого интерфейса и перенаправляют, посредством контроллера сетевого интерфейса, информацию описания данных в модуль быстрого перенаправления.
3. Способ по п. 2, в котором конфигурирование посредством центрального процессора информации описания данных дополнительно содержит этап, на котором:
переносят, посредством центрального процессора, идентификатор режима пакетирования и идентификатор выбора использования пакетирования в информации описания данных, при этом идентификатор режима пакетирования соответствует пользователю, запрашивающему данные, и идентификатор выбора использования пакетирования используется для идентификации того, должны или нет пакетироваться данные, запрошенные пользователем; и
считывание, посредством модуля быстрого перенаправления согласно информации описания данных, данных, запрошенных пользователем, и перенаправление данных, запрошенных пользователем, в контроллер сетевого интерфейса содержит этапы, на которых:
считывают, посредством модуля быстрого перенаправления согласно информации описания данных, данные, запрошенные пользователем, и определяют согласно идентификатору выбора использования пакетирования, должны или нет пакетироваться данные, запрошенные пользователем; и если данные, запрошенные пользователем, должны пакетироваться, пакетируют данные, запрошенные пользователем, и перенаправляют пакетированные данные в контроллер сетевого интерфейса.
4. Способ по п. 3, в котором пакетирование данных, запрошенных пользователем, и перенаправление пакетированных данных в контроллер сетевого интерфейса содержит этапы, на которых:
пакетируют, посредством модуля быстрого перенаправления согласно режиму пакетирования, соответствующему идентификатору режима пакетирования, данные, запрошенные пользователем, и перенаправляют пакетированные данные в контроллер сетевого интерфейса.
5. Способ по п. 1, в котором считывание, посредством модуля быстрого перенаправления согласно информации описания данных, данных, запрошенных пользователем, и перенаправление данных, запрошенных пользователем, в контроллер сетевого интерфейса содержит этапы, на которых:
считывают, посредством модуля быстрого перенаправления на основе прямого доступа к памяти согласно информации описания данных, данные, запрошенные пользователем, и перенаправляют данные, запрошенные пользователем, в контроллер сетевого интерфейса.
6. Способ для быстрого распределения данных, содержащий этапы, на которых:
принимают информацию описания данных, которая отправляется посредством центрального процессора, при этом информация описания данных содержит информацию адреса и длины данных, запрошенных пользователем; и
считывают, согласно информации описания данных, данные, запрошенные пользователем, из хранилища и перенаправляют данные, запрошенные пользователем, в контроллер сетевого интерфейса, так что контроллер сетевого интерфейса отправляет данные, запрошенные пользователем, пользователю;
при этом центральный процессор, хранилище и контроллер сетевого интерфейса взаимосвязаны с помощью PCI-коммутатора и модуль быстрого перенаправления представляет собой функциональный модуль, который встроен в PCI-коммутатор и обеспечивает функции прямой отправки и приема.
7. Способ по п. 6, в котором информация описания данных дополнительно содержит идентификатор режима пакетирования и идентификатор выбора использования пакетирования, при этом идентификатор режима пакетирования соответствует пользователю, запрашивающему данные, и идентификатор выбора использования пакетирования используется для идентификации того, должны или нет пакетироваться данные, запрошенные пользователем; и
считывание, согласно информации описания данных, данных, запрошенных пользователем, и перенаправление данных, запрошенных пользователем, в контроллер сетевого интерфейса содержит этапы, на которых:
считывают, согласно информации описания данных, данные, запрошенные пользователем, и определяют, согласно идентификатору выбора использования пакетирования, должны или нет пакетироваться данные, запрошенные пользователем; и если данные, запрошенные пользователем, должны пакетироваться, пакетируют данные, запрошенные пользователем, и перенаправляют пакетированные данные в контроллер сетевого интерфейса.
8. Способ по п. 7, в котором пакетирование данных, запрошенных пользователем, и перенаправление пакетированных данных в контроллер сетевого интерфейса содержит этапы, на которых:
пакетируют, согласно режиму пакетирования, соответствующему идентификатору режима пакетирования, данные, запрошенные пользователем, и перенаправляют пакетированные данные в контроллер сетевого интерфейса.
9. Способ по п. 6, в котором считывание, согласно информации описания данных, данных, запрошенных пользователем, и перенаправление данных, запрошенных пользователем, в контроллер сетевого интерфейса содержит этапы, на которых:
считывают, на основе прямого доступа к памяти согласно информации описания данных, данные, запрошенные пользователем, и перенаправляют данные, запрошенные пользователем, в контроллер сетевого интерфейса.
10. Система для быстрого распределения данных, содержащая центральный процессор, контроллер сетевого интерфейса и модуль быстрого перенаправления, при этом:
центральный процессор сконфигурирован с возможностью отправлять информацию описания данных в модуль быстрого перенаправления, при этом информация описания данных содержит информацию адреса и длины данных, запрошенных пользователем;
модуль быстрого перенаправления сконфигурирован с возможностью считывать, согласно информации описания данных, данные, запрошенные пользователем, из хранилища и перенаправлять данные, запрошенные пользователем, в контроллер сетевого интерфейса; и
контроллер сетевого интерфейса сконфигурирован с возможностью отправлять данные, запрошенные пользователем, пользователю;
при этом центральный процессор, хранилище и контроллер сетевого интерфейса взаимосвязаны с помощью PCI-коммутатора и модуль быстрого перенаправления представляет собой функциональный модуль, который встроен в PCI-коммутатор и обеспечивает функции прямой отправки и приема.
11. Система по п. 10, в которой центральный процессор содержит:
блок конфигурирования, сконфигурированный с возможностью конфигурировать информацию описания данных и переносить информацию адреса и длины данных, запрошенных пользователем, в информации описания данных; и
блок отправки, сконфигурированный с возможностью отправлять информацию описания данных в контроллер сетевого интерфейса, так что контроллер сетевого интерфейса перенаправляет информацию описания данных в модуль быстрого перенаправления.
12. Система по п. 11, в которой блок конфигурирования дополнительно сконфигурирован с возможностью переносить идентификатор режима пакетирования и идентификатор выбора использования пакетирования в информации описания данных, при этом идентификатор режима пакетирования соответствует пользователю, запрашивающему данные, и идентификатор выбора использования пакетирования используется для идентификации того, должны или нет пакетироваться данные, запрошенные пользователем; и
модуль быстрого перенаправления содержит первый блок определения и блок пакетирования, при этом:
первый блок определения сконфигурирован с возможностью: считывать, согласно информации описания данных, данные, запрошенные пользователем, и определять, согласно идентификатору выбора использования пакетирования, должны или нет пакетироваться данные, запрошенные пользователем; и
блок пакетирования сконфигурирован с возможностью: если результат определения первого блока определения заключается в том, что данные, запрошенные пользователем, должны пакетироваться, пакетировать данные, запрошенные пользователем, и перенаправлять пакетированные данные в контроллер сетевого интерфейса.
13. Система по п. 11, в которой считывание, посредством модуля быстрого перенаправления согласно информации описания данных, данных, запрошенных пользователем, и перенаправление данных, запрошенных пользователем, в контроллер сетевого интерфейса, в частности, содержит: считывание, посредством модуля быстрого перенаправления на основе прямого доступа к памяти согласно информации описания данных, данных, запрошенных пользователем, и перенаправление данных, запрошенных пользователем, в контроллер сетевого интерфейса.
14. Устройство для быстрого распределения данных, содержащее:
приемный модуль, сконфигурированный с возможностью принимать информацию описания данных, которая отправляется посредством центрального процессора, при этом информация описания данных содержит информацию адреса и длины данных, запрошенных пользователем; и
модуль считывания данных, сконфигурированный с возможностью считывать, согласно информации описания данных, данные, запрошенные пользователем, из хранилища и перенаправлять данные, запрошенные пользователем, в контроллер сетевого интерфейса, так что контроллер сетевого интерфейса отправляет данные, запрошенные пользователем, пользователю.
15. Устройство по п. 14, в котором информация описания данных дополнительно содержит идентификатор режима пакетирования и идентификатор выбора использования пакетирования, при этом идентификатор режима пакетирования соответствует пользователю, запрашивающему данные, и идентификатор выбора использования пакетирования используется для идентификации того, должны или нет пакетироваться данные, запрошенные пользователем; и
модуль считывания данных содержит первый блок определения и блок пакетирования, при этом:
первый блок определения сконфигурирован с возможностью: считывать, согласно информации описания данных, данные, запрошенные пользователем, и определять, согласно идентификатору выбора использования пакетирования, должны или нет пакетироваться данные, запрошенные пользователем; и
блок пакетирования сконфигурирован с возможностью: если результат определения первого блока определения заключается в том, что данные, запрошенные пользователем, должны пакетироваться, пакетировать данные, запрошенные пользователем, и перенаправлять пакетированные данные в контроллер сетевого интерфейса.
16. Устройство по п. 14, в котором модуль считывания данных, в частности, сконфигурирован с возможностью считывать, на основе прямого доступа к памяти согласно информации описания данных, данные, запрошенные пользователем, и перенаправлять данные, запрошенные пользователем, в контроллер сетевого интерфейса.
RU2014121210/08A 2011-10-27 2011-10-27 Способ и устройство для быстрого распределения данных RU2589398C2 (ru)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2011/081366 WO2012167531A1 (zh) 2011-10-27 2011-10-27 一种数据快速分发方法和装置

Publications (2)

Publication Number Publication Date
RU2014121210A RU2014121210A (ru) 2015-12-10
RU2589398C2 true RU2589398C2 (ru) 2016-07-10

Family

ID=45986284

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2014121210/08A RU2589398C2 (ru) 2011-10-27 2011-10-27 Способ и устройство для быстрого распределения данных

Country Status (8)

Country Link
US (1) US9774651B2 (ru)
EP (1) EP2755363B1 (ru)
JP (1) JP5966229B2 (ru)
KR (1) KR20140065009A (ru)
CN (1) CN102439983B (ru)
AU (1) AU2011370439B2 (ru)
RU (1) RU2589398C2 (ru)
WO (1) WO2012167531A1 (ru)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2791433C1 (ru) * 2019-03-27 2023-03-07 Уси Хиски Медикал Текнолоджис Ко., Лтд. Устройство и способ передачи данных и считываемый носитель данных
US11803490B2 (en) 2019-03-27 2023-10-31 Wuxi Hisky Medical Technologies Co., Ltd. Apparatus and method for data transmission and readable storage medium

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101670342B1 (ko) 2013-10-29 2016-10-28 후아웨이 테크놀러지 컴퍼니 리미티드 데이터 처리 시스템 및 데이터 처리 방법
CN105337923B (zh) * 2014-05-26 2019-07-12 腾讯科技(北京)有限公司 数据分发方法和系统及数据发送装置和数据接收装置
CN105808345B (zh) * 2014-12-31 2019-03-08 华为技术有限公司 数据处理方法、加速引擎、控制板和系统
JP6493426B2 (ja) * 2017-02-02 2019-04-03 日本電気株式会社 通信システム、通信制御方法および通信プログラム
CN107743101B (zh) * 2017-09-26 2020-10-09 杭州迪普科技股份有限公司 一种数据的转发方法及装置
CN111400214B (zh) * 2020-02-27 2021-06-18 深圳震有科技股份有限公司 一种双核共用网口的实现方法、智能终端及存储介质
CN111782565B (zh) * 2020-06-30 2021-09-14 北京百度网讯科技有限公司 Gpu服务器和数据传输方法
CN112383801B (zh) * 2020-11-10 2023-04-07 重庆紫光华山智安科技有限公司 媒体流分发方法、装置、分发服务器及存储介质
CN113190476A (zh) * 2021-04-14 2021-07-30 摩尔线程智能科技(北京)有限责任公司 数据传输方法和装置
CN116886719B (zh) * 2023-09-05 2024-01-23 苏州浪潮智能科技有限公司 存储系统的数据处理方法、装置、存储系统、设备及介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7099317B2 (en) * 2000-06-09 2006-08-29 Broadcom Corporation Gigabit switch with multicast handling
RU2388039C2 (ru) * 2003-12-31 2010-04-27 Майкрософт Корпорейшн Облегченный протокол ввода/вывода

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5442797A (en) * 1991-12-04 1995-08-15 Casavant; Thomas L. Latency tolerant risc-based multiple processor with event driven locality managers resulting from variable tagging
US6333932B1 (en) * 1994-08-22 2001-12-25 Fujitsu Limited Connectionless communications system, its test method, and intra-station control system
US5633870A (en) 1995-07-07 1997-05-27 Sun Microsystems, Inc. Method and apparatus for controlling data flow through an ATM interface
US5924094A (en) * 1996-11-01 1999-07-13 Current Network Technologies Corporation Independent distributed database system
US7133940B2 (en) 1997-10-14 2006-11-07 Alacritech, Inc. Network interface device employing a DMA command queue
US6970451B1 (en) * 1999-10-12 2005-11-29 At&T Corp. Smart routers-simple optics: network architecture for IP over WDM
DE60044179D1 (de) * 1999-12-28 2010-05-27 Sony Corp System und Verfahren für den kommerziellen Verkehr von Bildern
US7093026B2 (en) * 2000-02-14 2006-08-15 Matsushita Electric Industrial, Co. Ltd Data transmission system
EP1394999A1 (en) * 2002-08-07 2004-03-03 Infineon Technologies AG Method for routing of data packets and routing apparatus
US8176428B2 (en) 2002-12-03 2012-05-08 Datawind Net Access Corporation Portable internet access device back page cache
US7565454B2 (en) 2003-07-18 2009-07-21 Microsoft Corporation State migration in multiple NIC RDMA enabled devices
CN1330139C (zh) * 2003-07-31 2007-08-01 华为技术有限公司 多协议标签交换(mpls)支持多端口虚拟局域网(vlan)的方法
CN100428185C (zh) * 2003-10-20 2008-10-22 罗得岛及普罗维登斯属地高等教育管理委员会 存储服务器的自底向上高速缓存结构
JP2006293799A (ja) * 2005-04-13 2006-10-26 Sony Corp 情報処理装置、および情報処理方法
JP2006338353A (ja) 2005-06-02 2006-12-14 Sony Corp 情報処理装置および情報処理方法、並びにプログラム
CN100499674C (zh) * 2006-01-06 2009-06-10 华为技术有限公司 一种路由器下终端设备ip地址的分配方法
US7889762B2 (en) * 2006-01-19 2011-02-15 Intel-Ne, Inc. Apparatus and method for in-line insertion and removal of markers
US9137179B2 (en) 2006-07-26 2015-09-15 Hewlett-Packard Development Company, L.P. Memory-mapped buffers for network interface controllers
JP2008172515A (ja) 2007-01-11 2008-07-24 Sony Corp 送信装置および方法、通信装置、並びにプログラム
JP2009048298A (ja) * 2007-08-15 2009-03-05 Sony Corp 情報処理装置、情報処理方法、当該情報処理方法を実行するためのプログラム及び当該プログラムを記録した媒体、並びにdmaコントローラ、dma転送方法、当該dma転送方法を実行するためのプログラム及び当該プログラムを記録した媒体
JP2009118106A (ja) * 2007-11-06 2009-05-28 Mitsubishi Electric Corp ネットワーク装置
US9215217B2 (en) * 2008-12-05 2015-12-15 Suhayya Abu-Hakima and Kenneth E. Grigg Auto-discovery of diverse communications devices for alert broadcasting
US8452803B2 (en) * 2008-04-29 2013-05-28 Samir Ghosh Method and system for distributed data management of personal data in a social networking context
US9178839B2 (en) 2008-07-24 2015-11-03 International Business Machines Corporation Sharing buffer space in link aggregation configurations
JP2010049502A (ja) * 2008-08-21 2010-03-04 Hitachi Ltd ストレージサブシステム、及びこれを有するストレージシステム
US8099528B2 (en) * 2008-09-30 2012-01-17 Apple Inc. Data filtering using central DMA mechanism
JP2010211322A (ja) 2009-03-06 2010-09-24 Renesas Electronics Corp ネットワークプロセッサ、受信コントローラ、及びデータ受信処理方法
DE102009001821A1 (de) * 2009-03-24 2010-10-07 Ihp Gmbh - Innovations For High Performance Microelectronics / Leibniz-Institut Für Innovative Mikroelektronik Protokollbeschleunigungsmodul mit Paketweiterleitungsfunktion und Betriebsverfahren für einen Senderempfänger zur schnellen Weiterleitung von Datenpaketen
US9015268B2 (en) * 2010-04-02 2015-04-21 Intel Corporation Remote direct storage access
US8804490B2 (en) * 2011-07-29 2014-08-12 Telefonaktiebolaget L M Ericsson (Publ) Controller placement for fast failover in the split architecture

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7099317B2 (en) * 2000-06-09 2006-08-29 Broadcom Corporation Gigabit switch with multicast handling
RU2388039C2 (ru) * 2003-12-31 2010-04-27 Майкрософт Корпорейшн Облегченный протокол ввода/вывода

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2791433C1 (ru) * 2019-03-27 2023-03-07 Уси Хиски Медикал Текнолоджис Ко., Лтд. Устройство и способ передачи данных и считываемый носитель данных
US11803490B2 (en) 2019-03-27 2023-10-31 Wuxi Hisky Medical Technologies Co., Ltd. Apparatus and method for data transmission and readable storage medium

Also Published As

Publication number Publication date
AU2011370439A1 (en) 2014-05-29
AU2011370439B2 (en) 2015-12-03
US20140222960A1 (en) 2014-08-07
CN102439983A (zh) 2012-05-02
CN102439983B (zh) 2014-04-16
EP2755363A1 (en) 2014-07-16
JP5966229B2 (ja) 2016-08-10
RU2014121210A (ru) 2015-12-10
KR20140065009A (ko) 2014-05-28
US9774651B2 (en) 2017-09-26
EP2755363A4 (en) 2014-12-31
JP2015502590A (ja) 2015-01-22
EP2755363B1 (en) 2016-06-08
WO2012167531A1 (zh) 2012-12-13

Similar Documents

Publication Publication Date Title
RU2589398C2 (ru) Способ и устройство для быстрого распределения данных
CN109768939B (zh) 一种支持优先级的标签化网络栈方法和系统
KR101006260B1 (ko) 네트워크 프로토콜 처리의 오프로드에서 메모리 관리를 지원하기 위한 장치 및 방법
US9002969B2 (en) Distributed multimedia server system, multimedia information distribution method, and computer product
WO2017020722A1 (zh) 基于虚拟机的数据传输方法、装置及系统
WO2016187813A1 (zh) 一种光电混合网络的数据传输方法及装置
CN108494817A (zh) 数据传输方法、相关装置及系统
KR20070042152A (ko) 통신 접속 수립 방법과 시스템, 데이터 전송 방법과시스템, 및 컴퓨터 판독 가능한 기록 매체
WO2008147578A1 (en) System and/or method for client- driven server load distribution
US10070348B2 (en) Hypertext transfer protocol support over hybrid access
CN110620802B (zh) 一种负载均衡方法和装置
CN112995753A (zh) 一种媒体流分发方法、cdn节点服务器、cdn系统和可读存储介质
US8527661B1 (en) Gateway for connecting clients and servers utilizing remote direct memory access controls to separate data path from control path
US20150127837A1 (en) Relay apparatus and data transfer method
US11799827B2 (en) Intelligently routing a response packet along a same connection as a request packet
CN111404842B (zh) 数据传输方法、装置及计算机存储介质
CN103746926A (zh) 一种局域网加速装置及局域网加速系统
KR20200080416A (ko) 모바일 엣지 컴퓨팅을 위한 데이터처리장치
WO2018127013A1 (zh) 一种流数据的并发传输方法和装置
CN106059724B (zh) 一种报文传输方法和装置
CN103297474A (zh) 一种批量处理分包方法和系统
KR101270743B1 (ko) 네트워크 보안 시스템의 하드웨어 부하 분산을 위한 하이브리드 버퍼 디스크립터 처리 장치 및 방법
EP2304575A1 (en) Method and device to perform direct memory access
KR101525541B1 (ko) 콘텐츠 딜리버리 네트워크 서비스 시스템 및 방법
CN100428670C (zh) 流媒体服务器用户层通信方法