CN103902500B - 一种非cache一致性协议加解锁报文处理方法 - Google Patents
一种非cache一致性协议加解锁报文处理方法 Download PDFInfo
- Publication number
- CN103902500B CN103902500B CN201410106964.4A CN201410106964A CN103902500B CN 103902500 B CN103902500 B CN 103902500B CN 201410106964 A CN201410106964 A CN 201410106964A CN 103902500 B CN103902500 B CN 103902500B
- Authority
- CN
- China
- Prior art keywords
- message
- clump
- unlock
- processing
- request
- 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
- 238000003672 processing method Methods 0.000 title claims abstract description 9
- 238000012545 processing Methods 0.000 claims abstract description 76
- 238000000034 method Methods 0.000 claims abstract description 24
- 206010021703 Indifference Diseases 0.000 claims abstract description 4
- 230000000977 initiatory effect Effects 0.000 claims abstract description 4
- 238000012163 sequencing technique Methods 0.000 claims description 6
- 230000003993 interaction Effects 0.000 abstract description 5
- 230000002411 adverse Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000012958 reprocessing Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Landscapes
- Multi Processors (AREA)
Abstract
本发明提供一种非cache一致性协议加解锁报文处理方法,涉及基于Intel QPI协议芯片设计方法的技术领域,本发明应用于多Clump CPU的互连系统,但并不局限于此系统或此种加解锁报文处理的场景。其中,对应于Master Clump和Slave Clump侧的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和SlaveClump侧的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,且无其它报文类型需要处理,则读取加锁排队序列进入报文处理器,直到加锁报文排队序列为空,完成所有加锁报文的处理。
本发明的有益效果是:
应用于多路服务器系统复杂非一致性加解锁报文的处理;应用于MasterCPU对报文的处理有排队顺序要求,且处理顺序以达到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 (2)
1.一种非cache一致性协议加解锁报文处理方法,应用于多Clump CPU的互连系统;其中,对应于主多处理器Clump和从多处理器Clump侧的节点控制器,除地址空间划分和ID配置有差异外,实现功能并无差异,且均具有本Clump的请求控制功能和本Clump外请求的处理功能;作为发起Clump时只实现请求控制功能,作为处理Clump时实现本Clump外请求的处理功能;将发起Clump称为从多处理器Clump,处理Clump称为主多处理器Clump;
其特征在于,所述多Clump CPU互连系统,从多处理器Clump侧的节点控制器的加解锁报文的处理流程的具体实施方法为:
1)、同一Clump的各 CPU可同时发起加锁请求或同通道其它类型报文;
2)、将同一通道的报文,按照请求到达节点控制器的先后顺序和报文所在通道进行预处理排队;
3)、判断预处理报文的类型,如果该报文是加锁报文,且存在未处理完成的同类型报文,则将该报文打到专门加解锁排队通道,并读取下一笔预处理排队报文,否则将该报文送入到报文处理器中进行下一步处理;
4)、如果通过判断接收到响应报文的解锁响应报文,也就是该组加解锁报文处理完毕,加解锁排队通道非空,预处理排队通道为空,且报文处理器有空闲ID,则将下一笔加锁报文从加解锁排队通道读出,送入到报文处理器进行处理。
2.根据权利要求1所述的方法,其特征在于,所述多Clump CPU互连系统,主多处理器Clump侧的节点控制器的加解锁报文的处理流程的具体实施方法为:
1)、主多处理器 Clump侧的节点控制器收集本Clump外的请求报文;
2)、将同一通道的报文按照到达节点控制器的先后顺序和报文所在通道进行预处理排队;
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 CN103902500A (zh) | 2014-07-02 |
CN103902500B true 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) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106557429B (zh) * | 2015-09-29 | 2019-11-05 | 华为技术有限公司 | 一种内存数据的迁移方法和节点控制器 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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数据库集群 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6799217B2 (en) * | 2001-06-04 | 2004-09-28 | Fujitsu Limited | Shared memory multiprocessor expansion port for multi-node systems |
-
2014
- 2014-03-21 CN CN201410106964.4A patent/CN103902500B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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数据库集群 |
Also Published As
Publication number | Publication date |
---|---|
CN103902500A (zh) | 2014-07-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110428257B (zh) | 密码破解任务处理方法、设备及存储介质 | |
US8301706B2 (en) | Routing of pooled messages via an intermediary | |
CN105511954A (zh) | 一种报文处理方法及装置 | |
CN1582432A (zh) | 分布式仿真 | |
CN111614708B (zh) | 一种基于区块链的交易系统 | |
TW202113722A (zh) | 基於區塊鏈的資料處理方法、裝置、系統及電子設備 | |
CN104951712B (zh) | 一种Xen虚拟化环境下的数据安全防护方法 | |
CN104320423A (zh) | 基于Cookie的单点登录轻量级实现方法 | |
CN1716209A (zh) | 线程到线程通信 | |
US20130117755A1 (en) | Apparatuses, systems, and methods for distributed workload serialization | |
CN104951688B (zh) | 适用于Xen虚拟化环境下的专用数据加密方法及加密卡 | |
CN111083113A (zh) | 拟态分发系统、方法及介质 | |
CN104125281A (zh) | 云数据中心申请资源审批状态记录方法及装置 | |
CN103902500B (zh) | 一种非cache一致性协议加解锁报文处理方法 | |
CN112286688A (zh) | 一种内存管理和使用方法、装置、设备和介质 | |
CN112188015A (zh) | 客服会话请求的处理方法、装置及电子设备 | |
CN103514164A (zh) | 数据迁移方法及系统 | |
US20230266731A1 (en) | Digital Twin-Based Process Control in an IoT Network | |
US20150039929A1 (en) | Method and Apparatus for Forming Software Fault Containment Units (SWFCUS) in a Distributed Real-Time System | |
CN109286498A (zh) | 核电站dcs通信用网络校验方法和装置、电子装置 | |
CN106776032A (zh) | 分布式块存储的io请求的处理方法和装置 | |
CN107786308B (zh) | 数据传输方法及终端设备 | |
CN105549911B (zh) | Nvram的数据传输方法和装置 | |
CN110134461B (zh) | 一种数据交互的通用处理方法及装置 | |
CN113032478B (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 |