TW202111545A - 統一位址轉譯 - Google Patents

統一位址轉譯 Download PDF

Info

Publication number
TW202111545A
TW202111545A TW109130216A TW109130216A TW202111545A TW 202111545 A TW202111545 A TW 202111545A TW 109130216 A TW109130216 A TW 109130216A TW 109130216 A TW109130216 A TW 109130216A TW 202111545 A TW202111545 A TW 202111545A
Authority
TW
Taiwan
Prior art keywords
address
permission
data access
memory
index
Prior art date
Application number
TW109130216A
Other languages
English (en)
Other versions
TWI759846B (zh
Inventor
傑夫瑞 E 葛尼恩
巴嫩得 J 夕米利亞
麥可 J 史威特
普拉迪普 卡納帕西皮雷
大衛 J 威廉森
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 TW202111545A publication Critical patent/TW202111545A/zh
Application granted granted Critical
Publication of TWI759846B publication Critical patent/TWI759846B/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/1009Address translation using page tables, e.g. page table structures
    • 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/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0873Mapping of cache memory to specific storage devices or parts thereof
    • 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]
    • G06F12/1036Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] for multiple virtual address spaces, e.g. segmentation
    • 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/1072Decentralised address translation, e.g. in distributed shared memory systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1466Key-lock mechanism
    • G06F12/1475Key-lock mechanism in a virtual system, e.g. with translation means
    • 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)
  • Computer Security & Cryptography (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

一種用於有效率地轉移位址映射及對應於該等位址映射之資料存取許可的系統及方法。一計算系統包括至少一個處理器及用於儲存一分頁表之記憶體。回應於接收包含一第一位址的一記憶體存取操作,該位址轉譯單元經組態以:基於對應於該第一位址的一許可指數來識別一資料存取許可;及以由經擷取之該資料存取許可所界定的一方式來存取儲存在由一第二位址所識別之該記憶體的一記憶體位置中之資料。該位址轉譯單元經組態以存取一表來識別該資料存取許可,且經組態以基於該第一位址判定該許可指數及該第二位址。該位址轉譯單元經組態以存取一表來識別該資料存取許可,及經組態以基於該第一位址判定該許可指數及該第二位址。一單一許可指數可對應於該系統內之不同實體的不同許可。

Description

統一位址轉譯
本文中所述之實施例係關於計算系統的領域,且更具體地,係關於有效率地轉移位址映射及對於對應於該位址映射之資料存取許可的指標。
計算系統通常包括用於計算系統中之多個處理器的快取階層的一或多個層級。來自最近存取記憶體位置的資料係儲存在快取內。當再次請求資料時,可將資料自快取擷取,而非自系統記憶體之階層中的較後層級擷取。當處理經存取資料時,處理器之各者利用線性(或「虛擬」)位址。用於儲存在系統記憶體中且由軟體程序所使用之資料及指令的虛擬位址空間可劃分成給定大小的分頁。虛擬分頁可映射至實體記憶體的訊框。虛擬位址至實體位址的位址映射可保持追蹤虛擬分頁係儲存在實體記憶體中的何處。這些位址映射係儲存在一分頁表中,且此分頁表係儲存在記憶體中。處理器中的一或多個轉譯後備緩衝區(translation look-aside buffer, TLB)儲存該分頁表之一子集。
在一些情況下,多個處理器共用相同的分頁表。當一給定處理器藉由一軟體應用程式處理指令以修改該分頁表中的位址映射之一子集或全部時,該給定處理器將一當作廣播訊息的維護請求傳送至該計算系統中之其他處理器。該維護請求可包括其接收處理器係用以無效化對應TLB之一子集或全部中的目前位址映射之一指示。在各種實施例中,該作業系統可使用TLB無效化指令以將該系統的TLB中之一或多個條目無效化。例如,回應於在記憶體中之轉譯表中的映射之無效化,作業系統可發出TLB無效化命令。在各種實施例中,該命令可經由該系統內的一通訊網狀結構(例如,圖1之通訊網狀結構130)來輸送。與該命令一同包括者可係一位址空間識別符,該位址空間識別符可用作一表中之一指數,其指示一給定程序使用哪個位址空間以界定其虛擬位址空間。作為一實例,回應於偵測到通訊網狀結構上的TLB無效化命令,處理實體(例如,GPU)可無效化一局部TLB的一或多個條目。在各種實施例中,該無效化命令可包括:其在TLB中的所有條目均待被無效化的一指示、對應於一特定位址空間識別符的所有條目、虛擬位址的一範圍等。
在從計算系統中的其他處理器接收應答後,給定處理器及一或多個其他處理器在繼續處理後續指令之前從一特定分頁表擷取新位址映射。然而,資料存取許可針對藉由多個處理器共用的位址映射所指向的資料或以其他方式所識別的資料而變化。儲存具有位址映射的不同資料存取許可係增加分頁表條目之大小。儲存一給定分頁表之多個副本係增加系統記憶體的容量需求,且包括用以追蹤副本之間的任何改變之複雜的控制邏輯。
鑑於以上,需要用於有效率地轉移位址映射及對應於該等位址映射之資料存取許可的有效率方法及機制。
設想用於有效率地轉移位址映射及對應於該等位址映射之資料存取許可的系統及方法。在各種實施例中,一計算系統包括至少一個處理器及用於儲存分頁表之記憶體。該處理器在一轉譯後備緩衝區(TLB)中儲存來自記憶體中之一分頁表的位址映射。在該處理器中之該TLB的各緩衝區條目儲存一或多個虛擬至實體位址映射。該處理器基於該等對應的資料存取許可來存取由該等虛擬至實體位址映射之該實體位址所指向的(或以其他方式所識別的)資料。該等資料存取許可的實例係無存取許可、唯讀許可、唯寫許可、讀及寫許可、與讀及執行許可。在各種實施例中,記憶體中的各分頁表條目儲存一或多個位址映射及對應的許可指數。如在本文中所使用,該「許可指數」亦稱為許可指標、許可識別符等。該等許可指數不儲存資料存取許可,但其等係用於處理器內以識別該等資料存取許可。
在各種實施例中,該處理器額外包括一或多個查找表(lookup table, LUT)。各表條目儲存至少一種類型的資料存取許可。資料存取許可的上述實例等同於資料存取許可的類型。因此,該唯讀許可係一種類型,而該唯寫許可係另一種類型等。在一些實施例中,當該處理器從記憶體中之一分頁表接收一或多個位址映射及一對應的許可指數時,該處理器內的邏輯基於接收之該許可指數以選擇該一或多個LUT之一者。在其他實施例中,當該處理器實行位址轉譯而同時執行一記憶體存取操作時,該處理器內的該邏輯基於所接收之該許可指數以選擇該一或多個LUT之一者。
在一些實施例中,多個LUT係維持在一相同資料儲存中,諸如一組暫存器、一佇列、一內容可定址記憶體(content addressable memory, CAM)、一暫存器檔案、一隨機存取記憶體(random access memory, RAM)等。該處理器中之該邏輯使用該許可指數之一部分以選擇用以實施該等LUT之單一資料儲存的一部分。在其他實施例中,多個LUT係維持在實體上分開的資料儲存中。在一實施例中,當選擇表條目時,或以其他方式識別表條目時,該邏輯讀取儲存在該選定表條目中之一資料存取許可。在各種實施例中,該位址映射及該許可指數係由一或多個外部處理器共用。在一實施例中,其他處理器之至少一者使用不同的一資料存取許可,儘管共用相同的該位址映射及該許可指數。例如,該處理器係中央處理單元(central processing unit, CPU),且外部處理器係圖形處理單元(graphics processing unit, GPU)。該CPU及該GPU共用一或多個分頁表,但該CPU使用不同於由該GPU所使用之資料存取許可的資料存取許可。該CPU維持其內部LUT組,且該GPU維持其分開的內部LUT組。現在,在各種實施例中,該共用分頁表之一單一副本係儲存在系統記憶體中,而非用於該CPU之一第一副本及用於該GPU之一第二副本。據此,在各種實施例中,許可指數及統一位址轉譯、或映射之一單一副本係儲存在系統記憶體中之一單一共用分頁表中。
在一些實施例中,該處理器使用除了所接收的該許可指數以外之一操作模式以選擇資料存取許可。該操作模式的實例係由運行在該處理器上的該作業系統所使用之一正常操作模式及一替代操作模式。在一實施例中,該處理器中的該邏輯基於該操作模式以選擇該多個LUT之一給定LUT。在另一實施例中,一LUT之該等表條目儲存多組資料存取許可,且該邏輯基於該操作模式以選擇一選定表條目內之該組。
在其他實施例中,該處理器使用除了該操作模式及所接收的該許可指數之一或多者以外的一例外層級來選擇資料存取許可。該例外層級係用以指示針對該處理器的內部暫存器之一存取量。如本文中所使用,「例外層級(exception level)」亦稱為「特權層級(privilege level)」。在一些情況下,該例外層級越低,則越少存取授予該等處理器內部暫存器。例如,零之一例外層級(或EL0)係用於執行軟體應用程式的一使用者層級,且零之該例外層級不具有對用於例外和中斷之暫存器、在該記憶體管理單元(memory management unit, MMU)內之暫存器等的存取。在一些設計中,一超管理器(hypervisor)具有如具有主機特權之一使用者的相同特權或存取。因此,存在一主機EL0及一訪客EL0。在其他設計中,該超管理器具有較少的特權或存取,而因此,一訪客例外層級總是比一主機例外層級更具限制性。
在各種設計中,該處理器針對各操作模式及各例外層級維持一分開的LUT。額外地,在一些設計中,該處理器針對由一不同的外部處理器所共用的各分頁表維持一分開的LUT或一組LUT。例如,該處理器針對由一GPU所共用的分頁表維持一第一組一或多個LUT。該處理器亦針對由一多媒體引擎或一數位信號處理器(digital signal processor, DSP)、一音訊處理器、或一相機等所共用的分頁表維持一第二組一或多個LUT。
參照下文描述及附圖,將進一步理解這些及其他實施例。
相關申請案之交互參照
本申請案主張於2019年9月4日申請之發明名稱為「UNIFIED ADDRESS TRANSLATION」的臨時專利申請案序號第62/895,884號、以及於2020年5月15日申請之發明名稱為「UNIFIED ADDRESS TRANSLATION」的美國專利申請案第16/874,997號的優先權,其全文係以引用方式併入本文中。
在下文描述中,提出許多具體細節,以提供對本揭露描述之實施例的透徹理解。然而,所屬技術領域中具有通常知識者應當認識到,可在沒有這些具體細節的情況下實施該等實施例。在一些情況下,為了便於圖解闡釋與避免模糊實施例的描述,未詳細展示熟知的電路、結構、與技術。
參考圖1,展示在一計算系統中用於將位址映射及指標轉移至對應於該等位址映射之資料存取許可的介於處理器與記憶體之間的請求序列100之一實施例的一通用方塊圖。在所繪示的實施例中,兩個處理器複合體110及120透過通訊網狀結構130以將訊息及資料轉移至彼此或轉移至記憶體140。雖然僅展示兩個處理器複合體,但在其他實施例中,另一數目個處理器複合體係在該系統中。用語「處理器複合體(processor complex)」係用以表示使用局部儲存(諸如共用快取記憶體子系統)且能夠一起處理工作量之一或多個處理器核心的組態。
在各種實施例中,不同類型訊務獨立地流動通過通訊網狀結構130。在一些實施例中,通訊網狀結構130利用單一實體結構匯流排以包括各承載不同類型訊務的數個疊加之虛擬通道、或專用來源與目標緩衝區。各通道受獨立地流動控制,不同通道中的異動之間無相關性。在其他實施例中,通訊網狀結構130係基於封包的,並且可以橋接器、叉線、點對點、或其他互連而係階層式的。該等處理器複合體之各者包括一網狀結構介面單元(fabric interface unit, FIU)。在一些設計中,除了用於利用通訊網狀結構130而根據給定通訊協定以轉移訊息及資料的電路系統以外,FIU包括用於儲存傳入及傳出的訊息之佇列。在一實施例中,該電路系統包括用於已接收請求之部分預解碼或完整解碼的解碼器邏輯。
在各種實施例中,多個處理器複合體110及120之各者在擷取指令及資料時利用線性位址(虛擬位址),而同時處理一或多個軟體應用程式。該等指令及資料可係擷取自一局部快取記憶體子系統,其係為了易於說明而未展示。當該局部快取記憶體子系統不儲存所請求資料時,多個處理器複合體110及120存取記憶體140,其代表局部系統記憶體及/或外部記憶體。
處理器複合體110及120之各者包括至少一個轉譯後備緩衝區(TLB)。例如,處理器複合體110包括TLB 114,而處理器複合體120包括TLB 124。TLB 114及124之各者儲存一分頁表之一子集,諸如分頁表142。雖然展示單一分頁表,但是在各種設計中,記憶體140儲存多個分頁表。然而,在各種實施例中,分頁表142係儲存在記憶體140中的許可指數及對應的位址映射之一單一副本。分頁表142儲存虛擬位址至實體位址的位址映射,其中虛擬分頁係載入實體記憶體中。如所展示,分頁表142包括多個分頁表條目。分頁表條目150代表分頁表142中的分頁表條目之任一者。分頁表條目150包括一或多個位址映射154,諸如虛擬位址至實體位址的位址映射。分頁表條目150亦包括對應於一或多個位址映射154的一或多個許可指數152。許可指數152不儲存資料存取許可,但其係用於處理器複合體110及120內以識別該等資料存取許可。
處理器複合體120使用TLB 124以一種如處理器複合體110使用TLB 114的類似方式。因此,處理器複合體120亦實行以下步驟。當處理器複合體110執行一給定記憶體存取操作時,處理器複合體110以該給定記憶體存取操作之一線性(虛擬)位址存取TLB 114,以判定TLB 114是否含有用於保持所請求指令或所請求資料之一記憶體位置的一相關聯實體位址。如本文中所使用,「記憶體存取操作(memory access operation)」亦稱為「記憶體存取請求(memory access request)」。
TLB 114及124的各緩衝區條目儲存一或多個虛擬至實體位址映射及對應於該等虛擬至實體位址映射的資料存取許可。處理器複合體110基於該等對應的資料存取許可來存取由該等虛擬至實體位址映射之實體位址所指向的資料。該等資料存取許可的實例係無存取許可、唯讀許可、唯寫許可、讀及寫許可、與讀及執行許可。在各種實施例中,處理器複合體110基於所接收的許可指數以將資料存取許可從該等一或多個查找表(LUT) 112載入TLB 114中。LUT 112之各表條目儲存至少一種類型的資料存取許可。資料存取許可的上述實例等同於資料存取許可的類型。因此,該唯讀許可係一種類型,而該唯寫許可係另一種類型等。
在各種實施例中,該分頁表142係由處理器複合體110及120之各者所共用。在各種實施例中,共用分頁表142之一單一副本係儲存在記憶體140中,而非用於處理器複合體110之一第一副本及用於處理器複合體120之一第二副本。因此,單一分頁表142包括統一位址轉譯、或映射,因為該等位址轉譯的相同副本係由至少處理器複合體110及處理器複合體120所存取。雖然處理器複合體110與120共用分頁表142中所儲存的位址映射及許可指數,但處理器複合體110及120之各者具有彼此分開的資料存取許可。因此,雖然LUT 112及122係由儲存在分頁表142中之相同許可指數來指示,但LUT 112及122儲存不同的資料存取許可。
接下來,使用時間點t0至t7來描述用於從多個可用的資料存取許可選擇資料存取許可的步驟序列。時間點t0亦僅稱為時間t0。隨著處理器複合體110處理一或多個軟體應用程式,處理器複合體110中的統一位址轉譯單元116在時間t0產生並傳送針對儲存在分頁表142中之內容的讀取請求「A」。分頁表142亦指示為「共用分頁表A」。統一位址轉譯單元116亦稱為位址轉譯單元(address translation unit, ATU)116。ATU 116包括邏輯,該邏輯係實施為硬體、軟體或硬體與軟體之組合。類似地,處理器複合體120之ATU 126係實施為包括電路系統之硬體、軟體或硬體與軟體之組合。如所展示,在時間點t1(或時間t1),通訊網狀結構130將讀取請求「A」轉送至記憶體140。在時間t2,記憶體140的記憶體控制器(未圖示)判定請求「A」係記憶體讀取請求並存取目標分頁表142。
在時間t3,記憶體140的記憶體控制器利用從分頁表142至通訊網狀結構130之所請求的一或多個位址映射來傳送回應「A」。回應「A」亦包括對應於該一或多個位址映射的第一許可指數。在時間t4,通訊網狀結構130傳送回應「A」至處理器複合體110。在一些實施例中,處理器複合體110之FIU實行解碼並判定回應「A」係一記憶體讀取回應。之後,該FIU傳送經解碼回應「A」至處理器複合體110中之一或多個核心。
在一些實施例中,當核心的ATU 116在時間t5從分頁表142接收一或多個位址映射及對應的許可指數時,ATU 116將所接收之第一許可指數儲存在TLB 114的緩衝區條目中。額外地,ATU 116將所接收之一或多個位址映射儲存在TLB 114的緩衝區條目中。在另一實施例中,ATU 116將所接收之第一許可指數儲存在處理器複合體110中之一或多個緩衝區的另一緩衝區中。該一或多個緩衝區係實施為一組暫存器、一佇列、一表、一內容可定址記憶體(CAM)、一暫存器檔案、一隨機存取記憶體(RAM)等之一者。在一實施例中,該一或多個緩衝區包括至少LUT 112及TLB 114。在一些實施例中,ATU 116基於處理器複合體110之操作模式、處理器複合體110之例外層級及一或多個所接收的第一許可指數之一許可指數的一或多者以選擇LUT 112之表的一者。ATU 116使用許可指數之剩餘部分(諸如表指數)以選擇選定表的表條目。接下來,ATU 116讀取來自選定表條目之資料存取許可。在此類實施例中,ATU 116將所擷取的資料存取許可儲存在TLB 114的緩衝區條目中。額外地,ATU 116將對應的位址映射儲存在緩衝區條目中。在另一實施例中,ATU 116將位址映射儲存在TLB 114的緩衝區條目中,但將資料存取許可儲存在處理器複合體110中之一或多個緩衝區的另一緩衝區中。
在時間t6,ATU 116利用第一位址處理所接收的記憶體存取操作。在一些實施例中,ATU 116基於來自處理器複合體110中之一或多個緩衝區的一者之第一位址以擷取許可指數。在一實施例中,ATU 116基於來自TLB 114之緩衝區條目的第一位址以擷取許可指數。在另一實施例中,ATU 116基於來自處理器複合體110中之一或多個緩衝區的另一緩衝區之一條目的第一位址以擷取許可指數。額外地,ATU 116基於具有來自TLB 114之緩衝區條目的第一位址之位址映射以擷取第二位址。之後,ATU 116利用稍早針對時間點t5所描述的存取步驟以從LUT 112的表之一者擷取資料存取許可。在時間t7,處理器複合體110之一或多個核心基於該資料存取許可以存取在由經擷取的第二位址所識別之記憶體位置中儲存的資料。注意:在一些實施例中,在稍早的時間點t5,當處理器複合體110之一或多個核心從分頁表142接收位址映射及對應的許可指數時,該一或多個核心基於處理器複合體110的操作模式、處理器複合體110的例外層級、及對應的許可指數之一或多者來選擇LUT 112的表之一者。該一或多個核心從選定LUT 112的表條目擷取資料存取許可,並基於所擷取的資料存取許可來存取在由對應於該許可指數之位址所識別的記憶體位置中儲存的資料。
參考圖2,展示在一計算系統中用於將位址映射及指標轉移至對應於該等位址映射之資料存取許可的介於處理器與記憶體之間的請求序列200之一實施例的一通用方塊圖。先前所述的電路系統及邏輯係相同地編號。如稍早所述,處理器複合體110及120之各者共用對分頁表142之存取。用於從處理器複合體110中之多個可用的資料存取許可選擇資料存取許可的步驟序列先前已在圖1中描述。此處,使用時間點t8至t15來描述用於從處理器複合體120中之多個可用的資料存取許可選擇資料存取許可的步驟序列。
隨著處理器複合體120處理一或多個軟體應用程式,處理器複合體120之ATU 126在時間t8產生並傳送針對儲存在分頁表142中之內容的讀取請求「B」,該分頁表亦指示為「共用分頁表A」。如所展示,在時間t9,通訊網狀結構130將讀取請求「B」轉送至記憶體140。在時間t10,記憶體140的記憶體控制器判定請求「B」係記憶體讀取請求並存取目標分頁表142。
在時間t11,記憶體140的記憶體控制器利用從分頁表142至通訊網狀結構130之所請求的一或多個位址映射來傳送回應「B」。回應「B」亦包括對應於該一或多個位址映射的第一許可指數。注意:這些係回傳至處理器複合體110之相同的第一許可指數。在時間t12,通訊網狀結構130傳送回應「B」至處理器複合體120。處理器複合體120之FIU實行解碼並判定回應「B」係一記憶體讀取回應。之後,該FIU傳送經解碼之回應「B」至處理器複合體120中之給定核心。
在時間t13,當該核心從分頁表142接收一或多個位址映射及對應的許可指數時,ATU 126實行稍早在時間點t5針對ATU 116所描述的步驟。類似地,在時間t14,ATU 126實行稍早在時間點t6針對ATU 116所描述的步驟。然而,注意:儘管使用如處理器複合體110之相同的許可指數,處理器複合體120擷取不同的資料存取許可。在時間t15,處理器複合體120之一或多個核心基於對應的已擷取資料存取許可來存取由位址映射中之位址所識別的資料。
現在轉到圖3,展示一種用於有效率地將位址映射及對應的指標轉移至資料存取許可的方法300之一實施例的一通用流程圖。為了討論的目的,以循序順序展示此實施例中的步驟。然而,在其他實施例中,一些步驟可依與所示不同的順序發生,一些步驟可同時實行,一些步驟可與其他步驟組合,且一些步驟可能不存在。
在各種設計中,一計算系統包括一通訊網狀結構,該通訊網狀結構用於在一或多個代理及一或多個端點之間路由訊務。各代理及各端點均係針對取決於通過該網狀結構之訊務流的方向之異動(transaction)之來源及目的地。代理的實例包括多媒體引擎、數位信號處理器(DSP)、及處理單元或處理器複合體(如稍早所述)之一或多者,各具有中央處理單元(CPU)及資料平行處理器(如圖形處理單元(GPU))之一或多者。端點包括輸入/輸出(I/O)周邊裝置,諸如記憶體裝置、通訊介面,諸如無線電通訊介面、揚聲器、相機、顯示器等。資料係在不同代理當中及在可用端點當中共用。雖然以下說明係指代理,但代理之一或多者可由端點之一實例置換。
至少一第一代理及一第二代理處理一或多個軟體應用程式(方塊302)。第一代理將針對一組位址映射之第一請求從一分頁表傳送至儲存該分頁表之記憶體(方塊304)。該網狀結構將該第一請求轉送至該記憶體,其中對應的記憶體控制器儲存該第一請求。記憶體之記憶體控制器服務該第一請求(方塊306)。第一代理經由該網狀結構以接收所請求之該組位址映射及所請求之該組位址映射的許可指數(方塊308)。
在一些實施例中,第一代理使用該等許可指數以擷取該組位址映射的第一資料存取許可(或第一許可)(方塊310)。在一實施例中,當該第一代理接收該等許可指數時,該第一代理擷取該等第一許可。如稍早所述,在一些實施例中,第一代理基於第一代理的操作模式、第一代理的例外層級、及一或多個所接收之許可指數的一許可指數之一或多者以選擇儲存資料存取許可的多個查找表(LUT)之一者。第一代理使用許可指數之一部分以選擇選定表的表條目。第一代理讀取來自選定的表條目之第一許可。
在另一實施例中,第一代理擷取第一許可,而同時實行在稍後時間點接收的記憶體存取操作之位址轉譯。在此類實施例中,第一代理儲存該組位址映射(諸如將其等儲存在TLB中),並將所接收之許可指數儲存在第一代理中的多個緩衝區之一者中。當實行一記憶體存取操作的位址轉譯時,該第一代理在一稍後時間點存取所儲存的該等位址映射及所儲存的該等許可指數。基於該等第一許可,該第一代理存取使用第一組位址映射所發現的位址所指向的資料(方塊312)。
以類似於以上的方式,該第二代理存取該分頁表中之共用資料。然而,儘管使用相同、共用位址映射及對應的許可指數,該第二代理使用不同的資料存取許可。例如,第二代理將針對該組位址映射之第二請求從該分頁表傳送至儲存該分頁表之記憶體(方塊314)。該網狀結構將該第二請求轉送至該記憶體,其中對應的記憶體控制器儲存該第二請求。記憶體之記憶體控制器服務該第二請求(方塊316)。第二代理經由該網狀結構以接收所請求之該組位址映射及所請求之該組位址映射的許可指數(方塊318)。注意:這些係由稍早方塊308中之第一代理所接收的相同位址映射及相同許可指數。
第二代理使用該等許可指數以擷取該組位址映射的第二資料存取許可(或第二許可)(方塊320)。在一實施例中,當該第二代理接收該等許可指數時,該第二代理擷取該等第二許可。注意:第二許可係不同於第一許可。在一實例中,該第一代理具有讀及寫資料存取許可,但該第二代理具有唯讀資料存取許可。如稍早所述,在一些實施例中,第二代理基於第二代理的操作模式、第二代理的例外層級、及一或多個所接收之給定許可指數的許可指數之一或多者以選擇儲存資料存取許可的多個查找表(LUT)之一者。第二代理使用許可指數之剩餘者以選擇選定表的表條目。第二代理讀取來自選定表條目之第二許可。
在另一實施例中,第二代理擷取第二許可,而同時實行在稍後時間點接收的記憶體存取操作之位址轉譯。在此類實施例中,第二代理儲存該組位址映射(諸如將其儲存在一TLB中),並將所接收之許可指數儲存在第二代理中的多個緩衝區之一者中。當實行一記憶體存取操作的位址轉譯時,該第二代理在一稍後時間點存取所儲存的該等位址映射及所儲存的該等許可指數。基於該等第二許可,該第二代理存取使用該組位址映射所發現的位址所指向的資料(方塊322)。再次,在一實例中,該第二代理以唯讀資料存取許可存取此資料,而該第一代理以讀及寫資料存取許可存取此相同資料。
參考圖4,展示儲存資料存取許可的查找表(LUT) 400之一實施例的通用方塊圖。在所繪示之實施例中,LUT 400包括作用以指示對應位元之意義的欄位412至414。在一些實施例中,代理中之邏輯基於代理的操作模式及代理的例外層級之一或多者以選擇LUT 400。欄位412儲存各表條目之指數。符號「2’b」係指具有兩個二元數位或兩個位元之二元值。如所展示,LUT 400包括四個表條目,各具有各別指數。在一些實施例中,處理器核心中之邏輯將所接收之許可指數的一部分與儲存在欄位412中的值進行比較。該邏輯使用匹配值來選擇LUT 400的表條目。欄位414描述對應位元之意義。例如,具有指數2’b00的第一表條目沒有存取許可。具有指數2’b01的第二表條目具有唯寫許可,以此類推。未顯示於LUT 400中之資料存取許可的其他值及值之組合亦是可行的且經設想的。
參考圖5,展示儲存資料存取許可的查找表(LUT) 500之一實施例的通用方塊圖。在所繪示之實施例中,LUT 500包括欄位512至516。在其他實施例中,LUT 500包括比所示更多或更少的欄位。在一些實施例中,代理中之邏輯基於代理的例外層級以選擇LUT 500。欄位512儲存各表條目之指數。符號「4’b」係指具有4個二元數位或四個位元之二元值。如所展示,LUT 500包括十六個表條目,各具有各別指數。在一些實施例中,處理器核心中之邏輯將所接收之許可指數的一部分與儲存在欄位512中的值進行比較。該邏輯使用匹配值來選擇LUT 500的表條目。
欄位514及516指示針對一給定操作模式(第一模式514及第二模式516)之對應位元的意義。例如,具有指數4’b0000的第一表條目對應於在兩操作模式中沒有存取許可。在一實施例中,代理中之邏輯基於代理的操作模式以選擇意義514及516。在另一實施例中,分開的LUT係用於操作模式之各者,且該邏輯基於該代理目前係使用正常操作模式或使用替代操作模式來選擇兩個分開的LUT之一者。在一些實施例中,操作模式之一指示係儲存在一可程式化組態及狀態暫存器(configuration and status register, CSR)中。在各種設計中,作業系統更新此特定CSR。具有指數4’b0001之LUT 500的第二表條目不具有針對欄位514中之替代模式的存取許可,且具有針對欄位516中之正常模式的讀及執行許可。未顯示於LUT 500中之資料存取許可的其他值及值之組合亦是可行的且經設想的。
現在轉到圖6,展示繪示查找表(LUT)搜尋600的一實施例之通用方塊圖。在各種實施例中,許可儲存630係位於一代理、或處理器複合體內。在一些實施例中,多個LUT係維持在相同的資料儲存(諸如許可儲存630)中。許可儲存630係實施為一組暫存器、一佇列、一表、一內容可定址記憶體(CAM)、一暫存器檔案、一隨機存取記憶體(RAM)等之一者。在其他實施例中,多個LUT係維持在實體上分開的資料儲存中。
在一實施例中,一代理或處理器複合體之處理器中的邏輯使用來自一分頁表條目的許可指數610之一部分來選擇用以實施多個LUT的許可儲存630之一部分。如所展示,許可指數610包括一表編號612及一表指數614。圖6中之圈起的數字描繪依序的事件序列。此序列係用於以下實例中。處理器中之邏輯使用表編號612以將指數編入許可儲存630中並選擇LUT 650。例如,在一實施例中,零(0)的表編號選擇圖5的表,並且一(1)的表編號選擇圖4的表。各種此類實施例係可行的且經設想的。由表編號612所指向之許可儲存記憶體630的此部分大致稱為一個LUT,諸如儲存在許可儲存630中之多個LUT的LUT 650。LUT 650包括表條目652a至652j。以類似方式,LUT 640包括表條目642a至642g。
在序列2中,處理器中的邏輯可使用表指數614來以前向或後向將指數編入LUT 650。如所展示,該邏輯選擇表條目652j。在一實施例中,條目652a至652j之各者可包括進一步條目或欄位。例如,條目652j包括條目654a至654f。在一個實施例中,條目652a至652j之各者儲存一分開的資料存取許可。在一些實施例中,處理器中的邏輯基於模式616以選擇序列3中的條目654b。在若干設計中,模式616係該代理、或處理器複合體的操作模式。在其他設計中,模式616係該代理、或處理器複合體的例外層級。在又其他設計中,模式616係用以區分儲存在表條目652j中之不同類型的資料存取許可之另一值。
在序列4中,處理器中的邏輯讀取來自條目654b的資料存取許可660。該邏輯稍後將許可660寫入TLB的選定緩衝區條目中。該邏輯亦將一位址映射寫入該選定緩衝區條目中。類似於許可指數610,位址映射係較早地自儲存在系統記憶體中的分頁表條目讀出。
現在轉到圖7,展示一計算系統700之一實施例的一通用方塊圖,該計算系統能夠有效率地轉移計算系統中之位址映射及對應於該等位址映射之資料存取許可。如所展示,通訊網狀結構710在輸入/輸出(I/O)介面702、記憶體介面730、與處理器複合體760A至760B之間的路由訊務。為了易於說明,時脈源(諸如鎖相迴路(phase lock loop, PLL))、中斷控制器、電力管理器等未展示在圖7中。在各種實施例中,計算系統700係一系統單晶片(system on chip, SoC),其包括在單一半導體晶粒上之多種類型的積體電路,各積體電路提供一分開的功能性。在其他實施例中,該多個功能單元係在一封裝內的個別晶粒,諸如多晶片模組(multi-chip module, MCM)。在又其他實施例中,該多個功能單元係在一印刷電路板上的個別晶粒或晶片。
注意:計算系統700之組件的數目(及圖7中所展示之該些者的子組件的數目,諸如在處理器複合體760A至760B之各者內)可隨著實施例而變化。可存在比針對計算系統700所展示之數目更多或更少的各組件/子組件。如稍早所述,用語「處理器複合體(processor complex)」係用以表示使用局部儲存(諸如共用快取記憶體子系統)且能夠一起處理工作量之一或多個處理器核心的組態。
在各種實施例中,處理器複合體760A至760B之各者係以來自不同電力平面之不同供應電壓操作。在其他實施例中,處理器複合體760A至760B之各者係以來自單一電力平面之相同供應電壓操作,而同時亦以來自不同時脈域之不同時脈頻率源操作。在各種實施例中,不同類型訊務獨立地流動通過網狀結構710。藉由允許單一實體結構匯流排包括各承載不同類型訊務的數個疊加之虛擬通道、或專用來源與目標緩衝器,來實現獨立流動。各通道受獨立地流動控制,不同通道中的異動之間無相關性。網狀結構710亦可係基於封包的,並且可以橋接器、叉線、點對點、或其他互連而係階層式的。
在一些實施例中,記憶體介面730使用至少一記憶體控制器及用於晶片外記憶體之至少一快取,諸如同步DRAM (SDRAM)。記憶體介面730在請求佇列中儲存記憶體請求、使用任何數量的記憶體埠、並使用能夠使用各種協定之一或多者來介接至記憶體的電路系統,該等協定係用以與用來介接至記憶體裝置(未圖示)之記憶體通道介接。記憶體介面730可負責信號之時序,用於適當計時至同步動態隨機存取記憶體(synchronous dynamic random access memory, SDRAM)、晶粒上快閃記憶體等。
在各種實施例中,記憶體介面730、中斷控制器(未圖示)、及網狀結構710之一或多者使用控制邏輯以確保不同處理器複合體760A至760B及周邊裝置當中的同調。在一些實施例中,此電路系統使用快取同調邏輯,其採用快取同調協定以確保由各來源存取的資料保持為最新。快取一致性協定的實例包括MOESI協定,其具有經修改(M)狀態、擁有(O)狀態、獨佔(E)狀態、共用(S)狀態、與無效(I)狀態。
雖然展示一單一記憶體740,但是計算系統700可包括配置在一記憶體階層中的多個記憶體組件。例如,記憶體740可包括一共用最末階快取(若其不包括在記憶體介面730中)、一SDRAM、或其他類型的RAM、晶粒上快閃記憶體等之一或多者。如所展示,記憶體740儲存一或多個應用程式,諸如應用程式744。在一實例中,當應用程式744係由基礎作業系統(operating system, OS) 742選擇以用於執行時,應用程式744之至少一部分的副本係載入處理器770A至770B之一者中的指令快取中。替代地,一虛擬(訪客)OS(未圖示)選擇用於執行的應用程式744。
記憶體740儲存基礎OS 742之一副本,且基礎OS 742之部分的副本係由處理器770A至770B之一或多者所執行。資料748可代表用於應用程式的來源資料,除了在應用程式之執行期間所產生的結果資料及及中間資料以外。用於儲存在記憶體740中且由軟體程序所使用之資料的虛擬位址空間一般係劃分成預定大小的分頁。虛擬分頁係映射至實體記憶體的訊框。虛擬位址至實體位址之映射(其中虛擬分頁係載入實體記憶體中)係儲存在分頁表750中。轉譯後備緩衝區(TLB) 768及772之各者儲存分頁表750的子集。如所展示,分頁表750包括多個分頁表條目。分頁表條目780代表分頁表750中的分頁表條目之任一者。分頁表條目780包括一或多個位址映射784,諸如虛擬位址至實體位址的位址映射。分頁表條目780亦包括對應於一或多個位址映射784的一或多個許可指數782。許可指數782不儲存資料存取許可,但其係用於處理器複合體760A至760B內以識別該等資料存取許可。
在一些實施例中,處理器複合體760A之組件762至778係類似於處理器複合體760B中之組件。在其他實施例中,處理器複合體760B中之組件係設計用於較低的電力消耗,而因此包括產生較少效能之控制邏輯及處理能力。例如,經支援的時脈頻率可小於處理器複合體760A中之所支援的時脈頻率。此外,處理器複合體760B中的處理器之一或多者可包括較少數目的執行管線及/或功能方塊,用於處理比由處理器複合體760A中之處理器770A至770B所支援者相對高的電力消耗指令。
如所展示,處理器複合體760A使用一網狀結構介面單元(FIU) 762,以用於提供記憶體存取請求及回應於至少處理器770A至770B。處理器複合體760A亦支援包括至少快取766之快取記憶體子系統。在一些實施例中,快取766係處理器770A至770B之共用晶粒外第二階(L2)快取,雖然L3快取亦是可行的且經設想的。
在一些實施例中,處理器770A至770B使用一均質架構。例如,處理器770A至770B之各者係通用處理器,諸如中央處理單元(CPU),其利用根據預定義通用指令集以執行指令之電路系統。可選擇多種指令集架構(instruction set architecture, ISA)中之任一種。在一些實施例中,處理器770A至770B內之各核心支援軟體程序中之一或多個執行緒的非順序執行,且包括多級管線。在其他實施例中,在處理器770A至770B內的一或多個核心支援一或多個執行緒的順序執行。處理器770A至770B可支援各種作業系統的執行。
在其他實施例中,處理器770A至770B使用一異質架構。在此類實施例中,處理器770A至770B之一或多者係高度平行資料架構的處理器,而非CPU。在一些實施例中,處理器770A至770B的這些其他處理器使用單指令多資料(single instruction multiple data, SIMD)核心。SIMD核心的實例係圖形處理單元(GPU)、數位信號處理(DSP)核心、或其他。
在各種實施例中,處理器770A至770B之各者係使用一或多個核心及一或多階快取記憶體子系統。處理器770A至770B使用用於存取資料及指令之多個一或多個晶粒上階(L1、L2、L7等)快取。若在晶粒上快取中或在晶粒外快取766中未發現所請求的區塊,則產生並經由網狀結構710傳輸針對遺漏區塊的讀取請求至記憶體介面730。當選擇應用程式744以供藉由處理器複合體760A之執行時,選定應用程式之副本係從記憶體740擷取並儲存在處理器複合體760A之快取766中。在各種實施例中,當從快取774及766擷取指令及資料而同時處理應用程式744至746時,處理器複合體760A至760B之各者利用線性位址(虛擬位址)。
處理器770A至770B之各者能夠擷取除了來自共用分頁表750之對應位址映射784以外的許可指數782。處理器770A至770B之各者更新TLB 768及772之一或多者中的虛擬至實體映射之子集或全部。此外,在一些實施例中,位於處理器770A至770B外部的邏輯(諸如記憶體控制器(未圖示)或FIU 762)儲存經擷取的許可指數782,除了一或多個緩衝區(諸如TLB 768)中的對應位址映射784以外。該邏輯稍後基於所儲存之該等許可指數之一副本以從LUT 764選擇資料存取許可。在一個實施例中,該邏輯係集中在位址轉譯單元(ATU) 765中。在一實施例中,ATU 765具有與(圖1及圖2之)ATU 116及ATU 126之功能性等效的功能性。在一個實施例中,ATU 765基於從記憶體740所擷取的許可指數782以從LUT 764擷取資料存取許可。之後,ATU 765將經擷取的資料存取許可及對應的位址映射784儲存在一或多個緩衝區(諸如TLB 768)中。在一些實施例中,處理器複合體760A包括具有如LUT 764及ATU 765之等效功能性的LUT 776及ATU 777。在此類實施例中,LUT 776儲存LUT 764中所儲存的資訊之子集。
在一些實施例中,選定的資料存取許可係用於TLB 768及772之一或多者中的虛擬至實體映射之子集。在其他實施例中,選定的資料存取許可係用於TLB 768及772之一或多者中的虛擬至實體映射之全部。如稍早所述,在一實施例中,ATU 765以所接收之許可指數782來存取查找表(LUT) 764,以獲得來自LUT 764之資料存取許可。在一些實施例中,資料存取許可係利用位址映射而儲存在TLB 768及772之各者中。雖然未圖示,但在一些實施例中,一或多個其他代理(諸如耦接至I/O介面702之I/O裝置)亦包括LUT,並基於儲存在共用分頁表750中之許可指數來選擇資料存取許可。
接著轉到圖8,展示系統800的一實施例的方塊圖。如圖所示,系統800代表桌上型電腦810、膝上型電腦820、平板電腦830、手機或行動電話840、電視850(或耦接至電視的機上盒)、腕錶、或其他可穿戴物品860的晶片、電路系統、組件等、或其他。其他裝置係可行且可設想。在所繪示的實施例中,系統800包括一系統單晶片(SoC)806之至少一例項,其包括多個處理器及一通訊網狀結構。在一些實施例中,SoC 806包括類似於(圖8的)處理器管線核心800之一或多個處理器核心,其包括查找表(LUT),諸如(圖1的)LUT 112及122、(圖4至圖5的)LUT 400及500以及(圖6的)許可儲存630。此外,在SoC 806內之一或多個處理器複合體包括邏輯,諸如(圖1的)位址轉譯單元(ATU) 116及ATU 126。在各種實施例中,SoC 806係耦接至外部記憶體802、週邊裝置804、與電力供應器808。
亦提供一電力供應器808,其將供應電壓供應至SoC 806以及將一或多個供應電壓供應至記憶體802及/或週邊裝置804。在各種實施例中,電力供應器808代表電池(例如,智慧型手機、膝上型電腦、或平板電腦中的可再充電電池)。在一些實施例中,包括SoC 806之多於一個例項(且亦包括多於一個外部記憶體802)。
記憶體802係任何類型記憶體,諸如動態隨機存取記憶體(dynamic random access memory, DRAM)、同步DRAM (SDRAM)、雙倍資料速率(DDR、DDR2、DDR3等)SDRAM(包括諸如mDDR3等的SDRAM的行動版本,及/或諸如LPDDR2等的SDRAM的低功率版本)、RAMBUS DRAM (RDRAM)、靜態RAM (SRAM)等。一或多個記憶體裝置耦接至電路板上,以形成記憶體模組,諸如單列記憶體模組(single inline memory module, SIMM)、雙列記憶體模組(dual inline memory module, DIMM)等。替代地,裝置係以疊層晶片(chip-on-chip)組態、疊層封裝(package-on-package)組態、或多晶片模組組態利用SoC或積體電路安裝。
週邊裝置804取決於系統800之類型而包括任何所欲電路系統。例如,在一實施例中,週邊裝置804包括用於各種類型無線通訊之裝置,諸如Wi Fi、藍芽、蜂巢式、全球定位系統等。在一些實施例中,週邊裝置804亦包括額外儲存器,包括RAM儲存器、固態儲存器、或硬碟儲存器。週邊裝置804包括使用者介面裝置,諸如顯示螢幕(包括觸控顯示螢幕或多觸控顯示螢幕)、鍵盤、或其他輸入裝置、麥克風、揚聲器等。
在各種實施例中,軟體應用程式的程式指令可用於實施前文所述之方法及/或機制。程式指令用高階程式設計語言(諸如C)描述硬體的行為。替代地,使用硬體設計語言(hardware design language, HDL),諸如Verilog。程式指令係儲存在非暫態電腦可讀儲存媒體上。可用多種類型儲存媒體。在使用期間,可由電腦存取儲存媒體,以提供程式指令與伴隨的資料至用於程式執行的電腦。在一些實施例中,合成工具讀取程式指令,以產生包括來自合成庫的閘極清單之接線對照表。
應強調,上述實施例僅係實施方案的非限制性實例。對於所屬技術領域中具有通常知識者而言,一旦已完全瞭解上述揭示內容,則眾多變化及修改將變得顯而易見。意欲將以下申請專利範圍解釋為涵蓋所有此等變化及修改。
100:序列 110:處理器複合體 112:查找表(LUT) 114:TLB 116:位址轉譯單元(ATU) 120:處理器複合體 122:查找表(LUT) 124:TLB 126:ATU 130:通訊網狀結構 140:記憶體 142:分頁表 150:分頁表條目 152:許可指數 154:位址映射 200:序列 300:方法 302,304,306,308,310,312,314,316,318,320,322:方塊 400:查找表(LUT) 412:欄位 414:欄位 500:查找表(LUT) 512:欄位 514:欄位/模式 516:欄位/模式 600:查找表(LUT)搜尋 610:許可指數 61:表編號 614:表指數 616:模式 630:許可儲存/許可儲存記憶體 640:LUT 642a-642g:表條目 650:LUT 652a-652j:表條目/條目 654a-654f:表條目/條目 660:許可 700:計算系統 702:輸入/輸出(I/O)介面 710:通訊網狀結構/網狀結構 730:記憶體介面 740:記憶體 742:基礎作業系統(OS) 744:應用程式 748:資料 750:分頁表 760A,760B:處理器複合體 762:網狀結構介面單元(FIU)/組件 764:LUT/組件 765:位址轉譯單元(ATU)/組件 766:快取/組件 768:轉譯後備緩衝區(TLB)/組件 770A,770B:處理器/組件 772:轉譯後備緩衝區(TLB)/組件 774:快取/組件 776:LUT/組件 777:ATU/組件 778:計算單元/組件 780:分頁表條目 782:許可指數 784:位址映射 800:系統 802:記憶體 804:週邊裝置 806:系統單晶片(SoC) 808:電力供應器 810:桌上型電腦 820:膝上型電腦 830:平板電腦 840:手機或行動電話 850:電視 860:可穿戴物品 t0:時間/時間點 t1:時間/時間點 t2:時間/時間點 t3:時間/時間點 t4:時間/時間點 t5:時間/時間點 t6:時間/時間點 t7:時間/時間點 t8:時間/時間點 t9:時間/時間點 t10:時間 t11:時間 t12:時間 t13:時間 t14:時間 t15:時間
藉由參考下文描述結合附圖可更好地理解上述之方法與機構以及另外的優點,其中: [圖1]係用於將位址映射及指標轉移至對應於該等位址映射之資料存取許可的介於處理器與記憶體之間的請求序列之一實施例的一方塊圖。 [圖2]係用於將位址映射及指標轉移至對應於該等位址映射之資料存取許可的介於處理器與記憶體之間的請求序列之一實施例的一方塊圖。 [圖3]係一種用於有效率地將位址映射及對應的指標轉移至資料存取許可的方法之一實施例的一流程圖。 [圖4]係儲存資料存取許可的一查找表之一實施例的一方塊圖。 [圖5]係儲存資料存取許可的一查找表之一實施例的一方塊圖。 [圖6]係用於搜尋一查找表以擷取資料存取許可的事件序列之一實施例的一方塊圖。 [圖7]係一計算系統之一實施例的一方塊圖。 [圖8]係一系統之一實施例的一方塊圖。
雖然本揭露內容中所描述之實施例可受到各種修改且具有替代形式,然而其特定實施例係以圖式中實例之方式展示,且將在本文中詳細說明。然而,應理解,圖式及其詳細說明並非意欲將實施例侷限於所揭示之具體形式,而是意欲涵括所有落於所附申請專利範圍的精神與範圍內的修改、均等例及替代例。如本申請案中各處所用,用語「可(may)」係以許可的意涵(即,意指具有可能性)使用,而非以強制意涵(即,意指必須)使用。同樣地,用語「包括(include, including, includes)」意指包括但不限於。
可敘述各種單元、電路、或其他組件為「經組態以(configured to)」實行一任務或多個任務。在這種情況下,「經組態以」是廣泛的結構敘述,通常意味著「具有電路系統」在操作期間實行該任務或多個任務。因而,即使當單元/電路/組件當前並不接通,該單元/電路/組件仍可經組態以實行任務。一般而言,形成對應於「經組態」之結構的電路系統可包括硬體電路。類似地,為了方便敘述,可以將各種單元/電路/組件敘述為實行一任務或多個任務。此種描述應被解讀成包括用語「經組態以」。描述一單元/電路/組件經組態以實行一或多個任務,明確地意欲不援引35 U.S.C. § 112(f)對該單元/電路/組件進行解讀。
100:序列
110:處理器複合體
112:查找表(LUT)
114:TLB
116:位址轉譯單元(ATU)
120:處理器複合體
122:查找表(LUT)
124:TLB
126:ATU
130:通訊網狀結構
140:記憶體
142:分頁表
150:分頁表條目
152:許可指數
154:位址映射
t0:時間/時間點
t1:時間/時間點
t2:時間/時間點
t3:時間/時間點
t4:時間/時間點
t5:時間/時間點
t6:時間/時間點
t7:時間/時間點

Claims (20)

  1. 一種設備,其包含: 一位址轉譯單元;及 一記憶體; 其中回應於接收包含一第一位址的一記憶體存取操作,該位址轉譯單元經組態以: 基於對應於該第一位址的一許可指數來識別一資料存取許可;及 以由經擷取之該資料存取許可所界定的一方式來存取儲存在由一第二位址所識別之該記憶體的一記憶體位置中之資料。
  2. 如請求項1之設備,其中該位址轉譯單元經組態以存取一表來識別該資料存取許可,及其中該位址轉譯單元進一步經組態以基於該第一位址判定該許可指數及該第二位址。
  3. 如請求項2之設備,其中該位址轉譯單元進一步經組態以基於該設備之一操作模式來區分用於相同許可指數之複數個類型的資料存取許可。
  4. 如請求項2之設備,其中該位址轉譯單元進一步經組態以使用該設備之一例外層級來區分用於相同許可指數之複數個類型的資料存取許可。
  5. 如請求項1之設備,其中該許可指數及介於該第一位址與該第二位址之間的一位址映射係由該設備與一外部處理單元共用,其中該外部處理單元使用與經識別的該資料存取許可不同的一資料存取許可。
  6. 如請求項5之設備,其中該設備之該資料存取許可不包含執行許可,且該外部處理單元之該資料存取許可確實包含執行許可。
  7. 如請求項5之設備,其中該許可指數及介於該第一位址與該第二位址之間的該位址映射之各者的僅單一副本係儲存在外部記憶體中之一共用分頁表中。
  8. 一種方法,其包含: 接收包含瞄準一記憶體之一第一位址的一記憶體存取操作;及 回應於接收該記憶體存取操作: 由一位址轉譯單元基於對應於該第一位址的一許可指數來識別一資料存取許可;及 由該位址轉譯單元以由經擷取之該資料存取許可所界定的一方式來存取儲存在由一第二位址所識別之該記憶體的一記憶體位置中之資料。
  9. 如請求項8之方法,其進一步包含該位址轉譯單元: 存取一表以識別該資料存取許可;及 基於該第一位址以判定該許可指數及該第二位址。
  10. 如請求項9之方法,其進一步包含基於該設備之一操作模式來區分用於相同許可指數之複數個資料存取許可。
  11. 如請求項9之方法,其進一步包含基於該設備之一例外層級來區分用於相同許可指數之複數個資料存取許可。
  12. 如請求項8之方法,其中該許可指數及介於該第一位址與該第二位址之間的一位址映射係由該設備與一外部處理單元共用,其中該外部處理單元使用與經識別的該資料存取許可不同的一資料存取許可。
  13. 如請求項12之方法,其中該設備之該資料存取許可不包含一執行許可,且該外部處理單元之該資料存取許可確實包含一執行許可。
  14. 如請求項12之方法,其中該許可指數及介於該第一位址與該第二位址之間的該位址映射之各者的僅單一副本係儲存在外部記憶體中之一共用分頁表中。
  15. 一種非暫時性電腦可讀儲存媒體,其儲存程式指令,其中該等程式指令可由一處理器執行以: 接收包含瞄準一記憶體之一第一位址的一記憶體存取操作;及 回應於接收該記憶體存取操作: 基於對應於該第一位址的一許可指數來識別一資料存取許可;及 以由經擷取之該資料存取許可所界定的一方式來存取儲存在由一第二位址所識別之該記憶體的一記憶體位置中之資料。
  16. 如請求項15之非暫時性電腦可讀儲存媒體,其中該等程式指令可由一處理器執行以存取一表來識別該資料存取許可,及其中該位址轉譯單元進一步經組態以基於該第一位址判定該許可指數及該第二位址。
  17. 如請求項16之非暫時性電腦可讀儲存媒體,其中該等程式指令可由一處理器執行以基於該設備之一操作模式來區分用於相同許可指數之複數個資料存取許可。
  18. 如請求項16之非暫時性電腦可讀儲存媒體,其中該等程式指令可由一處理器執行以基於該設備之一例外層級來區分用於相同許可指數之複數個類型的資料存取許可。
  19. 如請求項15之非暫時性電腦可讀儲存媒體,其中該許可指數及介於該第一位址與該第二位址之間的一位址映射係由該設備與一外部處理單元共用,其中該外部處理單元使用與經識別的該資料存取許可不同的一資料存取許可。
  20. 如請求項19之非暫時性電腦可讀儲存媒體,其中該許可指數及介於該第一位址與該第二位址之間的該位址映射之各者的僅單一副本係儲存在外部記憶體中之一共用分頁表中。
TW109130216A 2019-09-04 2020-09-03 統一位址轉譯 TWI759846B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201962895884P 2019-09-04 2019-09-04
US62/895,884 2019-09-04
US16/874,997 US11221962B2 (en) 2019-09-04 2020-05-15 Unified address translation
US16/874,997 2020-05-15

Publications (2)

Publication Number Publication Date
TW202111545A true TW202111545A (zh) 2021-03-16
TWI759846B TWI759846B (zh) 2022-04-01

Family

ID=74679932

Family Applications (1)

Application Number Title Priority Date Filing Date
TW109130216A TWI759846B (zh) 2019-09-04 2020-09-03 統一位址轉譯

Country Status (3)

Country Link
US (1) US11221962B2 (zh)
TW (1) TWI759846B (zh)
WO (1) WO2021046203A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11853231B2 (en) * 2021-06-24 2023-12-26 Ati Technologies Ulc Transmission of address translation type packets

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7509391B1 (en) * 1999-11-23 2009-03-24 Texas Instruments Incorporated Unified memory management system for multi processor heterogeneous architecture
US8140820B2 (en) 2008-05-21 2012-03-20 Arm Limited Data processing apparatus and method for handling address translation for access requests issued by processing circuitry
US9213651B2 (en) 2009-06-16 2015-12-15 Vmware, Inc. Synchronizing a translation lookaside buffer with page tables
US8479295B2 (en) 2011-03-30 2013-07-02 Intel Corporation Method and apparatus for transparently instrumenting an application program
US20130262814A1 (en) 2012-03-29 2013-10-03 Advanced Micro Devices, Inc. Mapping Memory Instructions into a Shared Memory Address Place
US20140331019A1 (en) 2013-05-06 2014-11-06 Microsoft Corporation Instruction set specific execution isolation
US11775443B2 (en) 2014-10-23 2023-10-03 Hewlett Packard Enterprise Development Lp Supervisory memory management unit
US9852084B1 (en) * 2016-02-05 2017-12-26 Apple Inc. Access permissions modification
FI3812900T3 (fi) 2016-12-31 2024-02-09 Intel Corp Järjestelmät, menetelmät ja laitteet heterogeenistä laskentaa varten
TW201928689A (zh) * 2017-12-21 2019-07-16 晨星半導體股份有限公司 硬體控制系統及硬體控制方法
GB2570474B (en) 2018-01-26 2020-04-15 Advanced Risc Mach Ltd Region fusing

Also Published As

Publication number Publication date
US20210064539A1 (en) 2021-03-04
US11221962B2 (en) 2022-01-11
WO2021046203A1 (en) 2021-03-11
TWI759846B (zh) 2022-04-01

Similar Documents

Publication Publication Date Title
US9256551B2 (en) Embedded encryption/secure memory management unit for peripheral interface controller
US9218286B2 (en) System cache with partial write valid states
US9852084B1 (en) Access permissions modification
US11341059B2 (en) Using multiple memory elements in an input-output memory management unit for performing virtual address to physical address translations
US9158685B2 (en) System cache with cache hint control
US8108617B2 (en) Method to bypass cache levels in a cache coherent system
US9367474B2 (en) Translating cache hints
US9146879B1 (en) Virtual memory management for real-time embedded devices
US20140089600A1 (en) System cache with data pending state
US9135177B2 (en) Scheme to escalate requests with address conflicts
JP2011258189A (ja) プロセッサ・メインメモリのための持続性メモリ
US9229866B2 (en) Delaying cache data array updates
US11422946B2 (en) Translation lookaside buffer striping for efficient invalidation operations
US9311251B2 (en) System cache with sticky allocation
US10725928B1 (en) Translation lookaside buffer invalidation by range
TWI759846B (zh) 統一位址轉譯
US11099990B2 (en) Managing serial miss requests for load operations in a non-coherent memory system
US11226752B2 (en) Filtering memory calibration
US20150067246A1 (en) Coherence processing employing black box duplicate tags
JP6767569B2 (ja) マルチスレッドモードにおける電力低減のための方法及び装置
US11080188B1 (en) Method to ensure forward progress of a processor in the presence of persistent external cache/TLB maintenance requests
US20200081838A1 (en) Parallel coherence and memory cache processing pipelines
US20190286347A1 (en) Management apparatus, information processing apparatus, management method, and computer program product
US9454482B2 (en) Duplicate tag structure employing single-port tag RAM and dual-port state RAM
US11675710B2 (en) Limiting translation lookaside buffer searches using active page size