內存物理地址查詢方法和裝置制造方法
【專利摘要】本發(fā)明提供一種內存物理地址查詢方法和裝置。該方法包括:將備用緩存器中存儲的待尋址的第二線程的頁表項存儲至預取緩存器中,備用緩存器中存儲旁路轉換緩存器中設定時間內未被查詢的頁表項;接收第二線程發(fā)送的攜帶虛擬地址的內存尋址請求消息;根據(jù)虛擬地址在旁路轉換緩存器和預取緩存器中查詢對應的物理地址。本發(fā)明提供的內存物理地址查詢方法和裝置,根據(jù)待尋址第二線程的虛擬地址在旁路轉換緩存器和預取緩存器中同時進行查詢,且預取緩存器中存儲有旁路轉換緩存器中設定時間內未被查詢的第二線程的頁表項,從而提高對虛擬地址對應的物理地址的查詢命中幾率,縮短尋址時間。
【專利說明】內存物理地址查詢方法和裝置
【技術領域】
[0001]本發(fā)明涉及信息【技術領域】,尤其涉及一種內存物理地址查詢方法和裝置。
【背景技術】
[0002]目前,處理器大多采用虛擬地址(Virtual Address,簡稱VA)來進行內存尋址,使用虛擬地址技術可以創(chuàng)建比實際物理地址(Physical Address,簡稱PA)大得多的尋址空間。采用虛擬存儲器的處理器大多采用一種分頁(Paging)機制,虛擬地址空間以頁(Page)為單位進行劃分,相應的,物理地址空間也以頁(Page)為單位進行劃分。在采用虛擬地址進行內存尋址的過程中,處理器中的內存管理單元(Memory Management Unit,簡稱MMU)需要將接收到的虛擬地址轉換為物理地址。目前處理器大多采用旁路轉換緩存器來緩存包含有處理器最近訪問的內存的虛擬地址和物理地址之間的映射關系的頁表緩存(Translat1nLookaside Buffer,簡稱TLB),TLB中緩存的數(shù)據(jù)和內存頁表區(qū)存儲的數(shù)據(jù)是一致的,在內存頁表區(qū)中,每一條包含虛擬地址和物理地址映射關系的記錄稱為一個頁表項(PageTable Entry,簡稱PTE),同樣的,在TLB中也緩存了部分甚至全部的頁表項PTE。
[0003]在采用虛擬地址進行內存尋址時,內存管理單元MMU接收到應用程序發(fā)來的虛擬地址后,首先在旁路轉換緩存器的TLB中進行搜索,如果TLB中緩存有與該虛擬地址對應的頁表項,即TLB命中(Hi t ),則通過該頁表項中的物理地址到一級緩存(Le ve 11 Cache )進行數(shù)據(jù)存取,如果LevellCache中與該物理地址對應的數(shù)據(jù)缺失,則到二級緩存(Level2Cache)進行數(shù)據(jù)存取,如果Level2Cache中與該物理地址對應的數(shù)據(jù)缺失,貝U至Il內存中進行數(shù)據(jù)存??;如果TLB中不包含與該虛擬地址對應的頁表項,即TLB未命中(Miss),則需要軟件或操作系統(tǒng)(Operating System,簡稱OS)搜索與該虛擬地址對應的物理地址,并將該虛擬地址與該物理地址的映射關系作為一個頁表項存入TLB中,以供內存管理單元MMU進行后續(xù)搜索。
[0004]現(xiàn)有技術中,在內存管理單元MMU中設置有預取緩存器(Prefetch Buffer,簡稱PB),PB中存儲有多個頁表項。在進行內存物理地址尋址時,首先在TLB中搜索對應的物理地址,當TLB未命中后,繼續(xù)在PB中搜索對應的物理地址,若PB中存在對應的物理地址,則通過該物理地址進行數(shù)據(jù)存取并將命中的頁表項存儲至TLB中,若PB中不存在對應的物理地址,則將內存中的多個頁表項存儲至PB中,并覆蓋PB中的當前存儲數(shù)據(jù)。
[0005]然而,對于多線程處理器,多個硬件線程共享一個TLB,由于TLB的容量有限,當硬件線程數(shù)目較多時,TLB中頁表項的數(shù)目無法滿足多線程需求,從而導致每個硬件線程在采用虛擬地址進行內存尋址時,TLB未命中率很高,且TLB未命中后才去內存獲取并緩存與該虛擬地址對應的頁表項,因此尋址時間較長。
【發(fā)明內容】
[0006]本發(fā)明提供一種內存物理地址查詢方法和裝置,用以解決現(xiàn)有技術中存在的尋址時間較長的問題。
[0007]第一方面,本發(fā)明提供了一種內存物理地址查詢方法,包括:
[0008]根據(jù)預設的線程切換策略,確定未來設定時間內內存尋址操作由第一線程變更為第二線程;
[0009]將備用緩存器中存儲的所述第二線程的頁表項存儲至預取緩存器中,所述備用緩存器中存儲旁路轉換緩存器存儲的頁表緩存TLB中設定時間內未被查詢的頁表項;
[0010]接收所述第二線程發(fā)送的內存尋址請求消息,所述內存尋址請求消息中攜帶虛擬地址;
[0011]根據(jù)所述虛擬地址在所述旁路轉換緩存器和所述預取緩存器存儲的頁表項中查詢所述虛擬地址對應的物理地址。
[0012]在第一方面的第一種可能的實現(xiàn)方式中,所述根據(jù)所述虛擬地址在所述旁路轉換緩存器和所述預取緩存器存儲的頁表項中查詢所述虛擬地址對應的物理地址,包括:
[0013]若所述旁路轉換緩存器中存在與所述虛擬地址對應的第一物理地址,則通過所述第一物理地址訪問內存進行數(shù)據(jù)存取;或者,
[0014]若所述旁路轉換緩存器中不存在與所述虛擬地址對應的第一物理地址,且所述預取緩存器中存在與所述虛擬地址對應的第二物理地址,則通過所述第二物理地址訪問所述內存進行數(shù)據(jù)存取。
[0015]根據(jù)第一方面的第一種可能的實現(xiàn)方式,在第二種可能的實現(xiàn)方式中,所述方法還包括:
[0016]若所述旁路轉換緩存器中不存在與所述虛擬地址對應的第一物理地址,且所述預取緩存器中不存在與所述虛擬地址對應的第二物理地址,則在所述內存中查找與所述虛擬地址對應的第三物理地址。
[0017]根據(jù)第一方面的第一種可能的實現(xiàn)方式和第二種可能的實現(xiàn)方式,在第三種可能的實現(xiàn)方式中,若所述旁路轉換緩存器中不存在與所述虛擬地址對應的第一物理地址,且所述預取緩存器中存在與所述虛擬地址對應的第二物理地址,則所述方法還包括:
[0018]將所述預取緩存器中存儲的所述虛擬地址和所述第二物理地址對應的頁表項存儲至所述旁路轉換緩存器中,并刪除所述預取緩存器中存儲的所述虛擬地址和所述第二物理地址對應的頁表項。
[0019]根據(jù)第一方面的第二種可能的實現(xiàn)方式,在第四種可能的實現(xiàn)方式中,所述方法還包括:
[0020]將在內存中查找到的與所述虛擬地址和所述第三物理地址對應的頁表項存儲至所述旁路轉換緩存器中。
[0021]根據(jù)第一方面的第一種可能的實現(xiàn)方式、第二種可能的實現(xiàn)方式、第三種可能的實現(xiàn)方式和第四種可能的實現(xiàn)方式,在第五種可能的實現(xiàn)方式中,所述將備用緩存器中存儲的所述第二線程的頁表項存儲至預取緩存器中之前,所述方法還包括:
[0022]若所述旁路轉換緩存器中存儲的頁表項的數(shù)目超過自身的存儲容量,則將所述旁路轉換緩存器中所述設定時間內未被查詢的頁表項存儲至所述備用緩存器中,并刪除所述旁路轉換緩存器中所述設定時間內未被查詢的頁表項。
[0023]根據(jù)第一方面的第五種可能的實現(xiàn)方式,在第六種可能的實現(xiàn)方式中,所述將所述旁路轉換緩存器中所述設定時間內未被查詢的頁表項存儲至所述備用緩存器中之后,所述方法還包括:
[0024]若所述備用緩存器中存儲的頁表項的數(shù)目超過自身的存儲容量,則刪除所述備用緩存器中存儲時間最長的頁表項。
[0025]根據(jù)第一方面的第一種可能的實現(xiàn)方式、第二種可能的實現(xiàn)方式、第三種可能的實現(xiàn)方式、第四種可能的實現(xiàn)方式、第五種可能的實現(xiàn)方式和第六種可能的實現(xiàn)方式,在第七種可能的實現(xiàn)方式中,所述將備用緩存器中存儲的所述第二線程的頁表項存儲至預取緩存器中,包括:
[0026]若所述備用緩存器中存儲的所述第二線程的頁表項的數(shù)目小于或等于所述預取緩存器的存儲容量,則將所述備用緩存器中存儲的所有所述第二線程的頁表項存儲至所述預取緩存器中,并覆蓋所述預取緩存器的當前存儲數(shù)據(jù);或者,
[0027]若所述備用緩存器中存儲的所述第二線程的頁表項的數(shù)目大于所述預取緩存器的存儲容量,則將所述備用緩存器中存儲的與所述預取緩存器的存儲容量相等數(shù)目的所述第二線程的頁表項存儲至所述預取緩存器中,并覆蓋所述預取緩存器的當前存儲數(shù)據(jù)。
[0028]根據(jù)第一方面的第七種可能的實現(xiàn)方式,在第八種可能的實現(xiàn)方式中,若所述備用緩存器中存儲的所述第二線程的頁表項的數(shù)目大于所述預取緩存器的存儲容量,則所述方法還包括:
[0029]若所述旁路轉換緩存器中不存在與所述虛擬地址對應的第一物理地址,且所述預取緩存器中存在與所述虛擬地址對應的第二物理地址,則將所述備用緩存器中存儲的所述第二線程的頁表項中除所述預取緩存器中存儲的頁表項之外的一個頁表項存儲至所述預取緩存器中。
[0030]第二方面,本發(fā)明提供了一種內存物理地址查詢裝置,包括:
[0031]確定模塊,用于根據(jù)預設的線程切換策略,確定未來設定時間內內存尋址操作由第一線程變更為第二線程;
[0032]執(zhí)行模塊,用于將備用緩存器中存儲的所述第二線程的頁表項存儲至預取緩存器中,所述備用緩存器中存儲旁路轉換緩存器存儲的頁表緩存TLB中設定時間內未被查詢的頁表項;
[0033]接收模塊,接收所述第二線程發(fā)送的內存尋址請求消息,所述內存尋址請求消息中攜帶虛擬地址;
[0034]查詢模塊,根據(jù)所述虛擬地址在所述旁路轉換緩存器和所述預取緩存器存儲的頁表項中查詢所述虛擬地址對應的物理地址。
[0035]在第二方面的第一種可能的實現(xiàn)方式中,所述查詢模塊具體用于:
[0036]若所述旁路轉換緩存器中存在與所述虛擬地址對應的第一物理地址,則通過所述第一物理地址訪問內存進行數(shù)據(jù)存?。换蛘?,
[0037]若所述旁路轉換緩存器中不存在與所述虛擬地址對應的第一物理地址,且所述預取緩存器中存在與所述虛擬地址對應的第二物理地址,則通過所述第二物理地址訪問所述內存進行數(shù)據(jù)存取。
[0038]根據(jù)第二方面的第一種可能的實現(xiàn)方式,在第二種可能的實現(xiàn)方式中,所述查詢模塊還用于:
[0039]若所述旁路轉換緩存器中不存在與所述虛擬地址對應的第一物理地址,且所述預取緩存器中不存在與所述虛擬地址對應的第二物理地址,則在所述內存中查找與所述虛擬地址對應的第三物理地址。
[0040]根據(jù)第二方面的第一種可能的實現(xiàn)方式和第二種可能的實現(xiàn)方式,在第三種可能的實現(xiàn)方式中,所述查詢模塊還用于:
[0041]若所述旁路轉換緩存器中不存在與所述虛擬地址對應的第一物理地址,且所述預取緩存器中存在與所述虛擬地址對應的第二物理地址,則將所述預取緩存器中存儲的所述虛擬地址和所述第二物理地址對應的頁表項存儲至所述旁路轉換緩存器中,并刪除所述預取緩存器中存儲的所述虛擬地址和所述第二物理地址對應的頁表項。
[0042]根據(jù)第二方面的第二種可能的實現(xiàn)方式,在第四種可能的實現(xiàn)方式中,所述查詢模塊還用于:
[0043]將在內存中查找到的與所述虛擬地址和所述第三物理地址對應的頁表項存儲至所述旁路轉換緩存器中。
[0044]根據(jù)第二方面的第一種可能的實現(xiàn)方式、第二種可能的實現(xiàn)方式、第三種可能的實現(xiàn)方式和第四種可能的實現(xiàn)方式,在第五種可能的實現(xiàn)方式中,所述執(zhí)行模塊還用于:
[0045]在所述將備用緩存器中存儲的所述第二線程的頁表項存儲至預取緩存器中之前,若所述旁路轉換緩存器中存儲的頁表項的數(shù)目超過自身的存儲容量,則將所述旁路轉換緩存器中所述設定時間內未被查詢的頁表項存儲至所述備用緩存器中,并刪除所述旁路轉換緩存器中所述設定時間內未被查詢的頁表項。
[0046]根據(jù)第一方面的第五種可能的實現(xiàn)方式,在第六種可能的實現(xiàn)方式中,所述執(zhí)行模塊還用于:
[0047]在所述將所述旁路轉換緩存器中所述設定時間內未被查詢的頁表項存儲至所述備用緩存器中之后,若所述備用緩存器中存儲的頁表項的數(shù)目超過自身的存儲容量,則刪除所述備用緩存器中存儲時間最長的頁表項。
[0048]根據(jù)第二方面的第一種可能的實現(xiàn)方式、第二種可能的實現(xiàn)方式、第三種可能的實現(xiàn)方式、第四種可能的實現(xiàn)方式、第五種可能的實現(xiàn)方式和第六種可能的實現(xiàn)方式,在第七種可能的實現(xiàn)方式中,所述執(zhí)行模塊具體用于:
[0049]若所述備用緩存器中存儲的所述第二線程的頁表項的數(shù)目小于或等于所述預取緩存器的存儲容量,則將所述備用緩存器中存儲的所有所述第二線程的頁表項存儲至所述預取緩存器中,并覆蓋所述預取緩存器的當前存儲數(shù)據(jù);或者,
[0050]若所述備用緩存器中存儲的所述第二線程的頁表項的數(shù)目大于所述預取緩存器的存儲容量,則將所述備用緩存器中存儲的與所述預取緩存器的存儲容量相等數(shù)目的所述第二線程的頁表項存儲至所述預取緩存器中,并覆蓋所述預取緩存器的當前存儲數(shù)據(jù)。
[0051]根據(jù)第二方面的第七種可能的實現(xiàn)方式,在第八種可能的實現(xiàn)方式中,所述執(zhí)行模塊還用于:
[0052]若所述備用緩存器中存儲的所述第二線程的頁表項的數(shù)目大于所述預取緩存器的存儲容量,且所述旁路轉換緩存器中不存在與所述虛擬地址對應的第一物理地址,所述預取緩存器中存在與所述虛擬地址對應的第二物理地址,則將所述備用緩存器中存儲的所述第二線程的頁表項中除所述預取緩存器中存儲的頁表項之外的一個頁表項存儲至所述預取緩存器中。
[0053]第三方面,本發(fā)明提供了一種內存物理地址查詢裝置,包括:存儲器、旁路轉換緩存器、備用緩存器、預取緩存器和處理器;
[0054]所述存儲器,用于存儲指令;
[0055]所述旁路轉換緩存器,用于存儲頁表緩存TLB ;
[0056]所述備用緩存器,用于存儲所述旁路轉換緩存器存儲的所述TLB中設定時間內未被查詢的頁表項;
[0057]所述預取緩存器,用于存儲所述備用緩存器中存儲的對應線程的頁表項;
[0058]所述處理器,用于運行所述存儲器中存儲的所述指令以執(zhí)行如第一方面所述的內存物理地址查詢方法。
[0059]本發(fā)明提供的內存物理地址查詢方法和裝置,根據(jù)待尋址第二線程的虛擬地址在旁路轉換緩存器和預取緩存器中同時進行查詢,且預取緩存器中存儲有旁路轉換緩存器中設定時間內未被查詢的第二線程的頁表項,從而提高對虛擬地址對應的物理地址的查詢命中幾率,縮短尋址時間。
【專利附圖】
【附圖說明】
[0060]為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術中的技術方案,下面將對實施例或現(xiàn)有技術描述中所需要使用的附圖做一簡單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0061]圖1為本發(fā)明提供的內存物理地址查詢方法一個實施例的流程示意圖;
[0062]圖2為本發(fā)明提供的內存物理地址查詢方法又一個實施例的流程示意圖;
[0063]圖3為旁路轉換緩存器的緩存頁表TLB中設定時間內未被查詢的頁表項存儲至對應線程的備用緩存器中的示意圖;
[0064]圖4為對應線程的備用緩存器中的頁表項存儲至預取緩存器PB中的示意圖;
[0065]圖5為根據(jù)虛擬地址VA進行內存物理地址尋址的示意圖;
[0066]圖6為本發(fā)明提供的內存物理地址查詢裝置一個實施例的結構示意圖;
[0067]圖7為本發(fā)明提供的內存物理地址查詢裝置又一個實施例的結構示意圖。
【具體實施方式】
[0068]為使本發(fā)明實施例的目的、技術方案和優(yōu)點更加清楚,下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領域普通技術人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
[0069]圖1為本發(fā)明提供的內存物理地址查詢方法一個實施例的流程示意圖。如圖1所示,以下方法實施例提供的方法可以適用于各種類型的終端設備,例如:PC機,PAD,手機等。以下各步驟的執(zhí)行主體可以為上述各種終端設備中的中央處理器(CentralProcessing Unit,簡稱CPU),具體可以為CPU中的內存管理單元MMU等。該方法具體可以包括:
[0070]S101,根據(jù)預設的線程切換策略,確定未來設定時間內內存尋址操作由第一線程變更為第二線程。
[0071]具體的,線程切換策略中包括了在終端設備運行的各時間段內,采用哪些線程來執(zhí)行內存尋址操作。本發(fā)明實施例中,第一線程即為前一時間段內執(zhí)行內存尋址操作的線程,第二線程為在第一線程之后執(zhí)行內存尋址操作的線程,即待尋址線程。
[0072]S102,將備用緩存器中存儲的第二線程的頁表項存儲至預取緩存器中,備用緩存器中存儲旁路轉換緩存器存儲的頁表緩存TLB中設定時間內未被查詢的頁表項。
[0073]具體的,根據(jù)SlOl確定的待尋址的線程,即第二線程,將備用緩存器中存儲的第二線程的頁表項存儲至預取緩存器PB中,且該備用緩存器中存儲的是旁路轉換緩存器存儲的頁表緩存TLB中設定時間內未被查詢的頁表項。可選的,備用緩存器中存儲的頁表項具體可以包括:虛擬地址和物理地址的對應關系以及對應的各線程的標識;類似的,旁路轉換緩存器中存儲的頁表項具體也可以包括:虛擬地址和物理地址的對應關系以及對應的各線程的標識;預取緩存器PB中存儲的頁表項可以包括:虛擬地址和物理地址的對應關系以及對應的待尋址線程的標識。
[0074]此處需要說明的是,備用緩存器的數(shù)量可以是一個或多個,例如:每個線程可以對應一個備用緩存器,用于存儲緩存旁路轉換緩存器中該線程設定時間內未被查詢的頁表項。類似的,旁路轉換緩存器和預取緩存器的數(shù)量都可以是一個或多個,例如:可以每個線程對應一個旁路轉換緩存器和一個預取緩存器。
[0075]S103,接收第二線程發(fā)送的內存尋址請求消息,內存尋址請求消息中攜帶虛擬地址。
[0076]具體的,接收待尋址線程,即第二線程,發(fā)送的內存尋址請求消息,該內存尋址請求消息中攜帶待尋址的虛擬地址I
[0077]S104,根據(jù)虛擬地址在旁路轉換緩存器和預取緩存器存儲的頁表項中查詢虛擬地址對應的物理地址。
[0078]具體的,根據(jù)虛擬地址VA,可以同時在旁路轉換緩存器和預取緩存器PB存儲的頁表項中進行查詢,若旁路轉換緩存器和預取緩存器PB中存在與該虛擬地址VA對應的物理地址,則采用該物理地址進行數(shù)據(jù)存取,若旁路轉換緩存器和預取緩存器PB中均不存在與該虛擬地址VA對應的物理地址,則到內存中進行查詢,以獲得與該虛擬地址VA對應的物理地址。
[0079]本實施例提供的內存物理地址查詢方法,根據(jù)待尋址第二線程的虛擬地址在旁路轉換緩存器和預取緩存器中同時進行查詢,且預取緩存器中存儲有旁路轉換緩存器中設定時間內未被查詢的第二線程的頁表項,從而提高對虛擬地址對應的物理地址的查詢命中幾率,縮短尋址時間。
[0080]圖2為本發(fā)明提供的內存物理地址查詢方法又一個實施例的流程示意圖。如圖2所示,以下方法實施例提供的方法可以適用于各種類型的終端設備,例如:PC機,PAD,手機等。以下各步驟的執(zhí)行主體可以為中央處理器CPU,具體可以為CPU中的內存管理單元MMU等。該方法具體可以包括:
[0081]S201,根據(jù)預設的線程切換策略,確定未來設定時間內內存尋址操作由第一線程變更為第二線程。
[0082]具體的,線程切換策略中包括了在終端設備運行的各時間段內,采用哪些線程來執(zhí)行內存尋址操作。本發(fā)明實施例中,第一線程即為前一時間段內執(zhí)行內存尋址操作的線程,第二線程為在第一線程之后執(zhí)行內存尋址操作的線程,即待尋址線程。
[0083]S202,將備用緩存器中存儲的第二線程的頁表項存儲至預取緩存器中,備用緩存器中存儲旁路轉換緩存器存儲的頁表緩存TLB中設定時間內未被查詢的頁表項。
[0084]這里根據(jù)備用緩存器中存儲的第二線程的頁表項的數(shù)目和預取緩存器PB的存儲容量之間的關系,可以選擇執(zhí)行以下步驟S203或S204。
[0085]S203,若備用緩存器中存儲的第二線程的頁表項的數(shù)目小于或等于預取緩存器的存儲容量,則將備用緩存器中存儲的所有第二線程的頁表項存儲至預取緩存器中,并覆蓋預取緩存器的當前存儲數(shù)據(jù)。
[0086]S204:若備用緩存器中存儲的第二線程的頁表項的數(shù)目大于預取緩存器的存儲容量,則將備用緩存器中存儲的與預取緩存器的存儲容量相等數(shù)目的第二線程的頁表項存儲至預取緩存器中,并覆蓋預取緩存器的當前存儲數(shù)據(jù)。
[0087]具體的,根據(jù)S201確定的待尋址的線程,即第二線程,將備用緩存器中存儲的部分或全部第二線程的頁表項存儲至預取緩存器PB中,并刪除PB中當前存儲的數(shù)據(jù)。其中,該備用緩存器中存儲的是旁路轉換緩存器存儲的頁表緩存TLB中設定時間內未被查詢的頁表項。
[0088]作為一種可選的實施方式,每個線程可以對應一個備用緩存器,且每個備用緩存器中存儲的頁表項可以是TLB中設定時間內未被查詢的對應線程的頁表項。圖3為旁路轉換緩存器的緩存頁表TLB中設定時間內未被查詢的頁表項存儲至對應線程的備用緩存器中的示意圖,如圖3所示,旁路轉換緩存器的緩存頁表TLB中存儲的頁表項具體可以包括:虛擬地址和物理地址的對應關系以及對應的各線程的標識,每個線程對應的備用緩存器中存儲的頁表項具體可以包括:虛擬地址和物理地址的對應關系,備用緩存器選擇單元接收TLB中存儲的設定時間內未被查詢的頁表項以及對應的線程標識,并根據(jù)線程標識將該頁表項存儲至對應線程的備用緩存器中。
[0089]圖4為對應線程的備用緩存器中的頁表項存儲至預取緩存器PB中的示意圖,如圖4所示,備用緩存器選擇單元根據(jù)確定的待尋址的線程,將待尋址線程的備用緩存器中的部分或全部頁表項以及對應的線程標識存儲至預取緩存器PB中,從而使預取緩存器PB中存儲有待尋址線程被替換出TLB的頁表項。這些被替換出TLB的頁表項,大都不是因為不需要而被替換的,而是由于TLB存儲容量有限,而線程又多,使得一些線程的常用頁表項被替換出去。
[0090]這里假設32個線程共享一個存儲容量為128個頁表項的旁路轉換緩存器,則每個線程對應的備用緩存器的存儲容量和預取緩存器PB的存儲容量可以設置為32個頁表項,在待尋址線程進行尋址之前,可將待尋址線程對應的備用緩存器中的全部頁表項存儲至預取緩存器PB中,并刪除預取緩存器PB中當前存儲的數(shù)據(jù)。其中,旁路轉換緩存器和預取緩存器PB可采用內容可尋址的存儲器(Content Addressable Memory,簡稱CAM)完成虛擬地址VA的比較,但由于增大預取緩存器PB的存儲容量會增大芯片功耗,因此可選擇存儲容量較小的預取緩存器PB,例如存儲容量為8個頁表項的預取緩存器PB,則在待尋址線程進行尋址之前,可將待尋址線程對應的備用緩存器中存儲時間最短的8個頁表項存儲至預取緩存器PB中,并刪除預取緩存器PB中當前存儲的數(shù)據(jù)。
[0091]S205,接收第二線程發(fā)送的內存尋址請求消息,內存尋址請求消息中攜帶虛擬地址。
[0092]具體的,接收待尋址線程,即第二線程,發(fā)送的內存尋址請求消息,該內存尋址請求消息中攜帶待尋址的虛擬地址I
[0093]S206,根據(jù)虛擬地址在旁路轉換緩存器和預取緩存器存儲的頁表項中查詢虛擬地址對應的物理地址。
[0094]這里根據(jù)在旁路轉換緩存器和預取緩存器PB中的尋址結果,可以選擇執(zhí)行以下步驟 S207、S208 或 S209。
[0095]S207:若旁路轉換緩存器中存在與虛擬地址對應的第一物理地址,則通過第一物理地址訪問內存進行數(shù)據(jù)存取。
[0096]S208:若旁路轉換緩存器中不存在與虛擬地址對應的第一物理地址,且預取緩存器中存在與虛擬地址對應的第二物理地址,則通過第二物理地址訪問內存進行數(shù)據(jù)存取,并將預取緩存器中存儲的虛擬地址和第二物理地址對應的頁表項存儲至旁路轉換緩存器中,并刪除預取緩存器中存儲的虛擬地址和第二物理地址對應的頁表項。
[0097]其中,若備用緩存器中存儲的第二線程的頁表項的數(shù)目大于預取緩存器的存儲容量,則將備用緩存器中存儲的第二線程的頁表項中除預取緩存器中存儲的頁表項之外的一個頁表項存儲至預取緩存器中。
[0098]S209:若旁路轉換緩存器中不存在與虛擬地址對應的第一物理地址,且預取緩存器中不存在與虛擬地址對應的第二物理地址,則在內存中查找與虛擬地址對應的第三物理地址,并將在內存中查找到的與虛擬地址和第三物理地址對應的頁表項存儲至旁路轉換緩存器中。
[0099]具體的,圖5為根據(jù)虛擬地址VA進行內存物理地址尋址的示意圖,如圖5所示,根據(jù)虛擬地址VA,可以同時在旁路轉換緩存器和預取緩存器PB存儲的頁表項中進行查詢。
[0100]當旁路轉換緩存器中存在與該虛擬地址VA對應的物理地址時,即當旁路轉換緩存器中的TLB命中(TLB-Hit)時,不管預取緩存器PB中是否存在與該虛擬地址VA對應的物理地址,即預取緩存器PB命中(PB-Hit)或未命中(PB-Miss),都根據(jù)在旁路轉換緩存器中查找到的物理地址,即第一物理地址PA1,進行數(shù)據(jù)存取。
[0101]當旁路轉換緩存器中不存在與該虛擬地址VA對應的物理地址,即當旁路轉換緩存器中的TLB未命中(TLB-Miss),但預取緩存器PB中存在與該虛擬地址VA對應的物理地址時,即預取緩存器PB命中(PB-Hit)時,則根據(jù)在預取緩存器PB中查找到的物理地址,即第二物理地址PA2,進行數(shù)據(jù)存取,并將查找到的頁表項即命中的頁表項存儲至旁路轉換緩存器的TLB中。其中,當預取緩存器PB只存儲了備用緩存器中部分第二線程的頁表項時,例如上面所述預取緩存器PB中只存儲了備用緩存器中存儲時間最短的8個第二線程的頁表項,則在將預取緩存器PB中命中的頁表項存儲至TLB中后,可以從備用緩存器中取出下一個存儲時間較短的第二線程的頁表項存儲至預取緩存器PB中。
[0102]當旁路轉換緩存器和預取緩存器PB中均不存在與虛擬地址VA對應的物理地址時,即均未命中(TLB-Miss且ΡΒ-Miss)時,則根據(jù)該虛擬地址VA和對應的線程標識通過頁表掃描單元到內存中查找與該虛擬地址VA對應的物理地址,即第三物理地址PA3,并根據(jù)查找到的第三物理地址PA3進行數(shù)據(jù)存取,同時將查找到的頁表項即命中的頁表項以及對應的線程標識存儲至旁路轉換緩存器的TLB中。
[0103]其中,對于步驟S208或S209:
[0104]若旁路轉換緩存器中存儲的頁表項的數(shù)目超過自身的存儲容量,則將旁路轉換緩存器中設定時間內未被查詢的頁表項存儲至備用緩存器中,并刪除旁路轉換緩存器中設定時間內未被查詢的頁表項。
[0105]具體的,當旁路轉換緩存器中存儲的頁表項的數(shù)目超過自身的存儲容量時,優(yōu)先將命中率最低的頁表項,即設定時間內未命中的頁表項存儲至備用緩存器中,并刪除該設定時間內未命中的頁表項。
[0106]若備用緩存器中存儲的頁表項的數(shù)目超過自身的存儲容量,則刪除備用緩存器中存儲時間最長的頁表項。
[0107]具體的,由于備用緩存器中的頁表項存儲時間越長,命中的幾率越小,因此對備用緩存器可以采取“先入先出(First Input First Output,簡稱FIFO)”的存儲模式,即當備用緩存器中存儲的頁表項的數(shù)目超過自身的存儲容量時,優(yōu)先刪除存儲時間最長的頁表項。
[0108]本實施例提供的內存物理地址查詢方法,根據(jù)待尋址第二線程的虛擬地址在旁路轉換緩存器和預取緩存器中同時進行查詢,且預取緩存器中存儲有旁路轉換緩存器中設定時間內未被查詢的第二線程的頁表項,從而提高對虛擬地址對應的物理地址的查詢命中幾率,縮短尋址時間。
[0109]圖6為本發(fā)明提供的內存物理地址查詢裝置一個實施例的結構示意圖。如圖6所示,本實施例中的內存物理地址查詢裝置60為執(zhí)行上述內存物理地址查詢方法的特定主體,具體可以包括:確定模塊61、執(zhí)行模塊62接收模塊63和查詢模塊64,其中:
[0110]確定模塊61,用于根據(jù)預設的線程切換策略,確定未來設定時間內內存尋址操作由第一線程變更為第二線程。
[0111]具體的,線程切換策略中包括了在終端設備運行的各時間段內,采用哪些線程來執(zhí)行內存尋址操作。本發(fā)明實施例中,第一線程即為前一時間段內執(zhí)行內存尋址操作的線程,第二線程為在第一線程之后執(zhí)行內存尋址操作的線程,即待尋址線程。
[0112]執(zhí)行模塊62,用于將備用緩存器中存儲的第二線程的頁表項存儲至預取緩存器中,備用緩存器中存儲旁路轉換緩存器存儲的頁表緩存TLB中設定時間內未被查詢的頁表項。
[0113]具體的,這里根據(jù)備用緩存器中存儲的第二線程的頁表項的數(shù)目和預取緩存器PB的存儲容量之間的關系分為以下兩種情況:
[0114]情況一:若備用緩存器中存儲的第二線程的頁表項的數(shù)目小于或等于預取緩存器的存儲容量,則將備用緩存器中存儲的所有第二線程的頁表項存儲至預取緩存器中,并覆蓋預取緩存器的當前存儲數(shù)據(jù);
[0115]情況二:若備用緩存器中存儲的第二線程的頁表項的數(shù)目大于預取緩存器的存儲容量,則將備用緩存器中存儲的與預取緩存器的存儲容量相等數(shù)目的第二線程的頁表項存儲至預取緩存器中,并覆蓋預取緩存器的當前存儲數(shù)據(jù);
[0116]具體的,根據(jù)確定模塊61確定的待尋址的線程,即第二線程,將備用緩存器中存儲的第二線程的部分或全部頁表項存儲至預取緩存器PB中,且該備用緩存器中存儲的是旁路轉換緩存器存儲的頁表緩存TLB中設定時間內未被查詢的頁表項。可選的,備用緩存器中存儲的頁表項具體可以包括:虛擬地址和物理地址的對應關系以及對應的各線程的標識;類似的,旁路轉換緩存器中存儲的頁表項具體也可以包括:虛擬地址和物理地址的對應關系以及對應的各線程的標識;預取緩存器PB中存儲的頁表項具體可以包括:虛擬地址和物理地址的對應關系以及對應的待尋址線程的標識。
[0117]此處需要說明的是,備用緩存器的數(shù)量可以是一個或多個,例如:每個線程可以對應一個備用緩存器,用于存儲緩存旁路轉換緩存器中該線程設定時間內未被查詢的頁表項。類似的,旁路轉換緩存器和預取緩存器的數(shù)量都可以是一個或多個,例如:可以每個線程對應一個旁路轉換緩存器和一個預取緩存器。
[0118]接收模塊63,用于接收第二線程發(fā)送的內存尋址請求消息,內存尋址請求消息中攜帶虛擬地址。
[0119]具體的,接收待尋址線程,即第二線程,發(fā)送的內存尋址請求消息,該內存尋址請求消息中攜帶待尋址的虛擬地址I
[0120]查詢模塊64,用于根據(jù)虛擬地址在旁路轉換緩存器和預取緩存器存儲的頁表項中查詢虛擬地址對應的物理地址。
[0121]具體的,根據(jù)虛擬地址VA,可以同時在旁路轉換緩存器和預取緩存器PB存儲的頁表項中進行查詢,這里根據(jù)在旁路轉換緩存器和預取緩存器PB中的尋址結果可以分為以下三種情況:
[0122]情況一:若旁路轉換緩存器中存在與虛擬地址對應的第一物理地址,則通過第一物理地址訪問內存進行數(shù)據(jù)存取。
[0123]具體的,當旁路轉換緩存器中存在與該虛擬地址VA對應的物理地址時,不管預取緩存器PB中是否存在與該虛擬地址VA對應的物理地址,都根據(jù)在旁路轉換緩存器中查找到的物理地址,即第一物理地址,進行數(shù)據(jù)存取。
[0124]情況二:若旁路轉換緩存器中不存在與虛擬地址對應的第一物理地址,且預取緩存器中存在與虛擬地址對應的第二物理地址,則通過第二物理地址訪問內存進行數(shù)據(jù)存取,并將預取緩存器中存儲的虛擬地址和第二物理地址對應的頁表項存儲至旁路轉換緩存器中,并刪除預取緩存器中存儲的虛擬地址和第二物理地址對應的頁表項。
[0125]其中,若備用緩存器中存儲的第二線程的頁表項的數(shù)目大于預取緩存器的存儲容量,且旁路轉換緩存器中不存在與虛擬地址對應的第一物理地址,預取緩存器中存在與虛擬地址對應的第二物理地址,則將備用緩存器中存儲的第二線程的頁表項中除預取緩存器中存儲的頁表項之外的一個頁表項存儲至預取緩存器中。
[0126]具體的,當旁路轉換緩存器中不存在與該虛擬地址VA對應的物理地址,但預取緩存器PB中存在與該虛擬地址VA對應的物理地址時,則根據(jù)在預取緩存器PB中查找到的物理地址,即第二物理地址,進行數(shù)據(jù)存取,并將查找到的頁表項即命中的頁表項存儲至旁路轉換緩存器的TLB中。當預取緩存器PB只存儲了備用緩存器中部分第二線程的頁表項時,在將預取緩存器PB中命中的頁表項存儲至TLB中后,可以從備用緩存器中取出一個頁表項存儲至預取緩存器PB中。
[0127]情況三:若旁路轉換緩存器中不存在與虛擬地址對應的第一物理地址,且預取緩存器中不存在與虛擬地址對應的第二物理地址,則在內存中查找與虛擬地址對應的第三物理地址,并將在內存中查找到的與虛擬地址和第三物理地址對應的頁表項存儲至旁路轉換緩存器中。
[0128]具體的,當旁路轉換緩存器和預取緩存器PB中均不存在與虛擬地址VA對應的物理地址時,即均未命中時,則需到內存中查找與該虛擬地址VA對應的物理地址,即第三物理地址,并將查找到的頁表項即命中的頁表項存儲至旁路轉換緩存器的TLB中。
[0129]進一步的,執(zhí)行模塊62還可以用于:
[0130]在將備用緩存器中存儲的第二線程的頁表項存儲至預取緩存器中之前,若旁路轉換緩存器中存儲的頁表項的數(shù)目超過自身的存儲容量,則將旁路轉換緩存器中設定時間內未被查詢的頁表項存儲至備用緩存器中,并刪除旁路轉換緩存器中設定時間內未被查詢的頁表項。
[0131]具體的,當旁路轉換緩存器中存儲的頁表項的數(shù)目超過自身的存儲容量時,優(yōu)先將命中率最低的頁表項,即設定時間內未命中的頁表項存儲至備用緩存器中,并刪除該設定時間內未命中的頁表項。
[0132]進一步的,執(zhí)行模塊62還可以用于:
[0133]在將旁路轉換緩存器中設定時間內未被查詢的頁表項存儲至備用緩存器中之后,若備用緩存器中存儲的頁表項的數(shù)目超過自身的存儲容量,則刪除備用緩存器中存儲時間最長的頁表項。
[0134]具體的,由于備用緩存器中的頁表項存儲時間越長,命中的幾率越小,因此對備用緩存器可以采取“先入先出FIFO”的存儲模式,即當備用緩存器中存儲的頁表項的數(shù)目超過自身的存儲容量時,優(yōu)先刪除存儲時間最長的頁表項。
[0135]本實施例提供的內存物理地址查詢裝置,根據(jù)待尋址第二線程的虛擬地址在旁路轉換緩存器和預取緩存器中同時進行查詢,且預取緩存器中存儲有旁路轉換緩存器中設定時間內未被查詢的第二線程的頁表項,從而提高對虛擬地址對應的物理地址的查詢命中幾率,縮短尋址時間。
[0136]圖7為本發(fā)明提供的內存物理地址查詢裝置又一個實施例的結構示意圖。如圖7所示,本實施例的內存物理地址查詢裝置包括:存儲器71、旁路轉換緩存器72、備用緩存器73、預取緩存器74和處理器75,其中:
[0137]存儲器71,用于存儲指令;
[0138]旁路轉換緩存器72,用于存儲頁表緩存TLB ;
[0139]備用緩存器73,用于存儲旁路轉換緩存器存儲的TLB中設定時間內未被查詢的頁表項;
[0140]預取緩存器74,用于存儲備用緩存器中存儲的對應線程的頁表項;
[0141]處理器75,用于運行存儲器中存儲的指令以執(zhí)行如圖1或圖2所示的內存物理地址查詢方法。
[0142]具體的,存儲器71可能包含高速RAM存儲器,也可能還包含非不穩(wěn)定的存儲器(non-volatile memory),例如至少一個磁盤存儲器。存儲器71可選的可以包含至少一個存儲裝置。存儲器71存儲了指令,當內存物理地址查詢裝置運行時,處理器75與存儲器71之間通信,處理器75執(zhí)行指令使得內存物理地址查詢裝置可以執(zhí)行本發(fā)明各實施例所提供的內存物理地址查詢方法。
[0143]備用緩存器73中可以存儲有包括虛擬地址和物理地址的對應關系的頁表項以及對應的各線程的標識,旁路轉換緩存器72中可以存儲有包括虛擬地址和物理地址的對應關系的頁表項以及對應的各線程的標識,預取緩存器74中可以存儲有包括虛擬地址和物理地址的對應關系的頁表項以及對應的待尋址線程的標識。
[0144]此處需要說明的是,備用緩存器73的數(shù)量可以是一個或多個,例如:每個線程可以對應一個備用緩存器,用于存儲緩存旁路轉換緩存器中該線程設定時間內未被查詢的頁表項。類似的,旁路轉換緩存器72和預取緩存器74的數(shù)量都可以是一個或多個,例如:可以每個線程對應一個旁路轉換緩存器和一個預取緩存器。
[0145]本實施例中的處理器可能是一種集成電路芯片,具有信號處理能力。在實現(xiàn)過程中,上述方法的各步驟可以通過處理器中的硬件的集成邏輯電路或者軟件形式的指令完成。上述的處理器可以是通用處理器、數(shù)字信號處理器(DSP)、專用集成電路(ASIC)、現(xiàn)成可編程門陣列(FPGA)或者其他可編程邏輯器件、分立門或者晶體管邏輯器件、分立硬件組件??梢詫崿F(xiàn)或者執(zhí)行本發(fā)明實施例中的公開的各方法、步驟及邏輯框圖。上述處理器可以是微處理器或者上述處理器也可以是任何常規(guī)的處理器等。結合本發(fā)明實施例所公開的方法的步驟可以直接體現(xiàn)為硬件處理器執(zhí)行完成,或者用處理器中的硬件及軟件模塊組合執(zhí)行完成。軟件模塊可以位于隨機存儲器,閃存、只讀存儲器,可編程只讀存儲器或者電可擦寫可編程存儲器、寄存器等本領域成熟的存儲介質中。該存儲介質位于存儲器,處理器讀取存儲器中的信息,結合其硬件完成上述方法的步驟。
[0146]本發(fā)明實施例還提供一種芯片,該芯片用于進行內存物理地址查詢,該芯片可以包括上述的處理器。
[0147]本實施例提供的內存物理地址查詢裝置,通過處理器75執(zhí)行存儲器71存儲的指令,根據(jù)待尋址第二線程的虛擬地址在旁路轉換緩存器和預取緩存器中同時進行查詢,且預取緩存器中存儲有旁路轉換緩存器中設定時間內未被查詢的第二線程的頁表項,從而提高對虛擬地址對應的物理地址的查詢命中幾率,縮短尋址時間。
[0148]本領域普通技術人員可以理解:實現(xiàn)上述各方法實施例的全部或部分步驟可以通過程序指令相關的硬件來完成。前述的程序可以存儲于一計算機可讀取存儲介質中。該程序在執(zhí)行時,執(zhí)行包括上述各方法實施例的步驟;而前述的存儲介質包括:R0M、RAM、磁碟或者光盤等各種可以存儲程序代碼的介質。
[0149]最后應說明的是:以上各實施例僅用以說明本發(fā)明的技術方案,而非對其限制;盡管參照前述各實施例對本發(fā)明進行了詳細的說明,本領域的普通技術人員應當理解:其依然可以對前述各實施例所記載的技術方案進行修改,或者對其中部分或者全部技術特征進行等同替換;而這些修改或者替換,并不使相應技術方案的本質脫離本發(fā)明各實施例技術方案的范圍。
【權利要求】
1.一種內存物理地址查詢方法,其特征在于,包括: 根據(jù)預設的線程切換策略,確定未來設定時間內內存尋址操作由第一線程變更為第二線程; 將備用緩存器中存儲的所述第二線程的頁表項存儲至預取緩存器中,所述備用緩存器中存儲旁路轉換緩存器存儲的頁表緩存TLB中設定時間內未被查詢的頁表項; 接收所述第二線程發(fā)送的內存尋址請求消息,所述內存尋址請求消息中攜帶虛擬地址; 根據(jù)所述虛擬地址在所述旁路轉換緩存器和所述預取緩存器存儲的頁表項中查詢所述虛擬地址對應的物理地址。
2.根據(jù)權利要求1所述的方法,其特征在于,所述根據(jù)所述虛擬地址在所述旁路轉換緩存器和所述預取緩存器存儲的頁表項中查詢所述虛擬地址對應的物理地址,包括: 若所述旁路轉換緩存器中存在與所述虛擬地址對應的第一物理地址,則通過所述第一物理地址訪問內存進行數(shù)據(jù)存??;或者, 若所述旁路轉換緩存器中不存在與所述虛擬地址對應的第一物理地址,且所述預取緩存器中存在與所述虛擬地址對應的第二物理地址,則通過所述第二物理地址訪問所述內存進行數(shù)據(jù)存取。
3.根據(jù)權利要求2所述的方法,其特征在于,所述方法還包括: 若所述旁路轉換緩存器中不存在與所述虛擬地址對應的第一物理地址,且所述預取緩存器中不存在與所述虛擬地址對應的第二物理地址,則在所述內存中查找與所述虛擬地址對應的第三物理地址。
4.根據(jù)權利要求2或3所述的方法,其特征在于,若所述旁路轉換緩存器中不存在與所述虛擬地址對應的第一物理地址,且所述預取緩存器中存在與所述虛擬地址對應的第二物理地址,則所述方法還包括: 將所述預取緩存器中存儲的所述虛擬地址和所述第二物理地址對應的頁表項存儲至所述旁路轉換緩存器中,并刪除所述預取緩存器中存儲的所述虛擬地址和所述第二物理地址對應的頁表項。
5.根據(jù)權利要求3所述的方法,其特征在于,所述方法還包括: 將在內存中查找到的與所述虛擬地址和所述第三物理地址對應的頁表項存儲至所述旁路轉換緩存器中。
6.根據(jù)權利要求1-5任一項所述的方法,其特征在于,所述將備用緩存器中存儲的所述第二線程的頁表項存儲至預取緩存器中之前,所述方法還包括: 若所述旁路轉換緩存器中存儲的頁表項的數(shù)目超過自身的存儲容量,則將所述旁路轉換緩存器中所述設定時間內未被查詢的頁表項存儲至所述備用緩存器中,并刪除所述旁路轉換緩存器中所述設定時間內未被查詢的頁表項。
7.根據(jù)權利要求6所述的方法,其特征在于,所述將所述旁路轉換緩存器中所述設定時間內未被查詢的頁表項存儲至所述備用緩存器中之后,所述方法還包括: 若所述備用緩存器中存儲的頁表項的數(shù)目超過自身的存儲容量,則刪除所述備用緩存器中存儲時間最長的頁表項。
8.根據(jù)權利要求1-7任一項所述的方法,其特征在于,所述將備用緩存器中存儲的所述第二線程的頁表項存儲至預取緩存器中,包括: 若所述備用緩存器中存儲的所述第二線程的頁表項的數(shù)目小于或等于所述預取緩存器的存儲容量,則將所述備用緩存器中存儲的所有所述第二線程的頁表項存儲至所述預取緩存器中,并覆蓋所述預取緩存器的當前存儲數(shù)據(jù);或者, 若所述備用緩存器中存儲的所述第二線程的頁表項的數(shù)目大于所述預取緩存器的存儲容量,則將所述備用緩存器中存儲的與所述預取緩存器的存儲容量相等數(shù)目的所述第二線程的頁表項存儲至所述預取緩存器中,并覆蓋所述預取緩存器的當前存儲數(shù)據(jù)。
9.根據(jù)權利要求8所述的方法,其特征在于,若所述備用緩存器中存儲的所述第二線程的頁表項的數(shù)目大于所述預取緩存器的存儲容量,則所述方法還包括: 若所述旁路轉換緩存器中不存在與所述虛擬地址對應的第一物理地址,且所述預取緩存器中存在與所述虛擬地址對應的第二物理地址,則將所述備用緩存器中存儲的所述第二線程的頁表項中除所述預取緩存器中存儲的頁表項之外的一個頁表項存儲至所述預取緩存器中。
10.一種內存物理地址查詢裝置,其特征在于,包括: 確定模塊,用于根據(jù)預設的線程切換策略,確定未來設定時間內內存尋址操作由第一線程變更為第二線程; 執(zhí)行模塊,用于將備用緩存器中存儲的所述第二線程的頁表項存儲至預取緩存器中,所述備用緩存器中存儲旁路轉換緩存器存儲的頁表緩存TLB中設定時間內未被查詢的頁表項; 接收模塊,接收所述第二線程發(fā)送的內存尋址請求消息,所述內存尋址請求消息中攜帶虛擬地址; 查詢模塊,根據(jù)所述虛擬地址在所述旁路轉換緩存器和所述預取緩存器存儲的頁表項中查詢所述虛擬地址對應的物理地址。
11.根據(jù)權利要求10所述的裝置,其特征在于,所述查詢模塊具體用于: 若所述旁路轉換緩存器中存在與所述虛擬地址對應的第一物理地址,則通過所述第一物理地址訪問內存進行數(shù)據(jù)存??;或者, 若所述旁路轉換緩存器中不存在與所述虛擬地址對應的第一物理地址,且所述預取緩存器中存在與所述虛擬地址對應的第二物理地址,則通過所述第二物理地址訪問所述內存進行數(shù)據(jù)存取。
12.根據(jù)權利要求11所述的裝置,其特征在于,所述查詢模塊還用于: 若所述旁路轉換緩存器中不存在與所述虛擬地址對應的第一物理地址,且所述預取緩存器中不存在與所述虛擬地址對應的第二物理地址,則在所述內存中查找與所述虛擬地址對應的第三物理地址。
13.根據(jù)權利要求11或12所述的裝置,其特征在于,所述查詢模塊還用于: 若所述旁路轉換緩存器中不存在與所述虛擬地址對應的第一物理地址,且所述預取緩存器中存在與所述虛擬地址對應的第二物理地址,則將所述預取緩存器中存儲的所述虛擬地址和所述第二物理地址對應的頁表項存儲至所述旁路轉換緩存器中,并刪除所述預取緩存器中存儲的所述虛擬地址和所述第二物理地址對應的頁表項。
14.根據(jù)權利要求12所述的裝置,其特征在于,所述查詢模塊還用于: 將在內存中查找到的與所述虛擬地址和所述第三物理地址對應的頁表項存儲至所述旁路轉換緩存器中。
15.根據(jù)權利要求10-14任一項所述的裝置,其特征在于,所述執(zhí)行模塊還用于: 在所述將備用緩存器中存儲的所述第二線程的頁表項存儲至預取緩存器中之前,若所述旁路轉換緩存器中存儲的頁表項的數(shù)目超過自身的存儲容量,則將所述旁路轉換緩存器中所述設定時間內未被查詢的頁表項存儲至所述備用緩存器中,并刪除所述旁路轉換緩存器中所述設定時間內未被查詢的頁表項。
16.根據(jù)權利要求15所述的裝置,其特征在于,所述執(zhí)行模塊還用于: 在所述將所述旁路轉換緩存器中所述設定時間內未被查詢的頁表項存儲至所述備用緩存器中之后,若所述備用緩存器中存儲的頁表項的數(shù)目超過自身的存儲容量,則刪除所述備用緩存器中存儲時間最長的頁表項。
17.根據(jù)權利要求10-16任一項所述的裝置,其特征在于,所述執(zhí)行模塊具體用于: 若所述備用緩存器中存儲的所述第二線程的頁表項的數(shù)目小于或等于所述預取緩存器的存儲容量,則將所述備用緩存器中存儲的所有所述第二線程的頁表項存儲至所述預取緩存器中,并覆蓋所述預取緩存器的當前存儲數(shù)據(jù);或者, 若所述備用緩存器中存儲的所述第二線程的頁表項的數(shù)目大于所述預取緩存器的存儲容量,則將所述備用緩存器中存儲的與所述預取緩存器的存儲容量相等數(shù)目的所述第二線程的頁表項存儲至所述預取緩存器中,并覆蓋所述預取緩存器的當前存儲數(shù)據(jù)。
18.根據(jù)權利要求17所述的裝置,其特征在于,所述執(zhí)行模塊還用于: 若所述備用緩存器中存儲的所述第二線程的頁表項的數(shù)目大于所述預取緩存器的存儲容量,且所述旁路轉換緩存器中不存在與所述虛擬地址對應的第一物理地址,所述預取緩存器中存在與所述虛擬地址對應的第二物理地址,則將所述備用緩存器中存儲的所述第二線程的頁表項中除所述預取緩存器中存儲的頁表項之外的一個頁表項存儲至所述預取緩存器中。
19.一種內存物理地址查詢裝置,其特征在于,包括:存儲器、旁路轉換緩存器、備用緩存器、預取緩存器和處理器; 所述存儲器,用于存儲指令; 所述旁路轉換緩存器,用于存儲頁表緩存TLB ; 所述備用緩存器,用于存儲所述旁路轉換緩存器存儲的所述TLB中設定時間內未被查詢的頁表項; 所述預取緩存器,用于存儲所述備用緩存器中存儲的對應線程的頁表項; 所述處理器,用于運行所述存儲器中存儲的所述指令以執(zhí)行如權利要求1至9任一項所述的內存物理地址查詢方法。
【文檔編號】G06F12/08GK104424117SQ201310364417
【公開日】2015年3月18日 申請日期:2013年8月20日 優(yōu)先權日:2013年8月20日
【發(fā)明者】郭旭斌, 侯銳, 馮煜晶, 蘇東鋒 申請人:華為技術有限公司, 中國科學院計算技術研究所