虛擬物理地址轉(zhuǎn)換系統(tǒng)及其管理方法【
技術(shù)領(lǐng)域:
】[0001]本發(fā)明涉及內(nèi)存管理,具體地,涉及一種以一虛擬地址的一部分的位來作為索引的虛擬物理地址轉(zhuǎn)換系統(tǒng)管理方法及其相關(guān)的虛擬物理地址轉(zhuǎn)換系統(tǒng)?!?br>背景技術(shù):
】[0002]內(nèi)存管理單兀(memorymanagementunit)是通過轉(zhuǎn)換后備緩沖器(translat1nlookasidebuffer,TLB)來提升分頁表(pagetable)的查閱效率。舉例來說,無互鎖管線階段的微處理器(microcomputerwithoutinterlockedpipelinestages,MIPS)所米用的轉(zhuǎn)換后備緩沖器可具有多個(例如,64)入口(entry)以進行高速查閱,其中每一入口均可存儲一虛擬地址(virtualaddress)與一物理地址(physicaladdress)的一虛擬物理地址轉(zhuǎn)換(virtual-to-physicaladdresstranslat1n)。[0003]然而,在上述轉(zhuǎn)換后備緩沖器之中進行查閱時,需要將欲查閱的一虛擬地址與每一入口所存儲的虛擬地址進行映射(也即,全關(guān)系型映射(;1;\1117-3880(^31:;^6mapping)),也就是說,需要有多個(例如,64)比較電路,因此,若增加轉(zhuǎn)換后備緩沖器的入口個數(shù)以提升系統(tǒng)效率,轉(zhuǎn)換后備緩沖器的電路面積也會隨之增加,處理速度也會下降,然而,若將轉(zhuǎn)換后備緩沖器的入口個數(shù)降低,則會降低系統(tǒng)效率(例如,轉(zhuǎn)換后備緩沖器丟失(TLBmiss)的機率增加)。[0004]因此,需要一種可提升系統(tǒng)效率而不會犧牲電路面積與處理速度的虛擬物理地址轉(zhuǎn)換系統(tǒng)?!?br/>發(fā)明內(nèi)容】[0005]有鑒于此,本發(fā)明的目的之一在于提供一種以一虛擬地址的一部分的位來作為索引的虛擬物理地址轉(zhuǎn)換系統(tǒng)管理方法及其相關(guān)的虛擬物理地址轉(zhuǎn)換系統(tǒng),來解決上述問題。[0006]依據(jù)本發(fā)明的一實施例,其揭示一種虛擬物理地址轉(zhuǎn)換系統(tǒng)的管理方法。該管理方法包含下列步驟:提供一第一存儲空間,其中該第一存儲空間包含多個緩沖入口;提供一第二存儲空間,其中該第二存儲空間包含多個轉(zhuǎn)換入口,以及該多個轉(zhuǎn)換入口是對應于多個轉(zhuǎn)換索引;以及當接收一寫入指令以將一第一虛擬物理地址轉(zhuǎn)換寫入該多個緩沖入口的一特定緩沖入口時,依據(jù)該第一虛擬物理地址轉(zhuǎn)換所對應的一第一虛擬地址的一第一部份的位來將該第一虛擬物理地址轉(zhuǎn)換存儲于該多個轉(zhuǎn)換入口之中的一寫入轉(zhuǎn)換入口,以及將該第一虛擬地址與該寫入轉(zhuǎn)換入口所對應的一寫入轉(zhuǎn)換索引存儲于該特定緩沖入口。[0007]依據(jù)本發(fā)明的另一實施例,其另揭示一種虛擬物理地址轉(zhuǎn)換系統(tǒng)的管理方法。該管理方法包含下列步驟:提供一存儲空間,其中該存儲空間包含多個轉(zhuǎn)換入口,該多個轉(zhuǎn)換入口是存儲至少一虛擬物理地址轉(zhuǎn)換,并分別對應于多個轉(zhuǎn)換索引;以及當接收一讀出指令以讀出一虛擬地址所對應的一物理地址時,依據(jù)該虛擬地址的一部份的位以從該存儲空間讀出該物理地址。[0008]依據(jù)本發(fā)明的一實施例,其揭示一種虛擬物理地址轉(zhuǎn)換系統(tǒng)。該虛擬物理地址轉(zhuǎn)換系統(tǒng)包含一第一存儲空間、一第二存儲空間以及一處理電路。該第一存儲空間包含多個緩沖入口。該第二存儲空間包含多個轉(zhuǎn)換入口,其中該多個轉(zhuǎn)換入口是分別對應于多個轉(zhuǎn)換索引。該處理電路是耦接于該第一存儲空間以及該第二存儲空間。當該系統(tǒng)接收一寫入指令以將一第一虛擬物理地址轉(zhuǎn)換寫入該多個緩沖入口之中的一特定緩沖入口時,該處理電路是依據(jù)該第一虛擬物理地址轉(zhuǎn)換所對應的一第一虛擬地址的一第一部份的位來將該第一虛擬物理地址轉(zhuǎn)換存儲于該多個轉(zhuǎn)換入口之中的一寫入轉(zhuǎn)換入口,以及將該第一虛擬地址與該寫入轉(zhuǎn)換入口所對應的一寫入轉(zhuǎn)換索引存儲于該特定緩沖入口。[0009]依據(jù)本發(fā)明的另一實施例,其另揭示一種虛擬物理地址轉(zhuǎn)換系統(tǒng)。該虛擬物理地址轉(zhuǎn)換系統(tǒng)包含一存儲空間以及一處理電路。該存儲空間包含多個轉(zhuǎn)換入口,其中該多個轉(zhuǎn)換入口是存儲至少一虛擬物理地址轉(zhuǎn)換,并分別對應于多個轉(zhuǎn)換索引。該處理電路是耦接于該存儲空間,其中當該系統(tǒng)接收一讀出指令以讀出一虛擬地址所對應的一物理地址時,該處理電路是依據(jù)該虛擬地址的一部份的位以從該存儲空間讀出該物理地址。[0010]本發(fā)明所提供的虛擬物理地址轉(zhuǎn)換系統(tǒng)及其管理方法可存儲大量的轉(zhuǎn)換數(shù)據(jù),并可將相關(guān)的虛擬物理地址轉(zhuǎn)換合并或存儲于相鄰的入口,因此,本發(fā)明所提供的虛擬物理地址轉(zhuǎn)換系統(tǒng)及其管理方法可提升系統(tǒng)效率而不會大幅增加電路面積,也不會降低處理速度。另外,本發(fā)明所提供的虛擬物理地址轉(zhuǎn)換系統(tǒng)及其管理方法可兼容于無互鎖管線階段的微處理器的指令?!靖綀D說明】[0011]圖1為本發(fā)明虛擬物理地址轉(zhuǎn)換系統(tǒng)的一實施例的示意圖。[0012]圖2為本發(fā)明虛擬物理地址轉(zhuǎn)換系統(tǒng)的另一實施例的示意圖。[0013]圖3為圖1所示的第一存儲空間與第二存儲空間的一實施范例的示意圖。[0014]圖4為在圖3所示的第一存儲空間與第二存儲空間進行虛擬物理地址轉(zhuǎn)換操作的一實施范例的示意圖。[0015]圖5為在圖3所示的第一存儲空間與第二存儲空間進行虛擬物理地址轉(zhuǎn)換操作的一實施范例的示意圖。[0016]圖6為在圖3所示的第一存儲空間與第二存儲空間進行虛擬物理地址轉(zhuǎn)換操作的一實施范例的示意圖。[0017]圖7為在圖3所示的第一存儲空間與第二存儲空間進行虛擬物理地址轉(zhuǎn)換操作的一實施范例的示意圖。[0018]圖8為在圖3所示的第一存儲空間與第二存儲空間進行虛擬物理地址轉(zhuǎn)換操作的一實施范例的示意圖。[0019]圖9為在圖3所示的第一存儲空間與第二存儲空間進行虛擬物理地址轉(zhuǎn)換操作的一實施范例的示意圖。[0020]圖10為本發(fā)明虛擬物理地址轉(zhuǎn)換系統(tǒng)的管理方法的一實施例的流程圖。[0021]圖11為在圖3所示的第一存儲空間與第二存儲空間進行虛擬物理地址轉(zhuǎn)換操作的一實施范例的示意圖。[0022]圖12為在圖3所示的第一存儲空間與第二存儲空間進行虛擬物理地址轉(zhuǎn)換操作的一實施范例的示意圖。[0023]圖13為在圖3所示的第一存儲空間與第二存儲空間進行虛擬物理地址轉(zhuǎn)換操作的一實施范例的示意圖。[0024]圖14為本發(fā)明虛擬物理地址轉(zhuǎn)換系統(tǒng)的管理方法的一實施例的流程圖。[0025]符號說明[0026]100、200虛擬物理地址轉(zhuǎn)換系統(tǒng)[0027]110、210、310第一存儲空間[0028]120,220,320第二存儲空間[0029]130、230處理電路[0030]224虛擬地址表[0031]226物理地址表[0032]234比較器[0033]236選擇器[0034]1000、1002、1004、1006、1007、1008、1010、1400、1402、1404、1406、1407、1408、1409、1410、1412、1414步驟[0035]C_ff寫入指令[0036]C_R讀出指令[0037]V2P、V2Px虛擬物理地址轉(zhuǎn)換[0038]B1、B2、B1、Bm緩沖入口[0039]Tl、T2、Tx、Tn轉(zhuǎn)換入口[0040]I1、12、Ιχ、In、idx(0)、idx(l)、idx(2)、idx(3)轉(zhuǎn)換索引[0041]I虛擬索引[0042]VA、VAxl?VAx8虛擬地址[0043]PA、PAxl?PAx8物理地址[0044]WUW2路[0045]v、vl、v2有效位字段[0046]idx轉(zhuǎn)換索引字段[0047]vaddr、vaddrl、vaddr2虛擬地址字段[0048]paddr、paddrl、paddr2物理地址字段[0049]pastartl、pastart2分頁起始字段[0050]mpl、mp2多頁字段[0051]num_e丟失個數(shù)字段[0052]ran_s搜索范圍字段[0053]IND(O),IND(I),IND(2),IND(3),IND(4),IND(5),IND(6),IND(7)緩沖索引【具體實施方式】[0054]為了提升系統(tǒng)效率而不會大幅增加電路面積,本發(fā)明將一虛擬地址的一部份的位作為一索引,以依據(jù)該索引來查閱該虛擬地址相對應的一物理地址,并通過容量較大的存儲器來提供較多的轉(zhuǎn)換后備緩沖器入口,進而大幅提升系統(tǒng)效率并可減少系統(tǒng)在進行查閱時所需的比較電路。[0055]請參閱圖1,其是為本發(fā)明虛擬物理地址轉(zhuǎn)換系統(tǒng)的一實施例的示意圖。由圖1可知,虛擬物理地址轉(zhuǎn)換系統(tǒng)100包含一第一存儲空間110、一第二存儲空間120以及一處理電路130,其中第一存儲空間110包含多個緩沖入口(bufferentry)Bl?Bm,以及第二存儲空間120包含多個轉(zhuǎn)換入口(translat1nentry)Tl?Τη。在此實施例中(但本發(fā)明并不局限于此),第一存儲空間110與第二存儲空間120均可采用靜態(tài)隨機存取存儲器(Staticrandomaccessmemory,SRAM)來實施以提供較多的緩沖入口個數(shù)以及轉(zhuǎn)換入口個數(shù)。另夕卜,多個轉(zhuǎn)換入PTl~Tn可分別對應于多個轉(zhuǎn)換索引(translat1nindex)Il?In。[0056]處理電路130是耦接于第一存儲空間110與第二存儲空間120。當虛擬物理地址轉(zhuǎn)換系統(tǒng)100接收到一寫入指令C_W(其指示將一虛擬物理地址轉(zhuǎn)換V2P寫入多個緩沖入口BI?Bm之中的一特定緩沖入口Bi)時,處理電路130可依據(jù)虛擬物理地址轉(zhuǎn)換V2P所對應的一虛擬地址VA的一部份的位來將虛擬物理地址轉(zhuǎn)換V2P(例如,虛擬地址VA及其相對應的一物理地址PA)寫入/存儲于多個轉(zhuǎn)換入口Tl?Tn之中的一寫入轉(zhuǎn)換入口Tx,并將虛擬地址VA與寫入轉(zhuǎn)換入口Tx所對應的一寫入轉(zhuǎn)換索引Ix寫入/存儲于特定緩沖入口Bi。舉例來說,處理電路130可將一虛擬地址VA的該部份的位作為一虛擬索引I,并依據(jù)虛擬索引I來索引至相對應的轉(zhuǎn)換索引(例如,寫入轉(zhuǎn)換索引Ιχ),進而將虛擬物理地址轉(zhuǎn)換V2P寫入/存儲至寫入轉(zhuǎn)換入口Tx(假設寫入轉(zhuǎn)換入口Tx可用(available))。第一存儲空間110則是通過將虛擬地址VA以及寫入轉(zhuǎn)換索引Ix寫入/存儲于特定緩沖入口Bi,以代表虛擬物理地址轉(zhuǎn)換V2P是存儲于第二存儲空間120的寫入轉(zhuǎn)換入口Tx。如此一來,當虛擬物理地址轉(zhuǎn)換系統(tǒng)100接收到一讀出指令C_R(其指示讀出/查閱虛擬地址VA所對應的物理地址PA)時,處理電路130便可依據(jù)虛擬地址VA的該部份的位(也即,虛擬索引I)以從第二存儲空間120讀出物理地址PA,而無需將虛擬地址VA與存儲于第一存儲空間110之中所有的虛擬地址進行映射。[0057]第一存儲空間110可視為一轉(zhuǎn)換后備緩沖器入口表(TLBentrytable),其可采用傳統(tǒng)的轉(zhuǎn)換后備緩沖器指令來控制,此外,第二存儲空間120可視為一虛擬物理地址轉(zhuǎn)換表(virtual-to-physicaladdresstranslat1ntable),其中多個轉(zhuǎn)換入口Tl?Tn的至少其一可包含多個存儲槽(slot),以及該多個存儲槽可分別用以存儲多個虛擬物理地址轉(zhuǎn)換以增加提升系統(tǒng)的轉(zhuǎn)換效率。請參閱圖2,其是為本發(fā)明虛擬物理地址轉(zhuǎn)換系統(tǒng)的另一實施例的示意圖。虛擬物理地址轉(zhuǎn)換系統(tǒng)200的結(jié)構(gòu)是基于圖1所示的虛擬物理地址轉(zhuǎn)換系統(tǒng)100的結(jié)構(gòu),因此,虛擬物理地址轉(zhuǎn)換系統(tǒng)200可包含一第一存儲空間210、一第二存儲空間220以及一處理電路230,其中第一存儲空間210、第二存儲空間220以及處理電路230可分別用來實施為圖1所示的第一存儲空間110、第二存儲空間120以及處理電路130。在此實施例中(但本發(fā)明并不限于此),第一存儲空間210可包含1024個緩沖入口,以及第二存儲空間220可包含128個轉(zhuǎn)換入口。第二存儲空間220可包含一虛擬地址表224以及一物理地址當前第1頁1 2 3 4 5