組相連的二級內(nèi)存管理裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于計算機(jī)系統(tǒng)中的內(nèi)存管理裝置,尤其涉及一種減小硬件開銷并保證性能的二級內(nèi)存管理裝置。
【背景技術(shù)】
[0002]現(xiàn)代處理器普遍采用虛擬地址尋址,并使用內(nèi)存管理裝置(Memory ManagementUnit,簡稱MMU)實(shí)現(xiàn)虛擬地址到物理地址的轉(zhuǎn)換。虛擬地址和物理地址被劃分成頁后,其映射關(guān)系被存儲在主存儲器的頁表中。為了減少對主存儲器頁表的訪問,許多內(nèi)存管理裝置采用旁路轉(zhuǎn)換緩沖器(Translat1n Look-aside Buffer,簡稱TLB)以緩存頻繁使用的主存儲器頁表項(xiàng)。在進(jìn)行虛擬地址到物理地址的轉(zhuǎn)換時,首先在旁路轉(zhuǎn)換緩沖器中進(jìn)行查找,如果被請求的頁表項(xiàng)存在旁路轉(zhuǎn)換緩沖器中,則發(fā)生旁路轉(zhuǎn)換緩沖器命中(TLB Hit),反之則發(fā)生旁路轉(zhuǎn)換緩沖器缺失(TLB Miss) ? TLB缺失發(fā)生時內(nèi)存管理裝置向主存儲器發(fā)起請求,讀取缺失的頁表項(xiàng)并回填到旁路轉(zhuǎn)換緩沖器中。提高旁路轉(zhuǎn)換緩沖器命中率和提高旁路轉(zhuǎn)換緩沖器查找速度,是內(nèi)存管理裝置設(shè)計的兩個重要目標(biāo)。
[0003]有些內(nèi)存管理裝置為了提高旁路轉(zhuǎn)換緩沖器命中率,采用全相連(FullAssociative)結(jié)構(gòu)來組織旁路轉(zhuǎn)換緩沖器表項(xiàng)。但是全相連結(jié)構(gòu)的查找需要把被請求的虛擬地址和所有表項(xiàng)進(jìn)行比較,速度比較慢。因此很多全相連結(jié)構(gòu)采用了內(nèi)容尋址存儲器(Content Addressable Memory,簡稱CAM)以提高查找速度,但這也提高了全相連結(jié)構(gòu)的設(shè)計復(fù)雜性和硬件成本。
[0004]有些內(nèi)存管理裝置采用了組相連(Set Associative)結(jié)構(gòu)的旁路轉(zhuǎn)換緩沖器,查找速度優(yōu)于全相連結(jié)構(gòu)。但是組相連結(jié)構(gòu)的命中率相對較低。為了提升命中率,組相連結(jié)構(gòu)普遍使用了犧牲旁路轉(zhuǎn)換緩沖器(victim TLB,簡稱vTLB)緩存被踢出的頁表項(xiàng)。當(dāng)發(fā)生旁路轉(zhuǎn)換緩沖器缺失時,內(nèi)存管理裝置首先在犧牲旁路轉(zhuǎn)換緩沖器中查找所需要的頁表項(xiàng),如果仍然沒有查找到匹配項(xiàng),再向主存儲器頁表發(fā)起查找請求。
[0005]許多內(nèi)存管理裝置為了進(jìn)一步提升組相連結(jié)構(gòu)的查找效率,普遍使用了二級結(jié)構(gòu),包括第一級旁路轉(zhuǎn)換緩沖器(fast TLB,簡稱fTLB)和第二級旁路轉(zhuǎn)換緩沖器(mainTLB,簡稱mTLB)。其中第一級旁路轉(zhuǎn)換緩沖器是第二級旁路轉(zhuǎn)換緩沖器的高速緩存。在進(jìn)行虛擬地址到物理地址的轉(zhuǎn)換時,首先在第一級旁路轉(zhuǎn)換緩沖器中進(jìn)行查找。當(dāng)?shù)谝患壟月忿D(zhuǎn)換緩沖器缺失時,再向第二級旁路轉(zhuǎn)換緩沖器發(fā)起查找請求,并將第二級旁路轉(zhuǎn)換緩沖器返回的頁表項(xiàng)回填到第一級旁路轉(zhuǎn)換緩沖器中。
[0006]犧牲旁路轉(zhuǎn)換緩沖器和快速旁路轉(zhuǎn)換緩沖器的加入能夠提升組相連結(jié)構(gòu)的使用效率。但是導(dǎo)致了內(nèi)存管理裝置的硬件開銷比較大。
【發(fā)明內(nèi)容】
[0007]為了克服已有內(nèi)存管理方式的無法兼顧高性能和硬件開銷的不足,本發(fā)明提供了一種減少硬件開銷的同時保證高性能的組相連的二級內(nèi)存管理裝置。
[0008]本發(fā)明解決其技術(shù)問題所采用的技術(shù)方案是:
[0009]一種組相連的二級內(nèi)存管理裝置,包括:
[0010]第一級旁路轉(zhuǎn)換緩沖單元(fTLB),包含M個表項(xiàng)的頁面映射關(guān)系,采用全相連結(jié)構(gòu),用于對輸入的虛擬地址A進(jìn)行地址轉(zhuǎn)換與合法性檢查,輸出命中信息、物理地址與合法性信息;
[0011]第二級旁路轉(zhuǎn)換緩沖單元(mTLB),包含N個表項(xiàng)的頁面映射關(guān)系,N>M,N、M為整數(shù),采用多路組相連結(jié)構(gòu),用于接收第一級旁路轉(zhuǎn)換緩沖單元的命中信息,并對虛擬地址A進(jìn)行地址轉(zhuǎn)換與合法性檢查,輸出命中信息、物理地址與合法性信息,
[0012]所述第一級旁路轉(zhuǎn)換緩沖單元包括P個旁路轉(zhuǎn)換緩沖器,P = I時,第一級旁路轉(zhuǎn)換緩沖單元包含一個旁路緩沖器,同時為指令訪問地址與數(shù)據(jù)訪問地址提供地址轉(zhuǎn)換;P = 2時,第一級旁路轉(zhuǎn)換緩沖單元包含兩個旁路轉(zhuǎn)換緩沖器,記為第一級指令旁路緩沖器和第一級數(shù)據(jù)旁路緩沖器,分別為指令訪問地址與數(shù)據(jù)訪問地址提供地址轉(zhuǎn)換,并且,第一級指令旁路緩沖器的表項(xiàng)數(shù)和第一級數(shù)據(jù)旁路緩沖器的表項(xiàng)數(shù)不相同;
[0013]所述第二級旁路轉(zhuǎn)換緩沖單元包括Q個旁路轉(zhuǎn)換緩沖器,Q = I時,第二級旁路轉(zhuǎn)換緩沖單元包含一個旁路緩沖器,同時為指令訪問地址與數(shù)據(jù)訪問地址提供地址轉(zhuǎn)換,該緩沖器的組相連度大于等于2 ;Q = 2時,第二級旁路轉(zhuǎn)換緩沖單元包含兩個旁路轉(zhuǎn)換緩沖器,記為第二級指令旁路緩沖器和第二級數(shù)據(jù)旁路緩沖器,分別為指令訪問地址與數(shù)據(jù)訪問地址提供地址轉(zhuǎn)換,并且,第二級指令旁路緩沖器的表項(xiàng)數(shù)和第二級數(shù)據(jù)旁路緩沖器的表項(xiàng)數(shù)可以不相同,并且,第二級指令旁路緩沖器的組相連度和第二級數(shù)據(jù)旁路緩沖器的組相連度均大于等于2 ;
[0014]所述內(nèi)存管理裝置還包括:
[0015]頁面映射缺失處理單元,用于接收第二級旁路轉(zhuǎn)換緩沖單元的命中信息,輸出頁面映射缺失請求;
[0016]回填控制單元,用于接收頁面映射缺失處理單元的頁面映射缺失請求,并采用軟件處理或者硬件處理的方式,將缺失的頁面映射關(guān)系表項(xiàng)回填到第一級和第二級旁路轉(zhuǎn)換緩沖單元中。
[0017]進(jìn)一步,所述回填控制單元中,對第一級旁路轉(zhuǎn)換緩沖單元的回填操作獨(dú)立于,或者受控于對第二級旁路轉(zhuǎn)換緩沖單元的回填操作。
[0018]再進(jìn)一步,所述回填控制單元在回填時,如果第二級旁路轉(zhuǎn)換緩沖器中被覆蓋的頁表項(xiàng)同時存在于第一級旁路轉(zhuǎn)換緩沖器中,第一級中的該表項(xiàng)將予以保留。
[0019]更進(jìn)一步,所述頁面映射缺失處理單元中,在輸出頁面映射缺失請求時,采用軟件處理的方式,觸發(fā)異常,請求軟件異常服務(wù)程序處理。
[0020]或者是:所述頁面映射缺失處理單元中,在輸出頁面映射缺失請求時,采用硬件處理的方式,請求回填控制單元,以硬件方式加載缺失的頁表項(xiàng)并回填到第一級和第二級旁路轉(zhuǎn)換緩沖單元,并且,采用硬件方式處理頁面缺失請求時,二級內(nèi)存管理裝置進(jìn)一步包括頁面映射關(guān)系訪問單元,用于接受頁面映射缺失處理單元的頁面映射缺失請求,計算產(chǎn)生訪問地址,從外部存儲器的頁表中加載缺失的頁面映射關(guān)系。
[0021]所述內(nèi)存管理裝置還包括頁面映射關(guān)系訪問單元,所述頁面映射缺失處理單元與所述頁面映射關(guān)系訪問單元連接,所述頁面映射關(guān)系訪問單元與所述回填控制單元連接。
[0022]優(yōu)選的,所述第一級旁路轉(zhuǎn)換緩沖單元中,P = 2時,第一級指令旁路緩沖器的表項(xiàng)數(shù)和第一級數(shù)據(jù)旁路緩沖器的表項(xiàng)數(shù)不相同。也可以相同。
[0023]所述第二級旁路轉(zhuǎn)換緩沖單元中,Q = 2時,第二級指令旁路緩沖器的組相連度和第二級數(shù)據(jù)旁路緩沖器的組相連度相同。也可以不相同。
[0024]本發(fā)明的有益效果主要表現(xiàn)在:減少硬件開銷的同時保證高性能。
【附圖說明】
[0025]圖1為所述內(nèi)存管理裝置的較佳實(shí)施實(shí)例的整體結(jié)構(gòu)框圖。
[0026]圖2為頁面號和頁內(nèi)偏移在虛擬地址和物理地址內(nèi)的關(guān)系。
[0027]圖3為第一級旁路轉(zhuǎn)換緩沖單元的一種結(jié)構(gòu)框圖。
[0028]圖4為第一級旁路轉(zhuǎn)換緩沖單元的一種表項(xiàng)組織結(jié)構(gòu)。
[0029]圖5為索引號和標(biāo)簽號在虛擬地址頁面號內(nèi)的關(guān)系。
[0030]圖6為第二級旁路轉(zhuǎn)換緩沖單元的一種表