CN109213698B - Vivt缓存访问方法、仲裁单元及处理器 - Google Patents
Vivt缓存访问方法、仲裁单元及处理器 Download PDFInfo
- Publication number
- CN109213698B CN109213698B CN201810968516.3A CN201810968516A CN109213698B CN 109213698 B CN109213698 B CN 109213698B CN 201810968516 A CN201810968516 A CN 201810968516A CN 109213698 B CN109213698 B CN 109213698B
- Authority
- CN
- China
- Prior art keywords
- preset
- cache
- access command
- vivt
- miss
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/109—Address translation for multiple virtual address spaces, e.g. segmentation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0877—Cache access modes
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本公开公开了一种VIVT缓存访问方法、仲裁单元及处理器。该方法包括:接收VIVT缓存访问命令;判断VIVT缓存访问命令是否满足预设条件,所述预设条件包括:所述VIVT缓存访问命令指示同时发生高速缓冲存储器未命中和旁路转换缓冲区未命中的概率高于第一预设阈值;如果所述VIVT缓存访问命令满足预设条件,则同时访问高速缓冲存储器和旁路转换缓冲区;如果所述VIVT缓存访问命令不满足预设条件,只访问高速缓冲存储器。该方法通过并行访问的方式,使得可以同时访问高速缓冲存储器和旁路转换缓冲区,减少了处理器的处理延时并提高了处理器的性能。
Description
技术领域
本公开涉及缓存访问领域,更具体地,本公开涉及一种VIVT缓存访问方法、仲裁单元及处理器。
背景技术
处理器中缓存的组织方式通常有以下几种:(1)VIVT(Virtual Index VirtualTag,虚拟索引虚拟标签),在该结构中是用虚拟地址的低位部分进行高速缓冲存储器索引,找到对应的高速缓冲存储器集(Cache Set)后用虚拟地址的高位部分进行比对,如果标签比对相同,则表示高速缓冲存储器命中,否则表示高速缓冲存储器未命中;(2)VIPT(Virtual Index Physical Tag,虚拟索引物理标签):在该结构中是用虚拟地址的低位部分进行高速缓冲存储器索引,找到对应高速缓冲存储器集(Cache Set)后用虚拟地址对应物理地址的高位部分进行比对,如果标签比对相同,则表示高速缓冲存储器命中,否则表示高速缓冲存储器未命中;(3)PIPT:(Physical Index Physical Tag,物理索引物理标签):在该结构中是用虚拟地址对应物理地址的低位部分进行高速缓冲存储器索引,找到的高速缓冲存储器集(Cache Set)后用虚拟地址对应物理地址的高位部分进行比对,如果标签比对相同,则表示高速缓冲存储器命中,否则表示高速缓冲存储器未命中。
其中,VIVT不需经过旁路转换缓冲区的翻译,访问高速缓冲存储器速度比VIPT/PIPT快。因此,目前有很多学者在对VIVT缓存访问的方法进行研究。
发明内容
有鉴于上述情况,本公开提供了一种VIVT缓存访问方法、仲裁单元及处理器。
第一方面,根据本公开的实施例,提供了一种VIVT缓存访问方法,包括:接收VIVT缓存访问命令;判断VIVT缓存访问命令是否满足预设条件,所述预设条件包括:所述VIVT缓存访问命令指示同时发生高速缓冲存储器未命中和旁路转换缓冲区未命中的概率高于第一预设阈值;如果所述VIVT缓存访问命令满足预设条件,则同时访问高速缓冲存储器和旁路转换缓冲区;如果所述VIVT缓存访问命令不满足预设条件,只访问高速缓冲存储器。
此外,根据本公开的实施例的VIVT缓存访问方法,其中,所述VIVT缓存访问命令包括以下中的至少一个:虚拟地址、指令、预设参数。
此外,根据本公开的实施例的VIVT缓存访问方法,其中,若所述VIVT缓存访问命令为虚拟地址,所述判断VIVT缓存访问命令是否满足预设条件,包括:判断所述虚拟地址所处的位置是否处于第一区域,其中,所述第一区域对应同时发生高速缓冲存储器未命中和旁路转换缓冲区未命中的概率高于第一预设阈值的区域;如果所述虚拟地址处于第一区域,则同时访问高速缓冲存储器和旁路转换缓冲区;如果所述虚拟地址不处于第一区域,则只访问高速缓冲存储器。
此外,根据本公开的实施例的VIVT缓存访问方法,其中,若所述VIVT缓存访问命令为指令,所述判断VIVT缓存访问命令是否满足预设条件,包括:判断所述指令的类型是否为预设指令类型,其中,所述预设指令类型指示同时发生高速缓冲存储器未命中和旁路转换缓冲区未命中的概率高于第一预设阈值;如果所述指令的类型为预设指令类型,则同时访问高速缓冲存储器和旁路转换缓冲区;如果所述指令的类型不为预设指令类型,则只访问高速缓冲存储器。
此外,根据本公开的实施例的VIVT缓存访问方法,其中,预设指令类型包括以下中的至少一个:间接跳转类指令、系统控制类指令、高速缓冲存储器管理类指令、或屏障类指令。
此外,根据本公开的实施例的VIVT缓存访问方法,其中,若所述VIVT缓存访问命令为预设参数,所述判断VIVT缓存访问命令是否满足预设条件,包括:判断所述预设参数是否满足预设条件,其中所述预设条件包括:所述预设参数指示同时发生高速缓冲存储器未命中和旁路转换缓冲区未命中的概率高于第一预设阈值;如果所述预设参数满足预设条件,则同时访问高速缓冲存储器和旁路转换缓冲区;如果所述预设参数不满足预设条件,则只访问高速缓冲存储器。
此外,根据本公开的实施例的VIVT缓存访问方法,其中,所述预设参数包括以下中的至少一个:在一定时间段内的分支目标缓冲器更新的频率或替换的个数、在一定时间段内的高速缓冲存储器未命中率或未命中的次数、在一定时间段内的旁路转换缓冲区未命中率或未命中的次数、在一定时间段内发生的用户中断次数、在一定时间段内发生的流水线排空次数、以及在一定时间段内分支指令执行个数。
此外,根据本公开的实施例的VIVT缓存访问方法,其中,若所述预设参数为在一定时间段内的分支目标缓冲器更新的频率或替换的个数,所述判断所述预设参数是否满足预设条件,包括:判断在一定时间段内的所述分支目标缓冲器更新的频率是否大于第二预设阈值或在一定时间段内的所述分支目标缓冲器替换条目的个数是否大于第三预设阈值;或者若所述预设参数为在一定时间段内的高速缓冲存储器未命中率或未命中的次数,所述判断所述预设参数是否满足预设条件,包括:判断在一定时间段内的所述高速缓冲存储器未命中率是否大于第四预设阈值或在一定时间段内的所述高速缓冲存储器未命中的次数是否大于第五预设阈值;或者若所述预设参数为在一定时间段内的旁路转换缓冲区未命中率或未命中的次数,所述判断所述预设参数是否满足预设条件,包括:判断在一定时间段内的所述旁路转换缓冲区未命中率是否大于第六预设阈值或在一定时间段内的所述旁路转换缓冲区未命中的次数是否大于第七预设阈值;或者,若所述预设参数为在一定时间段内发生的用户中断次数,所述判断所述预设参数是否满足预设条件,包括:判断在一定时间段内发生的用户中断次数是否大于第八预设阈值;或者,若所述预设参数为在一定时间段内发生的流水线排空次数,所述判断所述预设参数是否满足预设条件,包括:判断在一定时间段内发生的流水线排空次数是否大于第九预设阈值;或者,若所述预设参数为在一定时间段内分支指令执行个数,所述判断所述预设参数是否满足预设条件,包括:判断在一定时间段内分支指令执行个数是否大于第十预设阈值。
此外,根据本公开的实施例的VIVT缓存访问方法,其中,所述高速缓冲存储器包括指令高速缓冲存储器和数据高速缓冲存储器;以及,其中所述旁路转换缓冲区包括指令旁路转换缓冲区和数据旁路转换缓冲区。
第二方面,根据本公开的实施例,提供了一种仲裁单元,被配置为:接收VIVT缓存访问命令;判断VIVT缓存访问命令是否满足预设条件,所述预设条件包括:所述VIVT缓存访问命令指示同时发生高速缓冲存储器未命中和旁路转换缓冲区未命中的概率高于第一预设阈值;如果所述VIVT缓存访问命令满足预设条件,则同时访问高速缓冲存储器和旁路转换缓冲区;如果所述VIVT缓存访问命令不满足预设条件,只访问高速缓冲存储器。
第三方面,根据本公开的实施例,提供了一种处理器,包括:高速缓冲存储器;旁路转换缓冲区;仲裁单元,分别耦合到高速缓冲存储器和旁路转换缓冲区,被配置为;接收VIVT缓存访问命令;判断VIVT缓存访问命令是否满足预设条件,所述预设条件包括:所述VIVT缓存访问命令指示同时发生高速缓冲存储器未命中和旁路转换缓冲区未命中的概率高于第一预设阈值;如果所述VIVT缓存访问命令满足预设条件,则同时访问高速缓冲存储器和旁路转换缓冲区;如果所述VIVT缓存访问命令不满足预设条件,只访问高速缓冲存储器。
根据本公开实施例的VIVT缓存访问方法、仲裁单元及处理器,通过判断VIVT缓存访问命令是否满足预设条件,如果所述VIVT缓存访问命令满足预设条件,则同时访问高速缓冲存储器和旁路转换缓冲区,如果所述VIVT缓存访问命令不满足预设条件,只访问高速缓冲存储器,通过这种并行访问的方式,使得可以同时访问高速缓冲存储器和旁路转换缓冲区,减少了处理器的处理延时,提高了处理器的性能。
要理解的是,前面的一般描述和下面的详细描述两者都是示例性的,并且意图在于提供要求保护的技术的进一步说明。
附图说明
为了更清楚地说明本公开实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本公开的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1A示出现有的一种处理器100的结构框图;
图1B和图1C分别示出根据本公开实施例的一种处理器100的结构框图;
图2是示出根据本公开实施例的VIVT缓存访问方法的流程图;
图3是示出根据本公开实施例的VIVT缓存访问方法的一部分流程图;
图4是示出根据本公开实施例的VIVT缓存访问方法的另一部分流程图;
图5示出了各类程序发生高速缓冲存储器未命中和旁路转换缓冲区未命中的MPKI(Misses per Kilo-Instructions,每千条指令缺失数)值;
图6是示出根据本公开实施例的VIVT缓存访问方法的又一部分流程图。
具体实施方式
下面将结合本公开实施例中附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本公开实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本公开的实施例的详细描述并非旨在限制要求保护的本公开的范围,而是仅仅表示本公开的选定实施例。基于本公开的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本公开的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
请参与图1A,图1A示出了现有的一种处理器100的结构框图。如图1A所示,该处理器100包括指令获取单元101、指令译码单元102、指令执行单元103、访存取数单元104、结果写回单元105、高速缓冲存储器110和旁路转换缓冲器120。
其中,指令获取单元101、指令译码单元102、指令执行单元103、访存取数单元104、结果写回单元105分别为与处理器的流水线过程中的指令获取阶段、指令译码阶段、指令执行阶段、指令取数阶段、结果写回阶段相对应的硬件结构。
该指令获取单元101是用于实现在取指令阶段将一条指令从主存中取到指令寄存器的单元。
该指令译码单元102是用于实现在指令译码阶段,按照预定的指令格式,对取回的指令进行拆分和解释,识别区分出不同的指令类别以及各种获取操作数的单元。
该指令执行单元103是用于完成指令所规定的各种操作,具体实现指令的功能的单元。
该访存取数单元104是用于根据指令地址码,得到操作数在主存中的地址,并从主存中读取该操作数用于运算的单元。
该结果写回单元105是用于段把执行指令阶段的运行结果数据“写回”到某种存储形式:结果数据经常被写到处理器的内部寄存器中,以便被后续的指令快速地存取的单元。
各个单元具体实施方式有多种,此处不赘述。
高速缓冲存储器110可以包括指令高速缓冲存储器和数据高速缓冲存储器。
旁路转换缓冲器120可以包括指令旁路转换缓冲区和数据旁路转换缓冲区。
发明人发现在现有技术中,对于现有VIVT缓存的访问,如果虚拟地址VA在高速缓冲存储器110命中,那么不需要进行旁路转换缓冲区120的访问,直接返回与虚拟地址VA相对应的指令;如果高速缓冲存储器110未命中,那么就要进行旁路转换缓冲区120的访问进而获取相应物理地址,以此访问下一级缓存(主储存器130);但是如果旁路转换缓冲区120也未命中,在访问下一级缓存(主储存器130)之前需要先处理旁路转换缓冲区120的未命中的问题。可见,对于同时发生高速缓冲存储器110未命中和旁路转换缓冲区120未命中的指令,如果按照VIVT指令缓存的现有设计,是串行处理的,这会导致处理器处理的时间增大。
基于此,本公开提出了一种VIVT缓存访问方法、仲裁单元及处理器,对此进行改进。
参见图1B和图1C,图1B和图1C分别示出了根据本公开实施例的一种处理器100的结构框图。处理器100可以包括指令获取单元101、指令译码单元102、指令执行单元103、访存取数单元104、结果写回单元105、高速缓冲存储器110、旁路转换缓冲器120、以及仲裁单元140。
指令获取单元101、指令译码单元102、指令执行单元103、访存取数单元104、结果写回单元105、高速缓冲存储器110、旁路转换缓冲器120与图1A中所描述的各个单元相同或相似,此处不再赘述。
作为一种实施方式,仲裁单元140可以是一个单独的硬件模块,如图1B所示,该仲裁单元140作为一个单独的硬件模块分别与指令获取单元101、高速缓冲存储器及旁路转换缓冲器120连接,从而实现通信。
作为另一种实施方式,仲裁单元140也可以不是一个单独的硬件模块,如图1C所示,该仲裁单元140可以被集成到高速缓冲存储器110中,并且能分别与指令获取单元101、高速缓冲存储器及旁路转换缓冲器120进行通信。
作为又一种实施方式,仲裁单元140还可以是软件模块,其运行于处理器100中,具体地,可以运行于高速缓冲存储器110中。
本发明实施例提供的VIVT缓存访问方法可以运行于图1B或图1C所示的仲裁单元140中。作为一种实施方式,如图1C所示,仲裁单元140从指令获取单元101获取到虚拟地址VA,判断虚拟地址VA是否满足预设条件,如果所述虚拟地址VA满足预设条件,则同时访问高速缓冲存储器和旁路转换缓冲区,若高速缓冲存储器命中,则直接返回与虚拟地址VA相对应的指令,若同时发生高速缓冲存储器110未命中和旁路转换缓冲区120未命中,则先处理处理旁路转换缓冲区120的未命中的问题,并获取相应的物理地址,以此访问下一级缓存(主储存器130);如果所述虚拟地址VA不满足预设条件,只访问高速缓冲存储器,通过这种并行访问的方式,使得可以同时访问高速缓冲存储器和旁路转换缓冲区,减少了处理器的处理延时,提高了处理器的性能。
可以理解,图1B和图1C所示的结构仅为示意,处理器100还可包括比图1B和图1C中所示更多或者更少的组件,或者具有与图1B和图1C所示不同的配置。图1B和图1C中所示的各组件可以采用硬件、软件或其组合实现。
下面将结合附图对本公开实施例中的VIVT缓存访问方法进行更详细的描述。
图2示出了根据本公开实施例的VIVT缓存访问方法的流程图,请参阅图2,本实施例描述的是仲裁单元的处理流程,该方法包括:
步骤S210,接收VIVT缓存访问命令。
其中,仲裁单元接收到的VIVT缓存访问命令可以包括以下中的至少一个:虚拟地址、指令、预设参数。
具体地,若如图1C所示,仲裁单元被集成到高速缓冲存储器中,则仲裁单元接收到的VIVT缓存访问命令可以包括虚拟地址、指令、预设参数中的任一个;若如图1B所示,仲裁单元作为一个单独的模块与高速缓冲存储器连接,则仲裁单元接收到的VIVT缓存访问命令可以包括指令、预设参数中的任一个。
步骤S220,判断VIVT缓存访问命令是否满足预设条件。
其中,该预设条件可以包括:所述VIVT缓存访问命令指示同时发生高速缓冲存储器未命中和旁路转换缓冲区未命中的概率高于第一预设阈值。
如果所述VIVT缓存访问命令满足预设条件,则进入步骤S230;如果所述VIVT缓存访问命令不满足预设条件,则进入步骤S240。
步骤S230,同时访问高速缓冲存储器和旁路转换缓冲区。
其中,所述高速缓冲存储器包括指令高速缓冲存储器和数据高速缓冲存储器;所述旁路转换缓冲区包括指令旁路转换缓冲区和数据旁路转换缓冲区。
步骤S240,只访问高速缓冲存储器。
通过上述并行访问的方式,使得可以同时访问高速缓冲存储器和旁路转换缓冲区,减少了处理器的处理延时,提高了处理器的性能,例如处理器的IPC(Instruction perClock,CPU每一时钟周期内所执行的指令数)性能。
作为步骤S220至步骤S240的一种具体实施方式,请参阅图3,若仲裁单元接收到的VIVT缓存访问命令为虚拟地址,步骤S220至步骤S240可以包括:
步骤S310,判断所述虚拟地址所处的位置是否处于第一区域。
其中,该第一区域可以预先划分,并且该第一区域对应同时发生高速缓冲存储器未命中和旁路转换缓冲区未命中的概率高于第一预设阈值的区域。进一步的,该第一预设阈值可以根据经验预先进行设置。该第一区域的长度也可以根据经验预先进行设置。
如果所述虚拟地址处于第一区域,则进入步骤S320;如果所述虚拟地址不处于第一区域,则进入步骤S330。
步骤S320,同时访问高速缓冲存储器和旁路转换缓冲区。
步骤S330,只访问高速缓冲存储器。
通过上述方式,使得通过虚拟地址的判断就能够实现同时访问高速缓冲存储器和旁路转换缓冲区,减少了处理器的处理延时,提高了处理器的性能,例如处理器的IPC(Instruction per Clock,CPU每一时钟周期内所执行的指令数)性能,并且无需额外的处理,使得该方法的实施变得简单。
作为步骤S220的另一种具体实施方式,请参阅图4,若仲裁单元接收到的VIVT缓存访问命令为指令,步骤S220可以包括:
步骤S410,判断所述指令的类型是否为预设指令类型。
其中,所述预设指令类型指示同时发生高速缓冲存储器未命中和旁路转换缓冲区未命中的概率高于第一预设阈值。
请参阅图5,图5示出了各类程序发生高速缓冲存储器未命中和旁路转换缓冲区未命中的MPKI值。作为一种示例,从图5中,可以看出,数据服务(Data Servering)程序/网络服务(Web Servering)程序/媒体服务(Media Streaming)程序等这些类型的程序跟用户行为密切相关,由于用户行为比较随机,这类的程序会因为用户点击网页位置的随机导致其跳转目标地址比较随机,即对于数据服务(Data Servering)程序/网络服务(WebServering)程序/媒体服务(Media Streaming)程序等这些类型的程序通常会产生较多的间接跳转类指令,进而导致该类程序同时发生高速缓冲存储器未命中和旁路转换缓冲区未命中的可能性较高。也就是说,仲裁单元可以根据接收到的指令的类型是否为预设指令类型(例如,间接跳转类指令)来判断同时发生高速缓冲存储器未命中和旁路转换缓冲区未命中的可能性。
当然,上述间接跳转类指令只是预设指令的一种实施方式,预设指令还可以是其它类型的指令,例如,间接跳转类指令、系统控制类指令、高速缓冲存储器管理类指令、或屏障(barrier)类指令等。但是,并不局限于此,任何指示同时发生高速缓冲存储器未命中和旁路转换缓冲区未命中的概率高于第一预设阈值的指令都属于本发明保护的范围。
请继续参阅图4,如果所述指令的类型为预设指令类型,则进入步骤S420;如果所述指令的类型不为预设指令类型,则进入步骤S430。
步骤S420,同时访问高速缓冲存储器和旁路转换缓冲区。
步骤S430,只访问高速缓冲存储器。
进一步的,如果所述VIVT缓存访问命令满足预设条件,则同时访问高速缓冲存储器和旁路转换缓冲区,此时相当于使能仲裁单元,如果所述VIVT缓存访问命令不满足预设条件,则只访问高速缓冲存储器,此时相当于关闭仲裁单元。
对于仲裁单元的使能/关闭的方式可以通过两种方式来实现。一种方式是硬件自动执行的仲裁单元的使能/关闭。另一种是软件控制的仲裁单元的使能/关闭,对于软件控制的仲裁单元的使能/关闭又进一步的划分为两种实施方式:(1)可以通过硬件提供软件接口,通过控制指令来控制使能/关闭。(2)软件编程人员在编写某段程序时,通过程序本身特性、编程经验等预测,某段程序中同时发生高速缓冲存储器未命中和旁路转换缓冲区未命中的可能性较高,则在该段程序前面插入控制指令,通过控制指令来控制使能,以使同时访问高速缓冲存储器和旁路转换缓冲区。
其中,程序本身特性是指,由于具体程序要完成的任务不同,导致其表现出的微体系结构行为特征(例如高速缓冲存储器未命中/旁路转换缓冲区未命中等)不同。据此,如果要编写一个网页后端服务(Web Servering类)程序,可以在程序中添加编译器优化命令,指导编译器添加一些hint指令(前提是要修改编译器支持此类操作),在执行该程序时,启用仲裁单元。
通过上述方式,使得通过判断指令是否为预设指令就能够实现同时访问高速缓冲存储器和旁路转换缓冲区,减少了处理器的处理延时,提高了处理器的性能,例如处理器的IPC(Instruction per Clock,CPU每一时钟周期内所执行的指令数)性能,并且实施方式多样,可以是硬件方式也可以是软件方式。
作为步骤S220的又一种实施方式,请参阅图6,若仲裁单元接收到的VIVT缓存访问命令为预设参数,步骤S220可以包括:
步骤S510,判断所述预设参数是否满足预设条件。
其中,该预设条件可以包括:所述预设参数指示同时发生高速缓冲存储器未命中和旁路转换缓冲区未命中的概率高于第一预设阈值。
具体地,该预设参数可以包括以下中的至少一个:在一定时间段内的分支目标缓冲器更新的频率或替换的个数、在一定时间段内的高速缓冲存储器未命中率或未命中的次数、在一定时间段内的旁路转换缓冲区未命中率或未命中的次数、在一定时间段内发生的用户中断次数、在一定时间段内发生的流水线排空(Flush)次数、以及在一定时间段内分支指令执行个数。当然,预设参数并不局限于此,任何指示同时发生高速缓冲存储器未命中和旁路转换缓冲区未命中的概率高于第一预设阈值的参数都属于本发明的保护范围之内。
进一步的,若所述预设参数为在一定时间段内的分支目标缓冲器更新的频率或替换的个数,所述判断所述预设参数是否满足预设条件,包括:判断在一定时间段内的所述分支目标缓冲器更新的频率是否大于第二预设阈值或在一定时间段内的所述分支目标缓冲器替换条目的个数是否大于第三预设阈值。若判断结果为是,则所述预设参数满足预设条件;若判断结果为否,则所述预设参数不满足预设条件。
或者,若所述预设参数为在一定时间段内的高速缓冲存储器未命中率或未命中的次数,所述判断所述预设参数是否满足预设条件,包括:判断在一定时间段内的所述高速缓冲存储器未命中率是否大于第四预设阈值或在一定时间段内的所述高速缓冲存储器未命中的次数是否大于第五预设阈值。若判断结果为是,则所述预设参数满足预设条件;若判断结果为否,则所述预设参数不满足预设条件。
或者,若所述预设参数为在一定时间段内的旁路转换缓冲区未命中率或未命中的次数,所述判断所述预设参数是否满足预设条件,包括:判断在一定时间段内的所述旁路转换缓冲区未命中率是否大于第六预设阈值或在一定时间段内的所述旁路转换缓冲区未命中的次数是否大于第七预设阈值。若判断结果为是,则所述预设参数满足预设条件;若判断结果为否,则所述预设参数不满足预设条件。
或者,若所述预设参数为在一定时间段内发生的用户中断次数,所述判断所述预设参数是否满足预设条件,包括:判断在一定时间段内发生的用户中断次数是否大于第八预设阈值。若判断结果为是,则所述预设参数满足预设条件;若判断结果为否,则所述预设参数不满足预设条件。
或者,若所述预设参数为在一定时间段内发生的流水线排空(Flush)次数,所述判断所述预设参数是否满足预设条件,包括:判断在一定时间段内发生的流水线排空(Flush)次数是否大于第九预设阈值。若判断结果为是,则所述预设参数满足预设条件;若判断结果为否,则所述预设参数不满足预设条件。
或者,若所述预设参数为在一定时间段内分支指令执行个数,所述判断所述预设参数是否满足预设条件,包括:判断在一定时间段内分支指令执行个数是否大于第十预设阈值。若判断结果为是,则所述预设参数满足预设条件;若判断结果为否,则所述预设参数不满足预设条件。
请继续参阅图6,如果所述预设参数满足预设条件,则进入步骤S520;如果所述预设参数不满足预设条件,则步骤S530。
步骤S520,同时访问高速缓冲存储器和旁路转换缓冲区。
步骤S530,只访问高速缓冲存储器。
通过上述方式,使得通过判断预设参数是否满足预设条件就能够实现同时访问高速缓冲存储器和旁路转换缓冲区,减少了处理器的处理延时,提高了处理器的性能,例如处理器的IPC(Instruction per Clock,CPU每一时钟周期内所执行的指令数)性能,并且预设参数的种类繁多,获取方便,使得实施方式更加多样。
根据本公开实施例的VIVT缓存访问方法,通过判断VIVT缓存访问命令是否满足预设条件,如果所述VIVT缓存访问命令满足预设条件,则同时访问高速缓冲存储器和旁路转换缓冲区,如果所述VIVT缓存访问命令不满足预设条件,只访问高速缓冲存储器,通过这种并行访问的方式,使得可以同时访问高速缓冲存储器和旁路转换缓冲区,减少了处理器的处理延时,提高了处理器的性能。
另外,根据本公开的实施例,提供了一种仲裁单元,被配置为:接收VIVT缓存访问命令;判断VIVT缓存访问命令是否满足预设条件,所述预设条件包括:所述VIVT缓存访问命令指示同时发生高速缓冲存储器未命中和旁路转换缓冲区未命中的概率高于第一预设阈值;如果所述VIVT缓存访问命令满足预设条件,则同时访问高速缓冲存储器和旁路转换缓冲区;如果所述VIVT缓存访问命令不满足预设条件,只访问高速缓冲存储器。
根据本公开实施例的仲裁单元,通过判断VIVT缓存访问命令是否满足预设条件,如果所述VIVT缓存访问命令满足预设条件,则同时访问高速缓冲存储器和旁路转换缓冲区,如果所述VIVT缓存访问命令不满足预设条件,只访问高速缓冲存储器,通过这种并行访问的方式,使得可以同时访问高速缓冲存储器和旁路转换缓冲区,减少了处理器的处理延时,提高了处理器的性能。
另外,根据本公开的实施例,提供了一种处理器,包括:高速缓冲存储器;旁路转换缓冲区;仲裁单元,分别耦合到高速缓冲存储器和旁路转换缓冲区,被配置为;接收VIVT缓存访问命令;判断VIVT缓存访问命令是否满足预设条件,所述预设条件包括:所述VIVT缓存访问命令指示同时发生高速缓冲存储器未命中和旁路转换缓冲区未命中的概率高于第一预设阈值;如果所述VIVT缓存访问命令满足预设条件,则同时访问高速缓冲存储器和旁路转换缓冲区;如果所述VIVT缓存访问命令不满足预设条件,只访问高速缓冲存储器。
作为一种实施方式,该处理器可以为CPU(Central Processing Unit,中央处理器),但是并不局限于此。例如,处理器还可以为GPU(graphics processing unit,图形处理器),GPGPU(General Purpose GPU,通用计算图形处理器)等等。
根据本公开实施例的处理器通过判断VIVT缓存访问命令是否满足预设条件,如果所述VIVT缓存访问命令满足预设条件,则同时访问高速缓冲存储器和旁路转换缓冲区,如果所述VIVT缓存访问命令不满足预设条件,只访问高速缓冲存储器,通过这种并行访问的方式,使得可以同时访问高速缓冲存储器和旁路转换缓冲区,减少了处理器的处理延时,提高了处理器的性能。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本公开实施例所提供的仲裁单元和处理器,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,仲裁单元和处理器的实施例部分未提及之处,可参考前述方法实施例中相应内容。
在本申请所提供的几个实施例中,应该理解到,所揭露的仲裁单元和处理器和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本公开的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,该模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本公开各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本公开各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。需要说明的是,在本文中,诸如第一和第三等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅为本公开的优选实施例而已,并不用于限制本公开,对于本领域的技术人员来说,本公开可以有各种更改和变化。凡在本公开的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
以上所述,仅为本公开的具体实施方式,但本公开的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应以所附权利要求及其等同物的保护范围为准。
Claims (11)
1.一种VIVT缓存访问方法,包括:
接收VIVT缓存访问命令;
判断VIVT缓存访问命令是否满足预设条件,所述预设条件包括:所述VIVT缓存访问命令指示同时发生高速缓冲存储器未命中和旁路转换缓冲区未命中的概率高于第一预设阈值;
如果所述VIVT缓存访问命令满足预设条件,则同时访问高速缓冲存储器和旁路转换缓冲区;
如果所述VIVT缓存访问命令不满足预设条件,只访问高速缓冲存储器。
2.根据权利要求1所述的方法,其中,所述VIVT缓存访问命令包括以下中的至少一个:虚拟地址、指令、预设参数。
3.根据权利要求2所述的方法,其中,若所述VIVT缓存访问命令为虚拟地址,所述判断VIVT缓存访问命令是否满足预设条件,包括:
判断所述虚拟地址所处的位置是否处于第一区域,其中,所述第一区域对应同时发生高速缓冲存储器未命中和旁路转换缓冲区未命中的概率高于第一预设阈值的区域;
如果所述虚拟地址处于第一区域,则同时访问高速缓冲存储器和旁路转换缓冲区;
如果所述虚拟地址不处于第一区域,则只访问高速缓冲存储器。
4.根据权利要求2所述的方法,其中,若所述VIVT缓存访问命令为指令,所述判断VIVT缓存访问命令是否满足预设条件,包括:
判断所述指令的类型是否为预设指令类型,其中,所述预设指令类型指示同时发生高速缓冲存储器未命中和旁路转换缓冲区未命中的概率高于第一预设阈值;
如果所述指令的类型为预设指令类型,则同时访问高速缓冲存储器和旁路转换缓冲区;
如果所述指令的类型不为预设指令类型,则只访问高速缓冲存储器。
5.根据权利要求4所述的方法,其中,预设指令类型包括以下中的至少一个:间接跳转类指令、系统控制类指令、高速缓冲存储器管理类指令、或屏障类指令。
6.根据权利要求2所述的方法,其中,若所述VIVT缓存访问命令为预设参数,所述判断VIVT缓存访问命令是否满足预设条件,包括:
判断所述预设参数是否满足预设条件,其中所述预设条件包括:所述预设参数指示同时发生高速缓冲存储器未命中和旁路转换缓冲区未命中的概率高于第一预设阈值;
如果所述预设参数满足预设条件,则同时访问高速缓冲存储器和旁路转换缓冲区;
如果所述预设参数不满足预设条件,则只访问高速缓冲存储器。
7.根据权利要求6所述的方法,其中,所述预设参数包括以下中的至少一个:在一定时间段内的分支目标缓冲器更新的频率或替换的个数、在一定时间段内的高速缓冲存储器未命中率或未命中的次数、在一定时间段内的旁路转换缓冲区未命中率或未命中的次数、在一定时间段内发生的用户中断次数、在一定时间段内发生的流水线排空次数、以及在一定时间段内分支指令执行个数。
8.根据权利要求7所述的方法,其中,若所述预设参数为在一定时间段内的分支目标缓冲器更新的频率或替换的个数,所述判断所述预设参数是否满足预设条件,包括:判断在一定时间段内的所述分支目标缓冲器更新的频率是否大于第二预设阈值或在一定时间段内的所述分支目标缓冲器替换条目的个数是否大于第三预设阈值;
或者若所述预设参数为在一定时间段内的高速缓冲存储器未命中率或未命中的次数,所述判断所述预设参数是否满足预设条件,包括:判断在一定时间段内的所述高速缓冲存储器未命中率是否大于第四预设阈值或在一定时间段内的所述高速缓冲存储器未命中的次数是否大于第五预设阈值;
或者若所述预设参数为在一定时间段内的旁路转换缓冲区未命中率或未命中的次数,所述判断所述预设参数是否满足预设条件,包括:判断在一定时间段内的所述旁路转换缓冲区未命中率是否大于第六预设阈值或在一定时间段内的所述旁路转换缓冲区未命中的次数是否大于第七预设阈值;
或者,若所述预设参数为在一定时间段内发生的用户中断次数,所述判断所述预设参数是否满足预设条件,包括:判断在一定时间段内发生的用户中断次数是否大于第八预设阈值;
或者,若所述预设参数为在一定时间段内发生的流水线排空次数,所述判断所述预设参数是否满足预设条件,包括:判断在一定时间段内发生的流水线排空次数是否大于第九预设阈值;
或者,若所述预设参数为在一定时间段内分支指令执行个数,所述判断所述预设参数是否满足预设条件,包括:判断在一定时间段内分支指令执行个数是否大于第十预设阈值。
9.根据权利要求1所述的方法,其中,所述高速缓冲存储器包括指令高速缓冲存储器和数据高速缓冲存储器;以及,其中所述旁路转换缓冲区包括指令旁路转换缓冲区和数据旁路转换缓冲区。
10.一种仲裁单元,被配置为:
接收VIVT缓存访问命令;
判断VIVT缓存访问命令是否满足预设条件,所述预设条件包括:所述VIVT缓存访问命令指示同时发生高速缓冲存储器未命中和旁路转换缓冲区未命中的概率高于第一预设阈值;
如果所述VIVT缓存访问命令满足预设条件,则同时访问高速缓冲存储器和旁路转换缓冲区;
如果所述VIVT缓存访问命令不满足预设条件,只访问高速缓冲存储器。
11.一种处理器,包括:
高速缓冲存储器;
旁路转换缓冲区;
仲裁单元,分别耦合到高速缓冲存储器和旁路转换缓冲区,被配置为;
接收VIVT缓存访问命令;
判断VIVT缓存访问命令是否满足预设条件,所述预设条件包括:所述VIVT缓存访问命令指示同时发生高速缓冲存储器未命中和旁路转换缓冲区未命中的概率高于第一预设阈值;
如果所述VIVT缓存访问命令满足预设条件,则同时访问高速缓冲存储器和旁路转换缓冲区;
如果所述VIVT缓存访问命令不满足预设条件,只访问高速缓冲存储器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810968516.3A CN109213698B (zh) | 2018-08-23 | 2018-08-23 | Vivt缓存访问方法、仲裁单元及处理器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810968516.3A CN109213698B (zh) | 2018-08-23 | 2018-08-23 | Vivt缓存访问方法、仲裁单元及处理器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109213698A CN109213698A (zh) | 2019-01-15 |
CN109213698B true CN109213698B (zh) | 2020-10-27 |
Family
ID=64989683
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810968516.3A Active CN109213698B (zh) | 2018-08-23 | 2018-08-23 | Vivt缓存访问方法、仲裁单元及处理器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109213698B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113900712B (zh) * | 2021-10-26 | 2022-05-06 | 海光信息技术股份有限公司 | 指令处理方法、指令处理装置及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1728113A (zh) * | 2004-07-30 | 2006-02-01 | 惠普开发有限公司 | 利用转换后备缓冲器选中的多处理器系统和方法 |
CN101896892A (zh) * | 2007-11-07 | 2010-11-24 | 高通股份有限公司 | 可配置的翻译旁视缓冲器 |
US8370604B2 (en) * | 2003-07-03 | 2013-02-05 | Anvin H Peter | Method and system for caching attribute data for matching attributes with physical addresses |
US9003163B2 (en) * | 2012-06-12 | 2015-04-07 | Oracle International Corporation | Combining a remote TLB lookup and a subsequent cache miss into a single coherence operation |
CN104704476A (zh) * | 2012-10-05 | 2015-06-10 | 超威半导体公司 | 减少异构计算系统中的冷tlb未命中 |
-
2018
- 2018-08-23 CN CN201810968516.3A patent/CN109213698B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8370604B2 (en) * | 2003-07-03 | 2013-02-05 | Anvin H Peter | Method and system for caching attribute data for matching attributes with physical addresses |
CN1728113A (zh) * | 2004-07-30 | 2006-02-01 | 惠普开发有限公司 | 利用转换后备缓冲器选中的多处理器系统和方法 |
CN101896892A (zh) * | 2007-11-07 | 2010-11-24 | 高通股份有限公司 | 可配置的翻译旁视缓冲器 |
US9003163B2 (en) * | 2012-06-12 | 2015-04-07 | Oracle International Corporation | Combining a remote TLB lookup and a subsequent cache miss into a single coherence operation |
CN104704476A (zh) * | 2012-10-05 | 2015-06-10 | 超威半导体公司 | 减少异构计算系统中的冷tlb未命中 |
Non-Patent Citations (1)
Title |
---|
一种基于流水线的指令Cache 优化设计;田芳芳等;《微电子学与计算》;20060131;第23卷(第1期);第93-96页 * |
Also Published As
Publication number | Publication date |
---|---|
CN109213698A (zh) | 2019-01-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4027620B2 (ja) | 分岐予測装置、プロセッサ、及び分岐予測方法 | |
US20080127131A1 (en) | Software solution for cooperative memory-side and processor-side data prefetching | |
JP7160956B2 (ja) | 分岐命令のタイプに基づく先行分岐予測の選択的実行 | |
US9201806B2 (en) | Anticipatorily loading a page of memory | |
CN104978284A (zh) | 处理器子程序高速缓冲存储器 | |
US20070234323A1 (en) | Learning and cache management in software defined contexts | |
JP2016536665A (ja) | 推論的ベクトル演算の実行を制御するためのデータ処理装置及び方法 | |
CN102349051B (zh) | 用于在数字处理器中执行跳转操作的方法和设备 | |
EP4172760A1 (en) | Instruction address translation and instruction prefetch engine | |
CN109213698B (zh) | Vivt缓存访问方法、仲裁单元及处理器 | |
JP2011257800A (ja) | キャッシュメモリ装置、プログラム変換装置、キャッシュメモリ制御方法及びプログラム変換方法 | |
KR102571623B1 (ko) | 초기 리턴 예측을 갖는 분기 타겟 버퍼 | |
JP2007272681A (ja) | キャッシュメモリ装置及びそのキャッシュラインの入れ替え方法 | |
US20160011889A1 (en) | Simulation method and storage medium | |
JP3811140B2 (ja) | 情報処理装置 | |
CN114610388A (zh) | 一种指令跳转方法、处理器及电子设备 | |
US11194575B2 (en) | Instruction address based data prediction and prefetching | |
JP4768054B2 (ja) | キャッシュ制御方法 | |
KR101790728B1 (ko) | 가상화 환경의 하이퍼바이저에서의 데이터 입출력 방법 및 이를 기록한 기록 매체 | |
Ni et al. | Combining instruction prefetching with partial cache locking to improve WCET in real-time systems | |
KR102579320B1 (ko) | 캐시 메모리 장치 및 이를 이용하는 캐시 스케줄링 구현 방법 | |
US8370582B2 (en) | Merging subsequent updates to a memory location | |
CN109992529B (zh) | 虚拟地址确定方法及装置、处理器、存储介质 | |
JP4002288B2 (ja) | 情報処理装置 | |
US20070239939A1 (en) | Apparatus for Performing Stream Prefetch within a Multiprocessor System |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP03 | Change of name, title or address | ||
CP03 | Change of name, title or address |
Address after: 9th Floor, Building C, Gui'an Center, Plot ZD-64, Big Data Science and Technology Innovation City, Gui'an New Area, Guiyang City, Guizhou Province, 550003 (No. 2 on the south side) Patentee after: Guizhou Huaxin Semiconductor Technology Co.,Ltd. Address before: 550029 Guizhou Gui'an New Area Temporary Administrative Center Patentee before: GUIZHOU HUAXINTONG SEMICONDUCTOR TECHNOLOGY Co.,Ltd. |