《CACHE一致性协议验证方法以及多核处理器系统.pdf》由会员分享,可在线阅读,更多相关《CACHE一致性协议验证方法以及多核处理器系统.pdf(13页珍藏版)》请在专利查询网上搜索。
1、(10)申请公布号 CN 102880467 A (43)申请公布日 2013.01.16 C N 1 0 2 8 8 0 4 6 7 A *CN102880467A* (21)申请号 201210325660.8 (22)申请日 2012.09.05 G06F 9/44(2006.01) G06F 15/167(2006.01) (71)申请人无锡江南计算技术研究所 地址 214083 江苏省无锡市滨湖区军东新村 030号 (72)发明人卢宏生 王梦嘉 郑卫华 韩娇 张清波 陈彦庭 唐勇 (74)专利代理机构北京众合诚成知识产权代理 有限公司 11246 代理人龚燮英 (54) 发明名称 C。
2、ache一致性协议验证方法以及多核处理器 系统 (57) 摘要 本发明提供了一种Cache一致性协议验证方 法以及多核处理器系统。根据本发明的Cache一 致性协议验证方法包括:在监视器内设置多个队 列,每个队列包括多个单元,用于记录尚未处理 完毕的所有一次请求;将所有地址相关的请求按 照其进入一致性处理部件的顺序依次保存在同 一个队列的单元内;利用每个单元独立跟踪所记 录请求的行为状态。根据本发明的基于监视器 的Cache一致性协议验证方法能够根据Cache一 致性协议对访存地址相关的请求保证按序处理的 特性,采用一个监视器对Cache一致性处理部件 的协议级行为进行精准监测,可以实现对每一。
3、个 请求包的行为精确监测;通过调整监视器内的内 容,使得Cache一致性协议验证方法适用于各种 一致性协议的验证。 (51)Int.Cl. 权利要求书1页 说明书8页 附图3页 (19)中华人民共和国国家知识产权局 (12)发明专利申请 权利要求书 1 页 说明书 8 页 附图 3 页 1/1页 2 1.一种Cache一致性协议验证方法,其特征在于包括: 在监视器内设置多个队列,每个队列包括多个单元,用于记录尚未处理完毕的所有一 次请求; 将所有地址相关的请求按照其进入一致性处理部件的顺序依次保存在同一个队列的 单元内; 利用每个单元独立跟踪所记录请求的行为状态。 2.根据权利要求1所述的Ca。
4、che一致性协议验证方法,其特征在于,所述监测器只监测 片上多处理器的输入和输出,监测时只考虑片上多处理器的正常运行时的情况。 3.根据权利要求1或2所述的Cache一致性协议验证方法,其特征在于,所述监视器内 设置了256个256深度的一次请求队列,用于记录片上多处理器正在处理的一次请求,其中 相同Cache行地址的请求进相同队列。 4.根据权利要求1至3之一所述的Cache一致性协议验证方法,其特征在于,在队列 中,按照一次请求进入顺序排队,每个队列还对每个请求条目设有一个请求跟踪状态机,所 述请求跟踪状态机用来跟踪请求的处理情况。 5.根据权利要求1至4之一所述的Cache一致性协议验证。
5、方法,其特征在于,每个队列 设一个尾指针和一个实头指针,尾指针在每个新请求写入时更新,实头指针在头指针所指 请求为终止态时加一。 6.根据权利要求1至5之一所述的Cache一致性协议验证方法,其特征在于,每个队列 设有悬挂虚指针、MAQ虚指针和二次请求虚指针,分别指向正在处于悬挂态的请求条目、刚 收到MAQ请求的条目和刚收到二次请求的条目。 7.根据权利要求1至6之一所述的Cache一致性协议验证方法,其特征在于,处于悬挂 态的请求条目包括处于地址悬挂态的请求条目以及MAQ队列悬挂态的请求条目。 8.根据权利要求1至7之一所述的Cache一致性协议验证方法,其特征在于,进入片 上多处理器的一次。
6、请求同时进入监测器,在监测器中根据请求的Cache行地址进入队列之 一;其中队列分配方法是:当有相同请求地址的请求登记在某个队列中时,则请求进入该 队列,否则在空队列中任选一个队列进入,并登记请求的地址于队列管理模块。 9.根据权利要求1至8之一所述的Cache一致性协议验证方法,其特征在于,同一队列 内,任何请求都不会超越处于地址悬挂态或MAQ队列悬挂态的请求退出,任何MAQ请求都不 会超越MAQ请求退出,任何二次请求不会超越二次请求退出。 10.一种采用了根据权利要求1至9之一所述的Cache一致性协议验证方法的多核处 理器系统。 权 利 要 求 书CN 102880467 A 1/8页 。
7、3 Cache 一致性协议验证方法以及多核处理器系统 技术领域 0001 本发明涉及计算机技术领域;更具体地说,本发明涉及一种Cache一致性协议验 证方法;此外,本发明还涉及一种采用了该Cache一致性协议验证方法的多核处理器系统。 背景技术 0002 随着半导体制造工艺的飞速发展,单核处理器的主频已经逐渐逼近极限,为了进 一步提高处理器的运算速度,人们将多个处理器核集成在一个芯片上形成片上多处理器 (Chip Multi一Processor,CMP)。 0003 在CMP中,多个处理器核心对单一内存空间的共享使得处理器和主存储器之间的 速度差距的矛盾更加突出,因此CMP设计必须采用多级高速。
8、缓存(Cache),通过层次化的存 储结构来缓解这一矛盾。CMP系统必须解决由此而引发的Cache一致性问题以及一致性验 证问题。采用什么样的Cache一致性模型与它的验证方法都将对CMP的整体设计与开发产 生重要影响。 0004 Cache一致性协议作为多核处理器中的重要组成部分,直接影响到多核处理器的 正确性设计和性能,Cache一致性协议验证技术成为多核处理器设计验证阶段的关键技术 之一。 0005 但是,在现有技术中,多核处理器上的Cache一致性协议处理过程与处理器结构 密切相关,Cache一致性协议的验证技术与Cache一致性协议的内容密切相关,不具备普遍 性。 0006 因此,希。
9、望能够提出一种适用于各种Cache一致性协议的验证的Cache一致性协 议验证方法。 发明内容 0007 本发明所要解决的技术问题是针对现有技术中存在上述缺陷,提供一种基于监视 器的Cache一致性协议验证方法,其根据一致性协议对访存地址相关的请求保证按序处理 的特性,采用一个监视器对Cache一致性处理部件的协议级行为进行精准监测,可以实现 对每一个请求包的行为精确监测;通过调整监视器内的内容,使得Cache一致性协议验证 方法适用于各种一致性协议的验证。 0008 根据本发明的第一方面,提供了一种Cache一致性协议验证方法,其包括:在监视 器内设置多个队列,每个队列包括多个单元,用于记录。
10、尚未处理完毕的所有一次请求;将所 有地址相关的请求按照其进入一致性处理部件的顺序依次保存在同一个队列的单元内;利 用每个单元独立跟踪所记录请求的行为状态。 0009 优选地,所述监测器只监测片上多处理器的输入和输出,监测时只考虑片上多处 理器的正常运行时的情况。 0010 优选地,所述监视器内设置了256个256深度的一次请求队列,用于记录片上多处 理器正在处理的一次请求,其中相同Cache行地址的请求进相同队列。 说 明 书CN 102880467 A 2/8页 4 0011 优选地,在队列中,按照一次请求进入顺序排队,每个队列还对每个请求条目设有 一个请求跟踪状态机,所述请求跟踪状态机用来。
11、跟踪请求的处理情况。 0012 优选地,每个队列设一个尾指针和一个实头指针,尾指针在每个新请求写入时更 新,实头指针在头指针所指请求为终止态时加一。 0013 优选地,每个队列设有悬挂虚指针、MAQ虚指针和二次请求虚指针,分别指向正在 处于悬挂态的请求条目、刚收到MAQ请求的条目和刚收到二次请求的条目。 0014 优选地,处于悬挂态的请求条目包括处于地址悬挂态的请求条目以及MAQ队列悬 挂态的请求条目。 0015 优选地,进入片上多处理器的一次请求同时进入监测器,在监测器中根据请求的 Cache行地址进入队列之一;其中队列分配方法是:当有相同请求地址的请求登记在某个 队列中时,则请求进入该队列。
12、,否则在空队列中任选一个队列进入,并登记请求的地址于队 列管理模块。 0016 优选地,同一队列内,任何请求都不会超越处于地址悬挂态或MAQ队列悬挂态的 请求退出,任何MAQ请求都不会超越MAQ请求退出,任何二次请求不会超越二次请求退出。 0017 根据本发明的第二方面,提供了一种采用了根据本发明的第一方面所述的Cache 一致性协议验证方法的多核处理器系统。 0018 根据本发明,在监视器内设置多个队列,每个队列包括多个单元,用于记录尚未处 理完毕的所有一次请求,所有地址相关的请求按照进入一致性处理部件的顺序依次保存在 同一个队列的单元内,每个单元独立跟踪所记录请求的行为状态;根据记录的请求。
13、类型、端 口信号的序列,可以精确的判断一个请求在一致性处理中的生命期,以及处理正确与否。由 此,根据本发明的基于监视器的Cache一致性协议验证方法能够根据Cache一致性协议对 访存地址相关的请求保证按序处理的特性,采用一个监视器对Cache一致性处理部件的协 议级行为进行精准监测,可以实现对每一个请求包的行为精确监测;通过调整监视器内的 内容,使得Cache一致性协议验证方法适用于各种一致性协议的验证。 附图说明 0019 结合附图,并通过参考下面的详细描述,将会更容易地对本发明有更完整的理解 并且更容易地理解其伴随的优点和特征,其中: 0020 图1示意性地示出了根据本发明实施例的Cac。
14、he一致性协议验证方法中监视器的 操作的示意图。 0021 图2示意性地示出了根据本发明实施例采用的二维队列的示意图。 0022 图3示意性地示出了根据本发明实施例采用的二维队列的属性的示意图。 0023 图4示意性地示出了根据本发明实施例采用的等待队列的示意图。 0024 需要说明的是,附图用于说明本发明,而非限制本发明。注意,表示结构的附图可 能并非按比例绘制。并且,附图中,相同或者类似的元件标有相同或者类似的标号。 具体实施方式 0025 为了使本发明的内容更加清楚和易懂,下面结合具体实施例和附图对本发明的内 容进行详细描述。 说 明 书CN 102880467 A 3/8页 5 002。
15、6 本发明的Cache一致性协议验证方法包括:在监视器内设置多个队列,每个队列 包括多个单元,用于记录尚未处理完毕的所有一次请求;将所有地址相关的请求按照其进 入一致性处理部件的顺序依次保存在同一个队列的单元内;利用每个单元独立跟踪所记录 请求的行为状态。由此,根据记录的请求类型、端口信号的序列,可以精确的判断一个请求 在一致性处理中的生命期,以及处理正确与否。 0027 下面将具体描述根据本发明实施例的Cache一致性协议验证方法。 0028 图1示意性地示出了根据本发明实施例的Cache一致性协议验证方法中监视器的 操作的示意图。 0029 在本发明实施例中,监测器只监测片上多处理器CPM。
16、的输入和输出,即将CPM作为 一个黑盒来监测CPM行为的正确性,监测时只考虑CPM正常运行时的情况。 0030 如图1所示,监视器内设256个256深度的一次请求队列Q0Q255,用于记录CPM 正在处理的一次请求,相同Cache行地址的请求进相同队列。 0031 并且,按照一次请求进入顺序排队,每个队列还对每个请求条目设有一个请求跟 踪状态机,该请求跟踪状态机用来跟踪请求的处理情况。 0032 在一次请求写入时,请求跟踪状态机会处于初始态,请求跟踪状态机通过跟踪MAQ 队列输出maq、二次请求队列输出rq2、响应队列输出ack、回答输入resp和存控输入mcack 而改变。 0033 请求在。
17、CPM中处理的生命周期将由请求跟踪状态机来标识,当请求在CPM中完全 处理完成时,跟踪状态机将进入终止态。处于终止态的请求即为无效请求,不会被输入输出 接口的命令信息所命中。 0034 每个队列设一个尾指针和一个实头指针,尾指针在每个新请求写入时更新(递增 1,即1),实头指针在头指针所指请求为终止态时加一,实头指针之后的请求条目可能会 先于实头指针指示条目处于终止态,因此实头指针可能会连续更新。当尾指针追上实头指 针时,队列满。 0035 在实际应用中,在队列深度为256时,队列一般不会满;除非非常非常极端的情 况,此时,在出现队列满时,要查其原因。 0036 每个队列还设有三个虚头指针,悬。
18、挂虚指针、MAQ虚指针和二次请求虚指针,分别 指向正在处于悬挂态(地址悬挂或MAQ悬挂)的请求条目、刚收到MAQ请求的条目和刚收到 二次请求的条目。 0037 进入CPM的一次请求同时进入监测器,在监测器中根据请求的Cache行地址进入 队列之一(在本实施例中,256个一次请求队列之一)。其中,队列分配方法是:当有相同请求 地址的请求登记在某个队列中时,则请求进入该队列,否则在空队列中任选一个队列进入, 并登记请求的地址于队列管理模块。 0038 对于CPM所有外部接口上的有效输入输出,都采用其所捎带的SID(Security Identifiers,安全标识符)号与256个一次请求队列上的2。
19、56个条目进行全相连比较。正 常情况下,一个输入或输出方向上的有效命令一次会命中且只会命中256256个条目中 的一个,否则报错。两个方向可能会同时命中同一个条目。请求的跟踪状态机可处理这种 情况。此外,如果从接口传递过来的命令信息命中256个队列中某个请求条目,但状态不匹 配,也要报错。 说 明 书CN 102880467 A 4/8页 6 0039 同一队列内,任何请求都不会超越处于地址悬挂态或MAQ队列悬挂态的请求退 出,任何MAQ请求都不会超越MAQ请求退出,任何二次请求不会超越二次请求退出。也就是 1)不会有悬挂虚指针指向之后的请求条目被任何端口命中,悬挂虚指针只有请求条目中有 被悬。
20、挂才有效,悬挂状态通过二次请求捕获,有些CPM内部悬挂没法通过二次请求反映,则 不做检查;2)不会有MAQ请求虚指针之前的请求条目被MAQ输出命中,MAQ请求虚指针一 直有效,初值等于实头指针,随MAQ输出而更新;3)不会有二次请求虚指针之前的请求条目 被二次请求输出命中,二次请求虚指针一直有效,初值等于实头指针,随二次请求输出而更 新。 0040 测试结束时,256个队列应处于空状态,否则报错。 0041 下面将描述具体示例。 0042 下述表格示出了队列单元的结构的一个具体示例: 0043 0044 说 明 书CN 102880467 A 5/8页 7 0045 其中: 0046 说 明 。
21、书CN 102880467 A 6/8页 8 0047 0048 如一个ReadBlk请求,依次接监测到MAQ读、存控读响应、响应(ReadData,有 APQ),则其状态ID依次可以为: 0049 初始:00-0000 00-0000 00-0000 00-0000 00-0000 00-0000 0050 MAQ读:10-0000 00-0000 00-0000 00-0000 00-0000 00-0000 0051 存控读响应:10-0000 10-1000 00-0000 00-0000 00-000000-0000 0052 响应:10-0000 10-1000 11-0000 0。
22、0-0000 00-0000 00-0000 0053 图2示意性地示出了根据本发明实施例采用的二维队列的示意图。图3示意性地 示出了二维队列的属性的示意图。对于每一个队列,都具有图3所示的属性。 0054 如图3所示,当dealaddr的blocking=1时,禁止出现dealaddr+1的相关信号。 0055 具体地说,其中 0056 cacheaddr:pa38:7,访存地址Cache行; 0057 tailaddr:尾指针,指向要下一个写入的地址; 0058 headaddr:头指针,当前位置单元的rq1type变为全1则后移; 0059 dealaddr:处理指针,当前被处理的最后一。
23、个请求的地址, headaddr,dealaddr-1)和(dealaddr+1,tailaddr)的单元的blocking标志不允许为1; 该地址只能按照从headaddr-tailaddr的方向移动; 0060 dealaddr的加1条件: 说 明 书CN 102880467 A 7/8页 9 0061 当前地址的blocking标志=0 0062 &(dealaddr,tailaddr)地址单元的id0.port_type由00变为他值; 0063 maqdeal_addr:MAQ请求处理指针,该指针指示最后一个本地址MAQ请求 (比较src,sid,访存地址下标相等)对应的一次请求的位。
24、置;该地址只能按照从 headaddr-tailaddr的方向移动; 0064 maqdeal_addr的移动条件: 0065 (maqdeal_addr,tailaddr)范围单元的监测到有对应的MAQ请求,则需要将 maqdeal_addr赋值为对应的单元地址值; 0066 rq2deal_addr:二次请求处理指针,该指针指示最后一个输出的本地址二次请求 (比较src,sid)对应的一次请求的位置;该地址只能按照从headaddr-tailaddr的方向 移动; 0067 rq2deal_addr的移动条件: 0068 (rq2deal_addr,tailaddr)范围单元的监测到有对应。
25、的rq2请求,则需要将 rq2deal_addr赋值为对应的单元地址值; 0069 respdeal_addr:回答处理指针,该指针指示最后一个输入的本地址回答(比较 src,sid)对应的一次请求的位置;该地址只能按照从respdeal_addr-tailaddr的方向 移动; 0070 respdeal_addr的移动条件: 0071 (respdeal_addr,tailaddr)范围单元的监测到有对应的回答,则需要将 respdeal_addr赋值为对应的单元地址值; 0072 异常:以下条件可能同时成立 0073 1)headaddr,dealaddr-1)和(dealaddr+1,。
26、tailaddr)范围内有单元的blocking 值1 0074 2)(dealaddr+2,tailaddr)范围内有单元的id0.port_type由00变为他 值-同地址请求的处理不是顺序的 0075 3)dealaddr单元的blocking=1时,有其他单元的blocking值1; 0076 4)监测到headaddr,maqdeal_addr)范围单元的请求有对应的MAQ请求; 0077 5)监测到headaddr,rq2deal_addr)范围单元的请求有对应的二次请求; 0078 6)监测到headaddr,respdeal_addr)范围单元的请求有对应的回答; 0079 图。
27、4示意性地示出了根据本发明实施例采用的等待队列的示意图。 0080 如图4所示,该队列中保存的是地址无关的、返回响应、但是PA3淘汰流程尚未结 束的带有后缀*Dvic的请求。本队列中的单元只可能命中MAQ写和回答,因此只考虑这两种 信号的命中情况,命中条件和二维队列单元一致,仍需遵循MAQ请求处理和回答的顺序性, 需要指针如下: 0081 tailaddr:尾指针,指向要下一个写入的地址; 0082 headaddr:头指针,当前位置单元的rq1type变为全1则后移; 0083 maqdeal_addr:MAQ请求处理指针,该指针指示最后一个本地址MAQ请求 (比较src,sid,访存地址下。
28、标相等)对应的一次请求的位置;该地址只能按照从 headaddr-tailaddr的方向移动; 说 明 书CN 102880467 A 8/8页 10 0084 respdeal_addr:回答处理指针,该指针指示最后一个输入的本地址回答(比较 src,sid)对应的一次请求的位置;该地址只能按照从respdeal_addr-tailaddr的方向 移动; 0085 异常:以下条件可能同时成立 0086 1)监测到headaddr,maqdeal_addr)范围单元的请求有对应的MAQ请求; 0087 2)监测到headaddr,respdeal_addr)范围单元的请求有对应的回答。 008。
29、8 根据本发明实施例,通过队列机制对请求间序的行为进行监测,保证一致性请求 处理序的正确;并且,通过状态跟踪机制跟踪请求处理状态的变化,保证请求的处理符合目 标一致性协议的定义。 0089 根据本发明实施例,通过监视器的方法,动态监测一致性处理部件的运行,这样可 以运行随机的一致性测试,并监测一致性测试的正确性。极大地简化了一致性测试的编写, 增大了一致测试的强度。 0090 根据本发明的另一优选实施例,本发明还提供了一种采用了上述Cache一致性协 议验证方法的多核处理器系统。 0091 可以理解的是,虽然本发明已以较佳实施例披露如上,然而上述实施例并非用以 限定本发明。对于任何熟悉本领域的技术人员而言,在不脱离本发明技术方案范围情况下, 都可利用上述揭示的技术内容对本发明技术方案作出许多可能的变动和修饰,或修改为等 同变化的等效实施例。因此,凡是未脱离本发明技术方案的内容,依据本发明的技术实质对 以上实施例所做的任何简单修改、等同变化及修饰,均仍属于本发明技术方案保护的范围 内。 说 明 书CN 102880467 A 10 1/3页 11 图1 说 明 书 附 图CN 102880467 A 11 2/3页 12 图2 图3 说 明 书 附 图CN 102880467 A 12 3/3页 13 图4 说 明 书 附 图CN 102880467 A 13 。