国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      用于轉(zhuǎn)移目標(biāo)的指令高速緩沖存儲(chǔ)器通路預(yù)測(cè)的制作方法

      文檔序號(hào):6414553閱讀:230來(lái)源:國(guó)知局
      專利名稱:用于轉(zhuǎn)移目標(biāo)的指令高速緩沖存儲(chǔ)器通路預(yù)測(cè)的制作方法
      技術(shù)領(lǐng)域
      本發(fā)明涉及高速緩沖存儲(chǔ)器通路預(yù)測(cè),更具體地說(shuō),涉及供執(zhí)行程序流中的指令之用的高速緩沖存儲(chǔ)器通路預(yù)測(cè)領(lǐng)域,其中所述程序流包括非順序?qū)傩缘闹噶睢?
      背景技術(shù)
      隨著集成電路技術(shù)向更小特征尺寸的發(fā)展,更快的中央處理單元(CPU)也因此正在發(fā)展。令人遺憾的是,主存儲(chǔ)器的訪問(wèn)時(shí)間還沒(méi)有與CPU的那些相匹配,其中所述主存儲(chǔ)器是隨機(jī)訪問(wèn)存儲(chǔ)器(RAM)的形式,并且其中通常存儲(chǔ)有指令數(shù)據(jù)。所述CPU必須訪問(wèn)這些較慢的設(shè)備,以求從其中檢索指令以便對(duì)指令進(jìn)行處理。在檢索這些指令的過(guò)程中,在CPU和較慢的RAM之間出現(xiàn)了瓶頸。通常,為了減少這種瓶頸的影響,在主存儲(chǔ)器和CPU之間提供高速緩沖存儲(chǔ)器,以便向具有較低等待時(shí)間的處理器提供最近使用的(MRU)指令和數(shù)據(jù)。
      對(duì)于本領(lǐng)域中普通技術(shù)人員已知的是,高速緩沖存儲(chǔ)器在尺寸方面通常較小,并且比主存儲(chǔ)器提供更快的訪問(wèn)時(shí)間。高速緩沖存儲(chǔ)器促進(jìn)了該更快的訪問(wèn)時(shí)間,所述高速緩沖存儲(chǔ)器通常駐留在處理器之內(nèi),或者離其非常近的地方。高速緩沖存儲(chǔ)器通常具有不同于主存儲(chǔ)器的物理類型。主存儲(chǔ)器使用電容器來(lái)存儲(chǔ)數(shù)據(jù),其中刷新周期是必需的,以便保持電容器上的電荷。另一方面,高速緩沖存儲(chǔ)器不需要像主存儲(chǔ)器那樣刷新。高速緩沖存儲(chǔ)器通常具有靜態(tài)隨機(jī)訪問(wèn)存儲(chǔ)器(SRAM)的形式,其中在沒(méi)有刷新的情況下使用大約六個(gè)晶體管存儲(chǔ)每個(gè)位。因?yàn)樵赟RAM之內(nèi)使用更多的晶體管來(lái)表示所述位,所以此類存儲(chǔ)器的每位的尺寸遠(yuǎn)大于動(dòng)態(tài)隨機(jī)存儲(chǔ)器,從而還比動(dòng)態(tài)隨機(jī)存儲(chǔ)器更加昂貴。因此,高速緩沖存儲(chǔ)器在計(jì)算機(jī)系統(tǒng)之內(nèi)可以少量地使用,其中將這種相對(duì)小的高速存儲(chǔ)器通常用于保存主存儲(chǔ)器塊的最近被處理器使用的內(nèi)容。
      高速緩沖存儲(chǔ)器的用途在于增加從主存儲(chǔ)器流入CPU的信息的指令和數(shù)據(jù)帶寬,并且用于減少涉及從主存儲(chǔ)器傳送信息的等待時(shí)間。帶寬可以確定在特定的時(shí)間量中可以傳送的信息量;等待時(shí)間確定花費(fèi)在檢索確定信息項(xiàng)上的時(shí)間,換言之,可以確定從請(qǐng)求的時(shí)間到遞送所述項(xiàng)目的時(shí)間所花費(fèi)的時(shí)間量。存在不同結(jié)構(gòu)的高速緩沖存儲(chǔ)器,用于提供增加的帶寬并且減少的等待時(shí)間,諸如直接映射的以及高速緩沖存儲(chǔ)器通路集合-關(guān)聯(lián)的。當(dāng)然,在高速緩沖存儲(chǔ)器設(shè)計(jì)中等待時(shí)間和帶寬兩者都很重要,并且對(duì)于許多本領(lǐng)域技術(shù)人員來(lái)說(shuō),事實(shí)上所述高速緩沖存儲(chǔ)器通路集合—關(guān)聯(lián)高速緩沖存儲(chǔ)器結(jié)構(gòu)是優(yōu)選的。
      在所述集合-關(guān)聯(lián)結(jié)構(gòu)中,以及在直接映射的高速緩沖存儲(chǔ)器結(jié)構(gòu)中,所述高速緩沖存儲(chǔ)器通常被配置為兩部分,即數(shù)據(jù)陣列和標(biāo)記陣列。所述標(biāo)記陣列用于存儲(chǔ)標(biāo)記地址,該標(biāo)記地址用于與存儲(chǔ)在數(shù)據(jù)陣列中的數(shù)據(jù)字節(jié)對(duì)應(yīng)。通常,每個(gè)標(biāo)記條目與數(shù)據(jù)陣列條目相關(guān)聯(lián),其中每個(gè)標(biāo)記條目存儲(chǔ)涉及每個(gè)數(shù)據(jù)陣列條目的索引信息。兩個(gè)陣列是二維的并且將它們編組成行和列。通常將數(shù)據(jù)陣列或者標(biāo)記陣列中的列稱為高速緩沖存儲(chǔ)器通路,其中在同一高速緩沖存儲(chǔ)器中可以存在一個(gè)以上的高速緩沖存儲(chǔ)器通路。由此,四個(gè)高速緩沖存儲(chǔ)器通路集合-關(guān)聯(lián)高速緩沖存儲(chǔ)器往往被配置為具有四列,即四條高速緩沖存儲(chǔ)器通路,其中數(shù)據(jù)和標(biāo)記陣列每個(gè)還具有4列。
      所述處理器按類似于裝配線的方式來(lái)執(zhí)行程序流中包含的指令。提供了處理器流水線來(lái)簡(jiǎn)化對(duì)程序流中包含的多個(gè)指令的處理器操作。術(shù)語(yǔ)處理器流水線指的是多個(gè)處理步驟或者階段,它旨在完成一項(xiàng)任務(wù);處理步驟越少,那么流水線就會(huì)越短并且越有效。將處理器流水線中的階段的深度定義為通過(guò)所述階段的時(shí)間延遲。由此,階段的深度影響處理器的操作頻率。因此,具有更多階段的更深的流水線已經(jīng)在處理器中實(shí)現(xiàn)。具有大量階段導(dǎo)致在每個(gè)階段中存在更短的時(shí)間延遲,由此給那些階段帶來(lái)更高的操作頻率。有效的處理器設(shè)計(jì)平衡了階段數(shù)量和通過(guò)所述階段的延遲。由此,階段數(shù)目和每個(gè)階段的深度都確定處理器的處理效率。在處理器流水線內(nèi),每個(gè)處理器流水線階段在將執(zhí)行傳遞給流水線內(nèi)的下一處理階段以前、執(zhí)行特定的任務(wù)。在處理器流水線內(nèi),順序地載入指令,由此,將一個(gè)指令的一部分在上一個(gè)指令之后處理。因?yàn)樗鎏幚砥魍瑫r(shí)對(duì)不同指令的不同階段起作用,所以可以使用流水線在更短的時(shí)間周期中執(zhí)行更多的指令,由此加速執(zhí)行程序流。一旦已經(jīng)全部地處理了指令,它就離開(kāi)流水線。
      在CPU執(zhí)行流水線中的指令期間,主存儲(chǔ)器和高速緩沖存儲(chǔ)器兩者都被訪問(wèn)。首先訪問(wèn)高速緩沖存儲(chǔ)器,以便查看對(duì)應(yīng)的數(shù)據(jù)字節(jié)是否滿足存儲(chǔ)器訪問(wèn)請(qǐng)求,如果不滿足所述存儲(chǔ)器訪問(wèn)請(qǐng)求,那么訪問(wèn)主存儲(chǔ)器。在高速緩沖存儲(chǔ)器訪問(wèn)操作中,由載入/存儲(chǔ)單元訪問(wèn)集合-關(guān)聯(lián)高速緩沖存儲(chǔ)器,所述載入/存儲(chǔ)單元為駐留在存儲(chǔ)器訪問(wèn)地址處的數(shù)據(jù)搜索數(shù)據(jù)高速緩沖存儲(chǔ)器。高速緩沖存儲(chǔ)器通路預(yù)測(cè)陣列是一種存儲(chǔ)器,其中將索引存儲(chǔ)到高速緩沖存儲(chǔ)器通路中,在高速緩沖存儲(chǔ)器通路上數(shù)據(jù)塊很可能駐留在數(shù)據(jù)陣列中。所述高速緩沖存儲(chǔ)器通路預(yù)測(cè)陣列通常在每個(gè)條目中存儲(chǔ)多個(gè)位,其中每個(gè)條目根據(jù)存儲(chǔ)器訪問(wèn)地址表明哪個(gè)高速緩沖存儲(chǔ)器通路已經(jīng)被最近使用(MRU)。將高速緩沖存儲(chǔ)器通路預(yù)測(cè)陣列的行與存儲(chǔ)器訪問(wèn)地址相關(guān)聯(lián)。由于在標(biāo)記比較之前訪問(wèn)潛在的高速緩沖存儲(chǔ)器通路,所以提供高速緩沖存儲(chǔ)器通路預(yù)測(cè)陣列潛在地減少了處理時(shí)間。當(dāng)執(zhí)行高速緩沖存儲(chǔ)器訪問(wèn)時(shí),高速緩沖存儲(chǔ)器通路預(yù)測(cè)陣列用于訪問(wèn)高速緩沖存儲(chǔ)器通路,在所述通路中可以潛在地駐留數(shù)據(jù),因此如果實(shí)現(xiàn)了正確的高速緩沖存儲(chǔ)器通路預(yù)測(cè),那么由此可以減少存儲(chǔ)器訪問(wèn)時(shí)間。當(dāng)然,當(dāng)順序的標(biāo)記查找跟隨有數(shù)據(jù)結(jié)構(gòu)查找時(shí),是這樣的情況。同時(shí)訪問(wèn)標(biāo)記和數(shù)據(jù)結(jié)構(gòu)的方法具有與基于高速緩沖存儲(chǔ)器通路預(yù)測(cè)的方法相同的訪問(wèn)時(shí)間。使用高速緩沖存儲(chǔ)器通路預(yù)測(cè)的優(yōu)點(diǎn)在于從數(shù)據(jù)陣列中,只訪問(wèn)單個(gè)預(yù)測(cè)的高速緩沖存儲(chǔ)器通路。因此,它允許降低功耗,并且使SRAM存儲(chǔ)器電路中的物理布局更佳。
      在高速緩沖存儲(chǔ)器通路預(yù)測(cè)之后,在數(shù)據(jù)陣列中可以允許由預(yù)測(cè)位表示的高速緩沖存儲(chǔ)器通路,而在標(biāo)記陣列中允許所有高速緩沖存儲(chǔ)器通路。在數(shù)據(jù)陣列中允許單個(gè)高速緩沖存儲(chǔ)器通路提供了功耗的減少。因?yàn)楹髞?lái)使用從標(biāo)記陣列檢索的標(biāo)記地址確認(rèn)預(yù)測(cè),所以允許所有的標(biāo)記陣列通路。通常,所述標(biāo)記地址在位大小方面小于從數(shù)據(jù)陣列的條目中檢索的數(shù)據(jù)。因此,當(dāng)在標(biāo)記陣列中允許所有高速緩沖存儲(chǔ)器通路時(shí),功耗不是很大的問(wèn)題。降低功耗在多問(wèn)題超標(biāo)量或者超長(zhǎng)指令字(VLIW)處理器中特別有益,在這些處理器中,在每個(gè)周期中檢索大量的指令信息。當(dāng)然對(duì)于本領(lǐng)域技術(shù)人員來(lái)講可以理解的是,這只對(duì)于指令高速緩沖存儲(chǔ)器有代表性,而對(duì)數(shù)據(jù)高速緩沖存儲(chǔ)器沒(méi)有,這將在下文討論。審查標(biāo)記陣列中的標(biāo)記地址來(lái)確定其任意一個(gè)是否都與存儲(chǔ)器訪問(wèn)地址匹配。為了提供關(guān)于高速緩沖存儲(chǔ)器通路預(yù)測(cè)的準(zhǔn)確性的反饋,使用標(biāo)記比較邏輯電路來(lái)執(zhí)行標(biāo)記比較,以便驗(yàn)證高速緩沖存儲(chǔ)器是“命中”還是“未命中”。如果找到匹配,那么所述訪問(wèn)可以說(shuō)是高速緩沖存儲(chǔ)器命中,并且所述高速緩沖存儲(chǔ)器提供來(lái)自于數(shù)據(jù)陣列的關(guān)聯(lián)數(shù)據(jù)字節(jié)。如果沒(méi)有找到匹配,那么所述訪問(wèn)可以說(shuō)是高速緩沖存儲(chǔ)器未命中。當(dāng)發(fā)生高速緩沖存儲(chǔ)器未命中時(shí),所述處理器經(jīng)歷停止(stall)周期。在停止周期期間,所述載入/存儲(chǔ)單元從主存儲(chǔ)器中檢索所需數(shù)據(jù),并且將此數(shù)據(jù)提供給處理器,以便它可以將其對(duì)指令流的執(zhí)行恢復(fù)到停止周期的結(jié)束。另外,所述載入/存儲(chǔ)單元令所請(qǐng)求的數(shù)據(jù)字節(jié)從主存儲(chǔ)器傳送到數(shù)據(jù)陣列中。此外,將與檢索到的數(shù)據(jù)相關(guān)聯(lián)的一部分存儲(chǔ)器訪問(wèn)地址存儲(chǔ)在標(biāo)記陣列中。最后,將所述高速緩沖存儲(chǔ)器通路預(yù)測(cè)陣列更新,以便反映將數(shù)據(jù)字節(jié)從主存儲(chǔ)器傳送到其中的高速緩沖存儲(chǔ)器通路。讓標(biāo)記比較邏輯電路與所述高速緩沖存儲(chǔ)器通路預(yù)測(cè)陣列相關(guān)聯(lián)提供了一種高速緩沖存儲(chǔ)器,其提供更大的高速緩沖存儲(chǔ)器命中百分比。
      對(duì)于本領(lǐng)域技術(shù)人員而言,高速緩沖存儲(chǔ)器通路預(yù)測(cè)是公知的,在5,752,069號(hào)、題目為“Superscalar microprocessor employing away[sic]prediction structure”的美國(guó)專利的現(xiàn)有技術(shù)中公開(kāi)了這種例子。在n-高速緩沖存儲(chǔ)器通路集關(guān)聯(lián)高速緩沖存儲(chǔ)器中,所請(qǐng)求的高速緩沖存儲(chǔ)器元件依靠存儲(chǔ)器訪問(wèn)地址、駐留在高速緩沖存儲(chǔ)器內(nèi)的任意n-高速緩沖存儲(chǔ)器通路中,或者不駐留在其中。
      通過(guò)依靠高速緩沖存儲(chǔ)器通路預(yù)測(cè)來(lái)識(shí)別所請(qǐng)求的元件很可能駐留的高速緩沖存儲(chǔ)器通路,能夠只訪問(wèn)識(shí)別出的高速緩沖存儲(chǔ)器通路,而不是訪問(wèn)所有高速緩沖存儲(chǔ)器通路,由此有利地減少了功耗。用這樣的方式,將數(shù)據(jù)字節(jié)從所選擇的高速緩沖存儲(chǔ)器通路傳送,以便構(gòu)成供處理器以后使用的高速緩存行、或者高速緩存字。因此,高速緩沖存儲(chǔ)器通路預(yù)測(cè)不僅降低了功耗,而且改善了對(duì)高速緩沖存儲(chǔ)器中包含的數(shù)據(jù)的訪問(wèn)時(shí)間。未命中-預(yù)測(cè)令人遺憾地令處理器進(jìn)入停止周期,由此降低了處理器性能并且增加了功耗。幸好所述高速緩沖存儲(chǔ)器通路預(yù)測(cè)目前通常至少有90%是正確的,由此通常在90%的潛在情況下,可以通過(guò)允許最小等待狀態(tài)操作來(lái)改善系統(tǒng)性能。
      對(duì)于指令高速緩沖存儲(chǔ)器來(lái)說(shuō),由于將非順序指令添加到程序流中,所以使人遺憾地減少了高速緩沖存儲(chǔ)器的預(yù)測(cè)準(zhǔn)確性。非順序指令可以使CPU訪問(wèn)現(xiàn)有技術(shù)的高速緩沖存儲(chǔ)器通路預(yù)測(cè)陣列方法難以預(yù)測(cè)的存儲(chǔ)單元。在一些情況下,非順序指令導(dǎo)致程序分支為存儲(chǔ)單元,所述存儲(chǔ)單元取決于程序流中的在前指令的結(jié)果,并且因此這種分支的步長(zhǎng)可以隨著程序流的執(zhí)行而改變。因此,減少了對(duì)非順序程序執(zhí)行的預(yù)測(cè)準(zhǔn)確性,并且因而更多的發(fā)生高速緩沖存儲(chǔ)器未命中。這引起處理器停止周期的增加,由此導(dǎo)致了程序流執(zhí)行效率低,并且引起功耗的增加。對(duì)于順序的指令來(lái)說(shuō),使用超前程序計(jì)數(shù)器來(lái)訪問(wèn)預(yù)測(cè)存儲(chǔ)器。遺憾的是,當(dāng)執(zhí)行程序流中的分支指令時(shí),超前程序計(jì)數(shù)器無(wú)法在高速緩沖存儲(chǔ)器通路預(yù)測(cè)中使用。
      存在對(duì)提供一種在指令高速緩沖存儲(chǔ)器中使用的更加有效的高速緩沖存儲(chǔ)器通路預(yù)測(cè)方案的需要,其用于在減小功耗的同時(shí)改善對(duì)非順序程序執(zhí)行的高速緩沖存儲(chǔ)器通路預(yù)測(cè)。

      發(fā)明內(nèi)容
      依照本發(fā)明,提供了一種用于存儲(chǔ)與檢索處理器執(zhí)行的程序流中包含的指令(順序的和非順序的)的高速緩沖存儲(chǔ)器,其包括標(biāo)記陣列,其被設(shè)置在多個(gè)行和多個(gè)高速緩沖存儲(chǔ)器通路中,所述多個(gè)高速緩沖存儲(chǔ)器通路具有多個(gè)存儲(chǔ)單元,所述多個(gè)存儲(chǔ)單元位于所述多個(gè)行之一和所述多個(gè)高速緩沖存儲(chǔ)器通路之一的每個(gè)交叉點(diǎn)處,來(lái)自于多個(gè)存儲(chǔ)單元的每個(gè)所述存儲(chǔ)單元用于存儲(chǔ)標(biāo)記地址;數(shù)據(jù)陣列,其被設(shè)置在多個(gè)行和多個(gè)高速緩沖存儲(chǔ)器通路中,所述多個(gè)高速緩沖存儲(chǔ)器通路具有多個(gè)存儲(chǔ)單元,所述多個(gè)存儲(chǔ)單元位于所述多個(gè)行之一和所述多個(gè)高速緩沖存儲(chǔ)器通路之一的每個(gè)交叉點(diǎn)處,來(lái)自于多個(gè)存儲(chǔ)單元的每個(gè)所述存儲(chǔ)單元用于存儲(chǔ)表示指令的數(shù)據(jù)字節(jié);第一高速緩沖存儲(chǔ)器通路預(yù)測(cè)陣列,其具有設(shè)置在多個(gè)行中的多個(gè)存儲(chǔ)單元,來(lái)自于多個(gè)存儲(chǔ)單元的每個(gè)存儲(chǔ)單元用于存儲(chǔ)高速緩沖存儲(chǔ)器通路預(yù)測(cè)位的第一集合;第二高速緩沖存儲(chǔ)器通路預(yù)測(cè)陣列,其具有設(shè)置在多個(gè)行中的多個(gè)存儲(chǔ)單元,來(lái)自于多個(gè)存儲(chǔ)單元的每個(gè)存儲(chǔ)單元用于存儲(chǔ)高速緩沖存儲(chǔ)器通路預(yù)測(cè)位的第二集合;以及,判定電路,其用于接收來(lái)自于程序流的指令,所述判定電路用于確定所述指令是否是順序的和非順序的類型之一,并且用于分別允許第一高速緩沖存儲(chǔ)器通路預(yù)測(cè)陣列和第二高速緩沖存儲(chǔ)器通路預(yù)測(cè)陣列之一,根據(jù)以上的選擇,在請(qǐng)求地址訪問(wèn)的所述允許的預(yù)測(cè)陣列分別檢索高速緩沖存儲(chǔ)器通路預(yù)測(cè)位的第一集合和高速緩沖存儲(chǔ)器通路預(yù)測(cè)位的第二集合之一,用于根據(jù)所檢索到的預(yù)測(cè)位允許位于標(biāo)記陣列和數(shù)據(jù)陣列之中的高速緩沖存儲(chǔ)器通路,以便簡(jiǎn)化在允許的高速緩沖存儲(chǔ)器通路之內(nèi)分別從標(biāo)記陣列和數(shù)據(jù)陣列檢索標(biāo)記地址和數(shù)據(jù)字節(jié)。
      依照本發(fā)明的一方面,提供了一種根據(jù)多個(gè)高速緩沖存儲(chǔ)器預(yù)測(cè)陣列來(lái)允許高速緩沖存儲(chǔ)器預(yù)測(cè)陣列的方法,包括以下步驟提供在程序計(jì)數(shù)器的地址處的指令,以供處理器后續(xù)執(zhí)行;確定所述指令是否是預(yù)定類型的指令;并且,如果所述指令不同于預(yù)定類型的指令,那么允許第一高速緩沖存儲(chǔ)器預(yù)測(cè)陣列,并且如果所述指令是預(yù)定類型的指令,那么允許第二高速緩沖存儲(chǔ)器預(yù)測(cè)陣列。
      依照本發(fā)明的一方面,提供了一種用于存儲(chǔ)與檢索包含在程序流之內(nèi)的順序和非順序指令的高速緩沖存儲(chǔ)器,包括第一高速緩沖存儲(chǔ)器通路預(yù)測(cè)陣列,其用于預(yù)測(cè)第一數(shù)據(jù)集的高速緩沖存儲(chǔ)器通路;第二高速緩沖存儲(chǔ)器通路預(yù)測(cè)陣列,其用于預(yù)測(cè)第二數(shù)據(jù)集的高速緩沖存儲(chǔ)器通路;以及判定電路,其用于接收來(lái)自于程序流的指令數(shù)據(jù),并且用于依靠指令數(shù)據(jù)在第一高速緩沖存儲(chǔ)器通路預(yù)測(cè)陣列以及第二高速緩沖存儲(chǔ)器通路預(yù)測(cè)陣列之間進(jìn)行選擇。
      依照本發(fā)明的另一方面,提供了一種在其中存儲(chǔ)有數(shù)據(jù)的存儲(chǔ)介質(zhì),所述數(shù)據(jù)用于實(shí)現(xiàn)集成電路設(shè)計(jì),所述數(shù)據(jù)包括電路元件的數(shù)據(jù)描述,所述電路元件包括標(biāo)記陣列,其被設(shè)置在多個(gè)行和多個(gè)高速緩沖存儲(chǔ)器通路中,所述多個(gè)高速緩沖存儲(chǔ)器通路具有多個(gè)存儲(chǔ)單元,所述多個(gè)存儲(chǔ)單元位于所述多個(gè)行之一和所述多個(gè)高速緩沖存儲(chǔ)器通路之一的每個(gè)交叉點(diǎn)處,來(lái)自于多個(gè)存儲(chǔ)單元的每個(gè)所述存儲(chǔ)單元用于存儲(chǔ)標(biāo)記地址;數(shù)據(jù)陣列,其被設(shè)置在多個(gè)行和多個(gè)高速緩沖存儲(chǔ)器通路中,所述多個(gè)高速緩沖存儲(chǔ)器通路具有多個(gè)存儲(chǔ)單元,所述多個(gè)存儲(chǔ)單元位于所述多個(gè)行之一和所述多個(gè)高速緩沖存儲(chǔ)器通路之一的每個(gè)交叉點(diǎn)處,來(lái)自于多個(gè)存儲(chǔ)單元的每個(gè)所述存儲(chǔ)單元用于存儲(chǔ)涉及指令的數(shù)據(jù)字節(jié);第一高速緩沖存儲(chǔ)器通路預(yù)測(cè)陣列,其具有設(shè)置在多個(gè)行中的多個(gè)存儲(chǔ)單元,來(lái)自于多個(gè)存儲(chǔ)單元的每個(gè)存儲(chǔ)單元用于存儲(chǔ)高速緩沖存儲(chǔ)器通路預(yù)測(cè)位的第一集合;第二高速緩沖存儲(chǔ)器通路預(yù)測(cè)陣列,其具有設(shè)置在多個(gè)行中的多個(gè)存儲(chǔ)單元,來(lái)自于多個(gè)存儲(chǔ)單元的每個(gè)存儲(chǔ)單元用于存儲(chǔ)高速緩沖存儲(chǔ)器通路預(yù)測(cè)位的第二集合;以及,判定電路,其用于接收來(lái)自于程序流的指令,所述判定電路用于確定所述指令是否是順序和非順序的類型之一,并且用于分別允許第一高速緩沖存儲(chǔ)器通路預(yù)測(cè)陣列和第二高速緩沖存儲(chǔ)器通路預(yù)測(cè)陣列之一,根據(jù)以上的選擇,在請(qǐng)求地址訪問(wèn)的所述允許的預(yù)測(cè)陣列分別檢索高速緩沖存儲(chǔ)器通路預(yù)測(cè)位的第一集合和高速緩沖存儲(chǔ)器通路預(yù)測(cè)位的第二集合之一,用于根據(jù)所檢索到的預(yù)測(cè)位允許位于標(biāo)記陣列和數(shù)據(jù)陣列之中的高速緩沖存儲(chǔ)器通路,以便簡(jiǎn)化在允許的高速緩沖存儲(chǔ)器通路之內(nèi)分別從標(biāo)記陣列和數(shù)據(jù)陣列檢索標(biāo)記地址和數(shù)據(jù)字節(jié)。
      附圖簡(jiǎn)述現(xiàn)在將參照附圖描述本發(fā)明,其中

      圖1依照5,752,069號(hào)美國(guó)專利舉例說(shuō)明了現(xiàn)有技術(shù)的高速緩沖存儲(chǔ)器體系結(jié)構(gòu);圖2a依照本發(fā)明的實(shí)施例舉例說(shuō)明了高速緩沖存儲(chǔ)器體系結(jié)構(gòu);圖2b依照本發(fā)明的實(shí)施例舉例說(shuō)明了高速緩沖存儲(chǔ)器體系結(jié)構(gòu)的操作步驟;圖3舉例說(shuō)明了具有順序的和非順序指令的處理器執(zhí)行的程序流。
      具體實(shí)施例方式
      圖1依照Roberts等人提出的5,752,069號(hào)、題目為“Superscalarmicroprocessor employing away[sic]prediction structure”的美國(guó)專利舉例說(shuō)明了現(xiàn)有技術(shù)的高速緩沖存儲(chǔ)器體系結(jié)構(gòu)224。人們相信,閱讀Roberts等人公開(kāi)的內(nèi)容可以便于理解本發(fā)明。應(yīng)注意的是,雖然以下對(duì)現(xiàn)有技術(shù)的記述描述了關(guān)于數(shù)據(jù)高速緩緩沖存儲(chǔ)器的高速緩沖存儲(chǔ)器通路預(yù)測(cè)結(jié)構(gòu),但是也可以設(shè)想用于指令高速緩沖存儲(chǔ)器的類似結(jié)構(gòu)。
      現(xiàn)有技術(shù)的高速緩沖存儲(chǔ)器體系結(jié)構(gòu)224由高速緩沖存儲(chǔ)器標(biāo)記陣列252和高速緩沖存儲(chǔ)器數(shù)據(jù)陣列253組成,這種陣列的每一個(gè)都是N個(gè)高速緩沖存儲(chǔ)器通路集合關(guān)聯(lián)。在高速緩沖存儲(chǔ)器數(shù)據(jù)陣列253上提供了輸出端口,用于將來(lái)自于高速緩沖存儲(chǔ)器數(shù)據(jù)陣列253的數(shù)據(jù)字節(jié)提供給一組高速緩沖存儲(chǔ)器通路數(shù)據(jù)總線255A-255N(統(tǒng)稱為高速緩沖存儲(chǔ)器通路數(shù)據(jù)總線255)。因此對(duì)于時(shí)鐘周期來(lái)說(shuō),將N個(gè)集合的數(shù)據(jù)字節(jié)從高速緩沖存儲(chǔ)器數(shù)據(jù)陣列253的輸出端口提供到高速緩沖存儲(chǔ)器通路數(shù)據(jù)總線255。
      將所述高速緩沖存儲(chǔ)器通路數(shù)據(jù)總線255與N對(duì)1的高速緩沖存儲(chǔ)器通路選擇塊256耦合。所述高速緩沖存儲(chǔ)器通路選擇塊256通常由多個(gè)多路復(fù)用器組成,其中每個(gè)多路復(fù)用器與高速緩沖存儲(chǔ)器通路數(shù)據(jù)總線255耦合,并且與來(lái)自高速緩沖存儲(chǔ)器通路預(yù)測(cè)陣列251的高速緩沖存儲(chǔ)器通路預(yù)測(cè)總線257耦合。當(dāng)使用高速緩沖存儲(chǔ)器通路預(yù)測(cè)陣列251依靠請(qǐng)求地址索引給定的高速緩沖存儲(chǔ)器通路時(shí),每個(gè)高速緩沖存儲(chǔ)器通路數(shù)據(jù)總線255傳送來(lái)自于特殊的高速緩沖存儲(chǔ)器通路的數(shù)據(jù)字節(jié),其中所述請(qǐng)求地址從載入/存儲(chǔ)單元(未示出)在地址請(qǐng)求總線250上提供。為在地址請(qǐng)求總線上的每個(gè)請(qǐng)求地址執(zhí)行單獨(dú)的高速緩沖存儲(chǔ)器通路預(yù)測(cè),其中對(duì)于每個(gè)請(qǐng)求地址來(lái)說(shuō),所述高速緩沖存儲(chǔ)器通路預(yù)測(cè)陣列251使用高速緩沖存儲(chǔ)器通路預(yù)測(cè)總線257來(lái)允許N對(duì)1高速緩沖存儲(chǔ)器通路選擇塊256中的多路復(fù)用器,以便選擇數(shù)據(jù)高速緩沖存儲(chǔ)器224的N個(gè)高速緩沖存儲(chǔ)器通路之一,由此將請(qǐng)求的數(shù)據(jù)字節(jié)從高速緩沖存儲(chǔ)器數(shù)據(jù)陣列253提供給數(shù)據(jù)總線258,其中所述數(shù)據(jù)總線258與N對(duì)1高速緩沖存儲(chǔ)器通路選擇塊256上的輸出端口耦合。將與每個(gè)請(qǐng)求地址的所預(yù)測(cè)的高速緩沖存儲(chǔ)器通路相關(guān)聯(lián)的數(shù)據(jù)字節(jié)在數(shù)據(jù)總線258上傳送到載入/存儲(chǔ)單元(未示出),以供處理器(未示出)使用。
      將所述高速緩沖存儲(chǔ)器通路預(yù)測(cè)陣列251配置為存儲(chǔ)高速緩沖存儲(chǔ)器通路預(yù)測(cè)位,該位用于預(yù)測(cè)數(shù)據(jù)和標(biāo)記陣列中的高速緩沖存儲(chǔ)器通路。存儲(chǔ)在高速緩沖存儲(chǔ)器通路預(yù)測(cè)陣列251之內(nèi)的預(yù)測(cè)位數(shù)量‘n’涉及高速緩沖存儲(chǔ)器通路2n的量。由此,對(duì)于8-高速緩沖存儲(chǔ)器通路集合關(guān)聯(lián)高速緩沖存儲(chǔ)器來(lái)說(shuō),存儲(chǔ)三位,而對(duì)于4-高速緩沖存儲(chǔ)器通路集關(guān)聯(lián)高速緩沖存儲(chǔ)器來(lái)說(shuō),只存儲(chǔ)兩位。例如,當(dāng)使用8高速緩沖存儲(chǔ)器通路集合關(guān)聯(lián)高速緩沖存儲(chǔ)器時(shí),預(yù)測(cè)存儲(chǔ)器的寬度是3位,這是因?yàn)?3=8,這是高速緩沖存儲(chǔ)器的關(guān)聯(lián)性。預(yù)測(cè)陣列中的深度或者行數(shù)通常是2的冪,并且是可調(diào)的,以便實(shí)現(xiàn)確定的高速緩沖存儲(chǔ)器通路預(yù)測(cè)準(zhǔn)確性。使用32位請(qǐng)求地址A[31:0],26=64字節(jié)的高速緩存行尺寸以及預(yù)測(cè)存儲(chǔ)器中28條目,位A[13:6]用來(lái)索引高速緩沖存儲(chǔ)器通路預(yù)測(cè)陣列251,其中位13下至6是八個(gè)單元位,用于反映高速緩沖存儲(chǔ)器通路預(yù)測(cè)陣列251的深度。深度越大,預(yù)測(cè)陣列越能更好地在不同的請(qǐng)求地址區(qū)之間區(qū)分。例如,如果兩個(gè)不同的請(qǐng)求地址僅僅在位單元14不同,并且八個(gè)單元位用于訪問(wèn)預(yù)測(cè)陣列,那么由于對(duì)兩個(gè)不同的地址預(yù)測(cè)了同一高速緩沖存儲(chǔ)器通路,所以造成地址混淆。此相同的高速緩沖存儲(chǔ)器通路預(yù)測(cè)在大多數(shù)情況下可能不正確。因此,隨著預(yù)測(cè)陣列深度的增加,在存儲(chǔ)容量尺寸加倍的代價(jià)下,減少地址混淆,由此改善預(yù)測(cè)的準(zhǔn)確性。
      將所述高速緩沖存儲(chǔ)器標(biāo)記陣列252和高速緩沖存儲(chǔ)器數(shù)據(jù)陣列253根據(jù)高速緩沖存儲(chǔ)器通路的數(shù)目以及高速緩沖存儲(chǔ)器集合的數(shù)目被類似地配置。當(dāng)然,對(duì)于特殊的高速緩沖存儲(chǔ)器標(biāo)記陣列252以及高速緩沖存儲(chǔ)器數(shù)據(jù)陣列253集合來(lái)說(shuō),一個(gè)以上的高速緩沖存儲(chǔ)器通路預(yù)測(cè)可以存儲(chǔ)在高速緩沖存儲(chǔ)器通路預(yù)測(cè)陣列251之內(nèi)。例如,如果所述高速緩沖存儲(chǔ)器通路預(yù)測(cè)陣列251采用兩倍于高速緩沖存儲(chǔ)器標(biāo)記陣列252以及高速緩沖存儲(chǔ)器數(shù)據(jù)陣列253的高速緩沖存儲(chǔ)器集合來(lái)配置,那么對(duì)于高速緩沖存儲(chǔ)器標(biāo)記陣列252以及高速緩沖存儲(chǔ)器數(shù)據(jù)陣列253的每個(gè)集合來(lái)說(shuō),將兩個(gè)高速緩沖存儲(chǔ)器通路預(yù)測(cè)存儲(chǔ)在高速緩沖存儲(chǔ)器通路預(yù)測(cè)陣列251之內(nèi)。在該情況下,來(lái)自于用于索引所述高速緩沖存儲(chǔ)器通路預(yù)測(cè)陣列251的請(qǐng)求地址的位數(shù)通常比用于索引高速緩沖存儲(chǔ)器標(biāo)記陣列252以及高速緩沖存儲(chǔ)器數(shù)據(jù)陣列253的位數(shù)大一。在該情況下,附加位用于確定將兩個(gè)存儲(chǔ)的高速緩沖存儲(chǔ)器通路預(yù)測(cè)的哪個(gè)選為該請(qǐng)求地址的高速緩沖存儲(chǔ)器通路預(yù)測(cè)。通常,存儲(chǔ)給定請(qǐng)求地址的正確的高速緩沖存儲(chǔ)器通路預(yù)測(cè)的可能性將按照高速緩沖存儲(chǔ)器通路預(yù)測(cè)的數(shù)目增加,其中所述高速緩沖存儲(chǔ)器通路預(yù)測(cè)是為索引的高速緩沖存儲(chǔ)器標(biāo)記陣列252以及高速緩沖存儲(chǔ)器數(shù)據(jù)陣列253集合存儲(chǔ)的。因此可以通過(guò)使用高速緩沖存儲(chǔ)器通路預(yù)測(cè)陣列來(lái)增加性能,其中高速緩沖存儲(chǔ)器通路預(yù)測(cè)陣列具有每一高速緩沖存儲(chǔ)器標(biāo)記陣列252以及高速緩沖存儲(chǔ)器數(shù)據(jù)陣列253的集合一個(gè)以上的高速緩沖存儲(chǔ)器通路預(yù)測(cè)陣列。通常,所述高速緩沖存儲(chǔ)器通路預(yù)測(cè)陣列251是存儲(chǔ)在所述行內(nèi)的512個(gè)高速緩沖存儲(chǔ)器通路預(yù)測(cè)條目的線性陣列,并且每個(gè)高速緩沖存儲(chǔ)器通路預(yù)測(cè)是如上所述的解碼值。通常,所述高速緩沖存儲(chǔ)器通路預(yù)測(cè)陣列251是包括多個(gè)高速緩沖存儲(chǔ)器通路預(yù)測(cè)存儲(chǔ)單元的線性陣列,所述高速緩沖存儲(chǔ)器通路預(yù)測(cè)存儲(chǔ)單元在數(shù)目上等于集合的數(shù)目乘以數(shù)據(jù)高速緩沖存儲(chǔ)器陣列253中的高速緩沖存儲(chǔ)器通路的數(shù)目。
      雖然請(qǐng)求地址用于索引高速緩沖存儲(chǔ)器標(biāo)記陣列252以及高速緩沖存儲(chǔ)器數(shù)據(jù)陣列253,但是所述請(qǐng)求地址還用于索引高速緩沖存儲(chǔ)器通路預(yù)測(cè)陣列251。高速緩沖存儲(chǔ)器通路預(yù)測(cè)陣列251在高速緩沖存儲(chǔ)器通路預(yù)測(cè)總線257上傳送索引的高速緩沖存儲(chǔ)器通路預(yù)測(cè),由此使得與預(yù)測(cè)的高速緩沖存儲(chǔ)器通路相關(guān)聯(lián)的數(shù)據(jù)字節(jié)將在數(shù)據(jù)總線258上傳送。因此,從數(shù)據(jù)高速緩沖存儲(chǔ)器224訪問(wèn)通過(guò)數(shù)據(jù)高速緩沖存儲(chǔ)器224提供的數(shù)據(jù)開(kāi)始的時(shí)間延遲、具有由高速緩沖存儲(chǔ)器通路預(yù)測(cè)陣列251所引起的時(shí)間延遲的特性,繼之以使用預(yù)測(cè)的高速緩沖存儲(chǔ)器通路與用于選擇輸出字節(jié)的允許的輸出端口相關(guān)聯(lián)的較小延遲。
      另外,高速緩沖存儲(chǔ)器通路預(yù)測(cè)總線257還與標(biāo)記比較塊259耦合。所述標(biāo)記比較塊259包括邏輯電路,所述邏輯電路被配置為確定所述請(qǐng)求地址是使用預(yù)測(cè)的高速緩沖存儲(chǔ)器通路導(dǎo)致高速緩沖存儲(chǔ)器命中、是使用其它高速緩沖存儲(chǔ)器通路導(dǎo)致高速緩沖存儲(chǔ)器命中,還是使用預(yù)測(cè)的高速緩沖存儲(chǔ)器通路導(dǎo)致高速緩沖存儲(chǔ)器未命中。標(biāo)記比較塊259將通過(guò)一組高速緩沖存儲(chǔ)器通路標(biāo)記總線264A-264N(類似于高速緩沖存儲(chǔ)器通路數(shù)據(jù)總線255)提供的索引標(biāo)記與所述請(qǐng)求地址相比較,然后確定根據(jù)標(biāo)記比較實(shí)際命中的高速緩沖存儲(chǔ)器通路是否與來(lái)自于高速緩沖存儲(chǔ)器通路預(yù)測(cè)陣列251中的預(yù)測(cè)的高速緩沖存儲(chǔ)器通路匹配。由于訪問(wèn)高速緩沖存儲(chǔ)器標(biāo)記陣列252以及隨后的標(biāo)記比較未必在給定的時(shí)鐘周期中完成,所以標(biāo)記比較塊259在關(guān)聯(lián)地址訪問(wèn)數(shù)據(jù)高速緩沖存儲(chǔ)器224的時(shí)鐘周期之后的時(shí)鐘周期初期產(chǎn)生信號(hào)。
      如果為載入請(qǐng)求在預(yù)測(cè)的高速緩沖存儲(chǔ)器通路中檢測(cè)到命中,那么在命中預(yù)測(cè)的高速緩沖存儲(chǔ)器通路總線260上發(fā)出確認(rèn)信號(hào)。所述命中預(yù)測(cè)的高速緩沖存儲(chǔ)器通路總線260在標(biāo)記比較塊259以及載入/存儲(chǔ)單元(未示出)和保留站(未示出)之間耦合。與每個(gè)可能的請(qǐng)求地址相關(guān)聯(lián)的信號(hào)在命中預(yù)測(cè)的高速緩沖存儲(chǔ)器通路總線260上傳送,并且載入/存儲(chǔ)單元222和保留站210兩者都被配置為將每個(gè)信號(hào)與來(lái)自于在前時(shí)鐘周期的適當(dāng)?shù)刂氛?qǐng)求相關(guān)聯(lián)。在預(yù)測(cè)的高速緩沖存儲(chǔ)器通路中命中表明在先前時(shí)鐘周期中在數(shù)據(jù)總線258上傳送的數(shù)據(jù)是正確的。然后,保留站可能丟棄任一指令,所述指令在當(dāng)前時(shí)鐘周期中接收數(shù)據(jù)并執(zhí)行數(shù)據(jù),并且所述載入/存儲(chǔ)單元可以丟棄與所請(qǐng)求的地址相關(guān)聯(lián)的載入指令。
      如果在未預(yù)測(cè)的高速緩沖存儲(chǔ)器通路中為載入請(qǐng)求檢測(cè)到命中,那么在與載入/存儲(chǔ)單元以及保留站耦合的命中未預(yù)測(cè)的高速緩沖存儲(chǔ)器通路總線261上確認(rèn)對(duì)應(yīng)信號(hào)。在未預(yù)測(cè)的高速緩沖存儲(chǔ)器通路中的命中令載入/存儲(chǔ)單元取消在部分請(qǐng)求地址總線250上傳送請(qǐng)求地址,在所述請(qǐng)求地址總線250上在先前的時(shí)鐘周期中傳送所述未預(yù)測(cè)的高速緩沖存儲(chǔ)器通路命中地址。數(shù)據(jù)高速緩沖存儲(chǔ)器224使用空閑端口來(lái)在數(shù)據(jù)總線258上傳送正確的數(shù)據(jù)。所述高速緩沖存儲(chǔ)器通路預(yù)測(cè)是正確的,同時(shí)在數(shù)據(jù)總線258上傳送已校正的數(shù)據(jù)。所述高速緩沖存儲(chǔ)器通路預(yù)測(cè)經(jīng)由高速緩沖存儲(chǔ)器通路預(yù)測(cè)控制單元265校正。所述高速緩沖存儲(chǔ)器通路預(yù)測(cè)控制單元265接收在命中高速緩沖存儲(chǔ)器通路總線263以及命中未預(yù)測(cè)的高速緩沖存儲(chǔ)器通路總線261上的信號(hào)。當(dāng)確認(rèn)未預(yù)測(cè)的高速緩沖存儲(chǔ)器通路信號(hào)中的命中時(shí),在命中高速緩沖存儲(chǔ)器通路總線263上傳送其中發(fā)生命中的高速緩沖存儲(chǔ)器通路。高速緩沖存儲(chǔ)器通路預(yù)測(cè)控制單元265將命中高速緩沖存儲(chǔ)器通路傳送到高速緩沖存儲(chǔ)器通路預(yù)測(cè)陣列251上的寫(xiě)端口,并且通知高速緩沖存儲(chǔ)器通路預(yù)測(cè)陣列251從先前的時(shí)鐘周期起將所述值寫(xiě)入由關(guān)聯(lián)地址索引的單元,其中所述關(guān)聯(lián)地址通過(guò)數(shù)據(jù)高速緩沖存儲(chǔ)器224存儲(chǔ)。由此,未預(yù)測(cè)的高速緩沖存儲(chǔ)器通路中的命中僅僅惡化了一個(gè)時(shí)鐘周期。另外,保留站210檢測(cè)未預(yù)測(cè)的高速緩沖存儲(chǔ)器通路中的命中,并且令先前時(shí)鐘周期中轉(zhuǎn)發(fā)的數(shù)據(jù)相對(duì)于所述關(guān)聯(lián)地址無(wú)效。如果相應(yīng)的函數(shù)單元當(dāng)前正在執(zhí)行作為運(yùn)算數(shù)的接收到的不正確的數(shù)據(jù)的指令,那么保留站向其它保留站發(fā)確認(rèn)信號(hào),并且重新排序表示不正確數(shù)據(jù)的緩沖器,以便其他保留站以及重新排序的緩沖器將執(zhí)行具有不正確數(shù)據(jù)的指令所產(chǎn)生的任何結(jié)果忽略不計(jì)。
      如果檢測(cè)到未命中,那么在未命中總線262上確認(rèn)對(duì)應(yīng)信號(hào),所述未命中總線262與載入/存儲(chǔ)單元以及保留站耦合。載入/存儲(chǔ)單元記錄所述未命中以便稍后進(jìn)行未命中處理,而保留站執(zhí)行類似于如上所述的未預(yù)測(cè)的高速緩沖存儲(chǔ)器通路中的命中的情況的動(dòng)作。由于高速緩沖存儲(chǔ)器未命中存在不正確的預(yù)測(cè)的高速緩沖存儲(chǔ)器通路,所以對(duì)于此情況,不修改高速緩沖存儲(chǔ)器通路預(yù)測(cè)陣列251。
      通常,使用程序計(jì)數(shù)器(PC)來(lái)訪問(wèn)高速緩沖存儲(chǔ)器體系結(jié)構(gòu)224。所述PC由處理器用作索引,以便索引在程序流內(nèi)執(zhí)行的指令。當(dāng)訪問(wèn)程序流中的指令時(shí),所述PC充當(dāng)用于訪問(wèn)高速緩沖存儲(chǔ)器體系結(jié)構(gòu)224的請(qǐng)求地址。在順序程序流中,程序中的指令具有這樣的屬性,即令處理器執(zhí)行對(duì)使處理器不同于非順序改變化PC的所述指令的操作。例如,指令不同于順序的指令并且它們令PC轉(zhuǎn)移到程序流的其它一部分。對(duì)于索引所述高速緩沖存儲(chǔ)器通路預(yù)測(cè)陣列來(lái)說(shuō),所述請(qǐng)求地址很容易從PC導(dǎo)出,因?yàn)閷?duì)于順序的指令而言,PC在已知的步驟中是變化的。
      使人遺憾的是,所描述的現(xiàn)有技術(shù)的高速緩沖存儲(chǔ)器通路預(yù)測(cè)方案的缺點(diǎn)之一在于當(dāng)處理以非順序方式改變PC的指令時(shí)的效率問(wèn)題,所述指令諸如包括轉(zhuǎn)移指令的分支指令。在數(shù)據(jù)和標(biāo)記陣列之前訪問(wèn)高速緩沖存儲(chǔ)器通路預(yù)測(cè)陣列需要較早的程序流中的請(qǐng)求地址的可用性,以便使用所述高速緩沖存儲(chǔ)器通路預(yù)測(cè)陣列251,其中所述程序流包含在所述處理器流水線之內(nèi)。對(duì)于順序程序來(lái)說(shuō),這樣執(zhí)行就處理時(shí)間而言不會(huì)形成較大問(wèn)題。然而,當(dāng)在程序流之內(nèi)存在諸如轉(zhuǎn)移指令之類的非順序指令時(shí),它們通過(guò)將處理器的PC定向?yàn)榉琼樞蚰繕?biāo)PC來(lái)中斷此順序程序流,以便允許執(zhí)行駐留在分支單元處的指令。
      術(shù)語(yǔ)分支指令用來(lái)指允許非順序執(zhí)行指令數(shù)據(jù)流中的指令代碼的指令。此處使用的術(shù)語(yǔ)轉(zhuǎn)移指令指的是分支指令,其用于從當(dāng)前PC表明的單元起的至少一預(yù)定距離分支到指令數(shù)據(jù)中的單元。
      通常,在具有以VLIW指令編組的多個(gè)個(gè)體指令的超長(zhǎng)指令字(VLIW)處理器編譯的程序流中,轉(zhuǎn)移指令經(jīng)常在所述程序流之內(nèi)。因而,在這些處理器系統(tǒng)中,因?yàn)榉琼樞蜣D(zhuǎn)移指令的頻率十分高,所以出現(xiàn)了性能下降。由于高速緩沖存儲(chǔ)器沒(méi)有適當(dāng)?shù)乇辉O(shè)計(jì)成能處理非順序指令,所以指令的這種頻率導(dǎo)致了高速緩沖存儲(chǔ)器未命中的發(fā)生。使用現(xiàn)有技術(shù)方法不能充分地執(zhí)行非順序指令的精確高速緩沖存儲(chǔ)器通路預(yù)測(cè)。未命中預(yù)測(cè)給獲取指令通路增加了太多的延遲,由此導(dǎo)致潛在的處理器性能下降。
      因此,為了克服現(xiàn)有技術(shù)的不足,依照本發(fā)明實(shí)施例公開(kāi)了用于借助于單獨(dú)的高速緩沖存儲(chǔ)器通路預(yù)測(cè)陣列來(lái)執(zhí)行轉(zhuǎn)移目標(biāo)的指令高速緩沖存儲(chǔ)器通路預(yù)測(cè)的過(guò)程。圖2a舉例說(shuō)明了供非順序轉(zhuǎn)移目標(biāo)使用的高速緩沖存儲(chǔ)器體系結(jié)構(gòu)204。在該情況下,所述高速緩沖存儲(chǔ)器體系結(jié)構(gòu)204具有附加的高速緩沖存儲(chǔ)器通路預(yù)測(cè)陣列271,由此提供了具有兩個(gè)高速緩沖存儲(chǔ)器通路預(yù)測(cè)陣列——非順序高速緩沖存儲(chǔ)器通路預(yù)測(cè)陣列271和順序高速緩沖存儲(chǔ)器通路預(yù)測(cè)陣列251——的高速緩沖存儲(chǔ)器體系結(jié)構(gòu)204。在該情況下,所述順序高速緩沖存儲(chǔ)器通路預(yù)測(cè)陣列251與圖1中所示現(xiàn)有技術(shù)具有相同的高速緩沖存儲(chǔ)器通路預(yù)測(cè)陣列。
      所述非順序高速緩沖存儲(chǔ)器通路預(yù)測(cè)陣列271被配置為存儲(chǔ)高速緩沖存儲(chǔ)器通路預(yù)測(cè)位,其用于高速緩存程序流中由處理器執(zhí)行的非順序指令。使用非順序指令的PC進(jìn)行索引所述非順序高速緩沖存儲(chǔ)器通路預(yù)測(cè)陣列271。按類似于順序高速緩沖存儲(chǔ)器通路預(yù)測(cè)陣列251的那些方式來(lái)執(zhí)行對(duì)非順序高速緩沖存儲(chǔ)器通路預(yù)測(cè)陣列271內(nèi)存儲(chǔ)的預(yù)測(cè)位的更新。同樣,所述非順序高速緩沖存儲(chǔ)器通路預(yù)測(cè)陣列271與高速緩沖存儲(chǔ)器通路預(yù)測(cè)總線257耦合,以便為高速緩沖存儲(chǔ)器通路預(yù)測(cè)索引N個(gè)高速緩沖存儲(chǔ)器通路中的一個(gè)。按類似于順序高速緩沖存儲(chǔ)器通路預(yù)測(cè)陣列251的方式來(lái)執(zhí)行使用所述非順序高速緩沖存儲(chǔ)器通路預(yù)測(cè)陣列271的高速緩沖存儲(chǔ)器通路預(yù)測(cè)和對(duì)錯(cuò)誤預(yù)測(cè)的更新。在高速緩沖存儲(chǔ)器204內(nèi)還提供了判定電路298,以便確定是使用順序的還是非順序的高速緩沖存儲(chǔ)器通路預(yù)測(cè)陣列。所述判定電路298使用地址請(qǐng)求總線接收請(qǐng)求地址,并且還從處理器接收判定信號(hào),以便允許順序的或者非順序的高速緩沖存儲(chǔ)器通路預(yù)測(cè)陣列之一。
      圖2b示出了為訪問(wèn)所述非順序高速緩沖存儲(chǔ)器通路預(yù)測(cè)陣列271采用的步驟。在步驟2001,所述非順序的高速緩沖存儲(chǔ)器通路預(yù)測(cè)陣列通過(guò)讀取在程序計(jì)數(shù)器的地址處的指令來(lái)允許,以便后續(xù)由處理器執(zhí)行。在2002,執(zhí)行確定所述指令是否是預(yù)定類型指令的步驟。如果所述指令不同于預(yù)定類型的指令,那么在步驟2003允許順序的高速緩沖存儲(chǔ)器通路預(yù)測(cè)陣列。如果所述指令是預(yù)定類型,那么在步驟2004允許非順序的高速緩沖存儲(chǔ)器通路預(yù)測(cè)陣列。通常,預(yù)定類型的指令是導(dǎo)致如此處所述的非順序代碼執(zhí)行的指令。
      圖3舉例說(shuō)明了與處理器PC相關(guān)聯(lián)的程序流內(nèi)包含的多個(gè)程序的指令。將所述程序流分為兩個(gè)部分,在第一部分300中,所述指令遵循順序流,而在第二部分301中,所述指令遵循非順序流。當(dāng)執(zhí)行程序流中的指令時(shí),使用非順序指令來(lái)訪問(wèn)所述非順序高速緩沖存儲(chǔ)器通路預(yù)測(cè)陣列271,所述非順序指令諸如以轉(zhuǎn)移指令形式出現(xiàn)的分支指令,并且使用順序的指令來(lái)訪問(wèn)順序高速緩沖存儲(chǔ)器通路預(yù)測(cè)陣列251。提供給所述非順序高速緩沖存儲(chǔ)器通路預(yù)測(cè)陣列271的請(qǐng)求地址是包含非順序分支指令的PC而非以分支指令為目標(biāo)的PC的地址。前者的信息在指令獲取時(shí)在處理器流水線中比在指令譯碼或者執(zhí)行時(shí)目標(biāo)轉(zhuǎn)移指令的PC要更早地可用。將以舉例的方式來(lái)解釋此操作。
      參照?qǐng)D3,所使用的處理器在PC1開(kāi)始執(zhí)行程序流。為了訪問(wèn)高速緩沖存儲(chǔ)器204,所述請(qǐng)求地址是PC的地址。在PC1,將PC1用作所述請(qǐng)求地址,用以訪問(wèn)順序的高速緩沖存儲(chǔ)器通路預(yù)測(cè)陣列。如果導(dǎo)致高速緩沖存儲(chǔ)器命中,那么所述高速緩沖存儲(chǔ)器將‘instr1’提供給處理器。在處理‘instr1’之后,將所述PC遞增為PC2。對(duì)于PC2來(lái)說(shuō),所述請(qǐng)求地址要么根據(jù)PC1預(yù)先計(jì)算好,要么使用PC2來(lái)訪問(wèn)順序的高速緩沖存儲(chǔ)器通路預(yù)測(cè)陣列。在處理‘insti2’之后,將所述PC遞增為PC3。對(duì)于PC3來(lái)說(shuō),所述請(qǐng)求地址要么根據(jù)PC1或者PC2預(yù)先計(jì)算好,要么使用PC3來(lái)訪問(wèn)順序的高速緩沖存儲(chǔ)器通路預(yù)測(cè)陣列。一旦已經(jīng)處理了位于PC3的指令,就將所述PC遞增為PC4。對(duì)于PC4來(lái)說(shuō),所述請(qǐng)求地址要么根據(jù)PC1、PC2或者PC3預(yù)先計(jì)算好,要么使用PC4來(lái)訪問(wèn)順序的高速緩沖存儲(chǔ)器通路預(yù)測(cè)陣列。因?yàn)橄惹暗闹噶顚?shí)質(zhì)上是順序的,所以很容易根據(jù)所述PC確定請(qǐng)求地址。在PC4,找到以轉(zhuǎn)移指令形式出現(xiàn)的非順序的指令。當(dāng)執(zhí)行此直接轉(zhuǎn)移指令時(shí),它負(fù)責(zé)將PC定向?yàn)镻C16。主要存在兩個(gè)不同類型的轉(zhuǎn)移指令,直接的和間接的。直接轉(zhuǎn)移指令具有固定的轉(zhuǎn)移大小,其不隨程序執(zhí)行變化。另一方面,間接轉(zhuǎn)移指令具有可變轉(zhuǎn)移大小,其中以所述轉(zhuǎn)移指令為目標(biāo)的PC在程序執(zhí)行期間動(dòng)態(tài)地改變。因而,間接轉(zhuǎn)移指令將PC重定向到其中的單元是難以預(yù)測(cè)的。
      在PC4,在從高速緩沖存儲(chǔ)器或者主存儲(chǔ)器檢索到所述指令之后,所述判定電路允許所述非順序的高速緩沖存儲(chǔ)器通路預(yù)測(cè)陣列,并且禁止所述順序的高速緩沖存儲(chǔ)器通路預(yù)測(cè)陣列。以這樣的方式,在PC4執(zhí)行轉(zhuǎn)移指令之后,將PC定向?yàn)镻C16。在PC16,因?yàn)樵赑C4的轉(zhuǎn)移指令,所述請(qǐng)求地址由于轉(zhuǎn)移到非順序的PC而無(wú)法根據(jù)任意先前的地址預(yù)先計(jì)算好。因而,將PC4用作請(qǐng)求地址,用以訪問(wèn)非順序的高速緩沖存儲(chǔ)器通路預(yù)測(cè)陣列,以便從高速緩沖存儲(chǔ)器204檢索‘instr16’。在處理‘instr16’之后,將所述PC遞增為PC17。因?yàn)樵赑C16所述指令不是轉(zhuǎn)移類型指令,所以所述判定電路禁止非順序的高速緩沖存儲(chǔ)器通路預(yù)測(cè)陣列并且允許順序的高速緩沖存儲(chǔ)器通路預(yù)測(cè)陣列。因此在PC17,所述請(qǐng)求地址要么根據(jù)PC16預(yù)先計(jì)算好,要么將PC17用作請(qǐng)求地址。
      有益的是,通過(guò)使用所述非順序的高速緩沖存儲(chǔ)器通路預(yù)測(cè)陣列,PC4作為兩個(gè)不同的預(yù)測(cè)陣列的同一請(qǐng)求地址。在PC4,使用從先前的順序PC或者PC4導(dǎo)出的請(qǐng)求地址來(lái)訪問(wèn)所述順序預(yù)測(cè)陣列,然后在PC16,使用從PC4導(dǎo)出的請(qǐng)求地址來(lái)訪問(wèn)非順序的預(yù)測(cè)陣列。在沒(méi)有兩個(gè)不同的預(yù)測(cè)陣列的情況下,由于無(wú)法通過(guò)非順序的程序流執(zhí)行來(lái)簡(jiǎn)化請(qǐng)求地址的確定,所以高速緩沖存儲(chǔ)器未命中往往更高。響應(yīng)高速緩沖存儲(chǔ)器未命中,讓兩個(gè)不同的預(yù)測(cè)陣列排除相同的預(yù)測(cè)陣列在同一地址被不同的數(shù)據(jù)字節(jié)改寫(xiě)。
      有益的是,當(dāng)用于具有直接轉(zhuǎn)移指令的指令的高速緩沖存儲(chǔ)器通路預(yù)測(cè)時(shí),所建議的方法達(dá)到了很高的預(yù)測(cè)準(zhǔn)確性。對(duì)于間接轉(zhuǎn)移指令來(lái)說(shuō),所述預(yù)測(cè)準(zhǔn)確性取決于目標(biāo)PC改變的頻率。
      當(dāng)然,對(duì)于順序的和非順序的預(yù)測(cè)陣列來(lái)說(shuō)將具有同樣大小是沒(méi)有理由的。例如,對(duì)于趨于執(zhí)行程序流中更多的非順序指令的處理器來(lái)說(shuō)可能優(yōu)選的是,讓非順序的預(yù)測(cè)陣列包含比順序預(yù)測(cè)陣列更多的行。以這樣的方式,因?yàn)楦嗟氖褂昧怂龇琼樞虻念A(yù)測(cè)陣列,由此讓較小尺寸的順序預(yù)測(cè)陣列減少了存儲(chǔ)開(kāi)銷。當(dāng)然,如果所述程序流包含更多的順序指令,那么可以證明提供較大的順序預(yù)測(cè)陣列是有益的。
      有益的是,通過(guò)依靠預(yù)測(cè)來(lái)識(shí)別所請(qǐng)求的元件很可能駐留的高速緩沖存儲(chǔ)器通路,能夠只檢索對(duì)識(shí)別出的高速緩沖存儲(chǔ)器通路的訪問(wèn),而不是訪問(wèn)所有高速緩沖存儲(chǔ)器通路。通過(guò)將所訪問(wèn)的高速緩沖存儲(chǔ)器通路數(shù)量限制為1,可以降低功率。必須訪問(wèn)其他高速緩沖存儲(chǔ)器通路或者主存儲(chǔ)器明顯消耗更多的功率,因此精確的高速緩沖存儲(chǔ)器通路預(yù)測(cè)提供了降低功耗的解決方案。對(duì)于便攜式應(yīng)用來(lái)說(shuō),諸如便攜式計(jì)算機(jī),降低功耗是最重要的。對(duì)于本領(lǐng)域技術(shù)人員而言,眾所周知的是,大部分處理器的能量都浪費(fèi)在解決高速緩沖存儲(chǔ)器未命中方面。
      此外有益的是,增加的高速緩沖存儲(chǔ)器命中百分比易于在大多數(shù)時(shí)間允許數(shù)據(jù)陣列中的單個(gè)高速緩沖存儲(chǔ)器通路,由此通常不必對(duì)于對(duì)數(shù)據(jù)陣列的所有通路同時(shí)進(jìn)行并行訪問(wèn),從而降低了功耗。這樣易于在物理SRAM電路中使用不同組織的邏輯高速緩沖存儲(chǔ)器通路。
      在不脫離本發(fā)明的精神或者范圍的情況下,可以想象出很多其他的實(shí)施例。
      權(quán)利要求
      1.一種用于存儲(chǔ)與檢索處理器執(zhí)行的程序流中包含的順序和非順序指令的高速緩沖存儲(chǔ)器,包括標(biāo)記陣列(252),其被設(shè)置在多個(gè)行和多個(gè)高速緩沖存儲(chǔ)器通路中,所述多個(gè)高速緩沖存儲(chǔ)器通路具有多個(gè)存儲(chǔ)單元,所述多個(gè)存儲(chǔ)單元位于所述多個(gè)行之一和所述多個(gè)高速緩沖存儲(chǔ)器通路之一的每個(gè)交叉點(diǎn)處,來(lái)自于多個(gè)存儲(chǔ)單元的每個(gè)所述存儲(chǔ)單元用于存儲(chǔ)標(biāo)記地址;數(shù)據(jù)陣列(253),其被設(shè)置在多個(gè)行和多個(gè)高速緩沖存儲(chǔ)器通路中,所述多個(gè)高速緩沖存儲(chǔ)器通路具有多個(gè)存儲(chǔ)單元,所述多個(gè)存儲(chǔ)單元位于所述多個(gè)行之一和所述多個(gè)高速緩沖存儲(chǔ)器通路之一的每個(gè)交叉點(diǎn)處,來(lái)自于多個(gè)存儲(chǔ)單元的每個(gè)所述存儲(chǔ)單元用于存儲(chǔ)涉及指令的數(shù)據(jù)字節(jié);第一高速緩沖存儲(chǔ)器通路預(yù)測(cè)陣列(251),其具有設(shè)置在多個(gè)行中的多個(gè)存儲(chǔ)單元,來(lái)自于多個(gè)存儲(chǔ)單元的每個(gè)存儲(chǔ)單元用于存儲(chǔ)高速緩沖存儲(chǔ)器通路預(yù)測(cè)位的第一集合;第二高速緩沖存儲(chǔ)器通路預(yù)測(cè)陣列(271),其具有設(shè)置在多個(gè)行中的多個(gè)存儲(chǔ)單元,來(lái)自于多個(gè)存儲(chǔ)單元的每個(gè)存儲(chǔ)單元用于存儲(chǔ)高速緩沖存儲(chǔ)器通路預(yù)測(cè)位的第二集合;以及,判定電路(298),其用于接收來(lái)自于程序流的指令,所述判定電路用于確定所述指令是否是順序和非順序的類型之一,并且用于分別允許第一高速緩沖存儲(chǔ)器通路預(yù)測(cè)陣列(251)和第二高速緩沖存儲(chǔ)器通路預(yù)測(cè)陣列(271)之一,根據(jù)以上的選擇,在請(qǐng)求地址訪問(wèn)的所述允許的預(yù)測(cè)陣列分別檢索高速緩沖存儲(chǔ)器通路預(yù)測(cè)位的第一集合和高速緩沖存儲(chǔ)器通路預(yù)測(cè)位的第二集合之一,用于根據(jù)所檢索到的預(yù)測(cè)位允許位于標(biāo)記陣列(252)和數(shù)據(jù)陣列(253)之中的高速緩沖存儲(chǔ)器通路,以便簡(jiǎn)化在允許的高速緩沖存儲(chǔ)器通路之內(nèi)分別從標(biāo)記陣列和數(shù)據(jù)陣列檢索標(biāo)記地址和數(shù)據(jù)字節(jié)。
      2.如權(quán)利要求1所述的高速緩沖存儲(chǔ)器,其中每個(gè)行是高速緩沖存儲(chǔ)器集。
      3.如權(quán)利要求2所述的高速緩沖存儲(chǔ)器,包括程序計(jì)數(shù)器,由所述處理器使用以便執(zhí)行程序流中的指令,并且其中所述請(qǐng)求地址從程序計(jì)數(shù)器中導(dǎo)出。
      4.如權(quán)利要求3所述的高速緩沖存儲(chǔ)器,其中判定電路(298)包括當(dāng)程序計(jì)數(shù)器索引的指令不同于分支指令時(shí),用于允許第一高速緩沖存儲(chǔ)器通路預(yù)測(cè)陣列(251)并且禁止第二高速緩沖存儲(chǔ)器通路預(yù)測(cè)陣列(271)的電路。
      5.如權(quán)利要求3所述的高速緩沖存儲(chǔ)器,其中判定電路包括當(dāng)所述程序計(jì)數(shù)器索引的指令不同于分支指令時(shí),用于禁止第一高速緩沖存儲(chǔ)器通路預(yù)測(cè)陣列(251)并且允許第二高速緩沖存儲(chǔ)器通路預(yù)測(cè)陣列(271)的電路。
      6.如權(quán)利要求3所述的高速緩沖存儲(chǔ)器,其中判定電路包括當(dāng)所述程序計(jì)數(shù)器索引的指令是轉(zhuǎn)移指令時(shí),用于禁止第一高速緩沖存儲(chǔ)器通路預(yù)測(cè)陣列(251)并且允許第二高速緩沖存儲(chǔ)器通路預(yù)測(cè)陣列(271)的電路。
      7.如權(quán)利要求2所述的高速緩沖存儲(chǔ)器,其中所述高速緩沖存儲(chǔ)器通路預(yù)測(cè)陣列(251,271)包括地址輸入端口,并且其中到所述高速緩沖存儲(chǔ)器通路預(yù)測(cè)陣列的所述地址輸入端口分別相互耦合,使得將同一地址數(shù)據(jù)提供給每個(gè)高速緩沖存儲(chǔ)器通路預(yù)測(cè)陣列,并且依靠所述指令類型來(lái)確定從高速緩沖存儲(chǔ)器通路預(yù)測(cè)陣列檢索到的數(shù)據(jù)的不同。
      8.如權(quán)利要求2所述的高速緩沖存儲(chǔ)器,其中所述第一高速緩沖存儲(chǔ)器通路預(yù)測(cè)(251)陣列包括比第二高速緩沖存儲(chǔ)器通路預(yù)測(cè)陣列(271)更多的存儲(chǔ)單元。
      9.如權(quán)利要求2所述的高速緩沖存儲(chǔ)器,其中所述第二高速緩沖存儲(chǔ)器通路預(yù)測(cè)陣列(271)包括比所述第一高速緩沖存儲(chǔ)器通路預(yù)測(cè)陣列(251)更多的存儲(chǔ)單元。
      10.如權(quán)利要求2所述的高速緩沖存儲(chǔ)器,其中所述高速緩沖存儲(chǔ)器(204)用于高速緩存指令數(shù)據(jù)。
      11.一種允許來(lái)自多個(gè)高速緩沖存儲(chǔ)器預(yù)測(cè)陣列的一個(gè)高速緩沖存儲(chǔ)器預(yù)測(cè)陣列的方法,該方法包括以下步驟提供在程序計(jì)數(shù)器的地址處的指令,以供處理器后續(xù)執(zhí)行;確定所述指令是否是預(yù)定類型的指令;并且,如果所述指令不同于預(yù)定類型的指令,那么允許第一高速緩沖存儲(chǔ)器預(yù)測(cè)陣列(251),并且如果所述指令是預(yù)定類型的指令,那么允許第二高速緩沖存儲(chǔ)器預(yù)測(cè)陣列(271)。
      12.如權(quán)利要求11所述的方法,其中預(yù)定類型的指令包括分支指令。
      13.如權(quán)利要求12所述的方法,其中所述分支指令是令程序計(jì)數(shù)器在指令數(shù)據(jù)流內(nèi)非順序地改變的指令類型。
      14.如權(quán)利要求13所述的方法,其中分支指令包括用于將程序計(jì)數(shù)器改變?yōu)槌鲋噶顢?shù)據(jù)的當(dāng)前電子頁(yè)的值的指令。
      15.一種在其中存儲(chǔ)有數(shù)據(jù)的存儲(chǔ)器,所述數(shù)據(jù)涉及執(zhí)行以下步驟的指令,所述步驟為提供在程序計(jì)數(shù)器的地址處的指令,以供處理器后續(xù)執(zhí)行;確定所述指令是否是預(yù)定類型的指令;并且,如果所述指令不同于預(yù)定類型的指令,那么允許第一高速緩沖存儲(chǔ)器預(yù)測(cè)陣列(251),并且如果所述指令是預(yù)定類型的指令,那么允許第二高速緩沖存儲(chǔ)器預(yù)測(cè)陣列(271)。
      16.如權(quán)利要求15所述的方法,其中根據(jù)所述數(shù)據(jù),預(yù)定類型的指令包括分支指令。
      17.如權(quán)利要求16所述的方法,其中根據(jù)所述數(shù)據(jù),所述分支指令是令程序計(jì)數(shù)器成為非順序地址的指令類型。
      18.如權(quán)利要求17所述的方法,其中根據(jù)所述數(shù)據(jù),分支指令包括用于將程序計(jì)數(shù)器改變?yōu)槌鲋噶顢?shù)據(jù)的當(dāng)前電子頁(yè)的值的指令。
      19.一種用于存儲(chǔ)與檢索程序流中包含的順序和非順序指令的高速緩沖存儲(chǔ)器,包括第一高速緩沖存儲(chǔ)器通路預(yù)測(cè)陣列(251),其用于預(yù)測(cè)第一數(shù)據(jù)集的高速緩沖存儲(chǔ)器通路;第二高速緩沖存儲(chǔ)器通路預(yù)測(cè)陣列(271),其用于預(yù)測(cè)第二數(shù)據(jù)集的高速緩沖存儲(chǔ)器通路;以及判定電路(298),其用于接收來(lái)自于程序流中的指令數(shù)據(jù),并且用于依靠所述指令數(shù)據(jù)在所述第一高速緩沖存儲(chǔ)器通路預(yù)測(cè)陣列(251)和第二高速緩沖存儲(chǔ)器通路預(yù)測(cè)陣列(271)之間進(jìn)行進(jìn)行選擇。
      20.一種在其中存儲(chǔ)有數(shù)據(jù)的存儲(chǔ)介質(zhì),所述數(shù)據(jù)用于實(shí)現(xiàn)集成電路設(shè)計(jì),所述數(shù)據(jù)包括電路元件的數(shù)據(jù)描述,所述電路元件包括標(biāo)記陣列(252),其被設(shè)置在多個(gè)行和多個(gè)高速緩沖存儲(chǔ)器通路中,所述多個(gè)高速緩沖存儲(chǔ)器通路具有多個(gè)存儲(chǔ)單元,所述多個(gè)存儲(chǔ)單元位于所述多個(gè)行之一和所述多個(gè)高速緩沖存儲(chǔ)器通路之一的每個(gè)交叉點(diǎn)處,來(lái)自于多個(gè)存儲(chǔ)單元的每個(gè)所述存儲(chǔ)單元用于存儲(chǔ)標(biāo)記地址;數(shù)據(jù)陣列(253),其被設(shè)置在多個(gè)行和多個(gè)高速緩沖存儲(chǔ)器通路中,所述多個(gè)高速緩沖存儲(chǔ)器通路具有多個(gè)存儲(chǔ)單元,所述多個(gè)存儲(chǔ)單元位于所述多個(gè)行之一和所述多個(gè)高速緩沖存儲(chǔ)器通路之一的每個(gè)交叉點(diǎn)處,來(lái)自于多個(gè)存儲(chǔ)單元的每個(gè)所述存儲(chǔ)單元用于存儲(chǔ)涉及指令的數(shù)據(jù)字節(jié);第一高速緩沖存儲(chǔ)器通路預(yù)測(cè)陣列(251),其具有設(shè)置在多個(gè)行中的多個(gè)存儲(chǔ)單元,來(lái)自于多個(gè)存儲(chǔ)單元的每個(gè)存儲(chǔ)單元用于存儲(chǔ)高速緩沖存儲(chǔ)器通路預(yù)測(cè)位的第一集合;第二高速緩沖存儲(chǔ)器通路預(yù)測(cè)陣列(271),其具有設(shè)置在多個(gè)行中的多個(gè)存儲(chǔ)單元,來(lái)自于多個(gè)存儲(chǔ)單元的每個(gè)存儲(chǔ)單元用于存儲(chǔ)高速緩沖存儲(chǔ)器通路預(yù)測(cè)位的第二集合;以及,判定電路(298),用于接收來(lái)自于程序流的指令,所述判定電路用于確定所述指令是否是順序和非順序的類型之一,并且用于分別允許第一高速緩沖存儲(chǔ)器通路預(yù)測(cè)陣列(251)和第二高速緩沖存儲(chǔ)器通路預(yù)測(cè)陣列(271)之一,根據(jù)以上的選擇,在請(qǐng)求地址訪問(wèn)的所述允許的預(yù)測(cè)陣列分別檢索高速緩沖存儲(chǔ)器通路預(yù)測(cè)位的第一集合和高速緩沖存儲(chǔ)器通路預(yù)測(cè)位的第二集合之一,用于根據(jù)所檢索到的預(yù)測(cè)位允許位于標(biāo)記陣列(252)和數(shù)據(jù)陣列(253)之中的高速緩沖存儲(chǔ)器通路,以便簡(jiǎn)化在允許的高速緩沖存儲(chǔ)器通路之內(nèi)分別從標(biāo)記陣列和數(shù)據(jù)陣列檢索標(biāo)記地址和數(shù)據(jù)字節(jié)。
      21.如權(quán)利要求20所述的存儲(chǔ)介質(zhì),包括存儲(chǔ)在其中用于描述程序計(jì)數(shù)器的數(shù)據(jù),所示程序計(jì)數(shù)器由所述處理器使用以便執(zhí)行程序流中的指令,并且其中所述請(qǐng)求地址從程序計(jì)數(shù)器中導(dǎo)出。
      22.如權(quán)利要求21所述的存儲(chǔ)介質(zhì),其中存儲(chǔ)在其中的數(shù)據(jù)用于描述當(dāng)所述程序計(jì)數(shù)器索引的指令不同于分支指令時(shí),用于允許第一高速緩沖存儲(chǔ)器通路預(yù)測(cè)陣列(251)并且禁止第二高速緩沖存儲(chǔ)器通路預(yù)測(cè)陣列(271)的電路。
      23.如權(quán)利要求21所述的存儲(chǔ)介質(zhì),其中存儲(chǔ)在其中的數(shù)據(jù)用于描述當(dāng)所述程序計(jì)數(shù)器索引的指令是分支指令時(shí),用于禁止所述第一高速緩沖存儲(chǔ)器通路預(yù)測(cè)陣列(251)并且允許第二高速緩沖存儲(chǔ)器通路預(yù)測(cè)陣列(271)的電路。
      24.如權(quán)利要求21所述的存儲(chǔ)介質(zhì),其中在其中存儲(chǔ)用于描述判定電路的數(shù)據(jù)包括用于描述當(dāng)所述程序計(jì)數(shù)器索引的指令是轉(zhuǎn)移指令時(shí),用于禁止所述第一高速緩沖存儲(chǔ)器通路預(yù)測(cè)陣列(251)并且允許第二高速緩沖存儲(chǔ)器通路預(yù)測(cè)陣列(271)的電路的數(shù)據(jù)。
      25.如權(quán)利要求20所述的存儲(chǔ)介質(zhì),其中在其中存儲(chǔ)用于描述高速緩沖存儲(chǔ)器通路預(yù)測(cè)陣列的數(shù)據(jù)包括用于描述地址輸入端口的數(shù)據(jù),并且其中到所述高速緩沖存儲(chǔ)器通路預(yù)測(cè)陣列(251,271)的所述地址輸入端口分別相互耦合,使得將同一地址數(shù)據(jù)提供給每個(gè)高速緩沖存儲(chǔ)器通路預(yù)測(cè)陣列,并且依靠所述指令類型來(lái)確定從高速緩沖存儲(chǔ)器通路預(yù)測(cè)陣列檢索到的數(shù)據(jù)的不同。
      26.如權(quán)利要求20所述的存儲(chǔ)介質(zhì),其中在其中存儲(chǔ)描寫(xiě)所述高速緩沖存儲(chǔ)器通路預(yù)測(cè)陣列的數(shù)據(jù)表明所述第一高速緩沖存儲(chǔ)器通路預(yù)測(cè)陣列(251)包括比第二高速緩沖存儲(chǔ)器通路預(yù)測(cè)陣列(271)更多的存儲(chǔ)單元。
      全文摘要
      通常高速緩沖存儲(chǔ)器體系結(jié)構(gòu)提供單個(gè)高速緩沖存儲(chǔ)器通路預(yù)測(cè)存儲(chǔ)器,以供為程序流中包括的順序和非順序指令預(yù)測(cè)高速緩沖存儲(chǔ)器通路而使用。不幸的是,現(xiàn)有技術(shù)的高速緩沖存儲(chǔ)器通路預(yù)測(cè)方案的缺點(diǎn)之一在于當(dāng)處理以非順序方式改變PC的指令時(shí)其效率問(wèn)題,所述指令諸如是包括轉(zhuǎn)移指令的分支指令。為了易于高速緩存非順序指令,提供了附加的高速緩沖存儲(chǔ)器通路預(yù)測(cè)存儲(chǔ)器來(lái)處理非順序指令。由此,在程序執(zhí)行期間,判定電路依據(jù)指令類型(252,253)來(lái)確定是使用順序高速緩沖存儲(chǔ)器通路(251)預(yù)測(cè)陣列還是非順序高速緩沖存儲(chǔ)器通路(271)預(yù)測(cè)陣列。有益的是,當(dāng)用于非順序指令時(shí),改進(jìn)的高速緩沖存儲(chǔ)器通路預(yù)測(cè)方案增加了高速緩沖存儲(chǔ)器命中百分比。
      文檔編號(hào)G06F12/08GK1675626SQ03819241
      公開(kāi)日2005年9月28日 申請(qǐng)日期2003年8月11日 優(yōu)先權(quán)日2002年8月12日
      發(fā)明者J·-W·范德維爾德特 申請(qǐng)人:皇家飛利浦電子股份有限公司
      網(wǎng)友詢問(wèn)留言 已有0條留言
      • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1