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

文档序号:9921974阅读:来源:国知局
112的下一个最低有效比特。也就是说,被决定的比特是卷标112除了最低有效比特以外最低有效的,以图1的实施例来说就是相当于内存地址MA[17],在后图10会有更详细的叙述。在其它的实施例中,被预先决定的比特是用其它的方式来产生。举例来说,被预先决定的比特可以是通过卷标112中多数个比特的布尔(Boolean)逻辑闸中的互斥闸(XOR)来产生(在较佳的情况下排除了用来选取出组的卷标112的比特,例如:内存地址MA[16])。这样子的做法特别有助于在高速缓存线不正常别名化(pathologicalIy aliasing)至同样的组,如后面所述。互斥闸外的其它函数也可被用来将卷标112的多个比特凝聚成一个单一比特。在图9的例子中,高速缓存存储器102在少量8路模式之下操作如一个4096组乘以8路的组相联高速缓存。
[0155]请参阅图10,图10所示为图1的高速缓存存储器102用以操作在少量8路模式之下的流程图。流程起始于方块1002。
[0156]在方块1002中,当输入的模式108指向于少量8路模式的时候,高速缓存存储器102接收来自于处理核心的加载请求。加载请求包含一个内存地址104。流程接着进行至方块1004ο
[0157]在方块1004中,高速缓存存储器102使用相连于索引114的卷标112的最低有效比特,以图1为例子来说就是内存地址ΜΑ[16:6],选取出一个单一的组,如图10中的组J。流程接着进行至方块1006。
[0158]在方块1006中,高速缓存存储器102对所选取的组J的全部16路中的每个项目,把内存地址104的卷标112除了最低有效比特之外的所有比特对照于项目卷标106除了最低有效比特之外的所有比特。所述的对照一并确认以检视该项目是否有效。流程接着进行至方块 1008 O
[0159]在方块1008中,高速缓存存储器102判断在方块1006中所执行的对照结果是否是有效的匹配。若判断结果为是,流程接着进行至方块1012,若判断结果为否,则流程接着进行至方块1013。
[0160]在方块1012中,高速缓存存储器102指向于命中。流程结束于方块1012。
[0161]在方块1013中,高速缓存存储器102检查内存地址中的比特MA[17]。若比特MA[17]是二进制的I,流程接着进行至方块1016,否则,若比特MA[17]是二进制的0,则流程接着进行至方块1014。如图9所描述的,在其它实施例中,在判断方块1013中检查的比特是卷标112中不同于比特MA[17]的比特(亦即:卷标112的下一个最低有效比特),或是通过卷标112的多个比特的函数来产生。
[0162]在方块1014中,高速缓存存储器102分配至所选取组中的任一偶数路的一个项目。在较佳的情况下,高速缓存存储器102是根据一个最久未存取(LRU)或是拟为最久未存取(Pseudo-LRU)的置换方案来分配至所选取的偶数路的一个项目,但也可使用其它的置换算法,例如随机的或是循环式的。流程结束于方块1014。
[0163]在方块1016中,高速缓存存储器102分配至所选取组的任一个奇数路的一个项目。在较佳的情况下,高速缓存存储器102根据最久未存取(LRU)或是拟为最久未存取(Pseudo-LRU) 的置换方案来分配至所选取的奇数路的一个项目 ,但也可使用其它的置换算法,例如随机的或是循环式的。流程结束于方块1016。
[0164]需要注意的是,虽然已经叙述了两个少量模式的实施例,例如:少量直接映像模式以及少量8路模式,这都是用来描述少量模式,但并不用以限制于这两个实施例。关于图1所描述的实施例,举例来说,一个少量4路模式也可被配置,其中的内存地址MA[18:17]可被用来选择4个路中的4个子组,每个子组可以用来做置换,且一个少量2路模式也可被配置,其中的内存地址MA[19:17]可被用来选择2个路中的8个子组,每个子组可以用来做置换。在其它实施例中,如前面所提到的,卷标112的其它比特也可以被用来选取路的子组以置换,而这些比特可被输入至一个函数(例如:互斥闸)以产生用来选取用以置换的路的子组的比特。
[0165]少量模式可以替某些不善于利用最久未存取(LRU)或是拟为最久未存取(Pseudo-LRU) 的置换措施的不正常程序带来好处。举例来说,假设这个程序正运行通过内存且具有不正常的别名化效应以至于请求加载时在高速缓存存储器102中经常未命中且驱走程序所需要的真正的下一正常线。然而,当高速缓存存储器102的有效相联性由于转换至少量模式而减少,可以避免上述的问题。
[0166]举例来说,所述的程序可能在存取内存中的大量数据结构,高速缓存存储器102的组当中较低的一半别名化至当中较高的一半。然而,较低的一半跟较高的一半具有不同的使用模式而使得最久未存取置换无效。通过少量8路模式而减少高速缓存存储器102的有效相联性,高速缓存存储器102内的一半的数据结构被有效地与另外一半分隔。这种不正常类型的例子可以用程序的脱机分析来判断,而用来对高速缓存存储器102做重新配置,如后图14A-14C中所叙述。
[0167]以另一个例子来说,假设所述的程序存取两个数据组,因为除了在卷标112的更高位比特有所不同之外,两者是同一个地址,因而别名化至高速缓存存储器102的同个组。在这个例子中,把一个资料组的置换措施与另外一个分隔开来可能会带来好处。而这可以通过使用卷标112的比特来达成,所述的卷标112的比特相当于所述的两个数据组不同的卷标112的更高位比特,并使用所述更高位比特产生用来限制要被选取的组的子组以供置换的比特。这种做法是可以被达成的,举例来说,使用如图15所述的方法,通过重复选定卷标112的地址一直到达成增加高速缓存存储器102的效率,或者是如图14A-14C中所述藉由程序的脱机分析来达成。
[0168]请参阅图11,图11所示为图1的高速缓存存储器102更详细实施例的方块图。特别的是,图11的实施例是一个双接口(dual-ported)的区域高速缓存存储器102。高速缓存存储器102包含4个区域1106,标示为区域O 1106-0,区域I 1106-1,区域2 1106-2以及区域31106-3。每个区域1106具有可储存四分之一的高速缓存存储器102的组的容量,也就是512组。在图11的实施例中,区域O 1106-0具有始于O且4个一数的组,区域I 1106-1具有始于I且4个一数的组,区域2 1106-2具有始于2且4个一数的组,区域3 1106-3具有始于3且4个一数的组,如图所示。
[0169]高速缓存存储器102还包含两个接口 1104,标示为接口 A 1104A以及接口 B 1104-B。每个接口 1104耦接于每个区域1106。每个接口 1104接收输入的模式108。
[0170]高速缓存存储器102还包含两个卷标信道1102,标示为卷标信道A1102A以及卷标信道B 1102B。卷标信道A 1102A通过接口A 1104A来存取区域1106,而卷标信道B 1102B通过接口 B 1104B来存取区域1106。每个卷标信道1102接收模式108以做为输入。区域1106的选取或是致能以在不同模式之下选组的详细叙述于图12,高速缓存存储器102在不同模式之下的命中产生则详细描述于图13。在较佳的情况下,卷标信道1102包含已描述于此的多个实施例的执行选一组(或是在大量模式之下选两组)的选取逻辑(图未示);已描述于此的多个实施例的把内存地址的特定比特对照于储存在数组中的卷标的特定比特的对照逻辑(图未示);以及已描述于此的多个实施例的分配至数组的分配逻辑(图未示)。除此之外,在较佳的情况下,卷标信道1102包含对卷标比特执行函数的逻辑,卷标比特是通过图16-19的实施例的分配模式输入而被指定。在较佳的情况下,卷标信道1102包含多数个阶,每个阶执行不同的操作以实现不同实施例在此描述的选组、卷标比较、路分配以及路子组判断。
[0171]只要不选择同一个区域1106的话,接口 A 1104A以及接口 B 1104B可以被同时动作。这么一来从四个单接口的区域1106有效提供了一个双接口的高速缓存存储器102。在较佳的情况下,高速缓存存储器102的判断逻辑会试图从存取了非冲突区域1106的两个卷标信道1102来选取判断请求,特别是当高速缓存存储器102处在大量模式之下的时候。
[0172]请参阅图12A以及12B,图12所示为图11的高速换存存储器102的区域致能逻辑1200。请参阅图12A,区域致能逻辑1200包含区域致能逻辑单元1200A,其从卷标信道A1102A接收一个大量模式提示1209以及一个内存地址MA 104-A且对应产生区域致能提示(ENxA,x表示为区域号码)1212-xA给接口A 1104A。在高速缓存存储器102操作于大量模式之下的时候,大量模式提示1209的值为真,反之则为否,其是由接收了模式提示108的逻辑单元(图未示)所产生。区域致能逻辑1200还包含了区域致能逻辑单元1200B,其从卷标信道B 1102B接收一个大量模式提示1209以及一个内存地址MA 104-B且对应产生区域致能提示(ENxB,x表示为区域号码)1212-xB给接口 B 1104B。接口 A的区域致能逻辑单元1200A以及接口 B的区域致能逻辑单元1200B除了输入以及输出之外,已详细描述如上。
[0173]区域致能逻辑单元1200A包含了接收内存地址MA[7]104-A的第一非门1204-0、接收内存地址MA[6]104-A的的第二非门1208-0、接收非门1204-0的输出以及大量模式指示1209的第一或门1202-0以及接收第一或门1202-0以及第二非门1208-0的输出以产生区域致能提示ENOA 1212-0A的第一与门1206-0,区域致能提示ENOA 1212-0A用来给接口 A1104A 致能区域O 1106-0。
[0174]区域致能逻辑单元1200A还包含了接收内存地址MA[7 ] 104-A的第三非门1204-1、接收了第三非门1204-0的输出以及大量模式提示1209的第二或门1202-1以及接收了第二或门1202-1的输出以及内存地址MA[6]104-A以产生区域致能提示ENlA 1212-1A的第二与门1206-1,区域致能提示EN1A1212-1A用来给接口 A 1104A致能区域I 1106-1。
[0175]区域致能逻辑单元1200A还包含了接收内存地址MA[6] 104-A的第四非门1208-2、接收内存地址MA[7]104-A以及大量模式提示1209的第三或门1202-2以及接收了第三或门1202-2以及第四非门1208-2的输出以产生区域致能提示EN2A 1212-2A的第三与门1206-2,区域致能提示EN2A 1212-2A用来给接口 A 1104A致能区域2 1106-2。
[0176]区域致能逻辑单元1200A还包含了接收内存地址MA[7]104_A以及大量模式提示1209的第四或门1202-3以及接收了第四或门1202-3的输出以及内存地址MA[6]104-A以产生区域致能提示EN3A 1212-3A的第四与门1206-3,区域致能提示EN3A 1212-3A用来给接口A 1104A 致能区域3 1106-3。
[0177]请参阅图12B,区域致能逻辑1200包含了第一或门1214_0,其接收来自于接口A的区域致能逻辑单元1200A的区域致能提示ENOA 1212-0A以及来自于接口B的区域致能逻辑单元1200B的区域致能提示ENOB 1212-0B以产生区域致能提示ENO 1216-0,区域致能提示ENO 1216-0提供至区域O 1106-0。区域致能逻辑1200还包含了第二或门1214-1,其接收来自于接口 A的区域致能逻辑单元1200A的区域致能提示ENlA 1212-1A以及来自于接口 B的区域致能逻辑单元1200B的区域致能提示ENlB 1212-1B以产生区域致能提示ENl 1216-1,区域致能提示ENl 1216-1提供至区域I 1106-1。区域致能逻辑1200还包含了第三或门1214-2,其接收来自于接口A的区域致能逻辑单元1200A的区域致能提示EN2A 1212-2A以及来自于接口 B的区域致能逻辑单元1200B的区域致能提示EN2B 1212-2B以产生区域致能提示EN21216-2,区域致能提示EN2 1216-2提供至区域2 1106-2。区域致能逻辑1200还包含了第四或门1214-3,其接收来自于接口 A的区域致能逻辑单元1200A的区域致能提示EN3A 1212-3A以及来自于接口 B的区域致能逻辑单元1200B的区域致能提示EN3B 1212-3B以产生区域致能提示EN3 1216-3,区域致能提示EN3 1216-3提供至区域3 1106-3。
[0178]请参阅图13,图13所示为图11的高速缓存存储器102的命中产生逻辑1300。所示的存储单元存有图1的高速缓存存储器102的项目卷标106。在图13的实施例中,存储单元存了一个20比特的卷标106。所示的另一个存储单元接收接口的有效指示1302。卷标106的存储单元接收内存地址MA [35:16]104,而且当分配讯号1301为真的时候,内存地址MA [35:16]104的值会被写入至卷标106而且有效指示1302会被更新以用来指示项目为有效。反之,当移除分配讯号1303为真的时候,有效指示1302会被更新以用来指示项目为无效。如图13所示,分配讯号1301以及移除分配讯号1303专属于特
当前第3页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1