取决于模式而可动态配置以选择一或多个组的多模式组相联高速缓存存储器的制造方法

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

【发明内容】

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