新四季網

數據處理裝置和在數據處理裝置中處理地址轉換的方法與流程

2023-07-05 10:43:36


本發明涉及數據處理裝置以及在這種數據處理裝置中處理地址轉換的方法。



背景技術:

在數據處理系統內,當主設備期望執行讀取或寫入操作時,主設備通常會發布指定要讀取或寫入的數據項的虛擬地址的訪問請求。接著,虛擬地址需要被轉換成存儲器設備內的物理地址,以便標識存儲器中數據項將被讀取或寫入的實際物理位置。

通常在主設備和存儲器設備之間的路徑中駐留有各種組件,例如多級緩存、各種互連結構等,並且通常由沿著主設備和存儲器設備之間的路徑緊鄰主設備的存儲器管理單元執行地址轉換。

這種存儲器管理單元(MMU)通常包括轉換後備緩衝器(TLB)結構,用於保存從駐留在存儲器設備中的頁表獲得的描述符信息,其中每個描述符提供用於將部分虛擬地址轉換成對應部分的物理地址的信息。在對於所考慮的虛擬地址的特定部分不存在存儲在TLB內的對應描述符的情況下,MMU內的頁表查找電路通常用於執行頁表查找過程,以便從存儲器獲得所需的描述符來使得地址轉換過程能夠被執行。

已知與主設備的MMU相關聯的預取機制被實現為尋求檢測由主設備發布的各種不同訪問請求之間的模式,並且基於那些模式來將描述符信息預取至TLB中,這樣避免了當在TLB中針對將來訪問請求無可用的描述符並因此需要經由頁表查找過程來進行擷取時發生的延遲/性能問題。然而,雖然這種基於預取機制的模式識別是有用的,並可幫助減少延遲,但是在尋求處理任何單個訪問請求時仍然存在虛擬地址至物理地址轉換過程的其他方面可能引入延遲問題。

特別地,考慮單個訪問請求,所指定的虛擬地址的部分通常與頁表基本地址結合來使用,以標識針對作為地址轉換過程的部分所需的描述符的物理地址。至少,一旦已(若有必要,通過頁表查找過程)獲得了該描述符,則該描述符將需要與虛擬地址的另一部分結合來使用,以標識要被讀取或寫入的數據項的實際物理地址。因此,即使在這種簡單的情況下,也可能需要對存儲器設備進行兩次訪問以便處理讀取或寫入操作,一次為通過頁表查找過程來擷取描述符,一次為實際訪問數據項。

在現代數據處理系統中,當處理單個訪問請求時可能需要的對存儲器的訪問量可大大超過上述簡單情況。特別地,在存儲器設備的大小變得越來越大的現代數據處理系統中,已知在執行地址轉換過程時使用多級頁表。具體地,在第一頁表級處,虛擬地址的一部分可以與頁表基本地址結合,以標識針對作為地址轉換過程的一部分所需的描述符的物理地址。不管怎樣,一旦已經獲得了該描述符,該描述符就與虛擬地址的另一部分結合使用來標識在另一頁表級的另外頁表中的描述符。該過程可以在到達頁表層級最終級前重複多次,從該最終頁表級獲取的描述符接著與虛擬地址的另一部分結合來標識要被訪問的數據項的物理地址。

因此,應當理解的是,即使在考慮單個訪問請求時,地址轉換過程也可能需要對存儲器設備進行多次訪問,並且這可能會引起顯著的延遲問題。於是,期望提供一種機制,能減輕與在處理每個單個存儲器訪問請求時所需的多級地址轉換相關聯的延遲問題。



技術實現要素:

從第一方面看,本發明提供了一種數據處理裝置,包括:處理電路,該處理電路被配置為發布指定數據項的虛擬地址的存儲器訪問請求;地址轉換電路,該地址轉換電路被配置為參考由至少一個頁表提供的至少一個描述符來執行地址轉換過程,以便產生指定數據項的物理地址的經修改的存儲器訪問請求,該地址轉換電路包括頁表查找電路,該頁表查找電路被配置為生成至少一個存儲器頁表查找請求以擷取地址轉換過程所需的至少一個描述符;預查找電路,該預查找電路位於地址轉換電路與包含至少一個頁表的存儲器設備之間的路徑中,該預查找電路包括:檢測電路,該檢測電路被配置為檢測由地址轉換電路的頁表查找電路生成的請求頁表中的描述符的存儲器頁表查找請求,以及另一請求生成電路,該另一請求生成電路被配置為生成預取存儲器請求,以便從存儲器設備中的在參照由所檢測到的存儲器頁表查找請求所請求的描述符確定的物理地址處預取數據。

