CN104536928A - 通过多核pcie加速子卡后的数据排序方法 - Google Patents
通过多核pcie加速子卡后的数据排序方法 Download PDFInfo
- Publication number
- CN104536928A CN104536928A CN201410834171.4A CN201410834171A CN104536928A CN 104536928 A CN104536928 A CN 104536928A CN 201410834171 A CN201410834171 A CN 201410834171A CN 104536928 A CN104536928 A CN 104536928A
- Authority
- CN
- China
- Prior art keywords
- pcie
- packet
- multinuclear
- subcard
- sorting
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4009—Coupling between buses with data restructuring
- G06F13/4013—Coupling between buses with data restructuring with data re-ordering, e.g. Endian conversion
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供了一种通过多核PCIE加速子卡后的数据排序方法,包括以下步骤:多个线程同时从网口接收数据包;多个排序核进行第一次排序;每个所述排序核中的数据包通过一通道传送到主机;所述主机对经过第一次排序后的数据包后进行第二次排序。所述多核PCIE加速子卡中的多个排序核对从网口接收到的数据包进行第一次排序,然后将经过第一次排序后的数据包通过多个所述通道传送到所述主机上,每个所述通道内的数据包是有序的,所述主机对多个所述通道内有序的数据包进行第二次排序,边排序边将排好序的数据包发送到客户端,无需消耗所述主机硬盘,只需缓存即可,同时提高了效率,节约了处理时间。
Description
技术领域
本发明涉及通讯领域,尤其是一种通过多核PCIE加速子卡后的数据排序方法。
背景技术
PCIE-1365加速子卡板载众核芯片TILE-Gx8036,是一款高性能的网络和计算平台,旨在释放嵌入式系统和服务器的性能和吞吐量。
其中,PCIE(Peripheral Component Interconnection Express)是一种周边元件扩展接口。
板载多核芯片TILE-Gx8036是Tilera公司第三代64位处理器,有36个类MIPS核。Tilera公司创造性地设计了核之间的iMeshTM互联架构,提供了非常高的核间通信数据带宽,降低了核间通信延时,而且通过共享的Cache消除了核间互联的性能瓶颈,并降低了芯片功耗。
所述PCIE-1365加速子卡板是一种多核PCIE加速子卡,所述PCIE-1365加速子卡板拥有4个可配置为千兆或万兆的以太网光口(SFP/SFP+)及Crypto硬加速引擎,具有40Gbps网络数据I/O能力。可以支持12路1080P高清视频处理,支持3000路语音编解码处理。
所述PCIe-1365加速子卡板可安装于台式主机或机架式服务器,通过PCIE插槽供电;也可以配置为独立模式,不使用PCIE接口,通过6针电源接口供电进行独立操作。
由于PCIE加速子卡为多核并行处理,且处理的数据很大,如果不对所述PCIE加速子卡处理的数据包进行排序,与其连接的主机接收到所述PCIE加速子卡处理的数据包后,需要将这些数据包存储在所述主机的硬盘上,然后再对这些数据包进行排序,再输出到客户端,导致所述主机硬盘消耗大,处理时间长。
发明内容
本发明的目的在于提供一种通过多核PCIE加速子卡后的数据排序方法,以解决PCIE加速子卡与主机数据传输时间长、所述主机硬盘消耗大的问题。
为了达到上述目的,本发明提供了一种通过多核PCIE加速子卡后的数据排序方法,包括以下步骤:
多核PCIE加速子卡中的多个线程同时从网口接收数据包;
所述多核PCIE加速子卡中的多个排序核接收所述多个线程发出的数据包,并进行第一次排序;
每个所述排序核中经过第一次排序后的数据包通过一通道传送到与所述多核加速子卡连接的主机;以及
所述主机通过所述多个通道接收到经过第一次排序后的数据包后进行第二次排序。
优选的,在上述的通过多核PCIE加速子卡后的数据排序方法中,所述多个线程从网口接收到的数据包均包含一时间戳。
优选的,在上述的通过多核PCIE加速子卡后的数据排序方法中,所述第一次排序根据所述数据包上时间戳的前后来排序。
优选的,在上述的通过多核PCIE加速子卡后的数据排序方法中,所述第二次排序根据所述数据包上时间戳的前后来排序。
优选的,在上述的通过多核PCIE加速子卡后的数据排序方法中,所述主机将接收到的每个所述通道传输的经过所述第一次排序后的数据包放入一缓冲寄存器内。
优选的,在上述的通过多核PCIE加速子卡后的数据排序方法中,所述主机对存储于多个所述缓冲寄存器内的数据包进行第二次排序。
优选的,在上述的通过多核PCIE加速子卡后的数据排序方法中,所述主机对存储于多个所述缓冲寄存器内的数据包进行第二次排序的步骤具体为:所述主机同时扫描多个所述缓冲寄存器并行传输的数据包,将扫描到的时间戳最早的数据包先发送到客户端,然后依据所述时间戳的前后顺序将剩余的数据包依次发送到客户端。
优选的,在上述的通过多核PCIE加速子卡后的数据排序方法中,每个所述排序核同时接收多个所述线程并行发出的数据包。
优选的,在上述的通过多核PCIE加速子卡后的数据排序方法中,所述多核PCIE加速子卡通过PCIE接口与所述主机连接。
优选的,在上述的通过多核PCIE加速子卡后的数据排序方法中,所述多核PCIE加速子卡基于操作系统进行,对所述多核PCIE加速子卡进行编程调试。
在本发明提供的通过多核PCIE加速子卡后的数据排序方法中,所述多核PCIE加速子卡中的多个排序核对从网口接收到的数据包进行第一次排序,然后将经过第一次排序后的数据包通过多个所述通道传送到与所述多核PCIE加速子卡连接的所述主机上,每个所述通道内的数据包是有序的,所述主机对多个所述通道内有序的数据包进行第二次排序,在所述第二次排序过程中,边排序边将排好序的数据包发送到客户端,无需消耗所述主机硬盘,只需缓存即可,同时提高了效率,节约了处理时间。
附图说明
图1为本发明实施例中通过多核PCIE加速子卡后的数据排序方法的流程图。
具体实施方式
下面将结合示意图对本发明的具体实施方式进行更详细的描述。根据下列描述和权利要求书,本发明的优点和特征将更清楚。需说明的是,附图均采用非常简化的形式且均使用非精准的比例,仅用以方便、明晰地辅助说明本发明实施例的目的。
具体的,如图1所示,本发明提供了一种数据通过多核PCIE加速子卡后的排序方法,包括以下步骤:
步骤S1、多核PCIE加速子卡中的多个线程同时从网口接收数据包。
具体的,所述多核PCIE加速子卡基于操作系统(Linux)进行,对所述多核PCIE加速子卡进行编程调试。且所述多核PCIE加速子卡包含有多个核,所述多个核中一部分用于从网口接收数据包,用于接收数据包的核,即为线程;一部分用于对所接收的数据包进行排序,即为排序核;还有一部分用于将经过所述排序核排好序的数据包传送到与所述多核PCIE加速子卡连接的主机上,即为通道。
进一步的,还可以根据实际传输数据的大小,灵活定义所述线程、所述排序核及所述通道的数目。如果所述多核PCIE加速子卡的核数较多,例如为36核,而所需传输的数据较大,可以定义3个排序核,3个通道,1个核用于运行Linux操作系统,那么剩余的27个核均用作线程从所述网口来接收数据包,提高数据传输速度,也可以只用一部分核作为线程,剩余的核闲置,比如剩余的27个核只用20个核来从所述网口接收数据包,剩余7个核闲置,也可以减少或者增加所述排序核的数目,减少或增加所述通道的数目,相应的调整用于接收所述网口的数据的所述线程的数目。所述多核PCIE加速子卡的核数也有9核的,工程师可以根据需要自行定义其中所述线程、所述排序核及所述通道的数目。其中,所述排序核的数目与所述通道的数目相同,一个所述通道用于传送一个所述排序核发出的数据包。在本发明的其他实施例中,所述多核PCIE加速子卡还有其他的核数,这是本领域技术人员所熟知的,在此不再赘述。
具体的,在本发明实施例中,所述多核PCIE加速子卡为36核,3个排序核,3个通道,1个核用于运行Linux操作系统,剩余的27个核均用作线程从所述网口来接收数据包。
进一步的,多个所述线程从所述网口接收到的每个数据包均包含一时间戳,所述时间戳显示了所述数据包通过所述网口的具体时间,根据所述时间戳的前后可以判断所述数据包的前后顺序。
步骤S2、所述多核PCIE加速子卡中的多个排序核接收所述多个线程发出的数据包,并进行第一次排序。
每个所述排序核同时接收所述多个线程并行发出的数据包,然后根据接收到的所述数据包上的时间戳来进行第一次排序。
具体的,在本发明实施例中,每个所述排序核接收27个所述线程并行发送的数据包,每个所述排序核根据接收到所述数据包上的时间戳进行第一次排序,经过每个所述排序核第一次排序后,每个所述排序核接收到的数据包按照所述数据包的时间戳的发送时间早到发送时间晚排列。但是经过所述第一次排序后的数据包序列中,每两个相邻的数据包的时间戳有可能是相邻的,也有可能不是相邻的。也就是说,每个所述排序核是随机接收多个所述线程发送的数据包。
步骤S3、每个所述排序核中经过第一次排序后的数据包通过一通道传送到与所述多核加速子卡连接的主机。
由步骤S2可知,经过所述第一次排序后的数据包就是有序的,有序的所述数据包通过与所述排序核对应的所述通道传输,在传输过程中,根据FIFO(FirstIn First Out,先进先出)法传输,也就是说所述通道里的数据包也是有序的。
具体的,所述多核PCIE加速子卡与所述主机是通过PCIE接口连接的。
步骤S4、所述主机通过所述多个所述通道接收到经过第一次排序后的数据包后进行第二次排序。
具体的,在本实施例中,所述主机通过3个所述通道接收到经过第一次排序后的数据包,并将通过一个所述通道接收到的数据包存储在一缓冲寄存器内。每个所述通道内传输的数据包已经是有序的,也就是说,所述主机每一次同时接收到的3个数据包中,每个数据包都分别是3个所述通道内时间戳最早的一个数据包,所述主机只要扫描所述3个数据包的时间戳,将所述3个数据包中时间戳最早的数据包先发送到客户端,然后按照所述3个数据包时间戳的早晚将所述3个数据包依次发送到客户端,然后重复此步骤,直到将所述主机从所述多核PCIE加速子卡接收到的数据包全部发送到客户端结束。这个过程就是所述主机对存储于多个所述缓冲寄存器内的数据包进行第二次排序的过程。
综上,在本发明实施例提供的通过多核PCIE加速子卡后的数据排序方法中,所述多核PCIE加速子卡中的多个排序核对从网口接收到的数据包进行第一次排序,然后将经过第一次排序后的数据包通过多个所述通道传送到与所述多核PCIE加速子卡连接的所述主机上,每个所述通道内的数据包是有序的,所述主机对多个所述通道内有序的数据包进行第二次排序,在所述第二次排序过程中,边排序边将排好序的数据包发送到客户端,无需消耗所述主机硬盘,只需缓存即可,同时提高了效率,节约了处理时间。
上述仅为本发明的优选实施例而已,并不对本发明起到任何限制作用。任何所属技术领域的技术人员,在不脱离本发明的技术方案的范围内,对本发明揭露的技术方案和技术内容做任何形式的等同替换或修改等变动,均属未脱离本发明的技术方案的内容,仍属于本发明的保护范围之内。
Claims (10)
1.一种通过多核PCIE加速子卡后的数据排序方法,其特征在于,包括以下步骤:
多核PCIE加速子卡中的多个线程同时从网口接收数据包;
所述多核PCIE加速子卡中的多个排序核接收所述多个线程发出的数据包,并进行第一次排序;
每个所述排序核中经过第一次排序后的数据包通过一通道传送到与所述多核PCIE加速子卡连接的主机;以及
所述主机通过所述多个通道接收到经过第一次排序后的数据包后进行第二次排序。
2.如权利要求1所述的通过多核PCIE加速子卡后的数据排序方法,其特征在于,所述多个线程从网口接收到的数据包均包含一时间戳。
3.如权利要求2所述的通过多核PCIE加速子卡后的数据排序方法,其特征在于,所述第一次排序根据所述数据包上时间戳的前后来排序。
4.如权利要求2所述的通过多核PCIE加速子卡后的数据排序方法,其特征在于,所述第二次排序根据所述数据包上时间戳的前后来排序。
5.如权利要求2所述的通过多核PCIE加速子卡后的数据排序方法,其特征在于,所述主机将接收到的每个所述通道传输的经过所述第一次排序后的数据包放入一缓冲寄存器内。
6.如权利要求5所述的通过多核PCIE加速子卡后的数据排序方法,其特征在于,所述主机对存储于多个所述缓冲寄存器内的数据包进行第二次排序。
7.如权利要求6所述的通过多核PCIE加速子卡后的数据排序方法,其特征在于,所述主机对存储于多个所述缓冲寄存器内的数据包进行第二次排序的步骤具体为:所述主机同时扫描多个所述缓冲寄存器并行传输的数据包,将扫描到的时间戳最早的数据包先发送到客户端,然后依据所述时间戳的前后顺序将剩余的数据包依次发送到客户端。
8.如权利要求1所述的通过多核PCIE加速子卡后的数据排序方法,其特征在于,每个所述排序核同时接收多个所述线程并行发出的数据包。
9.如权利要求1所述的通过多核PCIE加速子卡后的数据排序方法,其特征在于,所述多核PCIE加速子卡通过PCIE接口与所述主机连接。
10.如权利要求1所述的通过多核PCIE加速子卡后的数据排序方法,其特征在于,所述多核PCIE加速子卡基于操作系统进行,对所述多核PCIE加速子卡进行编程调试。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410834171.4A CN104536928A (zh) | 2014-12-23 | 2014-12-23 | 通过多核pcie加速子卡后的数据排序方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410834171.4A CN104536928A (zh) | 2014-12-23 | 2014-12-23 | 通过多核pcie加速子卡后的数据排序方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104536928A true CN104536928A (zh) | 2015-04-22 |
Family
ID=52852458
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410834171.4A Pending CN104536928A (zh) | 2014-12-23 | 2014-12-23 | 通过多核pcie加速子卡后的数据排序方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104536928A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106027492A (zh) * | 2016-04-29 | 2016-10-12 | 努比亚技术有限公司 | 一种数据传输终端及方法 |
CN106250097A (zh) * | 2016-06-22 | 2016-12-21 | 中国科学院计算技术研究所 | 一种面向大数据的加速排序装置、方法、芯片、处理器 |
CN109889506A (zh) * | 2019-01-24 | 2019-06-14 | 黄洪廉 | 电力用大数据网络监控系统 |
CN109981456A (zh) * | 2017-12-27 | 2019-07-05 | 丛林网络公司 | 网络装置内的虚拟节点的用于分组重新排序的智能缓存 |
CN111832048A (zh) * | 2020-07-09 | 2020-10-27 | 郑州信大捷安信息技术股份有限公司 | 一种基于双端口ram的数据包排序方法和系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100274926A1 (en) * | 2009-04-22 | 2010-10-28 | Rajendra Sadanand Marulkar | High-speed inline data compression inline with an eight byte data path |
CN202721702U (zh) * | 2012-08-20 | 2013-02-06 | 上海颐东网络信息有限公司 | 一种高速云交换安全设备 |
CN103532875A (zh) * | 2013-10-12 | 2014-01-22 | 江苏华丽网络工程有限公司 | 一种用于pcie应用层接口的重排序技术 |
CN104035899A (zh) * | 2014-03-21 | 2014-09-10 | 浪潮电子信息产业股份有限公司 | 一种高速互联总线多消息源仲裁器的实现方法 |
-
2014
- 2014-12-23 CN CN201410834171.4A patent/CN104536928A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100274926A1 (en) * | 2009-04-22 | 2010-10-28 | Rajendra Sadanand Marulkar | High-speed inline data compression inline with an eight byte data path |
CN202721702U (zh) * | 2012-08-20 | 2013-02-06 | 上海颐东网络信息有限公司 | 一种高速云交换安全设备 |
CN103532875A (zh) * | 2013-10-12 | 2014-01-22 | 江苏华丽网络工程有限公司 | 一种用于pcie应用层接口的重排序技术 |
CN104035899A (zh) * | 2014-03-21 | 2014-09-10 | 浪潮电子信息产业股份有限公司 | 一种高速互联总线多消息源仲裁器的实现方法 |
Non-Patent Citations (1)
Title |
---|
李经章: "基于FPGA的PCI Express传输设计", 《中国优秀硕士学位论文全文数据库》 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106027492A (zh) * | 2016-04-29 | 2016-10-12 | 努比亚技术有限公司 | 一种数据传输终端及方法 |
CN106250097A (zh) * | 2016-06-22 | 2016-12-21 | 中国科学院计算技术研究所 | 一种面向大数据的加速排序装置、方法、芯片、处理器 |
CN109981456A (zh) * | 2017-12-27 | 2019-07-05 | 丛林网络公司 | 网络装置内的虚拟节点的用于分组重新排序的智能缓存 |
CN109981456B (zh) * | 2017-12-27 | 2021-08-20 | 瞻博网络公司 | 网络装置内用于分组重新排序的方法和装置 |
CN109889506A (zh) * | 2019-01-24 | 2019-06-14 | 黄洪廉 | 电力用大数据网络监控系统 |
CN111832048A (zh) * | 2020-07-09 | 2020-10-27 | 郑州信大捷安信息技术股份有限公司 | 一种基于双端口ram的数据包排序方法和系统 |
CN111832048B (zh) * | 2020-07-09 | 2022-02-11 | 郑州信大捷安信息技术股份有限公司 | 一种基于双端口ram的数据包排序方法和系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104536928A (zh) | 通过多核pcie加速子卡后的数据排序方法 | |
JP5863076B2 (ja) | パケットを再構築し再順序付けするための方法、装置、およびシステム | |
KR101639438B1 (ko) | 버퍼링된 크로스바 스위치 시스템 | |
US9300597B2 (en) | Statistics module for network processors in virtual local area networks | |
CN113728596A (zh) | 在网络接口控制器(nic)中促进对幂等操作进行高效管理的系统和方法 | |
US9864633B2 (en) | Network processor having multicasting protocol | |
US8949578B2 (en) | Sharing of internal pipeline resources of a network processor with external devices | |
CN102104544B (zh) | 硬件加速的多核处理器ip隧道分片报文流保序方法 | |
CN102868635B (zh) | 多核多线程的报文保序方法及系统 | |
CN109684269B (zh) | 一种pcie交换芯片内核及工作方法 | |
US8873550B2 (en) | Task queuing in a multi-flow network processor architecture | |
CN105511954A (zh) | 一种报文处理方法及装置 | |
CN102891809B (zh) | 多核网络设备报文按接口保序方法及系统 | |
US20120213076A1 (en) | Cell processing method, source line card, and network card in switching network | |
US9619410B1 (en) | Systems and methods for packet switching | |
CN103530245A (zh) | 一种基于fpga的srio互联交换装置 | |
US8824468B2 (en) | System and method for parsing frames | |
CN103842979B (zh) | 用于执行等时数据缓冲的系统和方法 | |
US10938502B2 (en) | Method and system for accurate IPG compensation of USXGMII multi-channel | |
CN104618083A (zh) | 一种多通道报文转发的方法 | |
CN112995245B (zh) | 一种基于fpga的可配置负载均衡系统与方法 | |
Baymani et al. | Exploring RapidIO technology within a DAQ system event building network | |
CN110661731B (zh) | 一种报文处理方法及其装置 | |
CN104901904A (zh) | 从pcie加速子卡到主机的数据传输方法及装置 | |
US9215125B2 (en) | Techniques for connecting an external network coprocessor to a network processor packet parser |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20150422 |