Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
DATA-FAST-DISTRIBUTION METHOD AND DEVICE
Document Type and Number:
WIPO Patent Application WO/2012/167531
Kind Code:
A1
Abstract:
Provided are a data-fast-distribution method and device to reduce the joint of a Central Processing Unit (CPU) and a memory,and improve the system performance. The method includes: the CPU transmits data description information to a fast forwarding module, and the data description information includes storage address and length information of data requested by a user; the fast forwarding module reads the data requested by the user according to the data description information and then transmits it to a Network Interface Controller (NIC); the NIC transmits the data requested by the user to the user. Compared with the prior art, after the service is increased (e.g. present network card bandwidth and storage capacity need to be enlarged), the method provided by the present embodiments only needs to increase an apparatus with an NIC and a storage apparatus without increasing the cost of the memory and the CPU, therefore one side the usage of the memory and the CPU is reduced and then the performance of the whole system is improved, on the other side the problem of memory walls is reduced.

Inventors:
FANG FAN (CN)
CHEN KEPING (CN)
Application Number:
PCT/CN2011/081366
Publication Date:
December 13, 2012
Filing Date:
October 27, 2011
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
HUAWEI TECH CO LTD (CN)
FANG FAN (CN)
CHEN KEPING (CN)
International Classes:
H04L29/06; H04N21/238
Foreign References:
CN1871587A2006-11-29
Other References:
CHEN, ZESHENG ET AL.: "Study and Realization of Interface Technology in ATM Network Adapter", COMMUNICATIONS TECHNOLOGY, no. 1, 2001, pages 34 - 36, XP008171364
See also references of EP 2755363A4
Attorney, Agent or Firm:
SHENPAT INTELLECTUAL PROPERTY AGENCY (CN)
深圳市深佳知识产权代理事务所(普通合伙) (CN)
Download PDF:
Claims:
权 利 委 求

1、 一种数据快速分发方法, 其特征在于, 所述方法包括:

中央处理器将数据描述信息发送至快速转发模块,所述数据描述信息包括 用户请求的数据的存储地址和长度信息;

所述快速转发模块根据所述数据描述信息读取所述用户请求的数据并将 所述用户请求的数据转发至所述网络接口控制器;

所述网络接口控制器向用户发送所述用户请求的数据。

2、如权利要求 1所述的方法, 其特征在于, 所述中央处理器将数据描述信 息发送至快速转发模块包括:

所述中央处理器配置所述数据描述信息,将所述用户请求的数据的存储地 址和长度信息携带在所述数据描述信息;

所述中央处理器将所述数据描述信息发送至网络接口控制器,由所述网络 接口控制器将所述数据描述信息转发至所述快速转发模块。

3、如权利要求 2所述的方法, 其特征在于, 所述中央处理器配置数据描述 信息还包括:所述中央处理器将打包模式标识和打包选择标识携带在所述传输 描述符,所述打包模式标识与所述请求数据的用户对应,所述打包选择标识用 于标识是否需要对所述用户请求的数据进行打包;

所述快速转发模块根据所述数据描述信息读取所述用户请求的数据并将 所述用户请求的数据转发至所述网络接口控制器包括:

所述快速转发模块根据所述数据描述信息读取所述用户请求的数据后,通 过所述打包选择标识判断是否需要对所述用户请求的数据进行打包;若需要对 所述用户请求的数据进行打包,则对所述用户请求的数据进行打包后转发至所 述网^ 口控制器.

4、如权利要求 3所述的方法, 其特征在于, 所述对所述用户请求的数据进 行打包后转发至所述网络接口控制器包括:

所述快速转发模块根据所述打包模式标识对应的打包模式,对所述用户请 求的数据进行打包后转发至所述网络接口控制器,

5、如权利要求 2所述的方法, 其特征在于, 所述中央处理器配置数据描述

更正页 (细则第 91条) 信息还包括: 所述中央处理器将内存选择标识携带在所述数据描述信息,所述 取所述用户请求的数据;

所述快速转发模块根据所述数据描述信息读取所述用户请求的数据并将 所述用户请求的数据转发至所述网络接口控制器包括:所述快速转发模块通过 取所述用户请求的数据; 若判断是从存储设备读取所述用户请求的数据,则从 所述存储设备读取所述用户请求的数据后转发至所述网络接口控制器, 否则, 从所述内存读取所述用户请求的数据后转发至所述网络接口控制器。

6、如权利要求 1所述的方法, 其特征在于, 所述快速转发模块根据所述数 据描述信息读取所述用户请求的数据并将所述用户请求的数据转发至所述网 络接口控制器包括: 所述快速转发模块根据所述数据描述信息, 以直接内存访 问方式读取所述用户请求的数据并将所述用户请求的数据转发至所述网络接 口控制器.

7、 如权利要求 2至 5任意一项所述的方法, 其特征在于, 所述中央处理器 将用户请求的数据的存储地址和长度信息发送至网络接口控制器之前还包括: 所述中央处理器将打包模式标识下发至所述快速转发模块,所述打包模式 标识与打包模式对应。

8、 一种数据快速分发方法, 其特征在于, 所述方法包括:

接收中央处理器发送的数据描述信息,所述数据描述信息包括用户请求的 数据的存储地址和长度信息;

根据所述数据描述信息读取所述用户请求的数据并将所述用户请求的数 据转发至网络接口控制器,以由所述网络接口控制器向用户发送所述用户所请 求的数据。

9、如权利要求 8所述的方法, 其特征在于, 所述数据描述信息还包括打包 模式标识和打包选择标识,所述打包模式标识与所述请求数据的用户对应,所 述打包选择标识用于标识是否需要对所述用户请求的数据进行打包;

所述根据所述数据描述信息读取所述用户请求的数据并将所述用户请求

更正页 (细则第 91条) 的数据转发至所述网络接口控制器包括:根据所述数据描述信息读取所述用户 请求的数据后,通过所述打包选择标识判断是否需要对所述用户请求的数据进 行打包; 若需要对所述用户请求的数据进行打包,则对所述用户请求的数据进 行打包后转发至所述网络接口控制器.

10、 如权利要求 9所述的方法, 其特征在于, 所述对所述用户请求的数据 进行打包后转发至所述网络接口控制器包括:

根据所述打包模式标识对应的打包模式,对所述用户请求的数据进行打包 后转发至所述网络接口控制器。

11、 如权利要求 8所述的方法, 其特征在于, 所述数据描述信息还包括内 存选择标识 ,所述内存选择标识用于标识是从内存读取所迷用户请求的数据还 是从存储设备读取所述用户请求的数据;

所述根据所述数据描述信息读取所述用户请求的数据并将所述用户请求 的数据转发至所述网络接口控制器包括:通过所述内存选择标识判断是从内存 读取所述用户请求的数据还是从存储设备读取所述用户请求的数据;若判断是 从存储设备读取所述用户请求的数据,则从所述存储设备读取所述用户请求的 数据后转发至所述网络接口控制器, 否则,从所述内存读取所述用户请求的数 据后转发至所述网络接口控制器。

12、 如权利要求 8所述的方法, 其特征在于, 所述根据所述数据描述信息 读取所述用户请求的数据并将所述用户请求的数据转发至所述网络接口控制 器包括:根据所述数椐描述信息, 以直接内存访问方式读取所述用户请求的数 据并将所述用户请求的数据转发至所述网络接口控制器。

13、 一种数据快速分发系统, 其特征在于, 所述系统包括中央处理器、 网 络接口控制器和快速转发模块;

所述中央处理器, 用于将数据描述信息发送至快速转发模块,所述数据描 述信息包括用户请求的数据的存储地址和长度信息;

所述快速转发模块,用于根据所述数据描述信息读取所述用户请求的数据 并将所述用户请求的数据转发至所述网络接口控制器;

所述网络接口控制器, 用于向用户发送所述用户请求的数据。

更正页 (细则第 91条) 14、 如权利要求 13所述的系统, 其特征在于, 所述中央处理器包括: 配置单元,用于配置所述数据描述信息,将所述用户请求的数据的存储地 址和长度信息携带在所述数据描述信息;

发送单元, 用于将所述数据描述信息发送至网络接口控制器, 由所述网络 接口控制器将所述数据描述信息转发至所述快速转发模块。

15、如权利要求 14所述的系统, 其特征在于, 所述配置单元还用于将打包 模式标识和打包选择标识携带在所述数据描述信息,所述打包模式标识与所述 请求数据的用户对应,所述打包选择标识用于标识是否需要对所述用户请求的 数据进行打包;

所述快速转发模块包括第一判断单元和打包单元;

所述第一判断单元,用于根据所述数据描述信息读取所述用户请求的数据 后, 通过所述打包选择标识判断是否需要对所述用户请求的数据进行打包; 所述打包单元,用于若所述第一判断单元判断的结果为需要对所述用户请 求的数据进行打包,则对所述用户请求的数据进行打包后转发至所述网络接口 控制器。

16、如权利要求 14所述的系统, 其特征在于, 所述配置单元还用于将内存 选择标识携带在所述数据描述信息,所述所述内存选择标识用于标识是从内存 读取所述用户请求的数据还是从存储设备读取所述用户请求的数据;

所述快速转发模块包括第二判断单元和转发单元;

所述第二判断单元,用于通过所述内存选择标识判断是从内存读取所述用 户请求的数据还是从存储设备读取所述用户请求的数据;

所述转发单元,用于若所述第二判断单元判断的结果为是从存储设备读取 所述用户请求的数据,则从所述存储设备读取所述用户请求的数据后转发至所 述网络接口控制器,否则,从所述内存读取所述用户请求的数据后转发至所述 网络接口控制器.

17、如权利要求 14所述的系统, 其特征在于, 所述快速转发模块根据所述 网络接口控制器具体为:所述快速转发模块根据所述数据描述信息, 以直接内

更正页 (细则第 91条) 络接口控制器,

