欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

數(shù)據(jù)處理裝置和在數(shù)據(jù)處理裝置中處理地址轉(zhuǎn)換的方法與流程

文檔序號:12142047閱讀:260來源:國知局
數(shù)據(jù)處理裝置和在數(shù)據(jù)處理裝置中處理地址轉(zhuǎn)換的方法與流程

本發(fā)明涉及數(shù)據(jù)處理裝置以及在這種數(shù)據(jù)處理裝置中處理地址轉(zhuǎn)換的方法。



背景技術(shù):

在數(shù)據(jù)處理系統(tǒng)內(nèi),當主設(shè)備期望執(zhí)行讀取或?qū)懭氩僮鲿r,主設(shè)備通常會發(fā)布指定要讀取或?qū)懭氲臄?shù)據(jù)項的虛擬地址的訪問請求。接著,虛擬地址需要被轉(zhuǎn)換成存儲器設(shè)備內(nèi)的物理地址,以便標識存儲器中數(shù)據(jù)項將被讀取或?qū)懭氲膶嶋H物理位置。

通常在主設(shè)備和存儲器設(shè)備之間的路徑中駐留有各種組件,例如多級緩存、各種互連結(jié)構(gòu)等,并且通常由沿著主設(shè)備和存儲器設(shè)備之間的路徑緊鄰主設(shè)備的存儲器管理單元執(zhí)行地址轉(zhuǎn)換。

這種存儲器管理單元(MMU)通常包括轉(zhuǎn)換后備緩沖器(TLB)結(jié)構(gòu),用于保存從駐留在存儲器設(shè)備中的頁表獲得的描述符信息,其中每個描述符提供用于將部分虛擬地址轉(zhuǎn)換成對應(yīng)部分的物理地址的信息。在對于所考慮的虛擬地址的特定部分不存在存儲在TLB內(nèi)的對應(yīng)描述符的情況下,MMU內(nèi)的頁表查找電路通常用于執(zhí)行頁表查找過程,以便從存儲器獲得所需的描述符來使得地址轉(zhuǎn)換過程能夠被執(zhí)行。

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

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

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

因此,應(yīng)當理解的是,即使在考慮單個訪問請求時,地址轉(zhuǎn)換過程也可能需要對存儲器設(shè)備進行多次訪問,并且這可能會引起顯著的延遲問題。于是,期望提供一種機制,能減輕與在處理每個單個存儲器訪問請求時所需的多級地址轉(zhuǎn)換相關(guān)聯(lián)的延遲問題。



技術(shù)實現(xiàn)要素:

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

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

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

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

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

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

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

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

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

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

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

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

在一個實施例中,預(yù)查找電路還包括預(yù)查找存儲結(jié)構(gòu),該預(yù)查找存儲結(jié)構(gòu)被配置為將從存儲器設(shè)備擷取的相關(guān)聯(lián)的描述符作為每一預(yù)取存儲器頁表查找請求的結(jié)果進行存儲。在處理電路尋求訪問的最終(ultimate)數(shù)據(jù)項也被預(yù)取的實施例中,預(yù)查找存儲結(jié)構(gòu)還可用于存儲從存儲器設(shè)備擷取的該預(yù)取的數(shù)據(jù)項。

預(yù)查找存儲結(jié)構(gòu)可以采用各種形式,但在一個實施例中其被配置為為緩存。對于由地址轉(zhuǎn)換電路發(fā)布的每個存儲器頁表查找請求和/或經(jīng)修改的存儲器訪問請求,可在緩存中執(zhí)行查找以確定所需的描述符或數(shù)據(jù)項是否存在于緩存中,即是否已被預(yù)取。如果存在,則該描述符或數(shù)據(jù)項可直接從緩存返回至地址轉(zhuǎn)換電路,無需任何進一步的存儲器設(shè)備訪問。

雖然在一個實施例中,預(yù)查找電路可被配置為針對頁表層級架構(gòu)的每一后續(xù)層級預(yù)取描述符,然而在替代實施例中,預(yù)查找電路可被配置為響應(yīng)于控制信息來確定先于當前層級(針對當前層級,存儲器頁表查找請求已由頁表查找電路生成)的后續(xù)層級(針對這些后續(xù)層級,相關(guān)聯(lián)的描述符已經(jīng)預(yù)取)的數(shù)目。

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

預(yù)查找電路可位于數(shù)據(jù)處理裝置內(nèi)的各種位置處,但是在一個實施例中,預(yù)查找電路被設(shè)置在與存儲器設(shè)備相關(guān)聯(lián)的存儲器控制器中。因此,在這樣的實施例中,預(yù)查找電路被設(shè)置在靠近存儲器設(shè)備自身。

在一個這樣的實施例中,預(yù)查找電路可被配置為重復(fù)使用至少一個現(xiàn)有的存儲器控制器的組件,從而減少了與設(shè)置預(yù)查找電路相關(guān)的成本。在一個具體實施例中,預(yù)查找電路的預(yù)查找存儲結(jié)構(gòu)是由存儲器控制器內(nèi)讀取數(shù)據(jù)隊列提供的,這樣避免了對提供單獨的預(yù)查找存儲結(jié)構(gòu)的需要。

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

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

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

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

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

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

附圖說明

圖1是根據(jù)一個實施例的數(shù)據(jù)處理裝置的框圖;

圖2示出根據(jù)一個實施例執(zhí)行的多級地址轉(zhuǎn)換過程;

圖3是根據(jù)一個實施例的更詳細地示出圖1的預(yù)查找電路內(nèi)的元件的框圖;

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

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

圖6根據(jù)一個實施例示出預(yù)查找電路如何被并入存儲器控制器內(nèi);以及

圖7根據(jù)替代實施例示出預(yù)查找電路如何被并入存儲器控制器內(nèi)。

具體實施方式

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

還如圖1所示,設(shè)備50、55可提供這種處理電路的額外的實例。這些設(shè)備可采用各種形式,例如圖形處理單元(GPU)、網(wǎng)絡(luò)設(shè)備等。這樣的設(shè)備也將具有相關(guān)聯(lián)的MMU,并且以示例來說明,設(shè)備50、55被認為共享系統(tǒng)MMU 60。

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

存儲器管理單元14、60被用于執(zhí)行地址轉(zhuǎn)換過程,以便將由來自相關(guān)聯(lián)的處理電路的存儲器訪問請求指定的虛擬地址轉(zhuǎn)換成標識包含作為存儲器訪問請求的主體的數(shù)據(jù)項的存儲器設(shè)備內(nèi)的位置的物理地址。該地址轉(zhuǎn)換過程參考由至少一個頁表提供的至少一個描述符來執(zhí)行,頁表通常駐留在存儲器設(shè)備中,如圖1示出的頁表45所示。頁表查找(walk)電路18、64用于向存儲器設(shè)備40發(fā)布存儲器頁表查找請求,以便擷取針對從相關(guān)聯(lián)的處理電路接收到的存儲器訪問請求執(zhí)行地址轉(zhuǎn)換過程所需的各個描述符。這些描述符可在轉(zhuǎn)換后備緩沖器(TLB)結(jié)構(gòu)16、62內(nèi)進行本地緩沖。如果所需的描述符已經(jīng)駐留在TLB中,則可以無延遲地執(zhí)行使用該描述符的地址轉(zhuǎn)換過程的部分。然而,如果所需的描述符不存在于TLB中,則所需的描述符首先必須由頁表查找電路通過發(fā)布適當?shù)捻摫聿檎艺埱髞磉M行擷取。有時,特定頁表查找請求所需的描述符可緩存在系統(tǒng)內(nèi)的各級緩存20、22、30中的一者中,因此不必進行存儲器設(shè)備的訪問。然而,在其他實例中,需要將頁表操作請求一直傳播至存儲器設(shè)備,以便擷取所需的描述符,然后將所述描述符返回到MMU以存儲在相關(guān)聯(lián)的TLB中,并且供地址轉(zhuǎn)換過程使用。

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

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

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

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

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

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

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

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

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

雖然在圖2中示出了兩級頁表層級架構(gòu),但應(yīng)當理解的是,頁表層級架構(gòu)中的頁表的級數(shù)可包括多于兩個級,針對頁表層級架構(gòu)的每一級圖2中所示的過程被重復(fù),直到達到最終層級,接著使用從頁表層級架構(gòu)的最終級獲取的描述符來訪問相關(guān)數(shù)據(jù)頁中的所需數(shù)據(jù)項。所描述的實施例的預(yù)取機制的使用可顯著減少與頁表轉(zhuǎn)換過程的每個后續(xù)級以及要訪問的最終數(shù)據(jù)項的擷取相關(guān)聯(lián)的延遲。

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

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

如圖4B所示,在替代實施例中,頁表查找讀取請求270可額外地包括字段275,該字段275包括被設(shè)定為標識該請求是頁表查找請求的標志,其中預(yù)查找電路應(yīng)當針對該頁表查找請求執(zhí)行一些關(guān)聯(lián)的預(yù)取。替代地,在一些實施例中,可以不需要該標志,并且預(yù)查找電路的檢測電路能夠基于額外虛擬地址位字段265中的數(shù)據(jù)的存在來確定應(yīng)當執(zhí)行預(yù)取的頁表查找請求的存在。

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

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

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

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

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

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

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

預(yù)查找電路可位于裝置內(nèi)的各種位置。在一些實施例中,預(yù)查找電路可駐留在MMU 14、60與存儲器設(shè)備40之間。在一個實施例中,預(yù)查找電路被并入到與存儲器設(shè)備相關(guān)聯(lián)的存儲器控制器400內(nèi),如圖6中所示。在該示例中,存儲器控制器400與DRAM存儲器設(shè)備415相關(guān)聯(lián)。由各種處理電路發(fā)布的讀取存儲器訪問請求在被轉(zhuǎn)發(fā)到存儲器設(shè)備415之前被緩沖在讀取請求隊列405內(nèi)。典型地,讀取請求查找電路425將監(jiān)視該讀取請求隊列的內(nèi)容并在讀取數(shù)據(jù)隊列420中執(zhí)行查找,以便檢測已從存儲器設(shè)備擷取到所請求的讀取數(shù)據(jù)的情況。在這些情況下,可直接從讀取數(shù)據(jù)隊列提供讀取數(shù)據(jù),而不必執(zhí)行對存儲器設(shè)備的訪問。然而,對于不能從讀取數(shù)據(jù)隊列的內(nèi)容直接服務(wù)的讀取請求,調(diào)度器410將調(diào)度各種讀取請求以供存儲器設(shè)備進行處理,并且將向存儲器設(shè)備發(fā)出適當?shù)目刂泼?,以使存儲器設(shè)備處理讀取訪問請求。接著,所擷取的讀取數(shù)據(jù)將被返回到讀取數(shù)據(jù)隊列420,所擷取的讀取數(shù)據(jù)在讀取數(shù)據(jù)隊列可被返回至請求處理電路/MMU。

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

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

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

盡管本文已經(jīng)描述了特定實施例,但是應(yīng)當理解的是,本發(fā)明不限于此,并且在本發(fā)明的范圍內(nèi)可以做出許多修改和添加。例如,在不脫離本發(fā)明的范圍的情況下,所附獨立權(quán)利要求的特征可與從屬權(quán)利要求的特征做出各種組合。

當前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
通辽市| 冕宁县| 杭锦旗| 甘德县| 桐庐县| 嘉义县| 漳州市| 且末县| 商南县| 永平县| 锦屏县| 崇义县| 鄯善县| 罗定市| 河西区| 牟定县| 通化县| 改则县| 博野县| 南靖县| 九台市| 温州市| 门源| 托克逊县| 含山县| 台湾省| 共和县| 琼结县| 昭平县| 湖口县| 吉木萨尔县| 沙湾县| 航空| 广汉市| 昌黎县| 富阳市| 康乐县| 昭平县| 阿拉善左旗| 成都市| 石城县|