TW201633116A - 資料處理中的內文感知屏障 - Google Patents

資料處理中的內文感知屏障 Download PDF

Info

Publication number
TW201633116A
TW201633116A TW104135634A TW104135634A TW201633116A TW 201633116 A TW201633116 A TW 201633116A TW 104135634 A TW104135634 A TW 104135634A TW 104135634 A TW104135634 A TW 104135634A TW 201633116 A TW201633116 A TW 201633116A
Authority
TW
Taiwan
Prior art keywords
context
access
data processing
instruction
storage
Prior art date
Application number
TW104135634A
Other languages
English (en)
Other versions
TWI693549B (zh
Inventor
克拉斯克賽門約翰
洪納亞歷山大艾佛列
巴特利麥斯約翰
喬哈爾考瑟
Original Assignee
Arm股份有限公司
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 Arm股份有限公司 filed Critical Arm股份有限公司
Publication of TW201633116A publication Critical patent/TW201633116A/zh
Application granted granted Critical
Publication of TWI693549B publication Critical patent/TWI693549B/zh

Links

Classifications

    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30072Arrangements for executing specific machine instructions to perform conditional operations, e.g. using predicates or guards
    • 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/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/1425Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
    • G06F12/1433Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block for a module or a part of a module
    • 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
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30076Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
    • G06F9/30087Synchronisation or serialisation instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3824Operand accessing
    • G06F9/3834Maintaining memory consistency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3851Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/461Saving or restoring of program or task context
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • G06F9/522Barrier synchronisation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Multimedia (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Storage Device Security (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

根據哪個設備之處理電路可存取記憶體系統及執行資料處理指令於該處理電路所支援之多個內文之一內文中,而提供用於資料處理之設備及資料處理之方法。當處理電路執行屏障指令時,可限制結果存取順序被強制執行,以用於當於經辨識之內文中操作時之已被處理電路所初始化之存取,該經辨識之內文舉例而言可為其中已執行屏障指令之內文。此事提供處理電路之多個可能的內文中之該處理電路之操作間之分隔,特別是避免存取順序限制之完成中之延遲(舉例而言係與存取記憶體之高延遲區域相關)影響其它內文之時間敏感度。

Description

資料處理中的內文感知屏障
本發明係與資料處理相關。更確切地說,本發明係與資料處理設備中之屏障指令之使用有關。
執行資料處理指令以執行或委派資料處理操作之資料處理設備眾所皆知地係經安排以回應屏障指令。屏障指令使資料處理設備確保特定存取順序限制係經強制執行;即,屏障指令確保在資料處理設備可執行資料處理指令之序列中之屏障指令後之指令之前,資料處理設備所執行之資料處理指令之序列中之該屏障指令前之指令完成(即,可確保在記憶體系統內生效)存取。舉例而言,此事可對確保當記憶體系統之內文遭遇到屏障指令時,該記憶體系統之內文係最新的及相對於資料處理設備之目前處理狀態為一致為有用的。
本發明與資料處理設備如何回應遭遇到此類屏障指令之改善相關。
自第一態樣可檢視到此處提供用於資料處理之設備,該設備包含:執行資料處理指令以執行資料處理操作之處理電路,其中該等資料處理操作包含存取記憶體系統,及其中該處理電路能在複數個內文中執行該等資料 處理指令;及記憶體系統互動電路,以提供該處理電路及該記憶體系統間之介面;其中該記憶體系統互動電路能為回應該處理電路執行屏障指令於該複數個內文之目前內文中而強制執行存取順序限制,及其中該記憶體系統互動電路能限制該存取順序限制之強制執行至當於經辨識之內文中操作時之由該處理電路所初始化之存取。
自第二態樣可檢視到此處提供用於資料處理之方法,該方法包含以下步驟:執行資料處理指令以執行資料處理操作,其中該等資料處理操作包含存取記憶體系統,及該資料處理指令經執行於複數個內文之目前內文中;回應該複數個內文之該目前內文中之屏障指令之執行而強制執行存取順序限制;及限制該存取順序限制之強制執行至當執行資料處理指令於經辨識內文中時之經初始化之存取。
自第三態樣可檢視到此處提供用於資料處理之設備,該設備包含:用於執行資料處理指令以執行資料處理操作之手段,其中該等資料處理操作包含存取一記憶體系統,及該等資料處理指令經執行於複數個內文之一目前內文中;及用於提供該處理電路及該記憶體系統間之一介面之手段;其中該用於提供介面之手段能回應用於執行資料處理指令之手段以強制執行存取順序限制,該等資料處理指令係執行屏障指令於該複數個內文之該目前內文中;及其中該用於執行資料處理指令之手段能限制該存取 順序限制之強制執行至由當於經辨識之內文中操作時之該處理電路所初始化之存取。
10‧‧‧資料處理系統
12‧‧‧CPU
14‧‧‧CPU
16‧‧‧處理器
18‧‧‧處理器
20‧‧‧暫存器
22‧‧‧暫存器
24‧‧‧L1記憶體
26‧‧‧L1記憶體
28‧‧‧L2記憶體
30‧‧‧系統匯流排
32‧‧‧記憶體
34‧‧‧管理程序
36‧‧‧虛擬機器
38‧‧‧虛擬機器
40‧‧‧OS1
42‧‧‧OS2
44‧‧‧應用程式
46‧‧‧應用程式
48‧‧‧應用程式
50‧‧‧應用程式
52‧‧‧DPU
54‧‧‧DPU
56‧‧‧STB
58‧‧‧STB
60‧‧‧LSU
62‧‧‧LSU
64‧‧‧BIU
66‧‧‧BIU
68‧‧‧TCM 0
70‧‧‧TCM 1
72‧‧‧SCU
74‧‧‧AXI主埠
76‧‧‧LLRAM
78‧‧‧分頁表
80‧‧‧VSCTLR.VMID
82‧‧‧VSCTLR.VMID
90‧‧‧控制單元
92‧‧‧存儲緩衝插槽
94‧‧‧指示
96‧‧‧內文追蹤器
98‧‧‧高延遲AXI主埠
100‧‧‧一致指令之列表
110‧‧‧步驟
112‧‧‧步驟
114‧‧‧步驟
116‧‧‧步驟
118‧‧‧步驟
120‧‧‧步驟
122‧‧‧步驟
124‧‧‧步驟
126‧‧‧步驟
128‧‧‧步驟
130‧‧‧步驟
132‧‧‧步驟
134‧‧‧步驟
136‧‧‧步驟
138‧‧‧步驟
140‧‧‧步驟
142‧‧‧步驟
144‧‧‧步驟
146‧‧‧步驟
148‧‧‧步驟
將僅為舉例而言地參考如附加圖式中所圖示說明之本發明之實施例而進一步地描述本發明,其中:在一實施例中,圖1示意性地圖示說明資料處理系統,該資料處理系統包含兩個資料處理設備及一記憶體系統;在一實施例中,圖2示意性地圖示說明在一或更多個資料處理設備上執行之虛擬作業環境之結構,該一或更多個資料處理設備如圖1中所展示的那些設備;在一實施例中,圖3A示意性地以更多細節圖示說明圖1之資料處理系統之一些元件;在一實施例中,圖3B圖示說明屏障指令;在一實施例中,圖4示意性地以更多細節圖示說明圖3A之每個資料處理設備內之每個資料存儲之配置;在一實施例中,圖5A及5B展示由如圖4中所圖示說明的那種資料存儲之資料存儲所執行之步驟之序列;及在一實施例中,圖6A及6B每者給定範例指令序列,可藉由處理電路執行該範例指令序列。
本發明技術辨識資料處理設備之處理電路何處能執行(即,具有致動該處理電路以執行之配置)資料處理指令於超過一個之內文中,此事對於修改其中資料處理裝置回應依賴內文之屏障指令之方式係有益的,其中處理電路係於該內文中執行資料處理指令。此處,「內文」應根據以不僅資料處理設備本身之元素還有其中發現該資料處理設備之資料處理系統(舉例而言更包含資料處理設備所經連接之記憶體系統)之整體之明顯完整及自我一致之檢視而提供資料處理裝置之哪個元素,而被瞭解為其中資料處理設備可操作之作業環境。本文所使用之詞「明顯」係指示(舉例而言)當於特定內文中操作時,資料處理設備所互動之記憶體系統事實上可包含位址位置之較寬範圍(相較於資料處理設備之處理電路所能看見的範圍而言),於該特定內文中操作之另一處理電路並不知道記憶體系統中之其它無法存取之記憶體位置存在。舉例而言,屏障指令可為記憶體屏障指令或(舉例而言)可為同步屏障,該同步屏障不僅同步記憶體存取且還同步其它相關操作(如一致操作)。舉例而言,分支預測器或TLB維持操作將導致DVM訊息及同步屏障還將同步該等存取。
根據本發明之技術,當資料處理設備之處理電路遭遇到屏障指令時,資料處理設備可僅為當於經辨識之內文(舉例而言可為目前內文)中操作時之由處理電路初始化之存取(即,先前在與其中處理電路目前操作及已遭遇到屏障指令之內文相同之內文中所初始化之存取),而 藉由限制對應之存取順序限制之強制執行做出回應。換句話說,可限制存取順序限制之強制執行至於經辨識之內文中操作時由處理電路所初始化之存取。存取可採用各式各樣的形式,且該等存取舉例而言可為記憶體存取(如儲存或載入)且舉例而言可為一致操作或快取(資料或指令)維持操作。
此事具有進一步減少影響之優勢,資料處理設備中之多個可能的內文之存在可帶有當處理電路正執行資料處理指令於該等多個內文之給定內文中時之資料處理設備之操作。舉例而言,此技術可為特別有益之一情況為其中當資料處理設備經要求以執行該資料處理設備之資料處理指令及以非常小的延遲回應外部訊號(「即時內文」)及經安排以於另一內文中操作時(其中該資料處理設備之資料處理指令之執行之完成及回應外部訊號中之一些延遲係為可接受的(「非即時內文」)),資料處理設備中所提供之一內文係用於處理電路之操作。藉由安排資料處理設備,使得當處理電路在給定內文中遭遇到屏障指令時所執行之存取順序限制被強制執行,以用於由處理電路在該特定內文經操作時所已初始化之存取;因將不會藉由等待存取(該等存取已由在不同內文(該不同內文不具有此類嚴格的時間限制)中所操作之處理電路所初始化)之完成(以依附存取順序限制)而減緩在此內文中所操作之處理電路之操作,故更佳地保護對延遲敏感之內文(「即時內文」)之時間限制,且相較於對「即時」內文為可接 受之涉及延遲之存取而言,該處理電路之操作因而可潛在地涉及較大延遲之存取;舉例而言,至眾所皆知地具有相對長之回應延遲之外部記憶體之存取。
在一實施例中,經識別之內文為目前內文。目前內文可經傳遞至以各種方式強制執行存取順序限制之元件。
在一實施例中,在屏障指令中具體指定經識別之內文。此事給程式設計員(及/或管理程序)彈性以在任何時間處強制執行用於經選擇內文之存取順序限制。
在一實施例中,在處理電路可存取之存儲中具體指定經識別之內文。舉例而言,經識別之指示可儲存於暫存器中(然而亦可使用任何其它合適之存儲)。
在一實施例中,設備能提供其中多個虛擬機器中之目前虛擬機器操作之虛擬作業環境,其中該處理電路能藉由與目前虛擬機器之互動而執行資料處理指令,及其中目前內文係對應目前虛擬機器。因此,虛擬作業環境提供其中資料處理設備之處理電路可在超過一內文中操作(即,執行資料處理指令)之一方式。當所給定虛擬機器之操作為用於資料處理設備之操作之目前內文時,此虛擬機器(典型地包含特定的訪客作業系統及執行於該訪客作業系統上之一組應用程式)與資料處理設備之硬體(即,特別是在目前內文中之處理電路及記憶體系統互動電路)互動。本發明技術因而提供用於每個虛擬機器之時間限制之保護(特別是帶有低延遲時間限制之虛擬機器)。
在一些實施例中,設備更包含用於儲存虛擬機器辨識符之虛擬機器辨識符存儲,其中該設備能更新虛擬機器辨識符以指示目前虛擬機器。舉例而言可藉由資料處理設備之處理電路中之暫存器(然而亦可用任何其它合適之辨識符存儲之形式)提供虛擬機器辨識符存儲;因此該虛擬機器辨識符存儲提供資料處理設備用於設備之元件之易用及可靠之參考以決定目前虛擬機器。
在一些實施例中,記憶體系統互動電路包含存儲緩衝以緩衝未定存取,且該存儲緩衝能用指示未定存取所被發行之該內文之辨識符來對每個未定存取做標籤。緩衝未定存取之存儲緩衝之提供致動現存電路以委派存取之管理(可典型地在存取完成前具有至少一小的延遲),而處理電路持續其它資料處理指令執行。每個緩衝於存儲緩衝中之未定存取之標籤係指示未定存取所被發行之內文。應該要注意到的是,除了自身之名稱外,存儲緩衝不僅處理「儲存」存取,舉例而言還處理如一致操作之其它存取。
此事使存儲緩衝能分辨由資料處理電路對於其中資料處理電路能操作之內文之每者所初始化之未定存取。
在一些實施例中,存儲緩衝能限制存取順序限制之強制執行至以指示符所標籤之未定存取,該指示符係指示匹配目前內文之未定存取所被發行之內文。此事能讓存儲緩衝於存取順序限制將要被強制執行時(當處理電路 執行屏障指令時)決定處理電路已於目前內文(存取順序限制因而應被執行之內文)中操作時所初始化之那些存取及由處理電路於不同內文(及因此可能會有不為所欲的存取順序限制要被執行之內文)中操作時所初始化之那些存取。
在一些實施例中,記憶體系統互動電路更包含一致單元,及緩衝存儲能經由一致單元而與記憶體系統互動。經由一致單元之與記憶體系統之互動致動存取記憶體系統之資料處理設備與亦存取相同記憶體系統之其它資料處理設備間之一致及個別記憶體階層之儲存裝置間之一致,及其中存儲緩衝經由一致單元而與記憶體系統互動,可藉由選擇過濾存儲緩衝發送至一致單元之訊息而提供選擇性的存取順序限制之實施(取決於內文)。
在相同實施例中,存儲緩衝包含帶有多個存儲位置之內文追蹤存儲,及其中因最後為目前內文而強制執行存取順序限制,故若目前內文已初始化存取,則該存儲緩衝能儲存用於目前內文之多個儲存位置之一者中之項目。此內文追蹤存儲之提供因而提供帶有簡單地決定存取順序限制是否需要被強制執行於所有目前內文中之能力的存儲緩衝。
在一些實施例中,存儲緩衝能於對應至經選擇項目之存取順序限制已被強制執行時清除內文追蹤存儲中之經選擇項目。因此,一旦已為給定內文而強制執行存取順序限制,則在該點處清除內文追蹤存儲中之對應項目 立即確認更進一步之屏障指令是否執行於該內文中及該進一步之屏障指令何時執行於該內文中,存儲緩衝可簡單地辨識不需執行關於已遭受自先前屏障指令所產生之行動之該等先前存取之存取順序限制。
在一些實施例中,若內文追蹤存儲中之所有多個儲存位置皆被佔住且存儲緩衝中不具有用於目前內文之經佔住項目,則存儲緩衝能強制執行用於由除了已具有對應之犧牲項目之目前內文外之犧牲內文所初始化之未定存取之內含的存取順序限制,及清除用於經選擇內文之犧牲項目,其中內含的存取順序限制不需處理電路執行對應之屏障指令。雖然可用帶有用於所有可能的內文(其中處理電路可執行資料處理指令)之足夠的儲存位置之內文追蹤存儲而提供存儲緩衝,但可能會有一種情況:資料處理設備所支援的內文數目超過欲於內文追蹤存儲中提供之儲存位置的數目。換句話說,為了維持存儲緩衝之大小盡可能地小,限制內文追蹤存儲中之儲存位置之數目為相對小數目係為所欲的。在此情況中認為存儲緩衝可不具有用於目前內文之經佔住項目及該存儲緩衝可不具有可立即被使用於目前內文中之可用的項目。在此情況中,當為了目前內文而需要項目時,存儲緩衝之後可強迫執行內含的存取順序限制(就「內含的(implicit)」意義而言,並不是由屏障指令之執行之處理電路所指示的,而是由存儲緩衝本身所初始化以釋放項目於其自身之內文追蹤存儲中)。藉由存儲緩衝而選擇除了目前內文外之一或更多個 犧牲內文遭受此類內含的存取順序限制,以釋放一或更多個項目於內文追蹤存儲中。
在一些實施例中,存儲緩衝能儲存與內文追蹤存儲中之每個項目相關之至少一指示,該至少一指示係指示存取是否因最後為該內文而被強制執行之存取順序限制而包含至少一類型之存取而被初始化。此事致動存儲緩衝在可由處理電路在給定內文中所初始化之存取之不同類型間分辨及其可具有相關於存取順序限制之強制執行之不同要求。
在一些實施例中,設備能因最後執行用於目前內文之存取順序限制,而當目前內文已執行存取指令之對應類型時,限制存取順序限制之強制執行至由存取指令之對應類型之目前內文之執行所初始化之未定存取之經選擇類型。換句話說,只有目前內文已因用於目前內文之存取順序限制最後地被執行而執行對應之存取指令類型,設備才可強制執行用於由存取指令之對應類型之目前內文之執行所初始化之未定存取之經選擇類型之存取順序限制。因此,設備因而能在由處理電路執行對應不同類型之存取指令所初始化之不同類型之存取間做出區分,及使存取順序限制之強制執行更依賴存取之類型。這是因為本技術認可不同類型之存取可稍微與彼此獨立,且用於一類型之存取指令之存取順序限制之強制執行事實上可能不需由不同類型之存取指令所初始化之未定存取涉及於存取順序限制之強制執行中。
在一些實施例中,未定存取之經選擇類型為儲存操作。取決於資料處理系統中之儲存操作之所期望的延遲,儲存操作可代表(記憶體)存取類型,其中因此類儲存存取可具有與該等此類儲存存取相關之明顯延遲,故對強制執行僅用於由目前內文所初始化之儲存操作之存取順序限制係有益的。
在一些實施例中,記憶體系統互動電路能於儲存操作將要至經選擇的記憶體區域時,限制存取順序限制之強制執行。只有儲存操作將要至經選擇的記憶體區域時,此類記憶體互動電路才可強制執行存取順序控制。雖然經選擇類型之存取可為所有的儲存操作,但本技術認可此可為記憶體系統之具有相關高延遲之特定元件(及記憶體系統之其它部分可具有可接收的低延遲);因此記憶體系統互動電路可藉由與其相關之經選擇記憶體區域(例如,記憶體位址之範圍)之手段而辨識至記憶體之較高延遲部分之存取。此亦可藉由存取資料處理系統中之特定一埠(或多個埠)之儲存之辨識而被辨識,該埠(或該多個埠)係眾所皆知地提供對記憶體系統之高延遲元件之存取。
在一些實施例中,未定存取之經選擇類型為一致操作。舉例而言,一致操作可包含快取維持操作、轉譯後備緩衝區(TLB)維持操作及分支預測器維持操作等。本技術認可此類一致操作可涉及相對高的完成延遲及因而為本技術具有特定好處之存取之類型。
圖1示意性地於一實施例中圖示說明資料處理系統10,該資料處理系統10包含兩個中央處理單元(CPU)12及14。每個CPU個別地包含處理器16及處理器18,該處理器16及該處理器18執行一序列的資料處理指令以執行或初始化資料處理系統10內之資料處理操作;及該每個CPU亦個別地包含一組暫存器20及一組暫存器22,其中儲存該處理器16及該處理器18在該處理器16及該處理器18的資料處理操作中所使用之值。每個CPU 12及14具有密切相關之層級1(L1)記憶體系統(快取),該記憶體系統能用所屬技術領域中具有通常知識者所熟悉之方式儲存(即,具有能讓該記憶體系統儲存之配置)自資料處理系統10之記憶體系統之剩餘部分所擷取到之資料項目之暫存複本,以減少用於此類資料項目之存取延遲。在此組快取及記憶體之階層式配置中,每個資料處理設備12及14之個別之L1記憶體24及26再次地用所屬技術領域中具有通常知識者所熟悉之方式與層級2(L2)記憶體28互動,及該層級2記憶體28係經由系統匯流排30而與外部記憶體32互動。
圖2示意性地圖示說明圖1所展示之資料處理系統10之一特徵:即,資料處理系統10之處理設備12及14支援虛擬作業環境。可用示意性地展示於圖2中之階層式方式檢視該等虛擬作業環境,其中維持因而被提供之整體之虛擬化之控制之管理程序34操作於展示於圖式中之最高的特權等級,該最高的特權等級稱為「例外層級數字 2(EL 2)」或「特權等級2(PL 2)」。亦可提供更進一步之更高的特權等級(EL 3),其中(舉例而言)安全監控操作著。管理程序操作於最高之不安全的特權等級及管理虛擬化之特權等級處。管理程序控制幾個虛擬機器中之目前操作於資料處理設備中之虛擬機器。僅為清楚說明之目的,圖2僅展示兩個虛擬機器36及38,但應該要瞭解的是,資料處理設備可經配置以支援更多之虛擬機器。每個虛擬機器(個別地)藉由作業系統(OS1 40及OS2 42)及個別地藉由多個在該作業系統控制下執行之應用程式44與46及48與50展示於圖2中。再次地,僅為清楚說明之目的,僅有兩個應用程式經展示於每個虛擬機器內,但事實上可有更多個每個虛擬機器能執行之應用程式。訪客作業系統40及42典型地操作於特權之中間層級(EL1/PL1),同時應用程式典型地操作於特權之最低層級(EL0/PL0)。每個可在資料處理設備上執行之虛擬機器因此代表其中資料處理設備(特別是資料處理設備之處理器(處理電路))可操作之不同內文。注意到可僅藉由一資料處理設備代管虛擬機器或該等虛擬機器可跨越多個資料處理設備分佈,此事係取決於對每個虛擬機器而言為適合可用的處理資源。限制所將要提供之即時虛擬機器至僅一資料處理設備係為更可能的,同時非即時虛擬機器可經配置為跨越多個資料處理設備而分佈。
圖3A以更多細節示意性地圖示說明展示於圖1中之資料處理設備12及14之配置及資料處理系統10之 一些進一步的元件。每個資料處理設備12及14包含資料處理單元(執行單元/處理電路)52及54,該等資料處理單元執行資料處理指令以執行或初始化資料處理操作。其中資料處理指令/操作包含存取記憶體系統,每個DPU 52及54透過與個別的載入及儲存單元(LSU)60和62及存儲緩衝(STB)56和58之互動做此事。如參考圖2所討論地,每個資料處理設備12及14操作於目前內文中(即,在致動經選擇之虛擬機器為操作之管理程序34之控制下),及個別的DPU 52及54儲存值於暫存器VSCTLR.VMID 80及82中,該等暫存器作為虛擬機器辨識符及指示目前在個別資料處理設備上所執行的虛擬機器。每個資料處理設備之LSU及STB可與各種記憶體系統之儲存元件互動,該等儲存元件可特別地具有與該等儲存元件相關之相當不同的存取延遲。舉例而言,個別地提供對緊密耦合記憶體(TCM)68及70之存取給每個資料處理設備12及14,該等TCM之每者具有低的存取延遲。相似地,資料處理設備12及14共享對亦具有低存取延遲之低延遲RAM(LL RAM)76之存取。然而,亦可使用LL RAM 76以儲存分頁表78,該等分頁表78為一些維持操作可具有與該等分頁表所相關之較長延遲之該等分頁表。當情況如以下所述(即,通常的每埠口記憶體順序不夠避免對本發明技術所尋求避免之特定內文之延遲)時,因本發明技術已認可任何與LLRAM中之那些分頁表直接或間接相關之一致操作應被視為來自(為低延遲 存取之)一般LLRAM載入及儲存之不同的存取類別(即,高延遲)。
每個資料處理設備12及14亦共享對一致單元之存取,該一致單元於此範例中係藉由窺探控制單元(SCU)72所體現,該窺探控制單元72形成L2記憶體系統28之部分及特別地提供對匯流排存取埠74之存取;在此實施例中之該匯流排存取埠74係為如英國劍橋之ARM公司所提供之AXI主埠,及該SCU亦維持群集中所有核心/處理元素間之一致(亦參見圖1)。此AXI主埠74經由AXI系統匯流排30提供對外部記憶體32之存取,因此該AXI主埠74具有與該外部記憶體32相關之明顯較高的存取延遲(相較於(舉例而言)TCM 60與78或LLRAM 76而言)。每個資料處理設備之STB 56及58個別地透過個別的本地端匯流排介面單元(BIU)64及66與共享的SCU 72及共享的LLRAM 76互動。
圖3B示意性地圖示說明範例屏障指令,該範例屏障指令包含辨識此指令為屏障指令至資料處理設備之操作碼及VMID使用部分,該VMID使用部分可具體指定屏障指令是否應被應用至目前的VMID(舉例而言如VSCTLR.VMID暫存器之內文所給定的)或可明確地具體指定屏障指令應被應用之VMID值。屏障指令應被應用之VMID值可儲存於暫存器中(參見圖1中之20及22),而不是編碼於屏障指令中。
圖4示意性地以更多細節圖示說明展示於圖3A之存儲緩衝56之配置。注意存儲緩衝58具有相似配置。以L1記憶體中之目前的VMID值(從VMID暫存器80擷取、或在屏障指令中明確地具體指定或為如暫存器之存儲中之指示)對所有儲存操作、快取維持操作、TLB維持操作及等等做標籤,及穿過STB 56。換句話說,藉由STB 56接收自處理電路(DPU)52所擷取之對應指令及相關之VMID指示。藉由控制單元90首次接收該等指令及指示,該控制單元90管理存儲緩衝之整體控制。存儲緩衝56更包含多個存儲緩衝插槽92,其中未定存取在被傳遞到記憶體系統的剩餘部分前暫時地儲存於此。以虛擬機器指示符之指示94標記每個存儲緩衝插槽,該指示94係關聯於對應之所完成指令而被接收且該指示94設定此對應之未定存取。存儲緩衝更包含內文追蹤器96,該內文追蹤器96係由存儲緩衝所使用以維持哪個VMID(內文)已(透過SCU 72)存取高延遲AXI主埠74、或哪個VMID(內文)已執行D-快取維持操作(標記為「SCU」)及哪個VMID已發送分散式虛擬記憶體(DVM)訊息(標記為「DVM sync」)之追蹤。DVM訊息舉例而言可相關於I-快取維持、分支預測器維持及TLB維持。DVM sync有效地為DVM訊息,該等DVM訊息強制執行順序限制。此處,內文追蹤器僅具有相對經限制數目之對此存儲為可用之項目(如圖4中所圖示說明之三個項目),使存儲緩衝56按資料處理設備12之相對 小的元件所被提供。控制單元90具有更進一步之對高延遲AXI主埠98之記憶體定址範圍之指示之存取,使得該控制單元90可經由SCU 72至AXI主埠74辨識所完成之儲存指令何時相關於存取且該控制單元90可存取一致指令之列表100(即,導致DVM訊息之那些指令)。注意到一些「一致」記憶體存取實際上可能沒有存取AMI-M埠;舉例而言,大可藉由本地快取存取、L2快取存取或至另一核心之快取之窺探(而無須存取AXI-M埠),滿足至某一致位址之存儲(該位址係在AXI-M位址之範圍中)。
圖4之所描述配置致動存儲緩衝,當藉由控制單元90完成及接收屏障指令以限制該屏障之應用程式儲存帶有匹配VMID之緩衝插槽時,因此限制存取順序限制之強制執行以回應屏障指令至具有由DPU 52在相同內文中操作時(即,以如VMID值所指示執行之相同的虛擬機器)所初始化之存儲緩衝插槽中之對應項目之未定存取。然而,注意到存儲緩衝亦可回應明確的編碼於屏障指令中之VMID規格(例如,如上文關於圖3B所述的),以強制執行僅用於該VMID之存取順序限制。此外,應注意到管理程序已存取「強」屏障,該強屏障可強制執行用於所有虛擬機器(VMID/內文)之順序限制。亦應注意到就對其它處理元素(核心)為可見的意義而言,順序限制不僅應用至目前未定之記憶體存取,亦應用至一般來說任何形式之可能尚未完成之存取。換句話說,直到此核心經考 慮到為止(因此該核心不再為未定了)此核心可能已完成,但並非所有此核心之影響在還沒有其它觀察者(例如,其它核心)時已成為可見。屏障需要強制執行此順序限制而不論此順序限制(於STB中)是否仍為未定。
內文追蹤器96之配置致動存儲緩衝以若屏障指令所應用之內文(即,該屏障指令相關之VMID指示)因已執行最後的DVM同步而已發送DVM訊息,則當完成屏障指令時僅轉送DVM同步訊息至記憶體系統之剩餘部分。藉由與DVM同步相關之內文追蹤器中之指示之維持而完成此事;將相關於圖5而以更多細節描述此事。相似地,若屏障所應用之內文(即,該屏障指令相關之VMID指示)因已為相關內文(VMID)執行最後的屏障操作而已發送AXI主存儲或快取維持操作至SCU,則內文追蹤器96之此配置致動存儲緩衝56以僅傳播屏障至SCU 72(以屏障所有其它來自於CPU 12之突出的AXI主埠存取)。將參考圖5A、圖5B、圖6A及圖6B而描述支援此事之內文追蹤器56之內文之維持之更多細節。
圖5A及圖5B在一實施例中展示由如圖4中所展示的由那些存儲緩衝56所執行之步驟之序列。在此範例中,存儲緩衝使用目前的VMID/內文(即,非為具體指定於屏障指令中之VMID)。可認為流程係開始於步驟110處,其中指令完成且該指令由存儲緩衝56之控制單元90所接收。之後於步驟112處決定此指令是否為屏障指令。若否,則流程之後前進至步驟114,其中控制單元 90參考相關之記憶體位址範圍98及一致指令之列表100而決定指令是否為(經由SCU)至AXI主埠、DVM一致指令或資料快取維持操作之存儲。若否,則流程之後前進至步驟116,其中存取指令可被直接地傳遞到記憶體系統之目標部分上或(若必要的話)該存取指令在多個STB緩衝插槽之緩衝插槽中未定直到可處理該存取指令止。當相關的VMID指示以此方式儲存於緩衝插槽92之一者中時,該相關的VMID指示亦可相關於為此目的而提供之存儲94中之該緩衝插槽儲存相關的VMID指示。流程之後回到步驟110。
然而,若在步驟112處,決定所完成之指令為屏障指令,則流程之後前進至步驟118,其中參考內文追蹤器96而決定內文追蹤器是否具有帶有目前的VMID(內文)指示之項目。若否,則流程之後前進至步驟120,其中存儲緩衝56強制執行用於目前內文之此屏障指令之對應之順序限制;即,僅屏障帶有匹配VMID之存儲緩衝插槽。流程之後回到步驟110。
然而,在步驟118處,若決定內文追蹤器具有以目前VMID所標記之項目(相關於此屏障指令而被接收之該目前VMID之指示),則流程之後前進至步驟122,其中確認該項目是否指示相關於此項目而設定SCU標記,此事指示此屏障指令所應用之內文(即,參考VMID指示)已因為了此內文(VMID)執行最後屏障而發送AXI主存儲或其它快取維持操作至SCU(「SCU存取」)。 若SCU標記經設定則流程之後前進至步驟124,且發送屏障至SCU;若否,則流程直接地跳至步驟126。在步驟126處,相似地決定帶有對應之VMID指示之內文追蹤器中之項目指示屏障所應用之內文(即,相關於此屏障指令而接收之VMID指示)已因為了此內文執行最後的DVM同步,而發送DVM訊息。若未設定DVM sync標記,則流程直接地跳至步驟130。然而,若設定DVM sync標記,則流程之後經由步驟128而前進,其中屏障指令導致在用於所有未定AXI主埠存取之資料同步屏障(DSB)之前的用於所有未定DVM訊息之DVM sync。之後在步驟130處,亦可屏障任何帶有匹配VMID之存儲緩衝插槽,一旦所有此類存取已耗盡,則立即清除帶有匹配VMID之內文追蹤器中之項目。流程之後回到步驟110。
回到步驟114之考慮,若決定所完成之指令為(經由SCU)至AXI主埠之存儲或為DVM一致指令,則流程前進至步驟134,其中決定內文追蹤器是否具有用於目前內文之項目(即,帶有匹配VMID)。若有或在步驟136處決定在內文追蹤器中有項目為自由的,則流程前進至步驟138,其中選擇該項目以讓目前內文所使用。之後,在步驟140處以目前的VMID標記項目及在步驟142處設定對應之標記,此事指示指令之類型(即,此是否表示SCU存取或為發送DVM訊息之指令)。流程之後前進至步驟116,其中與此指令相關之存取經分配至存儲緩衝之緩衝插槽(若必要的話),該緩衝插槽以目前的VMID 值所標記。此後如先前一樣,如先前一樣,流程返回至步驟110。
然而,在步驟136處,若決定目前在內文追蹤器96中沒有可用的項目,則流程前進至步驟144,其中存儲緩衝以內文追蹤器之項目執行用於至少一內文之內含的屏障,其中應瞭解「內含的(implicit)」反映了並未藉由存儲緩衝所接收到之所完成的屏障指令之接收而已初始化此屏障(而係已初始化存儲緩衝自身的協議)之事實;因此,在步驟146處,存儲緩衝等待以相關內文所標記之所有未定存取(即,以匹配VMID耗盡及用於存儲緩衝目前處理以完成之所完成的指令)。此後,在步驟148處,清除內文追蹤器中之一對應項目或多個對應項目,及流程透過如上文所述之步驟138前進。
圖6A及6B每者給定資料處理指令之範例序列,亦展示其中該等指令所執行之內文,以更進一步地圖示說明存儲緩衝之操作。參考圖6A,藉由作為與長延遲位址相關之存儲緩衝(例如,經由SCU至AXI主埠)辨識執行於內文A內之存儲(STR)-指令1-;因此以SCU存取標記組合製作項目於用於此內文之內文追蹤器中。在指令2(亦為至經辨識之長延遲位址之存儲)完成後,存儲緩衝以經標記之SCU存取指示新增內文D至內文追蹤器之項目。指令3為至低延遲位址之存儲及因而不製作項目於用於內文B之內文追蹤器中。當指令4(資料同步屏障(DSB))完成時,如同此內文不具有內文追蹤器中之對 應項目一樣,存儲緩衝不傳播屏障至SCU,及因此避免等待任何(用於其它內文之)目前傳播中之AXI主埠存儲及僅能等待(經由對應之低延遲埠)儲存至記憶體之低延遲部分。當指令5(至長延遲位址之存儲;即,經由SCU至AXI主埠)完成時,若存儲緩衝之內文追蹤器具有(如圖4中所給定之範例實施例中之)三個或更多個可用項目,則製作項目於用於(以對應之VMID及SCU存取所標記之)內文C之內文追蹤器中。指令6(DSB)之後將必須等待所有較早的AXI主埠存取以在該指令6可完成前藉由項目已製作於用於此內文(VMID)之內文追蹤器中及已設定SCU標記之事實完成指示此事為「高延遲內文」。然而,若存儲緩衝之內文追蹤器僅具有兩個可能項目,則在此點處進入圖6A中所展示的指令序列,此處將不會有對於內文C為可用的項目(因該兩個項目已為內文A及內文D而被佔住)且存儲緩衝因而插入用於佔住內文追蹤器之項目之高延遲內文A及D之至少一者之內含的屏障,及之後等待藉由此內含的屏障所影響之所有存取耗盡。一旦所有該等存取已耗盡,則內文追蹤器中之一(或兩個)項目立即將為空的及可新增用於內文C之所需項目至追蹤列表(當儲存(指令5)完成時)。存儲將已防止完成此事。之後,DSB(指令6)將等待所有AXI主存取(高延遲存取),在此點處之展示於圖6A中之此範例序列指令中之該等所有AXI主存取僅為指令5存儲,因所有較早的存取應已由所插入之內含的DSB所屏障。
現在考慮到圖6B中所展示之範例序列指令,在指令1(TLB維持操作)完成後,存儲緩衝新增項目至指示內文A已執行DVM操作(及因而此處分類該內文A為「非即時」內文)之內文追蹤器。指令2經認可為瞄準低延遲位址(即,不經由SCU至AXI主埠)且因此不製作對應項目於內文追蹤器中。當指令3(DSB)完成時,該指令3將不需要等待任何未定之AXI主埠存儲(因該等存儲僅可應用至其它內文)且該指令3將僅需等待(經由經辨識之低延遲埠)至低延遲記憶體位址之存儲。因為此內文並未已執行任何DVM本身(存儲緩衝可藉由缺乏內文追蹤器中之對應項目而辨識(及因而必然缺乏用於此內文之對應之DVM同步標記)),故將亦避免發送任何種類之DVM同步操作。在指令4(至長延遲位址之存儲或另一TLB維持操作)完成後,存儲緩衝新增用於內文C之項目至標記此項目為SCU存取或以指示內文C已執行DVM操作之DVM sync標記而標記此項目之內文追蹤器。之後當指令5(DSB)完成時,取決於指令4是否為存儲(STR)或TLB失效(TLBIMVAA),下述兩個可能性之一者會發生。若指令4為存儲,則DSB屏障將影響此存儲及所有目前由資料處理系統所處理之至AXI主埠之其它存儲,但並不導致自存儲緩衝發送DVM sync。另一方面,若指令4為TLB失效,則DSB屏障(指令5)將導致用於所有在影響所有先前的AXI主埠存取之DSB之前之較早的DVM訊息之DVM sync。
雖然本文已用細節及參考附加圖式描述本發明之示意性實施例,但應要瞭解的是,本發明並不限於該等精確的實施例,所屬技術領域具有通常知識者在沒有背離由附加之申請專利範圍所定義之發明之範疇及精神的情況下可實現各種變化、增加及修改。舉例而言,可在沒有背離本發明之範疇的情況下用獨立請求項之特徵做附屬請求項之特徵之各種結合。
56‧‧‧STB
90‧‧‧控制單元
92‧‧‧存儲緩衝插槽
94‧‧‧指示
96‧‧‧內文追蹤器
98‧‧‧高延遲AXI主埠
100‧‧‧一致指令之列表

Claims (19)

  1. 一種用於資料處理之設備,包含:執行資料處理指令以執行資料處理操作之處理電路,其中該等資料處理操作包含存取一記憶體系統,及其中該處理電路能在複數個內文中執行該等資料處理指令;及記憶體系統互動電路,以提供該處理電路及該記憶體系統間之一介面;其中該記憶體系統互動電路能為回應該處理電路執行一屏障指令於該複數個內文之一目前內文中而強制執行一存取順序限制,及其中該記憶體系統互動電路能限制該存取順序限制之強制執行至當於一經辨識之內文中操作時之由該處理電路所初始化之存取。
  2. 如請求項1所述之設備,其中該經辨識之內文為該目前內文。
  3. 如請求項1所述之設備,其中該經辨識之內文經具體指定於該屏障指令中。
  4. 如請求項1所述之設備,其中該設備能提供多個虛擬機器之一目前虛擬機器操作之一虛擬作業環境,其中該處理電路能藉由與該目前虛擬機器之互動而執行該等資料處理指令,及其中該目前內文對應至 該目前虛擬機器。
  5. 如請求項4所述之設備,其中該裝置更包含用於儲存一虛擬機器辨識符之虛擬機器辨識符存儲,其中該設備能更新該虛擬機器辨識符以指示該目前虛擬機器。
  6. 如請求項1所述之設備,其中該記憶體系統互動電路包含緩衝未定存取之一存儲緩衝,及該存儲緩衝能用指示該未定存取所被發行之該內文之一辨識符對每個未定存取做標籤。
  7. 如請求項6所述之設備,其中該存儲緩衝能限制該存取順序限制之強制執行至用指示該未定存取所被發行之該內文之該辨識符所標籤之未定存取,該內文係匹配該目前內文。
  8. 如請求項7所述之設備,其中該記憶體系統互動電路更包含一一致單元,及該存儲緩衝能經由該一致單元而與該記憶體系統互動。
  9. 如請求項6所述之設備,其中該存儲緩衝包含帶有多個儲存位置之一內文追蹤存儲,及其中若因該存取順序限制經最後地執行以用於該目前內文故該目前位置已初始化存取,則該存儲緩衝能儲存用於該目前內文之該多個儲存位置之一者中之一項目。
  10. 如請求項9所述之設備,其中該存儲緩衝 能當已強制執行對應至一經選擇項目之該存取順序限制時於該內文追蹤存儲中清除該經選擇項目。
  11. 如請求項9所述之設備,其中若所有該內文追蹤存儲中之該多個儲存位置被佔住及該存儲緩衝不具有用於該目前內文之一經佔住項目,則該存儲緩衝能強制執行一內含的存取順序限制至由除了具有一對應犧牲項目之該目前內文外之一犧牲內文所初始化之未定存取,及清除用於該經選擇內文之該犧牲內文,其中該內含的存取順序限制不需要該存取電路以執行一對應的屏障指令。
  12. 如請求項9所述之設備,其中該存儲緩衝能儲存與該內文追蹤存儲中之每個項目相關之至少一指示,該指示係指示該等經初始化之存取是否因該存取順序限制經最後地強制執行以用於該內文而包含至少一類型之存取。
  13. 如請求項1所述之設備,其中該設備因用於該目前內文之該存取順序限制經最後地執行故能於該目前內文已執行一對應的存取指令類型時,限制該存取順序限制之強制執行至由藉由該對應的存取指令類型之該目前內文之執行所初始化之未定存取之一經選擇類型。
  14. 如請求項13所述之設備,其中未定存取之 該經選擇類型為一儲存操作。
  15. 如請求項14所述之設備,其中該記憶體系統互動電路能於該儲存操作將要至一經選擇的記憶體區域時,限制該存取順序限制之強制執行。
  16. 如請求項13所述之設備,其中未定存取之該經選擇類型為一一致操作。
  17. 如請求項1所述之設備,其中該經辨識之內文經具體指定於對該處理電路而言為可存取之存儲中。
  18. 一種資料處理之方法,包含以下步驟:執行資料處理指令以執行資料處理操作,其中該等資料處理操作包含存取一記憶體系統,及該資料處理指令經執行於複數個內文之一目前內文中;回應該複數個內文之該目前內文中之一屏障指令之執行而強制執行一存取順序限制;及限制該存取順序限制之強制執行至當執行資料處理指令於一經辨識之內文中時之經初始化之存取。
  19. 一種用於資料處理之設備,包含:用於執行資料處理指令以執行資料處理操作之手段,其中該等資料處理操作包含存取一記憶體系統,及該等資料處理指令經執行於複數個內文之一目前內文中;及 用於提供該處理電路及該記憶體系統間之一介面之手段;其中該用於提供一介面之手段能回應用於執行資料處理指令之手段以強制執行一存取順序限制,該等資料處理指令係執行一屏障指令於該複數個內文之該目前內文中;及其中該用於執行資料處理指令之手段能限制該存取順序限制之強制執行至由當於一經辨識之內文中操作時之該處理電路所初始化之存取。
TW104135634A 2014-11-13 2015-10-29 用於資料處理中的內文感知屏障的設備及方法 TWI693549B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB1420173.5 2014-11-13
GB1420173.5A GB2549239A (en) 2014-11-13 2014-11-13 Context sensitive barriers in data processing

Publications (2)

Publication Number Publication Date
TW201633116A true TW201633116A (zh) 2016-09-16
TWI693549B TWI693549B (zh) 2020-05-11

Family

ID=52248288

Family Applications (1)

Application Number Title Priority Date Filing Date
TW104135634A TWI693549B (zh) 2014-11-13 2015-10-29 用於資料處理中的內文感知屏障的設備及方法

Country Status (10)

Country Link
US (1) US10503512B2 (zh)
EP (1) EP3218796B1 (zh)
JP (1) JP6722182B2 (zh)
KR (1) KR102421315B1 (zh)
CN (1) CN107077384B (zh)
GB (1) GB2549239A (zh)
IL (1) IL251309B (zh)
MY (1) MY183825A (zh)
TW (1) TWI693549B (zh)
WO (1) WO2016075430A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10386904B2 (en) * 2016-03-31 2019-08-20 Qualcomm Incorporated Hardware managed power collapse and clock wake-up for memory management units and distributed virtual memory networks
US10628329B2 (en) * 2016-04-26 2020-04-21 Nxp Usa, Inc. Data processing system having a coherency interconnect
CN112889083A (zh) 2018-10-30 2021-06-01 英特尔公司 支持完全虚拟化图形架构中的自修改图形工作负载
KR20220169754A (ko) 2021-06-21 2022-12-28 최은지 입체퍼즐을 이용한 혼합현실 체감형 학습 교구

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69423206T2 (de) * 1994-04-28 2000-09-07 Hewlett Packard Co Rechnervorrichtung mit Mitteln zum Erzwingen der Ausführung von Befehlen in regelmässiger Folge
US6978360B2 (en) * 2001-05-11 2005-12-20 International Business Machines Corporation Scalable processor
US7752423B2 (en) 2001-06-28 2010-07-06 Intel Corporation Avoiding execution of instructions in a second processor by committing results obtained from speculative execution of the instructions in a first processor
JP4234361B2 (ja) 2002-06-28 2009-03-04 富士通株式会社 記憶制御装置およびデータ格納方法
US7788468B1 (en) * 2005-12-15 2010-08-31 Nvidia Corporation Synchronization of threads in a cooperative thread array
WO2008155806A1 (ja) 2007-06-20 2008-12-24 Fujitsu Limited バリア同期方法、装置、及びマルチコアプロセッサ
US8739163B2 (en) * 2008-03-11 2014-05-27 University Of Washington Critical path deterministic execution of multithreaded applications in a transactional memory system
US8112604B2 (en) * 2007-12-17 2012-02-07 International Business Machines Corporation Tracking load store ordering hazards
GB2456813B (en) * 2008-01-24 2012-03-07 Advanced Risc Mach Ltd Diagnostic context construction and comparison
JP2010020363A (ja) 2008-07-08 2010-01-28 Sony Corp 演算処理装置
CN101771600B (zh) * 2008-12-30 2012-12-12 北京天融信网络安全技术有限公司 多核下连接并发处理的方法
US8539204B2 (en) * 2009-09-25 2013-09-17 Nvidia Corporation Cooperative thread array reduction and scan operations
US8443148B2 (en) * 2009-12-26 2013-05-14 Intel Corporation System-wide quiescence and per-thread transaction fence in a distributed caching agent
US8941676B2 (en) * 2012-10-26 2015-01-27 Nvidia Corporation On-chip anti-alias resolve in a cache tiling architecture
US9448803B2 (en) * 2013-03-11 2016-09-20 Nvidia Corporation System and method for hardware scheduling of conditional barriers and impatient barriers
US9367472B2 (en) * 2013-06-10 2016-06-14 Oracle International Corporation Observation of data in persistent memory
US9703951B2 (en) * 2014-09-30 2017-07-11 Amazon Technologies, Inc. Allocation of shared system resources

Also Published As

Publication number Publication date
IL251309A0 (en) 2017-05-29
JP2017539001A (ja) 2017-12-28
EP3218796B1 (en) 2020-05-06
CN107077384A (zh) 2017-08-18
KR20170083070A (ko) 2017-07-17
GB201420173D0 (en) 2014-12-31
US10503512B2 (en) 2019-12-10
TWI693549B (zh) 2020-05-11
GB2549239A (en) 2017-10-18
WO2016075430A1 (en) 2016-05-19
IL251309B (en) 2020-02-27
CN107077384B (zh) 2020-11-17
MY183825A (en) 2021-03-17
JP6722182B2 (ja) 2020-07-15
EP3218796A1 (en) 2017-09-20
KR102421315B1 (ko) 2022-07-15
US20160139922A1 (en) 2016-05-19

Similar Documents

Publication Publication Date Title
US11055440B2 (en) Handling access attributes for data accesses
US7543131B2 (en) Controlling an I/O MMU
US7516247B2 (en) Avoiding silent data corruption and data leakage in a virtual environment with multiple guests
US8024496B2 (en) Enhanced memory migration descriptor format and method
KR100861691B1 (ko) 미러링된 로크 캐시들을 사용한 데이터 전파
US20130138995A1 (en) Dynamic hypervisor relocation
US10255069B2 (en) Cleared memory indicator
US10250709B2 (en) Data processing apparatus, controller, cache and method
EP2430533A1 (en) Diagnose instruction for serializing processing
TW201633116A (zh) 資料處理中的內文感知屏障
US10467140B2 (en) Apparatus having main TLB and local TLBS, and configured to set selected size for new entry allocated to local TLB to a default size
US9336158B2 (en) Method and system for simplified address translation support for static infiniband host channel adaptor structures
US8527715B2 (en) Providing a shared memory translation facility
JP2022536689A (ja) 入出力メモリ管理ユニットによるゲストオペレーティングシステムのバッファとログへのアクセス
US10248575B2 (en) Suspending translation look-aside buffer purge execution in a multi-processor environment
JP2012038197A (ja) 情報処理装置および割込み制御プログラム
WO2022144535A1 (en) Context information translation cache
JP2019533239A (ja) アトミックセットのデータアクセスを提供するための装置および方法