根據本發明,提供了預查找電路,位於地址轉換電路與存儲器設備之間的路徑中。當地址轉換電路的頁表查找電路發布存儲器頁表查找請求以便擷取頁表中的描述符時,預查找電路檢測該存儲器頁表查找請求。隨後,一旦所請求的描述符可用(例如,該描述符從存儲器設備被擷取或被緩衝在可由預查找電路訪問的一些存儲結構中),則預查找電路被配置為生成預取存儲器請求以便從存儲器設備中的在參照該描述符所確定的物理地址處預取數據。因此,預查找電路推測性地執行地址轉換過程的至少一個額外階段,以便在地址轉換過程的下一階段預取數據。所預取的數據實際上可以是為原始存儲器訪問請求的主題的實際數據項或者可以是地址轉換過程所需的另一描述符。

通過這樣的處理,一旦地址轉換電路內的頁表查找電路接收到由存儲器頁表查找請求請求的描述符時,則在頁表查找電路基於該描述符發布後續請求(無論是針對地址轉換過程的下一級處的描述符的另一存儲器頁表查找請求,還是針對實際數據項的請求)時,該描述符或數據項將以較少延遲可獲得,因為它已經由預查找電路從存儲器設備被預取。因此,這可顯著地減少針對每個單個存儲器訪問請求的地址轉換過程的延遲。

預查找電路內的另一請求生成電路可被配置為生成預取存儲器請求的方式有多種。在一個實施例中,頁表查找電路被配置為將對由檢測到的存儲器頁表查找請求請求的描述符進行擷取不需要的額外信息包括在檢測到的存儲器頁表查找請求內,並且另一請求生成電路被配置為在生成預取存儲器請求時使用該額外信息。

頁表查找電路在存儲器頁表查找請求中包括的額外信息可以採用各種形式。然而,在一個實施例中,頁表查找電路被配置為使用虛擬地址的一部分以便確定描述符地址,並將該描述符地址包括在檢測到的頁表查找請求中。另外,頁表查找電路還被配置為包括虛擬地址的另一部分作為所述額外信息。因此,在這樣的實施例中,一旦由所檢測到的存儲器頁表查找請求請求的描述符可用,則另一請求生成電路可將該描述符與虛擬地址的另一部分結合使用,以便確定與預取存儲器請求相關聯的要被指定的地址,並且因此響應於該預取存儲器請求來標識要從存儲器設備預取的數據。

雖然地址轉換過程可以採用各種形式,但是在一個實施例中,地址轉換電路被配置為參照由在多層級中配置的多個頁表提供的描述符來執行作為地址轉換過程的多級地址轉換過程,並且該頁表查找電路被配置為生成存儲器頁表查找請求,以便擷取多級地址轉換過程所需的描述符。由檢測電路檢測到的存儲器頁表查找請求是針對在一個層級的頁表中的描述符,以及另一請求生成電路被配置為針對至少一個後續層級中的每一級生成預取存儲器頁表查找請求來作為預取存儲器請求,以便在該後續層級的頁表中預取相關聯的描述符。

因此,在這樣的實施例中,預查找電路被用來在頁表層級架構的後續層級處預取一個或多個描述符,使得在地址轉換電路隨後針對那些描述符發布存儲器頁表查找請求的情況下,這些一個或多個描述符已從存儲器設備被預取並因此可在顯著減少的延遲時間的情況下被提供給地址轉換電路,從而加速了地址轉換過程。

在一個實施例中,另一請求生成電路被配置為參照虛擬地址的所述另一部分和作為存儲器設備處理檢測到的存儲器頁表查找請求的結果而擷取的描述符來確定針對在第一後續層級的頁表中的相關聯描述符的描述符地址。該另一請求生成電路還被配置為接著將所確定的描述符地址包括在針對所述第一後續層級所生成的預取存儲器頁表查找請求內。

此外,在一個實施例中,針對每一另外後續層級,另一請求生成電路被配置為參照虛擬地址的所述另一部分和作為存儲器設備處理針對先前後續層級的預取存儲器頁表查找請求的結果而獲取的描述符來確定針對在該另外後續層級的頁表中的相關聯描述符的描述符地址。

因此,可針對每一後續層級迭代式地重複另一請求生成電路的操作,其中在每一級處,另一請求生成電路使用虛擬地址的另一部分和針對先前層級獲得的描述符。

在另一請求生成電路針對多個後續層級中的每一級生成預取存儲器頁表查找請求的實施例中,頁表查找電路還可被配置為將層級指示數據包括在所檢測到的頁表查找請求中,該層級指示數據被另一請求生成電路使用來確定當在多個後續層級中的每一級處生成預取存儲器頁表查找請求時要使用虛擬地址的另一部分中的哪些位。特別地,通常情況下,在每個不同的層級處使用虛擬地址的另一部分中的不同的位。

在一個實施例中,對於最終層級,另一請求生成電路還可被配置為生成預取經修改的存儲器訪問請求,該預取經修改的存儲器訪問請求指定數據項的物理地址以便進行數據項的預取。因此,在這樣的實施例中,預查找電路不僅可用於在頁表層級架構的後續層級處預取描述符,而且還可以用於預取處理電路尋求訪問的實際數據項。

在一個實施例中,預查找電路還包括預查找存儲結構,該預查找存儲結構被配置為將從存儲器設備擷取的相關聯的描述符作為每一預取存儲器頁表查找請求的結果進行存儲。在處理電路尋求訪問的最終(ultimate)數據項也被預取的實施例中,預查找存儲結構還可用於存儲從存儲器設備擷取的該預取的數據項。

預查找存儲結構可以採用各種形式,但在一個實施例中其被配置為為緩存。對於由地址轉換電路發布的每個存儲器頁表查找請求和/或經修改的存儲器訪問請求,可在緩存中執行查找以確定所需的描述符或數據項是否存在於緩存中,即是否已被預取。如果存在,則該描述符或數據項可直接從緩存返回至地址轉換電路,無需任何進一步的存儲器設備訪問。

雖然在一個實施例中,預查找電路可被配置為針對頁表層級架構的每一後續層級預取描述符,然而在替代實施例中,預查找電路可被配置為響應於控制信息來確定先於當前層級(針對當前層級,存儲器頁表查找請求已由頁表查找電路生成)的後續層級(針對這些後續層級,相關聯的描述符已經預取)的數目。

控制信息可以採用各種形式,並且在一個實施例中控制信息可以是標識應該預取相關聯描述符的層級的數目的簡單計數值。雖然預查找電路僅僅在預取信息,且在預取了比實際需要更多信息的情況下也不會對系統的正確操作產生不利影響,但是在執行預取操作時會消耗能量並且因此在某些情況下,例如在存在許多不同層級的情況下,不允許在地址轉換電路自身內的頁表查找電路的操作之前預取獲得太多級可能是適當的。例如,可能出現如下情況:某些描述符信息和/或所請求的數據項可能被緩存在系統中比離預查找電路更接近於處理電路的其它位置處,這樣在一個或多個後續層級處,相關聯的存儲器頁表查找請求或經修改的存儲器存取請求不會被傳播到遠至預查找電路,並且相應地不需要預查找電路執行任何動作。因此,控制信息可被配置來在由頁表操作電路考慮的實際層級之前限制預取多少個層級,以便通過尋求減少預取實際不需要的信息來減少在預取過程期間不必要地消耗功率的可能性。

預查找電路可位於數據處理裝置內的各種位置處,但是在一個實施例中,預查找電路被設置在與存儲器設備相關聯的存儲器控制器中。因此,在這樣的實施例中,預查找電路被設置在靠近存儲器設備自身。

在一個這樣的實施例中,預查找電路可被配置為重複使用至少一個現有的存儲器控制器的組件,從而減少了與設置預查找電路相關的成本。在一個具體實施例中,預查找電路的預查找存儲結構是由存儲器控制器內讀取數據隊列提供的,這樣避免了對提供單獨的預查找存儲結構的需要。

在一個實施例中,在一個層級的頁表中提供的描述符提供了針對隨後的層級中的頁表的基本地址。此外,在一個實施例中,在最終層級的表頁中提供的描述符提供了含有與存儲器訪問請求中指定的虛擬地址相關聯的數據項的存儲器頁的基本地址。

預查找電路的檢測電路可被配置來檢測存儲器頁表查找請求的方式有多種。例如,在如下情況下:存儲器頁表查找請求包括對該存儲器頁表查找請求所請求的描述符進行擷取不需要的額外信息,該額外信息的存在本身可用於進行請求的檢測,所檢測的請求是應執行某些預取的存儲器頁表查找請求。然而,在替代實施例中,頁表查找電路被配置為在所檢測到的存儲器頁表查找請求內包括用以將該請求標識為存儲器頁表查找請求的標誌欄位。這提供了檢測這種存儲器頁表查找請求的簡單機制。

從第二個方面來看,本發明提供了一種用於數據處理裝置中的預查找電路,該數據處理裝置具有用於發布指定數據項的虛擬地址的存儲器訪問請求的處理電路,以及地址轉換電路,該地址轉換電路用於參考由至少一個頁表提供的至少一個描述符來執行地址轉換過程以便產生指定該數據項的物理地址的經修改的存儲器訪問請求,所述地址轉換電路產生至少一個存儲器頁表查找請求以便擷取所述地址轉換過程所需的至少一個描述符,其中預查找電路被配置為位於在地址轉換電路與包含至少一個頁表的存儲器設備之間的路徑中並且包括:檢測電路,其被配置為檢測由地址轉換電路生成的請求頁表中的描述符的存儲器頁表查找請求;以及另一請求生成電路,其被配置為生成預取存儲器請求,以便從存儲器設備中的在參考由所檢測到的存儲器頁表查找請求所請求的描述符確定的物理地址處預取數據。

從第三個方面來看,本發明提供了一種預查找電路,包括:檢測電路,該檢測電路被配置為檢測由地址轉換電路的頁表查找電路生成的請求頁表中的描述符的存儲器頁表查找請求;以及另一請求生成電路,該另一請求生成電路被配置為生成預取存儲器請求,以便從存儲器設備中的在參考由所檢測到的存儲器頁表查找請求所請求的描述符確定的物理地址處預取數據。

從第四個方面來看,本發明提供了一種在數據處理裝置內處理地址轉換的方法,包括:從處理電路發布指定數據項的虛擬地址的存儲器訪問請求;採用地址轉換電路以參考由至少一個頁表提供的至少一個描述符來執行地址轉換過程,以便產生指定數據項的物理地址的經修改的存儲器訪問請求,包括生成至少一個存儲器頁表查找請求以便擷取地址轉換過程所需的至少一個描述符;採用位於地址轉換電路與包含所述至少一個頁表的存儲器設備之間的路徑中的預查找電路來:檢測由地址轉換電路的頁表查找電路生成的請求頁表中的描述符的存儲器頁表查找請求;以及生成預取存儲器請求以便從存儲器設備中的在參考由所檢測到的存儲器頁表查找請求所請求的描述符確定的物理地址處預取數據。

從第五個方面來看,本發明提供了一種數據處理裝置,包括:處理裝置,該處理裝置用於發布指定數據項的虛擬地址的存儲器訪問請求;地址轉換裝置,該地址轉換裝置用於參考由至少一個頁表提供的至少一個描述符來執行地址轉換過程,以便產生指定數據項的物理地址的經修改的存儲器訪問請求,該地址轉換裝置包括頁表查找裝置,該頁表查找裝置用於生成至少一個存儲器頁表查找請求,以便擷取所述地址轉換過程所需的至少一個描述符;預查找裝置,該預查找裝置位於地址轉換電路與包含至少一個頁表的存儲器設備之間的路徑中,該預查找裝置包括:檢測裝置,該檢測裝置用於檢測由地址轉換裝置的頁表查找裝置生成的請求頁表中的描述符的存儲器頁表查找請求;以及另一請求生成裝置,該另一請求生成裝置用於生成預取存儲器請求,以便從存儲器設備中的在參考由所檢測到的存儲器頁表查找請求所請求的描述符確定的物理地址處預取數據。

附圖說明

圖1是根據一個實施例的數據處理裝置的框圖;

圖2示出根據一個實施例執行的多級地址轉換過程;

圖3是根據一個實施例的更詳細地示出圖1的預查找電路內的元件的框圖;

圖4A至4C根據一個實施例示出可被使用的頁表查找讀取請求的各種格式;

圖5是根據一個實施例示出圖1的預查找電路的操作的流程圖;

圖6根據一個實施例示出預查找電路如何被併入存儲器控制器內;以及

圖7根據替代實施例示出預查找電路如何被併入存儲器控制器內。

具體實施方式

圖1是根據一個實施例的數據處理裝置的框圖。在數據處理裝置內,通常會存在可發布存儲器訪問請求以執行讀取和寫入操作的處理電路的至少一個實例,但通常為多個,其中每個存儲器訪問請求指定要被讀取或寫入的數據項的虛擬地址。這種處理電路的三個示例在圖1中示出。具體地,處理電路12可被設置為處理器10的部分,處理器10還包括相關聯的存儲器管理單元(MMU)14和一級或多級緩存20、22。處理器10可構成數據處理裝置的中央處理單元(CPU)。

還如圖1所示,設備50、55可提供這種處理電路的額外的實例。這些設備可採用各種形式,例如圖形處理單元(GPU)、網絡設備等。這樣的設備也將具有相關聯的MMU,並且以示例來說明,設備50、55被認為共享系統MMU 60。

如圖1所示,各種處理電路經由互連結構25與存儲設備40連接,存儲設備40例如可以是動態隨機存取存儲器(DRAM)設備。另外的一級或多級緩存可駐留在互連25和存儲器設備40之間的路徑中,例如圖1所示的級3緩存30。

