CN116050322A - 指令自修改的验证方法、系统、设备以及存储介质 - Google Patents
指令自修改的验证方法、系统、设备以及存储介质 Download PDFInfo
- Publication number
- CN116050322A CN116050322A CN202111659208.0A CN202111659208A CN116050322A CN 116050322 A CN116050322 A CN 116050322A CN 202111659208 A CN202111659208 A CN 202111659208A CN 116050322 A CN116050322 A CN 116050322A
- Authority
- CN
- China
- Prior art keywords
- state
- model module
- instruction
- operation request
- fetch
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
- G06F30/3308—Design verification, e.g. functional simulation or model checking using simulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/2273—Test methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/26—Functional testing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2115/00—Details relating to the type of the circuit
- G06F2115/10—Processors
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本公开提供一种指令自修改的验证方法、系统、设备以及存储介质,该方法包括:向后端模型模块的二级缓存模型模块发送第一请求,第一请求包括前端模型模块的取指模型模块提供的取指操作请求或待测一级数据缓存模块提供的写操作请求,写操作请求的物理地址用于访问二级缓存模型模块的指令;根据第一请求获取数据缓存状态;根据数据缓存状态获取取指状态,取指状态包括响应于取指操作请求的取指有效或等待,或响应于写操作请求的取指有效或无效;根据取指状态获取验证结果。本公开通过模拟处理器前端环境与后端环境以及和待测一级数据缓存模块的交互,验证指令取指时是否获取写操作写入的数据,实现指令自修改功能实现的正确性的验证。
Description
技术领域
本公开的实施例涉及一种指令自修改的验证方法、系统、设备以及存储介质。
背景技术
随着集成电路工艺水平以及计算机体系结构技术的不断发展,处理器的性能在过去的几十年中呈指数级的增长,伴随而来的是处理器设计规模以及复杂度也快速增加。随之而来就是验证的难度急剧增加。由于高性能处理器的架构和微架构非常复杂,要进行充分验证必须要通过有效的方法进行快速验证。
发明内容
本公开至少一实施例提供了一种指令自修改的验证方法,包括:向后端模型模块包括的二级缓存模型模块发送至少一个第一请求,其中,前端模型模块包括取指模型模块和一级指令缓存模型模块,所述至少一个第一请求包括所述取指模型模块提供的至少一个取指操作请求或待测的一级数据缓存模块提供的写操作请求,所述写操作请求的物理地址配置为用于访问所述二级缓存模型模块的指令;根据所述至少一个第一请求中的每个获取对应的数据缓存状态;根据所述数据缓存状态获取取指状态,其中,所述取指状态包括响应于所述取指操作请求的取指有效或取指等待,或者,所述取指状态包括响应于所述写操作请求的取指有效或取指无效;根据所述取指状态获取验证结果。
例如,在本公开至少一实施例提供的一种验证方法中,响应于所述至少一个第一请求包括所述至少一个取指操作请求,向所述二级缓存模型模块发送所述至少一个第一请求包括:获取所述至少一个取指操作请求中的每个的虚拟地址;获取对应于所述虚拟地址的地址内存类型和物理地址,以向所述二级缓存模型模块发送所述至少一个取指操作请求。
例如,在本公开至少一实施例提供的一种验证方法中,获取所述至少一个取指操作请求中的每个的虚拟地址,包括:根据所述写操作请求的访问地址构建地址池;从所述地址池中随机选择获取所述至少一个取指操作请求中的每个的虚拟地址。
例如,在本公开至少一实施例提供的一种验证方法中,响应于所述至少一个第一请求包括所述至少一个取指操作请求,根据所述至少一个第一请求中的每个获取对应的数据缓存状态包括:基于所述至少一个取指操作请求中的每个的物理地址,获取所述数据缓存状态,所述数据缓存状态包括指令缓存有效;或者,基于所述至少一个取指操作请求中的每个的物理地址,获取所述数据缓存状态,所述数据缓存状态包括指令缓存无效。
例如,在本公开至少一实施例提供的一种验证方法中,根据所述数据缓存状态获取取指状态,包括:响应于所述数据缓存状态包括所述指令缓存有效,所述取指状态被配置为所述取指有效;响应于所述数据缓存状态包括所述指令缓存无效,所述二级缓存模型模块向所述一级数据缓存模块发送查询请求以获取所述一级数据缓存模块回复的所述取指操作请求的物理地址对应的写请求访问状态,根据所述写请求访问状态获取所述取指状态。
例如,在本公开至少一实施例提供的一种验证方法中,根据所述写请求访问状态获取所述取指状态,包括:响应于所述写请求访问状态为非访问,所述取指状态为所述取指有效;响应于所述写请求访问状态为需访问,所述取指状态为所述取指等待。
例如,在本公开至少一实施例提供的一种验证方法中,响应于所述写请求访问状态为非访问,根据所述写请求访问状态获取所述取指状态还包括:所述二级缓存模型模块设置取指有效状态位。
例如,在本公开至少一实施例提供的一种验证方法中,根据所述取指状态获取验证结果包括:响应于所述取指状态被配置为所述取指有效,所述前端模型模块将所述取指状态对应的取指操作请求配置为指令允许提交;响应于所述取指状态为所述取指等待,所述前端模型模块等待被所述二级缓存模型模块唤醒,且所述前端模型模块阻塞所述取指操作请求的取指操作。
例如,在本公开至少一实施例提供的一种验证方法中,根据所述取指状态获取验证结果还包括:响应于所述前端模型模块等待的时间大于预设时间,所述前端模型模块报错;响应于所述前端模型模块等待的时间小于预设时间且所述前端模型模块获取所述二级缓存模型模块回复的取指唤醒信号,所述前端模型模块的所述取指模型模块根据所述取指唤醒信号重新向所述二级缓存模型模块发送取指操作请求。
例如,在本公开至少一实施例提供的一种验证方法中,响应于所述至少一个第一请求包括所述写操作请求,向所述二级缓存模型模块发送所述至少一个第一请求包括:向所述二级缓存模型模块发送的写操作请求包括可缓存写操作请求或不可缓存写操作请求。
例如,在本公开至少一实施例提供的一种验证方法中,根据所述至少一个第一请求中的每个获取对应的数据缓存状态,包括:响应于所述写操作请求包括所述可缓存写操作请求,基于所述可缓存写操作请求的物理地址获取所述数据缓存状态,所述数据缓存状态包括后端模型模块非缓存状态和后端模型模块已缓存状态;响应于所述写操作请求包括所述不可缓存写操作请求,基于所述不可缓存写操作请求的物理地址获取所述数据缓存状态,所述数据缓存状态包括后端模型模块非缓存状态。
例如,在本公开至少一实施例提供的一种验证方法中,根据所述数据缓存状态获取取指状态,包括:响应于所述数据缓存状态包括所述后端模型模块非缓存状态,所述二级缓存模型模块通过向所述前端模型模块发送取指状态查询请求,以获取所述取指状态;响应于所述数据缓存状态包括所述后端模型模块已缓存状态,所述二级缓存模型模块通过查询所述写操作请求的物理地址对应的取指有效状态位,以获取所述取指状态
例如,在本公开至少一实施例提供的一种验证方法中,根据所述取指状态获取验证结果,包括:响应于所述取指状态为所述取指有效,控制所述取指状态对应的取指操作请求重新执行;响应于所述取指状态为所述取指无效,所述写操作请求正常执行。
例如,本公开至少一实施例提供的一种验证方法还包括:响应于所述至少一个取指操作请求中每个均完成取指,对于所述至少一个取指操作请求中的每个当前取指操作请求,检查所述当前取指操作请求取到的指令的数据与所述写操作请求的物理地址存储的实时数据的一致性。
本公开至少一实施例提供了一种验证指令自修改的验证系统,所述验证系统配置为与待测的一级数据缓存模块工作连接,所述验证系统包括:前端模型模块,包括取指模型模块和一级指令缓存模型模块,其中,所述取指模型模块配置为提供至少一个取指操作请求;后端模型模块,包括二级缓存模型模块且所述二级缓存模型模块配置为获取所述至少一个取指操作请求或所述一级数据缓存模块提供的写操作请求,所述写操作请求的物理地址配置为用于访问所述二级缓存模型模块的指令;所述二级缓存模型模块配置为基于所述至少一个第一请求中的每个的物理地址获取数据缓存状态,以获取取指状态,所述取指状态配置为用于获取验证结果,其中,所述取指状态包括响应于所述至少一个取指操作请求的取指有效或取指等待,或者,所述取指状态包括响应于所述写操作请求的取指有效或取指无效。
本公开至少一实施例提供了一种电子设备,包括:处理器和存储器,其中,所述存储器上存储有计算机程序,所述计算机程序被所述处理器执行时,实现如上文任一项所述的验证方法。
本公开至少一实施例提供了一种计算机可读存储介质,其中,所述存储介质内存储有计算机程序,所述计算机程序被处理器执行时,实现如上述任一示例中所述的验证方法。
附图说明
为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本公开一些实施例提供的一种指令自修改的验证方法的流程图;
图2为本公开一些实施例提供的一种验证系统的示意图;
图3为本公开一些实施例提供的图1中关于步骤S1的流程图;
图4为本公开一些实施例提供的图3中关于步骤S11的流程图;
图5为本公开一些实施例提供的图1中关于步骤S3的流程图;
图6~图7分别为本公开一些实施例提供的一种在前端模型模块发起取指操作请求时的验证方法的流程图;
图8为本公开一些实施例提供的一种在一级数据缓存模块发起写操作请求时的验证方法的流程图;以及
图9为本公开一些实施例提供的一种电子设备的框图。
具体实施方式
下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
除非另有定义,本公开实施例使用的所有术语(包括技术和科学术语)具有与本公开所属领域的普通技术人员共同理解的相同含义。还应当理解,诸如在通常字典里定义的那些术语应当被解释为具有与它们在相关技术的上下文中的含义相一致的含义,而不应用理想化或极度形式化的意义来解释,除非本公开实施例明确地这样定义。
本公开实施例中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。“一个”、“一”或者“该”等类似词语也不表示数量限制,而是表示存在至少一个。同样,“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。
本公开实施例中使用了流程图用来说明根据本公开实施例的方法的步骤。应当理解的是,前面或后面的步骤不一定按照顺序来精确的进行。相反,可以按照倒序或同时处理各种步骤。同时,也可以将其他操作添加到这些过程中,或从这些过程移除某一步或数步。
一级数据缓存(Load Store Data Cache,LSDC)的模块测试是高性能处理器验证中的一个重要方面,一级数据缓存模块的验证工作在处理器设计中非常关键并贯穿于整个设计过程中。目前一级数据缓存模块的验证的难度越来越高,例如当一级数据缓存模块实现的功能越多,一级数据缓存模块的高性能需求导致逻辑越来越复杂,并且电路的集成复杂度就越高,验证工作的复杂度和工作量也就越大,由此,如何科学有效地验证一级数据缓存模块就变得至关重要。
自修改代码(Self-Modifying Code,SMC)是指自我修改的代码,使程序在运行时自我修改。例如自修改代码的用途包括:使一些重要的跳转位置爆破无效化或者使一些重要代码隐藏等。
本公开的发明人发现,对于指令,其可能需要在执行之前进行修改,即指令修改。取指令是个投机行为,例如当前正在执行之前很旧的指令,但是此时可能已经将很新的指令取出。
本公开的发明人还发现,对于指令修改,可以通过写操作来改写指令的数据以实现指令的修改。正常程序里面的写操作与后续的取指操作重合的情况,即写操作通过写数据改变存储的内容且这块存储内容被后续的指令取指操作访问到,实现了指令自修改,这也称为SMC。SMC这个特性指后续取指操作需要取到被修改后的内容。
如此,SMC是基于X86架构处理器的一项重要特性,它允许写操作访问指令存储空间,程序可以修改程序本身,根据写操作写入的数据不同,后续执行的指令将发生变化。本公开的发明人又发现,对于SMC,在其他处理器,比如ARM中是通过一系列barrier指令来实现。barrier指令可用于防止CPU的乱序执行,例如barrier指令要求其之前的指令执行完之后再执行后面的指令,即这种方案需要增加额外的指令实现,但是这会带来一系列的问题,例如处理器的设计更加复杂、运行效率受到影响等。
对此,本公开至少一实施例提供了一种指令自修改的验证方法,包括:向后端模型模块包括的二级缓存模型模块发送至少一个第一请求,其中,前端模型模块包括取指模型模块和一级指令缓存模型模块,至少一个第一请求包括取指模型模块提供的至少一个取指操作请求或待测的一级数据缓存模块提供的写操作请求,写操作请求的物理地址配置为用于访问二级缓存模型模块的指令;根据至少一个第一请求中的每个获取对应的数据缓存状态;根据数据缓存状态获取取指状态,其中,取指状态包括响应于取指操作请求的取指有效或取指等待,或者,取指状态包括响应于写操作请求的取指有效或取指无效;根据取指状态获取验证结果。
本公开上述实施例的验证方法通过模拟前端环境和后端环境并模拟和待测的一级数据缓存模块关于例如写操作直接访问指令存储空间的一系列交互,能够准确地验证指令取指时是否获取写操作写入的数据,实现指令自修改的验证,即验证SMC功能实现的正确性。在本公开至少一个示例中,指令自修改的验证方法应用于芯片的逻辑代码设计阶段,能够避免前期阶段因一级数据缓存模块的错误设计而导致后续生产制造错误,从而减少大量的时间和金钱成本。
图1为本公开一些实施例提供的一种指令自修改的验证方法的流程图。图2为本公开一些实施例提供的一种验证指令自修改的验证系统的示意图。
例如,如图1所示,本公开至少一实施例提供的指令自修改的验证方法包括步骤S1至步骤S4。
例如,如图2所示,本公开至少一实施例提供的验证指令自修改的验证系统100配置为与待测的一级数据缓存模块200工作连接,验证系统100包括前端模型模块(FAKE FE)110和后端模型模块(FAKE BE)120。
例如,前端模型模块110也可称为处理器前端模型模块,前端模型模块110配置为模拟一级缓存的前端模拟环境,例如用于模拟取指、交互模拟和指令提交等。后端模型模块120也可称为处理器后端模型模块,后端模型模块120配置为模拟一级缓存的后端模拟环境,例如用于负责回填、监听等。
例如,如图2所示,前端模型模块110包括取指模型模块111和一级指令缓存模型模块112,后端模型模块120包括二级缓存模型模块121。取指模型模块111配置为模拟取指模块,例如配置为模拟指令取指等相关行为。一级指令缓存模型模块112配置为模拟一级指令缓存模块。二级缓存模型模块121配置为模拟二级缓存模块。
需要说明的是,鉴于前端模型模块110并非本公开的实施例需要描述的重点,为了本公开实施例的清楚与简洁,本公开实施例省略前端模型模块110具体组成等相关内容,本领域技术人员可根据本文相关描述以及本领域的背景技术能够得知前端模型模块110相关内容,例如前端模型模块110还可包括译码模块等,本公开的实施例在此不做赘述。
本公开一些实施例提供的验证方法包括的步骤S1至步骤S4如下所述。
步骤S1、向后端模型模块120包括的二级缓存模型模块121发送至少一个第一请求。例如,对于步骤S1,至少一个第一请求包括取指模型模块111提供的至少一个取指操作请求A1或待测的一级数据缓存模块200提供的写操作请求B1,写操作请求B1的物理地址配置为用于访问二级缓存模型模块121的指令,即写操作请求B1可访问指令存储空间。
步骤S2、根据至少一个第一请求中的每个获取对应的数据缓存状态。
步骤S3、根据数据缓存状态获取取指状态,其中,取指状态包括响应于取指操作请求A1的取指有效或取指等待,或者,取指状态包括响应于写操作请求B1的取指有效或取指无效。
步骤S4、根据取指状态获取验证结果。
在一些示例中,在步骤S3中,响应于取指操作请求A1的取指有效表示指令取指时对应的物理地址的数据没有写操作正在访问或即将要访问,即可直接取指。响应于取指操作请求A1的取指等待表示指令取指时对应的物理地址的数据有写操作正在访问或即将要访问。响应于写操作请求B1的取指有效表示写操作请求写入时相关物理地址的指令数据已被取指过,响应于写操作请求B1的取指无效表示写操作请求写入时相关物理地址的指令数据未被取指过。
在本公开一些实施例提供的验证指令自修改的验证系统100中,取指模型模块111配置为提供至少一个取指操作请求A1。二级缓存模型模块121配置为获取至少一个第一请求,例如二级缓存模型模块121配置为获取该至少一个取指操作请求A1或一级数据缓存模块200提供的写操作请求B1。写操作请求B1的物理地址配置为用于访问二级缓存模型模块121的指令。二级缓存模型模块121配置为基于至少一个第一请求中的每个的物理地址获取数据缓存状态,以获取取指状态。取指状态配置为用于获取验证结果,例如取指状态包括响应于至少一个取指操作请求A1的取指有效或取指等待,或者,取指状态包括响应于写操作请求B1的取指有效或取指无效。
本公开的实施例的验证方法或系统通过模拟前端环境与后端模型以及模拟和待测的一级数据缓存模块关于例如写操作直接访问指令存储空间的一系列交互,验证了指令取指时是否获取写操作最新写入的数据,可验证SMC功能实现的正确性。
图3为本公开一些实施例提供的图1中关于步骤S1的流程图。
例如,如图3所示,响应于至少一个第一请求包括取指模型模块111提供的至少一个取指操作请求A1,步骤S1包括步骤S11和步骤S12。
步骤S11、获取至少一个取指操作请求A1中的每个的虚拟地址(VA)。
步骤S12、获取对应于虚拟地址的地址内存类型(Memtype)和物理地址(PA),以向二级缓存模型模块121发送至少一个取指操作请求A1。
本公开的实施例将虚拟地址经过转换获取物理地址,如此更加安全,也能减轻系统的负担,而且通过虚拟地址获取地址内存类型,这样便于验证。
图4为本公开一些实施例提供的图3中关于步骤S11的流程图。
例如,如图4所示,步骤S11包括步骤S111和步骤S112。
步骤S111、根据写操作请求B1的访问地址构建地址池。例如,对于步骤S111,写操作请求B1的访问地址包括写操作请求B1曾经已访问的地址。
步骤S112、从地址池中随机选择获取至少一个取指操作请求A1中的每个的虚拟地址。
本公开的实施例根据写操作请求已访问过的地址来获取取指操作请求的虚拟地址,可使取指操作请求的地址和写操作请求的地址更大概率地具有相关性,提高了SMC概率,便于验证。
在一些示例中,对于步骤S1,前端模型模块110发送取指操作请求A1之后,将取指结果先记录为等待回填。
在一些示例中,响应于至少一个第一请求包括取指模型模块111提供的至少一个取指操作请求A1,步骤S2包括:基于每个取指操作请求A1的物理地址获取数据缓存状态,且数据缓存状态包括指令缓存有效。指令缓存有效表示物理地址对应的指令存在于一级指令缓存内,例如指令缓存有效表示物理地址对应的指令存在于图2的一级指令缓存模型模块120内。
在一些示例中,二级缓存模型模块121记录有标识位以标识物理地址对应的指令或数据是否在一级指令缓存内或一级数据缓存内。此仅仅为示例性的,并不为本公开的限制。例如,二级缓存模型模块121设置有指令缓存有效位,以标识物理地址对应的指令是否在一级指令缓存内,以便于数据缓存状态的获取或识别。
在另一些示例中,响应于至少一个第一请求包括取指模型模块111提供的至少一个取指操作请求A1,步骤S2包括:基于每个取指操作请求A1的物理地址获取数据缓存状态,且数据缓存状态包括指令缓存无效。指令缓存无效表示物理地址对应的指令不在一级指令缓存内,例如指令缓存无效表示物理地址对应的指令不在图2的一级指令缓存模型模块120内。
本公开的实施例通过前端模型模块发起的取指操作请求的物理地址获知指令是否存在于一级指令缓存内,本公开的实施例的验证方法能够覆盖指令缓存有效和指令缓存无效的验证场景,验证较为全面,普适性较好。
在一些示例中,对于步骤S3,当上述的数据缓存状态包括指令缓存有效时,取指状态被配置为取指有效。
图5为本公开一些实施例提供的图1中关于步骤S3的流程图。
例如,如图5所示,当上述的数据缓存状态包括指令缓存无效时,步骤S3包括步骤S31和步骤S32。
步骤S31、二级缓存模型模块121向一级数据缓存模块200发送查询请求B2以获取一级数据缓存模块200回复的取指操作请求的物理地址对应的写请求访问状态,即一级数据缓存模块200根据是否需要使用该物理地址对应的指令数据给出对应的回复。
步骤S32、根据写请求访问状态获取取指状态。
例如,在步骤S31中,写请求访问状态表示一级数据缓存模块是否需要使用该物理地址对应的指令数据,也即表示是否有一级数据缓存模块发出的写操作请求正在访问该物理地址对应的指令数据或一级数据缓存模块即将发出写操作请求来访问该物理地址对应的指令数据。
本公开的实施例可以根据前端模型模块发起的取指操作请求验证到指令取指时对应的地址没有写操作和有操作访问的各种场景,从而实现指令取指时相关地址是否获取写操作最新写入的数据的验证。
在一些示例中,对于步骤S32,当写请求访问状态为非访问时,取指状态为取指有效。例如,非访问表示没有写操作请求正在访问或即将访问对应物理地址对应的数据。如此,本公开的实施例能够验证指令取指时对应的地址没有写操作时是否取指到写操作写之后的最新数据,从而验证SMC功能实现的正确性。
在一些示例中,对于步骤S32,当写请求访问状态为需访问时,取指状态为取指等待。例如,需访问表示有写操作请求正在访问或即将访问对应物理地址对应的数据。如此,本公开的实施例的验证方法覆盖指令取指时对应的地址有写操作时通过阻塞取指后是否成功释放的验证场景。
在一些示例中,对于上述写操作请求B1的物理地址配置为用于访问二级缓存模型模块121的指令,即表示写操作请求B1可访问指令存储空间以改写指令数据,如此可以实现对应指令的修改。例如改写指令数据包括改写指令的操作码和/或操作数等,当然,此仅仅为示例性的,并不为本公开的限制。在一些示例中,本公开的实施例的写操作请求的物理地址和取指操作请求的物理地址一一对应,即能够相配,以实现SMC功能。
在一些示例中,在步骤S31中的写请求访问状态为非访问,且取指状态被配置为取指有效时,步骤S4包括以下步骤或过程:前端模型模块110将取指状态对应的取指操作请求A1配置为指令允许提交。这样使得在指令取指时对应的地址没有写操作访问而能顺利取指以检查取指的数据是否正确。
在一些示例中,在写请求访问状态为非访问且取指状态被配置为取指有效时,对于步骤S4,后端模型120的二级缓存模型模块121向前端模型模块110发送取指状态回复信号A2,即后端模型120向前端模型模块110回复取指成功,以使前端模型模块110根据取指状态回复信号A2将取指结果记录为取指成功,因此,在取指成功时前端模型模块110将相应的取指操作请求配置为指令允许提交,以使指令顺利提交,即成功取指。取指状态回复信号A2可表示一个对应于取指状态为取指有效的信号,其具有与取指操作请求一一匹配的地址,由于此不为本公开的实施例描述的重点,这里不再赘述。
在一些示例中,当步骤S31中的写请求访问状态为非访问时,步骤S32还包括以下步骤或过程:二级缓存模型模块121设置取指有效状态位。该取指有效状态位是二级缓存模型模块121中的一个状态位,表示对应物理地址的指令数据已被取指过。
如此,本公开的实施例通过设置取指有效状态位可获知相关地址的指令数据是否被取指过,这样便于写操作请求访问二级缓存模型模块时查询SMC是否危险。
在一些示例中,对于步骤S4,在步骤S31中的写请求访问状态为需访问,且取指状态为取指等待时,即此时有写操作请求正在访问或即将访问对应物理地址对应的数据,则后端模型120不向前端模型模块110回复取指成功,而是让前端模型模块110处于等待状态,以使在写操作请求写完数据之后再进行取指。
在一些示例中,在步骤S31中的写请求访问状态为需访问且取指状态为取指等待时,步骤S4包括以下步骤或过程:前端模型模块110等待被二级缓存模型模块121唤醒,且前端模型模块110阻塞取指操作请求A1的取指操作。
在一些示例中,在写请求访问状态为需访问且取指状态为取指等待时,对于步骤S4,后端模型120的二级缓存模型模块121不向前端模型模块110回复而让前端模型模块110处于等待状态,即前端模型模块110等待被二级缓存模型模块121唤醒,以使在写操作请求写完数据之后再进行取指。此仅仅为示例性的,并不为本公开的限制,例如本公开的实施例也能通过其他合理方式实现前端模型模块110的取指等待,比如还可通过后端模型120的二级缓存模型模块121向前端模型模块110发送一个对应于取指等待的回复信号而使前端模型模块110进行等待,本公开的实施例对此不做赘述。
由此,本公开的实施例能够在当前指令没有收到二级缓存模型模块取指成功的回复时可停止后续的取指操作以阻塞取指,便于验证阻塞取指后是否成功释放的场景。
在一些示例中,在写请求访问状态为需访问且取指状态为取指等待时,对于步骤S4,若前端模型模块110等待的时间大于预设时间,即长时间得不到唤醒响应,则前端模型模块110报错。
在另一些示例中,在写请求访问状态为需访问且取指状态为取指等待时,对于步骤S4,若前端模型模块110等待的时间小于预设时间且前端模型模块110获取二级缓存模型模块121回复的取指唤醒信号,即后端模型120唤醒前端模型模块110,则前端模型模块110的取指模型模块111根据取指唤醒信号重新向二级缓存模型模块121发送取指操作请求,即等待一级数据缓存模块200的写操作请求写完数据之后取消阻塞。
例如,预设时间为预先设置,可根据经验进行设定,本公开的实施例对此不作限制,其可以根据不同的情况进行相应调整,这里不再赘述。
图6~图7分别为本公开一些实施例提供的一种在前端模型模块发起取指操作请求时的验证方法的流程图。
例如,如图2和图6所示,本公开一些实施例提供的验证方法包括步骤T1~步骤T4。
步骤T1、向二级缓存模型模块121发送至少一个取指操作请求A1。
步骤T2、基于步骤T1中的至少一个取指操作请求A1中的每个的物理地址,获取对应的数据缓存状态,其中,数据缓存状态包括指令缓存有效。
步骤T3、取指状态配置为取指有效。
步骤T4、前端模型模块110将取指状态对应的取指操作请求A1配置为指令允许提交。
由此,本公开的实施例的验证方法覆盖到的测试场景包括在指令取指时对应的地址没有写操作而能顺利取指以检查取指的数据是否正确。
例如,如图2和图7所示,本公开一些实施例提供的验证方法包括步骤P1~步骤P7。
步骤P1、向二级缓存模型模块121发送至少一个取指操作请求A1。
步骤P2、基于步骤P1中的至少一个取指操作请求A1中的每个的物理地址,获取对应的数据缓存状态,其中,数据缓存状态包括指令缓存无效。
步骤P3、取指状态配置为取指等待。
步骤P4、前端模型模块110等待被二级缓存模型模块121唤醒,且前端模型模块110阻塞取指操作请求A1的取指操作。
步骤P5、比较判断前端模型模块110等待的时间是否大于预设时间:若是,即长时间得不到唤醒响应,则转至步骤P6;若否,即前端模型模块110在预设时间内后端模型模型120唤醒前端模型模块110,则转至步骤P7。
步骤P6、前端模型模块110报错。
步骤P7、前端模型模块110的取指模型模块111根据取指唤醒信号重新向二级缓存模型模块121发送取指操作请求。
由此,本公开的实施例能够验证在指令取指时对应的地址有写操作时而停止后续的取指操作以阻塞取指,从而验证阻塞取指操作的正确性。
在一些示例中,响应于至少一个第一请求包括一级数据缓存模块200提供的写操作请求B1,步骤S1包括以下步骤或过程:向二级缓存模型模块121发送的写操作请求B1包括可缓存写操作请求或不可缓存写操作请求。可缓存写操作请求表示一种访问缓存的写操作,不可缓存写操作请求表示一种不能写入缓存而直接写入主存的写操作。
在一些示例中,响应于写操作请求B1包括可缓存写操作请求,步骤S2包括以下步骤或过程:基于可缓存写操作请求的物理地址获取数据缓存状态,数据缓存状态包括后端模型模块非缓存状态和后端模型模块已缓存状态。
在另一些示例中,响应于写操作请求B1包括不可缓存写操作请求,骤S2包括以下步骤或过程:基于不可缓存写操作请求的物理地址获取数据缓存状态,数据缓存状态包括后端模型模块非缓存状态。
由此,本公开的实施例通过后端模型模块发起的写操作请求的物理地址获知指令是否存在于二级缓存内,本公开的实施例的验证方法能够覆盖后端模型模块非缓存状态和已缓存状态的验证场景,验证较为全面,普适性较好。
需要说明的是,后端模型模块非缓存状态表示不在后端模型模型的二级缓存模型模块121缓存,后端模型模块已缓存状态表示在后端模型模型的二级缓存模型模块121缓存。还需要说明的是,由于不可缓存写操作请求是一种不能写入缓存而直接写入主存的写操作,因此在写操作请求B1包括不可缓存写操作请求时,数据缓存状态可直接视为后端模型模块非缓存状态。
在一些示例中,当数据缓存状态包括后端模型模块非缓存状态时,二级缓存模型模块121通过向前端模型模块110发送取指状态查询请求,以获取取指状态,即查看写操作请求B1的物理地址对应的指令数据是否被取指过。
在另一些示例中,当数据缓存状态包括后端模型模块已缓存状态时,二级缓存模型模块121通过查询写操作请求B1的物理地址对应的取指有效状态位,以获取取指状态,即查看写操作请求B1的物理地址对应的指令数据是否被取指过。
本公开的实施例能够根据后端模型模块发起的写操作请求验证到写操作写入时相关地址的数据是否被取指过的各种场景,以实现有关SMC的取指状态查询的验证。
在一些示例中,对于步骤S4,在取指状态为响应于写操作请求B1的取指有效时,即查知写操作请求B1的物理地址对应的指令数据被取指过,则需要向一级数据缓存模块200回复SMC危险(SMC Dangerous),即上报异常,因此,需要控制该取指状态对应的取指操作请求重新执行取指。
在一些示例中,对于步骤S4,在取指状态为响应于写操作请求B1的取指无效时,即查知写操作请求B1的物理地址对应的指令数据未被取指过,则需要向一级数据缓存模块200回复SMC不危险,因此写操作请求B1正常执行。
本公开的实施例基于写操作请求查询取指状态并据此获知SMC是否危险,使得在异常情况下可以重新执行取指,以使程序能够正常执行。
例如,SMC危险可通过SMC Danger=1以及SMC不危险可通过SMC Danger=0表示,例如在SMC Danger=1时表示写操作请求写入时相关物理地址的指令数据已被取指过,SMCDanger=0时表示写操作请求写入时相关物理地址的指令数据未被取指过。此仅仅为示例性的,并不为本公开的限制。
在一些示例中,本公开的实施例的验证方法还包括以下步骤或过程:当取指操作请求A1均完成完成取指后,即指令提交,清除后端模型模块120设置的指令缓存有效位和/或取指有效状态位,以释放出后端模型模块120的存储空间。
在一些示例中,本公开的实施例的验证方法还包括:当每个取指操作请求均完成取指,对于至少一个取指操作请求中的每个当前取指操作请求,检查当前取指操作请求A1取到的指令的数据与写操作请求B1的物理地址存储的实时数据的一致性,以验证取指的数据的正确性。
例如,本公开一些实施例可通过数据检查器MPMM检查当前取指操作请求取到的指令的数据与写操作请求的物理地址存储的实时数据的一致性。此仅仅为示例性的,并不本公开的限制。
由此,本公开的实施例能够测试一级数据缓存模块200是否正确地查询到有关SMC的取指状态。
图8为本公开一些实施例提供的一种在一级数据缓存模块发起写操作请求时的验证方法的流程图。
例如,如图2和图8所示,本公开一些实施例提供的验证方法包括步骤Q1~步骤Q9。
步骤Q1、向二级缓存模型模块121发送写操作请求B1。
步骤Q2、判断写操作请求B1是否为可缓存写操作请求:若是,则转至步骤Q3;若否,则转至步骤Q5。
步骤Q3、基于可缓存写操作请求的物理地址获取数据缓存状态,继续执行步骤Q4。
步骤Q4、判断数据缓存状态是否为后端模型模块非缓存状态:若是,则转至步骤Q5;若否,则转至步骤Q6。
步骤Q5、二级缓存模型模块121通过向前端模型模块110发送取指状态查询请求,以获取取指状态,继续执行步骤Q7。
步骤Q6、二级缓存模型模块121通过查询写操作请求B1的物理地址对应的取指有效状态位,以获取取指状态,继续执行步骤Q7。
步骤Q7、判断取指状态是否为取指有效:若是,则转至步骤Q8;若否,则转至步骤Q9。
步骤Q8、向一级数据缓存模块200回复SMC危险,上报异常,控制取指状态对应的取指操作请求重新执行。
步骤Q9、向一级数据缓存模块200回复SMC不危险,写操作请求B1正常执行。
由此,本公开的实施例能够验证写操作写入时相关地址的数据是否被取指过的各种场景,从而实现有关SMC的取指状态查询的验证。
需要说明的是,为了本文的清楚与简洁,关于验证指令自修改的验证系统100的具体实施方式和技术效果可以参考本公开上述实施例中提供的指令自修改的验证方法的相关描述,这里不再赘述。
需要注意的是,在本公开的实施例中,验证系统100可以包括更多或更少的模块,并且各个模块之间的连接关系不受限制,可以根据实际需求而定。各个模块的具体构成方式不受限制。以上实施例中的各个模块可被分别配置为执行特定功能的软件、硬件、固件或上述项的任意组合。例如,这些模块可对应于专用的集成电路,也可对应于纯粹的软件代码,还可对应于软件与硬件相结合的模块。
还需要说明的是,尽管以上在描述验证指令自修改的验证系统时将其划分为用于分别执行相应处理的模块,然而,本领域技术人员清楚的是,各模块执行的处理也可以在随机系统不进行任何具体模块划分或者各模块之间并无明确划界的情况下执行。
图9为本公开至少一实施例提供的一种电子设备的结构示意图。本公开实施例中的终端设备可以包括但不限于诸如移动电话、笔记本电脑、数字广播接收器、PDA(个人数字助理)、PAD(平板电脑)、PMP(便携式多媒体播放器)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。图9示出的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
例如,如图9所示,在一些示例中,电子设备200包括处理装置(例如中央处理器、图形处理器等)201,其可以根据存储在只读存储器(ROM)202中的程序或者从存储装置208加载到随机访问存储器(RAM)203中的程序而执行如上所述的验证方法。在RAM 203中,还存储有计算机系统操作所需的各种程序和数据。处理装置201、ROM202以及RAM203通过总线204被此相连。输入/输出(I/O)接口205也连接至总线204。
例如,以下部件可以连接至I/O接口205:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置206;包括诸如液晶显示器(LCD)、扬声器、振动器等的输出装置207;包括例如磁带、硬盘等的存储装置208;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信装置209。通信装置209可以允许电子设备200与其他设备进行无线或有线通信以交换数据,经由诸如因特网的网络执行通信处理。驱动器210也根据需要连接至I/O接口205。可拆卸介质211,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器210上,以便于从其上读出的计算机程序根据需要被安装入存储装置209。虽然图9示出了包括各种装置的电子设备200,但是应理解的是,并不要求实施或包括所有示出的装置。可以替代地实施或包括更多或更少的装置。
例如,该电子设备200还可以进一步包括外设接口(图中未示出)等。该外设接口可以为各种类型的接口,例如为USB接口、闪电(lighting)接口等。该通信装置209可以通过无线通信来与网络和其他设备进行通信,该网络例如为因特网、内部网和/或诸如蜂窝电话网络之类的无线网络、无线局域网(LAN)和/或城域网(MAN)。无线通信可以使用多种通信标准、协议和技术中的任何一种,包括但不局限于全球移动通信系统(GSM)、增强型数据GSM环境(EDGE)、宽带码分多址(W-CDMA)、码分多址(CDMA)、时分多址(TDMA)、蓝牙、Wi-Fi(例如基于IEEE 802.11a、IEEE 802.11b、IEEE 802.11g和/或IEEE 802.11n标准)、基于因特网协议的语音传输(VoIP)、Wi-MAX,用于电子邮件、即时消息传递和/或短消息服务(SMS)的协议,或任何其他合适的通信协议。
例如,电子设备可以为手机、平板电脑、笔记本电脑、电子书、游戏机、电视机、数码相框、导航仪等任何设备,也可以为任意的电子设备及硬件的组合,本公开的实施例对此不作限制。
例如,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在非暂态计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置209从网络上被下载和安装,或者从存储装置208被安装,或者从ROM 202被安装。在该计算机程序被处理装置201执行时,执行本公开实施例的方法中限定的上述用于衍生的验证功能。
需要说明的是,本公开上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开的实施例中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开的实施例中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。
在一些实施方式中,客户端、服务器可以利用诸如HTTP(HyperTextTransferProtocol,超文本传输协议)之类的任何当前已知或未来研发的网络协议进行通信,并且可以与任意形式或介质的数字数据通信(例如,通信网络)互连。通信网络的示例包括局域网(“LAN”),广域网(“WAN”),网际网(例如,互联网)以及端对端网络(例如,ad hoc端对端网络),以及任何当前已知或未来研发的网络。
上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。
需要说明的是,本公开的实施例中,电子设备200的具体功能和技术效果可以参考上文中关于指令自修改的验证方法的描述,此处不再赘述。
有以下几点需要说明:
(1)本公开实施例附图只涉及到本公开实施例涉及到的结构,其他结构可参考通常设计。
(2)在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合以得到新的实施例。
以上所述,仅为本公开的具体实施方式,但本公开的保护范围并不局限于此,本公开的保护范围应以所述权利要求的保护范围为准。
Claims (17)
1.一种指令自修改的验证方法,包括:
向后端模型模块包括的二级缓存模型模块发送至少一个第一请求,其中,前端模型模块包括取指模型模块和一级指令缓存模型模块,所述至少一个第一请求包括所述取指模型模块提供的至少一个取指操作请求或待测的一级数据缓存模块提供的写操作请求,所述写操作请求的物理地址配置为用于访问所述二级缓存模型模块的指令;
根据所述至少一个第一请求中的每个获取对应的数据缓存状态;
根据所述数据缓存状态获取取指状态,其中,所述取指状态包括响应于所述取指操作请求的取指有效或取指等待,或者,所述取指状态包括响应于所述写操作请求的取指有效或取指无效;
根据所述取指状态获取验证结果。
2.如权利要求1所述的验证方法,其中,响应于所述至少一个第一请求包括所述至少一个取指操作请求,向所述二级缓存模型模块发送所述至少一个第一请求包括:
获取所述至少一个取指操作请求中的每个的虚拟地址;
获取对应于所述虚拟地址的地址内存类型和物理地址,以向所述二级缓存模型模块发送所述至少一个取指操作请求。
3.如权利要求2所述的验证方法,其中,获取所述至少一个取指操作请求中的每个的虚拟地址,包括:
根据所述写操作请求的访问地址构建地址池;
从所述地址池中随机选择获取所述至少一个取指操作请求中的每个的虚拟地址。
4.如权利要求1~3任一所述的验证方法,其中,响应于所述至少一个第一请求包括所述至少一个取指操作请求,根据所述至少一个第一请求中的每个获取对应的数据缓存状态包括:
基于所述至少一个取指操作请求中的每个的物理地址,获取所述数据缓存状态,所述数据缓存状态包括指令缓存有效;或者,
基于所述至少一个取指操作请求中的每个的物理地址,获取所述数据缓存状态,所述数据缓存状态包括指令缓存无效。
5.如权利要求4所述的验证方法,其中,根据所述数据缓存状态获取取指状态,包括:
响应于所述数据缓存状态包括所述指令缓存有效,所述取指状态被配置为所述取指有效;
响应于所述数据缓存状态包括所述指令缓存无效,所述二级缓存模型模块向所述一级数据缓存模块发送查询请求以获取所述一级数据缓存模块回复的所述取指操作请求的物理地址对应的写请求访问状态,根据所述写请求访问状态获取所述取指状态。
6.如权利要求5所述的验证方法,其中,根据所述写请求访问状态获取所述取指状态,包括:
响应于所述写请求访问状态为非访问,所述取指状态为所述取指有效;
响应于所述写请求访问状态为需访问,所述取指状态为所述取指等待。
7.如权利要求6所述的验证方法,其中,响应于所述写请求访问状态为非访问,根据所述写请求访问状态获取所述取指状态还包括:
所述二级缓存模型模块设置取指有效状态位。
8.如权利要求5或6所述的验证方法,其中,根据所述取指状态获取验证结果包括:
响应于所述取指状态被配置为所述取指有效,所述前端模型模块将所述取指状态对应的取指操作请求配置为指令允许提交;
响应于所述取指状态为所述取指等待,所述前端模型模块等待被所述二级缓存模型模块唤醒,且所述前端模型模块阻塞所述取指操作请求的取指操作。
9.如权利要求8所述的验证方法,其中,根据所述取指状态获取验证结果还包括:
响应于所述前端模型模块等待的时间大于预设时间,所述前端模型模块报错;
响应于所述前端模型模块等待的时间小于预设时间且所述前端模型模块获取所述二级缓存模型模块回复的取指唤醒信号,所述前端模型模块的所述取指模型模块根据所述取指唤醒信号重新向所述二级缓存模型模块发送取指操作请求。
10.如权利要求1所述的验证方法,其中,响应于所述至少一个第一请求包括所述写操作请求,向所述二级缓存模型模块发送所述至少一个第一请求包括:
向所述二级缓存模型模块发送的写操作请求包括可缓存写操作请求或不可缓存写操作请求。
11.如权利要求10所述的验证方法,其中,根据所述至少一个第一请求中的每个获取对应的数据缓存状态,包括:
响应于所述写操作请求包括所述可缓存写操作请求,基于所述可缓存写操作请求的物理地址获取所述数据缓存状态,所述数据缓存状态包括后端模型模块非缓存状态和后端模型模块已缓存状态;
响应于所述写操作请求包括所述不可缓存写操作请求,基于所述不可缓存写操作请求的物理地址获取所述数据缓存状态,所述数据缓存状态包括后端模型模块非缓存状态。
12.如权利要求11所述的验证方法,其中,根据所述数据缓存状态获取取指状态,包括:
响应于所述数据缓存状态包括所述后端模型模块非缓存状态,所述二级缓存模型模块通过向所述前端模型模块发送取指状态查询请求,以获取所述取指状态;
响应于所述数据缓存状态包括所述后端模型模块已缓存状态,所述二级缓存模型模块通过查询所述写操作请求的物理地址对应的取指有效状态位,以获取所述取指状态。
13.如权利要求12所述的验证方法,其中,根据所述取指状态获取验证结果,包括:
响应于所述取指状态为所述取指有效,控制所述取指状态对应的取指操作请求重新执行;
响应于所述取指状态为所述取指无效,所述写操作请求正常执行。
14.如权利要求1所述的验证方法,还包括:
响应于所述至少一个取指操作请求中每个均完成取指,对于所述至少一个取指操作请求中的每个当前取指操作请求,检查所述当前取指操作请求取到的指令的数据与所述写操作请求的物理地址存储的实时数据的一致性。
15.一种验证指令自修改的验证系统,所述验证系统配置为与待测的一级数据缓存模块工作连接,所述验证系统包括:
前端模型模块,包括取指模型模块和一级指令缓存模型模块,其中,所述取指模型模块配置为提供至少一个取指操作请求;
后端模型模块,包括二级缓存模型模块且所述二级缓存模型模块配置为获取所述至少一个取指操作请求或所述一级数据缓存模块提供的写操作请求,所述写操作请求的物理地址配置为用于访问所述二级缓存模型模块的指令;所述二级缓存模型模块配置为基于所述至少一个第一请求中的每个的物理地址获取数据缓存状态,以获取取指状态,所述取指状态配置为用于获取验证结果,其中,所述取指状态包括响应于所述至少一个取指操作请求的取指有效或取指等待,或者,所述取指状态包括响应于所述写操作请求的取指有效或取指无效。
16.一种电子设备,包括:
处理器和存储器,
其中,所述存储器上存储有计算机程序,所述计算机程序被所述处理器执行时,实现权利要求1至14中任一项所述的验证方法。
17.一种计算机可读存储介质,其中,所述存储介质内存储有计算机程序,所述计算机程序被处理器执行时,实现权利要求1至14中任一项所述的验证方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111659208.0A CN116050322A (zh) | 2021-12-30 | 2021-12-30 | 指令自修改的验证方法、系统、设备以及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111659208.0A CN116050322A (zh) | 2021-12-30 | 2021-12-30 | 指令自修改的验证方法、系统、设备以及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116050322A true CN116050322A (zh) | 2023-05-02 |
Family
ID=86116927
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111659208.0A Pending CN116050322A (zh) | 2021-12-30 | 2021-12-30 | 指令自修改的验证方法、系统、设备以及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116050322A (zh) |
-
2021
- 2021-12-30 CN CN202111659208.0A patent/CN116050322A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104137076B (zh) | 用于验证应用的方法和设备 | |
CN107908952B (zh) | 识别真机和模拟器的方法、装置和终端 | |
CN110869907B (zh) | 一种浏览应用页面的方法及终端 | |
US8875121B2 (en) | Framework for multi-type and multi-location firmware updates and hardware feature updates through a single interface protocol | |
US20150026330A1 (en) | Generating unique identifiers for mobile devices | |
US10754717B2 (en) | Fast and accurate identification of message-based API calls in application binaries | |
CN109873735B (zh) | H5页面的性能测试方法、装置和计算机设备 | |
CN109375937A (zh) | 系统升级方法、装置、终端设备及存储介质 | |
EP3340061A1 (en) | Increasing lifetime reliability for a cache memory | |
CN108874654B (zh) | 幂等有效性测试方法、装置及设备、可读介质 | |
CN105684027A (zh) | 一种房产网的房源验证方法及系统 | |
CN107967424A (zh) | 一种插件的验证方法、装置、终端设备和存储介质 | |
CN112799940A (zh) | 回归测试方法、装置、计算机系统和计算机可读存储介质 | |
US7752006B2 (en) | Device, system and method of generating a hardware-verification test case | |
CN116909943B (zh) | 一种缓存访问方法、装置、存储介质及电子设备 | |
US9021596B2 (en) | Correcting workflow security vulnerabilities via static analysis and virtual patching | |
WO2023104146A1 (zh) | 原子性保持方法、处理器及电子设备 | |
US11030304B2 (en) | Buffer overflow detection based on a synthesis of assertions from templates and k-induction | |
CN108776665B (zh) | 一种数据处理方法及装置 | |
US20210028947A1 (en) | Identity verification | |
CN110908882A (zh) | 一种应用程序的性能分析方法、装置、终端设备及介质 | |
CN116050322A (zh) | 指令自修改的验证方法、系统、设备以及存储介质 | |
CN115934338A (zh) | 进程间的通信方法及装置 | |
US9003364B2 (en) | Overriding system attributes and function returns in a software subsystem | |
CN112711602B (zh) | 一种存储过程的运行方法、装置,数据库系统及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |