高速緩存一致性計算機(jī)系統(tǒng)中未緩存的短地址轉(zhuǎn)換表的制作方法
【專利摘要】一種網(wǎng)絡(luò)單元,包括處理器和耦接到所述處理器的隨機(jī)存取存儲器(RAM)組件,其中,所述RAM組件包括內(nèi)存管理單元(MMU)和數(shù)據(jù)RAM,所述MMU包括用于將從所述處理器接收到的虛擬內(nèi)存地址轉(zhuǎn)換為物理內(nèi)存地址的完整頁面地址表,所述完整頁面地址表大體上是靜態(tài)的。
【專利說明】高速緩存一致性計算機(jī)系統(tǒng)中未緩存的短地址轉(zhuǎn)換表
[0001]優(yōu)先權(quán)信息
[0002]本發(fā)明要求2011年11月2日由Yolin Lih遞交的發(fā)明名稱為“高速緩存一致性計算機(jī)系統(tǒng)中未緩存的短地址轉(zhuǎn)換表”的美國臨時專利申請61/554,742的在先申請優(yōu)先權(quán),該在先申請的內(nèi)容以引入的方式并入本文本中。
[0003]關(guān)于聯(lián)邦贊助的研究或開發(fā)的聲明
[0004]不適用。
[0005]縮微平片附件的引用
[0006]不適用。
【背景技術(shù)】
[0007]內(nèi)存管理單元(MMU)是負(fù)責(zé)處理數(shù)據(jù)處理系統(tǒng)中中央處理器(CPU)的內(nèi)存存取請求的組件。MMU通常駐存在數(shù)據(jù)處理系統(tǒng)的隨機(jī)存取存儲器(RAM)中。CPU在請求內(nèi)存數(shù)據(jù)時為MMU提供虛擬內(nèi)存地址,MMU則負(fù)責(zé)將虛擬內(nèi)存地址轉(zhuǎn)換為與實際物理內(nèi)存位置對應(yīng)的物理內(nèi)存地址。為實現(xiàn)上述轉(zhuǎn)換目的,MMU通常會查詢緩存的旁路轉(zhuǎn)換緩沖區(qū)(TLB)。TLB是完整頁面地址表的一部分,可以隨時間變化而變化。完整地址表通常駐存在主內(nèi)存中。TLB隨著時間變化而變化,因此,在具有多個MMU的多處理器系統(tǒng)中,可能會因為每個MMU均具有自己的TLB且各TLB可能包含不同的表項而產(chǎn)生高速緩存一致性問題。而且,由于TLB僅包括完整頁面地址表的一部分,所以CPU的一些內(nèi)存請求可能會導(dǎo)致緩存命中失敗。此時,MMU必須查詢完整頁面地址表,因而導(dǎo)致時延增加。
[0008]此外,MMU還負(fù)責(zé)保護(hù)RAM中的數(shù)據(jù)頁面,在CPU的請求特權(quán)級別不夠高時阻止或拒絕CPU對數(shù)據(jù)的存取,從而阻止未授權(quán)讀取和/或修改RAM中的數(shù)據(jù)。頁面轉(zhuǎn)換表不僅包含用于將虛擬地址轉(zhuǎn)換為物理地址的表項,還包含與各虛擬地址相關(guān)聯(lián)的特權(quán)級別。TLB中包含虛擬地址的一部分和特權(quán)級別關(guān)聯(lián)關(guān)系。MMU將核查TLB,確定存取與虛擬地址相關(guān)聯(lián)的數(shù)據(jù)所需的特權(quán)。然而,由于TLB中不包含完整頁面轉(zhuǎn)換表,所以存在一種可能性,即MMU在未額外查詢完整轉(zhuǎn)換表時將無法確定該數(shù)據(jù)請求是否獲得授權(quán)。如果必須查詢完整頁面轉(zhuǎn)換表,則會增加確定數(shù)據(jù)請求是否獲得授權(quán)的時間。而且,與地址轉(zhuǎn)換情況相同,TLB的高速緩存一致性問題還會降低MMU執(zhí)行其頁面保護(hù)機(jī)制的性能。
【發(fā)明內(nèi)容】
[0009]本發(fā)明一實施例公開了一種網(wǎng)絡(luò)單元,包括處理器和耦接到所述處理器的RAM組件,其中,所述RAM組件包括MMU和數(shù)據(jù)RAM,所述MMU包括用于將從所述處理器接收到的虛擬內(nèi)存地址轉(zhuǎn)換為物理內(nèi)存地址的完整頁面地址表,所述完整頁面地址表大體上是靜態(tài)的。
[0010]本發(fā)明另一實施例公開了一種讀取RAM數(shù)據(jù)的方法,包括:MMU接收來自處理器的內(nèi)存存取命令,其中,所述內(nèi)存存取命令包括虛擬內(nèi)存地址;所述MMU通過查詢RAM中包含的完整轉(zhuǎn)換表,至少將所述虛擬內(nèi)存地址的第一部分轉(zhuǎn)換為物理內(nèi)存地址的第一部分,其中,所述完整轉(zhuǎn)換表包括大體上處于靜態(tài)的表項。
[0011]本發(fā)明再一實施例公開了一種數(shù)據(jù)處理系統(tǒng)中的RAM組件,包括MMU和耦接到所述MMU的完整章節(jié)地址表,其中,所述MMU用于通過查詢所述完整章節(jié)地址表,將虛擬內(nèi)存地址轉(zhuǎn)換為物理內(nèi)存地址,所述完整章節(jié)地址表是未緩存的、大體上靜態(tài)的。
[0012]通過下述【具體實施方式】并結(jié)合【專利附圖】
【附圖說明】和權(quán)利要求,將會更加清楚地理解這些特征及其他特征。
【專利附圖】
【附圖說明】
[0013]為更全面地理解本發(fā)明,下面結(jié)合【具體實施方式】對附圖作簡要說明,其中,相同的附圖標(biāo)記表示相同的部件。
[0014]圖1為一種可以是任意通過網(wǎng)絡(luò)進(jìn)行數(shù)據(jù)傳輸和處理的設(shè)備的網(wǎng)絡(luò)單元的示例性實施例示意圖;
[0015]圖2為一種通過TLB將虛擬地址轉(zhuǎn)換為物理地址的方案示意圖;
[0016]圖3為本發(fā)明實施例提供的一種可在MMU中實現(xiàn)的完整頁面地址表的示意圖;
[0017]圖4為本發(fā)明實施例提供的一種通過MMU實現(xiàn)完整頁面地址表的RAM內(nèi)存模塊的緩存框圖;
[0018]圖5為本發(fā)明實施例提供的一種檢索內(nèi)存數(shù)據(jù)的方法流程圖;
[0019]圖6為本發(fā)明實施例提供的一種維護(hù)RAM中完整頁面地址表的方法流程圖。
【具體實施方式】
[0020]首先應(yīng)當(dāng)理解的是,雖然下文提供了一個或多個實施例的示意性實施方式,所公開的系統(tǒng)和/或方法可以通過多種當(dāng)前已知或存在的技術(shù)實現(xiàn)。本發(fā)明不受限于下文所述的示意性實施方式、附圖和技術(shù),包括此處示出和描述的示例性設(shè)計和實施方式,即可在所附權(quán)利要求的范圍及其等同要求的全部范圍內(nèi)進(jìn)行修改。
[0021]此處所公開的、頁面大小可變的頁面地址表(又稱章節(jié)地址表)可在如數(shù)據(jù)處理系統(tǒng)的RAM等硬件中完整實現(xiàn)。在一實施例中,所述公開的章節(jié)地址表可以是靜態(tài)或準(zhǔn)靜態(tài)的,不會隨時間變化而變化(例如,章節(jié)地址表在運(yùn)行期間不會發(fā)生變化)。所述公開的章節(jié)地址表可僅在RAM的MMU中實現(xiàn),而無需使用內(nèi)容可尋址存儲器(CAM)和附加比較器。與使用緩存TLB實現(xiàn)的傳統(tǒng)頁面地址表相比,所述公開的章節(jié)地址表和方案可以減少時延。因為所述公開的章節(jié)地址表可以是靜態(tài)或準(zhǔn)靜態(tài)的,所以所述公開的章節(jié)地址表和方案還可以避免傳統(tǒng)頁面地址表通過緩存TLB實現(xiàn)時經(jīng)常遇到的一致性問題。如果章節(jié)地址表的內(nèi)容被損壞,MMU只需要更改該章節(jié)地址表。此時,MMU可以從數(shù)據(jù)處理系統(tǒng)的其他MMU獲得正確的章節(jié)地址表副本。
[0022]圖1為可以是任意通過網(wǎng)絡(luò)進(jìn)行數(shù)據(jù)傳輸和處理的設(shè)備的網(wǎng)絡(luò)節(jié)點100的示例性實施例示意圖。例如,所述網(wǎng)絡(luò)節(jié)點100可實現(xiàn)下述未緩存的、頁面大小可變的完整短頁面地址轉(zhuǎn)換表方案400、方法500和方法600。所述網(wǎng)絡(luò)節(jié)點100包括一個或多個耦接到用于接收來自其他網(wǎng)絡(luò)組件的信號和幀/數(shù)據(jù)的接收器(Rx) 112的入口或入口單元110。所述網(wǎng)絡(luò)節(jié)點100還包括用于確定將數(shù)據(jù)發(fā)送至哪些網(wǎng)絡(luò)組件的邏輯單元120。所述邏輯單元120可以通過硬件、軟件或同時使用兩者實現(xiàn)。所述邏輯單元120可通過一個或多個中央處理器(CPU)芯片實現(xiàn),也可能是一個或多個專用集成電路(ASICs)或數(shù)字信號處理器(DSPs)的一部分,或者通過多處理器集群的一部分實現(xiàn)。所述邏輯單元120包括一個或多個處理器,所述一個或多個處理器可以是多核處理器。所述網(wǎng)絡(luò)節(jié)點100還包括一個或多個耦接到用于將信號和幀/數(shù)據(jù)發(fā)送到其他網(wǎng)絡(luò)組件的發(fā)送器(Tx) 132的出口或出口單元130。所述網(wǎng)絡(luò)節(jié)點100還包括耦接到所述邏輯單元120的內(nèi)存單元150,所述內(nèi)存單元150為所述網(wǎng)絡(luò)節(jié)點100存儲路由表和/或其他數(shù)據(jù);所述網(wǎng)絡(luò)節(jié)點100還包括耦接到所述邏輯單元120的RAM組件140,所述RAM組件140包括MMU141和DataRAM146,所述MMU141可用于管理所述DataRAM146,所述MMU141包括地址轉(zhuǎn)換表142,所述地址轉(zhuǎn)換表142包括映射虛擬地址和物理地址的表項。所述DataRAM146還可以存儲路由表,該路由表中包含到其他網(wǎng)絡(luò)目的地的路由。所述MMU141可以實現(xiàn)上述未緩存的、頁面大小可變的完整頁面地址轉(zhuǎn)換表、方案300、方法400和方法500。所述網(wǎng)絡(luò)節(jié)點100的組件可如圖1所示進(jìn)行設(shè)置。
[0023]圖2為一種通過TLB將虛擬地址轉(zhuǎn)換為物理地址的傳統(tǒng)方案200示意圖。方案200包括完整頁面地址表202和TLB。上述示意圖示出了時間點I的TLB204和時間點2的TLB206。所述完整地址表202通常存儲在計算機(jī)的硬盤或其他存儲器中。所述TLB包括該完整地址表的一部分,且一般駐存在計算機(jī)的DRAM中。所述完整頁面地址表202中的淺色陰影框?qū)?yīng)于復(fù)制到時間點I的TLB204中的地址;所述完整頁面地址表202中的深色陰影框?qū)?yīng)于復(fù)制到時間點2的TLB206中的地址;所述完整頁面地址表202中的白框?qū)?yīng)于既未復(fù)制到時間點I的TLB中、又未復(fù)制到時間點2的TLB中的地址,這些地址可能會被復(fù)制到其他時間點的TLB中。所述頁面地址表202包括將內(nèi)存中的虛擬(或邏輯)內(nèi)存地址轉(zhuǎn)換為物理內(nèi)存地址的表項。所述頁面地址表202可以存儲在網(wǎng)絡(luò)組件的主內(nèi)存中;所述TLB204和TLB206可以存儲或駐存在前述網(wǎng)絡(luò)組件的主內(nèi)存中,或存儲在前述網(wǎng)絡(luò)組件的RAM中;所述TLB204和TLB206還可以存儲在MMU中。虛擬地址與物理地址之間的映射關(guān)系的表示形式如下:
[0024]Virtual_Address[V:O]->Physical_Address[P: O],
[0025]其中,V+1位表示虛擬地址的長度,P+1位表示物理地址的長度,而且虛擬地址的長度和物理地址的長度可以不同。一般來說,所述頁面地址表202中各頁面的大小固定相同,由于各頁面大小相同,所以所述頁面地址表202可能會因為過大而無法在RAM中實現(xiàn)(例如,適應(yīng)64位虛擬地址)。
[0026]所述TLB204和TLB206在指定時間點可能是所述頁面地址表202的部分緩存內(nèi)容,其中可能未包含所述完整的頁面地址表202。所述TLB204和TLB206會根據(jù)處理器的數(shù)據(jù)請求隨著時間變化而變化。例如,在時間點1,所述TLB204包括所述頁面地址表202的表項a、k、j、t、f和X ;在時間點2,所述TLB204變更為所述TLB206,包括所述頁面地址表202的表項h、m、s、n、r和W。所述TLB204和TLB206可通過完全關(guān)聯(lián)的CAM或帶有比較器的集聯(lián)RAM實現(xiàn),但是這兩種TLB實現(xiàn)方式的硬件成本高、時延長。對于具有多個MMU的數(shù)據(jù)處理系統(tǒng),所述TLB204和TLB206這種隨時間變化而變化的性質(zhì)可能會導(dǎo)致TLB —致性問題,其中,一致性問題是指某一 MMU中的緩存TLB包含來自其他MMU中緩存TLB的不同數(shù)據(jù),而解決TLB —致性問題的方法是使用復(fù)雜的硬件和軟件處理方式,甚至可能需要定義專用的支持指令。
[0027]方案200的另一問題是存在緩存命中失敗的可能性。當(dāng)所述TLB204和TLB206中未包含所述虛擬地址時,所述TLB204和TLB206則可能會導(dǎo)致緩存命中失敗,此時,需從所述頁面地址表202,而非從所述TLB204和TLB206中讀取所請求的、與所述虛擬地址關(guān)聯(lián)的數(shù)據(jù)。與通過TLB映射所述虛擬地址和所述物理地址的方法相比,存取所述頁面地址表202可能會導(dǎo)致檢索所述請求數(shù)據(jù)的時延增加。緩存命中失敗可能還會導(dǎo)致其他問題,例如,如果處理器取指令時緩存命中失敗,可能會導(dǎo)致處理器停機(jī)或等候,直至從主內(nèi)存取到該指令。在某些情況下,緩存命中失敗可能會導(dǎo)致應(yīng)用程序停止運(yùn)行。
[0028]圖3為本發(fā)明實施例提供的一種可在MMU中實現(xiàn)的完整頁面地址表300的示意圖。所述頁面地址表300可通過圖1所示的頁面地址表142實現(xiàn)。所述頁面地址表300與所述頁面地址表202類似,只是所述頁面地址表300小于所述頁面地址表202,且可以在數(shù)據(jù)處理系統(tǒng)的RAM或MMU中完整實現(xiàn)。所述頁面地址表300包含僅能將部分“短”內(nèi)存(頁面)地址從虛擬地址轉(zhuǎn)換為物理地址的表項。對于所述頁面而言,所述部分“短”(頁面)地址少于所述頁面的所有完整內(nèi)存(頁面)地址。所述內(nèi)存頁面地址的剩余部分和所述內(nèi)存頁面的索引具有相同的虛擬地址空間和物理地址空間。此外,所述頁面地址表300所包含的頁面的大小是可變的,并非所有頁面的大小相同。例如,某一頁面的大小為16千字節(jié)(KB),而另一頁面的大小可能為I兆字節(jié)(MB)。大小可變的頁面又可以稱為章節(jié),所以為區(qū)分所述頁面地址表300和頁面大小相同的頁面地址表如頁面地址表202,所述頁面地址表300又可稱為章節(jié)地址表。所述頁面地址表300僅通過RAM便可實現(xiàn),不需要使用CAM或附加比較器。
[0029]所述頁面地址表300可通過以下一組限制性轉(zhuǎn)換規(guī)則實現(xiàn):
[0030]Virtual_Address[V:U] = Physical_Address[V:U],
[0031]Virtual_Address[ff:0] = Physical_Address[ff:0],
[0032]Virtual_Address[U_l:ff+l]->Physical_Address[U_l:ff+l]。
[0033]本實施例中,上述第一行規(guī)則表示不可轉(zhuǎn)換虛擬地址的高位;上述第二行規(guī)則表示不可轉(zhuǎn)換虛擬地址的低位;上述第三行規(guī)則表示可將虛擬地址的中間部分,即W+1至U-1,轉(zhuǎn)換為相同長度的物理地址。其他實施例可能適用其他限制性轉(zhuǎn)換規(guī)則,例如,可轉(zhuǎn)換虛擬地址的低位,而不可轉(zhuǎn)換虛擬地址的中間部分和高位。另一實施例中,限制性轉(zhuǎn)換規(guī)則可能為:可將虛擬地址的高位轉(zhuǎn)換為物理地址,而不可轉(zhuǎn)換虛擬地址的中間部分和低位。
[0034]因此,可轉(zhuǎn)換的地址位數(shù)是受到限制的,這使得虛擬地址和物理地址映射表足夠小,從而可在MMU中駐存所述頁面地址表300。在另一實施例中,轉(zhuǎn)換規(guī)則可能為:將以(x, y)形式表示的虛擬地址轉(zhuǎn)換為以(z,y)形式表示的物理地址,其中,(x,y)中的χ表示虛擬地址的第一部分,y表示虛擬地址的剩余部分;(z,y)中的z表示物理地址的第一部分,y表示物理地址的剩余部分,且虛擬地址中的y和物理地址中的y仍然相同。這樣,則只需通過所述頁面地址表300將χ轉(zhuǎn)換為z。所述頁面地址表300的頁面大小根據(jù)實現(xiàn)方式中具體參數(shù)如數(shù)據(jù)處理系統(tǒng)中RAM的大小而變化。在某些實施例中,如果虛擬地址足夠短,則所述完整的虛擬地址可通過所述頁面地址表300轉(zhuǎn)換為物理地址。
[0035]在一實施例中,所述頁面地址表300中的表項包括地址及對應(yīng)的數(shù)據(jù)。在一實施例中,所述頁面地址表300的表項包括內(nèi)置的比較器。由于所述頁面地址表300是靜態(tài)或準(zhǔn)靜態(tài)的(即基本不會隨時間變化而變化),所以使用所述公開的頁面地址表300的數(shù)據(jù)處理系統(tǒng)可避免高速緩存一致性問題。傳統(tǒng)方法中,TLB(例如TLB204或TLB206)中的內(nèi)容由其所處理的工作內(nèi)容決定。如果處理器或MMU域正在切換工作內(nèi)容,該處理器或MMU可能需要動態(tài)替換TLB的內(nèi)容,這就產(chǎn)生了不同步的情況。因此,此處所述的靜態(tài)或準(zhǔn)靜態(tài)是指所述頁面地址表300完全不會發(fā)生變化或不會根據(jù)配置發(fā)生變化(如在完成工作后),這樣,所有MMU可同時以可預(yù)見的方式協(xié)調(diào)(同步)各自的變化。所述頁面地址表300在工作期間不會發(fā)生動態(tài)、異步和不可預(yù)見的變化(但是這種情況會發(fā)生在TLB204和TLB206中)。
[0036]圖4為本發(fā)明實施例提供的一種通過MMU實現(xiàn)完整頁面地址表的RAM內(nèi)存模塊400的緩存框圖。所述RAM內(nèi)存模塊400可通過圖1所示的RAM組件140實現(xiàn)。所述模塊400包括MMU/轉(zhuǎn)換表404、TagRAM406和多個DataRAM408,其中,所述MMU/轉(zhuǎn)換表404可通過圖1所示的MMU141和頁面轉(zhuǎn)換表142實現(xiàn);所述DataRAM408可通過圖1所示的DataRAM146實現(xiàn)。所述模塊400還包括標(biāo)記比較單元410和Way復(fù)用器(Mux) 412。所述MMU/轉(zhuǎn)換表404包括完整頁面地址表,如圖3所示的頁面地址表300。所述TagRAM包括用于指示將數(shù)據(jù)元素存儲到所述多個DataRAM408中哪一個DataRAM408的表項。所述DataRAM408包括數(shù)據(jù)和/或處理器使用的指令;所述標(biāo)記比較單元410接收來自所述MMU/轉(zhuǎn)換表404和所述TagRAM406的輸入內(nèi)容,并確定可從哪些DataRAM中檢索所請求的數(shù)據(jù);所述Way Mux412耦接到各DataRAM408的輸出端;所述Way Mux412還耦接到所述標(biāo)記比較單元410的輸出端;所述標(biāo)記比較單元410的輸出端可確定哪些來自DataRAM408的數(shù)據(jù)是由Way Mux412輸出的。
[0037]所述模塊400 —般是集聯(lián)緩存子系統(tǒng),包括DataRAM部分408和TagRAM復(fù)合體406,其中,所述DataRAM部分408可存儲緩存的內(nèi)存數(shù)據(jù);所述DataRAM部分408可通過部分內(nèi)存地址進(jìn)行存取。N路集聯(lián)緩存系統(tǒng)中有N組來自所述DataRAM部分408的數(shù)據(jù)。由于所述DataRAM部分408可通過部分內(nèi)存地址進(jìn)行存取,且具有N組數(shù)據(jù),所以所述DataRAM部分408無法根據(jù)完整地址單獨確定數(shù)據(jù)是否正確,而且在實際情況中,可能所有數(shù)據(jù)都是不正確的。因此,所述TagRAM部分406可確定是否需要來自所述DataRAM408的數(shù)據(jù)以及所需要的數(shù)據(jù)內(nèi)容。所述TagRAM部分406可通過與存取所述DataRAM408相同的部分地址進(jìn)行存取,且可以發(fā)送出N組地址信息。一組地址信息對應(yīng)出自所述DataRAM408的每個數(shù)據(jù)。使用標(biāo)記比較單元410對出自所述TagRAM406的各地址信息和所述DataRAM408及所述TagRAM存取408中未使用的完整地址中的一部分地址進(jìn)行比較。如果比較結(jié)果匹配,則表示來自所述DataRAM408的對應(yīng)數(shù)據(jù)是正確的數(shù)據(jù);如果結(jié)果不匹配,則表示所需數(shù)據(jù)不在緩存中。
[0038]由所述TagRAM復(fù)合體406管理的所述模塊400接收來自處理器的內(nèi)存存取命令402,其中,所述內(nèi)存存取命令402包括虛擬內(nèi)存地址,還包括特權(quán)級別,所述特權(quán)級別可指示請求數(shù)據(jù)的應(yīng)用程序或處理器是否獲得授權(quán)來讀取和/或修改所述DataRAM408中的數(shù)據(jù)。所述MMU/轉(zhuǎn)換表404可以映射虛擬內(nèi)存地址和物理內(nèi)存地址,并向所述標(biāo)記比較單元410輸出物理內(nèi)存地址。所述MMU/轉(zhuǎn)換表404還可以保護(hù)所述DataRAM408中的數(shù)據(jù)頁面,在所述內(nèi)存存取命令402的特權(quán)級別不夠存取所述DataRAM408中的數(shù)據(jù)時(或低于特權(quán)級別的門限時)阻止或拒絕所述內(nèi)存存取命令402對數(shù)據(jù)的存取。還可以將所述內(nèi)存存取命令402發(fā)送至所述TagRAM406和所述DataRAM408。所述TagRAM406可以輸出多個標(biāo)記,每個標(biāo)記對應(yīng)不同的DataRAM408。所述標(biāo)記比較單元410對所述物理內(nèi)存地址和來自所述TagRAM406的標(biāo)記進(jìn)行比較,確定包含所述內(nèi)存存取命令402所請求的數(shù)據(jù)的DataRAM。所述Way Mux412根據(jù)所述標(biāo)記比較單元410的輸出內(nèi)容確定需發(fā)送至內(nèi)存數(shù)據(jù)讀出414的、出自DataRAM408的數(shù)據(jù)。之后,再將上述數(shù)據(jù)發(fā)送至請求處理器。由于所述完整轉(zhuǎn)換表駐存在RAM中(如MMU中),所以無需額外使用比較單元。然而,如圖2所示的傳統(tǒng)地址轉(zhuǎn)換方案則需要額外使用圖4中未涉及的比較單元。因此,與使用在RAM外部進(jìn)行緩存或駐存而實現(xiàn)的完整頁面地址表進(jìn)行地址轉(zhuǎn)換的傳統(tǒng)方法和方案相比,使用此處公開的、在RAM中實現(xiàn)的完整頁面地址表進(jìn)行地址轉(zhuǎn)換的方案可降低硬件成本,減少時延。
[0039]圖5為本發(fā)明實施例提供的一種內(nèi)存數(shù)據(jù)檢索方法500的流程圖。所述方法500從步驟502開始。步驟502:MMU404接收來自處理器的內(nèi)存存取命令402,其中,所述內(nèi)存存取命令402包括虛擬內(nèi)存地址。步驟504:所述MMU404使用駐存在所述MMU404或RAM中的未緩存完整頁面轉(zhuǎn)換表對所述虛擬地址和物理地址進(jìn)行映射。步驟506:比較所述MMU的物理地址和TagRAM的輸出結(jié)果,確定包含與所述內(nèi)存存取命令402對應(yīng)的數(shù)據(jù)的DataRAM408。步驟508:檢索DataRAM408中的數(shù)據(jù)。步驟510:所述MMU讀取內(nèi)存數(shù)據(jù)讀出414至所述處理器。所述方法500結(jié)束。
[0040]圖6為本發(fā)明實施例提供的一種維護(hù)RAM中完整頁面地址表的方法600的流程圖。方法600從步驟602開始。步驟602:MMU404維護(hù)RAM中靜態(tài)或準(zhǔn)靜態(tài)的未緩存完整頁面地址表。步驟604:所述MMU404確定所述頁面地址表有誤。例如,所述頁面地址表具有軟件錯誤,或者被損壞。步驟606:所述MMU404向數(shù)據(jù)處理系統(tǒng)中的其他MMU請求正確的(即未損壞的)頁面地址表副本。步驟608:所述MMU404使用從數(shù)據(jù)處理系統(tǒng)中其他MMU獲得的所述正確頁面地址表副本更新所述頁面地址表。之后,所述方法600結(jié)束。
[0041]本發(fā)明至少公開了一個實施例,本領(lǐng)域普通技術(shù)人員對本發(fā)明實施例和/或本發(fā)明實施例的特征所作的變動、合并和/或修改都應(yīng)涵蓋在本發(fā)明范圍之內(nèi)。因合并、整合和/或刪略本發(fā)明實施的特征而產(chǎn)生的替代實施例也應(yīng)涵蓋在本發(fā)明范圍之內(nèi)。應(yīng)當(dāng)理解的是,本發(fā)明中已詳細(xì)闡明了數(shù)值范圍或限值,此類詳述的范圍或限值應(yīng)包括涵蓋在上述范圍或限值范圍(如從大約I至大約10的范圍包括2、3、4等,大于0.10的范圍包括0.11、
0.12、0.13等)內(nèi)的類似數(shù)量級的重復(fù)范圍或限值。例如,每當(dāng)公開一數(shù)值范圍,其下限值為R1,上限值為Ru,則表示具體公開了該數(shù)值范圍內(nèi)的任意數(shù)值,尤其是具體公開了該數(shù)值范圍內(nèi)的以下數(shù)值=R = Rfl^(Ru-R1),其中,k是1%至100%之間、每次增量為1%的變量,
即 k 為 1%、2%、3%、4%、5%、......,70%,71%,72%,......,95%,96%,97%,98%,99%或100%;此外,還具體公開了根據(jù)上述定義的兩個R數(shù)值而定義的任何數(shù)值范圍。除非另行說明,否則術(shù)語“大約”表示其后數(shù)值±10%的范圍。權(quán)利要求中任何要素涉及到的術(shù)語“可選地”表示該要素是必需的,或者表示該要素不是必需的,這兩種情況均應(yīng)涵蓋在該權(quán)利要求范圍內(nèi)。上位概念詞如“包含”、“包括”、“具有”等均應(yīng)理解為支持下位概念詞如“由……組成”、“基本上由……組成”、“大體上由……組成”等。相應(yīng)地,本發(fā)明的保護(hù)范圍不應(yīng)僅限于上文的描述說明,也不應(yīng)僅限于下文權(quán)利要求所限定的范圍,還應(yīng)包括下述權(quán)利要求中要求保護(hù)客體的所有等同物。進(jìn)一步,下述各權(quán)利要求和上述說明書均結(jié)合在本發(fā)明申請中,且下述權(quán)利要求是本發(fā)明的具體體現(xiàn)。對本發(fā)明中引用的討論不表示認(rèn)可該引用是現(xiàn)有技術(shù),尤其是
【公開日】期在本申請 優(yōu)先權(quán)日:期之后的任何引用。本發(fā)明中引用的所有公開專利、專利申請和出版物均以引入的方式并入本文本中,為本發(fā)明提供示例性、程序性或其他細(xì)節(jié)性補(bǔ)充說明。
[0042]雖然本發(fā)明提供了多個具體實施例,但應(yīng)當(dāng)理解,所公開的系統(tǒng)和方法也可通過其他多種具體形式體現(xiàn),而不會脫離本發(fā)明的精神或范圍。本申請中的示例可視為說明性示例而非限制性示例,而且本發(fā)明并不限于此處描述的詳細(xì)內(nèi)容,例如,另一系統(tǒng)可能合并或融合各種要素或組件,或者刪略或不實現(xiàn)某些特征。
[0043]此外,各種實施例中分離或單獨描述或說明的技術(shù)、系統(tǒng)、子系統(tǒng)、方法還可與其他系統(tǒng)、模塊、技術(shù)或方法進(jìn)行合并或融合,而不會脫離本發(fā)明的范圍。所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口、裝置或單元的間接耦合或通信連接,可以是電的,機(jī)械的或其它的形式。其他變更、替換、更替示例對本領(lǐng)域技術(shù)人員而言是顯而易見的,均不脫離此處公開的精神和范圍。
【權(quán)利要求】
1.一種網(wǎng)絡(luò)單元,其特征在于,包括: 處理器和 耦接到所述處理器的隨機(jī)存取存儲器(RAM)組件,其中,所述RAM組件包括內(nèi)存管理單元(MMU)和數(shù)據(jù)RAM,所述MMU包括用于將從所述處理器接收到的虛擬內(nèi)存地址轉(zhuǎn)換為物理內(nèi)存地址的完整頁面地址表,所述完整頁面地址表大體上是靜態(tài)的。
2.根據(jù)權(quán)利要求1所述的網(wǎng)絡(luò)單元,其特征在于,所述完整頁面地址表包括對應(yīng)不同大小的頁面的表項。
3.根據(jù)權(quán)利要求1所述的網(wǎng)絡(luò)單元,其特征在于,所述完整頁面地址表包括將所述虛擬內(nèi)存地址的第一部分轉(zhuǎn)換為所述物理內(nèi)存地址的第一部分的表項。
4.根據(jù)權(quán)利要求3所述的網(wǎng)絡(luò)單元,其特征在于,將所述虛擬內(nèi)存地址的第二部分在轉(zhuǎn)換為所述物理內(nèi)存地址的第二部分時,所述虛擬內(nèi)存地址的第二部分保持不變。
5.根據(jù)權(quán)利要求1所述的網(wǎng)絡(luò)單元,其特征在于,所述完整頁面地址表在運(yùn)行期間不會發(fā)生動態(tài)變化。
6.根據(jù)權(quán)利要求1所述的網(wǎng)絡(luò)單元,其特征在于,所述MMU用于在所述數(shù)據(jù)RAM的數(shù)據(jù)請求所包含的特權(quán)級別不夠時拒絕所述數(shù)據(jù)請求。
7.根據(jù)權(quán)利要求1所述的網(wǎng)絡(luò)單元,其特征在于,所述MMU用于在所述MMU確定所述完整頁面地址表被損壞時從其他MMU獲得所述完整頁面地址表的正確副本。
8.根據(jù)權(quán)利要求1所述的網(wǎng)絡(luò)單元,其特征在于,所述完整頁面地址表是未緩存的。
9.根據(jù)權(quán)利要求1所述的網(wǎng)絡(luò)單元,其特征在于,所述MMU不包括旁路轉(zhuǎn)換緩沖區(qū)。
10.一種讀取隨機(jī)存取存儲器(RAM)數(shù)據(jù)的方法,其特征在于,包括: 內(nèi)存管理單元(MMU)接收來自處理器的內(nèi)存存取命令,其中,所述內(nèi)存存取命令包括虛擬內(nèi)存地址; 所述MMU通過查詢所述RAM中包含的完整轉(zhuǎn)換表,至少將所述虛擬內(nèi)存地址的第一部分轉(zhuǎn)換為物理內(nèi)存地址的第一部分,其中,所述完整轉(zhuǎn)換表包括大體上處于靜態(tài)的表項。
11.根據(jù)權(quán)利要求10所述的方法,其特征在于,將所述虛擬內(nèi)存地址的第二部分轉(zhuǎn)換為所述物理內(nèi)存地址的第二部分后,所述虛擬內(nèi)存地址的第二部分保持不變。
12.根據(jù)權(quán)利要求10所述的方法,其特征在于,所述完整轉(zhuǎn)換表中至少有兩條表項對應(yīng)不同大小的頁面。
13.根據(jù)權(quán)利要求10所述的方法,其特征在于,所述內(nèi)存存取命令包括特權(quán)級別,所述方法還包括在所述特權(quán)級別低于所述內(nèi)存存取命令所請求的數(shù)據(jù)的門限時阻止提供所述請求的數(shù)據(jù)。
14.根據(jù)權(quán)利要求10所述的方法,其特征在于,所述方法還包括: 當(dāng)所述MMU確定所述完整地址表被損壞時,從其他MMU請求所述完整地址表的正確副本; 接收來自所述其他MMU的所述完整地址表的正確副本; 在所述RAM中存儲所述完整地址表的正確副本。
15.根據(jù)權(quán)利要求10所述的方法,其特征在于,所述完整地址表是未緩存的。
16.根據(jù)權(quán)利要求10所述的方法,其特征在于,所述MMU不包括旁路轉(zhuǎn)換緩沖區(qū)。
17.根據(jù)權(quán)利要求10所述的方法,其特征在于,所述完整地址表在運(yùn)行期間不會發(fā)生動態(tài)變化。
18.一種數(shù)據(jù)處理系統(tǒng)的隨機(jī)存取存儲器(RAM)組件,其特征在于,包括: 內(nèi)存管理單元(MMU)和 耦接到所述MMU的完整章節(jié)地址表,其中: 所述MMU用于通過查詢所述完整章節(jié)地址表將虛擬內(nèi)存地址轉(zhuǎn)換為物理內(nèi)存地址, 所述完整章節(jié)地址表是未緩存的、大體上靜態(tài)的。
19.根據(jù)權(quán)利要求18所述的RAM組件,其特征在于,所述MMU用于將虛擬內(nèi)存地址轉(zhuǎn)換為物理內(nèi)存地址,無需查詢駐存在所述RAM組件外部的頁面地址表。
20.根據(jù)權(quán)利要求18所述的RAM組件,其特征在于,所述章節(jié)地址表中的第一表項對應(yīng)第一頁面,所述章節(jié)地址表中的第二表項對應(yīng)第二頁面,所述第一頁面的大小與所述第二頁面的大小不同。
21.根據(jù)權(quán)利要求18所述的RAM組件,其特征在于,所述MMU不包括旁路轉(zhuǎn)換緩沖區(qū)。
22.根據(jù)權(quán)利要求18所述的RAM組件,其特征在于,所述MMU用于將所述虛擬內(nèi)存地址的第一部 分轉(zhuǎn)換為所述物理內(nèi)存地址的第一部分;所述MMU用于將所述虛擬內(nèi)存地址的第二部分轉(zhuǎn)換為所述物理內(nèi)存地址的第二部分;將所述虛擬內(nèi)存地址的所述第二部分轉(zhuǎn)換為所述物理內(nèi)存地址的所述第二部分后,所述所述虛擬內(nèi)存地址的所述第二部分保持不變。
23.根據(jù)權(quán)利要求18所述的RAM組件,其特征在于,所述MMU用于在所述MMU確定所述完整地址表被損壞時從其他MMU獲得所述完整地址表的正確副本。
24.根據(jù)權(quán)利要求18所述的RAM組件,其特征在于,所述完整地址表在運(yùn)行期間不會發(fā)生動態(tài)變化。
【文檔編號】G06F12/10GK103907099SQ201280054058
【公開日】2014年7月2日 申請日期:2012年11月2日 優(yōu)先權(quán)日:2011年11月2日
【發(fā)明者】林奕林 申請人:華為技術(shù)有限公司