存儲器管理單元14、60被用於執行地址轉換過程,以便將由來自相關聯的處理電路的存儲器訪問請求指定的虛擬地址轉換成標識包含作為存儲器訪問請求的主體的數據項的存儲器設備內的位置的物理地址。該地址轉換過程參考由至少一個頁表提供的至少一個描述符來執行,頁表通常駐留在存儲器設備中,如圖1示出的頁表45所示。頁表查找(walk)電路18、64用於向存儲器設備40發布存儲器頁表查找請求,以便擷取針對從相關聯的處理電路接收到的存儲器訪問請求執行地址轉換過程所需的各個描述符。這些描述符可在轉換後備緩衝器(TLB)結構16、62內進行本地緩衝。如果所需的描述符已經駐留在TLB中,則可以無延遲地執行使用該描述符的地址轉換過程的部分。然而,如果所需的描述符不存在於TLB中,則所需的描述符首先必須由頁表查找電路通過發布適當的頁表查找請求來進行擷取。有時,特定頁表查找請求所需的描述符可緩存在系統內的各級緩存20、22、30中的一者中,因此不必進行存儲器設備的訪問。然而,在其他實例中,需要將頁表操作請求一直傳播至存儲器設備,以便擷取所需的描述符,然後將所述描述符返回到MMU以存儲在相關聯的TLB中,並且供地址轉換過程使用。

已知為了尋找識別由相關聯的處理電路發布的訪問請求的模式,對MMU 14、60提供某些預取機制。這可用於尋求將隨後可能由尚未由處理電路發布的未來訪問請求所需的描述符擷取到TLB中。然而,儘管這可有助於根據模式檢測機制的精度減少延遲,但是由於與每個單獨的存儲器訪問請求相關聯所需的地址轉換過程本身而引起另一使延遲顯著增加的問題。具體地,地址轉換過程通常在多個階段中被執行。虛擬地址的第一部分可與頁表基本地址結合使用來標識該頁表中的描述符的物理地址。然後該描述符需要被擷取,此後由該描述符指定的一些地址信息與虛擬地址的另一部分組合來標識地址轉換過程的一部分需要被訪問的另一地址。在僅使用單級頁表的簡單情況下,該後一個地址本身可標識需要擷取的數據項。然而,即使在這種情況下,將理解的是,為了訪問所需的數據項,可能需要對存儲器設備進行兩次單獨的訪問。

此外,在現代系統中,通常出現如下情況:頁表被布置在多個層級中,使得參考多個不同的頁表來執行多級地址轉換過程。具體地,從存儲器中擷取的針對頁表的一級或多級的描述符本身可標識另一個頁表的基本地址,該基本地址與虛擬地址的另一部分組合來標識地址轉換過程的一部分所需的另一描述符的位置。當該描述符被返回時,其可再次與虛擬地址的另一部分組合來標識在頁表層級架構的另一級處的另一描述符,該另一描述符也是地址轉換過程的一部分所需的。該過程可以在達到最終級之前在多個頁表級中迭代,其中所擷取的描述符與虛擬地址的另一部分組合來標識需要由處理電路訪問的數據項的實際地址。因此,應當理解的是,當處理每個單獨的存儲器訪問請求時,可能需要對存儲器設備40進行多次訪問,並且這可能引起顯著延遲問題。

根據一個實施例,如將在下面更詳細地進行描述,在地址轉換電路(由MMU 14、60提供)和存儲器設備40之間的路徑中設置預查找(walk ahead)電路35,該預查找電路被布置為檢測由頁表查找電路18、64生成的存儲器頁表查找請求。一旦由該存儲器頁表查找請求指定的描述符可用於預查找電路,例如該描述符一旦已從存儲器設備40擷取,或者在該描述符已被緩存在預查找電路35可用的某個結構內的情況下,則該預查找電路被布置為生成預取存儲器請求,以便從存儲器設備的在參考該描述符所確定的物理地址處預取數據。該數據本身可以是進行地址轉換過程的一部分所需的來自頁表層級架構的另一層級的另一描述符,或者可以是處理電路試圖訪問的實際數據項。

其結果是,一旦最初請求的描述符已被返回至相關MMU,則在該描述符信息隨後被用於生成另一請求的情況下,無論該請求是另一存儲器頁表查找請求還是指定數據項的物理地址的經修改的存儲器訪問請求,預查找電路都能夠截獲該請求並直接提供所請求的數據,而不需要執行對存儲器設備的進一步訪問,因此顯著地減少了延遲。

