TWI381275B - 位址轉譯方法及裝置 - Google Patents

位址轉譯方法及裝置 Download PDF

Info

Publication number
TWI381275B
TWI381275B TW097104973A TW97104973A TWI381275B TW I381275 B TWI381275 B TW I381275B TW 097104973 A TW097104973 A TW 097104973A TW 97104973 A TW97104973 A TW 97104973A TW I381275 B TWI381275 B TW I381275B
Authority
TW
Taiwan
Prior art keywords
address
memory page
page
memory
physical address
Prior art date
Application number
TW097104973A
Other languages
English (en)
Other versions
TW200842580A (en
Inventor
Brian Joseph Kopec
Victor Roberts Augsburg
James Norris Dieffenderfer
Thomas Andrew Sartorius
Original Assignee
Qualcomm Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Publication of TW200842580A publication Critical patent/TW200842580A/zh
Application granted granted Critical
Publication of TWI381275B publication Critical patent/TWI381275B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/04Addressing variable-length words or parts of words
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/655Same page detection
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

位址轉譯方法及裝置
本發明大體上係關於位址轉譯,且特定言之係關於轉譯形成記憶體頁邊界跨越情況之虛擬位址。
虛擬記憶體為記憶體管理技術,藉此可能將非連續實體記憶體(實體位址空間)作為連續記憶體(處擬位址空間)呈現給過程(軟體)。即使所配置之實體記憶體常常係非依序所組織(乃至在相同媒體中,例如,SDRAM及ROM),但由於其處理連續之虛擬位址空間,因此過程將記憶體視作線性序列。另外,程式通常不知道實體記憶體如何經配置。實情為,處理器或其他設備按照慣例管理虛擬記憶體配置。
記憶體管理將實體記憶體分成多個頁(或區段)且提供虛擬位址至實際實體記憶體頁上之映射,該映射對存取記憶體之過程係透明的。過程僅觀察虛擬位址空間,而實體位址空間為相應資料實際上駐留於記憶體中之處。處理器按照慣例使用位址轉譯將虛擬位址空間映射至實體位址空間上。位址轉譯涉及基於給定虛擬位址查找實體位址。虛擬位址按照慣例被分成至少兩部分:虛擬頁號及頁偏移。虛擬頁號識別虛擬記憶體之特定頁。頁偏移識別頁內之所要區域(或區塊)。
主記憶體中所維持之頁表按照慣例儲存虛擬頁號及相應實體頁號之列表。使用虛擬位址之虛擬頁號部分來搜尋頁 表。若虛擬頁號匹配頁表中之項目,則自表擷取相應實體頁號。否則,頁表錯誤出現。所擷取之實體頁號與頁偏移一起形成用於自記憶體擷取資訊之實體位址。頁號識別實體記憶體之適當頁。頁內之所要記憶體區域隨後使用頁偏移來存取。
為了改良效能,頻繁存取之頁表項目區域地儲存至處理器,例如,轉譯後備緩衝器(TLB)中。TLB可支援單階區域快取記憶體或多個快取記憶體階層,例如,一階指令及資料快取記憶體及第二階快取記憶體。在任何情況下,TLB以與頁表執行之方式大致相同的方式執行位址轉譯。若在使用虛擬頁號之TLB查找期間匹配出現,則相應實體頁號自TLB擷取且與頁偏移提供至實體標記之快取記憶體。若在快取記憶體中實體位址符合,則對應於實體位址之快取列自快取記憶體擷取。否則,更高階之快取記憶體查找可出現。
虛擬記憶體使得程式能夠執行而不需要其全部位址空間駐留於實體記憶體中。因此,程式可使用比實際所需少的實體記憶體來執行。此外,由於每一程式之虛擬位址空間可獨立地映射至專門配置至彼程式之實體記憶體之一或多頁,因此虛擬記憶體使程式相互隔離。又,由於應用程式不對記憶體管理負責,因此簡化應用程式。然而,某些類型之記憶體存取需要額外位址轉譯處理以成功完成。
舉例而言,當未對準記憶體存取出現時,所要字部分地定位於一記憶體列中且部分地定位於另一列中。若兩列配 置至不同記憶體頁,則頁邊界跨越出現。參考記憶體中之跨越兩個記憶體頁之間的邊界之區域的指令按照慣例被複製且以兩部分執行。複製指令之第一頁片基於與第一記憶體頁相關聯的實體位址完成執行,且複製指令之第二頁片基於與第二記憶體頁相關聯的位址完成執行。因此,不同記憶體頁藉由複製指令分別存取。
按照慣例需要多個位址轉譯以獲得與不同記憶體頁相關聯的實體記憶體位址。執行第一位址轉譯以擷取與第一記憶體頁相關聯的實體位址且執行第二位址轉譯以擷取與第二記憶體頁相關聯的實體位址。形成邊界跨越情況之指令所需的額外位址轉譯處理降低處理器效能且增加功率消耗,尤其在需要存取維持於主記憶體中之頁表時。
根據本文中所教示之方法及裝置,處理器內之位址轉譯效能藉由識別引起記憶體中之不同頁之間的邊界跨越之虛擬或實體位址來改良。亦即,若指令將引起亦跨越頁邊界之未對準記憶體存取,則識別指令。當辨識此情況時,與兩個記憶體頁相關聯的位址轉譯資訊鏈接在一起且儲存於處理器內。與兩個頁相關聯的位址轉譯資訊可回應於待隨後存取記憶體中之相同跨頁區域使用單一位址轉譯來獲得。因此,避免多個位址轉譯。
根據處理器之一實施例,該處理器包含經組態以辨識對記憶體中之跨越第一記憶體頁與第二記憶體頁之間的頁邊界之區域之存取的電路。該電路亦經組態以鏈接與第一記 憶體頁及第二記憶體頁相關聯的位址轉譯資訊。因此,回應於對相同記憶體區域之隨後存取,與第一記憶體頁及第二記憶體頁相關聯的位址轉譯資訊可基於單一位址轉譯擷取。
當隨後存取記憶體中之相同區域時,處理器電路辨識相應指令且將由指令所呈現之虛擬位址轉譯為與第一記憶體頁相關聯的實體位址。電路基於將處擬位址鏈接至與第二記憶體頁相關聯的實體位址之先前所建立的資訊來擷取與第二記憶體頁相關聯的實體位址。因此,與第一記憶體頁及第二記憶體頁相關聯的位址轉譯資訊基於單一位址轉譯來擷取。
當然,本發明不限於以上特徵及優點。熟習此項技術者將在閱讀以下實施方式且在觀察隨附圖式後認識到額外特徵及優點。
圖1說明處理器10之實施例,處理器10包括指令單元12、執行單元14、資料及指令快取記憶體16及18、第二階快取記憶體20及匯流排介面單元22。指令單元12將指令流之集中控制提供至執行單元14。執行單元14執行由指令單元12所調度之指令,其包括將資訊載入並儲存於資料快取記憶體16中。資料快取記憶體16及指令快取記憶體18分別儲存資料及指令。L2快取記憶體20在資料快取記憶體16及指令快取記憶體18與在處理器外部之主記憶體(諸如DRAM24)及/或一或多個硬碟驅動機(HDD)26之間提供一高速記 憶體緩衝器。匯流排介面單元22提供用於在處理器10與在處理器外部之設備(諸如周邊裝置28及主記憶體)之間傳遞資料、指令、位址及控制信號之機構。
主記憶體被表示為處理器10上執行之程序的虛擬記憶體。亦即,主記憶體之頁經配置為虛擬記憶體以在程式執行期間由程序來使用。記憶體管理將實體記憶體分成多個頁,且提供虛擬位址至實體記憶體頁上之一映射,其對於存取記憶體之程序為透明的。頁表(未圖示)維持在主記憶體中以用於致能虛擬記憶體位址與實體記憶體位址之間的映射。記憶體管理單元(MMU)30或包括於處理器10中之類似設備將頻繁或最近參考之頁表項目維持在處理器10本地處以用於改良位址轉譯效能。
為此,包括於MMU 30中或與MMU 30相關聯的轉譯後備緩衝器(TLB)32儲存最頻繁或最近存取之頁表項目。位址轉譯由TLB 32在處理器10內本地地執行。若TLB項目匹配給定虛擬頁號,則TLB 32提供相應實體頁號。否則,經由維持於主記憶體中之頁表通常藉由作業系統軟體來執行更高階位址轉譯。包括於MMU 30中或與MMU 30相關聯的跨頁追蹤器34藉由減少經執行以容納跨越記憶體頁邊界之未對準記憶體存取的位址轉譯數目來改良位址轉譯效能。
跨頁追蹤器34儲存與形成頁邊界跨越情況之一或多個虛擬位址或實體位址相關聯的位址轉譯資訊。亦即,若由處理器10所執行之指令參考跨越兩個實體記憶體頁之間的邊界之記憶體區域,則跨頁追蹤器34儲存與第二記憶體頁相 關聯的位址轉譯資訊,例如,識別第二記憶體頁之實體位址或頁號及至虛擬位址之鏈接。由此,若隨後指令參考相同位址,則跨頁追蹤器34能夠辨識位址且提供相應實體位址資訊。因此,TLB 32僅執行一位址轉譯以擷取與第一記憶體頁相關聯的實體頁號。與第二記憶體頁相關聯的實體頁號自跨頁追蹤器34非轉譯地擷取。亦即,與第二記憶體頁相關聯的實體頁號自跨頁追蹤器34擷取,而非必須執行第二位址轉譯。指令基於各別實體位址被複製且以兩部分執行。若指令引起若干快取列在快取記憶體16、20之一者中跨越,則可多次複製指令。
圖2說明跨頁追蹤器34及包括於處理器10中之若干級之負載儲存單元(亦即,執行單元14之一者)的一實施例。根據此實施例,跨頁追蹤器34包含用於儲存與形成頁邊界跨越情況之位址相關聯之位址轉譯資訊的暫存器。或者,跨頁追蹤器34可為具有多個項目之表。總之,跨頁追蹤器34藉由儲存與引起頁邊界跨越之至少一虛擬或實體位址相關聯的位址轉譯資訊來減少位址轉譯處理。
接著參考圖3之程式邏輯及由最初不匹配TLB 32中之任何項目之指令所呈現的虛擬位址來描述跨頁追蹤器34之操作。因而,執行更高階位址轉譯以獲得對應於虛擬位址之實體位址。更詳細地,虛擬位址可包含虛擬頁號及偏移。虛擬頁號識別特定虛擬記憶體頁,而頁偏移識別頁內之位置。由於最初無匹配TLB項目存在於此實例中,因此一階位址轉譯級36指示需要更高階位址轉譯,例如,如由圖3 之區塊100所說明。更高階位址轉譯級38(例如)藉由存取包括於處理器10中之更高階TLB(未圖示)或維持於主記憶體中之頁表來請求虛擬位址之轉譯。總之,最終獲得與虛擬位址相關聯的實體位址。
位址轉譯資訊儲存於TLB項目中,例如,如由圖3之區塊102所說明。由此,在隨後請求相同虛擬位址的情況下,位址轉譯資訊可更易得到。在一實施例中,諸如多工器電路之實體位址選擇級40或知曉虛擬位址之任何其他級亦判定虛擬位址是否轉譯至跨越兩個頁之間的邊界之實體記憶體區域,例如,如由圖3之區塊104所說明。舉例而言,將虛擬位址之頁偏移部分與記憶體頁大小設定相比以判定頁邊界跨越是否將出現。若位址轉譯至位於記憶體單頁內之記憶體區域,則基於所轉譯之實體位址完成指令執行,例如,如由圖3之區塊106所說明。舉例而言,快取存取級42判定資料快取記憶體16或L2快取記憶體20是否含有由實體位址所標記之列,且若不含有,則自外部記憶體擷取由實體位址所標記之列。
然而,若虛擬位址參考橫跨多個記憶體頁之記憶體區域,則指令複製級44複製指令,例如,如由圖3之區塊108所說明。舉例而言,若位址參考具有位於一實體記憶體頁中之四個位元組及位於另一頁中之四個位元組的四倍字,則先前所轉譯之實體位址用於擷取駐留於第一記憶體頁中之四個位元組。為了擷取位於第二記憶體頁中之四個位元組,識別第二頁之實體位址由更高階位址轉譯級38來獲 得,例如,如由圖3之區塊110所說明。所複製指令之第一頁片基於識別第一記憶體頁之實體位址來完成執行,例如,如由圖3之區塊112所說明。所複製指令之第二頁片基於識別第二記憶體頁之實體位址來完成執行,例如,如由圖3之區塊114所說明。寫回級46確保指令執行結果之適當儲存。
由於偵測到頁邊界跨越,因此儲存針對第二記憶體頁獲得之位址轉譯資訊以用於隨後使用。然而,替代將資訊儲存於不同TLB項目中,將其儲存於跨頁追蹤器34之實體位址欄位48中,例如,如由圖3之區塊116所說明。此外,指示值儲存於指示欄位50中。指示值將含有第二頁之位址轉譯資訊之跨頁追蹤器項目鏈接至含有第一頁之位址轉譯資訊之TLB項目。
在一實施例中,指示欄位50儲存含有與第一記憶體頁相關聯的位址轉譯資訊之TLB項目的索引值。在另一實施例中,指示欄位50儲存與第一記憶體頁相關聯的實體位址或頁號。在又一實施例中,指示欄位50儲存形成邊界跨越情況之虛擬位址。熟習此項技術者將易認識到各種值可儲存於指示欄位50中以鏈接實體位址資訊48與相關聯於第一記憶體頁的TLB項目。另外,指令複製級44替代實體位址選擇級40可(例如)藉由識別引起頁邊界跨越之實體位址來識別頁邊界跨越。無論如何,若隨後存取記憶體中之相同區域,則跨頁追蹤器34藉由檢查指示欄位50來辨識邊界跨越情況。作為回應,追蹤器34提供與第二頁相關聯的位址轉 譯資訊。
接著參考圖4之程式邏輯及呈現引起先前所論述之邊界跨越情況之相同虛擬位址的隨後指令來描述跨頁追蹤器34之操作。由於在此實例中TLB 32含有匹配項目,因此與處擬位址相關聯的實體位址或頁號由TLB 32提供,例如,如由圖4之區塊200所說明。實體位址選擇級40判定虛擬位址是否參考記憶體中之跨越頁邊界的區域,例如,如由圖4之區塊202所說明。或者,指令複製級44判定相應實體位址是否引起頁邊界跨越情況。無論如何,若未偵測到邊界跨越情況,則指令基於由TLB 32所提供之實體位址資訊來完成執行,例如,如由圖4之區塊204所說明。
然而,在本實例中,知曉虛擬位址引起在第一記憶體頁與第二記憶體頁之間的頁邊界跨越。因此,如先前所述複製指令,例如,如由圖4之區塊206所說明。另外,檢查跨頁追蹤器34之指示欄位50以判定是否已形成與虛擬位址之鏈接。在一實施例中,將匹配TLB項目索引與儲存於指示欄位50中之一或多個值做比較。在另一實施例中,由TLB32所提供之虛擬位址或相應實體位址(或頁號)與儲存於指示欄位50中之一或多個位址值做比較。
無論如何,儲存於指示欄位50中之資訊指示追蹤器34是否含有所要實體位址資訊。除非有效欄位52指示項目無效,否則自跨頁追蹤器34擷取與第二頁相關聯的實體位址資訊,例如,如由圖4之區塊208所說明。當TLB中之相應項目無效時,有效欄位52指示無效性。
所複製指令之第一頁片基於如由TLB 32所提供之識別第一記憶體頁的實體位址來完成執行,例如,如由圖4之區塊210所說明。所複製指令之第二頁片基於如自跨頁追蹤器34所擷取之識別第二記憶體頁的實體位址來完成執行,例如,如由圖4之區塊212所說明。當跨頁追蹤器34含有用於第二頁之位址轉譯資訊時,電路(未圖示)防止隨後位址轉譯之發生。因此,當跨頁追蹤器34辨識頁邊界跨越情況時僅執行單一位址轉譯。
圖5說明跨頁追蹤器34之另一實施例。根據此實施例,追蹤器34經實施為TLB 32之部分。TLB 32中之每一項目具有有效欄位54、指示欄位56、索引58、標記欄位60及兩個實體位址欄位62及64。標記欄位60儲存實體位址資訊由TLB 32維持之彼等虛擬位址的虛擬位址(或頁號)。因而,在TLB存取期間搜尋標記欄位60以判定匹配給定虛擬位址之記錄是否儲存於TLB 32中。
第一實體位址欄位62含有對應於具有由TLB 32所維持之記錄之每一虛擬位址的實體位址資訊(諸如完整位址或實體頁號)。若知曉特定虛擬位址引起在兩個記憶體頁之間的邊界跨越,則第二實體位址欄位64含有與第二記憶體頁相關聯的實體位址資訊。當相應TLB項目與形成邊界跨越情況之虛擬位址相關聯時,指示欄位56含有鏈接兩個實體位址欄位62及64之一或多個位元。
接著參考由最初不匹配TLB 32中之任何項目之指令所呈現的虛擬位址來描述經實施為TLB 32之部分之跨頁追蹤器 34的操作。執行更高階位址轉譯以獲得對應於虛擬位址之實體位址,例如,如由圖3之區塊100所說明。相應TLB項目中之實體位址欄位62以轉譯結果更新,例如,如由圖3之區塊102所說明。若實體位址選擇級40判定虛擬位址將在記憶體存取期間引起兩個記憶體頁之間的邊界跨越,則執行第二更高階位址轉譯。或者,指令複製級44可基於相應實體位址來偵測頁邊界跨越情況。無論如何,在第二更高階位址轉譯期間獲得識別第二記憶體頁之實體位址,例如,如由圖3之區塊110所說明。由此,兩個頁之實體位址資訊可用於完成指令執行。
如先前所述複製指令且使用兩個實體記憶體位址完成執行,例如,如由圖3之區塊108、112及114所說明。此外,與第二記憶體頁相關聯的實體位址資訊儲存於含有與第一頁相關聯的實體位址資訊之相同TLB項目中,例如,如由圖3之區塊116所說明。亦即,在相同TLB項目中,與第一頁相關聯的實體位址資訊儲存於第一位址欄位62中且與第二頁相關聯的實體位址資訊儲存於第二位址欄位64中。設定TLB項目中之指示欄位56以指示兩個實體位址經鏈接且與形成頁邊界跨越情況之處擬位址相關聯。由此,若隨後指令參考相同虛擬或實體位址,則僅需要單一位址轉譯以獲得與第一記憶體頁及第二記憶體頁相關聯的實體位址資訊。
接著參考存取形成先前所描述之邊界跨越情況之相同虛擬位址的隨後指令來描述經實施為TLB 32之部分之跨頁追 蹤器34之操作。當存取TLB 32時,藉由比較虛擬位址與儲存於TLB 32中之標記值來識別匹配項目,例如,如由圖4之區塊200所說明。在本實例中,知曉虛擬位址引起第一記憶體頁與第二記憶體頁之間的頁邊界跨越。因此,如先前所述複製指令,例如,如由圖4之區塊206所說明。另外,匹配TLB項目之第一位址欄位62提供與第一記憶體頁相關聯的實體位址資訊。所複製指令之第一頁片的執行基於自第一位址欄位62所獲得之實體位址資訊來完成,例如,如由圖4之區塊210所說明。
此外,匹配TLB項目中之指示欄位56指示第一實體位址欄位62及第二實體位址欄位64經鏈接。因此,擷取儲存於第二位址欄位64中之實體位址資訊,例如,如由圖4之區塊208所說明。自第二位址欄位64擷取之實體位址資訊識別第二記憶體頁。所複製指令之第二頁片的執行基於自第二位址欄位64所獲得之實體位址資訊來完成,例如,如由圖4之區塊212所說明。由此,在隨後指令之執行期間僅執行單一位址轉譯。
如先前所述,若有效欄位54指示TLB項目無效,則不執行位址轉譯,且更高階位址轉譯級38獲得必要實體位址,例如,如由圖3之區塊100及110所說明。另外,指示欄位56亦可回應於影響正更新之位址轉譯或正覆寫之TLB項目的架構暫存器指示兩個記憶體頁之間的鏈接無效。當遇到無效跨頁鏈接時,不使用與鏈接頁相關聯的位址轉譯資訊。實情為,執行隨後位址轉譯。
藉由記住以上範圍之變化及應用,應瞭解本發明不受以上描述限制,亦不受隨附圖式限制。實情為,本發明僅由以下申請專利範圍及其法定均等物來限制。
10‧‧‧處理器
12‧‧‧指令單元
14‧‧‧執行單元
16‧‧‧資料快取記憶體
18‧‧‧指令快取記憶體
20‧‧‧L2快取記憶體
22‧‧‧匯流排介面單元
24‧‧‧DRAM
26‧‧‧硬碟驅動機(HDD)
28‧‧‧周邊裝置
30‧‧‧記憶體管理單元(MMU)
32‧‧‧轉譯後備緩衝器(TLB)
34‧‧‧跨頁追蹤器
36‧‧‧一階位址轉譯級
38‧‧‧更高階位址轉譯級
40‧‧‧實體位址選擇級
42‧‧‧快取存取級
44‧‧‧指令複製級
46‧‧‧寫回級
48‧‧‧實體位址欄位
50‧‧‧指示欄位
52‧‧‧有效欄位
54‧‧‧有效欄位
56‧‧‧指示欄位
58‧‧‧索引
60‧‧‧標記欄位
62‧‧‧第一實體位址欄位
64‧‧‧第二實體位址欄位
圖1為說明具有用於在位址轉譯期間追蹤頁邊界跨越之電路之處理器的實施例之方塊圖。
圖2為說明圖1之跨頁追蹤電路之一實施例的方塊圖。
圖3為說明用於將位址轉譯資訊儲存於圖1之跨頁追蹤電路中之程式邏輯之一實施例的邏輯流程圖。
圖4為說明用於自圖1之跨頁追蹤電路擷取位址轉譯資訊之程式邏輯之一實施例的邏輯流程圖。
圖5為說明圖1之跨頁追蹤電路之另一實施例的方塊圖。
10‧‧‧處理器
12‧‧‧指令單元
14‧‧‧執行單元
16‧‧‧資料快取記憶體
18‧‧‧指令快取記憶體
20‧‧‧L2快取記憶體
22‧‧‧匯流排介面單元
24‧‧‧DRAM
26‧‧‧硬碟驅動機(HDD)
28‧‧‧周邊裝置
30‧‧‧記憶體管理單元(MMU)
32‧‧‧轉譯後備緩衝器(TLB)
34‧‧‧跨頁追蹤器

Claims (18)

  1. 一種在一處理器中處理一未對準記憶體存取的方法,其包含:藉由一指令辨識對記憶體中之跨越第一記憶體頁與第二記憶體頁之間的一頁邊界之一區域的一存取;將由該指令所呈現之一虛擬位址轉譯為一與該第一記憶體頁相關聯的第一實體位址以及轉譯為一與該第二記憶體頁相關聯的第二實體位址;鏈接與該第一記憶體頁及該第二記憶體頁相關聯的位址轉譯資訊,該鏈接位址轉譯資訊包含:將該第一實體位址儲存於一轉譯後備緩衝器中;將該第二實體位址儲存於一鏈接至該虛擬位置之緩衝器中;其中回應於對記憶體中之相同區域的一隨後存取,與該第一記憶體頁及該第二記憶體頁相關聯的該位址轉譯資訊可基於一單一位址轉譯而擷取。
  2. 如請求項1之方法,其進一步包含複製該指令,其中該指令之執行係基於與該第一記憶體頁相關聯的該第一實體位址來完成,且該複製指令之執行係基於與該第二記憶體頁相關聯的該第二實體位址來完成。
  3. 如請求項1之方法,其中將該轉譯後備緩衝器項目鏈接至與該第二記憶體頁相關聯的實體位址資訊包含:將與該第一記憶體頁相關聯的該虛擬位址及該第一實體位址以及與該第二記憶體頁相關聯的該第二實體位址 儲存於該轉譯後備緩衝器項目中;及設定該轉譯後備緩衝器項目中之一或多個位元以用於指示經引起該頁邊界跨越之與該第一記憶體頁相關聯的一虛擬位址。
  4. 如請求項1之方法,其進一步包含中斷與該第一記憶體頁及該第二記憶體頁相關聯的該位址轉譯資訊之間的該鏈接。
  5. 如請求項4之方法,其中中斷該鏈接包含使將與該第二記憶體頁相關聯的實體位址資訊鏈接至與該第一記憶體頁相關聯的虛擬位址資訊之資訊無效。
  6. 一種處理器,其包含經組態以進行以下各項之電路:藉由一指令辨識對跨越第一記憶體頁與第二記憶體頁之間的一頁邊界之一記憶體區域的一存取;將由該指令所呈現之一虛擬位址轉譯為一與該第一記憶體頁相關聯的第一實體位址以及轉譯為一與該第二記憶體頁相關聯的第二實體位址;鏈接與該第一記憶體頁及該第二記憶體頁相關聯的位址轉譯資訊,該位址轉譯資訊包含:在一轉譯後備緩衝器中之該第一實體位址之儲存;鏈接至該虛擬位址之一緩衝器中之該第二實體位址之儲存;其中回應於對相同記憶體區域之一隨後存取,與該第一記憶體頁及該第二記憶體頁相關聯的該位址轉譯資訊可基於一單一位址轉譯而擷取。
  7. 如請求項6之處理器,其中該電路進一步經組態以複製該指令,其中該指令之執行係基於與該第一記憶體頁相關聯的該第一實體位址來完成,且該複製指令之執行係基於與該第二記憶體頁相關聯的該第二實體位址來完成。
  8. 如請求項6之處理器,其中該電路經組態以將與該第一記憶體頁相關聯的該虛擬位址及該第一實體位址以及與該第二記憶體頁相關聯的該第二實體位址儲存於該轉譯後備緩衝器項目中,且設定該轉譯後備緩衝器項目中之一或多個位元以用於指示經引起該頁邊界跨越之與該第一記憶體頁相關聯的一虛擬位址。
  9. 如請求項6之處理器,其中該電路進一步經組態以中斷與該第一記憶體頁及該第二記憶體頁相關聯的該位址轉譯資訊之間的該鏈接。
  10. 如請求項9之處理器,其中該電路經組態以使將與該第二記憶體頁相關聯的實體位址資訊鏈接至與該第一記憶體頁相關聯的虛擬位址資訊之資訊無效。
  11. 一種在一處理器中執行位址轉譯之方法,其包含:辨識存取記憶體中之跨越第一記憶體頁與第二記憶體頁之間的一頁邊界之一區域的一指令;將由該指令所呈現之一虛擬位址轉譯為與該第一記憶體頁相關聯的一第一實體位址,且轉譯為與該第二記憶體頁相關聯的一第二實體位址;將該第一實體位址儲存在一轉譯後備緩衝器中; 將該第二實體位址儲存於鏈接至該虛擬位址之一緩衝器中;複製該指令,其中該經複製指令執行存取資料係基於沒有該虛擬位址之轉譯之該第二實體位址。
  12. 如請求項11之方法,其中轉譯該虛擬位址包含:識別對應於該虛擬位址之一轉譯後備緩衝器項目;及自該轉譯後備緩衝器項目擷取與該第一記憶體頁相關聯的該第一實體位址。
  13. 如請求項12之方法,其中擷取與該第二記憶體頁相關聯的該第二實體位址包含:判定該轉譯後備緩衝器項目中之一或多個位元是否指示該第一記憶體頁與該第二記憶體頁之間的一鏈接;及回應於指示該第一記憶體頁與該第二記憶體頁之間的一鏈接之該一或多個位元而自含有與該第一記憶體頁相關聯的該第一實體位址之該轉譯後備緩衝器項目擷取位址轉譯資訊。
  14. 一種處理器,其包含經組態以進行以下各項之電路:辨識經組態以存取記憶體中之跨越第一記憶體頁與第二記憶體頁之間的一頁邊界之一區域的一指令;將由該指令所呈現之一虛擬位址轉譯為與該第一記憶體頁相關聯的一第一實體位址,且轉譯為與該第二記憶體頁相關聯的一第二實體位址;將該第一實體位址儲存在一轉譯後備緩衝器中;將該第二實體位址儲存於鏈接至該虛擬位址之一緩衝 器中;複製該指令,其中該經複製指令執行存取資料係基於沒有該虛擬位址之轉譯之該第二實體位址。
  15. 如請求項14之處理器,其中該電路進一步經組態以複製該指令,其中該指令之執行係基於與該第一記憶體頁相關聯的該實體位址來完成,且該複製指令之執行係基於與該第二記憶體頁相關聯的該實體位址來完成。
  16. 如請求項14之處理器,其中該電路經組態以識別對應於該虛擬位址之一轉譯後備緩衝器項目,且自該轉譯後備緩衝器項目擷取與該第一記憶體頁相關聯的該實體位址。
  17. 如請求項16之處理器,其中該電路經組態以判定該轉譯後備緩衝器項目中之一或多個位元是否指示該第一記憶體頁與該第二記憶體頁之間的一鏈接,且回應於指示該第一記憶體頁與該第二記憶體頁之間的一鏈接之該一或多個位元而自含有與該第一記憶體頁相關聯的該第一實體位址之該轉譯後備緩衝器項目擷取位址轉譯資訊。
  18. 一種處理器,其包含電路,其包括:用於辨識經組態以存取記憶體中之跨越第一記憶體頁與第二記憶體頁之間的一頁邊界之一區域之構件;用於將由該指令所呈現之一虛擬位址轉譯為與該第一記憶體頁相關聯的一第一實體位址且轉譯為與該第二記憶體頁相關聯的一第二實體位址之構件;用於將該第一實體位址儲存在一轉譯後備緩衝器中之 構件;用於將該第二實體位址儲存於鏈接至該虛擬位址之一緩衝器中之構件;用於複製該指令之構件,其中該經複製指令執行存取資料係基於沒有該虛擬位址之轉譯之該第二實體位址。
TW097104973A 2007-02-07 2008-02-12 位址轉譯方法及裝置 TWI381275B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US11/672,066 US8239657B2 (en) 2007-02-07 2007-02-07 Address translation method and apparatus

Publications (2)

Publication Number Publication Date
TW200842580A TW200842580A (en) 2008-11-01
TWI381275B true TWI381275B (zh) 2013-01-01

Family

ID=39495104

Family Applications (1)

Application Number Title Priority Date Filing Date
TW097104973A TWI381275B (zh) 2007-02-07 2008-02-12 位址轉譯方法及裝置

Country Status (12)

Country Link
US (1) US8239657B2 (zh)
EP (1) EP2118753B1 (zh)
JP (2) JP2010518519A (zh)
KR (1) KR101057526B1 (zh)
CN (1) CN101606134B (zh)
BR (1) BRPI0806994A2 (zh)
CA (1) CA2675702A1 (zh)
IN (1) IN2014MN01739A (zh)
MX (1) MX2009007982A (zh)
RU (1) RU2461870C2 (zh)
TW (1) TWI381275B (zh)
WO (1) WO2008098140A1 (zh)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8626989B2 (en) * 2011-02-02 2014-01-07 Micron Technology, Inc. Control arrangements and methods for accessing block oriented nonvolatile memory
WO2013085518A1 (en) * 2011-12-08 2013-06-13 Intel Corporation A method, apparatus, and system for efficiently handling multiple virtual address mappings during transactional execution
US9460018B2 (en) 2012-05-09 2016-10-04 Qualcomm Incorporated Method and apparatus for tracking extra data permissions in an instruction cache
RU2504000C1 (ru) * 2012-07-20 2014-01-10 Открытое акционерное общество "КОНСТРУКТОРСКОЕ БЮРО "КОРУНД-М" (ОАО КБ "КОРУНД-М") Способ копирования данных в кэш-памяти и устройство для его осуществления
US8819342B2 (en) 2012-09-26 2014-08-26 Qualcomm Incorporated Methods and apparatus for managing page crossing instructions with different cacheability
US9348757B2 (en) 2012-10-08 2016-05-24 International Business Machines Corporation System supporting multiple partitions with differing translation formats
US9355040B2 (en) 2012-10-08 2016-05-31 International Business Machines Corporation Adjunct component to provide full virtualization using paravirtualized hypervisors
US9600419B2 (en) 2012-10-08 2017-03-21 International Business Machines Corporation Selectable address translation mechanisms
US9280488B2 (en) 2012-10-08 2016-03-08 International Business Machines Corporation Asymmetric co-existent address translation structure formats
US9740624B2 (en) 2012-10-08 2017-08-22 International Business Machines Corporation Selectable address translation mechanisms within a partition
US9355032B2 (en) 2012-10-08 2016-05-31 International Business Machines Corporation Supporting multiple types of guests by a hypervisor
US9804969B2 (en) 2012-12-20 2017-10-31 Qualcomm Incorporated Speculative addressing using a virtual address-to-physical address page crossing buffer
KR102002900B1 (ko) 2013-01-07 2019-07-23 삼성전자 주식회사 메모리 관리 유닛을 포함하는 시스템 온 칩 및 그 메모리 주소 변환 방법
US20140310500A1 (en) * 2013-04-11 2014-10-16 Advanced Micro Devices, Inc. Page cross misalign buffer
US9632948B2 (en) * 2014-09-23 2017-04-25 Intel Corporation Multi-source address translation service (ATS) with a single ATS resource
US11442760B2 (en) 2016-07-01 2022-09-13 Intel Corporation Aperture access processors, methods, systems, and instructions
US11106596B2 (en) * 2016-12-23 2021-08-31 Advanced Micro Devices, Inc. Configurable skewed associativity in a translation lookaside buffer
US20190163642A1 (en) 2017-11-27 2019-05-30 Intel Corporation Management of the untranslated to translated code steering logic in a dynamic binary translation based processor

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5060137A (en) * 1985-06-28 1991-10-22 Hewlett-Packard Company Explicit instructions for control of translation lookaside buffers
US5765022A (en) * 1995-09-29 1998-06-09 International Business Machines Corporation System for transferring data from a source device to a target device in which the address of data movement engine is determined
US5784707A (en) * 1994-01-12 1998-07-21 Sun Microsystems, Inc. Method and apparatus for managing virtual computer memory with multiple page sizes
TW200619934A (en) * 2004-09-30 2006-06-16 Intel Corp Caching support for direct memory access address translation
TW200627270A (en) * 2004-09-30 2006-08-01 Intel Corp Fault processing for direct memory access address translation

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5768575A (en) * 1989-02-24 1998-06-16 Advanced Micro Devices, Inc. Semi-Autonomous RISC pipelines for overlapped execution of RISC-like instructions within the multiple superscalar execution units of a processor having distributed pipeline control for sepculative and out-of-order execution of complex instructions
JPH05298186A (ja) * 1992-04-20 1993-11-12 Nec Corp 情報処理装置
US5734881A (en) * 1995-12-15 1998-03-31 Cyrix Corporation Detecting short branches in a prefetch buffer using target location information in a branch target cache
JP2000010863A (ja) * 1998-06-24 2000-01-14 Sony Computer Entertainment Inc 情報処理装置および方法、並びに提供媒体
US6681311B2 (en) * 2001-07-18 2004-01-20 Ip-First, Llc Translation lookaside buffer that caches memory type information
US7363474B2 (en) 2001-12-31 2008-04-22 Intel Corporation Method and apparatus for suspending execution of a thread until a specified memory access occurs
CN100495319C (zh) * 2003-12-23 2009-06-03 凌阳科技股份有限公司 处理器中读取未对齐资料的方法与装置
US20060174066A1 (en) * 2005-02-03 2006-08-03 Bridges Jeffrey T Fractional-word writable architected register for direct accumulation of misaligned data
US7366869B2 (en) * 2005-03-17 2008-04-29 Qualcomm Incorporated Method and system for optimizing translation lookaside buffer entries
US20060248279A1 (en) * 2005-05-02 2006-11-02 Al-Sukhni Hassan F Prefetching across a page boundary
US7404042B2 (en) * 2005-05-18 2008-07-22 Qualcomm Incorporated Handling cache miss in an instruction crossing a cache line boundary

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5060137A (en) * 1985-06-28 1991-10-22 Hewlett-Packard Company Explicit instructions for control of translation lookaside buffers
US5784707A (en) * 1994-01-12 1998-07-21 Sun Microsystems, Inc. Method and apparatus for managing virtual computer memory with multiple page sizes
US5765022A (en) * 1995-09-29 1998-06-09 International Business Machines Corporation System for transferring data from a source device to a target device in which the address of data movement engine is determined
TW200619934A (en) * 2004-09-30 2006-06-16 Intel Corp Caching support for direct memory access address translation
TW200627270A (en) * 2004-09-30 2006-08-01 Intel Corp Fault processing for direct memory access address translation

Also Published As

Publication number Publication date
JP5373173B2 (ja) 2013-12-18
MX2009007982A (es) 2009-08-07
US20080189506A1 (en) 2008-08-07
CN101606134A (zh) 2009-12-16
RU2461870C2 (ru) 2012-09-20
WO2008098140A1 (en) 2008-08-14
JP2010518519A (ja) 2010-05-27
RU2009133295A (ru) 2011-03-20
IN2014MN01739A (zh) 2015-07-03
EP2118753A1 (en) 2009-11-18
BRPI0806994A2 (pt) 2014-04-08
TW200842580A (en) 2008-11-01
JP2013065325A (ja) 2013-04-11
US8239657B2 (en) 2012-08-07
KR20090117798A (ko) 2009-11-12
EP2118753B1 (en) 2013-07-10
CN101606134B (zh) 2013-09-18
KR101057526B1 (ko) 2011-08-17
CA2675702A1 (en) 2008-08-14

Similar Documents

Publication Publication Date Title
TWI381275B (zh) 位址轉譯方法及裝置
US10191853B2 (en) Apparatus and method for maintaining address translation data within an address translation cache
JP5628404B2 (ja) キャッシュされたメモリデータを伴うキャッシュメモリ属性インジケータ
EP0851357B1 (en) Method and apparatus for preloading different default address translation attributes
US7426626B2 (en) TLB lock indicator
US9465748B2 (en) Instruction fetch translation lookaside buffer management to support host and guest O/S translations
US7472253B1 (en) System and method for managing table lookaside buffer performance
US9086987B2 (en) Detection of conflicts between transactions and page shootdowns
US10083126B2 (en) Apparatus and method for avoiding conflicting entries in a storage structure
TW201042455A (en) Method of providing extended memory protection
JP4673584B2 (ja) キャッシュメモリ装置、演算処理装置及びキャッシュメモリ装置の制御方法
TW201617886A (zh) 指令快取記憶體轉譯管理
US10545879B2 (en) Apparatus and method for handling access requests
US9996474B2 (en) Multiple stage memory management
US7472227B2 (en) Invalidating multiple address cache entries
US9086986B2 (en) Detection of conflicts between transactions and page shootdowns
US7549035B1 (en) System and method for reference and modification tracking
US6574698B1 (en) Method and system for accessing a cache memory within a data processing system
US7971002B1 (en) Maintaining instruction coherency in a translation-based computer system architecture
US7546439B1 (en) System and method for managing copy-on-write faults and change-protection
MX2008005091A (en) Caching memory attribute indicators with cached memory data

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees