存数指令的执行方法、系统及装置制造方法及图纸

技术编号:36228911 阅读:75 留言:0更新日期:2023-01-04 12:28
本公开关于一种存数指令的执行方法、系统及装置,属于计算机技术领域。其中,该方法包括:获取已发射的存数指令对应的待存储数据和待存储数据对应的虚拟存储地址;根据虚拟存储地址确定对应的物理地址;将待存储数据和物理地址发送至访存重定序队列,以进行访存指令重定序,访存指令包括存数指令;基于访存重定序队列中访存指令的程序执行序,将存数指令的待存储数据缓存至存数缓存队列中对应的目标缓存项内;将存数缓存队列中满足预设写入条件的缓存项内的数据写入高速缓冲存储器。本公开构建独立的存数指令的流水线,将取数指令和存数指令流水线解耦合,缩短存数指令的执行时间,提高指令执行效率。提高指令执行效率。提高指令执行效率。

【技术实现步骤摘要】
存数指令的执行方法、系统及装置


[0001]本公开涉及计算机
,尤其涉及一种存数指令的执行方法、系统及装置。

技术介绍

[0002]传统的访存指令执行的过程中取数指令(Load)、存数指令(Store)共用访存流水线。Load和Store的执行要保持同样的流水级,而Store和Load执行写回的要求不一样,Load必须要得到数据高速缓存的数据才能写回,在执行时必须要判断DCache是否命中,如果命中取到DCache中的数据,如果不命中则在访存重定序队列lsroq中等待从下一级存储系统写回的数据。而Store的写回和提交不需要DCache中的数据,Store指令在提交后才真正执行写操作,写DCache或者写到下一级存储系统。Load和Store共用流水线,Store就要与Load执行一样的时间,降低了执行效率。

技术实现思路