圖2示意性地示出在一個實施例中採用的多級地址轉換過程。被指定作為由處理電路發布的存儲器訪問請求的部分的輸入虛擬地址100可包括虛擬地址部分102、104、106。通過使用組合電路115,虛擬地址的第一部分102與針對級1頁表的基本地址110(該基本地址通常存儲在可由MMU的頁表查找電路訪問的寄存器中)組合,以便生成標識級1頁表125內的特定描述符130的地址120。組合電路115可採取各種形式,但在一個實施例中,僅用於將虛擬地址作為偏移添加至基本地址,以便標識相關描述符130。所標識的描述符130實際上提供了針對級2頁表的基本地址。因此,一旦獲得了該描述符,就可發布另一頁表查找請求,該另一個頁表查找請求指定由組合電路135基於從描述符130擷取的基本地址和虛擬地址100的第二虛擬地址部分104確定的地址137。在圖2所示的示例中,級2頁表140中的標識描述符145接著指定包含所請求的數據項的實際數據頁的基本地址。相應地,一旦獲得了該描述符,則可執行地址轉換過程的最終階段,在該階段中發布訪問請求,該訪問請求指定由組合電路150基於在描述符145中標識的基本地址和虛擬地址100的第三虛擬地址部分106所生成的地址152。該最終訪問請求的執行將導致在相關數據頁155內對數據項160進行訪問。

雖然所有這些階段將需要由MMU 14、60執行,並且在一些情況下,相關描述符已經在相關的TLB 16、62內被緩存,但是在一些情況下,這些階段中的一者或多者可能需要頁表查找電路18、64發布存儲器頁表查找請求以擷取至少一個描述符,並最終發布經修改的存儲器訪問請求,以便獲得所需的數據項。通過示例的方式,如果頁表查找電路18、64發布指定地址120的存儲器頁表查找請求以便在級1頁表125內擷取描述符130,則預查找電路35可檢測該情形,並且一旦描述符130可用,則推測性地預取額外的描述符145。此外,如果需要,一旦作為第一預取操作的結果的描述符145可用,就可繼續推測性地預取數據項160。假設頁表查找電路18、64在適當的時候繼續發布指定地址137的另一頁表查找請求以獲取描述符145,並且此後發布指定地址152的經修改的以訪問數據項的存儲器訪問請求,由於數據已經由預查找電路35從存儲器設備擷取,這兩個後續請求可更快地被處理。

從圖2可以理解的是,在一個實施例中,為了預查找電路能夠執行所需的預取操作,其需要訪問虛擬地址100的各個虛擬地址部分102、104、106。在一個實施例中,該額外虛擬地址信息與由頁表查找電路18、64發布的原始存儲器頁表查找請求一起被提供,以使預查找電路能夠具有執行預取操作所需的必要信息。

圖3是根據一個實施例的更詳細地示出圖1的預查找電路35內設置的元件的框圖。預查找電路包括頁表查找請求檢測電路200,該頁表查找請求檢測電路用於從經由路徑215由處理電路組件路由至存儲器設備的各種訪問請求中檢測存儲器頁表查找請求。在檢測到這樣的存儲器頁表查找請求時,在預查找緩存210中執行查找,以便確定所請求的描述符是否已經存儲在預查找緩存中,如果所請求的描述符已被存儲,則該描述符已經被預查找電路所發布的先前的預取存儲器請求預取。如果所請求的描述符在預查找緩存210中,則所需的描述符可經由讀取數據路徑220直接返回至相關的MMU 14、60。如果所需的描述符不在預查找緩存210中,則存儲器頁表查找請求可由存儲器設備40以標準方式處理,相關聯的描述符隨後通過讀取數據路徑220返回到MMU。同時,返回的描述符信息可存儲在預查找緩存210中,使得其隨後可用於尋找該描述符的任何存儲器頁表查找請求。

此外,當檢測電路200檢測到頁表查找請求時,另一請求生成電路205可用於生成一個或多個預取存儲器請求,以便從存儲器設備預取額外的描述符和/或數據項來加速圖2中所示的地址轉換過程的其他的階段的操作。從圖2可以理解的是,在每個級別處,需要首先獲取來自先前級的描述符,並且相應地,另一請求生成電路205將訪問預查找緩存210,以便確定所需的描述符何時可用。再次考慮圖2的示例,當描述符130在預查找緩存210中可用時,另一請求生成電路205可生成預取存儲器請求,以便訪問級2頁表140來擷取描述符145。此外,一旦描述符145在預查找緩存210中可用,則另一請求生成電路205可發布預取修改的存儲器訪問請求,該請求指定數據頁155中的所需數據項的物理地址,以便使所需數據項160從存儲器設備預取。在一個實施例中,除了任何所預取的描述符之外,預查找緩存210也可用於緩存這樣的所預取的數據項,並且在該實施例中,頁表查找請求電路200還可用於針對從MMU/相關聯的處理電路發出的任何經修改的存儲器訪問請求來在預查找緩存210中執行查找。同樣,考慮到所需的數據項已經被預取到預查找緩存210中,可通過避免在該點處對存儲器設備訪問的需要而顯著減少延遲。

