CN102810083B - 一种门铃消息分发方法、快速输入输出控制器和处理器 - Google Patents
一种门铃消息分发方法、快速输入输出控制器和处理器 Download PDFInfo
- Publication number
- CN102810083B CN102810083B CN201110142306.7A CN201110142306A CN102810083B CN 102810083 B CN102810083 B CN 102810083B CN 201110142306 A CN201110142306 A CN 201110142306A CN 102810083 B CN102810083 B CN 102810083B
- Authority
- CN
- China
- Prior art keywords
- core
- queue
- doorbell message
- controller
- doorbell
- 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.)
- Active
Links
Landscapes
- Communication Control (AREA)
- Multi Processors (AREA)
Abstract
本发明实施例公开了一种门铃消息分发方法、快速输入输出控制器和处理器,其中,所述方法包括:在接收到门铃消息后,通过快速输入输出(RapidIO)控制器解析所述门铃消息中携带的目的核标识;通过所述RapidIO控制器将所述门铃消息分发到与所述目的核标识对应的队列。通过在doorbell消息中携带目的核标识,将分发doorbell消息的工作移到RapidIO控制器上执行,RapidIO控制器根据doorbell消息中的目的核标识,可以直接将接收的doorbell消息分发到与目的核相应的队列中,使得分发doorbell消息不再受默认核分发速率的影响,进而降低分发doorbell消息对整个系统吞吐量的影响。
Description
技术领域
本发明涉及通信领域,特别是涉及一种门铃消息分发方法、快速输入输出控制器和处理器。
背景技术
RapidIO(快速输入输出)互连架构是一种开放的架构,可以满足各种嵌入式设备的应用需要,例如可以用于网络设备、存储设备、通用计算平台内的处理器、存储器以及存储器映射I/O器件之间的互连。RapidIO互连技术主要用作系统内部互连,支持芯片间和板间通信,可以实现从1Gbps到60Gbps的性能水平。
RapidIO操作是基于事务的。包是系统中端点器件间的基本通信单元。发起器件(Initiator)产生一个请求(Request)事务,该请求事务被发送至目标器件;目标器件产生一个响应(Response)事务返回至发起器件来完成本次操作。RapidIO事务被封装在包中,而包中包含了确保将事务可靠传送至目标器件的所有必需的位字段。
RapidIO包括两种运用方式,分别为IO方式和消息方式。在IO方式中,发起器件将数据以包的形式发送给目标器件;目标器件的RapidIO控制器在解析包内容之后,直接将包中的数据搬移到包指定的存储器地址。处理器不参与这个过程,因此目标器件侧的处理器并不知道数据到来,发起器件还需要通过其他方式通知处理器。在消息方式中,目标器件侧的处理器具有1-4个邮箱用来接收数据包,处理器能捕捉到每个邮箱中是否有数据包到来。
门铃(doorbell)消息是RapidIO架构中基于端口的轻量级事务,门铃消息包括一个由软件定义的16位字段,该字段可用来在两个器件间传达多种不同的信息。
RapidIO技术的一个常用方案为IO方式+doorbell:发起器件先让目标器件的RapidIO控制器将包中的数据写在包指定的地址,然后紧跟一个doorbell消息通知目标器件;而目标器件的RapidIO控制器在接收到doorbell消息之后,保存doorbell消息中的信息,然后产生一个中断通知处理器对数据进行处理,而doorbell消息中的16bit可以携带一些处理数据必要的信息;处理器响应中断的过程中,直接读取doorbell消息中16bit的信息,以获取处理数据所需的信息。在单核处理器技术中,对应doorbell消息的中断就上报一个处理器。
发明人在实现本发明的过程中发现:
在多核架构中,RapidIO控制器在产生中断通知处理器的过程中,是通知一个默认的核来获取doorbell消息的16bit信息并解析,若该doorbell消息是其他核的doorbell消息,则该默认核通过核间通信等形式发送给其他核。因此,整个系统的吞吐量会受限于分发doorbell消息的默认核。
发明内容
本发明实施例的目的是提供一种门铃消息分发方法、快速输入输出控制器和处理器,以降低分发doorbell消息对整个系统吞吐量的影响。
本发明一方面提供了一种门铃消息分发方法,包括:
在接收到发起器件发送的门铃消息后,通过快速输入输出(RapidIO)控制器解析所述门铃消息中携带的目的核标识;
通过所述RapidIO控制器将所述门铃消息分发到与所述目的核标识对应的队列。
本发明还提供了一种快速输入输出控制器,包括:
接收单元,用于接收发起器件发送的门铃消息;
解析单元,用于解析所述门铃消息中携带的目的核标识;
发送单元,用于将所述门铃消息分发到与所述目的核标识对应的队列。
本发明另一方面提供一种处理器,包括核、接收单元及存储单元,
接收单元,用于接收快速输入输出(RapidIO)控制器分发的门铃消息到与目的核标识对应的队列,所述门铃消息中携带目的核标识,所述门铃消息由发起器件发送;
存储单元,用于存储与目的标识对应的队列,所述队列的数量与核数量相等,且与核标识一一对应。
本发明实施例的doorbell消息分发方法、RapidIO控制器和处理器,通过在doorbell消息中携带目的核标识,将分发doorbell消息的工作移到RapidIO控制器上执行,RapidIO控制器根据doorbell消息中的目的核标识,可以直接将接收的doorbell消息分发到与目的核相应的队列中,使得分发doorbell消息不再受默认核分发速率的影响,进而降低分发doorbell消息对整个系统吞吐量的影响。
附图说明
图1是RapidIO架构示意图;
图2是本发明实施例的doorbell消息分发方法的第一实施例的流程示意图;
图3是本发明实施例的doorbell消息分发方法的第二实施例的流程示意图;
图4是队列位于RapidIO控制器上的示意图;
图5是本发明实施例的doorbell消息分发方法的第三实施例的流程示意图;
图6是队列位于处理器上的示意图;
图7是本发明实施例的RapidIO控制器的一个实施例的结构示意图;
图8是本发明实施例的RapidIO控制器的一个实施例的结构示意图;
图9是本发明实施例的RapidIO控制器的一个实施例的结构示意图;
图10是本发明实施例的处理器的一个实施例的结构示意图;
图11是本发明实施例的处理器的一个实施例的结构示意图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明实施例作进一步详细的说明。
RapidIO架构如图1所示,包括处理器、以及多个器件(如图中的器件1、器件2、器件3等),每个器件拥有RapidIO控制器。器件之间可以直接发送包进行数据传输,接收器件在接收到doorbell消息后,RapidIO控制器通知处理器提取doorbell消息,以便处理器后续对包中数据进行处理。
现有技术对于多核的情况,也是在接收器件的RapidIO控制器接收到doorbell消息后,通知处理器中默认的核(例如0号核),默认核将doorbell消息取出后,解析doorbell消息,通过doorbell消息携带的协议等信息判断该doorbell消息应该由哪个核处理;若应该由默认核处理,则默认核解析doorbell消息中处理包所需的信息,对包进行后续处理;若应该由其他核(如2号核)处理,则默认核通过核间通信将doorbell消息发送给应该处理doorbell消息的核(2号核)。此种情况下,若默认核上任务较多,而其他核较空闲,则整个系统处理速度会受到默认核分发速率的限制,进而影响整个系统的吞吐量。
对此,本发明实施例提供了一种doorbell消息分发方法和RapidIO控制器。
实施例一
本实施例提供了一种doorbell消息分发方法,如图2所示,包括如下步骤:
S10,在接收到doorbell消息后,RapidIO控制器解析所述doorbell消息中携带的目的核标识。
现有的doorbell消息,其中的16比特并未指定如何利用。本发明实施例使用doorbell消息携带目的核标识,可以根据处理器中核的数量指定doorbell消息中哪些比特用来携带目的核标识。例如对于具有16个核的处理器,核的编号分别为0~15,可以采用doorbell消息中4个连续的比特来标识目的核,比如:可以选择高4位,也可以选择低4位。
S20,通过RapidIO控制器将所述doorbell消息分发到与所述目的核标识对应的队列。
所述与目的核标识对应的队列可以位于RapidIO控制器或处理器上,以下都以处理器包含16个核、核的编号分别为0~15为例进行说明。
(1)当队列位于RapidIO控制器上时,如图3所示,所述方法还可以包括步骤S30:在RapidIO控制器上划分出与核数量相等的队列;其中,队列与核标识一一对应。这样,每个核在RapidIO控制器上都有与之对应的队列。参见图4,RapidIO控制器上划分有16个队列P0~P15,分别与编号为0~15的核对应。
核提取doorbell消息的方式可以有两种:
一种是在S20后,还可以包括:通过RapidIO控制器产生中断发送到目的核;通过目的核到与其核标识对应的队列提取doorbell消息。这种方式中,需要RapidIO控制器使用中断通知目的核doorbell消息已到达,目的核接收到中断后,到与其核标识对应的队列提取doorbell消息,以便后续对包进行处理。
另一种是:通过每个核以周期轮询的方式到与该核的标识对应的队列中提取doorbell消息。
(2)当队列位于处理器上时,如图5所示,所述方法还可以包括步骤S30’:在处理器上划分出与核数量相等的队列;队列与核标识一一对应。
参见图6,处理器上划分有16个队列Q0~Q15,分别与编号为0~15的核对应。
这里的队列是与核对应的私有队列,每个队列与核之间可以直接通信。
核提取doorbell消息的方式可以有两种:
一种是在S30’后,还可以包括:通过接收到doorbell消息的队列产生中断发送到与其对应的目的核;通过目的核到所述队列提取doorbell消息。这种方式中,需要队列使用中断通知与其对应的目的核doorbell消息已到达,目的核接收到中断后,到与其核标识对应的队列提取doorbell消息,以便后续对包进行处理。
另一种是:通过每个核以周期轮询的方式到与该核的标识对应的队列中提取doorbell消息。
或者,该队列为私有队列,其以其他方式通知其对应的核提取doorbell消息。
上述doorbell消息分发方法适用于多核处理器架构,也可以适用于单核处理器。当处理器为单核的处理器时,目的核标识可以为所述单核的标识。
本发明实施例的doorbell消息分发方法,通过在doorbell消息中携带目的核标识,将分发doorbell消息的工作移到RapidIO控制器上执行,RapidIO控制器根据doorbell消息中的目的核标识,可以直接将接收的doorbell消息分发到与目的核相应的队列中,使得分发doorbell消息不再受默认核分发速率的影响,进而降低分发doorbell消息对整个系统吞吐量的影响。
实施例二
本实施例提供了一种RapidIO控制器,如图7所示,所述RapidIO控制器包括接收单元10、解析单元20和发送单元30。
接收单元10用于接收doorbell消息;所述doorbell消息中携带有目的核标识。
解析单元20用于解析所述doorbell消息中携带的目的核标识;目的核标识可以采用doorbell消息中若干连续的比特来标识目的核。
发送单元30用于将所述doorbell消息分发到与所述目的核标识对应的队列。
所述与目的核标识对应的队列可以位于RapidIO控制器或处理器上。
当队列位于RapidIO控制器上时,如图8所示,RapidIO控制器还可以包括:队列划分单元40,用于在RapidIO控制器上划分出与核数量相等的队列;队列与核标识一一对应。
如图9所示,RapidIO控制器还可以包括:中断产生单元50,用于在发送单元30将所述doorbell消息分发到与所述目的核标识对应的队列后,产生中断;则所述发送单元30还可以用于:将所述中断发送到目的核。
本发明实施例的RapidIO控制器,通过在doorbell消息中携带目的核标识,将分发doorbell消息的工作移到RapidIO控制器上执行,RapidIO控制器根据doorbell消息中的目的核标识,可以直接将接收的doorbell消息分发到与目的核相应的队列中,使得分发doorbell消息不再受默认核分发速率的影响,进而降低分发doorbell消息对整个系统吞吐量的影响。
实施例三
本实施例提供了一种处理器,如图10所示,包括核11、接收单元22及存储单元33。
接收单元22用于接收快速输入输出(RapidIO)控制器分发的doorbell消息到与目的核标识对应的队列,所述doorbell消息中携带目的核标识;
存储单元33用于存储与核标识对应的队列,所述队列的数量与核11数量相等,且与核标识一一对应。
该处理器还可以包括(参见图11):
中断单元44,用于接收到doorbell消息的队列产生中断发送到与其对应的目的核;
则所述核11中的目的核,用于根据所述中断到所述队列提取doorbell消息。
或者,所述核11中的每一个,用于以周期轮询的方式到与该核的标识对应的队列中提取doorbell消息。
本实施例的处理器,将分发doorbell消息的工作移到RapidIO控制器上执行,RapidIO控制器根据doorbell消息中的目的核标识,可以直接将接收的doorbell消息分发到处理器上与目的核相应的队列中,使得分发doorbell消息不再受默认核分发速率的影响,进而降低分发doorbell消息对整个系统吞吐量的影响。
由于实施例二、实施例三与实施例一的相似内容较多,因此介绍的比较简略,相关之处请参见实施例一,此处不再赘述。
本发明实施例还提供一种快速输入输出互连架构,包括以上实施例中所述的任意一种快速输入输出控制器和/或以上实施例中任意一项所述的处理器。
本发明实施例还提供一种基站,包括以上实施例中所述的快速输入输出互连架构。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (15)
1.一种门铃消息分发方法,其特征在于,包括:
接收器件在接收到发起器件发送的门铃消息后,通过所述接收器件的快速输入输出(RapidIO)控制器解析所述门铃消息中携带的目的核标识;
通过所述RapidIO控制器将所述门铃消息分发到与所述目的核标识对应的队列,其中,所述队列与核标识一一对应。
2.如权利要求1所述的方法,其特征在于,所述与目的核标识对应的队列位于快速输入输出控制器,则所述方法还包括:在快速输入输出控制器上划分出与核数量相等的队列,所述队列与核标识一一对应。
3.如权利要求2所述的方法,其特征在于,在将所述门铃消息分发到与目的核标识对应的队列后,所述方法还包括:
通过快速输入输出控制器产生中断发送到目的核;通过目的核到与其核标识对应的队列提取门铃消息。
4.如权利要求2所述的方法,其特征在于,所述方法还包括:
通过每个核以周期轮询的方式到与该核的标识对应的队列中提取门铃消息。
5.如权利要求1所述的方法,其特征在于,所述与目的核标识对应的队列位于处理器上,则所述方法还包括:在处理器上划分出与核数量相等的队列,队列与核标识一一对应。
6.如权利要求5所述的方法,其特征在于,在将所述门铃消息分发到与目的核标识对应的队列后,所述方法还包括:
通过接收到门铃消息的队列产生中断发送到与其对应的目的核;
通过目的核到所述队列提取门铃消息。
7.如权利要求5所述的方法,其特征在于,所述方法还包括:
通过每个核以周期轮询的方式到与该核的标识对应的队列中提取doorbell消息。
8.一种快速输入输出控制器,其特征在于,包括:
接收单元,用于接收发起器件发送的门铃消息;
解析单元,用于解析所述门铃消息中携带的目的核标识;
发送单元,用于将所述门铃消息分发到与所述目的核标识对应的队列,其中,所述队列与核标识一一对应。
9.如权利要求8所述的快速输入输出控制器,其特征在于,所述与目的核标识对应的队列位于快速输入输出控制器;
则所述快速输入输出控制器还包括:队列划分单元,用于在快速输入输出控制器上划分出与核数量相等的队列,队列与核标识一一对应。
10.如权利要求8或9所述的快速输入输出控制器,其特征在于,所述快速输入输出控制器还包括:中断产生单元,用于在发送单元将所述门铃消息分发到与所述目的核标识对应的队列后,产生中断;
则所述发送单元还用于:将所述中断发送到目的核。
11.一种处理器,其特征在于,包括核、接收单元及存储单元,
接收单元,用于接收快速输入输出(RapidIO)控制器分发的门铃消息到与目的核标识对应的队列,所述门铃消息中携带目的核标识,其中,所述门铃消息由发起器件发送;
存储单元,用于存储与核标识对应的队列,所述队列的数量与核数量相等,且与核标识一一对应。
12.如权利要求11所述的处理器,其特征在于,还包括:
中断单元,用于接收到门铃消息的队列产生中断发送到与其对应的目的核;
则所述目的核,用于根据所述中断到所述队列提取门铃消息。
13.如权利要求11所述的处理器,其特征在于,所述核中的每一个,用于以周期轮询的方式到与该核的标识对应的队列中提取门铃消息。
14.一种快速输入输出互连架构,其特征在于,包括如权利要求8至10任意一项所述的快速输入输出控制器和/或如权利要求11至13任意一项所述的处理器。
15.一种基站,其特征在于,包括如权利要求14所述的快速输入输出互连架构。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110142306.7A CN102810083B (zh) | 2011-05-30 | 2011-05-30 | 一种门铃消息分发方法、快速输入输出控制器和处理器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110142306.7A CN102810083B (zh) | 2011-05-30 | 2011-05-30 | 一种门铃消息分发方法、快速输入输出控制器和处理器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102810083A CN102810083A (zh) | 2012-12-05 |
CN102810083B true CN102810083B (zh) | 2016-08-24 |
Family
ID=47233790
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110142306.7A Active CN102810083B (zh) | 2011-05-30 | 2011-05-30 | 一种门铃消息分发方法、快速输入输出控制器和处理器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102810083B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103049294B (zh) * | 2012-12-25 | 2016-05-04 | 大唐移动通信设备有限公司 | 一种网元软件升级的方法和装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101303675A (zh) * | 2008-06-13 | 2008-11-12 | 杭州华三通信技术有限公司 | 一种数据处理设备中的数据传输方法和一种数据处理设备 |
CN102035751A (zh) * | 2011-01-20 | 2011-04-27 | 大唐移动通信设备有限公司 | 一种数据的传输方法和设备 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060236011A1 (en) * | 2005-04-15 | 2006-10-19 | Charles Narad | Ring management |
-
2011
- 2011-05-30 CN CN201110142306.7A patent/CN102810083B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101303675A (zh) * | 2008-06-13 | 2008-11-12 | 杭州华三通信技术有限公司 | 一种数据处理设备中的数据传输方法和一种数据处理设备 |
CN102035751A (zh) * | 2011-01-20 | 2011-04-27 | 大唐移动通信设备有限公司 | 一种数据的传输方法和设备 |
Also Published As
Publication number | Publication date |
---|---|
CN102810083A (zh) | 2012-12-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102648455B (zh) | 服务器和流控制程序 | |
CN104503728B (zh) | 一种硬件加速器及芯片 | |
CN105511954A (zh) | 一种报文处理方法及装置 | |
US9396154B2 (en) | Multi-core processor for managing data packets in communication network | |
CN106708762B (zh) | 一种linux下串口设备统一管理系统及方法 | |
CN101877659B (zh) | 一种丢包监控的方法、设备和系统 | |
CN101616083A (zh) | 一种报文转发方法和装置 | |
CN102724035B (zh) | 一种加密卡的加解密方法 | |
CN111078436B (zh) | 数据处理的方法、装置、设备及存储介质 | |
CN109739786B (zh) | 一种dma控制器和异构加速系统 | |
CN104506379A (zh) | 网络数据捕获方法和系统 | |
CN107122252B (zh) | 一种系统间交互方法和装置 | |
CN104123265A (zh) | 一种众核间通信方法及系统 | |
WO2018004953A1 (en) | Technologies for scalable packet reception and transmission | |
CN101751291A (zh) | 应用程序共享同一串口的方法与装置 | |
CN106603409B (zh) | 一种数据处理系统、方法及设备 | |
US11671678B2 (en) | Method and device, equipment, and storage medium for data processing | |
CN100452757C (zh) | 报文转发方法和装置 | |
CN104125281A (zh) | 云数据中心申请资源审批状态记录方法及装置 | |
CN204117142U (zh) | 提供主机即时切换分享通用串行总线电子设备的电子装置 | |
CN103312614B (zh) | 一种组播报文处理方法、线卡及通信设备 | |
CN105991588A (zh) | 一种防御消息攻击的方法及装置 | |
CN102810083B (zh) | 一种门铃消息分发方法、快速输入输出控制器和处理器 | |
CN107172139B (zh) | 一种无线协议栈及其实现方法 | |
CN103299298A (zh) | 处理业务的方法和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |