TWI724071B - 用於範圍保護的方法及設備 - Google Patents

用於範圍保護的方法及設備 Download PDF

Info

Publication number
TWI724071B
TWI724071B TW105139277A TW105139277A TWI724071B TW I724071 B TWI724071 B TW I724071B TW 105139277 A TW105139277 A TW 105139277A TW 105139277 A TW105139277 A TW 105139277A TW I724071 B TWI724071 B TW I724071B
Authority
TW
Taiwan
Prior art keywords
core
memory
processor
monitoring
node
Prior art date
Application number
TW105139277A
Other languages
English (en)
Other versions
TW201732610A (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 TW201732610A publication Critical patent/TW201732610A/zh
Application granted granted Critical
Publication of TWI724071B publication Critical patent/TWI724071B/zh

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • 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/0811Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
    • 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/0893Caches characterised by their organisation or structure
    • G06F12/0897Caches characterised by their organisation or structure with two or more cache hierarchy levels
    • 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
    • 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/145Protection 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 virtual, e.g. for virtual blocks or segments before a translation mechanism
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0605Improving or facilitating administration, e.g. storage management by facilitating the interaction with a user or administrator
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0653Monitoring storage devices or systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • 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/466Transaction processing
    • G06F9/467Transactional memory
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/562Brokering proxy services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/12Protocol engines

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Storage Device Security (AREA)

Abstract

用於範圍保護的系統、方法、及設備。在某些實施例中,設備包括至少一監控電路,用以監控對位址空間的記憶體存取及在違反位址空間時採取動作,其中,動作是下述之一:產生通知給請求監控的節點,產生錯誤請求,以本地節點的特定上下文產生通知,及在擁有位址空間的所有權的節點中產生通知;至少一保護表,用以儲存位址空間的識別符;以及,至少一硬體核心,用以執行使監控電路賦能的指令。

Description

用於範圍保護的方法及設備
本發明領域大致關於電腦處理器架構,更特別地,關於當執行時會造成特別結果的指令。
指令集架構(ISA)的擴充提供用於軟體的介面以與交易記憶體(TM)支援協力。基本目標是藉由提供經由鎖省略而使這些工作負荷執行某作業組之硬體方案,以加速多緒工作負擔。TM的商業實例是硬體鎖省略(HLE)及限制交易記憶體(RTM)。
HLE擴充及二新的指令前置XACQUIRE及XRELEASE。基本概念是緒執行XACQUIRE、任何指令串加上XRELEASE。邏輯上,此節可被視為「lock();Instructions();unlock()」。即使一緒正執行此節,而其它者將此節視為不受約束。假使處理器偵測到違反(意指其它緒進入關鍵節)時,則放棄飛行交易且緒會從XACQUIRE重新啟動指令串。在XRELEASE被執行而未偵測到違反之後,所有這些指令會被認可。
TSX是增進重度緒化存取小的但經常被共用的碼及位址串之軟體系統。但是,此機制被應用於同調域內(亦即,經由UPI連接之多插座系統)。隨著愈來愈多的資料集量,例如資料庫等交易軟體需要能夠經由例如架構等高速互連而在多個共用的記憶體系統上操作。可以有數十個經由互連而相連接的這些系統,且它們將橫跨不同的同調域(可以是單一系統的域或是系統群組)。
101:插座
105:核心
113:晶粒上插座
201:標籤目錄
1200:暫存器架構
1300:管線
1500:處理器
1600:系統
1700:系統
1800:系統
1900:系統晶片
在附圖的圖中以舉例而非限定的方式說明本發明,其中,類似的代號表示類似的元件,以及,其中:圖1顯示支援遠端監控的系統實施例;圖2顯示標籤目錄的實施例;圖3顯示使用保護範圍的舉例說明的實施例;圖4顯示用於處理遠端監控違反之二實施例;圖5顯示在接收側使用保護範圍的舉例說明的實施例;圖6顯示在接收側使用未保護範圍的舉例說明的實施例;圖7顯示使用保護範圍及未保護範圍之初始化及最終化流程的實例;圖8顯示用於處理未請求監控(非發起核心)之核心的衝突之方法的實施例;圖9顯示處理衝突的實例。在本實例中,設置(保護 範圍)已經發生。
圖10顯示以軟體可靠性及除錯力的觀點而言可能潛在地造成巨大問題之情形的實例;圖11顯示具有範圍違反的情形之實例;圖12是根據本發明的一實施例之暫存器架構的方塊圖;圖13A是方塊圖,顯示根據本發明的實施例之舉例說明的有序管線及舉例說明的暫存器重命名、亂序核發/執行管線;圖13B是方塊圖,顯示根據本發明的實施例之包含在處理器中的有序架構核心及舉例說明的暫存器重命名、亂序核發/執行架構核心之舉例說明的實施例;圖14A-B是方塊圖,顯示更具體的舉例說明的有序核心架構,其中,核心可以是晶片中數個邏輯區塊中之一(包含相同型式及/或不同型式的其它核心);圖15是根據本發明的實施例之具有一個以上的核心、以及具有集成的圖形和記憶體控制器之處理器的方塊圖;圖16-19是舉例說明的電腦架構的方塊圖;以及圖20是方塊圖,對比根據本發明的實施例之將源指令集中的二進位指令轉換成目標指令集中的二進位指令之軟體指令轉換器的使用。
【發明內容及實施方式】
在下述說明中,揭示眾多特定細節。但是,須瞭解,沒有這些特定細節,仍可實施本發明的實施例。在其它情形中,未詳細顯示習知的電路、結構及技術,以免模糊本說明的理解。
在說明書中述及「一實施例」、「實施例」、「舉例說明的實施例」等等係表示所述的實施例可以包含特定的特點、結構、或特徵,但是,每一實施例不一定包含特定的特點、結構、或特徵。此外,這些文句不一定意指相同的實施例。此外,當,配合實施例說明特定的特點、結構、或特徵時,係認為在配合其它實施例時,無論是否明確說明,變更此特點、結構、或特徵係在習於此技藝中的知識之內。
大幅投資改良記憶體、儲存、結構及互連技術已造成分散式共用記憶體系統(DSM)符合企業及大資料應用的需求。隨著結構潛候期計劃達到記憶體等級內,分散式共用記憶體系統可以提供大的、單一位址空間給結構上的伺服器叢集;因此,提供「依比例增加的」節點控制器系統之有規模、成本有效率的替代。這些節點控制器將提供儲存及記憶體技術的存取以及例如NVM或NBOD等協定。
但是,DSM的眾多缺點之一是用於應用記憶體參考之快取同調問題。對於企業或大資料應用,例如在系統上運行的每一處理之堆疊及暫時儲存等數種型式的記憶體參考,不需要是同調的。另一方面,通常有多個碼節,其中,應用需要確保同調(舉例而言,用於交易處理的關鍵 節)。為了實施同調性,下一代的資料中心提供根據硬體方案之新的軟體方案。因此,使用某些硬體功能之軟體堆疊將提供方式給應用以實施資料中心內運行之不同處理及緒之間的同調性或一致性。
企業應用趨向於高度複雜的。因此,它們依靠很多不同的組件,它們是由數佰萬行的碼編碼。這些應用通常是多緒的。在很多情境中,它們同時以數仟緒以及以DSM運行,所有這些緒將共用可能遍及數十個伺服器之相同的位址空間。在這些環境中,具有與緒存取錯誤的記憶體區相關之軟體錯誤的機率(在應用中或程式庫中)將會遠高於目前的架構。因此,保護及偵測這些記憶體存取之揭露機制將是我們未來的DSM架構的成功及軟體採用之基礎。沒有硬體支援,要在遍及數十個節點之數仟個緒之間仲裁或偵測DSM中的記憶體毀損將是冗長或是不可能的任務。
於此詳述防止使用DSM之不同緒之間的記憶體崩壞之實施例。當違反出現且不讓其發生時,經由頁故障通知執行違反的緒。在很多情形中,這有助於幫助例如雜散指標器或緩衝器溢流等軟體錯誤在DSM中產生記憶體毀損。
這允許在一節點中運行的緒保護具有指定的存取模式的另一節點作為家之給定的記憶體區。由叢集中的任何其它緒完成的任何存取應該會產生故障及傳播資訊給系統。
圖10顯示以軟體可靠度及除錯力之觀點而言可能潛 在地造成巨大問題的情形之實例。資料庫具有在節點0 1001、1 1003及2 1005中運行的多個緒。節點1 1003使記憶體曝露至節點0 1001及2 1005。節點0 1001及2 1005具有存取遠端記憶體的二緒1009,1011及1013,1015。
資料庫軟體堆疊指派緒0 1009存取[a,b]、緒1 1011存取[b+1,c]、及緒2 1013和緒3 1015存取[e,f]。導因於軟體錯誤實施(舉例而言,毀損的指標器或緩衝器溢流),緒2 1013意外地產生記憶體參考,此記憶體參考結束要由緒0 1109專有地使用(理論上)的位址空間。這造成記憶體毀損。
根據此處詳述的實施例,硬體將允許資料庫保護緒0、1、2、及3正存取之各不同的記憶體區。
圖11顯示具有範圍違反的情形之實例。在本實例中,在緒1的位址空間中由緒2存放記錄將發出違反訊號。在此情形中,將發出頁故障訊息。
於此詳述介面(指令),其允許軟體緒指明給定的指令集被限制於對某記憶體範圍存取的特定型式。由指定模式中任何其它緒(在同調域之中或外部)執行的此位址空間之任何存取將會在請求側中產生頁故障及視先前的註冊而執行其它特定動作。
於此詳述實施遠端位址存取監控之硬體及其使用方法之實施例。圖1顯示支援遠端監控之系統實施例。典型的插座101包含眾多處理器核心105、晶粒上互連硬體 113、及結構介面111。使用結構交換器及結構介面111,遠端監控可以在節點內(經由晶粒上互連113的同調)或是節點之間從插座至插座。如此,取決於由監視請求當作目標的位址空間,請求可以前往至相同節點的本地記憶體,它們可以在晶粒上互連113進行而將請求安排路徑至相同的同調域內的其它處理器,或者,它們經由同調域外部之主結構介面(HFI)111而前往處理器。一系統可由一或更多同調域構成,所有同調域經由結構互連而連接。舉例而言,高性能計算或資料中心由使用結構而彼此通訊之N個叢集或伺服器構成。使用結構,各同調域會使某些位址區曝露給其它同調域。但是,在不同的同調域之間的存取是不同調的。在大部份的情形中,結構允許映射不同的同調域之間記憶體範圍的位址。
節點典型上也具有快取代理器及/或本地代理器115。快取代理器是處理來自相同節點內多個核心之記憶體請求的節點內之同調代理器。本地代理器(HA)是負責處理來自快取代理器之記憶體請求以及作為記憶體位址空間的部份的家之節點叢集(一晶粒具有多個具有分散式位址空間映射的家)。在此說明中,每一插座有本地代理器115,但是,在某些實施例中,可以每一節點有一本地代理器。此外,在某些實施例中,本地代理器的功能包含在快取代理器中且被稱為快取本地代理器(CHA),以109標示。在此說明中,典型上使用CHA以使說明簡潔。
快取代理器(例如CHA 109)是將交易啟始進入同調記 憶體中、以及將拷貝固持於它自己的快取結構中之實體。快取代理器由其根據快取同調協定中定義的行為而汲取及發出之訊息所界定。快取代理器也提供同調記憶體內容的拷貝給其它代理器。本地代理器(例如CHA 109或本地代理器115)是服務同調交易之實體,包含在需要時與快取代理器握手。本地代理器監控一部份的同調記憶體。本地代理器負責管理可能在不同的快取代理器之間產生的衝突。當給定的交易流程要求時,其會提供適當的資料及所有權響應。
此外,本地代理器包含具有下述用於記憶體位址的狀態之分散式目錄:清除(此為僅有的複製,舉例而言,正好被寫回之行)、任何(節點內的任何遠端插座具有拷貝)、及個別的(本地插座的快取記憶體具有拷貝)。其它狀態(遠端)標示遠端節點請求複製且當從結構發起用於行的請求時,更新或被更新。
加上監控方案的一邏輯處是節點內的本地代理器,以及,在某些實施例中,即為該情形。但是,當分散式方案映射HA(節點控制器、散列方案、半球、四象限方案、等等)中的位址空間時,以設計、面積及確認的觀點而言,這會加入太多的複雜度。如此,在某些實施例中,此監控資訊會被保留作為保護表(PT)103:1)在節點的代理主機中,代理主機會打開來自其它節點之任何記憶體交易至本地節點(結構介面111)的通道,2)在節點105內的核心,以及3)可存取本地記憶體而不經過代理主機(晶粒上互連 113)以辨識存取之獨特代理器。此表由監控電路(未顯示)使用,監控電路(未顯示)會追蹤記憶體/快取存取、將這些存取與表相比較、及依要求而改變任何存取的源起核心。
在某些實施例中,分散式記憶體監控方案允許核心暫在本地核心註冊以監控有用的位址範圍。註冊方案允許探索由系統中其它的快取代理器存取之給定線落在指定的位址範圍內;因此,其會更新用於給定範圍的共用者的有效位元。請求追蹤位址範圍的核心會使用標籤目錄結構107以表示存取特定位址範圍之叢集中的插座,且會由核心使用以追蹤/監控位址範圍。
此目錄是二維的非完美標籤目錄。首先,假使整體系統具有很大的位址空間,則不同的位址可以在相同的標籤登錄中相符(於下說明)。其次,在共用者的遠端追蹤資訊中的各位元(例如位元遮罩或光暈過濾器)對應於系統中的快取代理器群組。與每一核心的標籤目錄相關連之硬體執行光暈或其它過濾,以測試集合中的聯集。
圖2顯示標籤目錄的實施例。在標籤目錄201中的登錄包含用於追蹤尺寸粒度203、位址散列205、追蹤粒度207、及遠端共用者的資訊209之欄位。
可以經由如上詳述的同調呼叫,提供追蹤尺寸203及追蹤粒度207。如此,使用頁等級或巨大頁等級追蹤而非快取線追蹤,可以縮減目錄中的列的數目。
以簡化的實例而言,假定8節點各2插座的假設叢集以及考慮各節點僅具有4MB的記憶體(各64B的65K條 線)。現在,在查詢目錄中有65K列登錄,各對應於節點中的線。在此情境中,16位元的位元遮罩準確地追蹤向此節點請求記憶體的插座。但是,事實上,系統具有很多很多更大的記憶體,對查詢目錄的空間需求快速地變成不實際。基於此理由,目錄非完美。
光暈過濾、或節點群組、或節點子集合209代替位元遮罩會降低對於目錄之空間複雜度。
為了提供規模度,在某些實施例中,使用散列函數H(),將快取線位址205散列至列中,注意,列的數目小於快取線的數目。良好選擇H()可以造成較少的碰撞,舉例而言,使用快取線位址的較低階位元會確保用於散列函數的良好散佈。注意,有碰接並非意指有任何正確性的損失;其僅表示可能的假性異常:由於二快取線映射至目錄中相同的列,我們將結束用窥探用於二快取線之「遠端節點」的聯合。
藉由選擇良好的散列函數,以及,使用分散的目錄位元(假使用於快取線的分散式目錄位元說「遠端」,則僅需查閱標籤目錄),假性異常的機率會變小。同時,要求窥探的節點數目顯著地減少。如先前所述般,藉由根據應用指定的暗示而改變散列的粒度及使用光暈過濾器追蹤替代位元遮罩,則進一步的交易是可能的。
各代理主機及核心可以在其保護表中含有固定數目的保護登錄。各保護登錄含有位址範圍、請求保護的原始本處、及所有相關連的資訊(屬性及動作)。假使沒有空閒的 登錄,則動作失敗。當位址爭吵時,該動作也失敗。假使被請求的位址範圍與另一監控登錄重疊時,則動作也將失敗。在失敗的情形中,失敗響應將會被送回至發起方結構且其將會被傳送至軟體堆疊。最終,在失敗的情形中,軟體將被通知且其將需要採取對應的動作。傳播失敗給軟體堆疊之不同的方式可為從核心發出回撥給軟體堆疊。
為允許保護正由給定的核心監控之給定的位址,在某些實施例中,用於保護初始化(Protect_Range)及保護釋放(Unprotect_Range)的指令及訊息會由處理器核心支援。這些指令提供新介面,允許軟體緒指明給定的指令集被限制於對某記憶體範圍特定型式的存取。在指定模式中對於由任何其它緒(在同調域中或外部)執行之此位址空間的任何存取將會被自動地通知軟體堆疊。從此點,軟體堆疊是負責採取特定動作(舉例而言,重新啟動受監控的物件之重新啟動)。
PROTECT_RANGE及UNPROTECT_RANGE指令的實施例是:PROTECT_RANGE base_address,granularity,mode,size,action UNPROTECT_RANGE
PROTECT_RANGE的語義是下述,緒提供基線位址、需要被監控的位址空間的粒度、監控模式、及尺寸。舉例而言,粒度可為快取線、記憶體線、KB、MB或GB(舉例而言,碼化為:0,1,2,3,4)。尺寸指定需要被監控的粒度空間之倍數。模式指定什麼型式的違反正被監控 讀取(R)或寫入(W)(舉例而言,W模式意指假使位址區隨著寫入操作而被存取時,將緒被通知)。「動作」係指明控制此範圍的存取的本地節點將採取何者:(a)產生通知給請求的緒/節點;(b)在本地節點的特定上下文中產生通知(例如,一實體註冊保護監視器而其它處理違反);(c)在具有違反的位址範圍之所有權的緒/節點中產生通知;以及(d)a,b,或c的任何組合。
為了能夠傳播頁故障給容納受保護範圍的節點之多緒中之一,第三指令將在資料中心的所有節點中執行。當由保護違反造成的頁故障於本地節點中發生時,被指明的緒負責採取一或更多特定動作。這些傳播保護違反io的不同方式提供彈性給軟體堆疊,一旦偵測到保護違反時,取得分散的及潛在獨立的決定。
下述實例顯示將交易內的多個指令束縛至位址空間,所述位址空間對應於在讀/寫模式中[300000,300000+4MB]位址空間以及指定僅有擁有者應接收頁故障:Protect_range 300000,2,4,W,Requestor。
PROTECT_RANGE的執行造成PROTECT_RANGE訊息從啟始(源起的)核心被送至其本地快取代理器,而被傳播至遠端核心,等等,以設置監控(例如,保護表)。在某些實施例中,用於執行核心的保護表也被設定(舉例而言,當保護表中的資訊於節點中的核心、代理主機等等中被複製時)。
UNPROTECT_RANGE的執行會停止監控及移除相關 連的保護表。
圖3顯示舉例說明之使用PROTECT_RANGE的實施例。在301,在第一節點中的第一核心(起始核心)執行PROTECT_RANGE指令。舉例而言,在圖1中,核心0105執行PROTECT_RANGE指令。
在303,此執行促使監控請求(PROTECT_RANGE訊息)從第一核心發送至其對應的快取代理器。此請求包括來自指令的資訊(基本位址、粒度、尺寸和模式)。快取代理器管理基線位址以設立請求的監控。取決於實施,此快取代理器是與本地代理器分開的。舉例而言,在圖1中,核心105發送請求給CHA 109(合併的快取及本地代理器)。換言之,核心會警告位址(AS)的快取代理器其要隨著提供的屬性及動作而監控[base_address至base_address+granularity*size]。
在305,在某些實施例中,快取代理器辨識負責管理請求之本地域本地代理器。舉例而言,本地代理器負責基本位址。注意,如上詳述般,經過辨識的本地代理器可以在與快取代理器相同的實體(CHA)中結合。
在307,經過辨識的本地代理器可以辨識系統中的什麼節點是用於核心(緒)要監控之位址空間的家(其可為本地同調域)。
在309,一旦用於位址區的家經過辨識,請求被送至代理主機(在圖1的顯示中是結構111或是晶粒上互連113)以在本地節點中設置監視。換言之,在309,保護訊 息代理連接(PROTECT_RANGE訊息)會從經過辨識的本地代理器發送至遠端節點,所述遠端節點是位址空間的家。注意,節點屬於不同的同調域且使用結構,或是其可在相同的同調域中。在該情形中,代理主機將是晶粒上互連。
在311,關於保護監控的註冊成功或失敗之來自代理連接之響應會由起始核心接收。會造成失敗的實例包含但不限於重疊的位址空間、沒有空閒的監控空間、及硬體故障。假使監控成功時,則用於核心的標籤目錄會被更新。此外,在大部份的實施例中,在確認一或更多監控被規劃時,遍及所有代理主機,更新保護表。
在註冊之後,在某些實施例中,在313,接收給予受監控的位址空間之通知。舉例而言,遠端監控處理對於受監控的位址之寫入。此可由核心或代理主機接收。圖4顯示處理遠端監控違反的實施例。在401,由核心接收違反通知。在403,這會促使核心產生使用者中斷。
或者,在405,由核心接收違反通知。在409,這促使核心通知軟體堆疊。在任一情形中,軟體堆疊是負責採取適當的動作以克服失敗。在動作(a)的情形中,違反受保護區的請求將向前進展以解除分配CHA中的結構。但是,歸還狀態給請求方核心(取代為任何MESI或MEOSIF狀態將是違反通知)。然後,類似於目前的處理器以保護鑰機制處理頁故障般,請求方核心將產生頁故障。假使動作(a)未被規劃,則請求方節點將單純地接收資料。核心傳播違反給使用者空間。
在成功的情形中,在313,在執行所有不同的作業而無違反的情形中,請求的核心,unprotect_range訊息(反註冊)會從第一核心發送至監視代理主機。舉例而言,核心執行UNPROTECT_RANGE指令以釋放監控且一旦釋放指令被執行時,核心會將釋放告知遠端代理主機(在實例中為插座B的HFI)。代理主機傳播釋放通知給用於此監視及核心的真正的家。
圖5顯示舉例說明的在接收側上使用PROTECT_RANGE的實施例。在501,接收節點的代理主機接收請求以啟動保護監控。換言之,在位址空間的家之遠端節點處,接收保護訊息代理連接(PROTECT_RANGE訊息)。注意,節點屬於不同的同調域且使用結構,或者,其可在相同的同調域之內。在該情形中,代理主機將是晶粒上互連。
在503,此請求被送至核心及代理主機。
在505,與請求有關之來自核心及代理主機之確認會由接收代理主機(例如結構)接收。舉例而言,保護監控是否被成功設置。這些確認典型上包含回應方的識別符。
在507,這些確認會由代理主機處理成單一確認,單一確認會被送至起始核心。對起始核心的確認包含監控發生處的識別符。
圖6顯示舉例說明之接收側上UNPROTECT_RANGE使用的實施例。在601,接收節點的代理主機接收請求以釋放監控。換言之,在309,監控訊息代理連接 (UNPROTECT_RANGE訊息)會在遠端節點處被接收,所述遠端節點是位址空間的家。注意,節點可以屬於不同的同調域及使用結構,或者,其可以在相同的同調域之內。在該情形中,代理主機將是晶粒上互連。
在603,此請求被發送至核心及代理主機。
在605,關於請求之來自核心及代理主機之確認會由接收代理主機(例如結構)接收。舉例而言,監控停止與否。這些確認典型上包含回應方的識別符。
在607,這些確認會由代理主機處理成單一確認,單一確認會被送至起始核心。對起始核心的確認包含監控停止處的識別符。
圖7顯示使用PROTECT_RANGE及UNPROTECT_RANGE的初始化及最終化之實例。初始核心701解碼及執行PROTECT_RANGE。舉例而言,核心701上的緒執行PROTECT_RANGE指令。此指令提供基本位址、要被監控的空間的粒度(例如記憶體線、KB、MB、或GB)、尺寸、及模式。
節點A中的核心701發送請求給管理基線位址(CAH:CA+HA)的本地快取代理器以設置監視。核心701通知CHA其要隨著要執行的動作而監控位址空間(AS),其中,AS=[@base_address to base_address+granularity*size]。
CHA 703辨識指定的記憶體區被映射至什麼家(例如插座)。在某些實施例中,假使區域屬於數個家,則指令 被放棄。CHA 703辨識何者為負責管理請求位址(base_address)之本地同調域中的本地代理器。本地代理器(CHA 703)辨識系統中的什麼節點(插座)是緒要監控之用於位址空間的家(其可為本地同調域)。
CHA 703發送保護訊息代理連接結構707以送至作為用於AS的家之遠端節點。在目標側,代理主機產生多播訊息,使代理主機以例如節點717中的任何晶粒上互連代理器及節點中的任何結構互連代理器709及本地插座中的所有核心711和715等插座為目標。
所有目標目的地以確認訊息來回應監視註冊的成功或失敗。典型上,回應會由接收監控請求(在本實例中為結構709)之本地節點中的代理主機毀壞。在失敗的情形中,其將傳播通知給請求方且將取消對本地節點內其餘同級的註冊。
假使任何代理代理器或核心辨識出違反被請求的監控AS之位址空間交易,則它們將發送違反訊息給核心701,通知它違反。核心701傳播違反給使用者空間。
當沒有核發,或有違反被偵測到,則一旦UNPROTECT_RANGE指令被解碼及執行時,核心701將發送解除註冊訊息,警告代理主機:核心不需要再監控AS。一旦釋放指令被執行時,核心將釋放通知給遠端代理主機(結構709)。代理主機709傳播釋放通知給用於此監控的真正家及核心。注意,由於在先前說明的註冊處理中收到的確認,所以,核心701將知道代理主機識別符。
如上所述般,有時,給定的區域空間會被偵測到被系統中的其它緒意外存取/修改。三種不同的情形會發生:1)位址空間由違反保護模式的其它代理器存取。這意指交易已違反且代理主機必須採取在protect_region空間處被指定的對應動作。2)系統中的任何其它緒未進行存取。這意指沒有錯誤行為發生且保護資源可以被釋放。3)任何其它型式的故障發生。舉例而言,遠端節點故障或發生逾時。當錯誤發生時((1)或(3)),類似於註冊失敗,則補捉到違反之代理主機將採取先前指明的多個特定動作中之一。
圖8顯示用於處理未請求監控的核心(非起始核心)之衝突的方法實施例。在801,非起始核心讀或寫(存取)記憶體或快取位址。
在803,決定存取是對受保護的位址、及具有受監控的存取型式。舉例而言,判定對受監控的位址空間中的位址寫入(存取型式)。當然,對未受監控的位址之存取、或是對受監控但不具有被監控的型式之位址之存取,不會造成衝突。
在805,非起始核心發送違反通知給請求監控的核心。此通知會取決於核心如何配置而經過結構或互連介面。
圖9顯示處理衝突的實例。在本實例中,設置(PROTECT_RANGE)已經發生。保護會指明僅有違反請求之請求方必須是頁故障。其次,由相同的緒發出之讀取作 業集(舉例而言,此可為資料庫對索引伺服器的部份之交易)。然後,由受節點A保護的區域中的節點C執行假寫入作業。在節點B中的代理主機HFI會辨識給定的位址正由節點A保護。跟隨在保護登錄中指明的動作之後,HFI將完成歸還給節點C中的請求方,表示違反發生。CHA將違反傳播給請求方核心。核心產生頁故障給造成違反之上下文。注意,即使保護區動作通知,儘管違反發生,節點A仍將保持進行正常工作。
下述圖式詳述舉例說明的實施上述之實施例的架構及系統。在某些實施例中,如下詳述般模擬、或是以軟體模組實施上述一或更多硬體組件及/或指令。
舉例說明的暫存器架構
圖12是根據本發明的一實施例之暫存器架構1200的方塊圖。在所示的實施例中,有512位元寬的32個向量暫存器1210;這些暫存器稱為zmm0至zmm31。較低的16 zmm暫存器的低階256位元覆蓋於暫存器ymm0-16之上。較低的16 zmm暫存器的低階128位元(ymm暫存器的低階128位元)覆蓋於暫存器xmm0-15之上。
純量作業是對zmm/ymm/xmm暫存器中最低階資料元位置執行的作業;更高階的資料元位置視實施例而保留成與它們在指令之前相同或者零化。
寫入遮罩暫存器1215-在所示的實施例中,有8個大小均為64位元之寫入遮罩暫存器(k0至k7)。在替代實 施例中,寫入遮罩暫存器1215大小為16位元。如同先前所述般,在本發明的一實施例中,向量遮罩暫存器k0無法作為寫入遮罩;當正常標示k0的編碼用於寫入遮罩時,其選取0xFFFF的實體接線的寫入遮罩,有效地使用於該指令的寫入遮罩禁能。
一般用途暫存器1225-在所示的實施例中,有十六個64位元一般用途暫存器,它們與現有的x86定址模式一起用以將記憶體運算元定址。這些暫存器以名稱RAX、RBX、RCX、RDX、RBP、RSI、RDI、RSP、及R8至R15表示。
純量浮點堆疊暫存器檔案(x87堆疊)1245,MMX緊縮整數平坦暫存器檔案1250疊於其上-在所示的實施例中,x87堆疊是八元堆疊,用以使用x87指令集延伸,對32/64/80位元浮點資料執行純量浮點作業;而MMX暫存器被用以對64位元緊縮整數資料執行作業,以及固持用於某些在MMX及XMM暫存器之間執行的作業之運算元。
本發明的替代實施例可以使用更寬或更窄的暫存器。此外,本發明的替代實施例可以使用更多、更少、或不同的暫存器檔案及暫存器。
舉例說明的核心架構、處理器、及電腦架構
為了不同目的而以不同方式、及在不同處理器中,實施處理器核心。舉例而言,這些核心的實施包含:1)要用 於一般用途計算的一般用途有序核心;2)要用於一般用途計算的高性能一般用途亂序核心;3)主要用於圖形及/或科學(輸貫量)計算的特定用途的核心。不同處理器的實施包含:1)CPU,包含要用於一般用途計算的一或更多一般用途有序核心及/或要用於一般用途計算的一或更多一般用途亂序核心;及2)副處理器,包含主要用於圖形及/或科學(輸貫量)計算的一或更多特定用途核心。這些不同的處理器導致不同的電腦系統架構,包含:1)在與CPU分別的晶片上的副處理器;2)在與CPU相同的封裝中在分別的晶粒上的副處理器;3)在與CPU相同的晶粒上的副處理器(在此情形中,此副處理器有時被稱為特定用途邏輯,例如集成的圖形及/或科學(輸貫量)邏輯,或是作為特定用途核心);及4)系統晶片,在相同晶粒上包含所述CPU(有時稱為應用核心或應用處理器)、上述副處理器、及其它功能。於下說明舉例說明的核心架構,接著是舉例說明的處理器及電腦架構的說明。
舉例說明的核心架構 有序及亂序核心方塊圖
圖13A是方塊圖,顯示根據本發明的實施例之舉例說明的有序管線及舉例說明的暫存器重命名、亂序核發/執行管線。圖13B是方塊圖,顯示根據本發明的實施例之要包含於處理器中之舉例說明的暫存器重命名、亂序核發/執行架構核心以及有序架構核心之舉例說明的實施例。圖 13A-B中的實線方塊顯示有序管線及有序核心,而選加的虛線方塊顯示暫存器重命名、亂序核發/執行管線及核心。在有序態樣是亂序態樣的子集合之假設下,說明亂序態樣。
在圖13A中,處理器管線1300包含提取級1302、長度解碼級1304、解碼級1306、分配級1308、重命名級1310、排程(也稱為派遣或核發)級1312、暫存器讀取/記憶體讀取級1314、執行級1316、寫回/記憶體寫入級1318、例外處理級1322、及提交級1324。
圖13B顯示處理器核心1390,處理器核心1390包含耦合至執行引擎單元1350之前端單元1330,執行引擎單元1350及前端單元1330都耦合至記憶體單元1370。核心1390可為精簡指令集計算(RISC)核心、複雜指令集計算(CISC)核心、很長指令字(VLIW)核心、或是混合或替代核心型式。關於又另一選項,核心1390可為特別用途的核心,舉例而言,例如網路或通訊核心、壓縮引擎、副處理器核心、一般用途計算圖形處理單元(GPGPU)核心、圖形核心、等等。
前端單元1330包含分支預測單元1332,分支預測單元1332耦合至指令快取單元1334,指令快取單元1334耦合至指令轉譯旁看緩衝器(TLB)1336,指令轉譯旁看緩衝器(TLB)1336耦合至指令提取單元1338,指令提取單元1338耦合至解碼單元1340。解碼單元1340(或解碼器)將指令解碼,以及產生微碼進入點、微指令、其它指令、或 是從原始指令解碼、或是從原始指令以其它方式反應、或是從原始指令導出的其它控制訊號,以作為輸出的一或更多微作業。使用各種不同的機構,以實施解碼單元1340。適當的機構實例包含但不限於查詢表、硬體實施、可編程邏輯陣列(PLA)、微碼唯讀記憶體(ROM)、等等。在一實施例中,核心1390包含儲存用於某些巨集指令的微碼(例如,在解碼單元1340中或是在前端單元1330之內)之微碼ROM或是其它媒體。解碼單元1340耦合至執行引擎單元1350中的重命名/分配器單元1352。
執行引擎單元1350包含重命名/分配器單元1352,重命名/分配器單元1352耦合至退出單元1354及一或更多排程器單元1356的集合。排程器單元1356代表任何數目的不同排程器,包含保留站、中央指令窗、等等。排程器單元1356耦合至實體暫存器檔案單元1358。各實體暫存器檔案單元1358代表一或更多實體暫存器檔案,不同的實體暫存器檔案儲存例如純量整數、純量浮點、緊縮整數、緊縮浮點、向量整數、向量浮點、等等一或更多不同的資料型式、狀態(例如,指令指標,指令指標是要被執行的下一指令的位址)、等等。在一實施例中,實體暫存器檔案單元1358包括向量暫存器單元、寫入遮罩暫存器單元、及純量暫存器單元。這些暫存器單元提供架構向量暫存器、向量遮罩暫存器、及一般用途暫存器。實體暫存器檔案單元1358由退出單元1354重疊,以顯示實施暫存器重命名及失序執行的各種方式(例如,使用重排序緩衝 器及退出暫存器檔案;使用未來檔案、歷史緩衝器、及退出暫存器檔案;使用暫存器映射及暫存器池;等等)。退出單元1354及實體暫存器檔案單元1358耦合至執行叢集1360。執行叢集1360包含一或更多執行單元1362的集合以及一或更多記憶體存取單元1364的集合。執行單元1362執行不同的作業(例如,偏移、加法、減法、乘法)以及對不同型式的資料(例如,純量浮點、緊縮整數、緊縮浮點、向量整數、向量浮點)執行作業。雖然某些實施例包含專用於特定功能或功能集的一些執行單元,但是,其它實施例可以僅包含一執行單元或是多個都執行所有功能的執行單元。由於某些實施例產生用於某些型式的資料/作業之分別的管線,所以,排程器單元1356、實體暫存器檔案1358、及執行叢集1360顯示為可能為複數的(例如,均具有它們自己的排程器單元、實體暫存器檔案單元、及/或執行叢集的純量整數管線、純量浮點/緊縮整數/緊縮浮點/向量整數/向量浮點管線及/或記憶體存取管理,以及,在分別的記憶體存取管線的情形中,實施某些實施例,其中,僅有此管線的執行叢集具有記憶體存取單元1364)。也應瞭解,在使用分別的管線時,這些管線中之一或更多可以是亂序核發/執行,而其它是有序的。
記憶體存取單元1364的集合耦合至記憶體單元1370,記憶體單元1370包含耦合至資料快取單元1374的資料TLB單元1372,資料快取單元1374耦合至階層2(L2)快取單元1376。在一舉例說明的實施例中,記憶體 存取單元1364包含載入單元、儲存位址單元、及儲存資料單元,各單元耦合至記憶體單元1370中的資料TLB單元1372。指令快取單元1334又耦合至記憶體單元1370中的階層2(L2)快取單元1376。L2快取單元1376耦合至一或更多其它階層的快取記憶體以及最後耦合至主記憶體。
舉例而言,舉例說明的暫存器重命名、亂序核發/執行核心架構如下所述地實施管線1300:1)指令提取1338執行提取及長度解碼級1302和1304;2)解碼單元1340執行解碼級1306;3)重命名/分配器單元1352執行分配級1308及重命名級1310;4)排程器單元1356執行排程級1312;5)實體暫存器檔案單元1358及記憶體單元1370執行暫存器讀取/記憶體讀取級1314;執行叢集1360執行執行級1316;6)記憶體單元1370及實體暫存器檔案單元1358執行寫回/記憶體寫入級1318;7)各種單元涉及例外處理級1322;以及,8)退出單元1354及實體暫存器檔案單元1358執行提交級1324。
核心1390支援一或更多指令集(例如,x86指令集(增加較新版本的某些擴充);加州太陽谷的MIPS Technologies的MIPS指令集;加州太陽谷的ARM Holdings的ARM指令集(加上選加的例如NEON等增加擴充)),包含此處所述的指令。在一實施例中,核心1390包含邏輯以支援緊縮資料指令集擴充(例如AVX1、AVX2),藉以允許由很多多媒體應用所使用的作業使用緊 縮資料而執行。
應瞭解,核心支援多緒(執行二或更多平行的作業或緒組),以及,以各種方式如此執行,這些方式包含時間切割多緒、同時多緒(其中,單一實體核心提供用於實體核心同時正多緒化的多個緒中的各緒之邏輯核心)、或是其組合(例如,時間切割提取及解碼以及其後的同時多緒,例如Intel® Hyperthreading技術中所示)。
雖然在亂序執行的環境中說明暫存器重命名,但是,應瞭解,暫存器重命名可用於有序架構中。雖然所示的處理器的實施例也包含分別的指令及資料快取單元1334/1374以及共用的L2快取單元1376,但是,替代實施例具有用於指令及資料之單一內部快取,例如階層1(L1)內部快取、或是多階層的內部快取。在某些實施例中,系統包含內部快取及外部快取的組合,外部快取是核心及/或處理器的外部。替代地,所有的快取可以是核心及/或處理器的外部。
具體舉例說明的有序核心架構
圖14A-B顯示更具體之舉例說明的有序核心架構的方塊圖,其中,核心是晶片中數個邏輯區塊(包含相同型式及/或不同型式的其它核心)中之一。這些邏輯區塊視應用而經由設有某些固定功能邏輯之高頻寬互連網路(例如,環式網路)、記憶體I/O介面、及其它所需I/O邏輯而通訊。
圖14A是根據本發明的實施例之單一處理器核心、以及其對晶粒上互連網路1402的連接及其本地子集合的階級2(L2)快取記憶體1404之方塊圖。在一實施例中,指令解碼器1400支援設有緊縮資料指令集擴充的x86指令集。L1快取記憶體1406允許對快取記憶體低潛時存取至純量及向量單元。雖然在一實施例中(為了簡化設計),純量單元1408和向量單元1410使用分開的暫存器集(分別為純量暫存器1412和向量暫存器1414)及在它們之間傳送的資料被寫至記憶體,然後從階層1(L1)快取記憶體1406讀回,但是,本發明的替代實施例可以使用不同的方式(例如,使用單一暫存器集或是包含通訊路徑,允許資料在二暫存器檔案之間傳送而不用寫入及讀回)。
L2快取記憶體1404的本地子集合是被分割成多個分別的本地子集合之通用L2快取的部份,每一處理器核心有一分別的本地子集合。各處理器核心對於它自己的L2快取記憶體1404的本地子集合具有直接存取路徑。與存取它們自己的本地L2快取記憶體子集合之其它處理器核心相平行地,由處理器核心讀取的資料被儲存在L2快取子集合1404中且可以被快速地存取。由處理器核心寫入的資料儲存在它自己的L2快取子集合1404中,且假使需要時從其它子集合湧入。環式網路確保共用資料的同調性。環式網路是雙向的以允許例如處理器核心、L2快取記憶體及其它邏輯區塊以在晶片之內彼此通訊。各環式資料路徑是每一方向1012位元寬。
圖14B是根據本發明的實施例的圖14A中的處理器核心的部份之放大視圖。圖14B包含L1快取記憶體1404的L1資料快取記憶體1406A部份、以及關於向量單元1410和向量暫存器1414的更多細節。具體而言,向量單元1410是16-寬的向量處理單元(VPU)(請參見16-寬的ALU 1428),其執行整數、單精準浮點、及雙倍精準浮點指令中之一或更多。VPU以調和單元1420支援調和暫存器輸入、以數字轉換單元1422A-B支援數字轉換、以及以記憶體輸入上的複製單元1424支援複製。寫入遮罩暫存器1426允許預測造成的向量寫入。
圖15是根據本發明的實施例之具有一個以上的核心、具有集成的記憶體控制器、及具有集成的圖形的處理器1500的方塊圖。圖15中的粗線框顯示具有單核心1502A、系統代理器1510、一或更多匯流排控制器單元1516的組之處理器1500,而選加的虛線框顯示設有多核心1502A-N、系統代理器單元1510中一或更多集成的記憶體控制器單元1514的組、以及特定用途邏輯1508的替代處理器1500。
因此,處理器1500的不同實施包含:1)CPU,設有特定用途邏輯1508及核心1502A-N,特定用途邏輯1508是集成的圖形及/或科學(通量)邏輯(包含一或更多核心),核心1502A-N是一或更多一般用途核心(例如,一般用途有序核心、一般用途亂序核心、二者之組合);2)副處理器,設有核心1502A-N,核心1502A-N是大量主要用於圖 形及/或科學(通量)的特定用途核心;以及,3)副處理器,設有核心1502A-N,核心1502A-N是大量一般用途的有序核心。因此,處理器1500可為一般用途處理器、副處理器或特定用途處理,舉例而言,網路或通訊處理器、壓縮引擎、圖形處理器、GPGPU(一般用途圖形處理單元),高通量多集成核心(MIC)副處理器(包含30或更多核心)、嵌入式處理器、等等。處理器可以實施在一或更多晶片上。使用例如BiCMOS、CMOS、或NMOS等多種製程技術,處理器1500可以實施在一或更多基底上及/或其一部份。
記憶體階層架構包含在核心內的一或更多階層的快取記憶體、一組或一或更多共用快取單元1506、及耦合至集成的記憶體控制器單元1514組之外部記憶體(未顯示)。共用快取單元1506組可以包含例如階層2(L2)、階層3(L3)、階層4(L4)、或其它階層快取記憶體等一或更多中級快取、最後階層快取記憶體(LLC)、及/或其組合。雖然在一實施例中,環式基礎互連單元1512將集成的圖形邏輯1508、共用快取單元1506的組、及系統代理器單元1510/集成的記憶體控制器單元1514互連,但是,替代實施例可以使用任何數目的已知技術來互連這些單元。在一實施例中,在一或更多快取單元1506與核心1502-A-N之間維持同調性。
在某些實施例中,核心1502A-N中之一或更多核心能夠多緒化。系統代理器1510包含協調及操作核心1502A-N之那些組件。系統代理器單元1510可以包含例 如電力控制單元(PCU)及顯示單元。PCU可以是或包含調節核心1502A-N及集成的圖形邏輯1508的電力狀態所需的邏輯及組件。顯示單元是用於驅動一或更多外部連接的顯示器。
以架構指令集的觀點而言,核心1502A-N可以是同質的或異質的;亦即,核心1502A-N中之二或更多能夠執行相同的指令集,而其它核心能夠僅執行該指令集的子集合或不同的指令集。
舉例說明的電腦架構
圖16-19是舉例說明的電腦架構的方塊圖。用於膝上型電腦、桌上型電腦、手持PC、個人數位助理、工程工作站、伺服器、網路裝置、網路集線器、交換器、嵌入式處理器、數位訊號處理器(DSP)、圖形裝置、電動遊戲裝置、機上盒、微控制器、行動電話、可攜式媒體播放器、手持裝置、及各式各樣的其它電子裝置之此領域中熟知的其它系統設計及配置也是適合的。一般而言,能夠併有此處所揭示的處理器及/或其它執行邏輯的眾多種類的系統或電子裝置通常是適合的。
現在參考圖16,其顯示根據本發明的一實施例之系統1600的方塊圖。系統1600可以包含耦合至控制器集線器1620之一或更多處理器1610、1615。在一實施例中,控制器集線器1620包含圖形記憶體控制器集線器(GMCH)1690及輸入/輸出集線器(IOH)1650(可以在分別的 晶片上);GMCH 1690包含記憶體及圖形控制器,記憶體1640及副處理器1645耦合至記憶體及圖形控制器;IOH 1650將輸入/輸出(I/O)裝置1660耦合至GMCH 1690。替代地,記憶體及圖形控制器中之一或二者集成於處理器之內(如上所述),記憶體1640及副處理器1645直接耦合至處理器1610、及設有IOH 1650之單晶片中的控制器集線器1620。
在圖16中以虛線標示增加的處理器1615的選加本質。每一處理器1610、1615包含此處所述的一或更多處理核心以及可以是某些版本的處理器1500。
舉例而言,記憶體1640可以是動態隨機存取記憶體(DRAM)、相位改變記憶體(PCM)、或是二者的組合。對於至少一實施例,控制器集線器1620經由多接點匯流排而與處理器1610、1615通訊,多接點匯流排為例如前側匯流排(FSB)、例如快速路徑互連(QPI)等點對點介面、或是類似連接1695。
在一實施例中,副處理器1645是特定用途處理器,例如高通量MIC處理器、網路或通訊處理器、壓縮引擎、圖形處理器、GPGPU、嵌入式處理器、等等。在一實施例中,控制器集線器1620包含集成的圖形加速器。
以包含架構、微架構、熱、耗電特徵、等等準則計量系列的觀點而言,實體資源1610、1615之間有各種差異。
在一實施例中,處理器1610執行控制一般型式的資 料處理作業之指令。處理器指令可以嵌入在指令之內。處理器1610將這些副處理器指令視為應由附加的副處理器1645執行的型式。因此,處理器1610在副處理器匯流排上或其它互連上核發這些副處理器指令(或是代表副處理器指令的控制訊號)給副處理器1645。副處理器1645接受及執行收到的副處理器指令。
現在參考圖17,其顯示根據本發明的實施例之第一更特定舉例說明的系統1700的方塊圖。如圖17中所示般,多處理器系統1700是點對點互連系統,以及包含經由點對點互連1750耦合的第一處理器1770和第二處理器1780。各處理器1770及1780可以是某版本的處理器1500。在本發明的一實施例中,處理器1770和1780分別是處理器1610和1615,而副處理器1738是副處理器1645。在另一實施例中,處理器1770及1780分別是處理器1610和副處理器1645。
處理器1770及1780顯示為分別包含集成的記憶體控制器(IMC)單元1772和1782。處理器1770也包含點對點(P-P)介面1776和1778作為它的匯流排控制器單元的一部份;類似地,第二處理器1780包含P-P介面1786和1788。處理器1770、1780可以使用P-P介面電路1778、1788而經由點對點(P-P)介面1750來交換資訊。如同圖17中所示般,IMC 1772和1782將處理器耦合至各別記憶體,亦即記憶體1732和記憶體1734,它們可以是本地附著至各別處理器的主記憶體的部份。
處理器1770、1780使用點對點介面電路1776、1794、1786、1798,經由個別的P-P介面1752、1754而均可以與晶片組1790交換資訊。晶片組1790經由高性能介面1739,而與副處理器1738選加地交換資訊。在一實施例中,副處理器1738是特定用途處理器,例如高通量MIC處理器、網路或通訊處理器、壓縮引擎、圖形處理器、GPGPU、嵌入式處理器、等等。
共用的快取記憶體(未顯示)可以包含在任一處理器中或是二處理器的外部,未經由P-P互連與處理器連接,以致於假使處理器置於低電力模式中時,任一或二處理器的本地快取資訊可以儲存在共用的快取記憶體中。
晶片組1790可以經由介面1796而耦合至第一匯流排1716。在一實施例中,第一匯流排1716可以是週邊元件互連(PCI)匯流排,或是例如PCI快速匯流排或其它第三代I/O互連匯流排等匯流排,但是,本發明的範圍不侷限於此。
如圖17中所示般,各式各樣的I/O裝置1714與匯流排橋接器1718耦合至第一匯流排1716,匯流排橋接器1718耦合第一匯流排1716至第二匯流排1720。在一實施例中,例如副處理器、高通量MIC處理器、GPGPU、加速器(例如,圖形加速器或是數位訊號處理(DSP)單元)、現場可編程閘陣列、或是任何其它處理器等一或更多增加的處理器1715耦合至第一匯流排1716。在一實施例中,第二匯流排1720可以是低接腳數(LPC)匯流排。在一實施 例中,各種裝置可以耦合至第二匯流排1720,舉例而言,包含鍵盤及/或滑鼠1722、通訊裝置1727及例如包含指令/碼及資料1730的碟片驅動器或其它大量儲存裝置的儲存單元1728。此外,音頻I/O 1724可以耦合至第二匯流排1720。注意,其它架構是可能的。舉例而言,取代圖17的點對點架構,系統可以實施多接點匯流排或其它此類架構。
現在參考圖18,其顯示根據本發明的實施例之第二更特定的舉例說明的系統1800之方塊圖。圖17及18中類似的元件帶有類似的代號,以及,圖17的某些態樣在圖18中被省略,以免模糊圖18的其它態樣。
圖18顯示處理器1770、1780分別包含集成的記憶體及I/O控制邏輯(「CL」)1772和1782。因此,CL 1772、1782包含集成的記憶體控制器單元及包含I/O控制邏輯。圖18顯示不僅記憶體1732、1734耦合至CL 1772、1782,I/O裝置1814也耦合至控制邏輯1772、1782。舊制I/O裝置1815耦合至晶片組1790。
現在參考圖19,其顯示根據本發明的實施例之系統晶片(SoC)1900的方塊圖。圖15中類似的元件帶有類似的代號。而且,虛線框關於更多先進的SoC的選加特點。在圖19中,互連單元1902耦合至:應用處理器1910,包含一或更多核心202A-N的集合及共用快取單元1506;系統代理器單元1510;匯流排控制器單元1516;集成的記憶體控制器單元1514;一組或一或更多副處理器1920, 包含集成的圖形邏輯、影像處理器、音頻處理器、以及視頻處理器;靜態隨機存取記憶體(SRAM)單元1930;直接記憶體存取(DMA)單元1932;以及用於耦合至一或更多外部顯示器的顯示單元1940。在一實施例中,副處理器1920包含特定用途處理器,舉例而言,例如網路或通訊處理器、壓縮引擎、GPGPU、高通量MIC處理器、嵌入式處理器、等等。
此處揭示的機制實施例可以以硬體、軟體、韌體或這些實施方式的結合來實施。本發明的實施例可以實施成在可編程系統上執行的電腦程式或程式碼,可編程系統包括至少一處理器、儲存系統(包含依電性及非依電性記憶體及/或儲存元件)、至少一輸入裝置、及至少一輸出裝置。
例如圖17中所示的程式碼1730可以應用至輸入指令以執行此處所述的功能和產生輸出資訊。輸出資訊可以以已知方式應用至一或更多輸出裝置。為了此應用,處理系統包含具有例如數位訊號處理器(DSP)、微控制器、特定應用積體電路(ASIC)、或微處理器等處理器之任何系統。
程式碼可以以高階程序或物件導向的程式語言實施,以與處理系統通訊。假使需要時,程式碼也可以以組合或機器語言來實施。事實上,此處所述的機制在範圍上不侷限於任何特定的程式語言。在任何情形中,語言可以是經過編譯或解譯的語言。
至少一實施例的一或更多態樣可以由儲存在機器可讀 取的媒體上之代表指令實施,代表指令代表處理器內各種邏輯,代表指令由機器讀取時促使機器製造邏輯以執行此處所述的技術。稱為「IP核心」的這些代表可以儲存在實體的、機器可讀取的媒體並供應至各式各樣的客戶或製造設施,而載入至真正地產生邏輯的製造機器或處理器。
此機器可讀取的媒體包含但不限於由機器或裝置製造或形成的物件之非暫時、實體配置,包括例如硬碟等儲存媒體、包含軟碟、光碟、光碟唯讀記憶體(CD-ROM)、光碟可重寫記憶體(CD-RW))、及磁光碟等任何其它型式的碟片、例如唯讀記憶體(ROM)、例如動態隨機存取記憶體(DRAM)、靜態隨機存取記憶體(SRAM)等隨機存取記憶體(RAM)、可抹拭可編程唯讀記憶體(EPROM)、快閃記憶體、電可抹拭可編程唯讀記憶體(EEPROM)等半導體裝置、相位改變記憶體(PCM)、磁性或光學卡、或適用於儲存電子指令的任何其它型式的媒體。
因此,本發明的實施例也包含含有指令或含有設計資料之非暫時、實體的機器可讀取的媒體,所述設計資料是例如硬體說明語言(HDL),其界定此處所述的結構、電路、裝置、處理器及/或系統特點。這些實施例也意指程式產品。
模仿(包含二進位轉譯、碼變體、等等)
在某些情形中,指令轉換器可以用以將指令從源指令集轉換至標的指令集。舉例而言,指令轉換器可以將指令 轉譯(例如,使用靜態二進位轉譯、包含動態編譯的動態二進位轉譯)、變體、模仿、或以其它方式轉換至由核心處理的一或更多其它指令。指令轉換器可以以軟體、硬體、韌體、或其結合來實施。指令轉換器可以是在處理器上、不在處理器上、或部份在處理器上及部份離開處理器。
圖20是方塊圖,將根據本發明的實施例之使用軟體指令轉換器以將源指令集中的二進位指令轉換成標的指令集中的二進位指令作對比。在顯示的實施例中,指令轉換器是軟體指令轉換器,但是,指令轉換器可以替代地以軟體、韌體、硬體、或其各種結合來實施。圖20顯示高階語言2002的程式,可以由x86編譯器2004編譯以產生x86二進位碼2006,二進位碼2006可以由具有至少一x86指令集核心的處理器2016原地執行。具有至少一x86指令集核心的處理器2016代表藉由共容地執行或其它方式地處理下述,而能夠執行與具有至少一x86指令集核心的英特爾處理器實質上相同功能的任何處理器:(1)英特爾x86指令集核心的指令集的實質部份,或是(2)以在具有至少一x86指令集核心的英特爾處理器上執行為目標之應用程式或其它軟體的物件碼版本,以便取得與具有至少一x86指令集核心的英特爾處理器實質上相同的結果。x86編譯器2004代表可以操作以產生x86二進位碼2006(例如,物件碼)之編譯器,x86二進位碼2006藉由或不藉由增加的鏈結處理,都可以在具有至少一x86指令集 核心的處理器2016上執行。類似地,圖20顯示高階語言2002的程式,使用替代指令集編譯器2008,可以將其編譯以產生替代指令集二進位碼2010,替代指令集二進位碼2010可以由不具有至少一x86指令集核心的處理器2014(例如,具有執行例如加州Sunnyvale的MIPS Technologies公司的MIPS指令集及/或加州Sunnyvale的ARM Holdings公司的ARM指令集之核心的處理器)原地執行。指令轉換器2012用以將x86二進位碼2006轉換成可以由不具有x86指令集核心的處理器2014原地執行的碼。由於能夠如此執行的指令轉換器難以製作,所以,此轉換的碼不易與替代指令集二進位碼2010相同;但是,所述轉換的碼將完成一般作業及由來自替代指令集的指令組成。因此,指令轉換器2012代表軟體、韌體、硬體或其組合,其經由模仿、模擬或任何其它處理而允許不具有x86指令集處理器或核心的處理器或其它電子裝置執行x86二進位碼2006。

Claims (10)

  1. 一種用於範圍保護的設備,包括:至少一監控電路,用以監控對位址空間的記憶體存取及在違反該位址空間時採取動作,其中,該動作是下述之一:產生通知給請求該監控的節點,以本地節點的特定上下文產生通知,及在擁有該位址空間的所有權的節點中產生通知;至少一保護表,用以儲存該位址空間的識別符;以及至少一硬體核心,用以執行使該監控電路賦能的指令,其中,該指令具有基本位址、記憶體尺寸粒度、追蹤粒度、模式、該粒度的倍數之該位址空間的尺寸、及該動作,其中,該記憶體尺寸粒度是快取線、頁、大頁、或巨大頁中之一。
  2. 如申請專利範圍第1項之設備,其中,該追蹤粒度是根據節點群組的數目。
  3. 如申請專利範圍第1項之設備,其中,該模式是讀及寫中之一。
  4. 如申請專利範圍第1項之設備,其中,該電路包括:快取代理器電路,用以處理來自該眾多硬體核心中至少之一的記憶體請求;以及本地代理器電路,用以處理來自該快取代理器的記憶 體請求以及作為該設備的記憶體空間的部份之家。
  5. 如申請專利範圍第1項之設備,又包括:緩衝器,用以儲存遠端儲存請求,該遠端儲存請求是由該指令的執行初始化之交易的一部份。
  6. 一種用於範圍保護的方法,包括:在核心中執行指令以促使:發送用以監控對位址空間的存取之監控請求給第一代理連接,其中,該請求包含基本位址、記憶體尺寸粒度、追蹤粒度、模式、該粒度的倍數之該位址空間的尺寸、及動作,其中,該動作是下述之一:產生通知給請求該監控的節點,產生錯誤請求,以本地節點的特定上下文產生通知,及在擁有該位址空間的所有權的節點中產生通知;發送該監控請求給第二代理連接以用於該第二代理連接,以廣播多播訊息給該第二代理連接的插座中的所有核心來初始化監控;接收來自該第二代理連接的表示該監控請求成功或失敗之確認,其中,該第一及第二代理連接是在實體上不同的節點上及經由結構介面通訊。
  7. 如申請專利範圍第6項之方法,其中,該第一及第二代理連接是在實體上不同的插座上及經由插座介面通訊。
  8. 如申請專利範圍第6項之方法,又包括:解除註冊該監控。
  9. 如申請專利範圍第6項之方法,又包括:該第二代理連接發送訊息給在其節點中的任何互連代理器。
  10. 如申請專利範圍第6項之方法,又包括:接收對該位址空間的存取之標示;更新該目錄以標示對該位址空間的該存取。
TW105139277A 2015-12-29 2016-11-29 用於範圍保護的方法及設備 TWI724071B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/983,087 US10547680B2 (en) 2015-12-29 2015-12-29 Systems, methods, and apparatuses for range protection
US14/983,087 2015-12-29

Publications (2)

Publication Number Publication Date
TW201732610A TW201732610A (zh) 2017-09-16
TWI724071B true TWI724071B (zh) 2021-04-11

Family

ID=59086904

Family Applications (1)

Application Number Title Priority Date Filing Date
TW105139277A TWI724071B (zh) 2015-12-29 2016-11-29 用於範圍保護的方法及設備

Country Status (4)

Country Link
US (1) US10547680B2 (zh)
CN (1) CN108369553B (zh)
TW (1) TWI724071B (zh)
WO (1) WO2017117321A2 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI804308B (zh) * 2022-05-05 2023-06-01 大陸商合肥兆芯電子有限公司 基於寫入行為預測的寫入控制方法、記憶體儲存裝置及記憶體控制電路單元

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3436920A4 (en) 2016-03-31 2019-12-18 INTEL Corporation TISSUE ELASTICITY SUPPORT FOR ATOMIC WRITING OF MANY STORAGE OPERATIONS ON REMOTE NODES
US10241706B2 (en) * 2016-05-20 2019-03-26 Renesas Electronics Corporation Semiconductor device and its memory access control method
US10992550B2 (en) * 2016-09-28 2021-04-27 Intel Corporation Techniques to control quality of service for end-to-end paths in a compute environment
CN110851316B (zh) * 2018-08-20 2024-09-20 北京京东尚科信息技术有限公司 异常预警方法及装置、系统、电子设备、存储介质
CN110674063B (zh) * 2019-09-16 2021-03-23 上海天数智芯半导体有限公司 一种用于芯片内实现fabric的架构和方法
CN112558870B (zh) * 2020-12-08 2023-08-01 机械工业仪器仪表综合技术经济研究所 一种针对地址空间的数据处理方法及装置
CN112905497B (zh) * 2021-02-20 2022-04-22 迈普通信技术股份有限公司 内存管理方法、装置、电子设备及存储介质
US11907724B2 (en) 2022-02-04 2024-02-20 International Business Machines Corporation In-memory trace with overlapping processing and logout

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090254529A1 (en) * 2008-04-04 2009-10-08 Lev Goldentouch Systems, methods and computer program products for content management
US20130243003A1 (en) * 2012-03-16 2013-09-19 Kabushiki Kaisha Toshiba Information processing device
US20150089584A1 (en) * 2005-12-29 2015-03-26 Nextlabs, Inc. Inspecting Code and Reducing Code Size Associated to a Target

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6961806B1 (en) * 2001-12-10 2005-11-01 Vmware, Inc. System and method for detecting access to shared structures and for maintaining coherence of derived structures in virtualized multiprocessor systems
US20060018271A1 (en) * 2004-07-20 2006-01-26 Utstarcom, Inc. Distributed network address management method and apparatus
US7310709B1 (en) 2005-04-06 2007-12-18 Sun Microsystems, Inc. Method and apparatus for primary cache tag error handling
US7516277B2 (en) 2005-04-28 2009-04-07 Sap Ag Cache monitoring using shared memory
US20070150660A1 (en) * 2005-12-28 2007-06-28 Marathe Jaydeep P Inserting prefetch instructions based on hardware monitoring
US8789028B2 (en) * 2006-06-30 2014-07-22 International Business Machines Corporation Memory access monitoring
US8347064B1 (en) 2006-09-19 2013-01-01 Nvidia Corporation Memory access techniques in an aperture mapped memory space
US7613882B1 (en) * 2007-01-29 2009-11-03 3 Leaf Systems Fast invalidation for cache coherency in distributed shared memory system
US7844779B2 (en) 2007-12-13 2010-11-30 International Business Machines Corporation Method and system for intelligent and dynamic cache replacement management based on efficient use of cache for individual processor core
US8171223B2 (en) 2008-12-03 2012-05-01 Intel Corporation Method and system to increase concurrency and control replication in a multi-core cache hierarchy
US8627017B2 (en) * 2008-12-30 2014-01-07 Intel Corporation Read and write monitoring attributes in transactional memory (TM) systems
US8782347B2 (en) * 2009-06-26 2014-07-15 Intel Corporation Controllably exiting an unknown state of a cache coherency directory
WO2011002371A1 (en) 2009-07-03 2011-01-06 Axel Jantsch A programmable controller
US8392657B2 (en) 2009-10-09 2013-03-05 Intel Corporation Monitoring cache usage in a distributed shared cache
US8930657B2 (en) * 2011-07-18 2015-01-06 Infineon Technologies Ag Method and apparatus for realtime detection of heap memory corruption by buffer overruns
US8838430B1 (en) * 2011-08-26 2014-09-16 Cadence Design Systems, Inc. Detection of memory access violation in simulations
US20130124805A1 (en) 2011-11-10 2013-05-16 Advanced Micro Devices, Inc. Apparatus and method for servicing latency-sensitive memory requests
WO2013081580A1 (en) 2011-11-29 2013-06-06 Intel Corporation Raw memory transaction support
US10275242B2 (en) * 2012-03-30 2019-04-30 Intel Corporation System and method for real time instruction tracing
US9304923B2 (en) 2013-03-12 2016-04-05 Arm Limited Data coherency management
US9208091B2 (en) * 2013-06-19 2015-12-08 Globalfoundries Inc. Coherent attached processor proxy having hybrid directory
US10705961B2 (en) * 2013-09-27 2020-07-07 Intel Corporation Scalably mechanism to implement an instruction that monitors for writes to an address
US9740617B2 (en) 2014-12-23 2017-08-22 Intel Corporation Hardware apparatuses and methods to control cache line coherence
US10095622B2 (en) 2015-12-29 2018-10-09 Intel Corporation System, method, and apparatuses for remote monitoring
US11163682B2 (en) 2015-12-29 2021-11-02 Intel Corporation Systems, methods, and apparatuses for distributed consistency memory

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150089584A1 (en) * 2005-12-29 2015-03-26 Nextlabs, Inc. Inspecting Code and Reducing Code Size Associated to a Target
US20090254529A1 (en) * 2008-04-04 2009-10-08 Lev Goldentouch Systems, methods and computer program products for content management
US20130243003A1 (en) * 2012-03-16 2013-09-19 Kabushiki Kaisha Toshiba Information processing device

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI804308B (zh) * 2022-05-05 2023-06-01 大陸商合肥兆芯電子有限公司 基於寫入行為預測的寫入控制方法、記憶體儲存裝置及記憶體控制電路單元

