缓存一致性检验方法、装置及电子设备

文档序号:32981558发布日期:2023-01-17 22:07阅读:56来源:国知局
缓存一致性检验方法、装置及电子设备

1.本发明涉及芯片技术领域,具体地涉及一种缓存一致性检验方法、一种缓存一致性检验装置、一种电子设备以及一种计算机可读存储介质。


背景技术:

2.针对缓存模块的数据一致性验证,研究者们开展了一系列的研究。目前主流的研究大多集中在基于测试向量生成的功能仿真技术,通过优化测试向量的生成,模拟电路实际运行过程,开展仿真实验,以检验电路是否存在功能隐患。这种技术不能覆盖电路的极端状态,难以对电路功能进行完备验证,同时,难以对功能缺陷进行溯源,需要进一步探索更高效更完备的验证手段。此外,针对数据一致性的验证多在协议级别展开,不能深入底层硬件,存在着底层硬件存在隐患而不能被验证得出的风险。形式化验证(formal verification)是一种基于数学推理的验证技术,能够对系统是否满足某些性质与规范进行完备地证明,适合用于缓存模块的充分验证,以保证其数据一致性。
3.现有的缓存验证技术过度依赖测试向量的生成,测试向量难以覆盖电路运行的全部状态,缺乏对于电路极端情况的检测能力。现有的面向缓存一致性的验证集中在协议级别,不涉及底层硬件的验证,存在漏检的风险。


技术实现要素:

4.本发明实施例的目的是提供一种缓存一致性检验方法、装置及电子设备,构建缓存模块的形式化模型,进而分析缓存一致性协议的硬件表现形式,构建缓存一致性验证专用属性,实现缓存一致性的完备验证。
5.为了实现上述目的,本发明的第一方面提供了一种缓存一致性检验方法,该方法包括:根据缓存模块在执行缓存指令时的硬件状态集合构建所述缓存模块对应的状态机模型;根据所述状态机模型在基于缓存一致性协议下的行为特征构建验证属性;将所述状态机模型和所述验证属性输入基于时间自动机的模型检测器,根据所述模型检测器的输出得到缓存一致性验证结果。
6.优选的,根据缓存模块在执行缓存指令时的硬件状态集合构建所述缓存模块对应的状态机模型,包括:获取所述缓存模块中的电路元件以及所述电路元件之间的关联关系;根据每一电路元件的状态和所述关联关系构建所述缓存模块的状态空间;根据所述状态空间内的状态以及所述状态之间的转移条件与控制关系,生成对应的状态机模型。
7.优选的,根据所述状态机模型在基于缓存一致性协议下的行为特征构建验证属性,包括:根据所述缓存模块在所述状态机模型下的表现形式,确定缓存一致性协议相关的电路元件与所述电路元件的状态空间;根据缓存一致性协议提取所述电路元件之间数据和状态的同步沟通关系,形成缓存验证网络;将所述缓存模块的行为特征的属性表达为验证属性。
8.优选的,将所述缓存模块的行为特征的属性表达为验证属性,包括:获取以自然语
言表达的行为特征的属性;将所述以自然语言表达的行为特征的属性转化为以形式化语言表达的行为属性;以所述形式化语言表达的行为属性作为所述验证属性。
9.优选的,将所述以自然语言表达的行为特征的属性转化为以形式化语言表达的行为属性,包括:通过自然语言解析器将所述以自然语言表达的行为特征的属性转化为以形式化语言表达的行为属性。
10.优选的,所述基于时间自动机的模型检测器包括:编辑器,被配置为对模型进行编辑并进行系统声明和模型声明;模拟器,被配置为对建立好的模型进行仿真并输出仿真结果;以及验证器,被配置为对模型应该满足的性质进行验证。
11.在本发明的第二方面,还提供了一种缓存一致性检验装置,该装置包括:模型构建模块,用于根据缓存模块在执行缓存指令时的硬件状态集合构建所述缓存模块对应的状态机模型;属性构建模块,用于根据所述状态机模型在基于缓存一致性协议下的行为特征构建验证属性;以及验证执行模块,用于将所述状态机模型和所述验证属性输入基于时间自动机的模型检测器,根据所述模型检测器的输出得到缓存一致性验证结果。
12.优选的,根据缓存模块在执行缓存指令时的硬件状态集合构建所述缓存模块对应的状态机模型,包括:获取所述缓存模块中的电路元件以及所述电路元件之间的关联关系;根据每一电路元件的状态和所述关联关系构建所述缓存模块的状态空间;根据所述状态空间内的状态以及所述状态之间的转移条件与控制关系,生成对应的状态机模型。
13.优选的,根据所述状态机模型在基于缓存一致性协议下的行为特征构建验证属性,包括:根据所述缓存模块在所述状态机模型下的表现形式,确定缓存一致性协议相关的电路元件与所述电路元件的状态空间;根据缓存一致性协议提取所述电路元件之间数据和状态的同步沟通关系,形成缓存验证网络;将所述缓存模块的行为特征的属性表达为验证属性。
14.优选的,将所述缓存模块的行为特征的属性表达为验证属性,包括:获取以自然语言表达的行为特征的属性;将所述以自然语言表达的行为特征的属性转化为以形式化语言表达的行为属性;以所述形式化语言表达的行为属性作为所述验证属性。
15.优选的,将所述以自然语言表达的行为特征的属性转化为以形式化语言表达的行为属性,包括:通过自然语言解析器将所述以自然语言表达的行为特征的属性转化为以形式化语言表达的行为属性。
16.优选的,所述基于时间自动机的模型检测器包括:编辑器,被配置为对模型进行编辑并进行系统声明和模型声明;模拟器,被配置为对建立好的模型进行仿真并输出仿真结果;以及验证器,被配置为对模型应该满足的性质进行验证。
17.在本发明的第三方面,还提供了一种电子设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现前述的缓存一致性检验方法的步骤。
18.在本发明的第四方面,还提供了一种计算机可读存储介质,所述存储介质中存储有指令,当其在计算机上运行时,使得计算机执行前述的缓存一致性检验方法的步骤。
19.在本发明的第五方面提供一种计算机程序产品,包括计算机程序,该计算机程序在被处理器执行时实现前述的缓存一致性检验方法。
20.上述技术方案至少具有以下有益效果:
(1)基于有限状态机原理进行电路形式化模型构建,能够详尽地描述电路全部状态及状态转移关系,比一般的基于测试向量的仿真技术更具完备性。
21.(2)能够与缓存电路硬件设计深度结合,能够从底层入手实现验证,比现有的协议级别验证更加可靠。
22.本发明实施例的其它特征和优点将在随后的具体实施方式部分予以详细说明。
附图说明
23.附图是用来提供对本发明实施例的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本发明实施例,但并不构成对本发明实施例的限制。在附图中:图1示意性示出了根据本发明实施方式的缓存一致性检验方法的步骤示意图;图2示意性示出了根据本发明实施方式的缓存一致性检验方法的逻辑示意图;图3示意性示出了根据本发明实施方式的双核两级缓存处理器的结构示意图;图4示意性示出了根据本发明实施方式的自然语言向逻辑语言的离散映射示意图;图5示意性示出了根据本发明实施方式的缓存一致性检验装置的结构示意图。
具体实施方式
24.以下结合附图对本发明实施例的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本发明实施例,并不用于限制本发明实施例。
25.图1示意性示出了根据本发明实施方式的缓存一致性检验方法的步骤示意图。如图1所示,一种缓存一致性检验方法,包括:s01、根据缓存模块在执行缓存指令时的硬件状态集合构建所述缓存模块对应的状态机模型;即根据缓存电路中的存储元件例如触发器等之间的连接关系,采用布尔可满足性算法构建状态空间模型,并依据状态转移关系提取算法提取状态之间的转移条件与控制关系,实现电路形式化模型的全局构建。
26.s02、根据所述状态机模型在基于缓存一致性协议下的行为特征构建验证属性;分析缓存电路在有限状态机下的表现形式,定位缓存一致性协议相关的寄存器与状态空间,根据mesi缓存一致性协议提取各级缓存之间数据和状态的同步沟通关系,形成多核处理器系统的缓存验证网络。验证属性采用形式化语言进行构建,进而实现缓存一致性的验证属性库构建。若协议中的属性采用自然语言进行表达,则可以通过自然语言解析器将自然语言的属性转换成形式化语言的属性。
27.s03、将所述状态机模型和所述验证属性输入基于时间自动机的模型检测器,根据所述模型检测器的输出得到缓存一致性验证结果。将缓存模块的有限状态机模型与缓存一致性验证属性输入模型检测器,以完成对缓存模块数据一致性的完备验证。此处的模型检测器优选为自动化模型检测器uppaal,通过基于时间自动机的分析手段与逻辑语义的验证属性查询,搜索模型状态空间,从而完成缓存一致性验证。
28.图2示意性示出了根据本发明实施方式的缓存一致性检验方法的逻辑示意图。如图2所示,缓存模块电路实现分别通过fsm(有限状态机)建模和属性提取,得到缓存模块电
路形式化模型和缓存一致性验证属性,并将两者输入验证器完成缓存一致性验证。
29.通过以上实施方式,能够基于有限状态机原理进行电路形式化模型构建,并能够与存储模块的电路硬件设计深度结合,从而提升验证效率和验证准确性。
30.在本发明提供的一些可选实施方式中,根据缓存模块在执行缓存指令时的硬件状态集合构建所述缓存模块对应的状态机模型,包括:获取所述缓存模块中的电路元件以及所述电路元件之间的关联关系;根据每一电路元件的状态和所述关联关系构建所述缓存模块的状态空间;根据所述状态空间内的状态以及所述状态之间的转移条件与控制关系,生成对应的状态机模型。以缓存模块的电路的主要电路元件触发器为例,根据触发器的触发状态及其连接关系确定缓存模块的状态空间,该状态空间即该缓存模块对应的电路形式化模型的所有可能状态的集合,并以此构建出状态机模型。
31.在本发明提供的一些可选实施方式中,根据所述状态机模型在基于缓存一致性协议下的行为特征构建验证属性,包括:根据所述缓存模块在所述状态机模型下的表现形式,确定缓存一致性协议相关的电路元件与所述电路元件的状态空间;根据缓存一致性协议提取所述电路元件之间数据和状态的同步沟通关系,形成缓存验证网络;将所述缓存模块的行为属性表达为验证属性。缓存一致性协议用于在采用层次结构存储系统的计算机系统中,保证高速缓冲存储器中数据与主存储器中数据相同机制。单核的缓存模块(cache)中每个cache line有2个标志:dirty和valid标志,它们很好的描述了缓存模块和内存之间的数据关系,例如数据是否有效和数据是否被修改。而在多核处理器中,多个核会共享一些数据,mesi协议就包含了描述共享的状态。在mesi协议中,每个cache line有4个状态,可用2个bit表示,它们分别是:m(modified):这行数据有效,数据被修改了,和内存中的数据不一致,数据只存在于本cache中。e(exclusive):这行数据有效,数据和内存中的数据一致,数据只存在于本cache中。s(shared):这行数据有效,数据和内存中的数据一致,数据存在于很多cache中。以及i(invalid):这行数据无效。多核处理系统存在多级的缓存模块,各级缓存模块之间的数据和状态存在同步沟通关系,其构成了单个缓存模块的约束条件。在该约束条件下,从状态空间内确定其对应的状态。该状态通过行为属性表达出来,构成后续步骤中用于验证的属性。
32.在本发明提供的一些可选实施方式中,将所述缓存模块的行为特征的属性表达为验证属性,包括:获取以自然语言表达的行为特征的属性;将所述以自然语言表达的行为特征的属性转化为以形式化语言表达的行为属性;以所述形式化语言表达的行为属性作为所述验证属性。采用自然语言表达行为属性虽然易于理解,但是机器难以识别,因此需要将以自然语言表达的行为属性转化为以所述形式化语言表达的行为属性。该转化后的形式化语言的具体形式取决于后续的模型检测器的输入格式,以该模型检测器能够识别为准。
33.在本发明提供的一些可选实施方式中,将所述以自然语言表达的行为特征的属性转化为以形式化语言表达的行为属性,包括:通过自然语言解析器将所述以自然语言表达的行为特征的属性转化为以形式化语言表达的行为属性。手动创建属性库是一个极其耗时且易出错的工程,本实施方式中对前一实施方式中的行为属性的表达形式之间的转化进行优化,通过一个自然语言处理工具,将自然语言的属性通过该工具转换成形式化语言,有利于提高转化效率。
34.在本发明提供的一些可选实施方式中,所述模型检测器为时间自动机模型,包括:
编辑器,被配置为对模型进行编辑并进行系统声明和模型声明;模拟器,被配置为对建立好的模型进行仿真并输出仿真结果;以及验证器,被配置为对模型应该满足的性质进行验证。该模型检测器可以选择现有的工具软件,例如自动化模型检测器uppaal,其通过基于时间自动机的分析手段与逻辑语义的验证属性查询,搜索模型状态空间,完成对缓存模块数据一致性的完备验证。
35.以下实施方式以双核两级缓存处理器为例,验证该处理器的缓存功能。图3示意性示出了根据本发明实施方式的双核两级缓存处理器的结构示意图。如图3所示,按照前述的实施方式实施如下:步骤1、基于有限状态机进行缓存电路全局形式化模型构建。以缓存中中常见的触发器为例,根据每个触发器的状态和将电路的状态以及状态转移关系提取出来。
36.步骤2、基于缓存一致性的硬件行为特征构建相应的验证属性。根据mesi缓存一致性协议,l1 cache的cache line有以下四种状态:m(modify),e(exclusive),s(shared),i(invalid)。因此对于两个cpu core的l1 cache对应的cache line允许存在的状态如下表1所示(
×
表示不允许两个cache line同时处于对应的状态,√表示不允许两个cache line同时处于对应的状态)。 mesim
×××
√e
×××
√s
××
√√i√√√√
37.表1以两个cpu core的l1 cache对应的cache line不能同时处于m状态为例,用自然语言描述为:if cpu1_l1cache_state is
ꢀ‘
m’,then a value of
ꢀ‘m’ꢀ
on signal cpu2_l1cache_state is not permitted。
38.但是以上自然语言无法用于属性验证,需要将其转化为形式化语言。针对缓存一致性验证常用属性的表达方式进行自动化的语义解析,分析自然语言向逻辑语言的离散映射关系,实现逻辑语义环境下缓存一致性验证属性的自动生成,最终形成用于缓存一致性检验的逻辑语言验证属性库。
39.图4示意性示出了根据本发明实施方式的自然语言向逻辑语言的离散映射示意图。如图4所示,从硬件层次对自然语言进行解析,例如cpu1的l1 cache的状态用cpu1_l1cache_state表示,定义参数m=11为modify状态。基于sva的形式化语言描述的属性:cpu1_l1cache_state == m |-》 cpu2_l1cache_state != m。对所有的属性用自然语言描述并转换成形式化语言,构建缓存一致性的验证属性库。
40.步骤3、基于自动化模型检测器实现缓存一致性验证。将缓存模块的有限状态机模型与缓存一致性验证属性输入至自动化模型检测器uppaal,通过基于时间自动机的分析手段与逻辑语义的验证属性查询,搜索模型状态空间,完成对缓存模块数据一致性的完备验证。
41.基于同一发明构思,本发明还提供了一种缓存一致性检验装置。图5示意性示出了
根据本发明实施方式的缓存一致性检验装置的结构示意图,如图5所示,一种缓存一致性检验装置,包括:模型构建模块,用于根据缓存模块在执行缓存指令时的硬件状态集合构建所述缓存模块对应的状态机模型;属性构建模块,用于根据所述状态机模型在基于缓存一致性协议下的行为特征构建验证属性;以及验证执行模块,用于将所述状态机模型和所述验证属性输入基于时间自动机的模型检测器,根据所述模型检测器的输出得到缓存一致性验证结果。
42.在一些可选实施方式中,根据缓存模块在执行缓存指令时的硬件状态集合构建所述缓存模块对应的状态机模型,包括:获取所述缓存模块中的电路元件以及所述电路元件之间的关联关系;根据每一电路元件的状态和所述关联关系构建所述缓存模块的状态空间;根据所述状态空间内的状态以及所述状态之间的转移条件与控制关系,生成对应的状态机模型。
43.在一些可选实施方式中,根据所述状态机模型在基于缓存一致性协议下的行为特征构建验证属性,包括:根据所述缓存模块在所述状态机模型下的表现形式,确定缓存一致性协议相关的电路元件与所述电路元件的状态空间;根据缓存一致性协议提取所述电路元件之间数据和状态的同步沟通关系,形成缓存验证网络;将所述缓存模块的行为特征的属性表达为验证属性。
44.在一些可选实施方式中,将所述缓存模块的行为特征的属性表达为验证属性,包括:获取以自然语言表达的行为特征的属性;将所述以自然语言表达的行为特征的属性转化为以形式化语言表达的行为属性;以所述形式化语言表达的行为属性作为所述验证属性。
45.在一些可选实施方式中,将所述以自然语言表达的行为特征的属性转化为以形式化语言表达的行为属性,包括:通过自然语言解析器将所述以自然语言表达的行为特征的属性转化为以形式化语言表达的行为属性。
46.在一些可选实施方式中,所述模型检测器为时间自动机模型,其包括:编辑器,被配置为对模型进行编辑并进行系统声明和模型声明;模拟器,被配置为对建立好的模型进行仿真并输出仿真结果;以及验证器,被配置为对模型应该满足的性质进行验证。。
47.上述的缓存一致性检验装置中的各个功能模块的具体限定可以参见上文中对于缓存一致性检验方法的限定,在此不再赘述。上述装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
48.在本发明提供的一些实施方式中,还提供了一种电子设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现前述的缓存一致性检验方法的步骤。此处的处理器具有数值计算和逻辑运算的功能,其至少具有数据处理能力的中央处理器cpu、随机存储器ram、只读存储器rom、多种i/o口和中断系统等。处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来实现前述的方法。存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flash ram),存储器包括至少一个存储芯片。
49.在本发明的一种实施方式中,还提供了一种计算机可读存储介质,所述存储介质中存储有指令,当其在计算机上运行时,该指令在被处理器执行时使得处理器被配置成执行上述的缓存一致性检验方法的步骤。
50.在本发明提供的一种实施方式中,提供了一种计算机程序产品,包括计算机程序,该计算机程序在被处理器执行时实现上述的缓存一致性检验方法的步骤。
51.本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
52.本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
53.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
54.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
55.在一个典型的配置中,计算设备包括一个或多个处理器 (cpu)、输入/输出接口、网络接口和内存。
56.存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flash ram)。存储器是计算机可读介质的示例。
57.计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存 (pram)、静态随机存取存储器 (sram)、动态随机存取存储器 (dram)、其他类型的随机存取存储器 (ram)、只读存储器 (rom)、电可擦除可编程只读存储器 (eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器 (cd-rom)、数字多功能光盘 (dvd) 或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体 (transitory media),如调制的数据信号和载波。
58.还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的
包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
59.以上仅为本技术的实施例而已,并不用于限制本技术。对于本领域技术人员来说,本技术可以有各种更改和变化。凡在本技术的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本技术的权利要求范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1