18、 如权利要求 15所述的系统, 其特征在于, 所述中央处理器还包括: 下发模块,用于将打包模式标识下发至所述快速转发模块,所述打包模式 标识与打包模式对应。

19、 一种数据快速分发装置, 其特征在于, 所述装置包括:

接收模块,用于接收中央处理器发送的数据描述信息,所述数据描述信息 包括用户请求的数据的存储地址和长度信息;

数据读取模块,用于根据所述数据描述信息读取所述用户请求的数据并将 所述用户请求的数据转发至网络接口控制器,以由所述网络接口控制器向用户 发送所述用户所请求的数据。

20、如权利要求 19所述的装置, 其特征在于, 所述数据描述信息还包括打 包模式标识和打包选择标识, 所述打包模式标识与所述请求数据的用户对应, 所述打包选择标识用于标识是否需要对所述用户请求的数据进行打包;

所述数据读取模块包括第一判断单元和打包单元;

所述第一判断单元,用于根据所述数据描述信息读取所述用户请求的数据 后, 通过所述打包选择标识判断是否需要对所述用户请求的数据进行打包; 所述打包单元,用于若所述第一判断单元判断的结果为需要对所述用户请 求的数据进行打包,则对所述用户请求的数据进行打包后转发至所述网络接口 控制器。

21、如权利要求 19所述的装置, 其特征在于, 所述数据描述信息还包括内 存选择标识,所述内存选择标识用于标识是从内存读取所述用户请求的数据还 是从存储设备读取所述用户请求的数据;

所述数据读取模块包括第二判断单元和转发单元;

所述第二判断单元,用于通过所述内存选择标识判断是从内存读取所述用 户请求的数据还是从存储设备读取所述用户请求的数据;

所述转发单元,用于若所述第二判断单元判断的结果为是从存储设备读取 所述用户请求的数据,则从所述存储设备读取所述用户请求的数据后转发至所

更正页 (细则第 91条) 述网络接口控制器, 否则,从所述内存读取所述用户请求的数据后转发至所述 网络接口控制器,

22、如权利要求 19所述的装置, 其特征在于, 所述数据读取模块具体用于 根据所述数据描述信息,以直接内存访问方式读取所述用户请求的数据并将所 述用户请求的数据转发至所述网络接口控制器.

更正页 (细则第 91条)

Description:
一种数据快速分发方法和装置 技术领域

本发明实施例涉及通信领域, 尤其涉及一种数据快速分发方法和装置。 背景技术

互联网应用现在已经进入 Web2.0时代, 用户的实际感受已经是用户选择 业务的第一选择。 为了解决时延导致用户感受的问题,提供大量 的快速访问设 计, 满足用户良好的感受体验, 几乎所有的互联网公司都在实施加速设计, 其 中, 内容分发网络( Content Delivery Network, CDN ) 中的高速緩沖 ( Cache ) 设计尤其突出。 在 CDN中, 每一个 Cache都是一个中间设备, 提供高速緩沖功 h

匕。

以 CDN产品业务中的视频点播业务为例,现有技术 提供的视频点播业务加 速解决方案如附图 1 (带箭头的线条表示信息或数据流动的方向, 线条旁的序 号表示顺序关系) 所示: 用户的请求从网口, 即网络接口控制器 (Network Interface Controller, NIC )进入, 中央处理单元 ( Central Processing Unit, CPU ) 收到请求后, 读取存储设备 ( Storage ) 的数据到内存(Memory ) , 并发送给 NIC, 通过 NIC发送至客户端(Client )。 在这种方案中, 设备提供快速的闪存 ( Flash )和网络, 针对热点的数据, 提供高速緩沖 (Cache ) 。 如果存储设备 中暂时没有用户请求的视频数据, 则会通过 NIC发送给其它可以提供用户请求 的视频数据的设备, 通过 NIC将用户请求的视频数据取回, 再发送给客户端 ( Client ) ; 为了便于下次满足用户的请求, 在将从其他设备取回的视频数据 发送给客户端的同时或之后, 将该视频数据存储到本地存储设备(Storage ) 。

上述现有技术的缺陷在于: 所有的视频数据都必须过一次内存和 CPU, CPU的工作就是搬移数据, 进行分发, 无法做到数据面和控制面的分离; 对于 CDN流, 在高并发情况下, CPU使用率非常高, 会带来明显的性能瓶颈。 发明内容

本发明实施例提供一种数据快速分发方法和装 置,以减少中央处理器和内 存的参与, 提高系统性能。

本发明实施例提供一种数据快速分发方法包括 :

中央处理器将数据描述信息发送至快速转发模 块,所述数据描述信息包括 用户请求的数据的存储地址和长度信息;

所述快速转发模块根据所述数据描述信息读取 所述用户请求的数据后转 发至所述网络接口控制器;

所述网络接口控制器向用户发送所述用户请求 的数据。

本发明另一实施例提供一种数据快速分发方法 包括:

接收中央处理器发送的数据描述信息,所述数 据描述信息包括用户请求的 数据的存储地址和长度信息;

