指令验证方法技术

技术编号:39764729 阅读:19 留言:0更新日期:2023-12-22 02:19
本申请提供一种指令验证方法

【技术实现步骤摘要】
指令验证方法、系统、设备、介质及产品


[0001]本申请涉及处理器验证领域,尤其涉及一种指令验证方法

系统

设备

介质及产品


技术介绍

[0002]Power
指令集是
IBM
公司开发的一种基于
Power
架构的精简指令集,相比于
X86
结构,
Power
架构在硬件上的最大特点是采用对称多处理器技术,可以保障内存访问任何一个
CPU
时速度都是一样的

因此,
IBM
公司的
Power
架构主要应用于高端服务器市场并且应用前景十分广泛,在国内关键行业中都有着重要的应用

[0003]在
Power
指令集下存在一种原子指令,包括
larx(load and reserve)

stcx(store conditional)
两类指令

其中,
larx
指令为读取保留指令,用于读取数据,同时根据当前线程设置缓存中相应的保留站,包括保留标识位
(flag)
和保留地址
(addr)
的设置;
stcx
指令为条件存储指令,用于根据当前线程中缓存保留站的保留标识位
(flag)
和保留地址
(addr)
向内核处理器返回处理结

但是至今为止,没有一种全面有效的方法可以验证上述
Power
指令集中
larx

stcx
两类指令在缓存中的行为


技术实现思路

[0004]本申请提供一种指令验证方法

系统

设备

介质及产品,用以全面有效地验证指令在缓存中的行为

[0005]一方面,本申请提供一种指令验证方法,应用于指令验证系统,指令验证系统包括激励发生器

待测缓存

缓存模型

信息采集器以及结果比较器;方法包括:激励发生器向待测缓存和缓存模型发送激励;激励是根据预设的激励发送条件和激励类型,基于
Power
指令集的
larx
指令和
stcx
指令生成;待测缓存响应激励,执行处理得到第一处理结果;以及,信息采集器从待测缓存中采集获得第一处理结果,发送至结果比较器;缓存模型响应激励,执行处理得到第二处理结果,并将第二处理结果发送至结果比较器;其中,缓存模型基于缓存机制和
Power
指令集的
larx
指令和
stcx
指令建立,用于模拟标准缓存对接收到的激励执行指令操作处理;结果比较器检测第一处理结果和第二处理结果是否一致,若一致,则判定验证成功;若不一致,则判定验证失败

[0006]在一种可能的实现方式中,缓存模型包括:指令执行模块

控制模块

目录

数据存储以及保留站;指令执行模块用于响应
larx
指令或
stcx
指令,访问目录并基于数据存储中的缓存数据,执行
larx
指令或
stcx
指令在缓存模型中的执行流程,执行流程包括按照预设的保留设置条件和保留清空条件,更新保留站中的数据;控制模块用于当检测到
larx
指令和
stcx
指令之间存在
load
请求或者
snoop
请求时,按照预设的保留维护条件,执行对保留站的维护处理

[0007]在一种可能的实现方式中,
larx
指令在缓存模型中的执行流程,包括:缓存模型通过解析判断当前接收到的指令是否为
larx
指令,若为
larx
指令,则将该
larx
指令传输至指
令执行模块;指令执行模块访问目录,判断
larx
指令在缓存模型下是否命中;若命中,则获取相应数据并将该数据返回给内核处理器,以及将该数据作为第二处理结果发送给结果比较器,以及按照预设的保留设置条件和保留清空条件,设置保留站中相应线程的入口;若未命中,则从下一级缓存中获取对应的数据,将该数据写入数据存储并更新目录,将该数据返回给内核处理器,并将该数据作为第二处理结果发送给结果比较器
,
以及按照预设的保留设置条件和保留清空条件,设置保留站中相应线程的入口

[0008]在一种可能的实现方式中,
stcx
指令在缓存模型中的执行流程,包括:缓存模型通过解析判断当前接收到的指令是否为
stcx
指令,若为
stcx
指令,则将该
stcx
指令传输至指令执行模块;指令执行模块访问保留站,根据该
stcx
指令所在线程的入口下的标识位和地址获得返回结果,并将该返回结果作为第二处理结果发送给结果比较器,以及按照预设的保留设置条件和保留清空条件,设置保留站中相应线程的入口;若返回结果为成功,则指令执行模块访问目录,判断
stcx
指令在缓存模型下是否命中;若命中,且命中数据的状态为独有状态,则将该数据写入数据存储;若命中,且命中数据的状态为共享状态,则从下一级缓存中获取对应的数据,将该数据写入数据存储并更新目录;若未命中,则报错

[0009]在一种可能的实现方式中,保留设置条件,包括以下至少一种:针对
larx
指令,若该
larx
指令在缓存模型下命中,则将保留站中对应线程的入口下的
flag
设置为1,
addr
设置为
larx
指令指示的访问地址,且保留粒度为
64Bytes
;针对
larx
指令,若该
larx
指令在缓存模型下未命中,且成功从下一级缓存中获取对应的数据,则将保留站中对应线程的入口下的
flag
设置为1,
addr
设置为
larx
指令指示的访问地址,且保留粒度为
64Bytes
;保留清空条件,包括以下至少一种:针对
stcx
指令,无论是否命中缓存模型,都将保留站中对应线程的入口清空,并将
flag
设置为0;针对
stcx
指令,若保留站中非本线程入口的
flag
为1,且
addr

