两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

具有高效返回預(yù)測能力的分支目標(biāo)緩沖器的制造方法

文檔序號:6539016閱讀:234來源:國知局
具有高效返回預(yù)測能力的分支目標(biāo)緩沖器的制造方法
【專利摘要】提供具有高效返回預(yù)測能力的分支目標(biāo)緩沖器,并提供改善的分支目標(biāo)緩沖器(BTB)和在具有流水線的微處理器中處理數(shù)據(jù)的方法。根據(jù)各種實(shí)施例,提供包含非返回緩沖器、返回緩沖器和多路復(fù)用器的BTB。非返回緩沖器被設(shè)計(jì)為存儲多個(gè)非返回條目。各非返回條目與非返回型指令對應(yīng)。返回緩沖器被設(shè)計(jì)為存儲分別與返回型指令對應(yīng)的多個(gè)返回條目。另外,返回緩沖器可產(chǎn)生控制信號。多路復(fù)用器也產(chǎn)生控制信號并輸出來自非返回緩沖器的數(shù)據(jù)或者來自返回預(yù)測棧(RPS)的數(shù)據(jù)。多路復(fù)用器是從非返回緩沖器還是從RPS返回?cái)?shù)據(jù)依賴于控制信號。
【專利說明】具有高效返回預(yù)測能力的分支目標(biāo)緩沖器
【技術(shù)領(lǐng)域】
[0001]本發(fā)明一般涉及微處理器,特別是涉及使用具有分支目標(biāo)緩沖器(BTB)的流水線的微處理器。
【背景技術(shù)】
[0002]BTB 一般是與處理器中的流水線相關(guān)的存儲器的小型高速緩存。BTB被用于通過比較指令地址與存儲于BTB中的以前執(zhí)行的指令地址來預(yù)測可能采取的分支的目標(biāo)。這可節(jié)省處理時(shí)間,原因是它允許處理器“跳過”計(jì)算目標(biāo)地址的步驟;事實(shí)上,它可只是在BTB中查看它。因此,BTB可產(chǎn)生對目標(biāo)地址的“命中”的頻率直接影響指令執(zhí)行的速度。即,執(zhí)行的速度直接與BTB可存儲的條目的數(shù)量有關(guān)。常規(guī)上,僅有的增加BTB可存儲的條目的數(shù)量的方式是通過增加緩沖器的尺寸。

【發(fā)明內(nèi)容】

[0003]考慮到空間在現(xiàn)代的微處理器中十分珍貴,會希望在不必增加緩沖器自身的尺寸的情況下提高BTB性能。因此,所需要的是相對于以前的緩沖器具有優(yōu)化的命中率和改善的性能的改善的BTB。
[0004]因而,本公開的實(shí)施例涉及針對這些問題得以改善的BTB和處理數(shù)據(jù)的方法。改善的BTB有利于改善功率利用、加快執(zhí)行和提高返回預(yù)測的效率。根據(jù)各種實(shí)施例,提供包含非返回緩沖器、返回緩沖器和多路復(fù)用器的BTB。非返回緩沖器被設(shè)計(jì)為存儲多個(gè)非返回條目。各非返回條目與非返回型指令(例如,無條件跳轉(zhuǎn)、條件分支等)對應(yīng)。返回緩沖器被設(shè)計(jì)為存儲分別與返回型指令對應(yīng)的多個(gè)返回條目。另外,返回緩沖器可產(chǎn)生控制信號。多路復(fù)用器也產(chǎn)生控制信號并輸出來自非返回緩沖器的數(shù)據(jù)或者來自返回預(yù)測棧(RPS)的數(shù)據(jù)。多路復(fù)用器是返回來自非返回緩沖器的數(shù)據(jù)還是來自RPS的數(shù)據(jù)依賴于控制信號。
[0005]根據(jù)各種實(shí)施例,返回緩沖器確定多個(gè)返回條目中是否有某一個(gè)包含與指令地址對應(yīng)的標(biāo)簽。并且,返回緩沖器產(chǎn)生控制信號,以使得該控制信號在返回緩沖器確定標(biāo)簽與指令地址對應(yīng)時(shí)導(dǎo)致多路復(fù)用器輸出來自RPS的頭部的數(shù)據(jù),并在確定多個(gè)返回條目都不包含與指令地址對應(yīng)的標(biāo)簽時(shí)輸出來自非返回緩沖器的數(shù)據(jù)。非返回緩沖器還可確定多個(gè)非返回條目中是否有某一個(gè)與指令地址對應(yīng)。
[0006]根據(jù)各種實(shí)施例,提供通過使用BTB取得地址的方法。根據(jù)該方法,接收與指令地址有關(guān)的數(shù)據(jù)。然后可確定存儲于返回緩沖器中的多個(gè)返回條目中是否有某一個(gè)與指令地址對應(yīng)??苫陬A(yù)測來輸出來自返回預(yù)測棧(RPS)的數(shù)據(jù)和來自非返回緩沖器的數(shù)據(jù)。
[0007]確定返回條目是否與指令地址對應(yīng)包含確定多個(gè)返回條目中是否有某一個(gè)包含與指令地址對應(yīng)的標(biāo)簽。另外,可基于確定產(chǎn)生控制信號。當(dāng)確定返回條目中的某一個(gè)與指令地址對應(yīng)時(shí),控制信號導(dǎo)致輸出來自RPS的數(shù)據(jù)。相反,當(dāng)確定返回條目都不與指令地址對應(yīng)時(shí),可產(chǎn)生控制信號以導(dǎo)致輸出來自非返回緩沖器的數(shù)據(jù)?!緦@綀D】