根据所述数据描述信息读取所述用户请求的数 据并将所述用户请求的数 据转发至网络接口控制器,由所述网络接口控 制器向用户发送所述用户所请求 的数据。

本发明实施例提供一种数据快速分发系统, 所述系统包括中央处理器、 网 络接口控制器和快速转发模块;

所述中央处理器, 用于将数据描述信息发送至快速转发模块, 所述数据描 述信息包括用户请求的数据的存储地址和长度 信息;

所述快速转发模块,用于根据所述数据描述信 息读取所述用户请求的数据 并将所述用户请求的数据转发至所述网络接口 控制器;

所述网络接口控制器, 用于向用户发送所述用户请求的数据。

本发明实施例提供一种数据快速分发装置,所 述装置包括接收模块和数据 读取模块; 所述接收模块, 用于接收中央处理器发送的数据描述信息, 所述数据描述 信息包括用户请求的数据的存储地址和长度信 息;

所述数据读取模块,用于根据所述数据描述信 息读取所述用户请求的数据 并将所述用户请求的数据转发至网络接口控制 器,以由所述网络接口控制器向 用户发送所述用户所请求的数据。

从上述本发明实施例可知,由于网络接口控制 器是将存储地址和长度信息 发送给快速转发模块,快速转发模块在读取所 述用户请求的数据后转发至所述 网络接口控制器, 由所述网络接口控制器发送所述用户请求的数 据, 整个数据 的传输过程通过网络接口控制器和存储设备之 间的独立、直接通道完成, 没有 经过中央处理器和内存, 只需要中央处理器配置传输描述符, 不需要中央处理 器去拷贝数据。 因此, 与现有技术相比, 本发明实施例提供的方法在业务增加 后 (例如, 需要扩大现有的网卡带宽和存储容量), 只需要增加网络接口控制 器和存储设备的设备, 而不需要增加内存和中央处理器的成本, 一来可以减少 对内存和中央处理器的使用,提高整个系统的 性能,二来也减少了内存墙的问 题。

附图说明

为了更清楚地说明本发明实施例的技术方案, 下面将对现有技术或实施例 描述中所需要使用的附图作筒单地介绍,显而 易见地, 下面描述中的附图仅仅 是本发明的一些实施例,对于本领域技术人员 来讲,还可以如这些附图获得其 他的附图。

图 1是现有技术提供的视频点播业务加速解决方 示意图;

图 2是本发明实施例提供的数据快速分发方法流 示意图;

图 3是本发明实施例提供的传输描述符结构示意 ;

图 4是本发明实施例提供的数据快速分发系统结 示意图; 图 5是本发明另一实施例提供的数据快速分发系 结构示意图; 图 6是本发明另一实施例提供的数据快速分发系 结构示意图; 图 7是本发明另一实施例提供的数据快速分发系 结构示意图; 图 8是本发明另一实施例提供的数据快速分发系 结构示意图; 图 9是本发明另一实施例提供的数据快速分发系 结构示意图; 图 10是本发明实施例提供的数据快速分发装置结 示意图;

图 11是本发明另一实施例提供的数据快速分发装 结构示意图; 图 12是本发明另一实施例提供的数据快速分发装 结构示意图。

具体实施方式

本发明实施例提供一种数据快速分发方法和装 置,以减少中央处理器和内 存的参与, 提高系统性能。

请参阅附图 2, 是本发明实施例提供的数据快速分发方法流程 示意图, 主 要包括步骤:

S201 , 中央处理器将数据描述信息发送至快速转发模 块,所述数据描述信 息包括用户请求的数据的存储地址和长度信息 。

在本发明提供的实施例中, 快速转发模块是嵌入到 PCI-Switch或者嵌入到 网络接口控制器 NIC中的一个功能模块, 提供直接发送和接收功能。 该功能模 块通过 CPU配置后, 可以去读取存储设备或内存中的数据, 发送到网络接口控 制器 NIC上, 完成直接内存访问 ( Direct Memory Access , DMA )发送, 即, 快速转发模块是以 DMA方式读取所述用户请求的数据并将所述用户 请求的数 据转发至所述网络接口控制器。

一般情况下, 网络接口控制器 NIC在内存中有一块对应的数据描述信息。 中央处理器如果需要发送数据的时候, 会通过配置数据描述信息, 例如, 传输 描述符 ( Transmit Desriptor )。 此时网络接口控制器 NIC获取到需要发送数据, 则通知内部的 DMA模块, 根据传输描述符 ( Transmit Desriptor )中的緩存地址 ( Buffer Address )字段和长度(Length )字段, 去相应的地址取数据, 进行发 送。每一个发送的数据都需要配置传输描述符 (Transmit Desriptor ), 配置一个 发一个。

如果发送的数据是一块连续的数据或者是中央 处理器可预知的数据这种 固定的流, 中央处理器通过配置快速转发模块, 网络接口控制器 NIC直接把数 据发送到存储设备 ( Storage )进行存储; 也可以直接从存储设备 ( Storage )把 数据直接发到网络接口控制器 NIC出去, 完成网络接口控制器 NIC到存储设备 ( Storage ) 和存储设备 ( Storage ) 到网络接口控制器 NIC的 DMA操作, 并且 不占用 PCI-Switch和中央处理器之间的带宽。

