一种Cache一致性协议软件模拟验证方法

文档序号:6376524阅读:331来源:国知局
专利名称:一种Cache一致性协议软件模拟验证方法
技术领域
本发明涉及计算机应用技术领域,具体地说是一种Cache —致性协议软件模拟验证方法。
背景技术
Cache—致的分布式共享内存多处理器系统是当前一种重要的系统结构。目前处理器直接挂接内存,本身支持Cache —致性协议,因此在构建多处理器系统时,通常将这些处理器直连,由它们本身的协议维护处理器之间的一致性,并形成一个单一 Cache —致性域。但是,由于协议规格、链路端口等限制,这样组成的单一域多处理器系统规模通常有限。为实现大规模的CC-NUMA多处理器系统,需借助节点控制器NC (Node Controller)扩大一致性域空间。本发明涉及到的节点控制器具有维护全局Cache —致性和扩展系统规模两种功能首先,每个节点控制器连接I至4颗处理器,组成一个节点和第一级Cache —致性域, 域内一致性由处理器和节点控制器共同维护;其次,节点控制器直接互连或通过节点路由器连接以组成大规模CC-NUMA系统。节点间的第二级Cache—致性由节点控制器维护。这样构成的大规模的CC-NUMA系统需要在处理器直联Cache —致性协议基础上扩展建立多层次的协议,并维护全局一致性。在设计基于扩展型Cache Coherence协议的多级一致性域CC-NUMA系统协议的同时,对其仿真验证工作也成为重要工作。图I展示了一个多级一致性域系统。

发明内容
本发明的目的是提供一种Cache —致性协议软件模拟验证方法。本发明提出一种Cache —致性协议软件模拟验证方法。软件模拟验证可通过人工方式撰写约束模型同时进行带约束的伪随机测试,对于特定的目标进行验证,并反馈协议的正确性与缺陷。基于软件模拟的方法,首先确定基于扩展型Cache Coherence协议的多级一致性描述方式,然后实现一种软件模拟验证的方法并统计覆盖率和进行错误汇报。本方法可以有效验证多状态空间下多级域的Cache Coherence 一致性协议,使得协议表实现逻辑上建立对应关系,并通过全局检查器判定系统依照协议表的状态迁移是否符合一致性定义,并初步判断依照该协议表构建的模型是否具有期望的性质。本发明的目的是按以下方式实现的,系统包括1)系统模拟器、2)测试激励自动生成器、3)全局检查器,4)节点控制器模拟器,其中
O系统模拟器包括以下两部分
(O总线功能模型模拟实现了处理器中Cache、存储以及处理器间的互连网络;支持自定义系统拓扑结构;提供了对访存行为的事务级模拟支持;运行中按照处理器直连Cache 一致性协议模拟并提供系统中各访存事务、Cache、存储的实时行为和状态;
(2)节点控制器模拟器通过总线功能模型的API接口挂接在其上,模拟实现了节点控制器自有的多级Cache —致性协议;使用处理器Cache —致性协议消息与处理器进行通信,并以扩展的Cache —致性协议消息通过节点控制器网络在各节点控制器之间进行通信,完成多级域之间的一致性协议的转换;
2)测试激励生成器用于产生高质量的测试激励;测试激励生成器以随机的速率在随机的Cache上产生对同一地址的随机种类的访存事务,并将事务发送到总线功能模型上,总线功能模型按照处理器直连Cache —致性协议将访存事务转换为消息在模拟器中运行;
3)全局检查器运行在整个系统模拟器之上,检查全局的数据Cache—致性,对模拟系统中的系统状态和消息流进行实时检查,用于发现模拟过程中系统偏离协议的行为,并检查系统是否出现死锁、饿死.
4)协议表模拟器,协议表模拟器是节点控制器模拟器的核心,协议表模拟器是节点控制器模拟器能够正常工作的关键,由于协议表是被验证的目标,因此在整个验证过程中协议表都是可能被修改的,我们需实现重配置协议表,描述协议表模拟器动作,该协议表模拟器包括三个关键模块部分入口条件查询器、状态转换执行器和协议表查询调度器,当节点控制器模拟器收到一条消息时,协议表查询调度器开始运作,首先入口条件查询器按照收 到的消息和当前系统的状态进行查找,找到一个入口后转到对应的状态转换执行器执行相应的状态转换代码;当满足下一条件或应答报文满足解锁排队报文时,推进下一项协议表查找过程,下面分别进行说明
入口条件查询器入口条件查询器检测当前状态与协议表对应关系,协议表每项的状态互斥,当前状态至多只能匹配一个协议表入口,该实现采用两种方法,方法一遍历整个协议表,直至当前状态匹配协议表,转入状态转换执行器,并不再执行后续查找,防止状态转换后再次查找;方法二 首先定义系统状态存储器的编码方法由于每个状态存储器的取值位数是固定的,所以将所有状态存储器转换为对应的二进制数后使用查找表项入口方式,以节约模拟运行时间;
状态转换执行器协议表中所有可能进行的状态转换包括两类,共享存储信息数据结构的填写和消息的发送,共享存储器的填写使用通用的填写函数,将其值作为参数传入;而消息的发送则根据发送消息的不同编写不同消息发送函数,当入口条件查询器查询到对应的入口时,将控制权转交到状态转换执行器,状态转换执行器根据协议表下一步状态单元中读入的值分别设定对应的存储器新值和发送报文;
协议表调度器根据报文类型和报文目的节点,调度每一个报文穿越节点控制器需经历查找的协议表,并根据完成报文推进对应阻塞的报文进入处理流程,防止报文处理的死锁和饿死现象。本发明的有益效果是
1)该模型系统的显著优点在于它能自动生成反例,用来帮助调试系统的错误,用于加速系统诊断和调试;
2)模型验证能够记录用状态迁移,使得协议表实现逻辑上建立对应关系,并通过全局检查器判定系统依照协议表的状态迁移是否符合一致性定义;
3)拥有快的建模方式,较低的验证成本。


图I是多级一致性域系统拓扑结构图;图2是多级一致性域系统拓扑结构 图3是节点控制器模拟器结构示意图。
具体实施例方式参照说明书附图对本发明的方法作以下详细地说明。我们将验证系统分为如图2所示的系统模拟器、测试激励自动生成器、全局检查器、节点控制器模拟器,其中系统模拟器主要实现目标系统的访存操作模拟和正确性检查工作;测试激励产生器则主要用于产生高质量的测试激励;全局检查器运行在系统模拟器之上,检查全局的数据Cache —致性并检查系统是否出现死锁、饿死等。下面分别论述。系统模拟器,该模拟器主要包括以下部分
总线功能模型模拟实现了处理器中Cache、存储、以及处理器间的互连网络;支持自 定义系统拓扑结构;提供了对访存行为的事务级模拟支持;运行中按照处理器直连Cache一致性协议模拟并提供系统中各访存事务、Cache、存储的实时行为和状态;
节点控制器模拟器通过总线功能模型的API接口挂接在其上,模拟实现了节点控制器自有的多级Cache —致性协议;使用处理器Cache —致性协议消息与处理器进行通信,并以扩展的Cache —致性协议消息通过节点控制器网络在各节点控制器之间进行通信。完成多级域之间的一致性协议的转换。全局检查器运行在整个系统之上,检查全局的数据Cache —致性,对模拟系统中的系统状态和消息流进行实时检查,用于发现模拟过程中系统偏离协议的行为,并检查系统是否出现死锁、饿死等。测试激励生成器测试激励生成器以随机的速率在随机的Cache上产生对同一地址的随机种类的访存事务,并将事务发送到总线功能模型上,总线功能模型按照处理器直连Cache —致性协议将访存事务转换为消息在模拟器中运行;
协议表模拟器是节点控制器模拟器的核心,协议表模拟器是节点控制器模拟器能够正常工作的关键。由于协议表是被验证的目标,因此在整个验证过程中协议表都是可能被修改的。我们需实现重配置协议表,描述表模拟器动作。协议表模拟器,包括三个关键模块部分入口条件查询器、状态转换执行器和协议表查询调度器。当节点控制器模拟器收到一条消息时,协议表查询调度器开始运作,首先入口条件查询器按照收到的消息和当前系统的状态进行查找,找到一个入口后转到对应的状态转换执行器执行相应的状态转换代码;当满足下一条件或应答报文满足解锁排队报文时,推进下一项协议表查找过程,下面分别进行说明
入口条件查询器入口条件查询器检测当前状态与协议表对应关系,协议表每项的状态互斥,当前状态至多只能匹配一个协议表入口。该实现可以采用两种方法。方法一遍历整个协议表,直至当前状态匹配协议表,转入状态转换执行器,并不再执行后续查找,防止状态转换后再次查找。方法二 首先定义系统状态存储器的编码方法由于每个状态存储器的取值位数是固定的,所以将所有状态存储器转换为对应的二进制数后使用查找表项入口方式,以节约模拟运行时间。状态转换执行器协议表中所有可能进行的状态转换包括两类,共享存储信息数据结构的填写和消息的发送。共享存储器的填写使用通用的填写函数,将其值作为参数传Λ ;而消息的发送则根据发送消息的不同编写不同消息发送函数。当入口条件查询器查询到对应的入口时,将控制权转交到状态转换执行器,状态转换执行器根据协议表下一步状态单元中读入的值分别设定对应的存储器新值和发送报文。协议表调度器根据报文类型和报文目的节点,调度每一个报文穿越节点控制器 需经历查找的协议表。并根据完成报文,推进对应阻塞的报文进入处理流程,防止报文处理的死锁和饿死现象。除说明书所述的技术特征外,均为本专业技术人员的已知技术。
权利要求
1.一种Cache —致性协议软件模拟验证方法,其特征在于系统包括I)系统模拟器、2)测试激励自动生成器、3)全局检查器,4)节点控制器模拟器,其中 O系统模拟器包括以下两部分 (O总线功能模型模拟实现了处理器中Cache、存储以及处理器间的互连网络;支持自定义系统拓扑结构;提供了对访存行为的事务级模拟支持;运行中按照处理器直连Cache 一致性协议模拟并提供系统中各访存事务、Cache、存储的实时行为和状态; (2)节点控制器模拟器通过总线功能模型的API接口挂接在其上,模拟实现了节点控制器自有的多级Cache —致性协议;使用处理器Cache —致性协议消息与处理器进行通信,并以扩展的Cache —致性协议消息通过节点控制器网络在各节点控制器之间进行通信,完成多级域之间的一致性协议的转换; 2)测试激励生成器用于产生高质量的测试激励;测试激励生成器以随机的速率在随机的Cache上产生对同一地址的随机种类的访存事务,并将事务发送到总线功能模型上,总线功能模型按照处理器直连Cache —致性协议将访存事务转换为消息在模拟器中运行; 3)全局检查器运行在整个系统模拟器之上,检查全局的数据Cache—致性,对模拟系统中的系统状态和消息流进行实时检查,用于发现模拟过程中系统偏离协议的行为,并检查系统是否出现死锁、饿死; 4)协议表模拟器,是节点控制器模拟器的核心,协议表模拟器是节点控制器模拟器能够正常工作的关键,由于协议表是被验证的目标,因此在整个验证过程中协议表都是可能被修改的,我们需实现重配置协议表,描述协议表模拟器动作,该协议表模拟器包括三个关键模块部分入口条件查询器、状态转换执行器和协议表查询调度器,当节点控制器模拟器收到一条消息时,协议表查询调度器开始运作,首先入口条件查询器按照收到的消息和当前系统的状态进行查找,找到一个入口后转到对应的状态转换执行器执行相应的状态转换代码;当满足下一条件或应答报文满足解锁排队报文时,推进下一项协议表查找过程,下面分别进行说明 入口条件查询器入口条件查询器检测当前状态与协议表对应关系,协议表每项的状态互斥,当前状态至多只能匹配一个协议表入口,该实现采用两种方法,方法一遍历整个协议表,直至当前状态匹配协议表,转入状态转换执行器,并不再执行后续查找,防止状态转换后再次查找;方法二 首先定义系统状态存储器的编码方法由于每个状态存储器的取值位数是固定的,所以将所有状态存储器转换为对应的二进制数后使用查找表项入口方式,以节约模拟运行时间; 状态转换执行器协议表中所有可能进行的状态转换包括两类,共享存储信息数据结构的填写和消息的发送,共享存储器的填写使用通用的填写函数,将其值作为参数传入;而消息的发送则根据发送消息的不同编写不同消息发送函数,当入口条件查询器查询到对应的入口时,将控制权转交到状态转换执行器,状态转换执行器根据协议表下一步状态单元中读入的值分别设定对应的存储器新值和发送报文; 协议表调度器根据报文类型和报文目的节点,调度每一个报文穿越节点控制器需经历查找的协议表,并根据完成报文推进对应阻塞的报文进入处理流程,防止报文处理的死锁和饿死现象。
全文摘要
本发明提出一种Cache一致性协议软件模拟验证方法,该方法是软件模拟验证可通过人工方式撰写约束模型同时进行带约束的伪随机测试,对于特定的目标进行验证,并反馈协议的正确性与缺陷。基于软件模拟的方法,首先确定基于扩展型Cache Coherence协议的多级一致性描述方式,然后实现一种软件模拟验证的方法并统计覆盖率和进行错误汇报。本方法可以有效验证多状态空间下多级域的Cache Coherence一致性协议,使得协议表实现逻辑上建立对应关系,并通过全局检查器判定系统依照协议表的状态迁移是否符合一致性定义,并初步判断依照该协议表构建的模型是否具有期望的性质。该模型系统的显著优点在于它能自动生成反例,用来帮助调试系统的错误,用于加速系统诊断和调试。
文档编号G06F11/26GK102880537SQ201210329080
公开日2013年1月16日 申请日期2012年9月7日 优先权日2012年9月7日
发明者张峰, 陈继承 申请人:浪潮电子信息产业股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1