TWI801567B - 虛擬位址至實體位址之轉譯 - Google Patents

虛擬位址至實體位址之轉譯 Download PDF

Info

Publication number
TWI801567B
TWI801567B TW108114603A TW108114603A TWI801567B TW I801567 B TWI801567 B TW I801567B TW 108114603 A TW108114603 A TW 108114603A TW 108114603 A TW108114603 A TW 108114603A TW I801567 B TWI801567 B TW I801567B
Authority
TW
Taiwan
Prior art keywords
translation
virtual address
tlbi
signal
page table
Prior art date
Application number
TW108114603A
Other languages
English (en)
Other versions
TW201945938A (zh
Inventor
傑森 諾曼
皮尤士 派泰爾
拉凱希 安尼根地
愛布朗沙 摩 阿布杜爾 撒妲楊 葛豪斯 漢尼 撒妲楊
Original Assignee
美商高通公司
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 美商高通公司 filed Critical 美商高通公司
Publication of TW201945938A publication Critical patent/TW201945938A/zh
Application granted granted Critical
Publication of TWI801567B publication Critical patent/TWI801567B/zh

Links

Images

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
    • 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
    • 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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0808Multiuser, multiprocessor or multiprocessing cache systems with cache invalidating means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/68Details of translation look-aside buffer [TLB]
    • G06F2212/682Multiprocessor TLB consistency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/68Details of translation look-aside buffer [TLB]
    • G06F2212/683Invalidation

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)
  • Multi Processors (AREA)

Abstract

本發明揭示一種記憶體管理單元(MMU)。該MMU經組態以:自一處理系統接收一轉譯請求,其中該轉譯請求指定一待轉譯虛擬位址;搜尋儲存於一實體記憶體系統中之一頁表中用於指定該虛擬位址之一頁表條目;自該處理系統接收一轉譯後備緩衝器失效(TLBI)信號,其中該TLBI信號指定該虛擬位址;回應於接收指定該虛擬位址之該TLBI信號,使一轉譯後備緩衝器(TLB)中之TLB條目失效,其中該失效TLB條目指定該虛擬位址;且重啟對該頁表中指定該虛擬位址之該頁表條目的該搜尋。

Description