因此, 在本发明实施例中, 数据的传输不需要中央处理器去干预, 只需要 中央处理器配置数据描述信息;也不需要中央 处理器去拷贝数据和因为拷贝数 据导致对内存资源的消耗。

一个用户链接建立时就被分配了一个打包模式 标识( Package ID )给该用 户, 并根据用户的回应的报文格式将打包模式标识 下发至快速转发模块。在本 发明实施例中, Package ID与打包模式对应, 位于快速转发模块的打包列表 ( packagelist )中, 这个表项目主要是一个报文格式定义, 即 IP头格式的内容。 当后续从存储设备取到数据时,按照报文格式 定义的格式将数据填充进去就可 以直接发送使用。

当用户请求数据时, 中央处理器通过网络接口控制器 NIC收到用户发送的 请求, 这些请求中携带了用户请求的数据的存储地址 和长度等信息。 中央处理 器将用户请求的数据的存储地址和长度等信息 发送至网络接口控制器 NIC, 以 便触发网络接口控制器 NIC的 DMA模块取用户请求的数据。

作为本发明一个实施例, 中央处理器可以配置数据描述信息, 例如, 传输 描述符( Transmit Desriptor ),将所述用户请求的数据的存储地址和长度信 携 带在所述数据描述信息中; 除此之外, 中央处理器在配置数据描述信息时, 还 可以将打包模式标识和打包选择标识携带在所 述数据描述信息中,所述打包模 式标识与所述请求数据的用户对应,所述打包 选择标识用于标识是否需要对所 述用户请求的数据进行打包。中央处理器将所 述数据描述信息发送至网络接口 控制器, 由所述网络接口控制器将所述数据描述信息转 发至所述快速转发模 块。

本发明实施例提供的传输描述符( Transmit Desriptor )的格式如附图 3所示, 其中:

内存选择 ( Memory Select )标识字段表示是从内存( Memory )还是存储 设备(Storage )读取存放的数据, 可用 1位(bit )二进制表示, 例如, 该字段 是 "1" 表示是从内存(Memory )读取存放的数据, 该字段是 "0" 表示是从 存储设备 ( Storage )读取存放的数据, 或者反之, 该字段是 "0" 表示是从内 存( Memory )读取存放的数据,该字段是 "1"表示是从是从存储设备( Storage ) 读取存放的数据;

打包选择标识( Package Select )字段表示是否需要快速转发模块对读取到 的数据进行打包或封装;

打包模式标识( Package ID )字段表示使用何种打包或封装模式, 该字段 也与请求数据的用户对应;

緩存地址(Buffer Address )字段表示用户请求的数据的存储地址, 用户请 求的数据的存储地址由用户请求数据时发送的 请求提供;

长度(Length )字段表示用户请求的数据的长度;

传输描述符 ( Transmit Desriptor )还包括其他控制字段, 不做赘述。

S202,快速转发模块根据数据描述信息读取所述 户请求的数据并将所述 用户请求的数据转发至所述网络接口控制器。

快速转发模块根据网络接口控制器的 DMA模块传送过来的用户请求的数 据的緩存地址、 长度信息、 打包选择标识和内存选择标识等数据描述信息 (例 如, 传输描述符)读取所述用户请求的数据

具体地, 快速转发模块可以根据所述数据描述信息包含 的信息, 例如, 緩 存地址、 长度信息等, 读取所述用户请求的数据后, 进一步通过传输描述符 ( Transmit Desriptor ) 中的打包选择标识( Package Select )字段判断是否需要 对所述用户请求的数据进行打包, 若需要对所述用户请求的数据进行打包, 则 对所述用户请求的数据进行打包后转发至所述 网络接口控制器。例如, 快速转 发模块可以根据传输描述符 ( Transmit Desriptor ) 中的打包模式标识对应的打 包模式, 对所述用户请求的数据进行打包后转发至所述 网络接口控制器。

再如,快速转发模块也可以通过所述内存选择 标识判断是从内存读取所述 用户请求的数据还是从存储设备读取所述用户 请求的数据;若判断是从存储设 备读取所述用户请求的数据,则从所述存储设 备读取所述用户请求的数据后转 发至所述网络接口控制器, 否则,从所述内存读取所述用户请求的数据后 转发 至所述网络接口控制器。

S203 , 所述网络接口控制器向用户发送所述用户请求 的数据。

从上述本发明实施例可知,由于中央处理器是 将存储地址和长度信息发送 给快速转发模块,快速转发模块在读取所述用 户请求的数据后转发至所述网络 接口控制器, 由所述网络接口控制器发送所述用户请求的数 据, 整个数据的传 输过程通过网络接口控制器和存储设备之间的 独立、直接通道完成, 没有经过 中央处理器和内存, 只需要中央处理器配置数据描述信息, 不需要中央处理器 去拷贝数据。 因此, 与现有技术相比, 本发明实施例提供的方法在业务增加后 (例如, 需要扩大现有的网卡带宽和存储容量), 只需要增加网络接口控制器 和存储设备的设备, 而不需要增加内存和中央处理器的成本,一来 可以减少对 内存和中央处理器的使用,提高整个系统的性 能,二来也减少了内存墙的问题。

请参阅附图 4, 是本发明实施例提供的数据快速分发方法流程 示意图, 本 实施例的执行主体可以是附图 2示例的数据快速分发方法中快速转发模块, 附 图 4示例主要包括步骤:

S401 ,接收中央处理器发送的数据描述信息,所述 据描述信息包括用户 请求的数据的存储地址和长度信息。

当用户请求数据时, 中央处理器通过网络接口控制器 NIC收到用户发送的 请求, 这些请求中携带了用户请求的数据的存储地址 和长度等信息。 中央处理 器将用户请求的数据的存储地址和长度等信息 发送至网络接口控制器 NIC, 以 便触发网络接口控制器 NIC的 DMA模块取用户请求的数据。

作为本发明一个实施例, 中央处理器可以配置数据描述信息, 例如, 传输 描述符 ( Transmit Desriptor ),将所述用户请求的数据的存储地址和长度信 携 带在所述数据描述信息中; 除此之外, 中央处理器在配置数据描述信息时, 还 可以将打包模式标识和打包选择标识携带在所 述数据描述信息中,所述打包模 式标识与所述请求数据的用户对应,所述打包 选择标识用于标识是否需要对所 述用户请求的数据进行打包。 传输描述符的具体格式如附图 3所示, 具体含义 可参阅前述实施例的相关文字说明。

中央处理器将数据描述信息发送至网络接口控 制器,快速转发模块接收由 所述网络接口控制器转发的所述数据描述信息 。

S402,根据所述数据描述信息读取所述用户请求 数据并将所述用户请求 的数据转发至网络接口控制器,以便由所述网 络接口控制器向用户发送所述用 户所请求的数据。

快速转发模块根据网络接口控制器的 DMA模块传送过来的用户请求的数 据的緩存地址、 长度信息、 打包选择标识和内存选择标识等数据描述信息 (例 如, 传输描述符)读取所述用户请求的数据

具体地, 快速转发模块可以根据所述数据描述信息, 例如, 緩存地址、 长 度信息, 读取所述用户请求的数据后, 进一步通过传输描述符 (Transmit Desriptor ) 中的打包选择标识( Package Select )字段判断是否需要对所述用户 请求的数据进行打包, 若需要对所述用户请求的数据进行打包, 则对所述用户 请求的数据进行打包后转发至所述网络接口控 制器。例如, 快速转发模块可以 根据传输描述符( Transmit Desriptor ) 中的打包模式标识对应的打包模式, 对 所述用户请求的数据进行打包后转发至所述网 络接口控制器。

再如,快速转发模块也可以通过所述内存选择 标识判断是从内存读取所述 用户请求的数据还是从存储设备读取所述用户 请求的数据;若判断是从存储设 备读取所述用户请求的数据,则从所述存储设 备读取所述用户请求的数据后转 发至所述网络接口控制器, 否则,从所述内存读取所述用户请求的数据后 转发 至所述网络接口控制器。

需要说明的是, 本实施例的快速转发模块是嵌入到 PCI-Switch或者嵌入到 网络接口控制器 NIC中的一个功能模块, 提供直接发送和接收功能。 该功能模 块通过中央处理器配置后, 可以去读取存储设备 ( Storage )或内存中的数据, 发送到网络接口控制器 NIC上, 完成直接内存访问 ( Direct Memory Access , DMA )发送, 即, 快速转发模块是以 DMA方式读取所述用户请求的数据并将 所述用户请求的数据转发至所述网络接口控制 器。

请参阅附图 5 , 本发明实施例提供的数据快速分发系统结构示 意图。 为了 便于说明, 仅仅示出了与本发明实施例相关的部分, 其中包含的功能模块 /单 元可以是软件模块 /单元、 硬件模块 /单元或软硬件相结合模块 /单元(本说明书 提供的各个实施例都可应用这一描述原则)。 图 5示例的数据快速分发系统包括 中央处理器 501、 快速转发模块 502和网络接口控制器 503 , 其中:

中央处理器 501 , 用于将数据描述信息发送至快速转发模块 502, 所述数据 描述信息包括用户请求的数据的存储地址和长 度信息;

快速转发模块 502, 用于根据所述数据描述信息读取所述用户请求 的数据 并将所述用户请求的数据转发至所述网络接口 控制器 503;

网络接口控制器 503 , 用于向用户发送所述用户请求的数据。 一个用户链 接建立时就被分配了一个打包模式标识( Package ID )给该用户, 并根据用户 的回应的报文格式将打包模式标识下发至快速 转发模块。 在本发明实施例中, Package ID与打包模式对应, 位于快速转发模块的打包列表( packagelist ) 中, 这个表项目主要是一个报文格式定义, 即 IP头格式的内容。 当后续从存储设备 取到数据时, 按照报文格式定义的格式将数据填充进去就可 以直接发送使用。

