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

文档序号:9921971阅读:441来源:国知局
根据卷标比特的动态高速缓存置换路选择的制作方法
【技术领域】
[0001]本发明是关于一种高速缓存存储器,特别是关于取决于模式而可动态配置以选择一或多个组的多模式组相联高速缓存存储器。
【背景技术】
[0002]现今的处理器被要求执行的程序是处理具有广泛不同特性的数据组(set)并且是以广泛而不同的方式来存取数据。数据组的特性以及存取模式影响着处理器的高速缓存存储器的执行效率。执行效率主要是依照命中比(hit rat1)来判断。

【发明内容】

[0003]本发明的一个目的在于提供一种高速缓存存储器,包括:一模式输入端,用以指示所述高速缓存存储器要被操作在多个分配模式中的何者;多个项目的一组相关数组,所述组相关数组具有多个相乘的组以及W路,其中W是大于I的整数;一输入端,用以接收一内存地址,所述内存地址包括:一索引,用以从所述些组中选出一组;以及一卷标,用以对照于存储在所选取组的W路的多个项目中的多个卷标以判断所述内存地址在所述数组中为命中或未命中;以及一分配逻辑,用以当所述内存地址在所述数组中为未命中的时候:根据所述分配模式而选取所述卷标的一或多个比特;根据所述分配模式而在所选取的所述卷标的一或多个比特执行一函数以产生所述数组的W路的一子组;以及分配至所选取组的路的子组的其中一路。
[0004]本发明的另一个目的在于提供一种高速缓存存储器的操作方法,用于具有多个项目的一组相关数组的高速缓存存储器,所述组相关数组具有相乘的多个组以及W路,其中W是大于I的整数,所述高速缓存存储器的操作方法包括:接收一模式输入,其指示所述高速缓存储气要被操作在多个分配模式中的何者;接收一内存地址,其包括:一索引,用以从所述些组之中选取一组;以及一卷标,用以与存储在所选取组的W路的多个项目中的多个卷标做对照以决定所述内存地址在所述数组中为命中或未命中;以及当所述内存地址在所述数组中为未命中:根据所述分配模式来选取所述卷标的一或多个比特;根据所述分配模式来在所述卷标所选取的一或多个比特执行一函数以产生所述数组的W路的一子组;以及分配至所选取组的路的子组的其中一路。
[0005]本发明的又一个目的在于提供一种用于操作一组相关高速缓存存储器的操作方法,包括:在多个分配模式其中的一目前分配模式之下操作所述高速缓存存储器;其中所述些分配模式之中的每一分配模式,当所述高速缓存存储器未命中一内存地址,所述高速缓存存储器分配至所述高速缓存存储器使用该内存地址的一索引来选取的其中一组的所述路的任一子组中的一路;其中在所述些分配模式之中的每一分配模式,所述子组是经由所述内存地址的一卷标的一或多个比特的不同函数来决定;以及当操作在所述目前分配模式之下的时候监测所述高速缓存存储器的执行效率,当所述执行效率低于一临界值的时候将所述目前分配模式改变为所述些分配模式之中的一不同的分配模式。
【附图说明】
[0006]图1所示为高速缓存存储器的方块图。
[0007]图2所示为图1中的高速缓存存储器操作在一般模式之下的方块图。
[0008]图3所示为图1中的高速缓存存储器操作在一般模式之下的操作流程图。
[0009]图4所示为图1中的高速缓存存储器操作在大量模式之下的方块图
[0010]图5所示为图1中的高速缓存存储器102操作在大量模式之下的操作流程图。
[0011]图6所示为图1中的高速缓存存储器102操作被指示转换离开大量模式的操作流程图。
[0012]图7所示为图1中的高速缓存存储器102操作在少量模式下以做为直接映像高速缓存的方块图。
[0013]图8所示为图1中的高速缓存存储器102操作在少量直接映像模式之下的操作流程图。
[0014]图9所示为图1中的高速缓存存储器操作在少量模式之下以做为8路组相关高速缓存的方块图。
[0015]图10所示为图1中的高速缓存存储器102操作在少量8路模式之下的操作流程图。
[0016]图11所示为图1中的高速缓存存储器102更详细的方块图。
[0017]图12A以及图12B统称为图12,图12所示为所示为图11中的高速缓存存储器102的区域致能逻辑方块图。
[0018]图13所示为图11中的高速缓存存储器102的命中产生逻辑的方块图。
[0019]图14A所示为包含了一个具有图1中的高速缓存存储器102的处理器的系统的操作流程图。
[0020]图14B所示为包含了图1中的高速缓存存储器102的处理器的部件方块图。
[0021]图14C所示为包含了图1中的高速缓存存储器102的图14B中的处理器的操作流程图。
[0022]图15所示为包含了图1中的高速缓存存储器102的处理器的系统的操作流程图。
[0023]图16所示为高速缓存存储器的方块图。
[0024]图17所示为逻辑方块图,其是用来选取高速缓存存储器102根据图16中的卷标以及分配模式所分配至的路的子组的逻辑方块图。
[0025]图18所示为图16中的高速缓存存储器的操作流程图。
[0026]图19所示为包含了图16中的高速缓存存储器的处理器的系统的操作流程图。
[0027]图20所示为产生高速缓存存储器模式配置给程序以及程序时程的操作流程图。
[0028]图21所示为内存存取图表以及从此内存存取图表中萃取出的数据。
[0029]图22所示为程序的时程分析的操作流程图。
[0030]图23所示为用来给处理器可配置特性决定出一个较佳配置的蛮力(bruteforce)法的操作流程图。
[0031 ]图24所示为处理器的方块图。
[0032]主要组件标号说明
[0033]102高速缓存存储器
[0034]104内存地址
[0035]106、112 卷标
[0036]108 模式
[0037]114 索引
[0038]116 偏移
[0039]302、304、306、312、314 流程
[0040]502、504、506、512、514、516 流程[0041 ]602、604 流程
[0042]802、804、806、808、812、814 流程
[0043]1002、1004、1006、1008、1012、1013、1014、1016 流程
[0044]1102A卷标信道A
[0045]1104A 接口 A
[0046]1102B卷标信道B
[0047]1104B 接口 B
[0048]1106-0 区域 O
[0049]1106-1 区域 I
[0050]1106-2 区域2[0051 ]1106-3 区域 3
[0052]1200区域致能逻辑
[0053]1200A接口 A区域致能逻辑
[0054]1209大量模式
[0055]104-A 内存地址
[0056]1204-0、1208-0、1204-1、1208-2 非门
[0057]1202-0、1202-1、1202-2、1202-3 或门
[0058]1206-0、1206-1、1206-2、1206-3 与门
[0059]1212-0A接口 A区域O致能提示
[0060]1212-1A接口 A区域I致能提示[0061 ]1212-2A接口 A区域2致能提示
[0062]1212-3A接口 A区域3致能提示
[0063]1200B接口 B区域致能逻辑
[0064]1212-0B接口 B区域O致能提示
[0065]1212-1B接口 B区域I致能提示
[0066]1212-2B接口 B区域2致能提示
[0067]1212-3B接口 B区域3致能提示
[0068]1214-0、1214-1、1214-2、1214_3 或门
[0069]1216-0区域O致能提示
[0070]1216-1区域I致能提示
[0071]1216-2区域2致能提示
[0072]1216-3区域3致能提示
[0073]1300命中产生逻辑
[0074]1301组J路O分配
[0075]1303组J路O重新分配
[0076]1304 比较器
[0077]1302有效比特
[0078]1306 与门
[0079]1308-J0 ?1308-J15 组 J路 O ?15 命中
[0080]1314-J 组 J命中
[0081 ]1308-K0 ?1308-K15 组K路 O ?15 命中
[0082]1314-K 组 J命中
[0083]1316 或门
[0084]1318大量模式命中
[0085]1322多任务器
[0086]1324 命中
[0087]1402、1404 流程
[0088]1412时程辨识码
[0089]1414时程侦测器
[0090]1416模式更新单元
[0091]1418来自于装置驱动程序的新模式信息
[0092]1422、1424、1426 流程
[0093]1502、1504 流程
[0094]1602高速缓存存储器
[0095]1608分配模式
[0096]1606、1612 卷标
[0097]1614 索引
[0098]1616 偏移
[0099]1702 逻辑
[0100]19,N 比特数
[0101]1736多任务器
[0102]1732组合逻辑
[0103]1738多任务器17 36所输出的N比特
[0104]1734路的子组
[0105]1802、1804、1806、1808、1812、1814、1816 流程
[0106]1902、1904、1906 流程
[0107]3402、3404、3406 流程
[0108]3602、3604、3606、3608、3612、3614 流程
[0109]3702、3704、3706、3706、3712、3714、3716 流程
[0110]3900 处理器
[0111]3922指令高速缓存
[0112]3923指令译码器
[0113]3924指令排程器以及发送器
[0114]3926执行单元
[0115]3928内存子系统
【具体实施方式】
[0116]现今的处理器被要求执行的程序是处理具有广泛不同特性的数据组(set)并且是以广泛而不同的方式来存取数据。数据组的特性以及存取模式影响着处理器的高速缓存存储器的执行效率。执行效率主要是依照命中比(hit rat1)来判断。
[0117]除了容量之外,高速缓存存储器的相联性会大幅影响其执行效率。高速缓存存储器的相联性指的是高速缓存存储器可以配置高速缓存线(cache line)的可能位置或是项目(entry),高速缓存线是依据存储器的地址而被配置。高速缓存线能够配置或是分配的可能位置越多,高速缓存存储器的相联性就越高。某些程序适合具有较高的相联性的高速缓存存储器而某些程序适合具有较低的相联性的高速缓存存储器。
[0118]以下的实施方式所叙述的高速缓存存储器可以在处理器的运作期间被动态地配置以将其相联性变更为高于其一般模式的相联性及/或变更为小于其一般的相联性。
[0119]请参阅图1,图1绘示了一个高速缓存存储器102。高速缓存存储器102从一个输入端接收了一个内存地址(memory address ,MA) 104而从另一个输入端接收了一个模式(mode)108。模式108具体指示了高速缓存存储器102是否要用在「一般」模式、「大量」模式或是「少量」模式下运作。所述的各种模式将于后面详细叙述。
[0120]内存地址104被分为三个部分,每一个部分具有多个比特(bit):卷标(tag)112、索引(index) 114以及偏移(offset)116。偏移116指出移入选定的缓存线的一个偏移字节。卷标112以及索引114的用途将在后文中详细叙述。为了方便描述,图1中举例了一个大小为36个比特且将36个比特分为卷标112 = MA[35:16]、索引114 = MA[15:6]以及偏移116 = MA[5:0]的内存地址104。然而,要特别注意的是,高速缓存存储器102的相联性的动态变更性,也就是在一般模式、大
当前第1页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1