欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

用于實(shí)時(shí)應(yīng)用程序的改進(jìn)的存儲(chǔ)器管理的制作方法

文檔序號(hào):6422411閱讀:235來源:國(guó)知局
專利名稱:用于實(shí)時(shí)應(yīng)用程序的改進(jìn)的存儲(chǔ)器管理的制作方法
技術(shù)領(lǐng)域
本發(fā)明一般涉及計(jì)算機(jī)系統(tǒng)中的存儲(chǔ)器管理,特別涉及用于提高計(jì)算機(jī)系統(tǒng)上運(yùn)行的實(shí)時(shí)應(yīng)用程序的性能的改進(jìn)的存儲(chǔ)器地址轉(zhuǎn)換機(jī)構(gòu)(mechanism)。
在現(xiàn)代計(jì)算機(jī)系統(tǒng)中,使用被稱作虛擬存儲(chǔ)器的技術(shù)來管理計(jì)算機(jī)系統(tǒng)的物理或真實(shí)存儲(chǔ)器的資源。這一技術(shù)向應(yīng)用程序提供非常大量的存儲(chǔ)器的錯(cuò)覺。最初,開發(fā)虛擬存儲(chǔ)器系統(tǒng)是為了解決物理或真實(shí)存儲(chǔ)器太小的問題。盡管在大多數(shù)具有足夠存儲(chǔ)器的現(xiàn)代系統(tǒng)中這不再是個(gè)因素,但是虛擬存儲(chǔ)器機(jī)構(gòu)本身已經(jīng)因?yàn)槠渌蚨C明是有價(jià)值的。在這些原因中,虛擬存儲(chǔ)器機(jī)構(gòu)簡(jiǎn)化了存儲(chǔ)器分配和/或存儲(chǔ)器保護(hù)以及應(yīng)用程序設(shè)計(jì)。
在虛擬存儲(chǔ)器系統(tǒng)中,利用具有多個(gè)頁表項(xiàng)(PTE)的頁表將虛擬地址轉(zhuǎn)換為真實(shí)地址。通常,這種頁表存儲(chǔ)在計(jì)算機(jī)系統(tǒng)的主存儲(chǔ)器如DRAM芯片中。然而,由于連接在CPU和主存儲(chǔ)器之間的存儲(chǔ)器總線比CPU的操作速度慢得多,因此在CPU和主存儲(chǔ)器之間存在瓶頸。對(duì)于不需要實(shí)時(shí)響應(yīng)的某些應(yīng)用程序,這一瓶頸可能不會(huì)引起合理的關(guān)注。然而,很多實(shí)時(shí)應(yīng)用程序可能會(huì)發(fā)現(xiàn)在這種應(yīng)用程序操作時(shí),這一瓶頸造成了可辨別的延遲。
避免這一瓶頸問題的已知技術(shù)是將PTE存儲(chǔ)在稱為轉(zhuǎn)換后備緩沖器(TLB)的專用高速緩沖存儲(chǔ)器中,其接近中央處理單元(CPU)。通常,TLB位于CPU芯片內(nèi),以便只要由CPU搜索到的特定的一組PTE恰好存儲(chǔ)在TLB中,就消除或顯著減小與在主存儲(chǔ)器中查找頁表相關(guān)的任何延遲。當(dāng)在TLB中沒有發(fā)現(xiàn)所述特定的一組PTE時(shí),通常將這種事件定義為TLB遺漏(miss)。
通常,當(dāng)進(jìn)行存儲(chǔ)器讀取和/或?qū)懭胝?qǐng)求時(shí),從虛擬到真實(shí)存儲(chǔ)器的映射被高速緩存(cache)在TLB中。當(dāng)存在TLB遺漏時(shí),專用硬件或軟件必須用正確的PTE重新載入TLB。TLB的軟件重新載入和硬件重新載入在性能方面代價(jià)可能相當(dāng)高,這是因?yàn)檫@種重新載入需要從主存儲(chǔ)器讀取PTE并查找匹配。通常,要找到匹配可能花費(fèi)(take)多達(dá)3個(gè)高速緩沖存儲(chǔ)器線(cache line)遺漏。因此,在實(shí)時(shí)應(yīng)用程序中,不希望有TLB遺漏。
本發(fā)明提供一種如權(quán)利要求1所述的用于改進(jìn)計(jì)算機(jī)系統(tǒng)中的存儲(chǔ)器管理的方法、以及如其它權(quán)利要求所述的對(duì)應(yīng)裝置和計(jì)算機(jī)程序產(chǎn)品。
為了更完整地理解本發(fā)明及其優(yōu)點(diǎn),現(xiàn)在談?wù)摻Y(jié)合附圖進(jìn)行的以下描述,其中