虛擬位址至實體位址之轉譯
本發明之態樣大體上係關於快取記憶體,且更特定言之,係關於虛擬位址至實體位址之轉譯。
裝置可包含處理系統,該處理系統包含一或多個中央處理單元(CPU)、虛擬記憶體管理單元(MMU)及轉譯後備緩衝器(TLB)。該處理系統可與實體記憶體系統(例如,隨機存取記憶體(RAM))通信。在實體記憶體系統中有至少一個頁表,該頁表將每一虛擬位址映射至與實體記憶體系統相關聯之實體位址。
MMU可使用映射將任何虛擬位址轉譯至實體位址。可在實體記憶體系統中提供實質上完整映射,而TLB可包括較小的轉譯子集(通常對應於高重要性或頻繁/最近使用之虛擬位址)。TLB比實體記憶體系統小,且因此可更快速地加以搜尋。
實體記憶體系統具有有限容量。因此,常常需要更新TLB及頁表中之位址映射。當在達到實體記憶體系統之容量之後請求新資料時,則必須用包括所請求之新資料之頁面覆寫實體記憶體系統內之舊頁面。必須使指向待覆寫之頁面(不論在TLB中抑或頁表中)的任何轉譯失效。
偶爾,會出現以下情況:在經指定虛擬位址之轉譯正處於在頁表中定位之過程中的同時使特定轉譯在TLB中失效。根據習知方法,將虛擬位址標記為失效且完成虛擬位址之轉譯。接著在轉譯及失效化完成時通知處理系統。該處理系統僅在接收到通知之後才可繼續進行特定處理程序。
如上文所提及,頁表之搜尋可能係耗時的。因此,在上述情況下,處理系統必需花費時間等待通知。因此,處理系統不能繼續進行其他處理程序且裝置會更緩慢地運行。因此,需要新技術來快速轉譯及重新映射虛擬位址。
以下發明內容為僅經提供以輔助描述本發明之各種態樣的概述,且僅經提供以用於說明本發明之態樣,而非對其進行限制。
根據本發明之態樣,揭示一種記憶體管理單元(MMU)。MMU可經組態:以自處理系統接收轉譯請求,其中該轉譯請求指定待轉譯之虛擬位址;搜尋儲存於實體記憶體系統中之頁表中指定虛擬位址之頁表條目;自該處理系統接收轉譯後備緩衝器失效(TLBI)信號,其中TLBI信號指定虛擬位址;回應於接收指定虛擬位址之TLBI信號,使轉譯後備緩衝器(TLB)中之TLB條目失效,其中失效的TLB條目指定虛擬位址;且重啟對該頁表中指定虛擬位址之頁表條目的搜尋。
根據本發明之其他態樣,揭示一種方法。該方法可包含:在記憶體管理單元(MMU)處自處理系統接收轉譯請求,其中該轉譯請求指定待轉譯的虛擬位址;搜尋儲存於實體記憶體系統中之頁表中指定虛擬位址的頁表條目;自處理系統接收轉譯後備緩衝器失效(TLBI)信號,其中該TLBI信號指定虛擬位址;回應於接收指定虛擬位址的TLBI信號,使轉譯後備緩衝器(TLB)中之TLB條目失效,其中該失效TLB條目指定虛擬位址;以及重啟對該頁表中指定虛擬位址的頁表條目之搜尋。
根據本發明之其他態樣,揭示一種設備。該設備可包含:用於在記憶體管理單元(MMU)處接收來自處理系統的轉譯請求之構件,其中轉譯請求指定待轉譯的虛擬位址;用於在儲存於實體記憶體系統中的頁表中搜尋指定虛擬位址的頁表條目之構件;從處理系統接收轉譯後備緩衝器失效(TLBI)信號之構件,其中該TLBI信號指定虛擬位址;用於使轉譯後備緩衝器(TLB)中之TLB條目失效之構件,其中,回應於接收指定虛擬位址的TLBI信號,失效TLB條目指定虛擬位址;以及用於回應於接收指定虛擬位址之TLBI信號而重啟對頁表中之頁表條目之搜尋的構件。
根據 35 U.S.C. §119 之優先權主張
本專利申請案主張於2018年4月26日申請的名稱為「TRANSLATION OF VIRTUAL ADDRESSES TO PHYSICAL ADDRESSES」的非臨時申請案第15/964,061號之優先權,該非臨時申請案受讓給其受讓人且特此明確地以引用之方式併入本文中。
圖1大體上說明根據本發明之態樣的用於執行虛擬位址至實體位址之轉譯及映射的系統100。
系統100包含處理系統110及實體記憶體系統150。處理系統110可包含一或多個中央處理器(CPU) 120、記憶體管理單元(MMU) 130,及轉譯後備緩衝器(TLB) 140。處理器互連件123可將CPU 120耦接至MMU 130。MMU 130可經由TLB路徑134耦接至TLB 140。實體記憶體系統150可包含實體記憶體160及頁表170。實體記憶體系統150可例如為隨機存取記憶體(RAM)。MMU 130可經由實體記憶體互連件135耦接至實體記憶體系統150。
頁表170將由處理系統110使用的每個虛擬位址映射至與實體記憶體系統150相關聯的對應實體位址。該實體位址可定位於實體記憶體系統150、硬碟機(未展示)或一些其他儲存組件中。當處理系統110需要資料時,CPU 120可將所請求資料之虛擬位址發送至MMU 130。MMU 130可與TLB 140及/或實體記憶體系統150協同執行轉譯,並接著將對應實體位址返回給CPU 120。
為了執行轉譯,MMU 130首先檢查TLB 140,以判定所請求資料之虛擬位址是否匹配與TLB條目中之一者相關聯的虛擬位址。若在所請求的虛擬位址與特定TLB條目中之虛擬位址之間存在匹配,則處理系統檢查TLB條目,以判定是否設定有效位元。若條目有效,則TLB條目包括虛擬位址之有效轉譯。因此,對應實體位址可非常快速地返回至MMU,從而完成轉譯。使用經轉譯實體位址,處理系統110可擷取所請求之資料。
若MMU 130判定所請求的資料之虛擬位址不匹配與TLB條目中之一者相關聯的虛擬位址,(或若匹配TLB條目經標記為失效),則MMU 130瀏覽實體記憶體系統150中之頁表170直至找到匹配虛擬位址為止。
每個轉譯可以層級執行。舉例而言,MMU 130可瀏覽頁表170之第一頁表來搜尋匹配。在第一頁表中找到的匹配條目可包括實體位址之前幾個位元以及可在頁表170之第二頁表中找到其他位元的指示。MMU 130可接著儲存第一若干位元且瀏覽第二頁表以搜尋匹配。如上文所提及,匹配條目可包括實體位址之下幾個位元,且若匹配條目包括在頁表170之第三頁表中可找到其他位元的指示,則重複該處理程序。該處理程序可重複直至匹配條目指示已達到末級轉譯。末級可為例如最近達到的層級。一旦完成末級轉譯,MMU 130應具有全實體位址之完整轉譯。
若在所請求之虛擬位址與特定頁表條目中之虛擬位址之間存在匹配,則處理系統110自頁表條目擷取實體位址。一旦找到,實體位址即返回至MMU 130。然而,使用頁表170執行轉譯可能比使用TLB 140更慢。TLB 140小於實體記憶體系統150且距離相比實體記憶體系統150較近。因此,可更快速地搜尋TLB 140。TLB 140通常複製位於頁表170中的轉譯之子集。複製的轉譯大體上與最重要、最頻繁使用及/或最近使用之虛擬位址相關聯。
因此常常需要更新TLB 140及頁表170中之位址映射。實體記憶體系統150可具有有限之容量。當在達到實體記憶體系統150之容量之後請求新資料時,實體記憶體系統150內之一些頁面則必須利用所請求之新資料覆寫。一旦覆寫開始及/或完成,虛擬位址至實體位址之映射必須更新以反映經覆寫資料不再位於其先前實體位址處之事實。
為了使TLB 140中之複本失效,CPU 120可將TLB失效符(TLBI)發送至MMU 130。若TLBI中指定之虛擬位址匹配TLB 140中之TLB條目,則TLB條目經標記為失效的且將不會用於轉譯直至其經有效轉譯重寫(及標記為有效)為止。
圖2大體上說明用於重啟對頁表中包括與TLBI相關聯之虛擬位址的條目之搜尋的方法200。方法200將在下文描述為其將藉由圖1中描繪之MMU 130執行。然而,應理解,方法200可藉由任何合適的裝置執行。
在210處,MMU 130接收指定待轉譯之虛擬位址的轉譯請求。因此,MMU 130可構成用於接收指定待轉譯之虛擬位址之轉譯請求之構件。該轉譯請求可自例如CPU 120接收。
在220處,MMU 130搜尋頁表(例如,一或多個頁表170)中包括(在210處接收的)經指定虛擬位址之頁表條目。在220處之搜尋可與實體記憶體系統150協同執行。因此,MMU 130及/或實體記憶體系統150可構成用於搜尋一或多個頁表中包括轉譯請求中所指定的虛擬位址之頁表條目之構件。
在230處,MMU 130接收指示在210處指定的虛擬位址將失效之TLBI信號。因此,MMU 130可構成用於接收指定所指定虛擬位址將失效的TLBI信號之構件。
在240處,MMU 130視情況捨棄與虛擬位址之轉譯相關聯的一或多個經轉譯位元。因此,MMU 130可構成用於捨棄與虛擬位址之轉譯相關聯的一或多個經轉譯位元之構件。在一些情形中,可不存在任何轉譯位元,在此情況下,可忽略在240處之捨棄。
在250處,MMU 130使TLB (例如TLB 140)中之TLB條目失效,其中失效的TLB條目指定虛擬位址(亦即,在210及230處指定的相同虛擬位址)。因此,MMU 130可構成用於使TLB中之TLB條目失效之構件,其中失效的TLB條目指定虛擬位址。
在260處,MMU 130重啟對頁表中所指定之虛擬位址的搜尋。260處之重啟可與實體記憶體系統150協同執行。因此,MMU 130及/或實體記憶體系統150可構成用於重啟頁表搜尋之構件。
如將在下文更詳細地論述,在一些情形中,MMU 130可藉由捨棄所有經轉譯的位元且在第一轉譯層級處重新開始來執行完全重啟。在其他情形中,MMU 130可藉由捨棄經轉譯位元之一部分(例如,僅係與轉譯之最近層級相關聯的位元)及將其替換來執行重取。如本文所使用,重啟可為通用術語,其涵蓋完全重啟或重取。
圖2中描繪之功能性可以符合本文中之教示的各種方式來實施。在一些設計中,功能性可實施為一或多個電動組件。在一些設計中,功能性可實施為包括一或多個處理器組件之處理系統。在一些設計中,功能性可使用例如一或多個積體電路(例如ASIC)的至少一部分來實施。如本文所論述,積體電路可包括處理器、軟體、其他相關組件或其任何組合。因此,不同模組之功能性可實施為(例如)積體電路之不同子集、一組軟體模組之不同子集或其組合。此外,應瞭解,給定子組(例如,積體電路及/或一組軟體模組之子集)可為多於一個的模組提供至少一部分功能性。
另外,圖2中描繪之功能性以及本文所描述之其他組件及功能可使用任何適合的構件來實施。亦可至少部分地使用如本文中所教示之對應結構來實施此類構件。上述組件亦可對應於類似地表示為「供使用之程式碼」之功能性。因此,在一些態樣中,可使用處理器組件、積體電路或本文中教示之其他適合的結構中之一或多者來實施此類構件中之一或多者。
圖3大體上說明展示根據習知方法之信號交換的信號流程圖300。信號流程圖300展示在習知CPU、習知MMU及習知實體記憶體系統當中交換之信號。
在310處,CPU向MMU發送請求指定虛擬位址至對應實體位址之轉譯的請求。
在320處,MMU搜尋習知TLB中指定的虛擬位址。在322處,MMU判定虛擬位址是否在TLB中。在本發明實例中,虛擬位址不在TLB中(在322處為「否」)。因此,MMU觸發對實體記憶體系統(尤其係其一或多個頁表)之搜尋。
在330處,實體記憶體系統搜尋頁表中指定的虛擬位址。頁表搜尋有時可稱作「頁面瀏覽」。頁面瀏覽可花一些時間來完成,且可繼續直至實體記憶體系統找到包括經指定虛擬位址之頁表條目。在332處,實體記憶體系統將對應的實體位址返回至MMU。
然而,在332處之返回藉由實體記憶體系統執行之前(亦即在頁面瀏覽之前或期間),該一或多個CPU可使一或多個轉譯失效。
在340處,CPU可傳輸一或多個TLBI,其指定與在310處的請求中指定的虛擬位址相同的虛擬位址。在342處,在傳輸一或多個TLBI之後,CPU可向MMU傳輸一同步請求(SYNC-REQ)。
在350處,在接收一或多個TLBI及SYNC-REQ之後,MMU等待經指定虛擬位址之轉譯。MMU可等待直至頁面瀏覽之持續時間結束。
在360處,在自實體記憶體系統接收對應實體位址之後,MMU判定轉譯是否匹配一或多個TLBI中之一者。在本發明實例中,正經轉譯之虛擬位址與經失效的虛擬位址相同(在360處為「是」)。因此,MMU判定在332處返回之轉譯與在340處接收之一或多個TLBI中之一者之間存在匹配,且繼續進行至370。
在370處,回應於判定對應實體位址係與在TLBI中指定之虛擬位址相關聯,MMU捨棄對應實體位址。在372處,MMU判定所有轉譯(亦即,匹配在TLBI中指定之虛擬位址的所有轉譯及/或在接收TLBI時實體記憶體系統中待決的所有轉譯)是否已由實體記憶體系統返回且經MMU捨棄。若MMU判定轉譯未返回及捨棄(在372處為「否」),則MMU返回至350且等待下一次轉譯。若MMU判定所有轉譯已返回及捨棄(在372處為「是」),則MMU繼續進行至380。
在380處,MMU向CPU傳輸同步應答(SYNC-ACK)。SYNC-ACK可向CPU傳信CPU可安全地繼續進行任何以TLBI中指定的轉譯之失效為先決條件之處理程序。
在390處,CPU請求虛擬位址至實體位址之新轉譯。在390處傳輸之請求中指定的虛擬位址可與在310處傳輸之請求中指定的虛擬位址相同。假定未發佈新TLBI,TLB及/或頁表可用於執行轉譯且返回對應實體位址。
圖4大體上說明展示根據本發明之態樣藉由圖1中描繪之系統100之各種組件執行的信號交換的信號流程圖400。特定而言,信號流程圖400展示在CPU 120、MMU 130及實體記憶體系統150當中交換之信號。
在410處,CPU 120中之一或多者向MMU 130發送請求經指定虛擬位址至對應實體位址之轉譯的請求。
在420處,MMU 130搜尋TLB 140中經指定的虛擬位址。在本發明實例中,虛擬位址不在TLB 140中。在422處,MMU 130判定虛擬位址是否在TLB 140中。在本發明實例中,虛擬位址不在TLB 140中(在422處為「否」)。因此,MMU 130觸發對實體記憶體系統150中所提供的頁表170之搜尋。
在430處,實體記憶體系統150搜尋頁表170中經指定的虛擬位址。頁面瀏覽可能花一些時間來完成,且可繼續,直至實體記憶體系統150找到頁表170中包括經指定虛擬位址之頁表條目。
如圖3中描繪之信號情境,在430處開始的頁面瀏覽之前或期間,CPU 120可使一或多個轉譯失效。在440處,CPU 120可傳輸一或多個TLBI,其指定與410處之請求中指定的虛擬位址相同的虛擬位址。在442處,在傳輸一或多個TLBI之後,CPU 120可向MMU 130傳輸同步請求(SYNC-REQ)。
在450處,MMU 130判定與待決轉譯相關聯的虛擬位址是否匹配TLBI中所指定的虛擬位址。在本發明實例中,當前正在搜尋TLBI中所指定的虛擬位址(在430處)。回應於判定當前正在搜尋TLBI中所指定的虛擬位址(在450處為「是」),MMU 130繼續進行至452。在一些實施中,該判定可以下文參考圖5至圖7描述之方式實施。
在452處,MMU 130向CPU 120傳輸SYNC-ACK。在452處傳輸之SYNC-ACK在一些方面可類似於圖3中(在380處)傳輸之SYNC-ACK。特定而言,SYNC-ACK可向CPU 120傳信CPU 120可安全地繼續進行任何以TLBI中所指定之轉譯之失效為先決條件的處理程序。然而,應理解,圖4中描繪之信號流程圖400導致SYNC-ACK之更快傳輸及接收。此係由於MMU 130在傳輸SYNC-ACK之前不會等待轉譯(如在350處)。
在454處,MMU 130捨棄與失效的虛擬位址相關聯的一或多個經轉譯位元。舉例而言,若實體記憶體系統150已向MMU 130提供指定失效的虛擬位址之轉譯(或部分轉譯)的一或多個位元(圖4中未示出),則MMU 130捨棄一或多個位元。如下文將更詳細地論述,完全重啟可能需要捨棄與失效的虛擬位址相關聯之所有經轉譯位元,而重取可保留與未受影響之轉譯層級相關聯之一或多個經轉譯位元,且僅捨棄與末級轉譯相關聯之一或多個經轉譯位元。
在456處,MMU 130完全重啟或重取在410處請求的轉譯之一部分。特定而言,MMU 130觸發對頁表170中指定的虛擬位址(在410之請求中識別之相同虛擬位址)的搜尋。如下文將參考圖5至圖7更詳細地論述,完全重啟或重取之間的決策可基於TLBI中提供之LEAF指示符。(據申請人之最佳瞭解,LEAF傳統上為大寫,但非首字母縮寫)。
在470處,實體記憶體系統150搜尋頁表170中指定的虛擬位址。在472處,實體記憶體系統150將對應於經指定虛擬位址之實體位址返回至MMU 130。在480處,MMU 130向CPU 120提供實體位址。
應理解,與圖3中描繪之MMU相對比,MMU 130將自動重啟在410處請求之轉譯,而不管轉譯是否已完成。若在對應實體位址(或其一部分)已經提供回至CPU 120之前接收到TLBI,MMU 130則捨棄一或多個經轉譯位元並緊接著著手用新的(有效的)轉譯將其替換。
圖5大體上說明根據本發明之態樣的用於基於LEAF指示符重啟及/或重取轉譯之方法500。方法500可為圖4中描繪的在456處之判定的實例實施。
TLBI可包括複數個欄位,包括虛擬位址欄位、應用空間ID (ASID)欄位、虛擬機ID (VMID)欄位、轉譯機制指示符欄位、LEAF指示符欄位、階段指示符欄位、其他適合欄位或其任何組合。LEAF指示符可例如為一位元欄位,其中一(LEAF-1)指示末級轉譯已失效,且零(LEAF-0)指示一些其他轉譯層級已失效。方法500在下文將描述為其將藉由MMU 130執行。然而,應理解,方法500可藉由根據本發明之態樣的任何適合的裝置執行。
在510處,MMU 130判定在接收到的TLBI之LEAF指示符欄位中指示LEAF-0抑或LEAF-1。若指示LEAF-0 (在510處為「LEAF-0」),則方法500可繼續進行至520。若指定LEAF-1 (在510處為「LEAF-1」),則方法500可繼續進行至540。
在520處,MMU 130將頁面大小參數設定成等於與第一提取層級相關聯之頁面大小值。頁面大小參數可指示用以執行本發明中描述的任何或所有虛擬位址匹配判定的遮罩之大小及/或佈置。因此,關於經指定虛擬位址是否匹配之判定可取決於頁面大小。根據頁面大小參數,可遮蔽虛擬位址之一或多個位元(亦即,不用於判定匹配)。
在530處,MMU 130判定是否完全重啟整個轉譯,如下文將參考圖6更詳細地論述。
在540處,MMU 130將頁面大小參數設定成等於與當前瀏覽層級相關聯之頁面大小值。如上文所提及,頁面大小參數可指示用以執行本發明之匹配判定的遮罩之大小及/佈置。
在550處,MMU 130判定是否重取末級轉譯,如下文將參考圖6更詳細地論述。
應理解,方法500或其元件可為如圖4中所描繪的在450處判定及/或在454處捨棄之實例實施。此外,方法500可構成在456處完全重啟或重取之先決條件,其中MMU 130判定是否重啟轉譯,以及該重啟係完全重啟抑或重取。
圖6大體上說明圖5中描繪之判定是否完全重啟530之實例實施之方法。因此,可回應於判定LEAF-0經指示(如圖5中之510處)來執行方法600。方法600在下文將描述為其將藉由MMU 130執行。然而,應理解,方法600可藉由根據本發明之態樣的任何適合的裝置執行。
在610處,MMU 130判定在接收到的TLBI中指定之虛擬位址是否匹配待決轉譯集合中之一者中使用的虛擬位址。若MMU 130判定虛擬位址不匹配(在610處為「否」),則方法600繼續進行至640。若MMU 130判定虛擬位址的確匹配(在610處為「是」),則方法600繼續進行至620。
在620處,MMU 130判定在接收到的TLBI中指定之ASID是否匹配待定轉譯集合中使用之ASID。若MMU 130判定ASID不匹配(在620處為「否」),則方法600繼續進行至640。若MMU 130判定ASID的確匹配(在620處為「是」),則方法600繼續進行至630。
對於具有非全局屬性之轉譯,若TLBI中指定之ASID匹配待決轉譯之ASID,轉譯僅匹配接收到的TLBI。對於具有全局屬性之轉譯,可不必匹配ASID。然而,可能未知轉譯係具有全局屬性抑或非全局屬性,直至轉譯已接近完成之後(例如,接收到轉譯表描述符(TTD)之後)為止。
根據本發明之態樣,屬性類型可基於葉指示符而判定。如將自圖5至圖6理解,在620處之判定之前,判定TLBI中指定之葉指示符為LEAF-0。根據本發明之態樣,基於TLBI中指定之葉指示符為LEAF-0的判定,可假定屬性為非全局的。因此,因為屬性經假定為非全局的,故在繼續進行至選項630及/或650處之前,可在620處匹配ASID。此外,ASID匹配可在接收TTD之前執行,從而增加轉譯速度。
在630處,MMU 130視情況判定在TLBI中指定之一或多個其他值是否匹配在待決轉譯集合中使用之對應的一或多個其他值。若MMU 130判定一或多個其他值不匹配(在630處為「否」),則方法600繼續進行至640。若MMU 130判定一或多個其他值匹配(在630處為「是」),則方法600繼續進行至650。該一或多個值可包括例如VMID、轉譯機制、轉譯階段、其他適合欄位或其任何組合。
應理解,若在判定610、620及/或630中之任一者處未找到匹配,則方法600將繼續進行至640。此外,若在每一個判定(610、620及630 (若包括))處找到匹配,則方法600將繼續進行至650。
在640處,MMU 130判定待決轉譯不受接收到的TLBI影響。此係由於TLBI中指定之虛擬位址、ASID及/或其他值中之一或多者不匹配待決轉譯集合中之任一者中的對應值。
在650處,MMU 130判定待決轉譯受接收到的TLBI影響且完全重啟整個轉譯。待決轉譯受影響之判定係基於在TLBI中指定之虛擬位址、ASID及/或任選其他值中之全部匹配與一或多個待決轉譯相關聯之對應值的判定。
暫時返回至圖4,應理解,在456處,MMU 130可決定完全重啟轉譯。將進一步理解,在456處之完全重啟可使用圖5至圖6中所描繪之方法500及/或方法600來實施。
圖7大體上說明係圖5中所描繪之判定是否重取550之實例實施之方法700。因此,可回應於判定LEAF-1經指示(如圖5中之510處)來執行方法700。方法700將在下文描述為其將藉由MMU 130執行。然而,應理解,方法700可藉由根據本發明之態樣的任何適合裝置來執行。
在710處,MMU 130判定在接收到的TLBI中指定之虛擬位址及ASID兩者是否均匹配分別與待決轉譯集合中之一待決轉譯相關聯的虛擬位址及ASID。若MMU 130判定所指定的虛擬位址及ASID兩者均匹配待決轉譯(在710處為「是」),方法700繼續進行至712。若MMU 130判定所指定之虛擬位址抑或ASID不匹配任何待決轉譯(在710處為「否」),則方法700繼續進行至720。
在712處, MMU 130判定在轉譯具有非全局屬性的情況下轉譯受到影響。可使用leaf-affected-if-non-global旗標(例如,其可設定為1表示真且設定為0表示假)來追蹤此判定。
如上文所提及,對於具有非全局屬性之轉譯,若TLBI中指定之ASID匹配待決轉譯之ASID時,轉譯僅匹配接收到的TLBI。然而,可能需要等待直至TTD到達為止才判定轉譯之屬性。如下文將更詳細地論述,若在接收到TTD時判定轉譯為非全局的,則可(基於轉譯為非全局之判定)作出轉譯受TLBI影響的進一步判定。
在720處,MMU 130判定在接收到的TLBI中指定的虛擬位址是否匹配與待決轉譯集合中之一待決轉譯相關聯的虛擬位址。若MMU 130判定所指定的虛擬位址與待決轉譯匹配(在720處為「是」),則方法700繼續進行至722。若MMU 130判定所指定的虛擬位址及ASID不匹配任何待決轉譯(在720處為「否」),則方法700繼續進行至730。
在722處,MMU 130判定在轉譯具有全局屬性的情況下轉譯受接收到的TLBI影響。可使用leaf-affected-if-global旗標(例如,其可經設定為1表示真且設定為0表示假)來追蹤此判定。如上文所提及,對於具有全局屬性之轉譯,若在TLBI中所指定之虛擬位址匹配待決轉譯之虛擬位址,則轉譯可匹配接收到的TLBI,而不管ASID是否匹配。然而,如上文所提及,可能需要等待直至TTD到達為止才判定轉譯之屬性。如下文將更詳細地論述,若在接收到TTD時判定轉譯為全局的,則可(基於轉譯為全局之判定)作出轉譯受TLBI影響的進一步判定。
在730處,MMU 130判定轉譯未受影響。應理解,在730處之判定可基於對於所指定的虛擬位址不匹配待決轉譯之判定(在710及720處)。由於待決轉譯未受TLBI影響,故不需要重啟待決轉譯。此外,不需要判定轉譯係具有全局屬性抑或非全局屬性,且因此無理由等待,直至接收到TTD為止。
在740處,MMU 130接收TTD。如上文所提及,可在轉譯完成後接收TTD,且其可指定轉譯係具有全局屬性抑或非全局屬性。
在750處,MMU 130判定是否已達到末級轉譯。該判定可基於在740處接收到的TTD中之一或多個欄位。若MMU 130判定已達到末級轉譯(在750處為「是」),則方法700可繼續進行至760。若MMU 130判定尚未達到末級轉譯(在750處為「否」),則方法700可繼續進行至790。
在760處,MMU 130判定轉譯是否具有全局屬性。該判定可基於在740處接收到的TTD中之一或多個欄位。若MMU 130判定轉譯具有全局屬性(在760處為「是」),則方法700可繼續進行至762。若MMU 130判定轉譯具有非全局屬性(在760處為「否」),則方法700可繼續進行至764。
在762處,MMU 130判定leaf-affected-if-non-global旗標是否經設定在712處。若leaf-affected-if-non-global旗標經設定在712處(在762處為「否」),則方法700繼續進行至770。若leaf-affected-if-non-global旗標未經設定在712處(在762處為「否」),則方法700繼續進行至790。
在764處,MMU 130判定leaf-affected-if-global旗標是否經設定在722處。若leaf-affected-if-global旗標經設定在722處(在762處為「是」),則方法700繼續至770。若leaf-affected-if-global旗標經設定在722處(在762處為「否」),則方法700繼續至790。
在770處,MMU 130判定TLBI匹配待決轉譯,且決定保持不與末級轉譯相關聯之經轉譯位元,捨棄與末級轉譯相關聯之任何經轉譯位元,且重取末級轉譯。
在790處,MMU 130判定TLBI不匹配待決轉譯。因此,待決轉譯可經判定為不受TLBI影響。
圖8大體上說明可有利地採用本發明之態樣的例示性電子裝置800。
電子裝置800可併入圖1中描繪之系統100、經組態以執行圖4中描繪之信令之系統、經組態以執行圖5中描繪之方法500之系統、經組態以執行圖6中描繪之方法600之系統,及/或經組態以執行圖7中描繪之方法700之系統。在圖8之描繪中,電子裝置800經展示為包括處理器810。電子裝置800可進一步包含快取記憶體820。在圖8中,處理器810經例示性地展示為利用處理器810與記憶體830之間的快取記憶體820耦接至記憶體830,但應理解,此項技術中已知之其他記憶體組態亦可由電子裝置800支援。
圖8亦描繪耦接至處理器810及顯示器842之顯示控制器840。在一些情況下,電子裝置800可用於無線通信。圖8以虛線描繪選用區塊,諸如耦接至處理器810之編碼器/解碼器(編解碼器(CODEC)) 860 (例如音訊及/或語音編解碼器)。揚聲器862及麥克風864亦可耦接至編解碼器860。此外,無線天線852可耦接至無線控制器850,其耦接至處理器810。在存在此等選用區塊中之一或多者之情況下,在特定態樣中,處理器810、顯示控制器840、記憶體830及無線控制器850係包括於系統級封裝或系統單晶片裝置870中。
因此,在特定態樣中,輸入裝置812及電源供應器872耦接至系統單晶片裝置870。此外,在特定態樣中,如圖8中所說明,在一或多個選用區塊存在之情況下,顯示器842、輸入裝置812、揚聲器862,麥克風864、無線天線852及電源供應器872在系統單晶片裝置870之外部。然而,顯示器842、輸入裝置812、揚聲器862、麥克風864、無線天線852及電源供應器872中之每一者可耦接至系統單晶片裝置870之組件,諸如介面或控制器。在一些實施中,電子裝置800之組件中之一或多者可經由系統匯流排彼此通信。
應注意,儘管圖8大體上描繪通用電子裝置800,但電子裝置800之組件中之一或多者可另外地或可替代地整合至機上盒、音樂播放器、視訊播放器、娛樂單元、導航裝置、個人數位助理(PDA)、固定位置資料單元、電腦、膝上型電腦、平板電腦、通信裝置、行動電話或其他類似裝置中。
熟習此項技術者應瞭解,可使用多種不同技術及技藝中之任一者來表示資訊及信號。舉例而言,可由電壓、電流、電磁波、磁場或磁性粒子、光場或光學粒子或其任何組合來表示在貫穿以上描述中可能引用之資料、指令、命令、資訊、信號、位元、符號及晶片。此外,熟習此項技術者應瞭解,結合本文中所揭示之態樣而描述的各種說明性邏輯區塊、模組、電路及演算法步驟可實施為電子硬體、電腦軟體或兩者之組合。為了清楚地說明硬體與軟體之此可互換性,各種說明性組件、區塊、模組、電路及步驟已在上文大體按其功能性加以描述。此功能性實施為硬體或軟體取決於特定應用及強加於整個系統之設計約束而定。熟習此項技術者可針對每一特定應用以變化之方式實施所描述之功能性,但不應將此等實施決策解釋為導致脫離本發明之範疇。
結合本文中所揭示之態樣而描述的方法、序列及/或演算法可直接在硬體中、在由處理器執行之軟體模組中或在兩者之組合中體現。軟體模組可駐留於RAM記憶體、快閃記憶體、ROM記憶體、EPROM記憶體、EEPROM記憶體、暫存器、硬碟、可移磁碟、CD-ROM,或此項技術中已知之任何其他形式之儲存媒體中。例示性儲存媒體耦合至處理器,使得處理器可自儲存媒體讀取資訊並將資訊寫入至儲存媒體。在替代方案中,儲存媒體可與處理器成一體式。
因此,本發明之一態樣可包括體現用於匯流排控制之方法的電腦可讀媒體。因此,本發明不限於所說明之實例,且用於執行本文中所描述之功能性的任何構件皆包括於本發明之態樣中。
鑒於以上描述及解釋,熟習此項技術者應瞭解,結合本文中所揭示之態樣描述之各種說明性邏輯區塊、模組、電路及演算法步驟可實施為電子硬體、電腦軟體或兩者的組合。為了清楚地說明硬體與軟體之此可互換性,各種說明性組件、區塊、模組、電路及步驟已在上文大體按其功能性加以描述。此功能性實施為硬體或軟體取決於特定應用及強加於整個系統之設計約束而定。熟習此項技術者可針對每一特定應用而以變化之方式實施所描述之功能性,而但不應將此等實施決策解譯為致使脫離本發明之範疇。
因此,應瞭解,例如,設備或設備之任何組件可經組態以(或可操作以或經調適以)提供功能性,如本文中所教示。其可藉由以下達成:例如:藉由加工(例如製造)設備或組件以使其將提供功能性;藉由對設備或組件程式設計以使其將提供功能性;或經由使用一些其他適合之實施技術。作為一個實例,積體電路可經製造以提供必需功能性。作為另一實例,積體電路可經製造以支援必需功能性且接著經組態(例如,經由程式設計)以提供必需功能性。作為又一實例,處理器電路可執行程式碼以提供必需功能性。
此外,結合本文中所揭示之態樣描述之方法、序列及/或演算法可直接在硬體中、在由處理器執行之軟體模組中或在兩者之組合中體現。軟體模組可駐留於以下中:隨機存取記憶體(RAM)、快閃記憶體、唯讀記憶體(ROM)、可抹除可程式化唯讀記憶體(EPROM)、電可抹除可程式化唯讀記憶體(EEPROM)、暫存器、硬碟、可移磁碟、CD-ROM,或此項技術中已知的任何其他形式的非暫時性儲存媒體。如本文所使用,術語「非暫時性」不排除任何實體儲存媒體或記憶體,且尤其不排除動態記憶體(例如RAM),而是僅排除媒體可經理解為暫時傳播信號之解釋。實例儲存媒體耦接至處理器,使得處理器可自儲存媒體讀取資訊且將資訊寫入儲存媒體。在替代方案中,儲存媒體可在至處理器外部(例如快取記憶體)。
儘管前述揭示內容展示各種說明性態樣,但應注意,可對所說明之實例作出各種改變及修改而在不脫離由所附申請專利範圍所定義之範疇。本發明不意欲僅限制於具體說明之實例。舉例而言,除非另外指出,否則根據本文所描述之本發明之態樣的設備請求項之功能、步驟及/或動作不必以任何特定次序執行。此外,儘管可以單數描述或主張某些態樣,但除非明確陳述限制於單數,否則涵蓋複數。
應理解,本文使用諸如「第一」、「第二」等名稱對元件進行的任何參考通常並不限制彼等元件之數量或次序。實情為,本文中可使用此等名稱作為區分兩個或更多個元件或一元件之例項的便利方法。因此,參考第一及第二元件並不暗示僅存在兩個元件,且並不進一步暗示第一元件必須以一些方式先於第二元件。此外,除非另外說明,否則一組元件可包含一或多個元件。另外,描述或申請專利範圍中使用之形式術語「A、B或C中之至少一者」或「A、B或C中之一或多者」或「由A、B及C組成的群組中之至少一者」意謂「A或B或C或此等元件之任何組合」。
本文所使用之術語係僅出於描述特定實施例之目的,而非限制本文所揭示之任何實施例。如本文所使用,除非上下文另外清楚地指示,否則單數形式「一(a/an)」及「該(the)」意欲亦包括複數形式。應進一步理解,當在本文中使用時,術語「包含(comprises/comprising)」、「包括(includes/including)」指定所陳述特徵、整數、步驟、操作、元件及/或組件之存在,但並不排除一或多個其他特徵、整數、步驟、操作、元件、組件及/或其組群之存在或添加。類似地,如本文所使用之習語「基於」不必排除其他因素之影響,且應在所有情況下解釋為「至少部分地基於」,而非例如「僅基於」。
應理解,諸如「頂部」及「底部」、「左」及「右」、「豎直」及「水平」等之術語為嚴格地相對於彼此所使用之相對術語,且並不表示或暗示與重力、用以加工本文所描述之組件的加工裝置或本文所描述之組件所耦接、安裝至的一些其他裝置之任何關係。術語「交換」可指自一個組件至另一組件之一或多個資料傳遞。舉例而言,關於特定組件、交換功能性可由發送功能性、接收功能性或其任何組合構成。
100‧‧‧系統 110‧‧‧處理系統 120‧‧‧中央處理器 123‧‧‧處理器互連件 130‧‧‧記憶體管理單元 134‧‧‧TLB路徑 135‧‧‧實體記憶體互連件 140‧‧‧轉譯後備緩衝器 150‧‧‧實體記憶體系統 160‧‧‧實體記憶體 170‧‧‧頁表 200‧‧‧方法 300‧‧‧信號流程圖 400‧‧‧信號流程圖 500‧‧‧方法 600‧‧‧方法 700‧‧‧方法 800‧‧‧電子裝置 810‧‧‧處理器 812‧‧‧輸入裝置 820‧‧‧快取記憶體 830‧‧‧記憶體 840‧‧‧顯示控制器 842‧‧‧顯示器 850‧‧‧無線控制器 852‧‧‧無線天線 860‧‧‧編解碼器 862‧‧‧揚聲器 864‧‧‧麥克風 870‧‧‧系統單晶片 872‧‧‧電源供應器
隨附圖式經呈現以輔助描述本發明之各種態樣,且僅經提供用於說明本發明之態樣,而非對其進行限制。
圖1大體上說明根據本發明之態樣的用於執行虛擬位址至實體位址之轉譯及映射的系統。
圖2大體上說明用於重啟對頁表中包括與TLBI相關聯之虛擬位址的條目之搜尋的方法。
圖3大體上說明展示根據習知方法之信號交換的信號流程圖。
圖4大體上說明根據本發明之態樣的信號流程圖,其展示藉由圖1之系統的各種組件執行的信號交換。
圖5大體上說明根據本發明之態樣的用於基於LEAF指示符重啟及/或重取轉譯之方法。
圖6大體上說明圖5中描繪的判定是否完全重啟的實例實施的方法。
圖7大體上說明圖5中描繪的判定是否重取之實例實施的方法。
圖8大體上說明可有利地採用本發明之態樣的例示性電子裝置。
100‧‧‧系統
110‧‧‧處理系統
120‧‧‧中央處理器
123‧‧‧處理器互連件
130‧‧‧記憶體管理單元
134‧‧‧TLB路徑
135‧‧‧實體記憶體互連件
140‧‧‧轉譯後備緩衝器
150‧‧‧實體記憶體系統
160‧‧‧實體記憶體
170‧‧‧頁表

