• 
    <ul id="o6k0g"></ul>
    <ul id="o6k0g"></ul>
    當(dāng)前位置: 首頁 > 專利查詢>高通股份有限公司專利>正文

    滑動窗口、基于區(qū)塊的分支目標(biāo)地址高速緩沖存儲器制造技術(shù)

    技術(shù)編號:8532483 閱讀:232 留言:0更新日期:2013-04-04 15:16
    一種滑動窗口、基于區(qū)塊的分支目標(biāo)地址高速緩沖存儲器(BTAC)包括多個(gè)條目,每一條目與含有至少一個(gè)已被評估為經(jīng)采取的分支指令的指令區(qū)塊相關(guān)聯(lián),且具有與所述區(qū)塊中的第一指令的地址相關(guān)聯(lián)的標(biāo)簽。所述區(qū)塊每一者對應(yīng)于從例如I-高速緩沖存儲器等存儲器獲取的指令群組。在分支指令包含在兩個(gè)或兩個(gè)以上獲取群組中處,其也包含在與BTAC條目相關(guān)聯(lián)的兩個(gè)或兩個(gè)以上指令區(qū)塊中。所述滑動窗口、基于區(qū)塊的BTAC通過存儲與不同的指令區(qū)塊(其每一者含有所述經(jīng)采取的分支指令中的至少一者)相關(guān)聯(lián)的BTAC條目而允許存儲處于同一指令區(qū)塊中的兩個(gè)或兩個(gè)以上經(jīng)采取的分支指令的分支目標(biāo)地址(BTA),而不需要在每一BTAC條目中提供多個(gè)BTA存儲空間。

    【技術(shù)實(shí)現(xiàn)步驟摘要】

    本專利技術(shù)大體上涉及處理器領(lǐng)域,且具體來說,涉及具有滑動窗口組織的基于區(qū)塊的分支目標(biāo)地址高速緩沖存儲器。
    技術(shù)介紹
    微處理器在很多應(yīng)用中執(zhí)行計(jì)算任務(wù)。改進(jìn)處理器性能是永恒的設(shè)計(jì)目標(biāo),通過經(jīng)由增強(qiáng)的軟件來實(shí)現(xiàn)更快的操作和/或增加的功能性,來推動產(chǎn)品改進(jìn)。在許多嵌入式應(yīng)用中,例如便攜式電子裝置,節(jié)省功率并減少芯片大小在處理器設(shè)計(jì)和建構(gòu)中也是重要的目標(biāo)。大多數(shù)現(xiàn)代處理器采用管線化架構(gòu),其中連續(xù)指令(其每一者具有多個(gè)執(zhí)行步驟)在執(zhí)行中是重疊的。這種開發(fā)連續(xù)指令流中的指令之間的并行度的能力對改進(jìn)的處理器性能作出顯著貢獻(xiàn)。在理想條件下且在于一個(gè)循環(huán)中完成每一管級的處理器中,在填充管線的短暫初始過程之后,指令可在每一循環(huán)完成執(zhí)行。實(shí)際上從沒實(shí)現(xiàn)此類理想條件,這歸因于多種因素,其中包含指令之間的數(shù)據(jù)相依性(數(shù)據(jù)冒險(xiǎn))、例如分支的控制相依性(控制冒險(xiǎn))、處理器資源分配沖突(結(jié)構(gòu)冒險(xiǎn))、中斷、高速緩沖存儲器未命中等。處理器設(shè)計(jì)的主要目標(biāo)是避免這些冒險(xiǎn),且保持管線“充滿”。所有現(xiàn)實(shí)的程序都包含分支指令,其可包括無條件或條件分支指令。分支指令的實(shí)際分支行為常常是未知的,直到指令被評估為在管線深處。這產(chǎn)生使管線停止的控制冒險(xiǎn),因?yàn)樘幚砥鞑恢涝诜种е噶詈螳@取哪些指令,且將直到分支指令評估之后才知道。大多數(shù)現(xiàn)代處理器采用各種形式的分支預(yù)測,借此在管線中較早地預(yù)測條件分支指令的分支行為和分支目標(biāo)地址,且處理器基于分支預(yù)測以推測方式獲取并執(zhí)行指令,因此保持管線充滿。如果預(yù)測是正確的,那么性能得以最大化,且功率消耗得以最小化。當(dāng)實(shí)際評估分支指令時(shí),如果分支被錯(cuò)誤預(yù)測,那么必須從管線中清洗以推測方式獲取的指令,且從正確的分支目標(biāo)地址獲取新的指令。經(jīng)錯(cuò)誤預(yù)測的分支不利地影響處理器性能和功率消耗。分支預(yù)測存在兩個(gè)組成部分條件評估和分支目標(biāo)地址。條件評估(當(dāng)然,僅與條件分支指令相關(guān))是二進(jìn)制決策分支被采取(導(dǎo)致執(zhí)行跳到不同的代碼序列),或不被采取(在此情況下,處理器執(zhí)行緊接在條件分支指令之后的下一順序指令)。分支目標(biāo)地址(BTA)是控制針對評估為采取的無條件分支指令或條件分支指令而分支到的地址。某些共同分支指令將BTA包含在指令操作碼中,或包含借其可容易地計(jì)算BTA的偏移。對于其它分支指令,不計(jì)算BTA,直到其處于管線深處,且因此必須被預(yù)測。一種已知的BTA預(yù)測技術(shù)利用分支目標(biāo)地址高速緩沖存儲器(BTAC)。現(xiàn)有技術(shù)中已知的BTAC是由分支指令地址(BIA)標(biāo)引的完全聯(lián)合的高速緩沖存儲器,其中每一數(shù)據(jù)位置(或高速緩沖存儲器“線”)含有單個(gè)BTA。當(dāng)分支指令在管線中評估為被采取且其實(shí)際BTA經(jīng)計(jì)算時(shí),(例如,在寫回管級期間)將BIA和BTA寫入到BTAC。當(dāng)獲取新的指令時(shí),與指令高速緩沖存儲器(或1-高速緩沖存儲器)并行地存取BTAC。如果指令地址在BTAC中命中,那么處理器知道所述指令是分支指令(這是在解碼從1-高速緩沖存儲器獲取的指令之前),且提供經(jīng)預(yù)測的BTA,其為分支指令的先前執(zhí)行的實(shí)際BTA。如果分支預(yù)測電路預(yù)測分支將被采取,那么指令獲取開始于經(jīng)預(yù)測的BTA。如果分支被預(yù)測為不被采取,那么指令獲取順序地繼續(xù)下去。應(yīng)注意,術(shù)語BTAC也用于此項(xiàng)技術(shù)中以表示將飽和計(jì)數(shù)器與BIA相關(guān)聯(lián)的高速緩沖存儲器,因此僅提供條件評估預(yù)測(即,采取或不采取)。這不是本文所使用的此術(shù)語的含義。高性能處理器可一次從1-高速緩沖存儲器獲取一個(gè)以上指令。舉例來說,可包括例如四個(gè)指令的整個(gè)高速緩沖存儲器線可被獲取到指令獲取緩沖器中,所述指令獲取緩沖器順序地將所述指令饋送到管線中。轉(zhuǎn)讓給本申請案的受讓人并以引用的方式并入本文的第11/089,072號專利申請案揭示了 BTAC在每一高速緩沖存儲器線中存儲兩個(gè)或兩個(gè)以上BTA,且標(biāo)引分支預(yù)測偏移表(BPOT)以確定哪一 BTA被采取為BTAC命中的經(jīng)預(yù)測的BTA。BPOT避免了成本較高的具有多個(gè)讀取端口的BTAC硬件結(jié)構(gòu),所述多個(gè)讀取端口原本是并行地存取多個(gè)BTA所必需的。轉(zhuǎn)讓給本申請案的受讓人并以引用的方式并入本文的第_號專利申請案“基于區(qū)塊的分支目標(biāo)地址高速緩沖存儲器”揭示了基于區(qū)塊的BTAC存儲多個(gè)條目,每一條目與一指令區(qū)塊相關(guān)聯(lián),其中所述區(qū)塊中的指令中的一者或一者以上是已評估為被采取的分支指令。所述BTAC條目包含相關(guān)聯(lián)的區(qū)塊內(nèi)的哪個(gè)指令是經(jīng)采取的分支指令的指示符,以及經(jīng)采取的分支的BTA。BTAC條目由區(qū)塊中的所有指令共同的地址位標(biāo)引(即,通過截?cái)噙x擇區(qū)塊內(nèi)的指令的較低階地址位)。因此區(qū)塊大小和相對的區(qū)塊邊界兩者都是固定的。在每一區(qū)塊僅包含一個(gè)經(jīng)采取的分支指令的情況下,基于區(qū)塊的BTAC運(yùn)作良好。當(dāng)區(qū)塊內(nèi)的兩個(gè)或兩個(gè)以上分支指令評估為被采取時(shí),必須作出決策以存儲一個(gè)分支指令的BTA而不存儲另一分支指令的BTA,從而在另一分支評估為被采取時(shí)導(dǎo)致性能和功率降級。每一 BTAC條目中可存儲多個(gè)BTA ;然而,在指令區(qū)塊不包含與BTAC條目中的BTA存儲位置一樣多的經(jīng)采取的分支指令的正常情況下,這浪費(fèi)了寶貴的硅區(qū)域。
    技術(shù)實(shí)現(xiàn)思路
    根據(jù)本文所揭示的一個(gè)或一個(gè)以上實(shí)施例,滑動窗口、基于區(qū)塊的BTAC包括多個(gè)條目,每一條目與含有至少一個(gè)已被評估為經(jīng)采取的分支指令的指令的區(qū)塊相關(guān)聯(lián),且由所述區(qū)塊中的第一指令的地址標(biāo)引。區(qū)塊大小是固定的(且對應(yīng)于指令獲取群組的大小),但區(qū)塊邊界不是固定的,且指令區(qū)塊可重疊。因此分支指令可包含在由BTAC條目表示的兩個(gè)或兩個(gè)以上指令區(qū)塊中。在某些情況下,這允許所述滑動窗口、基于區(qū)塊的BTAC通過界定新區(qū)塊并創(chuàng)建相關(guān)聯(lián)的BTAC條目而存儲處于單個(gè)指令區(qū)塊中的兩個(gè)或兩個(gè)以上經(jīng)采取的分支指令的BTA,通過增加每一 BTAC條目的BTA存儲容量而不會浪費(fèi)存儲器。一個(gè)實(shí)施例涉及一種在處理器中預(yù)測分支指令的方法。將與包含至少一個(gè)已被評估為經(jīng)采取的分支指令的兩個(gè)或兩個(gè)以上指令的區(qū)塊相關(guān)聯(lián)的條目存儲在分支目標(biāo)地址高速緩沖存儲器(BTAC)中,BTAC條目具有與所述區(qū)塊中的第一指令的地址相關(guān)聯(lián)的標(biāo)簽。在獲取指令時(shí),存取BTAC以確定一個(gè)或一個(gè)以上區(qū)塊中的指令是否為條件分支指令。另一實(shí)施例涉及一種處理器。所述處理器包含存儲多個(gè)條目的分支目標(biāo)地址高速緩沖存儲器(BTAC),每一條目與含有至少一個(gè)已被評估為經(jīng)采取的分支指令的兩個(gè)或兩個(gè)以上指令的區(qū)塊相關(guān)聯(lián),且所述BTAC條目具有與所述區(qū)塊中的第一指令的地址相關(guān)聯(lián)的標(biāo)簽。所述處理器還包含指令執(zhí)行管線,其經(jīng)操作以在獲取指令群組時(shí)使用指令地址來標(biāo)引 BTAC。附圖說明圖1是處理器的一個(gè)實(shí)施例的功能方框圖。圖2是分支目標(biāo)地址高速緩沖存儲器和伴隨電路的一個(gè)實(shí)施例的功能方框圖。具體實(shí)施例方式圖1描繪處理器10的功能方框圖。處理器10根據(jù)控制邏輯11執(zhí)行指令執(zhí)行管線12中的指令。在某些實(shí)施例中,管線12可為具有多個(gè)并行管線的超標(biāo)量設(shè)計(jì)。管線12包含組織成管級的各種寄存器或鎖存器16,以及一個(gè)或一個(gè)以上算術(shù)邏輯單元(ALU) 18。通用寄存器(GPR)堆20提供構(gòu)成存儲器層級的頂部的寄存器。管線12使用由指令側(cè)翻譯后備緩沖器(ITLB) 24管理的存儲器地址翻譯和許可來從指令高速緩沖存儲器(1-高速緩沖存儲器)22獲取指令。管線12并行地將指令地址提供到滑動窗口、基于區(qū)塊的分本文檔來自技高網(wǎng)
    ...

    【技術(shù)保護(hù)點(diǎn)】
    一種預(yù)測包含在指令高速緩沖存儲器I?cache的指令線中的分支指令的方法,其包括:僅當(dāng)將有一分支指令評估為被采取時(shí),才將第一分支目標(biāo)地址高速緩沖存儲器BTAC條目存儲在所述BTAC中,其中所述分支指令和第二分支指令位于第一指令區(qū)塊中,所述第一指令區(qū)塊存儲在所述I?cache的線中;僅當(dāng)將所述第二分支指令評估為被采取時(shí),才將第二BTAC條目存儲在所述BTAC中,其中具有所述第二分支指令的第二指令區(qū)塊存儲在所述I?cache的一個(gè)或多個(gè)線中且與所述第一指令區(qū)塊重疊;其中所述第一BTAC條目包括第一標(biāo)簽字段,所述第一標(biāo)簽字段具有所述第一指令區(qū)塊中的第一指令的全指令地址,且所述第二BTAC條目包括第二標(biāo)簽字段,所述第二標(biāo)簽字段具有存儲于所述I?cache線中的任意全指令地址的所述第二指令區(qū)塊的全指令地址;從始于所述第二指令區(qū)塊的所述全指令地址的所述I?cache中獲取指令群組,將所述全指令地址與BTAC條目的標(biāo)簽字段進(jìn)行比較以確定與所述第二標(biāo)簽字段的匹配;以及一旦確定與所述第二標(biāo)簽字段的匹配,就使用所述第二BTAC條目中的指示符以確定所述第二指令區(qū)塊中的哪一個(gè)指令是所述第二經(jīng)采取的分支指令;并且,從存儲在所述第二BTAC條目中的所述分支目標(biāo)地址中獲取指令。...

    【技術(shù)特征摘要】
    2006.06.05 US 11/422,1861.一種預(yù)測包含在指令高速緩沖存儲器1-cache的指令線中的分支指令的方法,其包括 僅當(dāng)將有一分支指令評估為被采取時(shí),才將第一分支目標(biāo)地址高速緩沖存儲器BTAC條目存儲在所述BTAC中,其中所述分支指令和第二分支指令位于第一指令區(qū)塊中,所述第一指令區(qū)塊存儲在所述1-cache的線中; 僅當(dāng)將所述第二分支指令評估為被采取時(shí),才將第二 BTAC條目存儲在所述BTAC中,其中具有所述第二分支指令的第二指令區(qū)塊存儲在所述1-cache的一個(gè)或多個(gè)線中且與所述第一指令區(qū)塊重疊; 其中所述第一 BTAC條目包括第一標(biāo)簽字段,所述第一標(biāo)簽字段具有所述第一指令區(qū)塊中的第一指令的全指令地址,且所述第二 BTAC條目包括第二標(biāo)簽字段,所述第二標(biāo)簽字段具有存儲于所述1-cache線中的任意全指令地址的所述第二指令區(qū)塊的全指令地址; 從始于所述第二指令區(qū)塊的所述全指令地址的所述1-cache中獲取指令群組,將所述全指令地址與BTAC條目的標(biāo)簽字段進(jìn)行比較以確定與所述第二標(biāo)簽字段的匹配;以及一旦確定與所述第二標(biāo)簽字段的匹配,就使用所述第二 BTAC條目中的指示符以確定所述第二指令區(qū)塊中的哪一個(gè)指令是所述第二經(jīng)采取的分支指令;并且,從存儲在所述第二 BTAC條目中的所述分支目標(biāo)地址中獲取指令。2.根據(jù)權(quán)利要求1所述的方法,其進(jìn)一步包括一旦獲取指令區(qū)塊,就存取所述BTAC以確定對應(yīng)的指令區(qū)塊中的指令是否是經(jīng)采取的指令。3.—種在處理器中...

    【專利技術(shù)屬性】
    技術(shù)研發(fā)人員:羅德尼·韋恩·史密斯詹姆斯·諾里斯·迪芬德費(fèi)爾布萊恩·邁克爾·斯坦普爾托馬斯·安德魯·薩托里烏斯
    申請(專利權(quán))人:高通股份有限公司
    類型:發(fā)明
    國別省市:

    網(wǎng)友詢問留言 已有0條評論
    • 還沒有人留言評論。發(fā)表了對其他瀏覽者有用的留言會獲得科技券。

    1
    主站蜘蛛池模板: 亚洲午夜无码久久久久小说| 久久无码无码久久综合综合| 无码精品人妻一区二区三区免费| 精品无码成人网站久久久久久| 亚洲无码视频在线| 人妻丰满熟妇av无码区不卡| 人妻精品久久无码区洗澡| 一本无码中文字幕在线观| 无码狠狠躁久久久久久久| 免费看成人AA片无码视频吃奶| 精品久久亚洲中文无码| 久久久久无码精品| 国产福利无码一区在线| 无码人妻丰满熟妇精品区| 免费无码AV一区二区| 高清无码午夜福利在线观看 | 黑人无码精品又粗又大又长 | 波多野结衣VA无码中文字幕电影| 中文无码喷潮在线播放| 国产爆乳无码视频在线观看3| 久久亚洲日韩看片无码| 中文精品无码中文字幕无码专区| 国产精品无码亚洲一区二区三区| 精品无码久久久久国产动漫3d| 亚洲av无码一区二区三区乱子伦| 亚洲AⅤ永久无码精品AA| 精品久久久无码人妻中文字幕豆芽| 日韩精品无码一区二区三区免费 | 亚洲精品无码久久千人斩| 无码av中文一二三区| 精品久久久无码中字| 无码少妇一区二区三区芒果| 亚洲AV无码一区二区大桥未久 | 久久久久亚洲AV无码去区首| 最新无码专区视频在线| 无码夫の前で人妻を侵犯| 精品久久亚洲中文无码| 无码精油按摩潮喷在播放| 麻豆亚洲AV成人无码久久精品| 无码精品人妻一区二区三区影院| 免费无码专区毛片高潮喷水 |