CN117891509A - 数据访存方法、装置、计算机设备和存储介质 - Google Patents
数据访存方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN117891509A CN117891509A CN202410302665.1A CN202410302665A CN117891509A CN 117891509 A CN117891509 A CN 117891509A CN 202410302665 A CN202410302665 A CN 202410302665A CN 117891509 A CN117891509 A CN 117891509A
- Authority
- CN
- China
- Prior art keywords
- instruction
- checking
- result
- instruction address
- data storage
- 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
- 238000000034 method Methods 0.000 title claims abstract description 58
- 238000013500 data storage Methods 0.000 claims abstract description 91
- 238000007689 inspection Methods 0.000 claims description 58
- 238000004590 computer program Methods 0.000 claims description 21
- 230000008569 process Effects 0.000 description 18
- 238000010586 diagram Methods 0.000 description 14
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 7
- 230000006870 function Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 230000005856 abnormality Effects 0.000 description 2
- 230000004075 alteration Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 238000010009 beating Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 238000011144 upstream manufacturing Methods 0.000 description 1
Landscapes
- Storage Device Security (AREA)
Abstract
本申请实施例提供一种数据访存方法、装置、计算机设备和存储介质,所述数据访存方法包括:在预设检查类型数目为一种的情况下,数据访存模块接收指令,在本地对指令地址进行检查;在指令地址的检查结果为有效执行结果或者空指令的情况下,将指令以及对指令地址的检查结果发送至数据存储模块和写回控制模块,数据存储模块根据对指令地址的检查结果确定是否执行指令,并将执行结果发送至写回控制模块,写回控制模块对指令地址的检查结果和执行结果进行匹配,并根据匹配结果确定对指令是否写回;在指令地址的检查结果为假指令的情况下,将指令以及对指令地址的检查结果擦除,能够简化数据访存模块的工作任务,提升流水线工作时的时钟频率。
Description
技术领域
本申请涉及数据处理技术领域,具体地,涉及一种数据访存方法、装置、计算机设备和存储介质。
背景技术
如图1所示,一条指令在中央处理器中执行过程通常可以分为很多个阶段,以5级流水线为例,可以分为取指、译码、执行、访存和写回五个操作。
访存,即load指令和store指令访问存放数据的存储空间,获取对应数据的过程。对于访存模块来说,对于指令地址的检查,直接完成检查(检查的过程是组合逻辑)后,再根据检查后的结果,分发访问寄存器(比如访问的是哪一个模块就发往那一个模块),返回的结果用于写回,不用返回;或者属性检查不通过不发访问(比如在当前模式下地址权限检查不过,或者访问到空洞地址),同时产生异常。以流水线上有6条指令为例,6条指令的顺序为a,b,c,d,e,f,其中,a指令和b指令流到访存与写回之间的寄存器上,c指令流到访存阶段,当对c指令的地址检查发现异常且报出该异常信息,访存模块确定清空时间,并向写回模块发送清空命令以及清空时间,写回模块收到清空命令以及清空时间,则在清空时间中断当前程序,并跳转到异常处理程序进行修复,即c,d,e,f指令均被清空,如果访存阶段确定的清空时间不准确或者无法确定清空时间,则中断当前程序时a指令和b指令并未完成执行,等中断修复好之后,从c指令开始,重新启动程序,可能会导致a指令和b指令的执行结果丢失。因此,在访存模块中的清空时间的确定以及中断修复好后的启动等处理十分复杂,会严重影响流水线的工作频率。
发明内容
本申请实施例中提供了一种数据访存方法、装置、计算机设备和存储介质。
本申请实施例的第一个方面,提供了一种数据访存方法,包括:
在预设数据存储模块的检查类型数目为一种的情况下,数据访存模块接收Load指令和Store指令中的至少一种,在本地对指令地址进行检查;
在指令地址的检查结果为有效执行结果的情况下,将指令以及对指令地址的检查结果发送至数据存储模块和写回控制模块,数据存储模块根据对指令地址的检查结果确定执行指令,并将执行结果发送至写回控制模块,写回控制模块对指令地址的检查结果和执行结果进行匹配,并根据匹配结果确定对指令写回,其中,所述数据存储模块与数据访存模块连接;
在指令地址的检查结果为空指令的情况下,将指令以及对指令地址的检查结果发送至数据存储模块和写回控制模块,数据存储模块根据对指令地址的检查结果确定不执行指令,并将不执行指令的结果发送至写回控制模块,写回控制模块对指令地址的检查结果和不执行指令的结果进行匹配,并根据匹配结果确定对指令不写回;
在指令地址的检查结果为假指令的情况下,将指令以及对指令地址的检查结果发送至数据存储模块,数据存储模块将指令以及对指令地址的检查结果擦除。
在本申请一个可选的实施例中,所述方法还包括:
在预设数据存储模块的检查类型数目为至少两种的情况下,数据访存模块接收Load指令和Store指令中的至少一种;
在对指令地址的检查类型为第一检查类型的情况下,数据访存模块在本地对指令地址进行检查,并将指令以及对指令地址的检查结果发送至数据存储模块;数据存储模块根据对指令地址的检查结果确定是否执行指令,并将执行结果发送至写回控制模块;
在对指令地址的属性的检查类型为第二检查类型的情况下,数据访存模块向数据存储模块发送指令以及指令地址,数据存储模块接收指令以及指令地址,对指令地址进行检查,并根据对指令地址的检查结果确定是否执行指令,并将执行结果发送至写回控制模块,其中,第一检查类型组合逻辑电路为与数据访存模块连接的数据存储模块的通用性检查,第二检查类型组合逻辑电路为数据存储模块的个性化检查。
在本申请一个可选的实施例中,所述方法还包括:
在第一检查类型的检查项数大于预设阈值的情况下,将检查项数分为第一检查项集和第二检查项集;
在数据访存模块中进行第一检查项集的检查,在数据存储模块中进行第二检查项集的属性检查。
在本申请一个可选的实施例中,所述对指令地址的检查包括指令地址的有效性检查、属性检查和权限检查。
在本申请一个可选的实施例中,所述对指令地址进行检查,包括:
根据指令地址的有效性检查、属性检查和权限检查,确定数据访存模块是否有权限获取指令地址对应的数据,作为对指令地址的检查结果。
在本申请一个可选的实施例中,所述确定数据访存模块是否有权限获取指令地址对应的数据,作为对指令地址的检查结果,包括:
在数据访存模块有权限获取指令地址对应的数据的情况下,确定检查结果有效;
在数据访存模块没有权限获取指令地址对应的数据的情况下,确定检查结果无效。
在本申请一个可选的实施例中,所述数据存储模块根据对指令地址的检查结果确定是否执行指令,并将执行结果发送至写回控制模块,包括:
数据存储模块接收对指令地址的检查结果,在检查结果有效的情况下,执行当前指令,并将当前指令的有效执行结果发送至写回控制模块;在检查结果无效的情况下,将空指令作为执行结果发送至写回控制模块。
本申请实施例的第二个方面,提供了一种数据访存装置,包括:
数据访存模块,用于在预设数据存储模块的检查类型数目为一种的情况下,接收Load指令和Store指令中的至少一种,在本地对指令地址进行检查;在指令地址的检查结果为有效执行结果或者空指令的情况下,将指令以及对指令地址的检查结果发送至数据存储模块和写回控制模块;在指令地址的检查结果为假指令的情况下,将指令以及对指令地址的检查结果发送至数据存储模块;
数据存储模块,用于在指令地址的检查结果为有效执行结果的情况下,根据对指令地址的检查结果确定执行指令,并将执行结果发送至写回控制模块,在指令地址的检查结果为空指令的情况下,根据对指令地址的检查结果确定不执行指令,并将不执行指令的结果发送至写回控制模块,在指令地址的检查结果为假指令的情况下,将指令以及对指令地址的检查结果擦除,其中,所述数据存储模块与数据访存模块连接;
写回控制模块,用于对指令地址的检查结果和执行结果进行匹配,并根据匹配结果确定对指令写回,写回控制模块对指令地址的检查结果和不执行指令的结果进行匹配,并根据匹配结果确定对指令不写回。
本申请实施例的第三个方面,提供了一种计算机设备,包括:包括存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时实现如上任一项数据访存方法的步骤。
本申请实施例的第四个方面,提供了一种计算机可读存储介质,其上存储有计算机程序,其特征在于,计算机程序被处理器执行时实现如上任一项的数据访存方法的步骤。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为现有技术中中央处理器流水线工作过程示意图;
图2为现有技术中在中央处理器中获取数据的执行过程示意图;
图3为本申请一个实施例提供的数据访存方法的流程图;
图4为本申请一个实施例提供的在中央处理器中获取数据的执行过程示意图;
图5为本申请另一个实施例提供的在中央处理器中获取数据的执行过程示意图;
图6为本申请又一个实施例提供的在中央处理器中获取数据的执行过程示意图;
图7为本申请再一个实施例提供的在中央处理器中获取数据的执行过程示意图;
图8为本申请一个实施例提供的数据访存装置结构示意图;
图9为本申请一个实施例提供的计算机设备结构示意图。
具体实施方式
在实现本申请的过程中,发明人发现,目前,对地址属性完成检查后,经过判断处理,发或者不发访问到各个存储空间,在这个过程中,如图2所示,由于地址属性检查多而繁杂,且如果属性检查(组合逻辑)不过,还需要经过处理(组合逻辑)后,让其不发送,往往因为属性检查以及检查后的处理,导致了中央处理器内核工作时的时钟频率降低。
针对上述问题,本申请实施例中提供了一种数据访存方法、装置、计算机设备和存储介质,所述数据访存方法中,在预设数据存储模块的检查类型数目为一种的情况下,数据访存模块接收Load指令和Store指令中的至少一种,在本地对指令地址进行检查,并将指令以及对指令地址的检查结果发送至数据存储模块,其中,所述数据存储模块与数据访存模块连接;数据存储模块根据对指令地址的属性的检查结果确定是否执行指令,并将执行结果发送至写回控制模块,其中,所述执行结果包括有效执行结果和空指令;写回控制模块接收执行结果,将接收到空指令的时间作为用于中断当前指令执行的清空时间,能够简化数据访存模块的工作任务,提升流水线工作时的时钟频率。
本申请实施例中的方案可以采用各种计算机语言实现,例如,面向对象的程序设计语言Java和直译式脚本语言JavaScript等。
为了使本申请实施例中的技术方案及优点更加清楚明白,以下结合附图对本申请的示例性实施例进行进一步详细的说明,显然,所描述的实施例仅是本申请的一部分实施例,而不是所有实施例的穷举。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
请参见图3,本申请实施例提供的数据访存方法,包括:
S1,在预设数据存储模块的检查类型数目为一种的情况下,数据访存模块接收Load指令和Store指令中的至少一种,在本地对指令地址进行检查。
在本实施例中,数据访存模块可以是中央处理器中的访存模块,但不限于此,只要是不期待发出去的请求有对应返回的模块即可。
S2,在指令地址的检查结果为有效执行结果的情况下,将指令以及对指令地址的检查结果发送至数据存储模块和写回控制模块,数据存储模块根据对指令地址的检查结果确定执行指令,并将执行结果发送至写回控制模块,写回控制模块对指令地址的检查结果和执行结果进行匹配,并根据匹配结果确定对指令写回,其中,所述数据存储模块与数据访存模块连接。
在本实施例中,数据存储模块可以是数据本地存储器或者数据高速缓冲存储器。
S3,在指令地址的检查结果为空指令的情况下,将指令以及对指令地址的检查结果发送至数据存储模块和写回控制模块,数据存储模块根据对指令地址的检查结果确定不执行指令,并将不执行指令的结果发送至写回控制模块,写回控制模块对指令地址的检查结果和不执行指令的结果进行匹配,并根据匹配结果确定对指令不写回。
S4,在指令地址的检查结果为假指令的情况下,将指令以及对指令地址的检查结果发送至数据存储模块,数据存储模块将指令以及对指令地址的检查结果擦除。
在本实施例中,所述对指令地址的检查包括指令地址的有效性检查、属性检查和权限检查,其中,指令地址的有效性检查用于检查指令地址是否是空洞地址(没有分配存储空间的地址),其中,在本实施例中,所述指令地址的属性包括但不限于device属性、non-cacheable属性和cacheable属性,其中,device属性用于内存映射的外设和类似的位置,non-cacheable属性表示内存区域不被缓存,并且不具备乱序执行和早期写入策略,cacheable属性用于指示某块内存区域是否可以被缓存,当一个内存区域被标记为cacheable时,系统会尝试将该区域的数据存储到cache中,以便在需要时能够更快地获取,cacheable属性可以应用于指令和数据存储器。
在本实施例中,对指令地址的检查根据访存模块访问的数据存储模块的类型确定指令地址的检查类型,在实际应用场景中,访存模块访问指令本地存储器和指令高速缓冲存储器,访问的指令地址都需要检查不同模式下的访问权限。
本实施例中,针对于访存模块的检查,一方面主流水上不期待返回,另外一方面是访存模块的检查种类繁多,利用的信息也不尽相同,分发的模块也相对较多,检查的过程可以同步进行(利用的信息不同,输入不同),或者在不同流水级进行检查,保证在访问存储空间前,检查完成,获取到检查的信息,保留检查的过程,对下游统一检查,由于处理上的不同,这里的处理会有一个很大的路复用器以及对应的处理逻辑,导致时序较差,主频下降,所以,将这里的处理交给下游的各个模块去处理,统一检查,无论检查结果如何,暂不做处理,按需求仍然分发给各个子模块,然后在各个子模块简单处理即可,能够提高中央处理器内核工作时的时钟频率。
本实施例中的处理,所有的load指令和store指令,都是长流水指令,也就是需要走负责访存指令的执行路线,该访问是需要保序的,一般普通指令,也就是通过属性检查的,都是走该执行路线,如果属性检查没有通过,就不往下发送了,而是回收这条指令,以及在合适的位置报出其异常,如果报早了,没有将其前面的指令将缓存中的数据写入到主存或磁盘中了,就是错误的行为,如果报晚了,有些不该执行的指令执行了,可能改变一些原本不应改变的寄存器或者储存内容,后续的计算就可能会得到错误的结果,所以不往下发送了,这里的处理还包括了这个,这样的处理会复杂很多,因此在没有增加流水线的情况下,在原有的复杂组合逻辑上削减了一部分处理逻辑,分到了各个子模块,访问到各个子模块后,再按需处理,复用子模块的数据路径,能够让主频升高的同时,处理也方便了很多,因为所有的load指令和store指令走的是同一条道路,回收和异常的处理都自然而然的在合适的时间进行处理。
参见图4和图5,上游检查处理简单,之前的处理是,根据检查的结果,不仅可能要不往下发送访问,还需要处理返回的异常等,而现在是所有的检查完成后,都往下发送访问,处理方式相同,只用在下游处理对应的异常,处理方式如下:在pmp权限检查中,pmp检查为物理内存保护检查,其通过一组寄存器记录处理器可以访问的内存区域,每个寄存器包含一个物理地址范围和对应的访问权限,pmp错误(当前模式下,对应地址无访问权限,访问权限:读,写,执行)到了数据高速缓冲存储器中,认为直接缓存命中,任意给一个数据,按照普通load指令和store指令处理就好,只是最后返回一个pmp错误,返回的pmp错误用于处理异常,该异常顺着访存阶段该走的流水走的,所以自然的在合适的时间处理异常,即返回了一个pmp错误后,在中断异常处理的地方得到了这个错误后,发生flush清空等操作处理异常,完成异常处理后,结果不写回;比如总线错误(访问到空洞地址等),让下游模块返回一个总线错误,最后的结果是不写回。在图4和图5中,存储空间设置在数据存储模块中,在实际应用中,存储空间还可以设置在数据存储模块之外。
在本实施例中,所述方法还包括:
在预设数据存储模块的检查类型数目为至少两种的情况下,数据访存模块接收Load指令和Store指令中的至少一种;
在对指令地址的检查类型为第一检查类型的情况下,数据访存模块在本地对指令地址进行检查,并将指令以及对指令地址的检查结果发送至数据存储模块;数据存储模块根据对指令地址的检查结果确定是否执行指令,并将执行结果发送至写回控制模块;
在对指令地址的检查类型为第二检查类型的情况下,数据访存模块向数据存储模块发送指令以及指令地址,数据存储模块接收指令以及指令地址,对指令地址进行检查,并根据对指令地址的检查结果确定是否执行指令,并将执行结果发送至写回控制模块,其中,第一检查类型组合逻辑电路为与数据访存模块连接的所有下游数据存储模块的通用性检查,第二检查类型为该检查所在下游数据存储模块的个性化检查。
在本实施例中,所述方法还包括:
在第一检查类型的检查项数大于预设阈值的情况下,将检查项数分为第一检查项集和第二检查项集;
在数据访存模块中进行第一检查项集的检查,在数据存储模块中进行第二检查项集的检查。
参见图6,如果访问区域的检查的组合逻辑电路的时序路径比较小,而pmp检查的组合逻辑电路的时序路径比较大,可以将访问区域的检查作为第一检查类型在访存模块中检查,将pmp检查作为第二检查类型在对应的数据存储模块中检查。如果不同模式下的访问区域的检查的组合逻辑电路的时序路径比较小,但超过预设时序路径阈值,将访问区域的检查的部分组合逻辑电路作为第一检查类型在访存模块中检查,将访问区域检查的余下部分组合逻辑电路和pmp检查作为第二检查类型在对应的数据存储模块中检查,其中,数据存储模块A和数据存储模块B中的第二检查类型可以相同,也可以不同,或者,数据存储模块A或数据存储模块B中没有检查及处理。
本申请的数据访存方法针对访存模块这种需要检查的模块,如果让检查以及处理集中在主流水上,难免影响其频率或时序且访存模块实现起来比较复杂,采用将部分逻辑复杂的处理过程,下放到下游进行处理,且复用原有的数据路径或者并行处理,提升主流水时序的同时,处理也简单,进一步的,将各个部分的属性检查,平均分配,不集中在某一级的主流水上,可以分配到几级主流水以及访存模块这边的各个流水上去检查,不仅进一步提升主流水的时序,还能得到一个时序较好且处理逻辑简单的设计。
在本实施例的步骤S2中,所述数据存储模块根据对指令地址的检查结果确定是否执行指令,并将执行结果发送至写回控制模块,包括:
在对指令地址的检查为指令地址的有效性检查的情况下,响应于指令地址为空洞地址,确定不执行指令,并向写回控制模块发送总线错误信息,
在对指令地址的检查为属性检查或权限检查的情况下,响应于指令地址的属性未通过属性检查或权限检查,确定不执行指令,并向写回控制模块发送物理内存保护错误信息。
在本实施例的步骤S1中,在所述对指令地址的检查为权限检查的情况下,所述对指令地址进行检查,包括:
获取数据访存模块的工作模式,并根据指令地址确定所述工作模式下指令地址的模式访问权限,其中,模式包括RISCV架构下的Machine模式、Supervisor模式和User模式,简称M模式、S模式和U模式,权限包括读、写、执行三种权限;
从指令地址中提取指令地址的区域访问权限;
根据指令地址的模式访问权限和区域访问权限,确定数据访存模块是否有权限获取指令地址对应的数据,作为对指令地址的权限检查检查结果。
在本实施例的步骤S2中,所述数据存储模块根据对指令地址的检查结果确定是否执行指令,并将执行结果发送至写回控制模块,包括:
在数据访存模块有权限访问指令地址的情况下,确定执行指令,并将完成执行的结果发送至写回控制模块。
本实施例中,所述方法还包括:
在预设指令存储模块的数量不超过预设数量的情况下,数据访存模块接收Load指令和Store指令中的至少一种,向数据存储模块发送指令地址;
数据存储模块接收指令地址,对指令地址进行检查,根据对指令地址的检查结果确定是否执行指令,并将执行结果发送至写回控制模块,其中,所述数据存储模块与数据访存模块连接。
在本实施例中,采用将检查逻辑和处理逻辑均下放到指令存储模块下游进行处理,且复用原有的数据路径或者并行处理,提升主流水时序的同时,处理也简单,进一步的,将各个部分的属性检查,在下游进行平均分配,分配到访存模块下游的各个流水上去检查,能够进一步提升主流水的时序。
在本实施例中,预设数量可以是任意一个整数。
参见图7,本申请的数据访存方法在中央处理器流水线的应用场景,将地址检查嵌入原本已有的流水级,不影响原有逻辑的同时,返回一个检查结果,从而让访存模块得到干净的检查结果,从而再进行处理,虽然在数据存储模块增加一些重复的组合逻辑检查,但由于下游数据存储模块的数量不是特别多,所以增加的面积很少,因此,不仅能够简化访存模块的处理,提升中央处理器的主频,而且不增加拍数。所以将部分检查繁杂的部分放到下游去做,保证频率提高的同时,不增加各级流水线的打拍拍数。
在本实施例中,步骤S2中,所述对指令地址进行检查,包括:
根据指令地址的有效性检查、属性检查和权限检查,确定数据访存模块是否有权限获取指令地址对应的数据,作为对指令地址的检查结果。
在本实施例中,所述确定数据访存模块是否有权限获取指令地址对应的数据,作为对指令地址的检查结果,包括:
在数据访存模块有权限获取指令地址对应的数据的情况下,确定检查结果有效;
在数据访存模块没有权限获取指令地址对应的数据的情况下,确定检查结果无效。
在本实施例中,步骤S2中,所述数据存储模块根据对指令地址的检查结果确定是否执行指令,并将执行结果发送至写回控制模块,包括:
数据存储模块接收对指令地址的检查结果,在检查结果有效的情况下,执行当前指令,并将当前指令的有效执行结果发送至写回控制模块;在检查结果无效的情况下,将空指令作为执行结果发送至写回控制模块。
应该理解的是,虽然流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
请参见图8,本申请一个实施例提供了一种数据访存装置,包括:
数据访存模块11,用于在预设数据存储模块的检查类型数目为一种的情况下,接收Load指令和Store指令中的至少一种,在本地对指令地址进行检查;在指令地址的检查结果为有效执行结果或者空指令的情况下,将指令以及对指令地址的检查结果发送至数据存储模块和写回控制模块;在指令地址的检查结果为假指令的情况下,将指令以及对指令地址的检查结果发送至数据存储模块;
数据存储模块12,用于在指令地址的检查结果为有效执行结果的情况下,根据对指令地址的检查结果确定执行指令,并将执行结果发送至写回控制模块,在指令地址的检查结果为空指令的情况下,根据对指令地址的检查结果确定不执行指令,并将不执行指令的结果发送至写回控制模块,在指令地址的检查结果为假指令的情况下,将指令以及对指令地址的检查结果擦除,其中,所述数据存储模块与数据访存模块连接;
写回控制模块13,用于对指令地址的检查结果和执行结果进行匹配,并根据匹配结果确定对指令写回,写回控制模块对指令地址的检查结果和不执行指令的结果进行匹配,并根据匹配结果确定对指令不写回。
关于上述数据访存装置的具体限定可以参见上文中对于数据访存方法的限定,在此不再赘述。上述数据访存装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备的内部结构图可以如图9所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现如上的一种数据访存方法。包括:包括存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时实现如上数据访存方法中的任一步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时可以实现如上数据访存方法中的任一步骤。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (10)
1.一种数据访存方法,其特征在于,所述方法包括:
在预设数据存储模块的检查类型数目为一种的情况下,数据访存模块接收Load指令和Store指令中的至少一种,在本地对指令地址进行检查;
在指令地址的检查结果为有效执行结果的情况下,将指令以及对指令地址的检查结果发送至数据存储模块和写回控制模块,数据存储模块根据对指令地址的检查结果确定执行指令,并将执行结果发送至写回控制模块,写回控制模块对指令地址的检查结果和执行结果进行匹配,并根据匹配结果确定对指令写回,其中,所述数据存储模块与数据访存模块连接;
在指令地址的检查结果为空指令的情况下,将指令以及对指令地址的检查结果发送至数据存储模块和写回控制模块,数据存储模块根据对指令地址的检查结果确定不执行指令,并将不执行指令的结果发送至写回控制模块,写回控制模块对指令地址的检查结果和不执行指令的结果进行匹配,并根据匹配结果确定对指令不写回;
在指令地址的检查结果为假指令的情况下,将指令以及对指令地址的检查结果发送至数据存储模块,数据存储模块将指令以及对指令地址的检查结果擦除。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在预设数据存储模块的检查类型数目为至少两种的情况下,数据访存模块接收Load指令和Store指令中的至少一种;
在对指令地址的检查类型为第一检查类型的情况下,数据访存模块在本地对指令地址进行检查,并将指令以及对指令地址的检查结果发送至数据存储模块;数据存储模块根据对指令地址的检查结果确定是否执行指令,并将执行结果发送至写回控制模块;
在对指令地址的属性的检查类型为第二检查类型的情况下,数据访存模块向数据存储模块发送指令以及指令地址,数据存储模块接收指令以及指令地址,对指令地址进行检查,并根据对指令地址的检查结果确定是否执行指令,并将执行结果发送至写回控制模块,其中,第一检查类型组合逻辑电路为与数据访存模块连接的数据存储模块的通用性检查,第二检查类型组合逻辑电路为数据存储模块的个性化检查。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
在第一检查类型的检查项数大于预设阈值的情况下,将检查项数分为第一检查项集和第二检查项集;
在数据访存模块中进行第一检查项集的检查,在数据存储模块中进行第二检查项集的属性检查。
4.根据权利要求1至3中任一项所述的方法,其特征在于,所述对指令地址的检查包括指令地址的有效性检查、属性检查和权限检查。
5.根据权利要求4所述的方法,其特征在于,所述对指令地址进行检查,包括:
根据指令地址的有效性检查、属性检查和权限检查,确定数据访存模块是否有权限获取指令地址对应的数据,作为对指令地址的检查结果。
6.根据权利要求5所述的方法,其特征在于,所述确定数据访存模块是否有权限获取指令地址对应的数据,作为对指令地址的检查结果,包括:
在数据访存模块有权限获取指令地址对应的数据的情况下,确定检查结果有效;
在数据访存模块没有权限获取指令地址对应的数据的情况下,确定检查结果无效。
7.根据权利要求6所述的方法,其特征在于,所述数据存储模块根据对指令地址的检查结果确定是否执行指令,并将执行结果发送至写回控制模块,包括:
数据存储模块接收对指令地址的检查结果,在检查结果有效的情况下,执行当前指令,并将当前指令的有效执行结果发送至写回控制模块;在检查结果无效的情况下,将空指令作为执行结果发送至写回控制模块。
8.一种数据访存装置,其特征在于,包括:
数据访存模块,用于在预设数据存储模块的检查类型数目为一种的情况下,接收Load指令和Store指令中的至少一种,在本地对指令地址进行检查;在指令地址的检查结果为有效执行结果或者空指令的情况下,将指令以及对指令地址的检查结果发送至数据存储模块和写回控制模块;在指令地址的检查结果为假指令的情况下,将指令以及对指令地址的检查结果发送至数据存储模块;
数据存储模块,用于在指令地址的检查结果为有效执行结果的情况下,根据对指令地址的检查结果确定执行指令,并将执行结果发送至写回控制模块,在指令地址的检查结果为空指令的情况下,根据对指令地址的检查结果确定不执行指令,并将不执行指令的结果发送至写回控制模块,在指令地址的检查结果为假指令的情况下,将指令以及对指令地址的检查结果擦除,其中,所述数据存储模块与数据访存模块连接;
写回控制模块,用于对指令地址的检查结果和执行结果进行匹配,并根据匹配结果确定对指令写回,写回控制模块对指令地址的检查结果和不执行指令的结果进行匹配,并根据匹配结果确定对指令不写回。
9.一种计算机设备,包括:包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述数据访存方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述数据访存方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410302665.1A CN117891509A (zh) | 2024-03-18 | 2024-03-18 | 数据访存方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410302665.1A CN117891509A (zh) | 2024-03-18 | 2024-03-18 | 数据访存方法、装置、计算机设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117891509A true CN117891509A (zh) | 2024-04-16 |
Family
ID=90647733
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410302665.1A Pending CN117891509A (zh) | 2024-03-18 | 2024-03-18 | 数据访存方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117891509A (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0264815A (ja) * | 1988-08-31 | 1990-03-05 | Fujitsu Ltd | ディスクキャッシュ制御方式 |
US5828860A (en) * | 1992-10-16 | 1998-10-27 | Fujitsu Limited | Data processing device equipped with cache memory and a storage unit for storing data between a main storage or CPU cache memory |
JP2000311080A (ja) * | 1999-04-28 | 2000-11-07 | Toshiba Corp | コンピュータシステムおよびその動作環境切り替え方法 |
CN108140011A (zh) * | 2015-10-14 | 2018-06-08 | Arm有限公司 | 向量加载指令 |
US20190114172A1 (en) * | 2016-04-26 | 2019-04-18 | Arm Limited | An apparatus and method for managing address collisions when performing vector operations |
CN115640047A (zh) * | 2022-09-08 | 2023-01-24 | 海光信息技术股份有限公司 | 指令操作方法及装置、电子装置及存储介质 |
CN115879174A (zh) * | 2022-12-28 | 2023-03-31 | 北京奕斯伟计算技术股份有限公司 | 访存指令的处理方法、处理装置和数据处理设备 |
WO2023104146A1 (zh) * | 2021-12-10 | 2023-06-15 | 龙芯中科技术股份有限公司 | 原子性保持方法、处理器及电子设备 |
-
2024
- 2024-03-18 CN CN202410302665.1A patent/CN117891509A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0264815A (ja) * | 1988-08-31 | 1990-03-05 | Fujitsu Ltd | ディスクキャッシュ制御方式 |
US5828860A (en) * | 1992-10-16 | 1998-10-27 | Fujitsu Limited | Data processing device equipped with cache memory and a storage unit for storing data between a main storage or CPU cache memory |
JP2000311080A (ja) * | 1999-04-28 | 2000-11-07 | Toshiba Corp | コンピュータシステムおよびその動作環境切り替え方法 |
CN108140011A (zh) * | 2015-10-14 | 2018-06-08 | Arm有限公司 | 向量加载指令 |
US20190114172A1 (en) * | 2016-04-26 | 2019-04-18 | Arm Limited | An apparatus and method for managing address collisions when performing vector operations |
WO2023104146A1 (zh) * | 2021-12-10 | 2023-06-15 | 龙芯中科技术股份有限公司 | 原子性保持方法、处理器及电子设备 |
CN115640047A (zh) * | 2022-09-08 | 2023-01-24 | 海光信息技术股份有限公司 | 指令操作方法及装置、电子装置及存储介质 |
CN115879174A (zh) * | 2022-12-28 | 2023-03-31 | 北京奕斯伟计算技术股份有限公司 | 访存指令的处理方法、处理装置和数据处理设备 |
Non-Patent Citations (1)
Title |
---|
万律, 李飞鸣, 陈进: "微处理器复杂流水线管理量化方法", 小型微型计算机系统, no. 08, 21 August 2004 (2004-08-21), pages 1517 - 1521 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9323600B2 (en) | Systems and methods for retiring and unretiring cache lines | |
US6658554B1 (en) | Electronic processor providing direct data transfer between linked data consuming instructions | |
US20080077782A1 (en) | Restoring a register renaming table within a processor following an exception | |
US8621336B2 (en) | Error correction in a set associative storage device | |
KR20200106042A (ko) | 추론적 캐시 기억영역 | |
US8296518B2 (en) | Arithmetic processing apparatus and method | |
JPH0552968B2 (zh) | ||
US5987585A (en) | One-chip microprocessor with error detection on the chip | |
US20130318530A1 (en) | Deadlock/livelock resolution using service processor | |
US7454666B1 (en) | Real-time address trace generation | |
US6795937B2 (en) | Multiple traps after faulty access to a resource | |
US11113164B2 (en) | Handling errors in buffers | |
US11221951B1 (en) | Skipping tag check for tag-checked load operation | |
US20070226418A1 (en) | Processor and method for controlling processor | |
CN110781499B (zh) | 防止乱序机器中归因于误推测的信息泄露 | |
US20070226471A1 (en) | Data processing apparatus | |
US8645762B2 (en) | Queue freeze on protocol error | |
US20070156978A1 (en) | Steering system management code region accesses | |
US20080114971A1 (en) | Branch history table for debug | |
CN117891509A (zh) | 数据访存方法、装置、计算机设备和存储介质 | |
US7487421B2 (en) | Emulation cache access for tag view reads | |
KR20200123799A (ko) | 디바이스를 디버깅할 때 메타데이터에 액세스하기 위한 장치 및 방법 | |
US8645670B2 (en) | Specialized store queue and buffer design for silent store implementation | |
US8090991B2 (en) | Information processing apparatus, method, and computer program product for self-diagnosis for utilizing multiple diagnostic devices, each having exclusive access to a resource | |
US10140476B2 (en) | Tracing processing activity |
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 |