圖1是圖示用于實(shí)時(shí)應(yīng)用程序的改進(jìn)的存儲(chǔ)器管理機(jī)構(gòu)的高層次方框圖;圖2是圖示用于實(shí)時(shí)應(yīng)用程序的改進(jìn)的存儲(chǔ)器管理機(jī)構(gòu)的優(yōu)選實(shí)施例的低層次方框圖;以及圖3是將結(jié)合圖2的改進(jìn)存儲(chǔ)器管理機(jī)構(gòu)使用的替換管理表(RMT)的示例。
注意,除非另外指出,否則在此描述的所有功能均可以以硬件或軟件、或它們的某種組合來執(zhí)行。然而,在優(yōu)選實(shí)施例中,除非另外指出,這些功能由諸如計(jì)算機(jī)或電子數(shù)據(jù)處理器的處理器根據(jù)諸如計(jì)算機(jī)程序代碼的代碼、軟件和/或被編碼以執(zhí)行這些功能的集成電路執(zhí)行。
參考附圖1,附圖標(biāo)記100一般地指定圖示用于實(shí)時(shí)應(yīng)用程序的改進(jìn)的存儲(chǔ)器管理機(jī)構(gòu)的高層次方框圖。通常,高層次方框圖100可應(yīng)用于使用虛擬存儲(chǔ)器的計(jì)算機(jī)系統(tǒng)。大多數(shù)現(xiàn)代計(jì)算機(jī)系統(tǒng)都包括在這一范疇內(nèi)。使用存儲(chǔ)在頁表106和表后備緩沖器(TLB)108中的頁表項(xiàng)(PTE)(未示出)將虛擬地址102轉(zhuǎn)換為真實(shí)或物理地址104。具體地說,虛擬地址102包括虛擬頁號(hào)碼(VPN)102A和頁偏移量(offset)102B。類似地,真實(shí)地址104包括頁幀號(hào)碼(PFN)104A和頁偏移量104B。優(yōu)選地,只有虛擬地址102的VPN 102A被轉(zhuǎn)換為真實(shí)地址104的PFN 104A。頁偏移量102B被無修改地復(fù)制到頁偏移量104B。
還使用硬件和/或軟件頁替換算法(PRA)110來在存在TLB遺漏并且必須用來自頁表106的新PTE(包含缺少的頁)替換TLB中的PTE時(shí)幫助TLB。TLB鎖定機(jī)構(gòu)112與TLB 108和PRA 110交互,以改進(jìn)用于實(shí)時(shí)應(yīng)用程序的存儲(chǔ)器管理機(jī)構(gòu)100。
至少中央處理單元(CPU)(未示出)直接或間接控制在此上下文中必需的大多數(shù)操作和/或計(jì)算,除非另外指出。此外,耦接到CPU的存儲(chǔ)器(未示出)存儲(chǔ)頁表106。如果以硬件實(shí)施,則PRA 110耦接到TLB 108和TLB鎖定機(jī)構(gòu)112。如果以軟件實(shí)施,則PRA 110存儲(chǔ)在存儲(chǔ)器(未示出)中,并且將在發(fā)生TLB遺漏時(shí)由CPU執(zhí)行。
通常,CPU獲得對(duì)存儲(chǔ)頁表106的存儲(chǔ)器的訪問要花費(fèi)相對(duì)長(zhǎng)的時(shí)間段(與估計(jì)可能較短的CPU的時(shí)鐘周期相比)。TLB 108是用于動(dòng)態(tài)存儲(chǔ)最初可以從頁表106獲得的部分PTE的專用高速緩沖存儲(chǔ)器。具體地說,TLB 108是用于存儲(chǔ)相對(duì)小的一組PTE以便快速訪問的關(guān)聯(lián)存儲(chǔ)器。給定某字段的值,關(guān)聯(lián)存儲(chǔ)器中的硬件機(jī)構(gòu)搜索所有記錄,并返回其字段包含給定值的記錄。給出VPN 102A之后,如果沒有TLB遺漏,則TLB 108中的硬件機(jī)構(gòu)搜索TLB中的所有PTE,并返回PFN 104A。注意,在不脫離本發(fā)明的基本精神的情況下,可以使用其它類型的關(guān)聯(lián)存儲(chǔ)器來代替TLB 108。
通常,使用TLB 108來動(dòng)態(tài)地高速緩存CPU近期可能使用的一些PTE。實(shí)際上,PRA 110預(yù)測(cè)CPU近期可能使用哪些頁,并相應(yīng)地確定在給定時(shí)間點(diǎn)應(yīng)當(dāng)將哪些PTE存儲(chǔ)在TLB 108中。目前,很多不同的頁替換算法在本領(lǐng)域中是公知的,其包括但不限于最近最少使用(LRU)算法(未示出)。當(dāng)存在TLB遺漏時(shí),LRU算法用新PTE(例如,在TLB中遺漏的PTE)來替換沒有使用的時(shí)間最長(zhǎng)(即,最近最少使用)的PTE。
盡管隨著時(shí)間推移,該頁替換方案可以優(yōu)化存儲(chǔ)器管理機(jī)構(gòu)100的整體性能,但該方案沒有考慮它對(duì)實(shí)時(shí)應(yīng)用程序可能具有的潛在不利影響。TLB鎖定機(jī)構(gòu)112被示出為通過與TLB 108和PRA 110一起工作來克服此問題。一般而言,TLB鎖定機(jī)構(gòu)112防止為實(shí)時(shí)應(yīng)用程序分配的一組PTE被屬于頁表106的另一組PTE替換。換句話說,TLB鎖定機(jī)構(gòu)112鎖定為實(shí)時(shí)應(yīng)用程序分配的一組PTE,使得不能將這組PTE從TLB 108中去除,而不管PRA 110確定了什么。
重要的是應(yīng)當(dāng)注意,本發(fā)明不必限于實(shí)時(shí)應(yīng)用程序,盡管這種應(yīng)用程序最有可能受益于本發(fā)明。一般而言,本發(fā)明應(yīng)被視為適用于任何類型的應(yīng)用程序和/或要在發(fā)生TLB遺漏時(shí)防止被替換的任何特定應(yīng)用程序。
現(xiàn)在參考圖2,示出了低層次方框圖200,以圖示用于實(shí)時(shí)應(yīng)用程序的改進(jìn)的存儲(chǔ)器管理機(jī)構(gòu)的優(yōu)選實(shí)施例。通常,以有效地址(EA)202的形式從CPU(未示出)發(fā)出存儲(chǔ)器請(qǐng)求。EA 202被轉(zhuǎn)換為虛擬地址(VA)204,而虛擬地址(VA)204又被轉(zhuǎn)換為真實(shí)地址(RA)206。有效地址(EA)包括有效段ID(ESID)206A、頁號(hào)碼(PN)206B和偏移量206C。類似地,VA 204具有虛擬段ID(VSID)204A、頁號(hào)碼(PN)204B和偏移量204C。優(yōu)選地,通過級(jí)聯(lián)VSID204A和PN 204B來創(chuàng)建虛擬頁號(hào)碼(VPN)204D。
EA 202被傳遞給段后備緩沖器(SLB)208和轉(zhuǎn)換后備緩沖器(TLB)210。SLB 208被配置為將EA202轉(zhuǎn)換為VA 204。優(yōu)選地,SLB 208將ESID 202A轉(zhuǎn)換為VSID 204A,而PN 202B和偏移量202C分別被復(fù)制到PN 204B和偏移量204C。
給出VPN 204D和EA 202之后,CPU通過訪問EA 202所指向(index)的所有PTE并比較VPN 204A,來在TLB 210中搜索頁表項(xiàng)(PTE)中的匹配(即,PTE命中)。在存在命中的情況下,返回真實(shí)頁號(hào)碼212。優(yōu)選地,使用TAG(標(biāo)簽)比較器214以及邏輯元件216來執(zhí)行這種比較。具體地說,TAG比較器214使邏輯元件216能夠在VPN 204D與TLB 210中的VPN 218匹配時(shí)傳遞RPN 212。當(dāng)VPN 204D與TLB 210中的VPN 218不匹配時(shí),TAG比較器214防止邏輯元件216傳遞RPN 212。
在存在遺漏的情況下,TLB重新載入機(jī)構(gòu)(未示出)搜索存儲(chǔ)器(未示出)中的頁表(未示出),并重新載入TLB 210。在傳統(tǒng)的TLB結(jié)構(gòu)中,當(dāng)TLB 210在遺漏之后被重新載入時(shí),使用頁替換算法(PRA)220如最近最少使用(LRU)算法來指示要替換同等類(congruence class)中的哪組PTE。
在TLB重新載入的情況下,使用一組范圍寄存器222、類ID、替換組224、替換管理表(RMT)226和替換組控制塊230來選擇要替換哪一組。具體地說,范圍寄存器222耦接到RMT 226,以便將類ID傳送給RMT 226。通過將EA 202發(fā)送給范圍寄存器222來完成TLB重新載入。如果在范圍寄存器222中存在命中,則生成類ID,并將其傳遞給RMT 226。RMT生成RMT替換控制位,該RMT替換控制位通過RMT替換控制總線232而被傳送到替換組控制塊230。替換組控制塊230使用RMT替換控制位和來自TLB 210的替換組224來確定要替換哪一組。
圖3示出了RMT 226的示例。在此示例中,RMT 226包括與8個(gè)TLB組(列)交叉的8個(gè)類ID(行)的矩陣。優(yōu)選地,RMT 226說明操作系統(tǒng)軟件對(duì)于TLB 210中的組的替換管理狀態(tài)的決定,這是因?yàn)樗鼋M與給定類ID相關(guān)。
在優(yōu)選實(shí)施例中,RMT 226是由軟件管理的表。軟件維護(hù)所述結(jié)構(gòu),并解釋RMT項(xiàng)的含義。通常,在有效地址范圍到一組或多組TLB的映射中使用RMT 226。此外,類ID(即,TLB 226的行)代表所給出的地址范圍。在此示例中,類ID 0對(duì)應(yīng)于沒有給其它類ID特別提供的任何地址范圍。然后,將所給出的類ID傳送給RMT,并由RMT作為索引使用。當(dāng)使用類ID作為索引時(shí),訪問RMT 226,并在RMT替換控制總線232上傳送信息。
在此示例中,RMT 226是8×8矩陣。換句話說,TLB 210是8路(8-way)組關(guān)聯(lián)的(即,它具有8個(gè)組)。因此,每個(gè)RMT項(xiàng)有8位。具體地說,RMT226具有從TLB組0-2、類ID行0中定義的“1”以及其余行中的“0”。因此,對(duì)于類ID 0,如果數(shù)據(jù)將被替換到TLB,則可以在前三組即TLB的組0-2中更新它。此外,類ID 0排它地使用這些組。因此,TLB的組0-2對(duì)類ID 0是排它的。類ID 0提供在范圍寄存器中沒有命中的地址的默認(rèn)類ID。
對(duì)于類ID 1,RMT具有組0-2和組4-7中定義的“0”和用于組3的“1”。在組0-2或組4-7中,將不替換對(duì)應(yīng)于類ID 1的任何數(shù)據(jù)。而是,將在組3中替換該數(shù)據(jù)。類ID 2和類ID 3均替換同一組,即組7。因此,類ID 2和類ID 3將只替換組7。類ID 4具有若干作為替換的有效候選者的組。它們是組4、5和6。
組替換的最終選擇由任何頁替換算法(PRA)如LRU算法做出。換句話說,RMT將某些組標(biāo)記為適合替換,然后,使用圖2的替換組選擇塊230中包含的LRU算法控制邏輯(未示出)來最終確定要替換的組的選擇。
權(quán)利要求
1.一種用于改進(jìn)具有處理邏輯以及第一和第二存儲(chǔ)器的計(jì)算機(jī)系統(tǒng)中的存儲(chǔ)器管理的方法,該方法包括以下步驟將虛擬地址和真實(shí)地址之間的地址轉(zhuǎn)換信息存儲(chǔ)在第一存儲(chǔ)器中;將至少部分地址轉(zhuǎn)換信息高速緩存在第二存儲(chǔ)器中,以便更快地從處理邏輯訪問,所述部分地址轉(zhuǎn)換信息包括地址轉(zhuǎn)換信息的子集,其中第二存儲(chǔ)器比第一存儲(chǔ)器更接近處理邏輯;以及防止所述地址轉(zhuǎn)換信息的子集被第一存儲(chǔ)器中存儲(chǔ)的其它地址轉(zhuǎn)換信息替換。
2.如權(quán)利要求1所述的方法,其特征在于,第一和第二存儲(chǔ)器分別是計(jì)算機(jī)系統(tǒng)的主存儲(chǔ)器和轉(zhuǎn)換后備緩沖器(TLB)。
3.如權(quán)利要求1所述的方法,其特征在于,地址轉(zhuǎn)換信息存儲(chǔ)在具有一個(gè)或多個(gè)頁表項(xiàng)(PTE)的一個(gè)或多個(gè)頁表中。
4.如權(quán)利要求1所述的方法,其特征在于,為實(shí)時(shí)應(yīng)用程序分配所述地址轉(zhuǎn)換信息的子集。
5.如前述任何一項(xiàng)權(quán)利要求所述的方法,其特征在于,防止所述地址轉(zhuǎn)換信息的子集被第一存儲(chǔ)器中存儲(chǔ)的其它地址轉(zhuǎn)換信息替換的步驟還包括以下步驟為范圍寄存器生成一個(gè)或多個(gè)類ID,每個(gè)類ID代表有效地址的給定地址范圍;使用所述一個(gè)或多個(gè)類ID作為索引來訪問替換管理表(RMT);將所述一個(gè)或多個(gè)類ID映射到一組或多組所述至少部分地址轉(zhuǎn)換信息;基于RMT確定哪組地址轉(zhuǎn)換信息適合替換;以及僅對(duì)被確定為適合替換的地址轉(zhuǎn)換組執(zhí)行替換算法。
6.如前述任何一項(xiàng)權(quán)利要求所述的方法,還包括以下步驟以有效地址的形式從處理邏輯發(fā)出存儲(chǔ)器請(qǐng)求;生成對(duì)應(yīng)于有效地址的虛擬地址;在第二存儲(chǔ)器中搜索將虛擬地址與真實(shí)地址匹配的第一組地址轉(zhuǎn)換信息;當(dāng)確定第二存儲(chǔ)器未存儲(chǔ)第一組地址轉(zhuǎn)換信息時(shí),在第一存儲(chǔ)器中搜索第一組地址轉(zhuǎn)換信息;以及當(dāng)確定第一存儲(chǔ)器存儲(chǔ)了第一組地址轉(zhuǎn)換信息時(shí),將第一組地址轉(zhuǎn)換信息載入到第二存儲(chǔ)器中,以替換第一存儲(chǔ)器中的第二組地址轉(zhuǎn)換信息,所述第二組地址轉(zhuǎn)換信息不是為實(shí)時(shí)應(yīng)用程序分配的。
7.一種在具有處理邏輯以及第一和第二存儲(chǔ)器的計(jì)算機(jī)系統(tǒng)中的改進(jìn)的存儲(chǔ)器管理機(jī)構(gòu),該存儲(chǔ)器管理機(jī)構(gòu)執(zhí)行前述任何一項(xiàng)權(quán)利要求所述的方法。
8.一種用于改進(jìn)具有處理邏輯以及第一和第二存儲(chǔ)器的計(jì)算機(jī)系統(tǒng)中的存儲(chǔ)器管理的計(jì)算機(jī)程序產(chǎn)品,該計(jì)算機(jī)程序產(chǎn)品具有其上體現(xiàn)了計(jì)算機(jī)程序的介質(zhì),所述計(jì)算機(jī)程序用于當(dāng)在計(jì)算機(jī)系統(tǒng)上運(yùn)行時(shí)執(zhí)行如權(quán)利要求1-6中任何一項(xiàng)所述的方法。
全文摘要
通過防止地址轉(zhuǎn)換信息的子集被高速緩沖存儲(chǔ)器中的其它類型的地址轉(zhuǎn)換信息替換,而改進(jìn)了計(jì)算機(jī)系統(tǒng)中的存儲(chǔ)器管理,其中,所述高速緩沖存儲(chǔ)器被保留用于存儲(chǔ)這樣的地址轉(zhuǎn)換信息,以便由CPU更快地訪問。這樣,CPU可以識(shí)別存儲(chǔ)在高速緩沖存儲(chǔ)器中的所述地址轉(zhuǎn)換信息的子集。
文檔編號(hào)G06F12/12GK1820258SQ200380103078
公開日2006年8月16日 申請(qǐng)日期2003年11月21日 優(yōu)先權(quán)日2002年12月12日
發(fā)明者邁克爾·N·戴, 哈姆·P·霍夫斯蒂, 卡爾斯·R·約翰斯, 詹姆斯·A·卡爾, 蘇恩·Q·特魯恩, 戴維·希比 申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
山东省| 垫江县| 牙克石市| 东乡族自治县| 铅山县| 莎车县| 那坡县| 习水县| 正安县| 巴林左旗| 肃宁县| 蒙城县| 和政县| 安顺市| 轮台县| 屯留县| 迁西县| 高雄市| 蓬安县| 灵川县| 宝丰县| 玉山县| 双辽市| 云林县| 夏邑县| 合江县| 霍山县| 剑河县| 平江县| 武清区| 蒙山县| 遵义县| 年辖:市辖区| 慈利县| 宁国市| 兴化市| 乌兰察布市| 徐汇区| 务川| 长葛市| 新河县|