Claims (24)

  1. 一種記憶體管理單元(MMU),其經組態以:自一處理系統接收一轉譯請求,其中該轉譯請求指定一待轉譯虛擬位址;搜尋儲存於一實體記憶體系統中之一頁表中指定該虛擬位址之一頁表條目;自該處理系統接收一轉譯後備緩衝器失效(TLBI)信號,其中該TLBI信號指定該虛擬位址;回應於接收指定該虛擬位址之該TLBI信號:使一轉譯後備緩衝器(TLB)中之一TLB條目失效,其中該失效TLB條目指定該虛擬位址;及重啟對該頁表中指定該虛擬位址之該頁表條目的該搜尋,其中該MMU進一步經組態以捨棄與該虛擬位址之該轉譯相關聯的一或多個經轉譯位元,且為進行捨棄,該MMU進一步經組態以:基於一LEAF指示來選擇該一或多個經轉譯位元;及捨棄該所選擇之一或多個經轉譯位元。
  2. 如請求項1之MMU,其中對該頁表之該搜尋包括:對至少一個初級頁表之一搜尋,其導致一實體位址之至少一個初級部分之一轉譯;及對已開始但尚未完成該實體位址之至少一個次級部分之一轉譯的一次級頁表之一搜尋。
  3. 如請求項2之MMU,其中:該TLBI信號指定一LEAF-1失效;為進行捨棄,該MMU進一步經組態以捨棄與該實體位址之該至少一個次級部分相關聯之任何經轉譯位元;及為了重啟對該頁表之該搜尋,該MMU進一步經組態以藉由自該次級頁表重取一或多個位元來完成該實體位址之該至少一個次級部分之該轉譯。
  4. 如請求項3之MMU,其中為了重啟對該頁表之該搜尋,該MMU進一步經組態以:保持該實體位址之該至少一個初級部分;及向該處理系統提供該虛擬位址之一完全轉譯,該虛擬位址包括該實體位址之該至少一個初級部分及該實體位址之該至少一個次級部分。
  5. 如請求項2之MMU,其中:該TLBI信號指定一LEAF-0失效;為進行捨棄,該MMU進一步經組態以捨棄與該至少一個初級頁表之該搜尋相關聯之任何經轉譯位元並捨棄與該次級頁表之該搜尋相關聯之任何經轉譯位元;及為了重啟對該頁表之該搜尋,該MMU進一步經組態以完全重啟對該至少一個初級頁表之該搜尋及對該次級頁表之該搜尋。
  6. 如請求項1之MMU,其中:該TLBI信號進一步指定其為一LEAF-0失效或一LEAF-1失效;及該MMU進一步經組態以:回應於對該TLBI信號為一LEAF-0失效之一判定及對在該TLBI信號中所指定之該虛擬位址及一應用空間ID(ASID)中之一或多者匹配該轉譯之一判定而完全重啟一整個轉譯;及回應於對該TLBI信號為一LEAF-1失效之一判定及對該TLBI信號中所指定之該虛擬位址及該ASID中之一或多者匹配該轉譯之一判定,重取一轉譯之一末級。
  7. 如請求項6之MMU,其中該MMU進一步經組態以:判定該虛擬位址及該ASID是否匹配該TLBI信號;回應於對該虛擬位址及該ASID兩者均匹配該TLBI信號之一判定,設定一leaf-affected-if-non-global旗標;接收一轉譯表描述符(TTD);基於該TTD判定該轉譯是否具有全局屬性;及回應於對該leaf-affected-if-non-global旗標經設定之一判定及對該轉譯不具有全局屬性之一判定,重取該轉譯之該末級。
  8. 如請求項6之MMU,其中該MMU進一步經組態以:判定該虛擬位址是否匹配該TLBI信號;回應於對該虛擬位址匹配該TLBI信號之一判定,設定一leaf-affected-if-global旗標; 接收一轉譯表描述符(TTD);基於該TTD判定該轉譯是否具有全局屬性;及回應於對該leaf-affected-if-global旗標經設定之一判定及對該轉譯具有全局屬性之一判定,重取該轉譯之該末級。
  9. 一種用於記憶體管理之方法,其包含:在一記憶體管理單元(MMU)處自一處理系統接收一轉譯請求,其中該轉譯請求指定一待轉譯虛擬位址;搜尋儲存於一實體記憶體系統中之一頁表中指定該虛擬位址之一頁表條目;自該處理系統接收一轉譯後備緩衝器失效(TLBI)信號,其中該TLBI信號指定該虛擬位址;回應於接收指定該虛擬位址之該TLBI信號:使一轉譯後備緩衝器(TLB)中之一TLB條目失效,其中該失效的TLB條目指定該虛擬位址;及重啟在該頁表中對指定該虛擬位址之該頁表條目之該搜尋,及進一步包含:回應於接收指定該虛擬位址之該TLBI信號,捨棄與該虛擬位址之該轉譯相關聯之一或多個經轉譯位元,其中該捨棄包含:基於一LEAF指示選擇該一或多個經轉譯位元;及捨棄該所選之一或多個經轉譯位元。
  10. 如請求項9之方法,其中該頁表之該搜尋包括:搜尋導致一實體位址之至少一個初級部分之一轉譯的至少一個初級 頁表;及搜尋已開始但尚未完成該實體位址之至少一個次級部分之一轉譯的一次級頁表。
  11. 如請求項10之方法,其中:該TLBI信號指定一LEAF-1失效;該捨棄包含捨棄與該實體位址之該至少一個次級部分相關聯之任何經轉換位元;及該重啟包含藉由自該次級頁表重取一或多個位元來完成該實體位址之該至少一個次級部分之該轉譯。
  12. 如請求項11之方法,其中該重啟進一步包含:保持該實體位址之該至少一個初級部分;及向該處理系統提供該虛擬位址之一完全轉譯,該虛擬位址包括該實體位址之該至少一個初級部分及該實體位址之該至少一個次級部分。
  13. 如請求項10之方法,其中:該TLBI信號指定一LEAF-0失效;該捨棄包含捨棄與該至少一個初級頁表之該搜尋相關聯之任何經轉譯位元及捨棄與該次級頁表之該搜尋相關聯之任何經轉譯位元;及該重啟包含完全重啟該至少一個初級頁表之該搜尋及該次級頁表之該搜尋。
  14. 如請求項9之方法,其中:該TLBI信號進一步指定其為一LEAF-0失效或一LEAF-1失效;及該方法進一步包含:回應於對該TLBI信號為一LEAF-0失效之一判定及對該TLBI信號中指定之該虛擬位址及一應用空間ID(ASID)中之一或多者匹配該轉譯之一判定,完全重啟一整個轉譯;及回應於對該TLBI信號為一LEAF-1失效之一判定及對該TLBI信號中指定之該虛擬位址及該ASID中之一或多者匹配該轉譯之一判定,重取一轉譯之一末級。
  15. 如請求項14之方法,其進一步包含:判定該虛擬位址及該ASID是否匹配該TLBI信號;回應於對該虛擬位址及該ASID兩者均匹配該TLBI信號之一判定,設定一leaf-affected-if-non-global旗標;接收一轉譯表描述符(TTD);基於該TTD判定該轉譯是否具有全局屬性;及回應於對該leaf-affected-if-non-global旗標經設定之一判定及對該轉譯不具有全局屬性之一判定,重取該轉譯之該末級。
  16. 如請求項14之方法,其進一步包含:判定該虛擬位址是否匹配該TLBI信號;回應於對該虛擬位址匹配該TLBI信號之一判定,設定一leaf-affected-if-global旗標; 接收一轉譯表描述符(TTD);基於該TTD判定該轉譯是否具有全局屬性;及回應於對該leaf-affected-if-global旗標經設定之一判定及對該轉譯具有全局屬性之一判定,重取該轉譯之該末級。
  17. 一種用於記憶體管理之設備,其包含:用於在一記憶體管理單元(MMU)處自一處理系統接收一轉譯請求之構件,其中該轉譯請求指定一待轉譯虛擬位址;用於搜尋儲存於一實體記憶體系統中之一頁表中指定該虛擬位址之一頁表條目之構件;用於自該處理系統接收一轉譯後備緩衝器失效(TLBI)信號之構件,其中該TLBI信號指定該虛擬位址;用於使一轉譯後備緩衝器(TLB)中之一TLB條目失效之構件,其中回應於接收指定該虛擬位址之該TLBI信號,該失效的TLB條目指定該虛擬位址;用於回應於接收指定該虛擬位址之該TLBI信號而重啟在該頁表中對該頁表條目之該搜尋之構件;及進一步包含用於回應於接收指定該虛擬位址之該TLBI信號而捨棄與該虛擬位址之轉譯相關聯之一或多個經轉譯位元之構件,其中該用於捨棄之構件包含:用於基於一LEAF指示選擇該一或多個經轉譯位元之構件;及用於捨棄該所選之一或多個經轉譯位元之構件。
  18. 如請求項17之設備,其中該用於搜尋該頁表之構件包括:用於搜尋導致一實體位址之至少一個初級部分之一轉譯的至少一個初級頁表之構件;及用於搜尋已開始但尚未完成該實體位址之至少一個次級部分之一轉譯的一次級頁表之構件。
  19. 如請求項18之設備,其中:該TLBI信號指定一LEAF-1失效;該用於捨棄之構件包含用於捨棄與該實體位址之該至少一個次級部分相關聯之任何經轉譯位元之構件;及該用於重啟之構件包含用於藉由自該次級頁表重取一或多個位元來完成該實體位址之該至少一個次級部分之該轉譯之構件。
  20. 如請求項19之設備,其中該用於重啟之構件進一步包含:用於保持該實體位址之該至少一個初級部分之構件;及用於向該處理系統提供該虛擬位址之一完全轉譯之構件,該虛擬位址包括該實體位址之該至少一個初級部分及該實體位址之該至少一個次級部分。
  21. 如請求項18之設備,其中:該TLBI信號指定一LEAF-0失效;該用於捨棄之構件包含用於捨棄與該至少一個初級頁表之該搜尋相關聯之任何經轉譯位元之構件及用於捨棄與該次級頁表之該搜尋相關聯之 任何經轉譯位元之構件;及該用於重啟之構件包含用於完全重啟該至少一個初級頁表之該搜尋及該次級頁表之該搜尋之構件。
  22. 如請求項17之設備,其中:該TLBI信號進一步指定其為一LEAF-0失效或一LEAF-1失效;及該設備進一步包含:用於回應於對該TLBI信號為一LEAF-0失效之一判定及對該TLBI信號中指定之該虛擬位址及一應用空間ID(ASID)中之一或多者匹配該轉譯之一判定而完全重啟一整個轉譯的構件;以及用於回應於對該TLBI信號為一LEAF-1失效之一判定及對該TLBI信號中指定之該虛擬位址及該ASID中之一或多者匹配該轉譯之一判定而重取一轉譯之一末級的構件。
  23. 如請求項22之設備,其進一步包含:用於判定該虛擬位址及該ASID是否匹配該TLBI信號的構件;用於回應於對該虛擬位址及該ASID兩者均匹配該TLBI信號之一判定而設定一leaf-affected-if-non-global旗標的構件;用於接收一轉譯表描述符(TTD)的構件;用於基於該TTD判定該轉譯是否具有全局屬性的構件;以及用於回應於對該leaf-affected-if-non-global旗標經設定之一判定及對該轉譯不具有全局屬性之一判定而重取該轉譯之該末級的構件。
  24. 如請求項22之設備,其進一步包含:用於判定該虛擬位址是否匹配該TLBI信號的構件;用於回應於對該虛擬位址匹配該TLBI信號之一判定而設定一leaf-affected-if-global旗標的構件;用於接收一轉譯表描述符(TTD)的構件;用於基於該TTD判定該轉譯是否具有全局屬性的構件;以及用於回應於對該leaf-affected-if-global旗標經設定之一判定及對該轉譯具有全局屬性之一判定而重取該轉譯之該末級的構件。