当用户请求数据时,中央处理器 501通过网络接口控制器 503收到用户发送 的请求, 这些请求中携带了用户请求的数据的存储地址 和长度等信息。 中央处 理器 501将用户请求的数据的存储地址和长度等信息 发送至网络接口控制器 503 , 以便触发网络接口控制器 503的 DMA模块取用户请求的数据。

如附图 6所示本发明另一实施例提供的数据快速分发 统,中央处理器 501 可以包括配置单元 601和发送单元 602, 其中:

配置单元 601用于配置数据描述信息, 例如, 传输描述符 (Transmit Desriptor ), 如附图 3所示, 将所述用户请求的数据的存储地址和长度信息 携带 在所述数据描述信息中; 除此之外, 配置单元 601在配置数据描述信息时, 还 可以将打包模式标识、打包选择标识和内存选 择标识携带在所述数据描述信息 中, 所述打包模式标识与所述请求数据的用户对应 , 所述打包选择标识用于标 识是否需要对所述用户请求的数据进行打包, 所述内存选择标识用于标识是从 内存(Memory )还是存储设备 ( Storage )读取存放的数据。 发送单元 602用于将所述数据描述信息发送至网络接口控 制器 503 ,由所述 网络接口控制器 503将所述数据描述信息转发至所述快速转发模 块 502。

在本发明提供的实施例中, 快速转发模块 502是嵌入到 PCI-Switch或者嵌 入到网络接口控制器 503中的一个功能模块, 提供直接发送和接收功能。 该功 能模块通过中央处理器 501配置后, 可以去读取存储设备或内存中的数据, 发 送到网络接口控制器 NIC上, 完成 DMA发送, 即, 快速转发模块 502是以 DMA 方式读取所述用户请求的数据并将所述用户请 求的数据转发至所述网络接口 控制器。

一般情况下, 网络接口控制器 503在内存中有一块对应的传输描述符 ( Transmit Desriptor )链表。 中央处理器 501如果需要发送数据的时候,会通过 配置传输描述符( Transmit Desriptor )。 此时网络接口控制器 503获取到需要发 送数据, 则通知内部的 DMA模块, 根据传输描述符 ( Transmit Desriptor ) 中的 緩存地址( Buffer Address )字段和长度( Length )字段, 去相应的地址取数据, 进行发送。每一个发送的数据都需要配置传输 描述符(Transmit Desriptor ), 配 置一个发一个。

如果发送的数据是一块连续的数据或者是中央 处理器 501可预知的数据这 种固定的流, 中央处理器 501通过配置快速转发模块, 网络接口控制器 503NIC 直接将数据发送到存储设备(Storage ) 进行存储; 也可以直接从存储设备 ( Storage )将数据直接发到网络接口控制器 503出去, 完成网络接口控制器 503 到存储设备 ( Storage )和存储设备 ( Storage )到网络接口控制器 503的 DMA操 作, 并且不占用 PCI-Switch和中央处理器之间的带宽。

因此, 在本发明实施例中, 数据的传输不需要中央处理器去干预, 只需要 中央处理器配置数据描述信息;也不需要中央 处理器去拷贝数据和因为拷贝数 据导致对内存资源的消耗。 如附图 7所示本发明另一实施例提供的数据快速分发 统, 快速转发模块 502可以包括第一判断单元 701和打包单元 702, 其中:

第一判断单元 701 , 用于根据所述数据描述信息读取所述用户请求 的数据 后, 通过所述打包选择标识判断是否需要对所述用 户请求的数据进行打包; 打包单元 702,用于若所述第一判断单元 701判断的结果为需要对所述用户 请求的数据进行打包,则对所述用户请求的数 据进行打包后转发至所述网络接 口控制器 503。

如附图 8所示本发明另一实施例提供的数据快速分发 统, 快速转发模块 502可以包括第二判断单元 801和转发单元 802, 其中:

第二判断单元 801 , 用于通过内存选择标识判断是从内存读取所述 用户请 求的数据还是从存储设备读取所述用户请求的 数据;

转发单元 802,用于若所述第二判断单元 801判断的结果为是从存储设备读 取所述用户请求的数据,则从所述存储设备读 取所述用户请求的数据后转发至 所述网络接口控制器 503 , 否则, 从所述内存读取所述用户请求的数据后转发 至所述网络接口控制器 503。

附图 5至附图 8任一示例的中央处理器 501还包括下发模块 901 , 如附图 9所 示。 下发模块 901用于将打包模式标识下发至所述快速转发模 块 502, 所述打包 模式标识与打包模式对应。

请参阅附图 10, 本发明实施例提供的数据快速分发装置结构示 意图。 为了 便于说明, 仅仅示出了与本发明实施例相关的部分, 其中包含的功能模块 /单 元可以是软件模块 /单元、 硬件模块 /单元或软硬件相结合模块 /单元(本说明书 提供的各个实施例都可应用这一描述原则)。 图 5示例的数据快速分发装置可以 是附图 5至附图 9任一示例的快速转发模块 502, 其包括接收模块 1001和数据读 取模块 1002, 其中: 接收模块 1001 , 用于接收中央处理器发送的数据描述信息, 所述数据描述 信息可以是如附图 3示例的输描述符 ( Transmit Desriptor ), 包括用户请求的数 据的存储地址和长度信息;

