用于在某些情況下當執(zhí)行硬件表移動(hwtw)時防止對寄存器的內(nèi)容進行未授權(quán)的存取的 ...的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計算機系統(tǒng),而更具體地說,涉及一種用于在某些情況下防止對在硬件表移動(HffTW)期間已經(jīng)被加載到寄存器中的物理內(nèi)存地址的內(nèi)容進行未授權(quán)的存取的方法和裝置。
【背景技術(shù)】
[0002]現(xiàn)代計算機系統(tǒng)使用內(nèi)存管理單元(MMU)來管理向一個或多個物理存儲設(shè)備(諸如例如固態(tài)存儲設(shè)備)寫數(shù)據(jù)以及從一個或多個物理存儲設(shè)備讀取數(shù)據(jù)。計算機系統(tǒng)的MMU向計算機系統(tǒng)的中央處理單元(CPU)提供虛擬內(nèi)存,其允許CPU在其自己專用的、連續(xù)的虛擬內(nèi)存地址空間上運行每一個應(yīng)用程序,而不是使所有的應(yīng)用程序共享物理內(nèi)存地址空間,所述物理內(nèi)存地址空間經(jīng)常是成碎片的或非連續(xù)的。MMU的目的是針對CPU將虛擬內(nèi)存地址(VA)轉(zhuǎn)化成物理內(nèi)存地址(PA)。CPU通過直接地對MMU讀和寫VA來間接地讀和寫PA,所述MMU將VA轉(zhuǎn)化成PA,并且然后寫或讀PA。
[0003]為了執(zhí)行該轉(zhuǎn)化,MMU存取被存儲在系統(tǒng)主存儲器中的頁表。該頁表由頁表的條目組成。該頁表的條目是由MMU使用來將VA映射成PA的信息。MMU通常包括轉(zhuǎn)換旁路緩沖器(TLB),其是被用于緩存最近使用的映射的高速緩沖存儲器單元。當MMU需要將VA轉(zhuǎn)化成PA時,MMU首先檢查TLB以確定是否存在針對該VA的匹配。如果有,則MMU使用在TLB中找到的映射來計算PA,并且然后存取PA(即,讀或?qū)慞A)。這被稱為TLB “命中”。如果MMU沒有在TLB中找到匹配,則這被稱為TLB “未中”。
[0004]在TLB未中事件中,MMU執(zhí)行被稱為硬件表移動(HffTW)的操作。HffTW是耗時的且計算上開銷很高的過程,所述過程涉及執(zhí)行“表移動”,以在MMU中查找相應(yīng)的頁表,并且在頁表中讀取多個位置,以查找相應(yīng)的VA-至-PA的地址映射。然后,MMU使用該映射來計算相應(yīng)的PA,并且將該映射寫回到TLB。
[0005]在實現(xiàn)操作系統(tǒng)(OS)虛擬化的計算機系統(tǒng)中,將虛擬內(nèi)存監(jiān)視器(VMM)(通常還被稱為系統(tǒng)管理程序)插入到計算機系統(tǒng)的硬件與計算機系統(tǒng)的系統(tǒng)OS之間。系統(tǒng)管理程序在特權(quán)模式下執(zhí)行,并且能夠主管一個或多個客戶高級OS。在這樣的系統(tǒng)中,運行在OS上的應(yīng)用程序使用虛擬內(nèi)存的第一層的VA來對內(nèi)存尋址,以及運行在系統(tǒng)管理程序上的OS使用虛擬內(nèi)存的第二層的中間物理地址(IPA)來對內(nèi)存尋址。在MMU中,執(zhí)行階段I (SI)轉(zhuǎn)化,以將每一個VA轉(zhuǎn)化成IPA,以及執(zhí)行階段2 (S2)轉(zhuǎn)化,以將每一個IPA轉(zhuǎn)化成PA0
[0006]如果在執(zhí)行這樣的轉(zhuǎn)化時發(fā)生TLB未中,則執(zhí)行多級的、二維(2-D)的HWTW,以獲得計算相應(yīng)的IPA和PA需要的表條目。執(zhí)行這些多級的、2-D的HWTW,能夠引起MMU的大量計算開銷,其通常導(dǎo)致性能代償。
[0007]圖1是當執(zhí)行讀事務(wù)時發(fā)生TLB未中時執(zhí)行已知的、三級的、2-D的HffTW的插圖。圖1中示出的HffTW表示針對三級的、2-D的HffTW的最壞情況的場景,需要十五次表查找的執(zhí)行來在數(shù)據(jù)被存儲在物理內(nèi)存中的地方獲得PA。針對這個示例,計算機系統(tǒng)的MMU正在運行主管至少一個客戶高級OS(HLOS)的系統(tǒng)管理程序,繼而,其正運行至少一個應(yīng)用程序。在這樣的配置中,正被客戶HLOS分配的內(nèi)存不是系統(tǒng)的真實的物理內(nèi)存,而是上述的中間物理內(nèi)存。系統(tǒng)管理程序分配真實的物理內(nèi)存。因此,將每一個VA轉(zhuǎn)化成IPA,然后,將IPA轉(zhuǎn)化成讀取的數(shù)據(jù)實際被存儲的地方的真實物理內(nèi)存的PA。
[0008]該過程開始于MMU接收SI頁全局目錄(P⑶)IPA 2。針對這個最壞情況場景的示例,將假設(shè)的是,在MMU針對匹配檢查TLB時發(fā)生TLB未中。因為該未中,MMU必須執(zhí)行HWTW。HffTW涉及執(zhí)行三次S2表查找3、4和5,以獲得將IPA 2轉(zhuǎn)變成PA所需的映射,以及一次額外的查找6來讀取PA。表查找3、4和5分別涉及讀取S2 P⑶、頁中間目錄(PMD)和頁表條目(PTE)。在查找6處讀取PA為MMU提供SI PMD IPA 7。針對這個最壞情況場景的示例,將假設(shè)的是,當MMU針對匹配利用SI PMD IPA 7來檢查TLB時發(fā)生TLB未中。因為該文中,所以MMU必須執(zhí)行另一 HWTW。該HffTW涉及執(zhí)行三次S2表查找8、9和11,以獲得將SI PMD IPA 7轉(zhuǎn)變成PA所需的映射,以及一次額外的查找12來讀取PA。表查找8、9和11分別涉及讀取S2 P⑶、PMD和PTE。在查找12處讀取PA為MMU提供SI PET IPA 13。
[0009]針對這個最壞情況場景的示例,將假設(shè)的是,當MMU針對匹配利用SI PTE IPA 13來檢查TLB時發(fā)生TLB未中。因為該未中,MMU必須執(zhí)行另一 HWTW。該HffTW涉及執(zhí)行三次S2表查找14、15和16,以獲得將SI PTE IPA 13轉(zhuǎn)變成PA所需的映射,以及一次額外的查找17來讀取PA。表查找14、15和16分別涉及讀取S2 PGff,PMD和PTE。在查找17處讀取PA為MMU提供真實的IPA 18。針對這個最壞情況場景的示例,將假設(shè)的是,當MMU針對匹配利用真實的IPA 18來檢查TLB時發(fā)生TLB未中。因為該未中,MMU必須執(zhí)行另一 HWTW。該HffTW涉及執(zhí)行三次S2表查找19、21和22,以獲得將真實的IPA 18轉(zhuǎn)變成PA所需的映射。表查找19、21和22分別涉及讀取S2 P⑶、PMD和PTE。然后,讀取PA來獲得相應(yīng)的讀數(shù)據(jù)。在查找18處讀取PA為MMU提供SI PTE IPA 13。
[0010]因此,能夠看出的是,在針對三級的、2-D的HffTW的最壞情況場景下,執(zhí)行了 12次S2表查找和三次SI表查找,其是消耗大量時間并導(dǎo)致性能代償?shù)拇罅坑嬎汩_銷。已經(jīng)使用各種各樣的技術(shù)和架構(gòu)來降低在執(zhí)行HffTW中涉及的時間和處理開銷的量,包括,例如,增加TLB的大小,使用多個TLB,使用平面嵌套的頁表,使用影子分頁或推測的影子分頁,以及使用頁移動高速緩沖存儲器。雖然所有的這些技術(shù)和架構(gòu)能夠降低與執(zhí)行HffTW相關(guān)聯(lián)的處理開銷,但是,它們經(jīng)常導(dǎo)致計算機系統(tǒng)中別的地方的處理開銷的增加。
[0011]因此,存在針對降低執(zhí)行HffTW需要的時間和計算資源的量的計算機系統(tǒng)和方法的需求。還存在針對用于防止對在HffTW期間已經(jīng)被加載到TLB中的PA的內(nèi)容進行未授權(quán)的存取的方法和裝置的需求。
【發(fā)明內(nèi)容】
[0012]本發(fā)明針對一種用于防止對在執(zhí)行HffTW期間已經(jīng)被加載到計算機系統(tǒng)的存儲元件中的PA的內(nèi)容進行未授權(quán)的存取的安全裝置和方法。該安全裝置和方法檢測某些條件,以確定是否應(yīng)當防止對該內(nèi)容進行存取,包括檢測是否使用預(yù)測算法來基于PA預(yù)測VA。
[0013]該裝置包括安全邏輯單元,其被配置為如果當針對PA的內(nèi)容檢查TLB時發(fā)生未中,則確定預(yù)測算法當前是否被啟用,其中該預(yù)測算法將PA作為IPA的函數(shù)進行預(yù)測。該安全邏輯單元被配置為當預(yù)測算法當前被啟用時,防止存儲元件的內(nèi)容被無特權(quán)的實體存取。
[0014]該方法包括:
[0015]提供安全邏輯單元;
[0016]如果當針對PA的內(nèi)容檢查TLB時發(fā)生未中,則利用安全邏輯單元確定預(yù)測算法當前是否被啟用,所述預(yù)測算法將PA作為IPA的函數(shù)進行預(yù)測;以及
[0017]如果安全邏輯單元確定預(yù)測算法當前被啟用,則安全邏輯單元防止存儲元件的內(nèi)容被無特權(quán)的實體存取。
[0018]本發(fā)明還針對非暫時性計算機可讀介質(zhì)(CRM),其具有存儲于其上以由計算機系統(tǒng)的一個或多個處理器執(zhí)行的用于防止對在執(zhí)行HffTW期間已經(jīng)被加載到計算機系統(tǒng)的存儲元件中的PA的內(nèi)容進行未授權(quán)的存取的計算機代碼。該計算機代碼包括第一計算機代碼部分和第二計算機代碼部分。如果當針對PA的內(nèi)容檢查TLB時發(fā)生未中,則第一計算機代碼部分確定預(yù)測算法當前是否被啟用,所述預(yù)測算法將PA作為IPA的函數(shù)進行預(yù)測。如果第一計算機代碼部分確定預(yù)測算法當前被啟用,則第二計算機代碼部分防止存儲元件的內(nèi)容被無特權(quán)的實體存取。
[0019]根據(jù)下面的描述、附圖和權(quán)利要求,這些和其它特征和優(yōu)點將變得顯而易見。
【附圖說明】
[0020]圖1是根據(jù)本發(fā)明的說明性的實施例的計算機系統(tǒng)的框圖。
[0021]圖2示出了根據(jù)被配置為執(zhí)行用于降低執(zhí)行HffTW需要的時間和計算資源的量的方法的說明性的、或示例性的實施例的計算機系統(tǒng)的框圖。
[0022]圖3是根據(jù)說明性的實施例來表示被圖2中示出的系統(tǒng)管理程序執(zhí)行的、以降低執(zhí)行HffTW讀事務(wù)需要的時間和處理開銷的量的方法的流程圖。
[0023]圖4是根據(jù)說明性的實施例來展示在其中使用由圖3中示出的流程圖表示的方法來執(zhí)行HffTW讀事務(wù)的方式的示意圖。
[0024]圖5是根據(jù)說明性的實施例執(zhí)行由圖3中示出的流程圖表示的方法的硬件預(yù)測器的框圖。
[0025]圖6示出在其中并入了圖2中示出的計算機系統(tǒng)的移動智能手機的框圖。
[0026]圖7是根據(jù)說明性的實施例用于當圖5中示出的預(yù)測器被啟用時執(zhí)行防止對已經(jīng)被加載到TLB中的寄存器中的PA的內(nèi)容進行未授權(quán)的存取的安全算法的安全邏輯單元的框圖。
[0027]圖8是根據(jù)說明性的實施例描述由圖7中示出的安全邏輯單元執(zhí)行的過程的流程圖。
【具體實施方式】
[0028]根據(jù)本文描述的說明性實施例,提供了一種計算機系統(tǒng)和一種供在計算機系統(tǒng)中使用的方法,用于降低執(zhí)行HffTW需要的時間和計算資源的量。如果當執(zhí)行S2HWTW以查找存儲SI頁表的PA時發(fā)生TLB未中,則MMU執(zhí)行使用IPA來預(yù)測相應(yīng)的PA的預(yù)測算法,由此避免執(zhí)行S2表格查找中的任一個的需求。這極大地降低了當執(zhí)行這些類型的HffTW讀事務(wù)時需要被執(zhí)行的查找的數(shù)量,其極大地降低了與執(zhí)行這些類型的事務(wù)相關(guān)聯(lián)的處理開銷和性能代償。
[0029]此外,提供了用于執(zhí)行防止對由于啟用預(yù)測算法而已經(jīng)被加載到存儲元件(例如,TLB的寄存器)中