TW108114603A 2018-04-26 2019-04-25 虛擬位址至實體位址之轉譯 TWI801567B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/964,061 US10754790B2 (en) 2018-04-26 2018-04-26 Translation of virtual addresses to physical addresses using translation lookaside buffer information
US15/964,061 2018-04-26

Publications (2)

Publication Number Publication Date
TW201945938A TW201945938A (zh) 2019-12-01
TWI801567B true TWI801567B (zh) 2023-05-11

Family

ID=66821339

Family Applications (1)

Application Number Title Priority Date Filing Date
TW108114603A TWI801567B (zh) 2018-04-26 2019-04-25 虛擬位址至實體位址之轉譯

Country Status (5)

Country Link
US (1) US10754790B2 (zh)
EP (1) EP3785129B1 (zh)
CN (1) CN112262375A (zh)
TW (1) TWI801567B (zh)
WO (1) WO2019210019A1 (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11853225B2 (en) * 2019-10-11 2023-12-26 Texas Instruments Incorporated Software-hardware memory management modes
US11232042B2 (en) 2019-11-15 2022-01-25 Microsoft Technology Licensing, Llc Process dedicated in-memory translation lookaside buffers (TLBs) (mTLBs) for augmenting memory management unit (MMU) TLB for translating virtual addresses (VAs) to physical addresses (PAs) in a processor-based system
US11210233B2 (en) * 2020-01-07 2021-12-28 International Business Machines Corporation System and method for handling address translation invalidations using an address translation invalidation probe
US20220414016A1 (en) * 2021-06-23 2022-12-29 Advanced Micro Devices, Inc. Concurrent processing of memory mapping invalidation requests
CN116701249A (zh) * 2022-02-24 2023-09-05 象帝先计算技术(重庆)有限公司 页表转换方法、页表转换器、soc及电子设备
US11853228B1 (en) 2022-06-10 2023-12-26 Arm Limited Partial-address-translation-invalidation request
CN117472807B (zh) * 2023-12-28 2024-03-29 北京微核芯科技有限公司 虚拟地址的转换方法、装置和电子设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140075151A1 (en) * 2012-09-07 2014-03-13 International Business Machines Corporation Detection of conflicts between transactions and page shootdowns
TW201447583A (zh) * 2013-03-05 2014-12-16 Qualcomm Inc 用於減少執行硬體表搜尋(hwtw)所需的時間和計算資源量的方法和系統
US20160140042A1 (en) * 2014-11-14 2016-05-19 Cavium, Inc. Instruction cache translation management

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5437017A (en) 1992-10-09 1995-07-25 International Business Machines Corporation Method and system for maintaining translation lookaside buffer coherency in a multiprocessor data processing system
EP1004075A4 (en) 1997-08-11 2001-01-17 Transmeta Corp MEMORY PROTECTION DEVICE FOR PROTECTION AGAINST TRANSLATED COMMANDS FOR A MICROPROCESSOR
US8607008B1 (en) 2006-11-01 2013-12-10 Nvidia Corporation System and method for independent invalidation on a per engine basis
US8386749B2 (en) * 2010-03-16 2013-02-26 Advanced Micro Devices, Inc. Address mapping in virtualized processing system
US9405700B2 (en) 2010-11-04 2016-08-02 Sonics, Inc. Methods and apparatus for virtualization in an integrated circuit
US10275171B2 (en) 2014-09-16 2019-04-30 Kove Ip, Llc Paging of external memory
US9910776B2 (en) 2014-11-14 2018-03-06 Cavium, Inc. Instruction ordering for in-progress operations
GB2538054B (en) * 2015-04-28 2017-09-13 Advanced Risc Mach Ltd Data processing apparatus, controller, cache and method
US10223279B2 (en) * 2016-06-27 2019-03-05 Cavium, Llc Managing virtual-address caches for multiple memory page sizes

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140075151A1 (en) * 2012-09-07 2014-03-13 International Business Machines Corporation Detection of conflicts between transactions and page shootdowns
TW201447583A (zh) * 2013-03-05 2014-12-16 Qualcomm Inc 用於減少執行硬體表搜尋(hwtw)所需的時間和計算資源量的方法和系統
US20160140042A1 (en) * 2014-11-14 2016-05-19 Cavium, Inc. Instruction cache translation management

Also Published As

Publication number Publication date
EP3785129B1 (en) 2023-06-28
EP3785129A1 (en) 2021-03-03
TW201945938A (zh) 2019-12-01
CN112262375A (zh) 2021-01-22
US10754790B2 (en) 2020-08-25
US20190332550A1 (en) 2019-10-31
WO2019210019A1 (en) 2019-10-31

Similar Documents

Publication Publication Date Title
TWI801567B (zh) 虛擬位址至實體位址之轉譯
TWI676891B (zh) 轉譯後備緩衝器管理
US10083126B2 (en) Apparatus and method for avoiding conflicting entries in a storage structure
US8607025B2 (en) Data structure for enforcing consistent per-physical page cacheability attributes
US8745356B2 (en) Processor and address translating method
US8924648B1 (en) Method and system for caching attribute data for matching attributes with physical addresses
US9864694B2 (en) Tracking the content of a cache using a way tracker having entries with a cache miss indicator
US10078588B2 (en) Using leases for entries in a translation lookaside buffer
JP5565425B2 (ja) 演算装置、情報処理装置および演算方法
US20070094476A1 (en) Updating multiple levels of translation lookaside buffers (TLBs) field
JPH03194632A (ja) 変換予見にもとづくキャッシュアクセス
US10282308B2 (en) Method and apparatus for reducing TLB shootdown overheads in accelerator-based systems
CN111949572A (zh) 页表条目合并方法、装置及电子设备
KR20130036319A (ko) 변환 룩어사이드 버퍼를 관리하기 위한 시스템 및 방법
CN115292214A (zh) 页表预测方法、存储访问操作方法、电子装置和电子设备
US10318436B2 (en) Precise invalidation of virtually tagged caches
JP2013097671A (ja) アドレス変換装置、アドレス変換装置の制御方法及び演算処理装置
TW200534094A (en) Address conversion technique in a context switching environment
US9507729B2 (en) Method and processor for reducing code and latency of TLB maintenance operations in a configurable processor
US7984263B2 (en) Structure for a memory-centric page table walker
US9639467B2 (en) Environment-aware cache flushing mechanism
US11663131B2 (en) System-on-chip performing address translation and operating method thereof
US10896135B1 (en) Facilitating page table entry (PTE) maintenance in processor-based devices
US20220318139A1 (en) Processor supporting translation lookaside buffer (tlb) modification instruction for updating hardware-managed tlb and related methods
US11726920B2 (en) Tag processing for external caches