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