[0003]本公开提供一种存数指令的执行方法、系统、装置、电子设备及计算机可读存储介质,以至少解决如何增强访存指令中存数指令的执行效率的问题。本公开的技术方案如下:根据本公开实施例的第一方面,提供一种存数指令的执行方法,包括:获取已发射的存数指令对应的待存储数据和所述待存储数据对应的虚拟存储地址;根据所述虚拟存储地址确定对应的物理地址;将所述待存储数据和所述物理地址发送至访存重定序队列,以进行访存指令重定序,所述访存指令中包括所述存数指令;基于所述访存重定序队列中所述访存指令的程序执行序,将所述存数指令的所述待存储数据缓存至存数缓存队列中对应的目标缓存项内;将所述存数缓存队列中满足预设写入条件的缓存项内的数据写入高速缓冲存储器。
[0004]在本公开的一个实施例中,所述基于所述访存重定序队列中所述访存指令的程序执行序,将所述存数指令的所述待存储数据缓存至存数缓存队列中对应的目标缓存项内,包括:根据所述存数指令对应的所述物理地址,确定所述存数指令对应的所述目标缓存项;将所述存数指令的所述待存储数据缓存至所述目标缓存项内。
[0005]在本公开的一个实施例中,所述根据所述存数指令对应的所述物理地址,确定所述存数指令对应的所述目标缓存项,包括:根据所述存数指令对应的所述物理地址,确定所述存数指令在所述高速缓冲存储器中对应的缓存行地址;将所述缓存行地址与所述存数缓存队列中缓存项内地址域的地址进行比较;响应于存在所述地址域的地址与所述缓存行地址相同的所述缓存项,将所述缓存项确定为所述存数指令对应的所述目标缓存项;响应于不存在所述地址域的地址与所述缓存行地址相同的所述缓存项,将所述存数缓存队列中头指针指向的缓存项确定为所述存数指令对应的所述目标缓存项,并将所述头指针指向所述目标缓存项的下一个缓存项。
[0006]在本公开的一个实施例中,响应于不存在所述地址域的地址与所述缓存行地址相同的所述缓存项,将所述存数缓存队列中头指针指向的缓存项确定为所述存数指令对应的
所述目标缓存项之后,还包括:将所述目标缓存项内地址域的地址设置为所述存数指令对应的缓存行地址;以及将所述目标缓存项的有效标志位设置为有效值。
[0007]在本公开的一个实施例中,所述将所述缓存行地址与所述存数缓存队列中缓存项内地址域的地址进行比较,包括:根据所述有效标志位,从所述缓存项中筛选出有效的所述缓存项;将所述缓存行地址与有效的所述缓存项内地址域的地址进行比较。
[0008]在本公开的一个实施例中,所述将所述存数指令的所述待存储数据缓存至所述目标缓存项内,包括:将所述待存储数据缓存至所述目标缓存项的字节存储资源中;将所述待存储数据占用的所述字节存储资源对应的字节标志位设置为第一预设数据。
[0009]在本公开的一个实施例中,所述将所述存数指令的所述待存储数据缓存至所述目标缓存项内之后,还包括:将所述目标缓存项对应的时钟计数器清零。
[0010]在本公开的一个实施例中,还包括:响应于在当前时钟周期内,所述存数缓存队列中缓存项未被写入所述待存储数据,控制所述缓存项的所述时钟计数器加一;或者在每个时钟周期控制所述存数缓存队列对应的全局计数器加一,并在所述全局计数器的数值等于预设阈值的情况下,控制未被写入所述待存储数据的缓存项对应的所述时钟计数器加一。
[0011]在本公开的一个实施例中,所述将所述存数缓存队列中满足预设写入条件的缓存项内的数据写入高速缓冲存储器,包括:将字节标志位全部为第一预设数据的缓存项内的数据写入所述高速缓冲存储器;或者将时钟计数器的数值等于第二预设数据的缓存项内的数据写入所述高速缓冲存储器;或者响应于所述存数缓存队列被写满,将所述字节标志位全部为所述第一预设数据的缓存项内的数据写入所述高速缓冲存储器,或者将所述时钟计数器的数值最大的所述缓存项内的数据写入所述高速缓冲存储器。
[0012]在本公开的一个实施例中,还包括:获取在每个流水节拍进入所述存数缓存队列的存数指令的个数;获取所述存数缓存队列中可用的缓存项的个数;若在每个所述流水节拍进入所述存数缓存队列的所述存数指令的个数大于所述可用的缓存项的个数,确定所述存数缓存队列被写满。
[0013]在本公开的一个实施例中,还包括:获取在单个流水节拍进入所述存数缓存队列的存数指令的个数的最大值;获取所述存数缓存队列中可用的缓存项的个数;若所述最大值大于所述可用的缓存项的个数,确定所述存数缓存队列被写满。
[0014]根据本公开实施例的第二方面,提供一种存数指令的执行系统,包括:寄存器堆、访存地址生成部件、数据转译后备缓冲存储器、访存重定序队列、存数缓存队列和高速缓冲存储器;其中,所述寄存器堆中包括定点寄存器堆和浮点寄存器堆,所述定点寄存器堆和所述浮点寄存器堆分别与所述访存重定序队列连接;所述定点寄存器堆还与所述访存地址生成部件连接;所述访存地址生成部件、所述数据转译后备缓冲存储器、所述访存重定序队列、所述存数缓存队列和所述高速缓冲存储器依次顺序连接;基于所述寄存器堆和所述访存地址生成部件,获取已发射的存数指令对应的待存储数据和所述待存储数据对应的虚拟存储地址;基于所述数据转译后备缓冲存储器,根据所述虚拟存储地址确定对应的物理地址;基于所述访存重定序队列,根据所述待存储数据和所述物理地址进行访存指令重定序,所述访存指令中包括所述存数指令,以及基于所述访存重定序队列中所述访存指令的程序执行序,将所述存数指令的所述待存储数据缓存至所述存数缓存队列中对应的目标缓存项内;所述高速缓冲存储器用于存储写入的数据,所述写入的数据为所述存数缓存队列中满
足预设写入条件的缓存项内的数据。
[0015]根据本公开实施例的第三方面,提供一种存数指令的执行装置,包括:获取模块,用于获取已发射的存数指令对应的待存储数据和所述待存储数据对应的虚拟存储地址;确定模块,用于根据所述虚拟存储地址确定对应的物理地址;发送模块,用于将所述待存储数据和所述物理地址发送至访存重定序队列,以进行访存指令重定序,所述访存指令中包括所述存数指令;缓存模块,用于基于所述访存重定序队列中所述访存指令的程序执行序,将所述存数指令的所述待存储数据缓本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种存数指令的执行方法,其特征在于,包括:获取已发射的存数指令对应的待存储数据和所述待存储数据对应的虚拟存储地址;根据所述虚拟存储地址确定对应的物理地址;将所述待存储数据和所述物理地址发送至访存重定序队列,以进行访存指令重定序,所述访存指令中包括所述存数指令;基于所述访存重定序队列中所述访存指令的程序执行序,将所述存数指令的所述待存储数据缓存至存数缓存队列中对应的目标缓存项内;将所述存数缓存队列中满足预设写入条件的缓存项内的数据写入高速缓冲存储器。2.根据权利要求1所述的方法,其特征在于,所述基于所述访存重定序队列中所述访存指令的程序执行序,将所述存数指令的所述待存储数据缓存至存数缓存队列中对应的目标缓存项内,包括:根据所述存数指令对应的所述物理地址,确定所述存数指令对应的所述目标缓存项;将所述存数指令的所述待存储数据缓存至所述目标缓存项内。3.根据权利要求2所述的方法,其特征在于,所述根据所述存数指令对应的所述物理地址,确定所述存数指令对应的所述目标缓存项,包括:根据所述存数指令对应的所述物理地址,确定所述存数指令在所述高速缓冲存储器中对应的缓存行地址;将所述缓存行地址与所述存数缓存队列中缓存项内地址域的地址进行比较;响应于存在所述地址域的地址与所述缓存行地址相同的所述缓存项,将所述缓存项确定为所述存数指令对应的所述目标缓存项;响应于不存在所述地址域的地址与所述缓存行地址相同的所述缓存项,将所述存数缓存队列中头指针指向的缓存项确定为所述存数指令对应的所述目标缓存项,并将所述头指针指向所述目标缓存项的下一个缓存项。4.根据权利要求3所述的方法,其特征在于,所述响应于不存在所述地址域的地址与所述缓存行地址相同的所述缓存项,将所述存数缓存队列中头指针指向的缓存项确定为所述存数指令对应的所述目标缓存项之后,还包括:将所述目标缓存项内地址域的地址设置为所述存数指令对应的缓存行地址;以及将所述目标缓存项的有效标志位设置为有效值。5.根据权利要求4所述的方法,其特征在于,所述将所述缓存行地址与所述存数缓存队列中缓存项内地址域的地址进行比较,包括:根据所述有效标志位,从所述缓存项中筛选出有效的所述缓存项;将所述缓存行地址与有效的所述缓存项内地址域的地址进行比较。6.根据权利要求2所述的方法,其特征在于,所述将所述存数指令的所述待存储数据缓存至所述目标缓存项内,包括:将所述待存储数据缓存至所述目标缓存项的字节存储资源中;将所述待存储数据占用的所述字节存储资源对应的字节标志位设置为第一预设数据。7.根据权利要求6所述的方法,其特征在于,所述将所述存数指令的所述待存储数据缓存至所述目标缓存项内之后,还包括:将所述目标缓存项对应的时钟计数器清零。
8.根据权利要求7所述的方法,其特征在于,还包括:响应于在当前时钟周期内,所述存数缓存队列中缓存项未被写入所述待存储数据,控制所述缓存项的所述时钟计数器加一;或者在每个时钟周期控制所述存数缓存队列对应的全局计数器加一,并在所述全局计数器的数值等于预设阈值的情况下,控制未被写入所述待存储数据的缓存项对应的所述时钟计数器加一。9.根据权利要求1所述的方法,其特征在于,所述将所述存数缓存队列中满足预设写入条件的缓存项内的数据写入高速缓冲存储器,...

【专利技术属性】
技术研发人员:郇丹丹李祖松
申请(专利权)人:北京微核芯科技有限公司
类型:发明
国别省市:

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

1