CN103902500A - 一种非cache一致性协议加解锁报文处理方法 - Google Patents
一种非cache一致性协议加解锁报文处理方法 Download PDFInfo
- Publication number
- CN103902500A CN103902500A CN201410106964.4A CN201410106964A CN103902500A CN 103902500 A CN103902500 A CN 103902500A CN 201410106964 A CN201410106964 A CN 201410106964A CN 103902500 A CN103902500 A CN 103902500A
- Authority
- CN
- China
- Prior art keywords
- message
- clump
- processing
- release
- passage
- 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.)
- Granted
Links
Images
Landscapes
- Multi Processors (AREA)
Abstract
本发明提供一种非cache一致性协议加解锁报文处理方法,涉及基于IntelQPI协议芯片设计方法的技术领域,本发明应用于多ClumpCPU的互连系统,但并不局限于此系统或此种加解锁报文处理的场景。其中,对应于MasterClump和SlaveClump侧的NC,除地址空间划分和ID配置有差异外,实现功能并无差异,且均具有本Clump的请求控制功能和本Clump外请求的处理功能。作为发起Clump时只进行请求控制功能,作为处理Clump时实现本Clump外请求的处理功能。可以处理应对类似于加解锁报文这种对处理报文有顺序要求和数量要求,且不能阻塞后续报文交互类型的成对报文。
Description
技术领域
本发明属于计算机体系结构范畴,涉及基于Intel QPI协议芯片设计方法的技术领域,具体说是一种非cache一致性协议加解锁报文处理方法。
背景技术
基于Intel QPI 协议的NC(node controller)芯片,在处理非cache一致性加解锁报文时,由于此种报文的交互具有特殊性,需要专门进行处理。其中,每个Request CPU发起的加解锁报文是成对出现的,在每笔加解锁指令完成前,协议规定其无法继续发出第二组,但允许不同CPU同时发起加解锁报文或其它类型报文;同时协议又规定作为Master 的CPU每次只能处理一组加解锁指令报文组,在正确处理前一组加解锁报文后,才能继续处理第二组,且每组加解锁指令中间都需要通过Master CPU主动发起、接收若干笔加解锁相关的广播交互报文及响应报文, 来通知所有的Slave CPU指令的状态,最后Master CPU多次需要收集Slave CPU响应,并回复Request CPU,在此过程中NC芯片不能阻塞非加解锁报文类型的报文。
发明内容
考虑到协议处理的各种特殊情况,本发明的目的是提供一种基于Intel QPI协议的非cache一致性加解锁报文的协议处理方法。仿真验证和FPGA验证实际证明了在多路复杂系统中该协议处理方法的有效性。
本非cache一致性加解锁报文处理方法的具体实现方式为:
一种非cache一致性协议加解锁报文处理方法,应用于多Clump CPU的互连系统,但并不局限于此系统或此种加解锁报文处理的场景;其中,对应于Master Clump和Slave Clump侧的NC,除地址空间划分和ID配置有差异外,实现功能并无差异,且均具有本Clump的请求控制功能和本Clump外请求的处理功能;作为发起Clump时只进行请求控制功能,作为处理Clump时实现本Clump外请求的处理功能;方便起见,将发起Clump称为Slave Clump,处理clump称为Master Clump。
所述多Clump CPU互连系统,Slave Clump侧NC的加解锁报文的处理流程的具体实施方法为:
1)、同一Clump的各 CPU可同时发起加锁请求或同通道其它类型报文;
2)、将同一通道的报文,按照请求到达NC的先后顺序和报文所在通道进行预处理排队;
3)、判断预处理报文的类型,如果该报文是加锁报文,且存在未处理完成的同类型报文,则将该报文打到专门加解锁排队通道,并读取下一笔预处理排队报文,否则将该报文送入到报文处理器中进行下一步处理;
4)、如果通过判断接收到响应报文的解锁响应报文,也就是该组加解锁报文处理完毕,加解锁排队通道非空,预处理排队通道为空,且报文处理器有空闲ID,则将下一笔加锁报文从加解锁排队通道读出,送入到报文处理器进行处理。
所述多Clump CPU互连系统,Master Clump侧NC的加解锁报文的处理流程
的具体实施方法为:
1)、Master Clump侧NC收集本Clump外的请求报文;
2)、将同一通道的报文按照到达NC的先后顺序和报文所在通道进行预处理排队;
3)、等待该通道处理的空闲ID;其中,ID总数即为分配给该通道预处理报文的处理令牌总数,当有新报文进入报文处理器时,令牌数目减一,当该报文处理完成后释放令牌,令牌数目加一;
4)、判断预处理报文的类型,如果是非加解锁报文,则送入报文处理器;如果是加锁报文,且前面有未处理完成的加锁报文,则将加锁报文读出后,送入加锁报文排队序列,序列计数器加1,否则送入报文处理器;如果是解锁报文,将报文同样送入报文处理器,并监测解锁报文是否正常响应,且将响应报文回送到请求Clump侧;如果解锁完成,则通知加锁控制模块,准备下一笔加锁报文的处理。
5)、如果加锁控制模块在准备下一笔加锁报文的处理时,判断如果有空闲ID,且无其它报文类型需要处理,则读取加锁排队序列进入报文处理器,直到加锁报文排队序列为空,完成所有加锁报文的处理。
本发明的有益效果是:
应用于多路服务器系统复杂非一致性加解锁报文的处理;应用于Master CPU对报文的处理有排队顺序要求,且处理顺序以达到Master CPU的时间为序;既可以管理单笔加解锁报文,也能同时管理多clump系统CPU同时发送加解锁报文;处理的加解锁报文,要求每个请求CPU发出的加解锁报文是成对出现的,中间可以有其它类型报文。在请求clump侧进行排队和流控,防止多笔加解锁报文同时发出造成的信道阻塞。在处理每一组加解锁报文时,不能阻塞同通道其它类型报文的处理。提出并实现了解决类似非cache一致性报文请求的方法。该方法在请求发起侧进行流控,并对请求处理侧进行排队处理,具有实现简单、可控,可靠性高的优点。
附图说明
附图1为非cache一致性加解锁报文处理拓扑结构图;
附图2为 Slave Clump侧NC加解锁报文处理流程图;
附图3为 Master Clump侧NC加解锁报文处理流程图。
具体实施方式
本非cache一致性加解锁报文处理方法的具体实现方式为:
1、该非cache一致性加解锁报文处理方法应用于如图1所示的多Clump CPU的互连系统,但并不局限于此系统或此种加解锁报文处理的场景。 其中,对应于Master Clump和Slave Clump侧的NC,除地址空间划分和ID配置有差异外,实现功能并无差异,且均具有本Clump的请求控制功能和本Clump外请求的处理功能。只不过,作为发起Clump时只进行请求控制功能,作为处理Clump时实现本Clump外请求的处理功能。方便起见,将发起Clump称为Slave Clump,处理clump称为Master Clump;
2、所述的多Clump CPU互连系统,Slave Clump侧NC的加解锁报文的处理流程如图2所示。其中,具体实施方法为:
1)、同一Clump的各 CPU可同时发起加锁请求或同通道其它类型报文;
2)、将同一通道的报文,按照请求到达NC的先后顺序和报文所在通道进行预处理排队;
3)、判断预处理报文的类型,如果该报文是加锁报文,且存在未处理完成的同类型报文,则将该报文打到专门加解锁排队通道,并读取下一笔预处理排队报文,否则将该报文送入到报文处理器中进行下一步处理。这样做可以不阻塞同通道其它报文的处理,以免造成系统宕机;
4)、如果通过判断接收到响应报文的解锁响应报文,也就是该组加解锁报文处理完毕,加解锁排队通道非空,预处理排队通道为空,且报文处理器有空闲ID,则将下一笔加锁报文从加解锁排队通道读出,送入到报文处理器进行处理。以此可以避免该通道处理信用的耗尽,阻塞其它同通道报文类型的处理,引起不良后果。
3、所述的多Clump CPU互连系统,Master Clump侧NC的加解锁报文的处理流程如图3所示。其中,具体实施方法为:
1)、Master Clump侧NC收集本Clump外的请求报文;
2)、将同一通道的报文按照到达NC的先后顺序和报文所在通道进行预处理排队;
3)、等待该通道处理的空闲ID。其中,ID总数即为分配给该通道预处理报文的处理令牌总数,当有新报文进入报文处理器时,令牌数目减一,当该报文处理完成后释放令牌,令牌数目加一;
4)、判断预处理报文的类型,如果是非加解锁报文,则送入报文处理器。如果是加锁报文,且前面有未处理完成的加锁报文,则将加锁报文读出后,送入加锁报文排队序列,序列计数器加1,否则送入报文处理器。如果是解锁报文,将报文同样送入报文处理器,并监测解锁报文是否正常响应,且将响应报文回送到请求Clump侧。如果解锁完成,则通知加锁控制模块,准备下一笔加锁报文的处理。以此保证在上一笔加锁报文处理完成后,再处理下一笔加锁报文,保证Master同时只处理一笔加锁报文。
5)、如果加锁控制模块在准备下一笔加锁报文的处理时,判断如果有空闲ID,且无其它报文类型需要处理,则读取加锁排队序列进入报文处理器,直到加锁报文排队序列为空,完成所有加锁报文的处理。以此可以应对多Clump同时发起的加锁报文请求的情况的处理。
多Clump CPU互连系统,可以处理应对类似于加解锁报文这种对处理报文有顺序要求和数量要求,且不能阻塞后续报文交互类型的成对报文。
由于加解锁报文成对出现,中间具有较多的交互流程,通道的处理能力有限,无法同时满足多笔加锁报文的处理请求,Master CPU同时只能处理一组加解锁报文,且不能阻塞同通道其它种类报文请求,本发明同时满足了以上要求,提出并实现了解决类似非cache一致性报文请求的方法。该方法在请求发起侧进行流控,并对请求处理侧进行排队处理,具有实现简单、可控,可靠性高的优点。
Claims (3)
1.一种非cache一致性协议加解锁报文处理方法,其特征在于应用于多Clump CPU的互连系统,但并不局限于此系统或此种加解锁报文处理的场景;其中,对应于Master Clump和Slave Clump侧的NC,除地址空间划分和ID配置有差异外,实现功能并无差异,且均具有本Clump的请求控制功能和本Clump外请求的处理功能;作为发起Clump时只进行请求控制功能,作为处理Clump时实现本Clump外请求的处理功能;方便起见,将发起Clump称为Slave Clump,处理clump称为Master Clump。
2.根据权利1所述的方法,其特征在于所述多Clump CPU互连系统,Slave Clump侧NC的加解锁报文的处理流程的具体实施方法为:
1)、同一Clump的各 CPU可同时发起加锁请求或同通道其它类型报文;
2)、将同一通道的报文,按照请求到达NC的先后顺序和报文所在通道进行预处理排队;
3)、判断预处理报文的类型,如果该报文是加锁报文,且存在未处理完成的同类型报文,则将该报文打到专门加解锁排队通道,并读取下一笔预处理排队报文,否则将该报文送入到报文处理器中进行下一步处理;
4)、如果通过判断接收到响应报文的解锁响应报文,也就是该组加解锁报文处理完毕,加解锁排队通道非空,预处理排队通道为空,且报文处理器有空闲ID,则将下一笔加锁报文从加解锁排队通道读出,送入到报文处理器进行处理。
3.根据权利1所述的方法,其特征在于所述多Clump CPU互连系统,Master Clump侧NC的加解锁报文的处理流程的具体实施方法为:
1)、Master Clump侧NC收集本Clump外的请求报文;
2)、将同一通道的报文按照到达NC的先后顺序和报文所在通道进行预处理排队;
3)、等待该通道处理的空闲ID;其中,ID总数即为分配给该通道预处理报文的处理令牌总数,当有新报文进入报文处理器时,令牌数目减一,当该报文处理完成后释放令牌,令牌数目加一;
4)、判断预处理报文的类型,如果是非加解锁报文,则送入报文处理器;如果是加锁报文,且前面有未处理完成的加锁报文,则将加锁报文读出后,送入加锁报文排队序列,序列计数器加1,否则送入报文处理器;如果是解锁报文,将报文同样送入报文处理器,并监测解锁报文是否正常响应,且将响应报文回送到请求Clump侧;如果解锁完成,则通知加锁控制模块,准备下一笔加锁报文的处理;
5)、如果加锁控制模块在准备下一笔加锁报文的处理时,判断如果有空闲ID,且无其它报文类型需要处理,则读取加锁排队序列进入报文处理器,直到加锁报文排队序列为空,完成所有加锁报文的处理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410106964.4A CN103902500B (zh) | 2014-03-21 | 2014-03-21 | 一种非cache一致性协议加解锁报文处理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410106964.4A CN103902500B (zh) | 2014-03-21 | 2014-03-21 | 一种非cache一致性协议加解锁报文处理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103902500A true CN103902500A (zh) | 2014-07-02 |
CN103902500B CN103902500B (zh) | 2018-05-08 |
Family
ID=50993830
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410106964.4A Active CN103902500B (zh) | 2014-03-21 | 2014-03-21 | 一种非cache一致性协议加解锁报文处理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103902500B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106557429A (zh) * | 2015-09-29 | 2017-04-05 | 华为技术有限公司 | 一种内存数据的迁移方法和节点控制器 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020184330A1 (en) * | 2001-06-04 | 2002-12-05 | Wilson James C. | Shared memory multiprocessor expansion port for multi-node systems |
CN1916849A (zh) * | 2006-09-04 | 2007-02-21 | 华为技术有限公司 | 一种多处理器系统的初始化方法和多处理器系统 |
CN101276294A (zh) * | 2008-05-16 | 2008-10-01 | 杭州华三通信技术有限公司 | 异态性数据的并行处理方法和处理装置 |
CN101621836A (zh) * | 2008-06-30 | 2010-01-06 | 华为技术有限公司 | Mesh网络中信道切换方法、装置和mesh网络 |
CN102254031A (zh) * | 2011-08-03 | 2011-11-23 | 无锡浙潮科技有限公司 | 基于批处理请求的Microsoft SQL Server数据库集群 |
-
2014
- 2014-03-21 CN CN201410106964.4A patent/CN103902500B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020184330A1 (en) * | 2001-06-04 | 2002-12-05 | Wilson James C. | Shared memory multiprocessor expansion port for multi-node systems |
CN1916849A (zh) * | 2006-09-04 | 2007-02-21 | 华为技术有限公司 | 一种多处理器系统的初始化方法和多处理器系统 |
CN101276294A (zh) * | 2008-05-16 | 2008-10-01 | 杭州华三通信技术有限公司 | 异态性数据的并行处理方法和处理装置 |
CN101621836A (zh) * | 2008-06-30 | 2010-01-06 | 华为技术有限公司 | Mesh网络中信道切换方法、装置和mesh网络 |
CN102254031A (zh) * | 2011-08-03 | 2011-11-23 | 无锡浙潮科技有限公司 | 基于批处理请求的Microsoft SQL Server数据库集群 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106557429A (zh) * | 2015-09-29 | 2017-04-05 | 华为技术有限公司 | 一种内存数据的迁移方法和节点控制器 |
CN106557429B (zh) * | 2015-09-29 | 2019-11-05 | 华为技术有限公司 | 一种内存数据的迁移方法和节点控制器 |
Also Published As
Publication number | Publication date |
---|---|
CN103902500B (zh) | 2018-05-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103744719B (zh) | 锁管理方法及系统、锁管理系统的配置方法及装置 | |
CN107276711B (zh) | EtherCAT主站装置 | |
CN106712981B (zh) | 一种节点变更通知方法及装置 | |
CN106354544A (zh) | 虚拟机创建方法、系统以及主机 | |
CN103384237A (zh) | 一种共享IaaS业务云账号的方法、及共享平台和网络装置 | |
CN106406983A (zh) | 一种集群中的任务调度方法及装置 | |
CN105511954A (zh) | 一种报文处理方法及装置 | |
CN110008031B (zh) | 设备操作方法、集群系统、电子设备及可读取存储介质 | |
WO2016070609A1 (zh) | 实现vnf实例化的方法、系统及nfvo和vnfm | |
CN111127206B (zh) | 一种基于智能合约的区块链数据访问控制方法及装置 | |
CN111614708A (zh) | 一种基于区块链的交易系统 | |
CN103685535A (zh) | 一种大规模分布异构数据处理的云数据库系统接口设计 | |
US10097969B2 (en) | Communication method in terminal and terminal suitable for the same | |
CN109213567B (zh) | 一种管理vnf实例化的方法和设备 | |
WO2017152797A1 (zh) | 一种实现资源预留的方法和装置 | |
CN105022333A (zh) | 具有多个cpu模块的plc系统及其控制方法 | |
CN103514164A (zh) | 数据迁移方法及系统 | |
CN106776032B (zh) | 分布式块存储的io请求的处理方法和装置 | |
CN109286498A (zh) | 核电站dcs通信用网络校验方法和装置、电子装置 | |
CN103902500A (zh) | 一种非cache一致性协议加解锁报文处理方法 | |
KR20220082074A (ko) | 합의 메커니즘이 있는 분산 네트워크 | |
CN109976883A (zh) | 一种任务的处理方法及其系统 | |
CN108830724B (zh) | 一种资源数据包处理方法及终端设备 | |
CN105549911B (zh) | Nvram的数据传输方法和装置 | |
CN104684068B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |