根據(jù)卷標比特的動態(tài)高速緩存置換路選擇的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明是關(guān)于一種高速緩存存儲器,特別是關(guān)于取決于模式而可動態(tài)配置以選擇一或多個組的多模式組相聯(lián)高速緩存存儲器。
【背景技術(shù)】
[0002]現(xiàn)今的處理器被要求執(zhí)行的程序是處理具有廣泛不同特性的數(shù)據(jù)組(set)并且是以廣泛而不同的方式來存取數(shù)據(jù)。數(shù)據(jù)組的特性以及存取模式影響著處理器的高速緩存存儲器的執(zhí)行效率。執(zhí)行效率主要是依照命中比(hit rat1)來判斷。
【發(fā)明內(nèi)容】
[0003]本發(fā)明的一個目的在于提供一種高速緩存存儲器,包括:一模式輸入端,用以指示所述高速緩存存儲器要被操作在多個分配模式中的何者;多個項目的一組相關(guān)數(shù)組,所述組相關(guān)數(shù)組具有多個相乘的組以及W路,其中W是大于I的整數(shù);一輸入端,用以接收一內(nèi)存地址,所述內(nèi)存地址包括:一索引,用以從所述些組中選出一組;以及一卷標,用以對照于存儲在所選取組的W路的多個項目中的多個卷標以判斷所述內(nèi)存地址在所述數(shù)組中為命中或未命中;以及一分配邏輯,用以當所述內(nèi)存地址在所述數(shù)組中為未命中的時候:根據(jù)所述分配模式而選取所述卷標的一或多個比特;根據(jù)所述分配模式而在所選取的所述卷標的一或多個比特執(zhí)行一函數(shù)以產(chǎn)生所述數(shù)組的W路的一子組;以及分配至所選取組的路的子組的其中一路。
[0004]本發(fā)明的另一個目的在于提供一種高速緩存存儲器的操作方法,用于具有多個項目的一組相關(guān)數(shù)組的高速緩存存儲器,所述組相關(guān)數(shù)組具有相乘的多個組以及W路,其中W是大于I的整數(shù),所述高速緩存存儲器的操作方法包括:接收一模式輸入,其指示所述高速緩存儲氣要被操作在多個分配模式中的何者;接收一內(nèi)存地址,其包括:一索引,用以從所述些組之中選取一組;以及一卷標,用以與存儲在所選取組的W路的多個項目中的多個卷標做對照以決定所述內(nèi)存地址在所述數(shù)組中為命中或未命中;以及當所述內(nèi)存地址在所述數(shù)組中為未命中:根據(jù)所述分配模式來選取所述卷標的一或多個比特;根據(jù)所述分配模式來在所述卷標所選取的一或多個比特執(zhí)行一函數(shù)以產(chǎn)生所述數(shù)組的W路的一子組;以及分配至所選取組的路的子組的其中一路。
[0005]本發(fā)明的又一個目的在于提供一種用于操作一組相關(guān)高速緩存存儲器的操作方法,包括:在多個分配模式其中的一目前分配模式之下操作所述高速緩存存儲器;其中所述些分配模式之中的每一分配模式,當所述高速緩存存儲器未命中一內(nèi)存地址,所述高速緩存存儲器分配至所述高速緩存存儲器使用該內(nèi)存地址的一索引來選取的其中一組的所述路的任一子組中的一路;其中在所述些分配模式之中的每一分配模式,所述子組是經(jīng)由所述內(nèi)存地址的一卷標的一或多個比特的不同函數(shù)來決定;以及當操作在所述目前分配模式之下的時候監(jiān)測所述高速緩存存儲器的執(zhí)行效率,當所述執(zhí)行效率低于一臨界值的時候?qū)⑺瞿壳胺峙淠J礁淖優(yōu)樗鲂┓峙淠J街械囊徊煌姆峙淠J健?br>【附圖說明】
[0006]圖1所示為高速緩存存儲器的方塊圖。
[0007]圖2所示為圖1中的高速緩存存儲器操作在一般模式之下的方塊圖。
[0008]圖3所示為圖1中的高速緩存存儲器操作在一般模式之下的操作流程圖。
[0009]圖4所示為圖1中的高速緩存存儲器操作在大量模式之下的方塊圖
[0010]圖5所示為圖1中的高速緩存存儲器102操作在大量模式之下的操作流程圖。
[0011]圖6所示為圖1中的高速緩存存儲器102操作被指示轉(zhuǎn)換離開大量模式的操作流程圖。
[0012]圖7所示為圖1中的高速緩存存儲器102操作在少量模式下以做為直接映像高速緩存的方塊圖。
[0013]圖8所示為圖1中的高速緩存存儲器102操作在少量直接映像模式之下的操作流程圖。
[0014]圖9所示為圖1中的高速緩存存儲器操作在少量模式之下以做為8路組相關(guān)高速緩存的方塊圖。
[0015]圖10所示為圖1中的高速緩存存儲器102操作在少量8路模式之下的操作流程圖。
[0016]圖11所示為圖1中的高速緩存存儲器102更詳細的方塊圖。
[0017]圖12A以及圖12B統(tǒng)稱為圖12,圖12所示為所示為圖11中的高速緩存存儲器102的區(qū)域致能邏輯方塊圖。
[0018]圖13所示為圖11中的高速緩存存儲器102的命中產(chǎn)生邏輯的方塊圖。
[0019]圖14A所示為包含了一個具有圖1中的高速緩存存儲器102的處理器的系統(tǒng)的操作流程圖。
[0020]圖14B所示為包含了圖1中的高速緩存存儲器102的處理器的部件方塊圖。
[0021]圖14C所示為包含了圖1中的高速緩存存儲器102的圖14B中的處理器的操作流程圖。
[0022]圖15所示為包含了圖1中的高速緩存存儲器102的處理器的系統(tǒng)的操作流程圖。
[0023]圖16所示為高速緩存存儲器的方塊圖。
[0024]圖17所示為邏輯方塊圖,其是用來選取高速緩存存儲器102根據(jù)圖16中的卷標以及分配模式所分配至的路的子組的邏輯方塊圖。
[0025]圖18所示為圖16中的高速緩存存儲器的操作流程圖。
[0026]圖19所示為包含了圖16中的高速緩存存儲器的處理器的系統(tǒng)的操作流程圖。
[0027]圖20所示為產(chǎn)生高速緩存存儲器模式配置給程序以及程序時程的操作流程圖。
[0028]圖21所示為內(nèi)存存取圖表以及從此內(nèi)存存取圖表中萃取出的數(shù)據(jù)。
[0029]圖22所示為程序的時程分析的操作流程圖。
[0030]圖23所示為用來給處理器可配置特性決定出一個較佳配置的蠻力(bruteforce)法的操作流程圖。
[0031 ]圖24所示為處理器的方塊圖。
[0032]主要組件標號說明
[0033]102高速緩存存儲器
[0034]104內(nèi)存地址
[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 區(qū)域 O
[0049]1106-1 區(qū)域 I
[0050]1106-2 區(qū)域2[0051 ]1106-3 區(qū)域 3
[0052]1200區(qū)域致能邏輯
[0053]1200A接口 A區(qū)域致能邏輯
[0054]1209大量模式
[0055]104-A 內(nèi)存地址
[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區(qū)域O致能提示
[0060]1212-1A接口 A區(qū)域I致能提示[0061 ]1212-2A接口 A區(qū)域2致能提示
[0062]1212-3A接口 A區(qū)域3致能提示
[0063]1200B接口 B區(qū)域致能邏輯
[0064]1212-0B接口 B區(qū)域O致能提示
[0065]1212-1B接口 B區(qū)域I致能提示
[0066]1212-2B接口 B區(qū)域2致能提示
[0067]1212-3B接口 B區(qū)域3致能提示
[0068]1214-0、1214-1、1214-2、1214_3 或門
[0069]1216-0區(qū)域O致能提示
[0070]1216-1區(qū)域I致能提示
[0071]1216-2區(qū)域2致能提示
[0072]1216-3區(qū)域3致能提示
[0073]1300命中產(chǎn)生邏輯
[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多任務(wù)器
[0086]1324 命中
[0087]1402、1404 流程
[0088]1412時程辨識碼
[0089]1414時程偵測器
[0090]1416模式更新單元
[0091]1418來自于裝置驅(qū)動程序的新模式信息
[0092]1422、1424、1426 流程
[0093]1502、1504 流程
[0094]1602高速緩存存儲器
[0095]1608分配模式
[0096]1606、1612 卷標
[0097]1614 索引
[0098]1616 偏移
[0099]1702 邏輯
[0100]19,N 比特數(shù)
[0101]1736多任務(wù)器
[0102]1732組合邏輯
[0103]1738多任務(wù)器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指令排程器以及發(fā)送器
[0114]3926執(zhí)行單元
[0115]3928內(nèi)存子系統(tǒng)
【具體實施方式】
[0116]現(xiàn)今的處理器被要求執(zhí)行的程序是處理具有廣泛不同特性的數(shù)據(jù)組(set)并且是以廣泛而不同的方式來存取數(shù)據(jù)。數(shù)據(jù)組的特性以及存取模式影響著處理器的高速緩存存儲器的執(zhí)行效率。執(zhí)行效率主要是依照命中比(hit rat1)來判斷。
[0117]除了容量之外,高速緩存存儲器的相聯(lián)性會大幅影響其執(zhí)行效率。高速緩存存儲器的相聯(lián)性指的是高速緩存存儲器可以配置高速緩存線(cache line)的可能位置或是項目(entry),高速緩存線是依據(jù)存儲器的地址而被配置。高速緩存線能夠配置或是分配的可能位置越多,高速緩存存儲器的相聯(lián)性就越高。某些程序適合具有較高的相聯(lián)性的高速緩存存儲器而某些程序適合具有較低的相聯(lián)性的高速緩存存儲器。
[0118]以下的實施方式所敘述的高速緩存存儲器可以在處理器的運作期間被動態(tài)地配置以將其相聯(lián)性變更為高于其一般模式的相聯(lián)性及/或變更為小于其一般的相聯(lián)性。
[0119]請參閱圖1,圖1繪示了一個高速緩存存儲器102。高速緩存存儲器102從一個輸入端接收了一個內(nèi)存地址(memory address ,MA) 104而從另一個輸入端接收了一個模式(mode)108。模式108具體指示了高速緩存存儲器102是否要用在「一般」模式、「大量」模式或是「少量」模式下運作。所述的各種模式將于后面詳細敘述。
[0120]內(nèi)存地址104被分為三個部分,每一個部分具有多個比特(bit):卷標(tag)112、索引(index) 114以及偏移(offset)116。偏移116指出移入選定的緩存線的一個偏移字節(jié)。卷標112以及索引114的用途將在后文中詳細敘述。為了方便描述,圖1中舉例了一個大小為36個比特且將36個比特分為卷標112 = MA[35:16]、索引114 = MA[15:6]以及偏移116 = MA[5:0]的內(nèi)存地址104。然而,要特別注意的是,高速緩存存儲器102的相聯(lián)性的動態(tài)變更性,也就是在一般模式、大