亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

同時(shí)支持軟件回填與硬件回填的內(nèi)存管理模塊的制作方法

文檔序號(hào):6370846閱讀:305來(lái)源:國(guó)知局
專(zhuān)利名稱(chēng):同時(shí)支持軟件回填與硬件回填的內(nèi)存管理模塊的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及一種微處理器體系結(jié)構(gòu)設(shè)計(jì),尤其涉及內(nèi)存管理模塊。
背景技術(shù)
隨著信息技術(shù)的發(fā)展,計(jì)算機(jī)系統(tǒng)已經(jīng)遍布于現(xiàn)實(shí)中的各個(gè)領(lǐng)域。為了支持多進(jìn)程操作以及使每個(gè)進(jìn)程保持地址空間的獨(dú)立性,虛擬地址被引入到了計(jì)算機(jī)系統(tǒng),每個(gè)進(jìn)程都有自己的虛擬地址空間,各個(gè)進(jìn)程的虛擬地址空間互相獨(dú)立,虛擬地址空間的大小可以遠(yuǎn)超過(guò)物理內(nèi)存的大小。虛擬地址與物理地址的映射是通過(guò)內(nèi)存管理模塊(MMU)完成的。虛擬地址與物理地址之間的映射是以頁(yè)面為單位完成的,這也就意味著MMU只需 將虛擬地址的高位轉(zhuǎn)換為對(duì)應(yīng)的物理地址高位(即將虛擬地址的頁(yè)面號(hào)轉(zhuǎn)換為對(duì)應(yīng)的物理地址的頁(yè)面號(hào)),而虛擬地址的低位在MMU轉(zhuǎn)換過(guò)程中是保持不變的,因?yàn)樗怯糜谥甘镜刂吩陧?yè)面內(nèi)的偏移,物理地址頁(yè)面號(hào)和虛擬地址的低位就組成了轉(zhuǎn)換后的物理地址。一個(gè)虛擬頁(yè)面號(hào)和一個(gè)物理頁(yè)面號(hào)就組成了轉(zhuǎn)換旁路緩沖器TLB的一個(gè)表項(xiàng),而轉(zhuǎn)換旁路緩沖器TLB的大小是有限制的,這也就意味著并不是所有的虛擬地址都能在TLB表中找到對(duì)應(yīng)的轉(zhuǎn)換表項(xiàng),此時(shí)就發(fā)生了 TLB失配;相對(duì)的,如果某個(gè)虛擬地址能在TLB表中找到對(duì)應(yīng)的轉(zhuǎn)換表項(xiàng),那么表示發(fā)生了 TLB命中。TLB失配時(shí)如何將表項(xiàng)回填到TLB中是MMU設(shè)計(jì)時(shí)必須認(rèn)真考慮的問(wèn)題。一些內(nèi)存管理模塊選擇了軟件回填的方式,通過(guò)控制寄存器組的配合,軟件可以方便地回填TLB表項(xiàng),它移植方便、操作靈活,不過(guò)由于需要TLB失配異常的參與,回填時(shí)間較長(zhǎng)。還有一些內(nèi)存管理模塊選擇了硬件回填的方式,它在回填TLB表項(xiàng)的過(guò)程中不需要TLB失配異常的參與,回填時(shí)間較短,但對(duì)操作系統(tǒng)的要求較高,移植不方便。

發(fā)明內(nèi)容
為了克服現(xiàn)有的內(nèi)存管理模塊的回填方式不能兼顧回填快速性和移植方便性的不足,本發(fā)明提供了一種同時(shí)支持軟件回填與硬件回填的內(nèi)存管理模塊,它在增加少量硬件開(kāi)銷(xiāo)的基礎(chǔ)上,可方便的選擇軟件回填模式或者硬件回填模式完成TLB回填的工作,兼有回填快速性和移植方便性。為了克服上述技術(shù)問(wèn)題提供的技術(shù)方案為一種同時(shí)支持軟件回填與硬件回填的內(nèi)存管理模塊,包括轉(zhuǎn)換旁路緩沖器TLB,用于存儲(chǔ)虛擬頁(yè)面到物理頁(yè)面的映射表項(xiàng);地址轉(zhuǎn)換單元,用于根據(jù)輸入到內(nèi)存管理模塊的虛擬地址,查詢(xún)TLB中的表項(xiàng),輸出物理地址或者TLB失配信息;所述內(nèi)存管理模塊還包括控制寄存器組,包含回填模式控制寄存器、TLB操作指令寄存器、TLB表項(xiàng)寄存器和TLB失配寄存器;硬件回填單元,用于訪問(wèn)外圍內(nèi)存,根據(jù)TLB失配信息將外圍內(nèi)存中存儲(chǔ)的映射表項(xiàng)讀入并寫(xiě)到TLB中;控制單元,用于根據(jù)TLB操作指令寄存器里的信息對(duì)TLB作讀和寫(xiě)操作;根據(jù)回填模式控制寄存器里的信息控制TLB失配時(shí)的回填方式,其中,在軟件回填模式下,將虛擬頁(yè)面號(hào)寫(xiě)入到TLB失配寄存器,接著發(fā)起一個(gè)TLB失配異常,然后通過(guò)異常服務(wù)程序響應(yīng)這個(gè)異常,完成TLB表項(xiàng)的回填工作;在硬件回填模式下,將TLB失配的虛擬頁(yè)面信息發(fā)送給硬件回填單元,同時(shí)向所述硬件回填單元發(fā)起硬件回填請(qǐng)求。進(jìn)一步,所述回填模式控制寄存器中,當(dāng)回填模式位無(wú)效,控制單元在發(fā)生TLB失配時(shí)會(huì)選擇軟件回填模式;當(dāng)回填模式位有效,控制單元在發(fā)生TLB失配時(shí)會(huì)選擇硬件回填模式。再進(jìn)一步,在虛擬地址被發(fā)送到內(nèi)存管理模塊后,地址轉(zhuǎn)換單元查詢(xún)TLB里的表項(xiàng),將表項(xiàng)里的虛擬頁(yè)面號(hào)與輸入到內(nèi)存管理模塊的虛擬地址的高位相比較,如果存在匹配的表項(xiàng),那么表明TLB命中,此時(shí)將此表項(xiàng)里的物理頁(yè)面號(hào)與虛擬地址的低位組成物理地址并輸出,成功完成虛擬地址到物理地址的轉(zhuǎn)換。
更進(jìn)一步,如果沒(méi)有匹配的表項(xiàng),那么表明TLB失配,地址轉(zhuǎn)換單元會(huì)將TLB失配信息傳輸給控制單元。所述TLB操作指令寄存器包含TLB讀位和TLB寫(xiě)位,分別用于指示讀TLB表項(xiàng)和寫(xiě)TLB表項(xiàng)。TLB表項(xiàng)寄存器用于存放一個(gè)TLB表項(xiàng),每個(gè)TLB表項(xiàng)都包含一個(gè)虛擬頁(yè)面號(hào)和一個(gè)物理頁(yè)面號(hào)。TLB失配寄存器用于存放TLB失配時(shí)的虛擬頁(yè)面號(hào)。本發(fā)明的技術(shù)效果為同時(shí)支持軟件回填與硬件回填的內(nèi)存管理模塊,它在增加少量硬件開(kāi)銷(xiāo)的基礎(chǔ)上,可方便的選擇軟件回填模式或者硬件回填模式完成TLB回填的工作,兼有回填快速性和移植方便性。


