處理器子程序高速緩沖存儲(chǔ)器的制造方法
【專利說明】
【背景技術(shù)】
[0001]在計(jì)算機(jī)技術(shù)中,子程序(還稱為過程、函數(shù)、例程、方法等)是執(zhí)行具體任務(wù)的較大程序內(nèi)的一組指令,并且相對(duì)獨(dú)立于剩余程序代碼。子程序作為是較大程序中的一個(gè)步驟的計(jì)算機(jī)子程序而工作。子程序經(jīng)常被實(shí)施以便它能夠在程序執(zhí)行期間多次開啟(“調(diào)用”)和/或從若干地方(包括從其他子程序)開啟(“調(diào)用”),并且接著在子程序執(zhí)行完成后轉(zhuǎn)移回到(返回)調(diào)用程序的下一個(gè)指令。
[0002]在子程序由計(jì)算機(jī)或處理器執(zhí)行不止一次時(shí),子程序的指令可能從指令存儲(chǔ)器中被讀取多次。重復(fù)訪問存儲(chǔ)器以取回子程序指令增加了能耗。此外,當(dāng)從所述指令存儲(chǔ)器取回調(diào)用/返回目的地指令時(shí),子程序調(diào)用和返回指令的執(zhí)行可能引起處理器管線(pipeline)停滯(stall)。停滯循環(huán)降低了處理器的性能。因此,盡管包含子程序能夠有效地減小程序的大小并改善程序結(jié)構(gòu),但是子程序的執(zhí)行能夠不利地影響處理器的性能。
【發(fā)明內(nèi)容】
[0003]本文公開了用于加速子程序執(zhí)行并減少系統(tǒng)能源使用的處理器和子程序高速緩沖存儲(chǔ)器(CACHE)。在一個(gè)實(shí)施例中,處理器包括執(zhí)行單元和子程序高速緩沖存儲(chǔ)器。執(zhí)行單元被配置為執(zhí)行指令。子程序高速緩沖存儲(chǔ)器被配置為提供子程序的指令到執(zhí)行單元用于執(zhí)行。子程序高速緩沖存儲(chǔ)器包括子程序指令存儲(chǔ)器、子程序地址寄存器和子程序高速緩沖存儲(chǔ)器控制邏輯。子程序高速緩沖存儲(chǔ)器控制邏輯被配置為:識(shí)別提供給執(zhí)行單元的子程序調(diào)用指令;通過評(píng)估指示至少部分子程序是否被存儲(chǔ)在子程序指令存儲(chǔ)器中的子程序有效性指示器,確定子程序調(diào)用指令調(diào)用的子程序的指令是否被存儲(chǔ)在子程序指令存儲(chǔ)器中;以及基于子程序有效性指示器指示至少部分子程序被存儲(chǔ)在子程序指令存儲(chǔ)器中,提供子程序的指令到執(zhí)行單元。
[0004]在另一個(gè)實(shí)施例中,一種方法包括處理器解碼子程序調(diào)用指令,該指令指定包含子程序的起始地址的處理器的寄存器。該方法還包括處理器評(píng)估子程序有效性指示器,該指示器指示:至少部分子程序是否被存儲(chǔ)在處理器的子程序指令存儲(chǔ)器中,以及子程序的起始地址是否被存儲(chǔ)在處理器的寄存器中。該方法進(jìn)一步包括:基于確定子程序有效性指示器指示子程序被存儲(chǔ)在子程序指令存儲(chǔ)器中的評(píng)估,將子程序指令存儲(chǔ)器中的子程序的指令提供給處理器的執(zhí)行單元。
[0005]在進(jìn)一步的實(shí)施例中,子程序高速緩沖存儲(chǔ)器包括子程序指令存儲(chǔ)器、子程序地址寄存器、子程序有效性指示器和子程序高速緩沖存儲(chǔ)器控制邏輯。子程序指令存儲(chǔ)器用于存儲(chǔ)子程序的指令。子程序地址寄存器用于存儲(chǔ)子程序的地址。子程序有效性指示器用于存儲(chǔ)指示如下操作的值:至少部分子程序是否被存儲(chǔ)在子程序指令存儲(chǔ)器中;以及子程序的地址是否被存儲(chǔ)在子程序地址寄存器中。子程序高速緩沖存儲(chǔ)器控制邏輯被配置為:識(shí)別提供給處理器的執(zhí)行單元的子程序調(diào)用指令;通過評(píng)估存儲(chǔ)在子程序有效性指示器中的值,確定子程序調(diào)用指令調(diào)用的子程序的指令是否被存儲(chǔ)在子程序指令存儲(chǔ)器中;以及基于存儲(chǔ)在子程序有效性指示器中的值,提供子程序的指令到執(zhí)行單元。
【附圖說明】
[0006]對(duì)于本發(fā)明的示例性實(shí)施例的詳細(xì)描述,現(xiàn)在參考附圖,其中:
[0007]圖1示出了根據(jù)各種實(shí)施例的處理器的框圖;
[0008]圖2示出了根據(jù)各種實(shí)施例的子程序高速緩沖存儲(chǔ)器的框圖;
[0009]圖3示出了根據(jù)各種實(shí)施例的包括子程序調(diào)用的程序段;以及
[0010]圖4示出了根據(jù)各種實(shí)施例的用于子程序高速緩沖和執(zhí)行的方法的流程圖。
[0011]符號(hào)和術(shù)語
[0012]指代具體系統(tǒng)組件的特定術(shù)語在整個(gè)【具體實(shí)施方式】和權(quán)利要求書中使用。本領(lǐng)域技術(shù)人員將理解的是,公司可以通過不同的名字指代組件。本文件不意在區(qū)分名字不同的組件而是區(qū)分功能不同的組件。在下面的討論和權(quán)利要求書中,術(shù)語“包括”和“包含”是開放式形式,并且因此應(yīng)當(dāng)解釋為意味著“包括,但不限于…”。此外,術(shù)語“耦合”意味著間接或直接的電連接。因此,如果第一設(shè)備耦合至第二設(shè)備,該連接可以是通過直接電連接或是通過經(jīng)由其他設(shè)備和連接的間接電連接。表述“基于”旨在指“至少部分基于”。因此,如果X基于Y,則X可以基于Y和任意數(shù)量的額外因素。
【具體實(shí)施方式】
[0013]下面的討論涉及本發(fā)明的各種實(shí)施例。盡管一個(gè)或更多個(gè)這些實(shí)施例可能是優(yōu)選的,但是公開的實(shí)施例不應(yīng)當(dāng)解釋為或以其他方式使用為限制本發(fā)明(包括權(quán)利要求)的范圍。此外,本領(lǐng)域技術(shù)人員將理解如下說明具有廣泛的應(yīng)用,并且任何實(shí)施例的討論僅意味著該實(shí)施例的示例,不意在暗示本發(fā)明(包括權(quán)利要求)的范圍被限制成該實(shí)施例。
[0014]常規(guī)的處理器通常包括通用內(nèi)部或外部指令高速緩沖存儲(chǔ)器。相對(duì)于缺乏高速緩沖的處理器,這種高速緩沖存儲(chǔ)器的使用能夠減少存儲(chǔ)器的能耗并且提高處理器性能(通過減少停滯循環(huán)的次數(shù))。常規(guī)的高速緩沖存儲(chǔ)器包括用于指令和地址的存儲(chǔ)器,以及比較取回地址和存儲(chǔ)地址的地址比較邏輯。取決于高速緩沖存儲(chǔ)器架構(gòu)(例如,高速緩沖存儲(chǔ)器支持的相關(guān)聯(lián)的組的數(shù)量),存儲(chǔ)地址的數(shù)量和地址比較器的數(shù)量不同。在子程序調(diào)用的情況下,常規(guī)的高速緩沖存儲(chǔ)器通常需要多個(gè)單獨(dú)的相關(guān)聯(lián)的高速緩沖存儲(chǔ)器方式(相關(guān)聯(lián)的高速緩沖存儲(chǔ)器組)以便支持多個(gè)子程序,這要求每個(gè)相關(guān)聯(lián)的高速緩沖存儲(chǔ)器方式的地址存儲(chǔ)器和比較器。
[0015]一些常規(guī)的高速緩沖存儲(chǔ)器包括相對(duì)大量的地址存儲(chǔ)器位置和地址比較器。這些高速緩沖存儲(chǔ)器能夠提供高的高速緩沖命中率(即,大量的子程序能夠被高速緩沖存儲(chǔ)),但是實(shí)施存儲(chǔ)器和比較器導(dǎo)致高的高速緩沖存儲(chǔ)器門數(shù)和高的高速緩沖存儲(chǔ)器能耗。其他常規(guī)的高速緩沖存儲(chǔ)器實(shí)施方式包括少量的地址存儲(chǔ)器位置和地址比較器,導(dǎo)致更低的高速緩沖存儲(chǔ)器命中率、更低的高速緩沖存儲(chǔ)器門數(shù)和更低的高速緩沖存儲(chǔ)器能耗。因此,常規(guī)的高速緩沖存儲(chǔ)器呈現(xiàn)了改善高速緩沖存儲(chǔ)器命中率和減少高速緩沖存儲(chǔ)器電路和能耗之間的折中。
[0016]本發(fā)明的實(shí)施例包括:相對(duì)于常規(guī)的高速緩沖存儲(chǔ)器架構(gòu),提供了高的子程序調(diào)用高速緩沖存儲(chǔ)器命中率并且減少電路和能耗的子程序高速緩沖存儲(chǔ)器。本文公開的子程序高速緩沖存儲(chǔ)器采用基于寄存器的子程序調(diào)用和寄存器索引值比較或標(biāo)記(flag)復(fù)用而不是地址比較邏輯,用于識(shí)別高速緩沖存儲(chǔ)的子程序。因此,在與常規(guī)的高速緩沖存儲(chǔ)器比較時(shí),本文公開的子程序高速緩沖存儲(chǔ)器提供了高速緩沖存儲(chǔ)器功耗和門數(shù)的大量減少,而沒有降低高速緩沖存儲(chǔ)器的性能。
[0017]圖1示出了根據(jù)各種實(shí)施例的處理器100的框圖。處理器100可以是通用微處理器、數(shù)字信號(hào)處理器、微控制器或其他執(zhí)行從指令存儲(chǔ)器110檢索的指令的計(jì)算設(shè)備。處理器100包括取回單元104、解碼單元106、執(zhí)行單元108和子程序高速緩沖存儲(chǔ)器102。取回單元104從指令存儲(chǔ)器110檢索指令用于由處理器100執(zhí)行。指令存儲(chǔ)器110是諸如隨機(jī)存取存儲(chǔ)器(易失性或非易失性)之類的存儲(chǔ)有待被執(zhí)行的指令的存儲(chǔ)設(shè)備。指令存儲(chǔ)器110可以是處理器100的內(nèi)部組件或可替代地可以是處理器100的外部組件。取回單元104提供檢索的指令至解碼單元106。
[0018]解碼單元106檢查從取回單元104檢索的指令