根据卷标比特的动态高速缓存置换路选择的制作方法_6

文档序号:9921971阅读:来源:国知局
时程来说,在识别理想上可改善处理器的执行效能的程序的列表中,此方法经由方块3704至方块3716而反复操作直到决定出一个较好的配置(例如:最佳的目前配置并未在一段相对长的时间内被改变)或是资源已过期(例如时间及/或计算资源)。流程继续进行至方块3704。
[0233]在方块3704中,目前的最佳配置被设定为预定的配置,例如是一个高速缓存存储器的预定模式,其在一个实施例中就是处理器被制造时的模式。流程继续进行至方块3706。
[0234]在方块3706中,对于每个配置参数来说,方块3708至方块3712被实施。配置参数的一个例子是一个单一配置比特,例如,其可开启或关闭一个功能。配置参数的另外一个例子是一个配置域,例如模式108。流程继续进行至方块3708。
[0235]在方块3708当中,方块3706的配置参数值的合理的组的每一个值,执行方块3172至方块3716。配置参数值的合理的组取决于配置参数的大小、参数被认为的重要性以及反复操作所需的资源量。举例来说,在单一配置比特的例子中,两个值都在合理的组中。举例来说,此方法可以对具有16或是更少值的任意参数尝试所有可能的值。然而,对于相对大的域来说,例如一个32比特的域,要尝试全部2~32个值是不可行的。以这个例子来说,设计人员要提供数值的合理的组给这个方法。若设计人员没有提供数值且可能性的数量很大,此方法可以一个合理数目的参数随机数值在方块3712至方块3176反复操作。流程继续进行至方块3712。
[0236]在方块3712中,程序或是程序时程是以目前最佳配置来运行但是经由方块3708中参数的下一个数值来调整,且执行效能会被量测。流程继续进行至判断方块3714。
[0237]在判断方块3714中,该方法把在方块3712中测得的执行效能对照于目前的最佳执行效能且若前者较佳,流程继续进行至方块3716,否则流程回到方块3712去试目前参数的下一个数值一直到全部的合理数值都被试过,此时流程回到方块3708而反复操作下一个配置参数一直到全部的配置参数都被试过,此时方法结束,产生目前的最佳配置套用于该程序或该程序时程。
[0238]在方块3716中,该方法以方块3712中所试的配置来更新目前的最佳配置。流程回到方块3712去尝试目前参数的下一个数值一直到全部的合理数值都被试过,此时流程回到方块3708以反复操作下一个配置参数一直到全部的配置参数都被试过,在这个例子当中该方法结束,产生目前的最佳配置套用于该程序或该程序时程。
[0239]需要注意的是,使用类似于图23的方法所找到的较佳配置,设计人员并不会或不需要理解为什么该特定配置会产生较好的结果。
[0240]请参照图24,图24所示为处理器3900的方块图。处理器3900包含一个指令高速缓存3922,其提供指令给一个指令译码器3923,译码器3923将该指令译码并且把该译码后的指令提供给一个发送器3924,发送器3924把该指令发送至执行单元3926以执行。在较佳的情况下,处理器3900的微架构是超标量而乱序(out-of-order)执行,也可考虑其它的实施例,如此一来指令发送器3924还包含了一个指令排程器以将指令的发送排程以超标量乱序的方式至多个执行单元3926。在较佳的情况下,处理器3900还包含了架构寄存器(图未示),其包含处理器3900的架构状态,还有非架构寄存器(图未示)。在较佳的情况下,处理器3900还包含寄存器别名表(register alias table,RAT)(图未示)以用来执行寄存器重新命名以及重新排序缓冲器(reorder buffer,R0B)(图未示)以用来在程序排序中退出指令。在较佳的情况下,指令发送器包含指令转译器(图未示)其用来把架构指令转译为处理器3900的微指令组架构的微指令,其可被执行单元3926执行。
[0241 ]处理器3900还包含内存子系统3928其提供内存运算域给执行单元3926并且从执行单元3926接收内存运算域。内存子系统3928较佳为包含一个或多个加载单元,一个或多个存储单元,加载列,存储列,用来从内存请求高速缓存线的填入列,与处理器3900通信的内存总线的侦测有关的侦测列,列表引擎,以及其它相关功能的单元。
[0242]处理器3900还包含一个沟通于内存子系统3928的高速缓存存储器102。在较佳的情况下,高速缓存存储器102类似于描述于图1(以及图16中的1602)的高速缓存存储器。虽然示出的是一个单一的高速缓存存储器102,但高速缓存存储器102可以是一个更大的高速缓存存储器子系统的其中一个,其包含高速缓存存储器的一个分层,例如是阶层I的指令高速缓存,阶层I的数据高速缓存,以及支持阶层I高速缓存的统合的阶层2高速缓存。在一个实施例中,高速缓存子系统还包含阶层3高速缓存。处理器3900还包含一或多个预取器其从内存预取资料至高速缓存存储器102。在一个实施例中,处理器3900是一个多核心处理器,每一个核心具有如前所述的功能单元,且高速缓存存储器102由多个核心共享。
[0243]内存子系统3928存取高速缓存存储器102,如图1至图23中所描述的实施例一般。内存存取包含要被存取的内存位置的内存地址104。
[0244]虽然实施例已经用高速缓存存储器的区域以及接口的数量的特定配置来描述了,需要注意的是,在其它实施例中可以考虑包含在高速缓存存储器中的接口的不同数量,且区域的不同数量也被包含在其中,还有非区域的配置。在本揭露当中,包含权利要求中的标记2~N指的是2的N次方。
[0245]虽然本发明的多个不同实施例已被描述于此,需要注意的是,其是用以举例而非限制本发明。计算器领域的相关技术人员显而易见可知不同的形式或细部的改变都在本发明的保护范围之内。举例来说,软件可以启动,举例来说,功能、制程、模型、仿真、描述及/或本文中所描述的装置和方法的测试。其可经由一般的程序语言(例如C,C++)的使用来实现,硬件描述语言(HDL)包含Verilog硬件描述语言等等,或是其它可能的程序。所述的软件可配置于任何已知的计算器可用媒介例如是磁带,半导体,磁盘,或是光盘(例如CD-R0M,DVD-ROM等等),因特网,有线,无线或是其它通信媒介。本文所述的装置以及方法的实施例可被包含在半导体智慧产权核心,例如处理器核心(例如嵌入式或是具体式的,在硬件描述语言中)以及转变至硬件集成电路的制造中。除此之外,本文所描述的装置以及方法可被体现如硬件以及软件的组合。因此,本发明不被文中所描述的任何举例出的实施例所限制而是仅被根据本发明的权利要求及其同位物所定义。具体来说,本发明可以被实现在处理器装置中,其可用在一般用途的计算器。最后,本领域技术人员可以很容易的使用本文所揭露的概念和【具体实施方式】以做为设计或是修改其它架构的基础以实现出本发明的相同功效而不脱离本发明的权利要求所限定的范围。
【主权项】
1.一种高速缓存存储器,包括: 一模式输入端,用以指示该高速缓存存储器要被操作在多个分配模式中的何者; 多个项目的一组相关数组,该组相关数组具有多个相乘的组以及W路,其中W是大于I的整数; 一输入端,用以接收一内存地址,该内存地址包括: 一索引,用以从该些组中选出一组;以及 一卷标,用以对照于存储在所选取组的W路的多个项目中的多个卷标以判断该内存地址在该数组中为命中或未命中;以及 一分配逻辑,用以当该内存地址在该数组中为未命中的时候: 根据该分配模式而选取该卷标的一或多个比特; 根据该分配模式而在所选取的该卷标的一或多个比特执行一函数以产生该数组的W路的一子组;以及 分配至所选取组的路的子组的其中一路。2.根据权利要求1所述的高速缓存存储器,其中在该卷标的一或多个比特执行的函数包含了该卷标的二或多个比特的一布尔(Boolean)操作。3.根据权利要求2所述的高速缓存存储器,其中该布尔操作包含了该卷标的二或多个比特的布尔互斥(XOR)。4.根据权利要求2所述的高速缓存存储器,其中该布尔操作包含了该卷标的二或多个比特的一轮转(rotat1n)。5.根据权利要求1所述的高速缓存存储器,其中执行于该卷标的一或多个比特的函数包含了该卷标的一或多个比特的选取。6.根据权利要求1所述的高速缓存存储器,其中执行于该卷标的一或多个比特的函数的一输出端产生一单一比特,其中当该比特为I则该子组包含了所选取组的W路的奇数路,其中当该比特为O则该子组包含了所选取组的W路的偶数路。7.根据权利要求1所述的高速缓存存储器,其中对于一或多个分配模式,该子组是所选取组的W路的其中一路。8.根据权利要求7所述的高速缓存存储器,其中W为2~Q,其中该其中一路是经由该卷标的Q比特来指定,其中Q是大于O的整数。9.根据权利要求8所述的高速缓存存储器,其中该卷标的Q比特是该卷标的Q最低有效比特。10.根据权利要求8所述的高速缓存存储器,其中该子组是限定于该2~Q路的2~Z路,其中该2~Z路是基于该卷标的(W-Z)比特,其中Z是大于O且小于W的整数。11.一种高速缓存存储器的操作方法,用于具有多个项目的一组相关数组的高速缓存存储器,该组相关数组具有相乘的多个组以及W路,其中W是大于I的整数,该高速缓存存储器的操作方法包括: 接收一模式输入,其指示该高速缓存储气要被操作在多个分配模式中的何者; 接收一内存地址,其包括: 一索引,用以从该些组之中选取一组;以及 一卷标,用以与存储在所选取组的W路的多个项目中的多个卷标做对照以决定该内存地址在该数组中为命中或未命中;以及 当该内存地址在该数组中为未命中: 根据该分配模式来选取该卷标的一或多个比特; 根据该分配模式来在该卷标所选取的一或多个比特执行一函数以产生该数组的W路的一子组;以及 分配至所选取组的路的子组的其中一路。12.根据权利要求11所述的高速缓存存储器的操作方法,其中在该卷标的一或多个比特所执行的该函数包含了该卷标的二或多个比特的一布尔操作。13.根据权利要求12所述的高速缓存存储器的操作方法,其中该布尔操作包含了该卷标的二或多个比特的布尔互斥(XOR)。14.根据权利要求12所述的高速缓存存储器的操作方法,其中该布尔操作包含了该卷标的二或多个比特的一轮转(rotat1n)。15.根据权利要求11所述的高速缓存存储器的操作方法,其中执行于该卷标的一或多个比特的函数包含了该卷标的一或多个比特的选取。16.根据权利要求11所述的高速缓存存储器的操作方法,其中执行于该卷标的一或多个比特的函数的一输出端产生一单一比特,其中当该比特为I则该子组包含了所选取组的W路的奇数路,其中当该比特为O则该子组包含了所选取组的W路的偶数路。17.根据权利要求11所述的高速缓存存储器的操作方法,其中对于一或多个分配模式,该子组是所选取组的W路的其中一路。18.根据权利要求17所述的高速缓存存储器的操作方法,其中W为2~Q,其中该其中一路是经由该卷标的Q比特来指定,其中Q是大于O的整数。19.根据权利要求18所述的高速缓存存储器的操作方法,其中该卷标的Q比特是该卷标的Q最低有效比特。20.根据权利要求18所述的高速缓存存储器的操作方法,其中该子组是限定于该2~Q路的2~Z路,其中该2~Z路是基于该卷标的(W-Z)比特,其中Z是大于O且小于W的整数。21.—种用于操作一组相关高速缓存存储器的操作方法,包括: 在多个分配模式其中的一目前分配模式之下操作该高速缓存存储器; 其中该些分配模式之中的每一分配模式,当该高速缓存存储器未命中一内存地址,该高速缓存存储器分配至该高速缓存存储器使用该内存地址的一索引来选取的其中一组的该路的任一子组中的一路; 其中在该些分配模式之中的每一分配模式,该子组是经由该内存地址的一卷标的一或多个比特的不同函数来决定;以及 当操作在该目前分配模式之下的时候监测该高速缓存存储器的执行效率,当该执行效率低于一临界值的时候将该目前分配模式改变为该些分配模式之中的一不同的分配模式。
【专利摘要】一种高速缓存存储器包含了一个模式输入端,其指示了高速缓存存储器要操作的多个分配模式,多个项目的一个组相关数组,其具有相乘的多个组与W个路,一输入端,其接收了一个内存地址,所述的内存地址包含了用来从所述的多个组中选取其中一个组的一个索引,以及用来与所存储在所选取的组中的W路中的多个项目的多个卷标做对照的一个卷标,以判断所述的内存地址在所述数组中为命中或未命中,当所述的内存地址未命中于所述的数组,基于所述的分配模式而选取所述卷标的一或多个比特,基于所述的分配模式而在所选取的该卷标的比特执行一个函数来产生所述数组的W路的一个子组,并且分配至所选取组的路的子组的其中一路。
【IPC分类】G06F12/08
【公开号】CN105701030
【申请号】CN201510795194
【发明人】道格拉斯·R·瑞德
【申请人】上海兆芯集成电路有限公司
【公开日】2016年6月22日
【申请日】2015年11月18日
【公告号】WO2016097808A1
当前第6页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1