使用虛擬地址到物理地址跨頁緩沖器的推測性尋址的制作方法
【技術領域】
[0001]本發(fā)明大體上涉及用于指令處理的計算機架構。
【背景技術】
[0002]當存取一系列指令(例如,第一指令,接著第二指令)時,處理系統(tǒng)可將指令的虛擬地址轉換成指令的物理地址。所述處理系統(tǒng)可包含使處理器能夠將虛擬地址轉換成物理地址的指令轉換旁視緩沖器(ITLB)。所述處理系統(tǒng)可請求ITLB執(zhí)行地址轉換操作來將與所述指令相關聯(lián)的虛擬地址轉換成物理地址。針對指令轉換的物理地址可用于從指令高速緩存存取指令(例如,提取指令)。所述處理系統(tǒng)可將物理地址發(fā)送到指令高速緩存來執(zhí)行標記陣列操作,以確定所述指令是否存儲在指令高速緩存的數(shù)據(jù)陣列中。所述指令高速緩存可基于標記陣列操作的結果執(zhí)行數(shù)據(jù)陣列操作來檢索指令。
[0003]所述處理系統(tǒng)可通過起始標記陣列操作來使用將存取(例如,提取)的下一指令(循序指令)的推測性地址執(zhí)行指令的尋址。可在完成下一指令的ITLB地址轉換之前執(zhí)行所述標記陣列操作。所述處理系統(tǒng)可指定存儲用作下一指令的推測性物理地址的先前指令的物理地址(由ITLB提供)的上一物理地址緩沖器。通過使用推測性物理地址針對下一指令執(zhí)行標記陣列操作,可避開與由ITLB針對下一指令執(zhí)行的地址轉換操作相關聯(lián)的延遲。但是,所述處理系統(tǒng)可由于使用推測性物理地址來存取下一指令而遇到延遲。舉例來說,當?shù)谝恢噶顬榉种е噶?,并且第二指令為駐留在與第一指令不同的存儲器頁面處的分支指令的“目標”時,提供到標記陣列的第二指令的推測性地址可無效。作為另一個實例,當?shù)谝恢噶詈偷诙噶钤谘虼鎯ζ鞯刂诽?,但當前指令在一個存儲器頁面的上一地址處,并且第二指令在下一存儲器頁面的第一地址處時,第二指令的推測性物理地址(基于當前指令的物理地址)將無效。
[0004]由于第二地址的推測性地址無效,處理系統(tǒng)可能必須從ITLB檢索第二指令的有效物理地址。處理系統(tǒng)隨后重播所述指令,其可包含刷新處理系統(tǒng)指令提取管線和通過用第二指令的有效物理地址執(zhí)行另一個標記陣列操作來重新起始指令提取。執(zhí)行指令的重播引起處理延遲并消耗處理系統(tǒng)的資源。
【發(fā)明內容】
[0005]為縮短指令處理延遲(例如由于指令重播),處理系統(tǒng)可使用跨頁緩沖器(PCB)執(zhí)行推測性尋址。所述PCB可用于在特定指令(例如,第一指令)的處理階段(例如,預提取階段)期間執(zhí)行推測性尋址,以避免將由處理系統(tǒng)處理的下一指令(例如,第二指令)的處理延遲。舉例來說,可預測第二指令在第二指令位于與包含第一指令的存儲器頁面不同的存儲器頁面處時引起指令提取重播。處理系統(tǒng)可能必須由于存取第一存儲器頁面處的第一指令和隨后存取不同于第一存儲器頁面的第二存儲器頁面處的第二指令而跨過存儲器頁面邊界。
[0006]PCB的每個條目可對應于特定指令(例如,第一指令)的虛擬地址并且可包含對應于將在特定指令之后處理的下一指令(例如,第二指令)的物理地址(即“目標”物理地址)。目標物理地址可為識別下一指令的位置的有效物理地址。目標物理地址可對應于以下指令:預測所述指令(例如)由于位于與包含特定指令的存儲器頁面不同的存儲器頁面上而引起處理延遲,所述特定指令對應于特定PCB條目。
[0007]在特定實施例中,在處理系統(tǒng)使用PCB執(zhí)行指令的推測性尋址之前,一或多個條目可存儲在PCB內??深A定對應于存儲在PCB中的所述條目中的每一個的目標物理地址引起處理延遲。在一個實例中,一或多個新條目對應于已識別為導致處理系統(tǒng)中的處理延遲的指令的目標物理地址。在另一個實例中,在將PCB中的一條目中的目標物理地址識別為指令的不正確物理地址之后,可在處理系統(tǒng)的操作期間更新所述條目。在此情況下,可用可從指令轉換旁視緩沖器獲得的指令的正確物理地址更新所述條目。
[0008]在第一指令的處理期間,處理系統(tǒng)可使用PCB執(zhí)行推測性尋址來確定是否預測到將處理的第二指令(下一指令)引起處理延遲。處理系統(tǒng)可確定PCB是否具有對應于第一指令的虛擬地址的條目。當PCB具有對應于第一指令的條目時,可預測對應于所識別條目的目標物理地址引起處理延遲。也就是說,第二指令的目標物理地址可位于不同存儲器頁面上,使得處理系統(tǒng)可能必須跨過存儲器頁面邊界來存取第二指令。在不使用PCB執(zhí)行推測性尋址的情況下,處理系統(tǒng)可引發(fā)處理延遲,例如由與存取第二指令可遇到的存儲器頁面邊界相關的指令提取重播導致的延遲。舉例來說,處理系統(tǒng)可在嘗試使用最近存取的指令(例如,第一指令)的上一物理地址存取第二指令時執(zhí)行指令重播。因為最近存取的指令的上一物理地址無法用于確定對第二指令的可尋址能力,所以可執(zhí)行指令提取重播,所述第二指令位于與最近存取的指令不同的存儲器頁面上?;谧罱嫒〉闹噶畹纳弦晃锢淼刂穲?zhí)行指令高速緩存標記陣列操作可不提供定位對應于第二指令的標記陣列的可尋址能力。因此,執(zhí)行指令提取重播來提供正確的可尋址能力。
[0009]處理系統(tǒng)可通過使用PCB條目的目標物理地址存取第二指令來避免處理延遲。PCB條目的目標物理地址可對應于識別為在預測第一指令引起指令延遲之后出現(xiàn)的指令。因為目標地址可對應于預測為第二指令的正確物理地址的目標物理地址,所以處理系統(tǒng)可基于第二指令的正確物理地址執(zhí)行標記陣列操作。舉例來說,處理系統(tǒng)可使用目標物理地址來執(zhí)行指令高速緩存標記陣列操作,以定位對應于第二指令的標記陣列條目。因此,當從標記陣列操作識別的標記陣列可以用于提取階段以從指令高速緩存的數(shù)據(jù)陣列部分檢索第二指令而不引發(fā)指令提取延遲時,指令高速緩存可能能夠加載對應于第二指令的高速緩存線。因此,通過使用PCB條目存取第二指令,處理系統(tǒng)可避免必須重播第二指令,所述重播可包含刷新處理系統(tǒng)指令提取管線和用第二指令的有效物理地址執(zhí)行另一個標記陣列操作。
[0010]在特定實施例中,一種方法包含接收由處理器執(zhí)行的指令。所述方法進一步包含在包含一或多個條目的跨頁緩沖器(PCB)中執(zhí)行查找來判指令是否具有在PCB中的條目。PCB中的所述條目中的每一個包含物理地址。所述方法進一步包含當跨頁緩沖器(PCB)具有在跨頁緩沖器中的所述條目時從跨頁緩沖器的所述條目檢索特定物理地址。從PCB的條目檢索的所述特定物理地址可用于執(zhí)行第二指令的推測性尋址,例如基于特定物理地址對第二指令執(zhí)行標記陣列操作。
[0011]在另一個特定實施例中,一種設備包含跨頁緩沖器(PCB),其包含一或多個條目。所述一或多個條目中的每一個包含物理地址。所述設備進一步包含標記陣列。所述設備進一步包含多路復用器,其配置成選擇回應于具有對應于特定指令的條目的跨頁緩沖器而從跨頁緩沖器檢索的特定物理地址。將多路復用器的輸出提供到標記陣列。
[0012]在另一個特定實施例中,一種非暫時性計算機可讀媒體存儲可在處理系統(tǒng)內執(zhí)行以引起處理系統(tǒng)接收特定指令以用于執(zhí)行的指令。所述指令進一步可執(zhí)行以在包含一或多個條目的跨頁緩沖器(PCB)中執(zhí)行查找來確定特定指令是否具有在PCB中的條目。所述條目中的每一個包含物理地址。所述指令進一步可執(zhí)行以在跨頁緩沖器(PCB)具有在PCB中的條目時從跨頁緩沖器的所述條目檢索特定物理地址。從PCB的條目檢索的所述特定物理地址可用于執(zhí)行第二指令的推測性尋址,例如基于特定物理地址對第二指令執(zhí)行標記陣列操作。
[0013]在另一個特定實施例中,一種設備包含用于存儲一或多個條目的裝置,所述一或多個條目中的每一個包含物理地址。所述設備包含用于執(zhí)行標記陣列操作的裝置。所述設備包含用于選擇地址的裝置,所述地址對應于回應于用于存儲的裝置具有對應于特定指令的條目而從用于存儲的裝置檢索的特定物理地址。將用于選擇地址的裝置的輸出提供到用于執(zhí)行標記陣列操作的裝置。
[0014]由所公開實施例中的至少一個提供的特定優(yōu)點包含降低與存取將由處理器執(zhí)行的指令(例如,由存儲器頁面邊界分離的指令)相關聯(lián)的處理延遲,所述存儲器頁面邊界可引起處理器引發(fā)指令提取重播。另一個特定優(yōu)點包含通過使用虛擬到物理地址跨頁緩沖器確定是否可預測下一特定指令引起處理延遲來改良指令的推測性尋址??珥摼彌_器可提供物理地址,所述物理地址可用于執(zhí)行已預測引起處理延遲的下一特定指令的推測性尋址。
[0015]本發(fā)明的其它方面、優(yōu)點和特征將在審閱全部申請案之后變得顯而易見,所述全部申請案包含以下部分:【附圖說明】、【具體實施方式】和權利要求書。
【附圖說明】
[0016]圖1為使用跨頁緩沖器來執(zhí)行推測性尋址的設備的第一實施例的框圖;
[0017]圖2為使用跨頁緩沖器來執(zhí)行推測性尋址的設備的第二特定實施例的框圖;
[0018]圖3為說明針對指令集的管線化處理的特定實施例的實例的圖,所述處理包含使用跨頁緩沖器的推測性尋址;
[0019]圖4為使用跨頁緩沖器來執(zhí)行推測性尋址的方法的第一特定實施例的流程圖;
[0020]圖5為使用跨頁緩沖器來執(zhí)行推測性尋址的方法的第二特定實施例的流程圖;及
[0021]圖6為無線電子裝置的框圖,所述無線電子裝置包含可操作以使用跨頁緩沖器執(zhí)行推測性尋址的組件。
【具體實施方式】
[0022]下文參考圖式描述本發(fā)明的特定實施例。在描述中,貫穿圖式由常用參考數(shù)字指定常用元件。
[0023]參考圖1,說明配置成使用跨頁緩沖器執(zhí)行推測性尋址的設備的第一實施例的框圖,并且一般將其指定為100。在特定實施例中,設備100可包含在處理器中。在另一個特定實施例中,設備100可實施為或以操作方式連接到包含至少一個處理器的處理系統(tǒng)。
[0024]設備100可包含存儲一或多個條目的跨頁緩沖器(PCB) 120。每個PCB條目(例如,第一 PCB條目112、第二 PCB條目114或第三PCB條目116)可對應于特定指令的虛擬地址并且可包含物理地址(例如,“目標”物理地址)。物理地址可對應于將處理的下一指令(例如,第二指令)。每個PCB條目中的虛擬地址和物理地址可對應于不同存儲器頁面。舉例來說,第一 PCB條目112包含虛擬地址(VA) 122和物理地址(PA) 132。類似地,第二 PCB條目114包含虛擬地址124和對應的物理地址134。第三PCB條目116包含虛擬地址126和對應的物理地址136。
[0025]在特定實施例中,可在指令處理開始之前預先存儲PCB 120中的一或多個條目112至116??深A定對應于存儲在PCB 120中的條目112至116中的每一個的目標物理地址132至136引起處理延遲。舉例來說,目標物理地址可能已識別為在存取與目標物理地址相關聯(lián)的指令時的先前實例期間引起處理延遲。在其它特定實施例中,一或多個新條目可在指令的處理