【附圖說明】
[0008]在這里加入并形成說明書的一部分的附圖示出本發(fā)明,并與說明一起進(jìn)一步用于解釋本發(fā)明的原理并使得本領(lǐng)域技術(shù)人員能夠?qū)嵤┖褪褂帽景l(fā)明。
[0009]圖1是示出根據(jù)各種實(shí)施例的指令流水線的功能框圖。
[0010]圖2A和圖2B示出根據(jù)各種實(shí)施例的指令流水線的動作。
[0011]圖3示出根據(jù)各種實(shí)施例的存儲于分支目標(biāo)緩沖器中的數(shù)據(jù)。
[0012]圖4是示出根據(jù)各種實(shí)施例的取得地址的方法的流程圖。
[0013]圖5是示出根據(jù)各種實(shí)施例的分支目標(biāo)緩沖器的功能框圖。
[0014]圖6是示出根據(jù)各種實(shí)施例的取得地址的方法的流程圖。
[0015]圖7是示出根據(jù)各種實(shí)施例的取得地址的方法的流程圖。
[0016]參照附圖閱讀以下闡述的本發(fā)明的實(shí)施例的詳細(xì)描述,本發(fā)明的特征和優(yōu)點(diǎn)變得更加明顯,在這些附圖中,類似的附圖標(biāo)記始終表示相應(yīng)的要素。在附圖中,類似的附圖標(biāo)記一般表示相同、功能上類似并且/或者結(jié)構(gòu)上類似的要素。要素第一次出現(xiàn)的附圖由相應(yīng)附圖標(biāo)記的最左面的數(shù)字表示。
【具體實(shí)施方式】
[0017]本發(fā)明的實(shí)施例的以下的詳細(xì)描述參照示出示例性實(shí)施例的附圖。這里描述的實(shí)施例涉及低功率微處理器。特別地,在這里描述的處理器由于以下提供的改善的方案而具有使用的功率比現(xiàn)有微處理器少的益處。其它的實(shí)施例是可能的,并且,在本說明書的精神和范圍內(nèi),可對實(shí)施例提出修改。因此,詳細(xì)的描述不意味著限制以下描述的實(shí)施例。
[0018]本領(lǐng)域技術(shù)人員很容易理解,可通過圖示的軟件、硬件、固件和/或?qū)嶓w的許多不同的實(shí)施例實(shí)現(xiàn)以下描述的實(shí)施例。能夠?qū)iT控制硬件以實(shí)現(xiàn)實(shí)施例的任何實(shí)際的軟件代碼不限制于本描述。因此,在描述實(shí)施例的動作行為時(shí),可以理解,考慮到這里給出的細(xì)節(jié)的水平,實(shí)施例的修改和變更是可能的。
[0019]圖1是示出根據(jù)各種實(shí)施例的用于在微處理器中執(zhí)行的簡化流水線100的功能框圖。一般地,可以使用流水線以并行執(zhí)行幾個(gè)指令。如圖1所示,流水線100可包含指令取得級102、解碼級104、執(zhí)行級106和寫入級108。動作(例如,動作01?05)可進(jìn)入流水線100并依次流過各級。并且,在任意給定的時(shí)間,可在流水線100的部件(102、104、106和108)中的每一個(gè)中存在單獨(dú)的獨(dú)立的動作。例如,如圖1所示,示出等待進(jìn)入流水線100的動作05,在流水線的指令取得級102中示出動作04。指令取得級102負(fù)責(zé)基于例如與動作相關(guān)的程序計(jì)數(shù)器取得執(zhí)行動作(例如,04)所需要的指令。
[0020]圖1還示出流水線100的解碼級104中的03。解碼級104可執(zhí)行解碼指令并更新寄存器重命名地圖(未示出)的功能。在解碼過程中,各指令可被賦予指令識別標(biāo)簽并且/或者與指令識別標(biāo)簽相關(guān)聯(lián)。
[0021]動作02中圖1中被示為處于流水線100的執(zhí)行級106中。執(zhí)行級106負(fù)責(zé)執(zhí)行指令并可包含執(zhí)行該任務(wù)所需要的邏輯和/或電路。如圖1所示,執(zhí)行級106執(zhí)行動作(例如,01)的結(jié)果可通過寫入級108被寫入到存儲器。
[0022]圖2A示出動作如何“流動”通過流水線100。如圖2A所示,在時(shí)間1,動作01被置于流水線100的指令取得級102中。在時(shí)間2,01移動到解碼級104并且02被置于指令取得級102中。在時(shí)間3,Ol移動到執(zhí)行級106,02移動到解碼級104,并且03被置于指令取得級102中。在時(shí)間4,01移動到寫入級108,02移動到執(zhí)行級106,03移動到解碼級104,并且,04被置于指令取得級102中。從圖2A可以看出,在時(shí)間4及以后,各級中具有指令,并且,流水線盡可能高效地動作。但是,當(dāng)各級在各時(shí)間周期中不存在指令時(shí),出現(xiàn)低效率情況。
[0023]圖2B示出根據(jù)各種實(shí)施例的引入3個(gè)時(shí)間周期延遲的流水線“流動”。與圖2A同樣,動作01在時(shí)間I被置于流水線100的指令取得級102中。但是,在時(shí)間2上,存在延遲(由“X”代表),并且沒有指令被置于指令取得級102中。但是,01仍移動到解碼級104。在時(shí)間3,另一延遲被引入流水線中,并且也沒有動作置于指令取得級102中。另外,01移動到執(zhí)行級106,從而使解碼級104也保持為空。在時(shí)間4,另一延遲導(dǎo)致在又一時(shí)間周期沒有指令被置于指令取得級102中。01移動到寫入級108,從而使得解碼級104和執(zhí)行級106也保持為空。因此,可以看出,三個(gè)時(shí)間周期延遲意味著流水線在至少6個(gè)時(shí)間周期(例如,時(shí)間周期2~7)低效動作。事實(shí)上,即使只引入一個(gè)延遲,流水線也會在至少4個(gè)時(shí)間周期(例如,流水線的長度)以低于全效率的效率動作。因此,可以看出,最好盡可能避免延遲。
[0024]可避免延遲的一種方式是使用根據(jù)實(shí)施例的圖3所示的分支目標(biāo)緩沖器(BTB)302。BTB302可形成指令取得級102的一部分。BTB包含存儲多個(gè)條目(例如,304^304、3043、…、304N)的小型高速緩存存儲器。各條目包含例如識別以前執(zhí)行的指令和最近的目標(biāo)地址的信息。例如,如圖3所示,BTB302包含條目304^304^3043^…、304N,使得各條目具有標(biāo)簽部分306τ和數(shù)據(jù)部分306d。在實(shí)施例中,標(biāo)簽部分306τ包含識別以前執(zhí)行的指令的信息,并且數(shù)據(jù)部分306d包含識別相應(yīng)的以前執(zhí)行的指令的目標(biāo)地址的信息。
[0025]根據(jù)各種實(shí)施例,BTB302通過將指令地址與包含其例如304^304^304^...、304N的各條目的數(shù)據(jù)部分306D進(jìn) 行比較來起作用,以確定條目30^30^30^…、304N中是否有與指令地址對應(yīng)的任意條目。如果存在匹配(或者,有時(shí)稱為“命中”),那么該條目的相關(guān)數(shù)據(jù)部分306d可被用于確定分支的目標(biāo)地址。這為流水線節(jié)省了與計(jì)算目標(biāo)地址相關(guān)的任何延遲。
[0026]圖4是示出根據(jù)各種實(shí)施例的BTB302遵循的處理400的流程圖。如圖4所示,處理400在步驟402中開始。BTB302在步驟404中接收指令地址404。
[0027]指令地址然后與各條目(例如,30^30^30^…、304N)相比較。特別地,根據(jù)各種實(shí)施例,條目的標(biāo)簽部分306τ被用于比較條目與指令地址。
[0028]在步驟408中,方法400確定是否存在與指令地址匹配或?qū)?yīng)的任意的標(biāo)簽部分306τ。如果確定在步驟408中存在匹配,那么ΒΤΒ302使用數(shù)據(jù)部分306D以確定指令的適當(dāng)?shù)哪繕?biāo)地址。但是,如果確定在步驟408中不存在匹配,那么強(qiáng)制指令取得器102正常地計(jì)算目標(biāo)地址,根據(jù)各種實(shí)施例,這種計(jì)算可引起延遲。在步驟414中,方法400結(jié)束。
[0029]當(dāng)返回型指令是BTB302的一部分時(shí),出現(xiàn)有趣的情況。返回型指令包含寄存器間接分支,并因此可具有動態(tài)目標(biāo)預(yù)測。即,對于同一程序計(jì)數(shù)器,下一取得地址可不同,這依賴于取得和執(zhí)行返回指令的指令代碼路徑。返回型指令的這種性能給BTB302尺寸施加了壓力。但是,能夠?qū)TB302分成專用返回緩沖器和專用非返回緩沖器以減少這種壓力。在圖5中示出這種方案。
[0030]圖5是示出包含BTB502和返回預(yù)測棧(RPS)510的系統(tǒng)500的功能框圖。BTB502包含返回緩沖器504、非返回緩沖器506和多路復(fù)用器508。另外,BTB502具有輸入512和輸出514。
[0031]根據(jù)各種實(shí)施例,返回緩沖器504被配置為存儲與返回型指令對應(yīng)的多個(gè)條目。如圖5所示,返回緩沖器504能夠保持P個(gè)條目,每個(gè)條目可保持T位標(biāo)簽數(shù)據(jù)。條目中的每一個(gè)代表某種形式的返回型指令的程序計(jì)數(shù)器。根據(jù)一些實(shí)施例,返回緩沖器504中的條目可以不具有相關(guān)的目標(biāo)地址或與它們相關(guān)的數(shù)據(jù)部分306d。返回緩沖器也可被配置為基于接收的指令地址是否與其條目中的某一個(gè)對應(yīng)來產(chǎn)生控制信號516。由于返回緩沖器504僅包含標(biāo)簽且不包含目標(biāo)地址,因此,來自返回緩沖器的命中能夠迅速解決。這可導(dǎo)致更有效的返回預(yù)測,這又產(chǎn)生更高的處理速度。
[0032]非返回緩沖器506包含與非返回型指令有關(guān)的M個(gè)條目。在實(shí)施例中,各條目包含標(biāo)簽部分506τ和數(shù)據(jù)部分506d。標(biāo)簽部分506τ可包含識別以前執(zhí)行的指令的信息,并且,數(shù)據(jù)部分506D包含識別相應(yīng)的以前執(zhí)行的指令的目標(biāo)地址的信息。根據(jù)一些實(shí)施例,非返回緩沖器506中的條目的數(shù)量M可比返回緩沖器504中的條目的數(shù)量P多。
[0033]根據(jù)各種實(shí)施例,多路復(fù)用器508在從非返回緩沖器506接收的數(shù)據(jù)和從RPS510接收的數(shù)據(jù)之間進(jìn)行多路復(fù)用。多路復(fù)用器508可例如從返回緩沖器504接收控制信號516,并且基于控制信號向輸出514發(fā)送非返回?cái)?shù)據(jù)506D或來自RPS510的數(shù)據(jù)。在返回緩沖器具有與輸入指令地址對應(yīng)的條目時(shí),返回緩沖器504產(chǎn)生導(dǎo)致多路復(fù)用器508輸出來自RPS510的數(shù)據(jù)的控制信號516。相反,當(dāng)在返回緩沖器504中不存在與輸入指令地址對應(yīng)的條目時(shí),返回緩沖器504產(chǎn)生導(dǎo)致多路復(fù)用器508輸出來自非返回緩沖器506的數(shù)據(jù)506D的控制信號516。
[0034]返回預(yù)測棧(RPS) 510包含用作用于預(yù)測返回指令的機(jī)制的多個(gè)條目。在實(shí)施例中,RPS510中的各條目與返回型指令對應(yīng),并包含相關(guān)指令的目標(biāo)地址。如上所述,為了提高來自返回緩沖器504并由此來自BTB502的命中速度,返回緩沖器的P個(gè)條目都不包含相應(yīng)指令的目標(biāo)地址。事實(shí)上,返回型指令的目標(biāo)地址存儲于RPS510中。因此,當(dāng)在返回緩沖器504中存在命中時(shí),從RPS510的頭部取得目標(biāo)地址。這是在出現(xiàn)這種命中時(shí)多路復(fù)用器508可接收到導(dǎo)致其輸出來自RPS的數(shù)據(jù)(例如,目標(biāo)地址)的控制信號516的原因。
[0035]圖6示出根據(jù)各種實(shí)施例的通過使用BTB302取得目標(biāo)地址的方法600。方法在步驟602中開始。在步驟604中,接收指令地址以確定該指令地址是否處于BTB302中。
[0036]在步驟606中,方法確定接收的指令地址是否處于返回緩沖器504中。根據(jù)各種實(shí)施例,可通過確定是否存在存儲于返回緩沖器504中的任意標(biāo)簽與接收的指令地址對應(yīng),來確定接收的地址是否處于返回緩沖器504中。
[0037]如果在步驟606中確定指令地址與返回緩沖器504中的某一個(gè)條目對應(yīng),那么,在步驟608中,在返回緩沖器具有與輸入指令地址對應(yīng)的條目時(shí),返回緩沖器504產(chǎn)生導(dǎo)致多路復(fù)用器508輸出來自RPS510的數(shù)據(jù)的控制信號516。
[0038]在步驟610中,可基于控制信號輸出適當(dāng)?shù)臄?shù)據(jù)。即,由于返回緩沖器504檢測到指令地址與其條目中的某一個(gè)對應(yīng)(例如,“命中”),因此,返回緩沖器產(chǎn)生適當(dāng)?shù)目刂菩盘栆詫?dǎo)致多路復(fù)用器508輸出來自RPS510的數(shù)據(jù)。來自RPS510的數(shù)據(jù)與適于指令地址的目標(biāo)地址對應(yīng)。一旦通過多路復(fù)用器508輸出來自RPS510的數(shù)據(jù),處理就可在步驟612中結(jié)束。[0039]但是,如果在步驟606中確定指令地址不與返回緩沖器中的條目對應(yīng),那么在步驟614中確定是否存在非返回緩沖器506中的任意條目與指令地址對應(yīng)。根據(jù)各種實(shí)施例,可通過比較非返回緩沖器的標(biāo)簽部分506τ與指令地址以確定是否存在相應(yīng)的條目,來進(jìn)行這種確定。
[0040]如果確定指令地址與非返回緩沖器506中的條目中的某一個(gè)對應(yīng)(例如,如果存在“命中”),那么,在步驟616中,可產(chǎn)生控制信號以輸出來自非返回緩沖器506的數(shù)據(jù)。在步驟610中,多路復(fù)用器基于控制信號輸出來自非返回緩沖器506的數(shù)據(jù)506d。
[0041]如果在步驟614中確定在非返回緩沖器506中不存在“命中”,那么指令取得級102必須計(jì)算目標(biāo)地址并且如上面描述的那樣引起延遲。方法600在步驟612中結(jié)束。
[0042]方法600示出當(dāng)在步驟606在返回緩沖器中不存在命中時(shí)確定是否在非返回緩沖器中存在“命中”。但是,根據(jù)各種實(shí)施例,也可以簡單地在非返回緩沖器中假定“命中”。圖7示出這種方案。
[0043]圖7是示出根據(jù)各種實(shí)施例的取得目標(biāo)地址的方法700的流程圖。方法在步驟702中開始。在步驟704中,接收指令地址以確定該指令地址是否處于BTB302中。
[0044]在步驟706中,方法確定接收的指令地址是否處于返回緩沖器504中。根據(jù)各種實(shí)施例,可通過確定是否存在存儲于返回緩沖器504中的任意標(biāo)簽與接收的指令地址對應(yīng),來確定接收的地址是否處于返回緩沖器504中。
[0045]如果在步驟706中確定指令地址與返回緩沖器504中的條目中的某一個(gè)對應(yīng),那么,在步驟708中,當(dāng)返回緩沖器具有與輸入指令地址對應(yīng)的條目時(shí),返回緩沖器504產(chǎn)生導(dǎo)致多路復(fù)用器508輸出來自RPS510的數(shù)據(jù)的控制信號516。
[0046]在步驟710中,可基于控制信號輸出適當(dāng)?shù)臄?shù)據(jù)。即,由于返回緩沖器504檢測到指令地址與其條目中的某一個(gè)對應(yīng)(例如,“命中”),因此返回緩沖器產(chǎn)生適當(dāng)?shù)目刂菩盘栆詫?dǎo)致多路復(fù)用器508輸出來自RPS510的數(shù)據(jù)。來自RPS510的數(shù)據(jù)與適于指令地址的目標(biāo)地址對應(yīng)。一旦通過多路復(fù)用器508輸出來自RPS510的數(shù)據(jù),處理就在步驟712中結(jié)束。
[0047]如果在步驟706中確定指令地址不與返回緩沖器504中的條目對應(yīng),那么可假定非返回緩沖器將具有命中并且可基于該假定設(shè)定控制信號。因此,控制信號516可被設(shè)定,以導(dǎo)致多路復(fù)用器508輸出來自非返回緩沖器506的506d。并且,在步驟712中,可輸出適當(dāng)?shù)臄?shù)據(jù)。
[0048]雖然以上描述了本發(fā)明的各種實(shí)施例,但應(yīng)理解,它們是作為例子而不是限制給出的。計(jì)算機(jī)領(lǐng)域的技術(shù)人員很容易理解,在不背離本發(fā)明的精神和范圍的情況下,可在其中提出形式和細(xì)節(jié)的各種變化。并且,應(yīng)當(dāng)理解,是這里提供的本發(fā)明的詳細(xì)的描述而不是
【發(fā)明內(nèi)容】
和摘要部分要被用于解釋權(quán)利要求。
【發(fā)明內(nèi)容】
和摘要部分可闡述發(fā)明人設(shè)想的本發(fā)明的所有示例性實(shí)施例中的一個(gè)或更多個(gè)而不是其全部。
[0049]例如,除了使用硬件的實(shí)施方式(例如,在中央處理單元(“CPU”)、微處理器、微控制器、數(shù)字信號處理器、處理器核、片上系統(tǒng)(“S0C”)或任何其它可編程或電子裝置內(nèi)或者與其耦合)以外,也可通過例如設(shè)置在被配置為存儲軟件的計(jì)算機(jī)可用(例如,可讀)介質(zhì)中的軟件(例如,以諸如源、對象或機(jī)器語言等任何形式設(shè)置的計(jì)算機(jī)可讀代碼、程序代碼、指令和/或數(shù)據(jù))來實(shí)現(xiàn)實(shí)施方式。這種軟件可啟用例如在這里描述的裝置和方法的功能、制造、建模、模擬、描述和/或測試。例如,可通過使用一般編程語言(例如,C、C++)、⑶SII數(shù)據(jù)庫、包含Verilog HDL,VHDL和SystemC寄存器轉(zhuǎn)換級(RTL)等的硬件描述語言(HDL)或其它可用程序、數(shù)據(jù)庫和/或電路(即,電路原理圖)捕獲工具來實(shí)現(xiàn)它。實(shí)施例可被設(shè)置在包含半導(dǎo)體、磁盤、光盤(例如,CD-ROM、DVD-ROM等)的任何已知的非暫時(shí)性計(jì)算機(jī)可用介質(zhì)中。
[0050]應(yīng)當(dāng)理解,在這里描述的裝置和方法實(shí)施例可包含于諸如微處理器核(例如,以HDL體現(xiàn))的半導(dǎo)體IP核中并在集成電路的制造中被轉(zhuǎn)換成硬件。另外,在這里描述的裝置和方法可體現(xiàn)為硬件和軟件的組合。因此,本發(fā)明不應(yīng)通過上述示例性實(shí)施例中的任一個(gè)被限定,而應(yīng)僅根據(jù)以下的權(quán)利要求和它們的等同被限定。應(yīng)當(dāng)理解,可通過啟用例如為上述的部件的各種軟件例程、模塊、要素或指令的功能的硬件部件或者與其協(xié)作,實(shí)現(xiàn)或制造利用硬件和軟件的組合的實(shí)施例。
[0051]以上借助于示出特定功能及其關(guān)系的實(shí)現(xiàn)的功能構(gòu)建塊描述了這里的實(shí)施例。這里為了便于描述任意地限定了這些功能構(gòu)建塊的邊界。只要適當(dāng)?shù)貓?zhí)行特定功能及其關(guān)系,就可限定替代性的邊界。
[0052]特定實(shí)施例的以上描述如此徹底地揭示了本發(fā)明的一般本質(zhì),以至于其它人在不背離本發(fā)明的一般概念的情況下不通過過多的實(shí)驗(yàn)就可通過應(yīng)用本領(lǐng)域中的知識很容易地修改和/或調(diào)整諸如特定實(shí)施例的各種應(yīng)用。因此,基于這里給出的教導(dǎo)和指導(dǎo),這些調(diào)整和修改要處于公開的實(shí)施例的意思和等同范圍內(nèi)。應(yīng)當(dāng)理解,這里的措詞或術(shù)語是為了描述而非限制,使得要由本領(lǐng)域技術(shù)人員鑒于這些教導(dǎo)和指導(dǎo)解釋本說明書的術(shù)語或措詞。
【權(quán)利要求】
1.一種分支目標(biāo)緩沖器BTB,包括: 非返回緩沖器,被配置為存儲多個(gè)非返回條目,其中每個(gè)非返回條目與非返回型指令對應(yīng); 返回緩沖器,被配置為存儲多個(gè)返回條目,并且進(jìn)一步被配置為產(chǎn)生控制信號,其中每個(gè)返回條目與返回型指令對應(yīng);和 多路復(fù)用器,被配置為接收產(chǎn)生的控制信號并基于控制信號輸出來自非返回緩沖器的數(shù)據(jù)或者來自返回預(yù)測棧RPS的數(shù)據(jù)。
2.根據(jù)權(quán)利要求1的BTB,其中,返回緩沖器進(jìn)一步被配置為確定多個(gè)返回條目中是否有某一個(gè)包含與指令地址對應(yīng)的標(biāo)簽。
3.根據(jù)權(quán)利要求2的BTB,其中,返回緩沖器進(jìn)一步被配置為響應(yīng)于確定多個(gè)返回條目中的某一個(gè)包含與指令地址對應(yīng)的標(biāo)簽而產(chǎn)生控制信號,以使得該控制信號導(dǎo)致多路復(fù)用器輸出來自RPS的數(shù)據(jù)。
4.根據(jù)權(quán)利要求2的BTB,其中,返回緩沖器進(jìn)一步被配置為響應(yīng)于確定多個(gè)返回條目都不包含與指令地址對應(yīng)的標(biāo)簽而產(chǎn)生控制信號,以使得該控制信號導(dǎo)致多路復(fù)用器輸出來自非返回緩沖器的數(shù)據(jù)。
5.根據(jù)權(quán)利要求1的BTB,其中,非返回緩沖器被配置為存儲數(shù)量比返回緩沖器多的條目。
6.根據(jù)權(quán)利要求1的BTB,其中,多個(gè)非返回條目包含與非返回型指令對應(yīng)的標(biāo)簽部分和數(shù)據(jù)部分。
7.根據(jù)權(quán)利要求1的BTB,其中,多個(gè)返回條目包含代表返回型指令的程序計(jì)數(shù)器的標(biāo)簽。
8.根據(jù)權(quán)利要求1的BTB,其中,非返回緩沖器包含標(biāo)簽部分和數(shù)據(jù)部分。
9.根據(jù)權(quán)利要求1的BTB,其中,非返回緩沖器被配置為確定多個(gè)非返回條目中是否有某一個(gè)與指令地址對應(yīng)。
10.根據(jù)權(quán)利要求1的BTB,其中,返回條目不包含目標(biāo)地址。
11.一種通過使用分支目標(biāo)緩沖器BTB取得地址的方法,包括: 接收與指令地址有關(guān)的數(shù)據(jù); 確定存儲于返回緩沖器中的多個(gè)返回條目中是否有某一個(gè)與指令地址對應(yīng); 基于所述確定輸出來自返回預(yù)測棧RPS和非返回緩沖器的數(shù)據(jù)。
12.根據(jù)權(quán)利要求11的方法,其中,所述確定包括多個(gè)返回條目中是否有某一個(gè)包含與指令地址對應(yīng)的標(biāo)簽。
13.根據(jù)權(quán)利要求11的方法,還包括基于所述確定產(chǎn)生控制信號。
14.根據(jù)權(quán)利要求13的方法,還包括當(dāng)確定多個(gè)返回條目中的某一個(gè)包含與指令地址對應(yīng)的標(biāo)簽時(shí),基于產(chǎn)生的控制信號輸出來自RPS的數(shù)據(jù)。
15.根據(jù)權(quán)利要求13的方法,還包括當(dāng)確定多個(gè)返回條目都不包含與指令地址對應(yīng)的標(biāo)簽時(shí),基于產(chǎn)生的控制信號輸出來自非返回緩沖器的數(shù)據(jù)。
16.根據(jù)權(quán)利要求11的方法,還包括在非返回緩沖器中存儲多個(gè)非返回條目,其中,各條目與非返回型指令對應(yīng)。
17.根據(jù)權(quán)利要求16的方法,還包括確定多個(gè)非返回條目中的某一個(gè)與指令地址對應(yīng)。
18.根據(jù)權(quán)利要求16的方法,其中,非返回條目中的每一個(gè)包含標(biāo)簽部分和數(shù)據(jù)部分。
19.根據(jù)權(quán)利要求11的方法,其中,多個(gè)返回條目中的每一個(gè)包含代表返回型指令的程序計(jì)數(shù)器的標(biāo)簽。
20.根據(jù)權(quán)利要求 11的方法,其中,返回條目不包含目標(biāo)地址。
【文檔編號】G06F9/38GK104020982SQ201410069516
【公開日】2014年9月3日 申請日期:2014年2月28日 優(yōu)先權(quán)日:2013年3月1日
【發(fā)明者】P·博塔, S·帕塔爾 申請人:Mips技術(shù)公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
衡南县| 荆门市| 胶州市| 张家界市| 商河县| 湖口县| 嘉定区| 左云县| 禹城市| 河西区| 门源| 浏阳市| 盘锦市| 东乡族自治县| 南乐县| 丹巴县| 石嘴山市| 泽库县| 吴旗县| 疏勒县| 无极县| 昌平区| 桃园市| 布尔津县| 武山县| 手游| 尖扎县| 北碚区| 会泽县| 漳浦县| 互助| 凤阳县| 密云县| 上虞市| 西宁市| 清水河县| 泗阳县| 酒泉市| 平潭县| 宜川县| 彩票|