虛擬物理地址轉(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)換后備緩沖器可具有多個(gè)(例如,64)入口(entry)以進(jìn)行高速查閱,其中每一入口均可存儲(chǔ)一虛擬地址(virtualaddress)與一物理地址(physicaladdress)的一虛擬物理地址轉(zhuǎn)換(virtual-to-physicaladdresstranslat1n)。[0003]然而,在上述轉(zhuǎn)換后備緩沖器之中進(jìn)行查閱時(shí),需要將欲查閱的一虛擬地址與每一入口所存儲(chǔ)的虛擬地址進(jìn)行映射(也即,全關(guān)系型映射(;1;\1117-3880(^31:;^6mapping)),也就是說,需要有多個(gè)(例如,64)比較電路,因此,若增加轉(zhuǎn)換后備緩沖器的入口個(gè)數(shù)以提升系統(tǒng)效率,轉(zhuǎn)換后備緩沖器的電路面積也會(huì)隨之增加,處理速度也會(huì)下降,然而,若將轉(zhuǎn)換后備緩沖器的入口個(gè)數(shù)降低,則會(huì)降低系統(tǒng)效率(例如,轉(zhuǎn)換后備緩沖器丟失(TLBmiss)的機(jī)率增加)。[0004]因此,需要一種可提升系統(tǒng)效率而不會(huì)犧牲電路面積與處理速度的虛擬物理地址轉(zhuǎn)換系統(tǒng)?!?br/>發(fā)明內(nèi)容】[0005]有鑒于此,本發(fā)明的目的之一在于提供一種以一虛擬地址的一部分的位來作為索引的虛擬物理地址轉(zhuǎn)換系統(tǒng)管理方法及其相關(guān)的虛擬物理地址轉(zhuǎn)換系統(tǒng),來解決上述問題。[0006]依據(jù)本發(fā)明的一實(shí)施例,其揭示一種虛擬物理地址轉(zhuǎn)換系統(tǒng)的管理方法。該管理方法包含下列步驟:提供一第一存儲(chǔ)空間,其中該第一存儲(chǔ)空間包含多個(gè)緩沖入口;提供一第二存儲(chǔ)空間,其中該第二存儲(chǔ)空間包含多個(gè)轉(zhuǎn)換入口,以及該多個(gè)轉(zhuǎn)換入口是對(duì)應(yīng)于多個(gè)轉(zhuǎn)換索引;以及當(dāng)接收一寫入指令以將一第一虛擬物理地址轉(zhuǎn)換寫入該多個(gè)緩沖入口的一特定緩沖入口時(shí),依據(jù)該第一虛擬物理地址轉(zhuǎn)換所對(duì)應(yīng)的一第一虛擬地址的一第一部份的位來將該第一虛擬物理地址轉(zhuǎn)換存儲(chǔ)于該多個(gè)轉(zhuǎn)換入口之中的一寫入轉(zhuǎn)換入口,以及將該第一虛擬地址與該寫入轉(zhuǎn)換入口所對(duì)應(yīng)的一寫入轉(zhuǎn)換索引存儲(chǔ)于該特定緩沖入口。[0007]依據(jù)本發(fā)明的另一實(shí)施例,其另揭示一種虛擬物理地址轉(zhuǎn)換系統(tǒng)的管理方法。該管理方法包含下列步驟:提供一存儲(chǔ)空間,其中該存儲(chǔ)空間包含多個(gè)轉(zhuǎn)換入口,該多個(gè)轉(zhuǎn)換入口是存儲(chǔ)至少一虛擬物理地址轉(zhuǎn)換,并分別對(duì)應(yīng)于多個(gè)轉(zhuǎn)換索引;以及當(dāng)接收一讀出指令以讀出一虛擬地址所對(duì)應(yīng)的一物理地址時(shí),依據(jù)該虛擬地址的一部份的位以從該存儲(chǔ)空間讀出該物理地址。[0008]依據(jù)本發(fā)明的一實(shí)施例,其揭示一種虛擬物理地址轉(zhuǎn)換系統(tǒng)。該虛擬物理地址轉(zhuǎn)換系統(tǒng)包含一第一存儲(chǔ)空間、一第二存儲(chǔ)空間以及一處理電路。該第一存儲(chǔ)空間包含多個(gè)緩沖入口。該第二存儲(chǔ)空間包含多個(gè)轉(zhuǎn)換入口,其中該多個(gè)轉(zhuǎn)換入口是分別對(duì)應(yīng)于多個(gè)轉(zhuǎn)換索引。該處理電路是耦接于該第一存儲(chǔ)空間以及該第二存儲(chǔ)空間。當(dāng)該系統(tǒng)接收一寫入指令以將一第一虛擬物理地址轉(zhuǎn)換寫入該多個(gè)緩沖入口之中的一特定緩沖入口時(shí),該處理電路是依據(jù)該第一虛擬物理地址轉(zhuǎn)換所對(duì)應(yīng)的一第一虛擬地址的一第一部份的位來將該第一虛擬物理地址轉(zhuǎn)換存儲(chǔ)于該多個(gè)轉(zhuǎn)換入口之中的一寫入轉(zhuǎn)換入口,以及將該第一虛擬地址與該寫入轉(zhuǎn)換入口所對(duì)應(yīng)的一寫入轉(zhuǎn)換索引存儲(chǔ)于該特定緩沖入口。[0009]依據(jù)本發(fā)明的另一實(shí)施例,其另揭示一種虛擬物理地址轉(zhuǎn)換系統(tǒng)。該虛擬物理地址轉(zhuǎn)換系統(tǒng)包含一存儲(chǔ)空間以及一處理電路。該存儲(chǔ)空間包含多個(gè)轉(zhuǎn)換入口,其中該多個(gè)轉(zhuǎn)換入口是存儲(chǔ)至少一虛擬物理地址轉(zhuǎn)換,并分別對(duì)應(yīng)于多個(gè)轉(zhuǎn)換索引。該處理電路是耦接于該存儲(chǔ)空間,其中當(dāng)該系統(tǒng)接收一讀出指令以讀出一虛擬地址所對(duì)應(yīng)的一物理地址時(shí),該處理電路是依據(jù)該虛擬地址的一部份的位以從該存儲(chǔ)空間讀出該物理地址。[0010]本發(fā)明所提供的虛擬物理地址轉(zhuǎn)換系統(tǒng)及其管理方法可存儲(chǔ)大量的轉(zhuǎn)換數(shù)據(jù),并可將相關(guān)的虛擬物理地址轉(zhuǎn)換合并或存儲(chǔ)于相鄰的入口,因此,本發(fā)明所提供的虛擬物理地址轉(zhuǎn)換系統(tǒng)及其管理方法可提升系統(tǒng)效率而不會(huì)大幅增加電路面積,也不會(huì)降低處理速度。另外,本發(fā)明所提供的虛擬物理地址轉(zhuǎn)換系統(tǒng)及其管理方法可兼容于無互鎖管線階段的微處理器的指令?!靖綀D說明】[0011]圖1為本發(fā)明虛擬物理地址轉(zhuǎn)換系統(tǒng)的一實(shí)施例的示意圖。[0012]圖2為本發(fā)明虛擬物理地址轉(zhuǎn)換系統(tǒng)的另一實(shí)施例的示意圖。[0013]圖3為圖1所示的第一存儲(chǔ)空間與第二存儲(chǔ)空間的一實(shí)施范例的示意圖。[0014]圖4為在圖3所示的第一存儲(chǔ)空間與第二存儲(chǔ)空間進(jìn)行虛擬物理地址轉(zhuǎn)換操作的一實(shí)施范例的示意圖。[0015]圖5為在圖3所示的第一存儲(chǔ)空間與第二存儲(chǔ)空間進(jìn)行虛擬物理地址轉(zhuǎn)換操作的一實(shí)施范例的示意圖。[0016]圖6為在圖3所示的第一存儲(chǔ)空間與第二存儲(chǔ)空間進(jìn)行虛擬物理地址轉(zhuǎn)換操作的一實(shí)施范例的示意圖。[0017]圖7為在圖3所示的第一存儲(chǔ)空間與第二存儲(chǔ)空間進(jìn)行虛擬物理地址轉(zhuǎn)換操作的一實(shí)施范例的示意圖。[0018]圖8為在圖3所示的第一存儲(chǔ)空間與第二存儲(chǔ)空間進(jìn)行虛擬物理地址轉(zhuǎn)換操作的一實(shí)施范例的示意圖。[0019]圖9為在圖3所示的第一存儲(chǔ)空間與第二存儲(chǔ)空間進(jìn)行虛擬物理地址轉(zhuǎn)換操作的一實(shí)施范例的示意圖。[0020]圖10為本發(fā)明虛擬物理地址轉(zhuǎn)換系統(tǒng)的管理方法的一實(shí)施例的流程圖。[0021]圖11為在圖3所示的第一存儲(chǔ)空間與第二存儲(chǔ)空間進(jìn)行虛擬物理地址轉(zhuǎn)換操作的一實(shí)施范例的示意圖。[0022]圖12為在圖3所示的第一存儲(chǔ)空間與第二存儲(chǔ)空間進(jìn)行虛擬物理地址轉(zhuǎn)換操作的一實(shí)施范例的示意圖。[0023]圖13為在圖3所示的第一存儲(chǔ)空間與第二存儲(chǔ)空間進(jìn)行虛擬物理地址轉(zhuǎn)換操作的一實(shí)施范例的示意圖。[0024]圖14為本發(fā)明虛擬物理地址轉(zhuǎn)換系統(tǒng)的管理方法的一實(shí)施例的流程圖。[0025]符號(hào)說明[0026]100、200虛擬物理地址轉(zhuǎn)換系統(tǒng)[0027]110、210、310第一存儲(chǔ)空間[0028]120,220,320第二存儲(chǔ)空間[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丟失個(gè)數(shù)字段[0052]ran_s搜索范圍字段[0053]IND(O),IND(I),IND(2),IND(3),IND(4),IND(5),IND(6),IND(7)緩沖索引【具體實(shí)施方式】[0054]為了提升系統(tǒng)效率而不會(huì)大幅增加電路面積,本發(fā)明將一虛擬地址的一部份的位作為一索引,以依據(jù)該索引來查閱該虛擬地址相對(duì)應(yīng)的一物理地址,并通過容量較大的存儲(chǔ)器來提供較多的轉(zhuǎn)換后備緩沖器入口,進(jìn)而大幅提升系統(tǒng)效率并可減少系統(tǒng)在進(jìn)行查閱時(shí)所需的比較電路。[0055]請(qǐng)參閱圖1,其是為本發(fā)明虛擬物理地址轉(zhuǎn)換系統(tǒng)的一實(shí)施例的示意圖。由圖1可知,虛擬物理地址轉(zhuǎn)換系統(tǒng)100包含一第一存儲(chǔ)空間110、一第二存儲(chǔ)空間120以及一處理電路130,其中第一存儲(chǔ)空間110包含多個(gè)緩沖入口(bufferentry)Bl?Bm,以及第二存儲(chǔ)空間120包含多個(gè)轉(zhuǎn)換入口(translat1nentry)Tl?Τη。在此實(shí)施例中(但本發(fā)明并不局限于此),第一存儲(chǔ)空間110與第二存儲(chǔ)空間120均可采用靜態(tài)隨機(jī)存取存儲(chǔ)器(Staticrandomaccessmemory,SRAM)來實(shí)施以提供較多的緩沖入口個(gè)數(shù)以及轉(zhuǎn)換入口個(gè)數(shù)。另夕卜,多個(gè)轉(zhuǎn)換入PTl~Tn可分別對(duì)應(yīng)于多個(gè)轉(zhuǎn)換索引(translat1nindex)Il?In。[0056]處理電路130是耦接于第一存儲(chǔ)空間110與第二存儲(chǔ)空間120。當(dāng)虛擬物理地址轉(zhuǎn)換系統(tǒng)100接收到一寫入指令C_W(其指示將一虛擬物理地址轉(zhuǎn)換V2P寫入多個(gè)緩沖入口BI?Bm之中的一特定緩沖入口Bi)時(shí),處理電路130可依據(jù)虛擬物理地址轉(zhuǎn)換V2P所對(duì)應(yīng)的一虛擬地址VA的一部份的位來將虛擬物理地址轉(zhuǎn)換V2P(例如,虛擬地址VA及其相對(duì)應(yīng)的一物理地址PA)寫入/存儲(chǔ)于多個(gè)轉(zhuǎn)換入口Tl?Tn之中的一寫入轉(zhuǎn)換入口Tx,并將虛擬地址VA與寫入轉(zhuǎn)換入口Tx所對(duì)應(yīng)的一寫入轉(zhuǎn)換索引Ix寫入/存儲(chǔ)于特定緩沖入口Bi。舉例來說,處理電路130可將一虛擬地址VA的該部份的位作為一虛擬索引I,并依據(jù)虛擬索引I來索引至相對(duì)應(yīng)的轉(zhuǎn)換索引(例如,寫入轉(zhuǎn)換索引Ιχ),進(jìn)而將虛擬物理地址轉(zhuǎn)換V2P寫入/存儲(chǔ)至寫入轉(zhuǎn)換入口Tx(假設(shè)寫入轉(zhuǎn)換入口Tx可用(available))。第一存儲(chǔ)空間110則是通過將虛擬地址VA以及寫入轉(zhuǎn)換索引Ix寫入/存儲(chǔ)于特定緩沖入口Bi,以代表虛擬物理地址轉(zhuǎn)換V2P是存儲(chǔ)于第二存儲(chǔ)空間120的寫入轉(zhuǎn)換入口Tx。如此一來,當(dāng)虛擬物理地址轉(zhuǎn)換系統(tǒng)100接收到一讀出指令C_R(其指示讀出/查閱虛擬地址VA所對(duì)應(yīng)的物理地址PA)時(shí),處理電路130便可依據(jù)虛擬地址VA的該部份的位(也即,虛擬索引I)以從第二存儲(chǔ)空間120讀出物理地址PA,而無需將虛擬地址VA與存儲(chǔ)于第一存儲(chǔ)空間110之中所有的虛擬地址進(jìn)行映射。[0057]第一存儲(chǔ)空間110可視為一轉(zhuǎn)換后備緩沖器入口表(TLBentrytable),其可采用傳統(tǒng)的轉(zhuǎn)換后備緩沖器指令來控制,此外,第二存儲(chǔ)空間120可視為一虛擬物理地址轉(zhuǎn)換表(virtual-to-physicaladdresstranslat1ntable),其中多個(gè)轉(zhuǎn)換入口Tl?Tn的至少其一可包含多個(gè)存儲(chǔ)槽(slot),以及該多個(gè)存儲(chǔ)槽可分別用以存儲(chǔ)多個(gè)虛擬物理地址轉(zhuǎn)換以增加提升系統(tǒng)的轉(zhuǎn)換效率。請(qǐng)參閱圖2,其是為本發(fā)明虛擬物理地址轉(zhuǎn)換系統(tǒng)的另一實(shí)施例的示意圖。虛擬物理地址轉(zhuǎn)換系統(tǒng)200的結(jié)構(gòu)是基于圖1所示的虛擬物理地址轉(zhuǎn)換系統(tǒng)100的結(jié)構(gòu),因此,虛擬物理地址轉(zhuǎn)換系統(tǒng)200可包含一第一存儲(chǔ)空間210、一第二存儲(chǔ)空間220以及一處理電路230,其中第一存儲(chǔ)空間210、第二存儲(chǔ)空間220以及處理電路230可分別用來實(shí)施為圖1所示的第一存儲(chǔ)空間110、第二存儲(chǔ)空間120以及處理電路130。在此實(shí)施例中(但本發(fā)明并不限于此),第一存儲(chǔ)空間210可包含1024個(gè)緩沖入口,以及第二存儲(chǔ)空間220可包含128個(gè)轉(zhuǎn)換入口。第二存儲(chǔ)空間220可包含一虛擬地址表224以及一物理地址當(dāng)前第1頁1 2 3 4 5