圖I為一種同時(shí)支持軟件和硬件回填的內(nèi)存管理模塊的整體結(jié)構(gòu)圖。圖2為內(nèi)存管理模塊的控制寄存器組結(jié)構(gòu)。圖3為頁(yè)面號(hào)和頁(yè)內(nèi)偏移在虛擬地址和物理地址內(nèi)的關(guān)系。圖4為轉(zhuǎn)換旁路緩沖器TLB的一種典型結(jié)構(gòu)。圖5為從虛擬地址被發(fā)送給內(nèi)存管理模塊到輸出物理地址或者發(fā)起回填請(qǐng)求的整個(gè)流程。圖6為T(mén)LB失配異常的響應(yīng)過(guò)程。圖7為硬件回填單元通過(guò)一級(jí)索引得到TLB表項(xiàng)的過(guò)程。圖8為硬件回填單元通過(guò)兩級(jí)索引得到TLB表項(xiàng)的過(guò)程。
具體實(shí)施例方式下面結(jié)合附圖對(duì)本發(fā)明作進(jìn)一步描述。參照?qǐng)DI 圖8,—種同時(shí)支持軟件和硬件回填的內(nèi)存管理模塊,它負(fù)責(zé)將微處理CN 102929796 A書(shū)明說(shuō)3/5頁(yè)器內(nèi)部的虛擬地址轉(zhuǎn)換成物理地址。所述內(nèi)存管理模塊包括轉(zhuǎn)換旁路緩沖器TLB、地址轉(zhuǎn)換單元、控制寄存器組、控制單元和硬件回填單元五個(gè)部分。
控制寄存器組,包含回填模式控制寄存器、TLB操作指令寄存器、TLB表項(xiàng)寄存器和TLB失配寄存器等,它的結(jié)構(gòu)如圖2所不。
回填模式控制寄存器里的回填模式位被用于控制TLB失配時(shí)的回填方式。通過(guò)設(shè)置回填模式位無(wú)效,使控制單元在發(fā)生TLB失配時(shí)選擇軟件回填模式;通過(guò)設(shè)置回填模式位有效,使控制單元在發(fā)生TLB失配時(shí)選擇硬件回填模式。
TLB操作指令寄存器是軟件對(duì)內(nèi)存管理單元進(jìn)行設(shè)置與狀態(tài)查詢(xún)的編程接口,在軟件輔助的TLB回填機(jī)制下,軟件通過(guò)該接口實(shí)現(xiàn)TLB內(nèi)容的回填。此寄存器里包含了 TLB 讀位和TLB寫(xiě)位,分別用于指示讀TLB表項(xiàng)和寫(xiě)TLB表項(xiàng)。在其他實(shí)施例中,TLB操作指令寄存器還可以包含TLB查找位、TLB使無(wú)效位等,分別用于查找TLB表項(xiàng)和使TLB表項(xiàng)無(wú)效。
TLB表項(xiàng)寄存器用于存放一個(gè)TLB表項(xiàng),每個(gè)TLB表項(xiàng)都包含一個(gè)虛擬頁(yè)面號(hào)和一個(gè)物理頁(yè)面號(hào),在其他實(shí)施例中,TLB表項(xiàng)還可以包括指示頁(yè)面是否可以被緩存的位、指示與頁(yè)面關(guān)聯(lián)的進(jìn)程標(biāo)志號(hào)的位、指示頁(yè)面讀寫(xiě)權(quán)限的位等。
TLB失配寄存器用于存放TLB失配時(shí)的虛擬頁(yè)面號(hào)。
在介紹虛擬地址與物理地址的轉(zhuǎn)換之前,有必要介紹一下頁(yè)面。虛擬地址與物理地址之間 的映射是以頁(yè)面為單位完成的,這也就意味著MMU只需將虛擬地址的高位轉(zhuǎn)換為對(duì)應(yīng)的物理地址高位(即將虛擬地址的頁(yè)面號(hào)轉(zhuǎn)換為對(duì)應(yīng)的物理地址的頁(yè)面號(hào)),而虛擬地址的低位在MMU轉(zhuǎn)換過(guò)程中是保持不變的,因?yàn)樗怯糜谥甘镜刂吩陧?yè)面內(nèi)的偏移,物理地址頁(yè)面號(hào)和虛擬地址的低位就組成了轉(zhuǎn)換后的物理地址。對(duì)于某一個(gè)進(jìn)程,虛擬頁(yè)面的大小應(yīng)該與物理頁(yè)面的大小保持一致,例如但不限于4KB、16KB、64KB等;對(duì)于不同的進(jìn)程之間,頁(yè)面大小可以保持一致,也可以不一致,不同的實(shí)施例有不同的選擇。
頁(yè)面號(hào)和頁(yè)內(nèi)偏移在虛擬地址和物理地址內(nèi)的關(guān)系如圖3所示。地址的高位組成了頁(yè)面號(hào),地址的低位組成了頁(yè)內(nèi)偏移。以32位地址為例,對(duì)于4KB的頁(yè)面,頁(yè)面號(hào)由 [31:12]位組成,頁(yè)內(nèi)偏移由[11:0]位組成;對(duì)于16KB的頁(yè)面,頁(yè)面號(hào)由[31:14]位組成,頁(yè)內(nèi)偏移由[13:0]位組成;對(duì)于64KB的頁(yè)面,頁(yè)面號(hào)由[31:16]位組成,頁(yè)內(nèi)偏移由 [15:0]位組成。
轉(zhuǎn)換旁路緩沖器TLB,它存儲(chǔ)了虛擬頁(yè)面到物理頁(yè)面的映射表項(xiàng)。圖4是本實(shí)施例中轉(zhuǎn)換旁路緩沖器TLB的結(jié)構(gòu),它包含了 128個(gè)TLB表項(xiàng),每個(gè)TLB表項(xiàng)都包含有效位、虛擬頁(yè)面號(hào)和物理頁(yè)面號(hào),如前所述,在其他實(shí)施例中,TLB表項(xiàng)還可以包括指示頁(yè)面是否可以被緩存的位、指示與頁(yè)面關(guān)聯(lián)的進(jìn)程標(biāo)志號(hào)的位、指示頁(yè)面讀寫(xiě)權(quán)限的位等。
在本實(shí)施例中,TLB表項(xiàng)是以直接相聯(lián)的方式組織的。也就是說(shuō)每個(gè)表項(xiàng)在TLB表中只可能有唯一確定的一個(gè)位置,這個(gè)位置是由虛擬頁(yè)面號(hào)的高位確定的。在本實(shí)施例中, TLB表共有128個(gè)表項(xiàng),那么每個(gè)表項(xiàng)的位置由虛擬頁(yè)面號(hào)的高7位所確定。對(duì)于32位的地址,虛擬地址的[31:25]位就確定了表項(xiàng)在TLB表中的位置。在其他實(shí)施例中,TLB表項(xiàng)還可能以全相聯(lián)、組相聯(lián)等方式組織;而組相聯(lián)又分為二路組相聯(lián)、三路組相聯(lián)等。
在虛擬地址被發(fā)送到內(nèi)存管理模塊后,地址轉(zhuǎn)換單元根據(jù)虛擬地址的[31:25]位在TLB表中找到對(duì)應(yīng)的表項(xiàng),如果此表項(xiàng)有效,那么將表項(xiàng)里的虛擬頁(yè)面號(hào)與輸入到內(nèi)存5管理模塊的虛擬地址的高位相比較,如果它們相等,那么表示TLB命中,此時(shí)將此表項(xiàng)里的物理頁(yè)面號(hào)與虛擬地址的低位組成物理地址并輸出,成功完成虛擬地址到物理地址的轉(zhuǎn)換。
如果根據(jù)虛擬地址的[31:25]位在TLB里找到的表項(xiàng)無(wú)效,或者表項(xiàng)里的虛擬頁(yè)面號(hào)與輸入到內(nèi)存管理模塊的虛擬地址的高位比較不相等,那么表明TLB失配,地址轉(zhuǎn)換單元會(huì)將TLB失配信息傳輸給控制單元。
通過(guò)設(shè)置回填模式控制寄存器里的回填模式位無(wú)效,控制單元在發(fā)生TLB失配時(shí)會(huì)選擇軟件回填模式;通過(guò)設(shè)置回填模式控制寄存器里的回填模式位有效,控制單元在發(fā)生TLB失配時(shí)會(huì)選擇硬件回填模式。
從虛擬地址被發(fā)送給內(nèi)存管理模塊到輸出物理地址或者發(fā)起回填請(qǐng)求的整個(gè)流程如圖5所不。
在軟件回填模式下,控制單元將虛擬頁(yè)面號(hào)寫(xiě)入到TLB失配寄存器,接著發(fā)起一個(gè)TLB失配異常,然后由軟件通過(guò)異常服務(wù)程序響應(yīng)這個(gè)異常,完成TLB表項(xiàng)的回填工作。
與本發(fā)明配合的軟件在響應(yīng)TLB失配異常時(shí)的工作方式是軟件讀取TLB失配寄存器里的虛擬頁(yè)面號(hào),然后從外圍內(nèi)存讀取此虛擬頁(yè)面號(hào)所在的TLB映射表項(xiàng),并將其寫(xiě)入到TLB表項(xiàng)寄存器中,在軟件設(shè)置了 TLB操作指令寄存器中的TLB寫(xiě)位后,控制單元將 TLB表項(xiàng)寄存器里的TLB映射表項(xiàng)寫(xiě)入到TLB中,此時(shí)TLB失配異常就響應(yīng)完成了。整個(gè) TLB失配異常的響應(yīng)過(guò)程如圖6所示。
如前所述,本實(shí)施例中TLB表項(xiàng)是以直接相聯(lián)的方式組織的,因而每個(gè)要寫(xiě)入TLB 表的表項(xiàng)只可能被寫(xiě)入到唯一的位置,這個(gè)位置由虛擬頁(yè)面的高位所確定,在本實(shí)施例中, 是虛擬地址的[31:25]位。
在軟件響應(yīng)了 TLB失配異常后,虛擬地址會(huì)再次被發(fā)送到內(nèi)存管理模塊,地址轉(zhuǎn)換單元會(huì)再次查詢(xún)TLB里的表項(xiàng),將表項(xiàng)里的虛擬頁(yè)面號(hào)與輸入到內(nèi)存管理模塊的虛擬地址的高位相比較,此時(shí)必定會(huì)存在一個(gè)表項(xiàng)的虛擬頁(yè)面號(hào)與虛擬地址的高位相等,那么表示TLB命中了,此時(shí)將此表項(xiàng)里的物理頁(yè)面號(hào)與虛擬地址的低位組成物理地址并輸出。
上述軟件回填TLB表項(xiàng)的方法只是眾多TLB回填方法中的一種,因此本發(fā)明所述內(nèi)存管理模塊并不限定與此軟件回填方法配合才能工作,本領(lǐng)域的技術(shù)人員可在本發(fā)明所述內(nèi)存管理模塊的基礎(chǔ)上完成其他軟件回填TLB表項(xiàng)的方法。
在硬件回填模式下,控制單元將TLB失配的虛擬頁(yè)面信息發(fā)送給硬件回填單元, 同時(shí)發(fā)起硬件回填請(qǐng)求,硬件回填單元根據(jù)TLB失配信息從外圍內(nèi)存讀取TLB映射表項(xiàng)并將其寫(xiě)入到TLB中。
硬件回填單元要完成TLB表項(xiàng)的回填工作還需要頁(yè)表入口寄存器(Page Table Entry, PTE)的配合,這個(gè)寄存器存放了內(nèi)存中的一個(gè)地址,從這個(gè)地址開(kāi)始的一段內(nèi)存空間存放了所有的TLB表項(xiàng)。
硬件回填單元的一種典型實(shí)現(xiàn)在回填TLB表項(xiàng)時(shí)只需要訪問(wèn)一次內(nèi)存,在這種實(shí)現(xiàn)下,所有的TLB表項(xiàng)根據(jù)虛擬頁(yè)面號(hào)的大小順序存放在頁(yè)表入口寄存器所指地址開(kāi)始的內(nèi)存空間中。如圖7所示,當(dāng)TLB失配發(fā)生時(shí),硬件回填單元根據(jù)頁(yè)表入口寄存器和失配的虛擬頁(yè)面號(hào)從內(nèi)存讀取對(duì)應(yīng)的TLB表項(xiàng),然后將其寫(xiě)入轉(zhuǎn)換旁路緩沖器TLB,再將此TLB表項(xiàng)中的物理頁(yè)面號(hào)和虛擬地址的低位組成物理地址經(jīng)由地址轉(zhuǎn)換單元輸送出去。
上述硬件回填單元的設(shè)計(jì)只是眾多硬件回填裝置中的一種,因此本發(fā)明所述內(nèi)存管理模塊并不限定與此硬件回填單元配合才能工作,本領(lǐng)域的技術(shù)人員可在本發(fā)明所述內(nèi)存管理模塊的基礎(chǔ)上完成其他硬件回填單元的設(shè)計(jì),比如在內(nèi)存中查找失配虛擬頁(yè)號(hào)所在的TLB表項(xiàng)不是由一次內(nèi)存訪問(wèn)完成,而是分成兩次,這就需要將虛擬頁(yè)面號(hào)分成兩部分, 然后根據(jù)頁(yè)表入口寄存器和虛擬頁(yè)面號(hào)的高半部分從內(nèi)存讀取TLB表入口地址,再根據(jù)這個(gè)地址和虛擬頁(yè)面號(hào)的低半部分從內(nèi)存讀取真正的TLB表項(xiàng),這種通過(guò)兩級(jí)索引得到TLB 表項(xiàng)的過(guò)程如圖8所示。必須要注意的是這里是將虛擬頁(yè)面號(hào)分成了兩部分,而虛擬頁(yè)面號(hào)本身又是虛擬地址的高位。當(dāng)然從內(nèi)存中讀取虛擬頁(yè)面號(hào)所對(duì)應(yīng)的TLB表項(xiàng)的工作也可以由三次或者多次內(nèi)存訪問(wèn)完成,相應(yīng)的也就需要將虛擬地址分成三部分或者多部分。
在硬件回填模式下,即使地址轉(zhuǎn)換單元沒(méi)能在轉(zhuǎn)換旁路緩沖器TLB中找到虛擬地址對(duì)應(yīng)的表項(xiàng),也不會(huì)有TLB失配異常發(fā)生,因?yàn)橛布靥顔卧獣?huì)處理好TLB失配,因而從虛擬地址被輸入到內(nèi)存管理模塊開(kāi)始到內(nèi)存管理模塊輸出物理地址結(jié)束的整個(gè)過(guò)程中,都不會(huì)有軟件的參與,可以在較短的時(shí)間內(nèi)完成TLB回填的工作。
通過(guò)設(shè)置回填模式控制寄存器,本發(fā)明提供了一種同時(shí)支持軟件回填與硬件回填的內(nèi)存管理模塊,它在增加少量硬件開(kāi)銷(xiāo)的基礎(chǔ)上,可方便的選擇軟件回填模式或者硬件回填模式完成TLB回填的工作。
權(quán)利要求
1.一種同時(shí)支持軟件回填與硬件回填的內(nèi)存管理模塊,包括 轉(zhuǎn)換旁路緩沖器TLB,用于存儲(chǔ)虛擬頁(yè)面到物理頁(yè)面的映射表項(xiàng); 地址轉(zhuǎn)換單元,用于根據(jù)輸入到內(nèi)存管理模塊的虛擬地址,查詢(xún)TLB中的表項(xiàng),輸出物理地址或者TLB失配信息; 其特征在于所述內(nèi)存管理模塊還包括 控制寄存器組,包含回填模式控制寄存器、TLB操作指令寄存器、TLB表項(xiàng)寄存器和TLB失配寄存器; 硬件回填單元,用于訪問(wèn)外圍內(nèi)存,根據(jù)TLB失配信息將外圍內(nèi)存中存儲(chǔ)的映射表項(xiàng)讀入并寫(xiě)到TLB中; 控制單元,用于根據(jù)TLB操作指令寄存器里的信息對(duì)TLB作讀和寫(xiě)操作;根據(jù)回填模式控制寄存器里的信息控制TLB失配時(shí)的回填方式,其中, 在軟件回填模式下,將虛擬頁(yè)面號(hào)寫(xiě)入到TLB失配寄存器,接著發(fā)起一個(gè)TLB失配異常,然后通過(guò)異常服務(wù)程序響應(yīng)這個(gè)異常,完成TLB表項(xiàng)的回填工作; 在硬件回填模式下,將TLB失配的虛擬頁(yè)面信息發(fā)送給硬件回填單元,同時(shí)向所述硬件回填單元發(fā)起硬件回填請(qǐng)求。
2.如權(quán)利要求I所述的同時(shí)支持軟件回填與硬件回填的內(nèi)存管理模塊,其特征在于所述回填模式控制寄存器中,當(dāng)回填模式位無(wú)效,控制單元在發(fā)生TLB失配時(shí)會(huì)選擇軟件回填模式;當(dāng)回填模式位有效,控制單元在發(fā)生TLB失配時(shí)會(huì)選擇硬件回填模式。
3.如權(quán)利要求I或2所述的同時(shí)支持軟件回填與硬件回填的內(nèi)存管理模塊,其特征在于在虛擬地址被發(fā)送到內(nèi)存管理模塊后,地址轉(zhuǎn)換單元查詢(xún)TLB里的表項(xiàng),將表項(xiàng)里的虛擬頁(yè)面號(hào)與輸入到內(nèi)存管理模塊的虛擬地址的高位相比較,如果存在匹配的表項(xiàng),那么表明TLB命中,此時(shí)將此表項(xiàng)里的物理頁(yè)面號(hào)與虛擬地址的低位組成物理地址并輸出,成功完成虛擬地址到物理地址的轉(zhuǎn)換。
4.如權(quán)利要求3所述的同時(shí)支持軟件回填與硬件回填的內(nèi)存管理模塊,其特征在于如果沒(méi)有匹配的表項(xiàng),那么表明TLB失配,地址轉(zhuǎn)換單元會(huì)將TLB失配信息傳輸給控制單J Li ο
5.如權(quán)利要求I或2所述的同時(shí)支持軟件回填與硬件回填的內(nèi)存管理模塊,其特征在于所述TLB操作指令寄存器包含TLB讀位和TLB寫(xiě)位,分別用于指示讀TLB表項(xiàng)和寫(xiě)TLB表項(xiàng)。
6.如權(quán)利要求I或2所述的同時(shí)支持軟件回填與硬件回填的內(nèi)存管理模塊,其特征在于所述TLB表項(xiàng)寄存器用于存放一個(gè)TLB表項(xiàng),每個(gè)TLB表項(xiàng)都包含一個(gè)虛擬頁(yè)面號(hào)和一個(gè)物理頁(yè)面號(hào)。
7.如權(quán)利要求I或2所述的同時(shí)支持軟件回填與硬件回填的內(nèi)存管理模塊,其特征在于所述TLB失配寄存器用于存放TLB失配時(shí)的虛擬頁(yè)面號(hào)。
全文摘要
一種同時(shí)支持軟件回填與硬件回填的內(nèi)存管理模塊,包括轉(zhuǎn)換旁路緩沖器TLB,用于存儲(chǔ)虛擬頁(yè)面到物理頁(yè)面的映射表項(xiàng);地址轉(zhuǎn)換單元,用于根據(jù)輸入到內(nèi)存管理模塊的虛擬地址,查詢(xún)TLB中的表項(xiàng),輸出物理地址或者TLB失配信息;控制寄存器組,包含回填模式控制寄存器、TLB操作指令寄存器、TLB表項(xiàng)寄存器和TLB失配寄存器;硬件回填單元,用于訪問(wèn)外圍內(nèi)存,根據(jù)TLB失配信息將外圍內(nèi)存中存儲(chǔ)的映射表項(xiàng)讀入并寫(xiě)到TLB中;控制單元,用于根據(jù)TLB操作指令寄存器里的信息對(duì)TLB作讀和寫(xiě)操作;根據(jù)回填模式控制寄存器里的信息控制TLB失配時(shí)的回填方式。本發(fā)明兼有回填快速性和移植方便性。
文檔編號(hào)G06F12/08GK102929796SQ201210179650
公開(kāi)日2013年2月13日 申請(qǐng)日期2012年6月1日 優(yōu)先權(quán)日2012年6月1日
發(fā)明者楊軍, 莫鵬飛, 丁永林 申請(qǐng)人:杭州中天微系統(tǒng)有限公司
網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1