Also Published As

Publication number Publication date
WO2017117321A2 (en) 2017-07-06
WO2017117321A3 (en) 2018-02-22
CN108369553A (zh) 2018-08-03
US20170187805A1 (en) 2017-06-29
US10547680B2 (en) 2020-01-28
CN108369553B (zh) 2023-12-19
TW201732610A (zh) 2017-09-16

Similar Documents

Publication Publication Date Title
TWI724071B (zh) 用於範圍保護的方法及設備
CN104954356B (zh) 保护共享的互连以用于虚拟机
TWI397813B (zh) 用於虛擬化交易式記憶體的總體溢位之裝置、方法與系統
TWI748970B (zh) 用於遠端監視的設備
US9740617B2 (en) Hardware apparatuses and methods to control cache line coherence
TWI556161B (zh) 用以實施監測寫入至一位址的指令之處理器、系統和方法
US20200210315A1 (en) Method and system for cache agent trace and capture
TW202314486A (zh) 原子式儲存至寬於原生支援資料寬度之記憶體資料的處理器、方法、系統與指令
US9361233B2 (en) Method and apparatus for shared line unified cache
TWI715686B (zh) 用於容錯及錯誤偵測之系統、方法和裝置
US10339060B2 (en) Optimized caching agent with integrated directory cache
US10936490B2 (en) System and method for per-agent control and quality of service of shared resources in chip multiprocessor platforms
CN106293894B (zh) 执行事务性功率管理的硬件设备和方法
US10387072B2 (en) Systems and method for dynamic address based mirroring
US9037903B2 (en) Apparatus and method for partial memory mirroring
TWI731906B (zh) 用於分配式一致性記憶體的系統、方法及設備
TWI722009B (zh) 用於在遠端處理器上進行基元動作之硬體機制
TW201730773A (zh) 用於在多個快取層級之間的共用最近最少使用(lru)策略的設備及方法
JP6227151B2 (ja) アドレスへの書き込みに対する監視命令を実行するスケーラブル機構
JP2023070069A (ja) 仮想マシンにおけるユーザレベル割り込み

Legal Events

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