数据读取模块 1002,用于根据所述数据描述信息读取所述用户 求的数据 并将所述用户请求的数据转发至网络接口控制 器,以由所述网络接口控制器向 用户发送所述用户所请求的数据。具体地,数 据读取模块 1002用于根据所述数 据描述信息,以直接内存访问方式读取所述用 户请求的数据并将所述用户请求 的数据转发至所述网络接口控制器。

因此, 在本实施例中, 数据的传输不需要中央处理器去干预, 只需要中央 处理器配置数据描述信息,也不需要中央处理 器去拷贝数据和因为拷贝数据导 致对内存资源的消耗。

需要说明的是, 以上数据快速分发装置的实施方式中,各功能 模块的划分 仅是举例说明, 实际应用中可以根据需要, 例如相应硬件的配置要求或者软件 的实现的便利考虑, 而将上述功能分配由不同的功能模块完成, 即将所述数据 快速分发装置的内部结构划分成不同的功能模 块,以完成以上描述的全部或者 部分功能。 而且, 实际应用中, 本实施例中的相应的功能模块可以是由相应的 硬件实现,也可以由相应的硬件执行相应的软 件完成,例如,前述的接收模块, 可以是具有执行前述接收中央处理器发送的数 据描述信息的硬件, 例如接收 器,也可以是能够执行相应计算机程序从而完 成前述功能的一般处理器或者其 他硬件设备 (本说明书提供的各个实施例都可应用上述描 原则)。

进一步地, 所述数据描述信息还可以包括打包模式标识和 打包选择标识, 所述打包模式标识与所述请求数据的用户对应 ,所述打包选择标识用于标识是 否需要对所述用户请求的数据进行打包,附图 10示例的数据读取模块 1002可以 包括第一判断单元 1101和打包单元 1102,如附图 11所示本发明另一实施例提供 的数据快速分发装置, 其中:

第一判断单元 1101 ,用于根据所述数据描述信息读取所述用户请 的数据 后, 通过所述打包选择标识判断是否需要对所述用 户请求的数据进行打包; 打包单元 1102,用于若第一判断单元 1101判断的结果为需要对所述用户请 求的数据进行打包,则对所述用户请求的数据 进行打包后转发至所述网络接口 控制器。

进一步地, 所述数据描述信息还可以包括内存选择标识, 所述内存选择标 识用于标识是从内存读取所述用户请求的数据 还是从存储设备读取所述用户 请求的数据,附图 10示例的数据读取模块 1002可以包括第二判断单元 1201和转 发单元 1202,如附图 12所示本发明另一实施例提供的数据快速分发 置,其中: 第二判断单元 1201 ,用于通过所述内存选择标识判断是从内存读 所述用 户请求的数据还是从存储设备读取所述用户请 求的数据;

转发单元 1202,用于若第二判断单元 1201判断的结果为是从存储设备读取 所述用户请求的数据,则从所述存储设备读取 所述用户请求的数据后转发至所 述网络接口控制器, 否则,从所述内存读取所述用户请求的数据后 转发至所述 网络接口控制器。

需要说明的是, 上述装置各模块 /单元之间的信息交互、 执行过程等内容, 由于与本发明方法实施例基于同一构思,其带 来的技术效果与本发明方法实施 例相同, 具体内容可参见本发明方法实施例中的叙述, 此处不再赘述。

本领域普通技术人员可以理解上述实施例的各 种方法中的全部或部分步 骤是可以通过程序来指令相关的硬件来完成, 比如以下各种方法的一种或多种 或全部:

方法一:

中央处理器将数据描述信息发送至快速转发模 块,所述数据描述信息包括 用户请求的数据的存储地址和长度信息;

快速转发模块根据所述数据描述信息读取所述 用户请求的数据后转发至 所述网络接口控制器;

所述网络接口控制器向用户发送所述用户请求 的数据。

方法二:

接收中央处理器发送的数据描述信息,所述数 据描述信息包括用户请求的 数据的存储地址和长度信息;

根据所述数据描述信息读取所述用户请求的数 据并将所述用户请求的数 据转发至网络接口控制器,以由所述网络接口 控制器向用户发送所述用户所请 求的数据。

该程序可以存储于一计算机可读存储介质中, 存储介质可以包括: 只读存 储器(ROM, Read Only Memory ), 随机存取存储器(RAM, Random Access Memory ), 磁盘或光盘等。

以上对本发明实施例提供的数据快速分发方法 、装置和系统进行了详细介 例的说明只是用于帮助理解本发明的方法及其 核心思想; 同时,对于本领域的 一般技术人员,依据本发明的思想,在具体实 施方式及应用范围上均会有改变 之处, 综上所述, 本说明书内容不应理解为对本发明的限制。