雖然在圖2中示出了兩級頁表層級架構,但應當理解的是,頁表層級架構中的頁表的級數可包括多於兩個級,針對頁表層級架構的每一級圖2中所示的過程被重複,直到達到最終層級,接著使用從頁表層級架構的最終級獲取的描述符來訪問相關數據頁中的所需數據項。所描述的實施例的預取機制的使用可顯著減少與頁錶轉換過程的每個後續級以及要訪問的最終數據項的擷取相關聯的延遲。

由頁表查電路18、64發布的頁表查找讀取請求可採取多種形式,圖4A至4C示意性地示出三種可選形式。在每一種情況下,通常會存在將訪問請求標識為讀取訪問請求的欄位255(R),並且還會存在標識要進行讀取的地址的地址部分欄位260。在該部分內要讀取的描述符的實際物理地址會被指定,例如圖2所示的級1頁表中的描述符130的地址120或圖2的級2頁表140中所示的描述符145的地址137。

如圖4A所示,在一個實施例中,頁表查找讀取請求還會在請求250內指定額外虛擬地址位265,這些額外虛擬地址位可由預查找電路35使用,以便構造由預查找電路發布的後續預取存儲器請求所需的物理地址。

如圖4B所示,在替代實施例中,頁表查找讀取請求270可額外地包括欄位275,該欄位275包括被設定為標識該請求是頁表查找請求的標誌,其中預查找電路應當針對該頁表查找請求執行一些關聯的預取。替代地,在一些實施例中,可以不需要該標誌,並且預查找電路的檢測電路能夠基於額外虛擬地址位欄位265中的數據的存在來確定應當執行預取的頁表查找請求的存在。

如果預查找電路被配置為僅執行單個級的預取,則額外虛擬地址位欄位265將僅需要指定用於該單個預取的所需虛擬地址位。例如,如果由頁表查找電路18、64發布的頁表查找讀取請求涉及訪問級1頁表中的描述符,並且由預查找電路執行的預取被限制為僅從級2頁表預取下一個描述符,則額外虛擬地址位欄位265將只需指定圖2的虛擬地址位104。但是,如果預查找電路取而代之從多個後續級進行預取,因此需要在欄位265內指定多個額外虛擬地址部分,在一個實施例中,頁表查找讀取請求280可採取圖4C所示的形式,其中欄位285用於標識請求的當前頁表查找級,並提供足夠的信息以使得預查找電路能夠解釋在欄位265』內提供的額外虛擬地址位,並且特別地標識哪些位與每個預取存儲器請求相關聯地被使用。考慮圖2的示例,欄位285中的信息因而會標識虛擬地址位104應當用於所發布的第一預取存儲器請求,並且虛擬地址位106應當用於所發布的下一預取存儲器請求。

圖5是示出根據一個實施例的預查找電路的操作的流程圖。在步驟300處,檢測電路200確定是否已經發出了頁表查找請求,該頁表查找請求需要執行一些預取。一旦已經檢測到這樣的頁表查找請求,則在步驟305處,使用在該頁表查找請求中指定的地址在預查找緩存210中執行查找,以便確定所請求的描述符是否存在於緩存中。因此,在步驟310處,判斷在緩存中是否存在命中,以及在步驟315處判斷所需的數據是否被輸出到讀取數據路徑。不管是否存在命中,過程都會進行到步驟320,在此處判斷是否有任何其它額外虛擬地址位要處理,即,是否任何在欄位265、265』中指定的虛擬地址位還尚未被使用。在通過圖5的過程的第一次迭代中,將是這種情況,並且相應地,過程將進行到步驟325。

在步驟325處,接著判斷當前請求級所需的數據是否在預查找緩存中可獲得。具體地,如前所述,另一請求生成電路205將只能在當前請求級處的描述符(即,作為針對第一次迭代的存儲器頁表查找請求的主題的描述符)在緩存210內可獲得時發布預取存儲器請求。當該描述符信息在預查找緩存210中可獲得時,則該過程將進行到步驟330,在該步驟中,使用針對當前請求級所返回的數據和至少一些在頁表查找讀取請求中指定的虛擬地址位來為下一級創建新的預取存儲器請求。接著,該新的預取存儲器請求將被發送到讀取請求路徑215以供存儲器設備進行後續處理。此時,在步驟335處,下一級(即,剛剛發布預取存儲器請求的級)被設定為當前請求級,然後在步驟340處判斷另一預查找處理的條件是否被滿足。

在一個實施例中,預查找電路可僅被布置為執行對地址轉換的所有後續級的預取直到並包括對指定的數據項的預取,其中所有相關聯的描述符和相關聯的數據項被存儲在預查找緩存210中。然而,在替代實施例中,預取可以以某種方式被節流,使得預取不會離MMU 14、60所考慮的當前級太遠。例如,預查找電路可被配置為僅預取MMU正在考慮的當前級之前的最多兩個級。相應地,在步驟340處,在判斷是否適合繼續另一預取之前,將確定MMU當前正在對什麼級進行頁表查找請求。

如果條件不滿足,則可採用超時機制以等待預定時段,以期望在達到超時閾值之前該條件會被滿足。如果該條件被滿足,則過程將分支回到步驟320,但是如果進行另一預查找進程的條件沒有被滿足而超出超時閾值,過程可在步驟350處結束。如果在步驟320處確定已經處理了所有額外虛擬地址位,則該過程還會在步驟350處結束。

如果在步驟340處滿足另一預查找進程的條件,則重複步驟320、325、330和335,直到所有額外虛擬地址位都已被處理,或者進行另一預查找進程的條件沒有被滿足而超出超時閾值。

雖然預查找電路僅僅是推測性地預取MMU和相關聯的處理電路隨後可能需要的信息,並且由此通過對實際上隨後不需要的信息預取對系統的正確操作沒有產生不利後果,但是存在與預取操作相關聯的功耗效應,並且這可能是在步驟340處引入用於扼制預查找電路先於MMU/相關聯的處理電路的實際要求而進行預取的程度的條件的一個原因。例如,在一些情況下,與頁面層級架構的一個或多個後續級相關聯的描述符或最終請求的實際數據項可能已經被緩存在系統內的緩存級20、22、30中的一者中,並且相應地,後續頁表查找請求和/或經修改的存儲器訪問請求可能不會被傳播至預查找電路。因此,在這種情況下預查找電路的預查找緩存中保存的所預取的信息不會被利用,並且預取會不必要地浪費一些功耗。然而,根據實施方案要求,可通過在步驟340處指定用於另一預查找進程的條件來平衡通過執行預取來減少延遲的期望與這樣做所消耗的功耗。

預查找電路可位於裝置內的各種位置。在一些實施例中,預查找電路可駐留在MMU 14、60與存儲器設備40之間。在一個實施例中,預查找電路被併入到與存儲器設備相關聯的存儲器控制器400內,如圖6中所示。在該示例中,存儲器控制器400與DRAM存儲器設備415相關聯。由各種處理電路發布的讀取存儲器訪問請求在被轉發到存儲器設備415之前被緩衝在讀取請求隊列405內。典型地,讀取請求查找電路425將監視該讀取請求隊列的內容並在讀取數據隊列420中執行查找,以便檢測已從存儲器設備擷取到所請求的讀取數據的情況。在這些情況下,可直接從讀取數據隊列提供讀取數據,而不必執行對存儲器設備的訪問。然而,對於不能從讀取數據隊列的內容直接服務的讀取請求,調度器410將調度各種讀取請求以供存儲器設備進行處理,並且將向存儲器設備發出適當的控制命令,以使存儲器設備處理讀取訪問請求。接著,所擷取的讀取數據將被返回到讀取數據隊列420,所擷取的讀取數據在讀取數據隊列可被返回至請求處理電路/MMU。

在一個實施例中,預查找電路採用圖6所示的預查找電路430的形式,這種形式的預查找電路包括檢測電路430、另一請求生成電路440和預查找緩存445。這些組件直接對應於關於圖3中的預查找電路35所討論的組件200、205、210。由另一請求生成電路440生成的額外預取請求被插入至讀取請求隊列405中,以供調度器410和存儲器設備415在適當時候進行處理。接著,作為處理這些預取請求的結果而獲取的返回的描述符和/或數據項從讀取數據隊列路由至預查找緩存445。

在如圖7所示的替代實施例中,預查找緩存可被歸入讀取數據隊列420中,從而避免了對單獨的預查找緩存的需要。在這種情況下,檢測電路435和另一請求生成電路440將使用讀取請求查找電路425來在作為讀取數據隊列420的一部分而設置的預查找緩存內執行必要的查找。這樣的方法可減少與在存儲器控制器內提供預查找電路相關的硬體成本。

通過使用所描述的實施例的技術,可顯著減少與地址轉換過程相關聯的加載至使用的延遲,從而提高數據處理裝置內的應用性能。通過提前解決頁表查找以及在頁表查找實際由相關聯的MMU發布的之前解決這些頁表查找,所描述的實施例的預查找電路可機會性地進行操作,以便進行預查找並使用存儲器設備的較不繁忙操作時段來預取MMU可能需要的描述符以及處理電路可能需要的數據項。這樣降低了處理電路的加載至使用的延遲。

儘管本文已經描述了特定實施例,但是應當理解的是,本發明不限於此,並且在本發明的範圍內可以做出許多修改和添加。例如,在不脫離本發明的範圍的情況下,所附獨立權利要求的特徵可與從屬權利要求的特徵做出各種組合。

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