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

Иллюстрации

Показать все

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

Реферат

Область техники, к которой относится изобретение

[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 быстрого перенаправления может вклю