stcx
指令指示的访问地址在
64Byt本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.
一种指令验证方法,其特征在于,应用于指令验证系统,所述指令验证系统包括激励发生器

待测缓存

缓存模型

信息采集器以及结果比较器;所述方法包括:所述激励发生器向所述待测缓存和所述缓存模型发送激励;所述激励是根据预设的激励发送条件和激励类型,基于
Power
指令集的
larx
指令和
stcx
指令生成;所述待测缓存响应所述激励,执行处理得到第一处理结果;以及,所述信息采集器从所述待测缓存中采集获得所述第一处理结果,发送至所述结果比较器;所述缓存模型响应所述激励,执行处理得到第二处理结果,并将所述第二处理结果发送至所述结果比较器;其中,所述缓存模型基于缓存机制和所述
Power
指令集的
larx
指令和
stcx
指令建立,用于模拟标准缓存对接收到的激励执行指令操作处理;所述结果比较器检测所述第一处理结果和所述第二处理结果是否一致,若一致,则判定验证成功;若不一致,则判定验证失败
。2.
根据权利要求1所述的方法,其特征在于,所述缓存模型包括:指令执行模块

控制模块

目录

数据存储以及保留站;所述指令执行模块用于响应
larx
指令或
stcx
指令,访问所述目录并基于所述数据存储中的缓存数据,执行所述
larx
指令或所述
stcx
指令在所述缓存模型中的执行流程,所述执行流程包括按照预设的保留设置条件和保留清空条件,更新所述保留站中的数据;所述控制模块用于当检测到所述
larx
指令和所述
stcx
指令之间存在
load
请求或者
snoop
请求时,按照预设的保留维护条件,执行对所述保留站的维护处理
。3.
根据权利要求2所述的方法,其特征在于,所述
larx
指令在所述缓存模型中的执行流程,包括:所述缓存模型通过解析判断当前接收到的指令是否为
larx
指令,若为
larx
指令,则将该
larx
指令传输至所述指令执行模块;所述指令执行模块访问所述目录,判断所述
larx
指令在所述缓存模型下是否命中;若命中,则获取相应数据并将该数据返回给内核处理器,以及将该数据作为所述第二处理结果发送给所述结果比较器,以及按照所述预设的保留设置条件和保留清空条件,设置保留站中相应线程的入口;若未命中,则从下一级缓存中获取对应的数据,将该数据写入所述数据存储并更新所述目录,将该数据返回给所述内核处理器,并将该数据作为所述第二处理结果发送给所述结果比较器
,
以及按照所述预设的保留设置条件和保留清空条件,设置保留站中相应线程的入口
。4.
根据权利要求3所述的方法,其特征在于,所述
stcx
指令在所述缓存模型中的执行流程,包括:所述缓存模型通过解析判断当前接收到的指令是否为
stcx
指令,若为
stcx
指令,则将该
stcx
指令传输至所述指令执行模块;所述指令执行模块访问所述保留站,根据该
stcx
指令所在线程的入口下的标识位和地址获得返回结果,并将该返回结果作为第二处理结果发送给所述结果比较器,以及按照所述预设的保留设置条件和保留清空条件,设置保留站中相应线程的入口;若所述返回结果为成功,则所述指令执行模块访问所述目录,判断所述
stcx
指令在所述缓存模型下是否命中;若命中,且命中数据的状态为独有状态,则将该数据写入所述数据存储;若命中,且命中数据的状态为共享状态,则从下一级缓存中获取对应的数据,将该数据写入所述数据存储
并更新所述目录;若未命中,则报错
。5.
根据权利要求4所述的方法,其特征在于,所述保留设置条件,包括以下至少一种:针对
larx
指令,若该
larx
指令在所述缓存模型下命中,则将所述保留站中对应线程的入口下的
flag
设置为1,
addr
设置为所述
larx
指令指示的访问地址,且保留粒度为
64Bytes
;针对
larx
指令,若该
larx
指令在所述缓存模型下未命中,且成功从下一级缓存中获取对应的数据,则将所述保留站中对应线程的入口下的
flag
设置为1,
addr
设置为所述
larx
指令指示的访问地址,且保留粒度为
64Bytes
;所述保留清空条件,包括以下至少一种:针对
stcx
指令,无论是否命中所述缓存模型,都将所述保留站中对应线程的入口清空,并将
flag
设置为0;针对
stcx
指令,若所述保留站中非本线程入口的
flag
为1,且
addr

stcx
指令指示的访问地址在
64Bytes
粒度下相同,则清空该入口的保留站信息;针对
stcx
指令,在同线程中插入了
store
请求,若该
store
请求命中所述保留站中其他线程的地址,则清空其他线程的保留站信息
。6.
根据权利要求2所述的方法,其特征在于,所述保留维护条件,包括:若接收到
load
请求,该请求触发
eviction
行为且该行为访问的数据地址与所述保留站中任一入口下的地址相同,则清空该入口;若接收到
snoop
请求,则解析所述
snoop
请求的类型,若该
snoop
请求用于无效任一缓存数据,且该缓存数据的地址与所述保留站中任一入口下的地址相同,则清空该入口
。7.

【专利技术属性】
技术研发人员:沈秀红陆泳苟鹏飞刘扬帆
申请(专利权)人:合芯科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1