СПОСОБ И УСТРОЙСТВО ДЛЯ БЫСТРОГО РАСПРЕДЕЛЕНИЯ ДАННЫХ
DATA-FAST-DISTRIBUTION METHOD AND DEVICE

Область техники, к которой относится изобретение
[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] Способ, устройство и система для быстрого распределения данных, предоставляемые в вариантах осуществления настоящего изобретения, подробно описываются выше. В этом подробном описании конкретные примеры используются для того, чтобы описывать принцип и способы реализации настоящего изобретения, и описание вариантов осуществления служит только для того, чтобы обеспечивать доступность для понимания способа и базовой идеи настоящего изобретения. Между тем, специалисты в данной области техники на основе идеи настоящего изобретения могут осуществлять модификации относительно конкретных способов реализации и объема применения. Следовательно, содержание этого подробного описания не должно истолковываться как ограничение на настоящее изобретение.