当前位置:
文档之家› 模型检测MESIFCache一致性协议
模型检测MESIFCache一致性协议
Cache 和主存的多个备份的一致性,需要 Cache 一致性协议来 解决这个问题。
Cache 一致性协议主要分为监听协议(snoopy bus protocol) 和基于目录的协议(directory-based protocol)两类[3]。监听协议 基于由总线或者环提供的广播机制,其主要思想是每个处理机 节点的 Cache 不断地监听总线上处理机和存储器模块间的缓 存操作动作,当一个处理机对共享变量的访问不在缓存命中或 可能引起数据不一致时,它就把这一事件广播到所有处理机, 当拥有广播中涉及的共享变量的 Cache 监听到广播后,就采取 相应的维持一致性的行动。常见的监听协议有 MESI 协议、 Berkeley 协议、Illinois 协议、Firefly 协议和 Dragon 协议等。这种 协议具有简单、高效的特点,但是由于依赖广播机制,可扩展性 相对较差。为了提高系统的可扩展性,通常使用基于目录的 Cache 一致性协议,其主要思想是为每个存储单元维持一个目 录项,该目录项记录所有当前持有此单元备份的处理机号以及 此单元是否已被改写等信息。当一个处理机欲进行可能引起数 据不一致的操作时,它就可以根据目录的内容只向持有此单元 备份的那些处理机发出相应的信号,从而避免了向所有处理机 广播。常见的目录协议有 Dash 协议、FLASH 协议、SDD 协议、 SCI 协议、German 2000 协议和 German 2004 协议等。随着片 上多处理器(Chip Multi-Processor)或多核处理器(Multi-core Processor)结 构 的 出 现 ,一 些 适 合 于 新 的 计 算 机 体 系 结 构 的 Cache 一致性协议相继提出,这些协议结合了监听协议和目录 协议的优点,同时变得更加复杂。
66 2010,46(17)
Computer Engineering and Applications 计算机工程与应用
模型检测 MESIF Cache 一致性协议
吕 正 1,陈 昊 1,2,陈 峰 1,吕 毅 3 LV Zheng1,CHEN Hao1,2,CHEN Feng1,LV Yi3
1.西北大学 信息科学与技术学院,西安 710069 2.中国劳动关系学院,北京 100048 3.中国科学院 软件研究所,北京 100190 1.School of Information Science and Technology,Northwest University,Xi’an 710069,China 2.China Institute of Industrial Relations,Beijing 100048,China 3.Institute of Software,Chinese Academy of Sciences,Beijing 100190,China E-mail:lvzheng913@gmail.com
常需要提供辅助的非干涉引理(Noninterference Lemma),或者 把无限状态的验证过程分解为 SMV 能够处理的一些有限状态 的验证过程,这些均对用户提出了较高的要求。
基于参数抽象与卫式加强(parameter abstraction and guard strengthening)的方法[7]。该方法由 Chou,Mannava 和 Park 等人 提出,现在常被称为 CMP 方法。该方法所构造的抽象模型包括 所有选取的代表进程,以及另外一个附加进程,它代表对所有 未选进程的抽象。该抽象模型的构造过程遵循一种反例引导逐 步精化的模式,当抽象模型不满足所验证的性质时,需要人工 分析反例,找出一个适当的不变量公式去加强某些规则的卫式 以约束该模型。重复这个过程直至原验证性质以及所有新引进 的不变量公式在抽象模型中能够被满足。Chen 等人运用 CMP 方法第一次验证了用于多核处理器的 Cache 一致性协议[8]。 Talupur 等人利用 CMP 方法成功地验证了 Intel 公司的一个 Cache一致性协议,该协议在复杂程度上高出 FLASH 协议几个 量级[9],因此这种高效的验证方法得到了国际同行的广泛重视。
2.2 Cache 一致性协议验证方法
验证 Cache 一致性协议的主要困难在于 Cache 一致性协 议是一种典型的带参并发系统,需要验证系统在任意规模下仍 然是正确的。下面介绍几种主要的验证方法。
基于 cutoff 的模型检测方法。该方法由 Emerson 等人提出[4]。 这种方法充Hale Waihona Puke Baidu利用了带参并发系统所具有的对称性,确定出系 统参数 N 的一个固定的阈值 (cutoff)C,使得只要对 N 小于 C 的所有系统实例都满足所要验证的性质 F,就可以保证系统对 参数 N 的任意取值都满足 F。也就是说,把对原来任意大小规 模的模型检测,转化到仅仅针对有限多个小规模系统的检测来 完成,由此给出了一个确定的判定过程。这个方法被成功用于 Cache 一致性的验证,Emerson 等人通过手工归约和分析,得出 GERMAN Cache 一致性协议的阈值大小为 7。Penuli 等人提出 的隐不变量(Invisible Invariants)方法也是一种基于 cutoff 的 方法[5]。他们研究了一类受限数据的带参系统 BDS(BoundedData Discrete System),每个 BDS 系统均存在一个阈值 C。他们 首先对带参系统的一个有限的实例进行模型检测计算出辅助 的不变量,然后用类似归纳不变量检测的方法自动验证系统的 性质。在这种方法中 GERMAN 协议的阈值降为 4。这种方法 的问题在于,对于复杂的协议如 GERMAN2004 和 FLASH 协 议,所确定的阈值 C 太大,超出了现有的模型检测工具能够处 理的规模。
模型检验是用状态迁移系统表示系统的行为,用模态/时 序逻辑公式描述系统的性质,并通过判定状态迁移系统是否是 公式的一个模型来检验系统是否具有期望的性质。对于有穷状
态系统,这个问题是可以判定的。模型检测的最大的优点在于 它能自动生成反例,用来帮助调试系统的错误。现在模型检测 已被应用于计算机硬件、软件、通信协议、控制系统、安全认证 协议等领域,取得了令人瞩目的成功[2]。模型检测的缺点在于只 能处理有穷状态系统,以及对于规模较大的系统存在状态空间 爆炸问题。验证 Cache 一致性协议是模型检测方法的最早的工 业应用之一,这方面的研究一直是形式验证方面的热点问题。
Cache 一致性协议在学术上研究的一般都是在结构级上 进行的,例如 MESI、German、FLASH 协议都是在结构级上进行 描述的。微结构级的描述比结构级的描述要复杂很多,涉及到 消息队列、控制结构等方面的处理,但是还没涉及到 RTL 级的 硬件描述,仍然属于行为和功能级的验证。将介绍如何使用 NuSMV 工具在微结构级上对 Intel 公司的 MESIF Cache 一致 性协议进行模型检测。
LV Zheng,CHEN Hao,CHEN Feng,et al.Model checking MESIF Cache coherence protocol.Computer Engineering and Applications,2010,46(17):66-68.
Abstract:The scaling limitations of uniprocessors have led to an industry-wide turn towards Chip MultiProcessor(CMP) systems. To obtain better performance and scalability,cache coherence protocol of CMP systems is becoming increasingly complex.The ver- ification of cache coherence protocol is one of the classic applications of model checking,and more efficient model checking methods are developed for it.Cache coherence protocol model checking at the micro architecture level models message queues and control structures and is more complex than architecture level.A cache coherence protocol of Intel is modeled at micro archi- tecture level.Therefore this protocol is model checked by NuSMV tool. Key words:model checking;Cache coherence protocol;formal verification
摘 要:在处理器从单核向多核演进的过程中,为了获得更好的性能和可扩展性,适用于多核处理器系统的 Cache 一致性协议变 得越来越复杂。Cache 一致性协议的验证一直是模型检测在工业界主要应用之一,被工业界和学术界关注。相对传统方法而言,微 结构级的模型检测能够描述和验证更多的协议细节。利用 NuSMV 工具对 Intel 公司的 MESIF Cache 一致性协议进行模型检测在 微结构层次上进行了建模,并对该协议进行模型检测,试验结果证明了此方法的有效性。 关键词:模型检测;Cache 一致性协议;形式验证 DOI:10.3778/j.issn.1002-8331.2010.17.019 文章编号:1002-8331(2010)17-0066-03 文献标识码:A 中图分类号:TP311
陈峰(1978-),男,博士研究生,讲师,主研领域为计算机软件与理论;吕毅(1972-),男,博士,副研究员,主研领域为形式验证与模型检测。 收稿日期:2009-04-10 修回日期:2009-05-25
吕 正,陈 昊,陈 峰,等:模型检测 MESIF Cache 一致性协议
2010,46(17) 67
2 验证 Cache 一致性协议 2.1 Cache 一致性协议
高速缓存(Cache)技术不仅可以减少处理器和存储器之间 的延迟,而且可以减少多个处理器访问共享存储器使得冲突, 在多核处理器存储系统中起着重要的作用。为了保持不同
基金项目:国家高技术研究发展计划(863)(the National High-Tech Research and Development Plan of China under Grant No.2007AA01Z147)。 作者简介:吕正(1977-),男,博士研究生,主研领域为计算机软件与理论;陈昊(1976-),女,博士研究生,讲师,主研领域为计算机软件与理论;
组合模型检测方法。McMillan 综合运用了组合模型检测 (Compositional Model Checking)、 时 态 事 例 分 解(Temporal Case Splitting)和数据类型抽象(Data Type Abstraction)等技术 证明了带参的 FLASH 协议的安全性和活性方面的性质[6]。他使 用了 SMV 模型检测工具来完成这项工作,上述的各种抽象和 对称规约技术均集成到了 SMV 工具里。用户在验证过程中经
1 引言
当前,微处理器研究领域正面临着新的挑战和创新机遇。 由于单核处理器在性能、可扩展性等方面逐渐遇到难以克服的 瓶颈,片上多核(multi-core)处理器成为目前处理器结构的主 流方向。在处理器从单核向多核演进过程中,多核处理器中的 存储系统的变化最为显著[1]。高速 Cache 一致性协议是弥补多 核处理器计算机系统中处理器和存储器速度差距的有效方法。 为了获得更好的性能和可扩展性,Cache 一致性协议变得越来 越复杂。如何保证 Cache 一致性协议的正确性一直被工业界和 学术界关注。