TWI567558B - 用於虛擬機器的安全分享互連的處理系統、晶片上系統及方法 - Google Patents

用於虛擬機器的安全分享互連的處理系統、晶片上系統及方法 Download PDF

Info

Publication number
TWI567558B
TWI567558B TW104104392A TW104104392A TWI567558B TW I567558 B TWI567558 B TW I567558B TW 104104392 A TW104104392 A TW 104104392A TW 104104392 A TW104104392 A TW 104104392A TW I567558 B TWI567558 B TW I567558B
Authority
TW
Taiwan
Prior art keywords
virtual machine
transaction
memory
identifier
firewall
Prior art date
Application number
TW104104392A
Other languages
English (en)
Other versions
TW201602785A (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 TW201602785A publication Critical patent/TW201602785A/zh
Application granted granted Critical
Publication of TWI567558B publication Critical patent/TWI567558B/zh

Links

Classifications

    • 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
    • G06F9/45558Hypervisor-specific management and integration aspects
    • 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
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1684Details of memory controller using multiple buses
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/362Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
    • G06F13/364Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control using independent requests or grants, e.g. using separated request and grant lines
    • 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
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45587Isolation or security of virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1052Security improvement

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Storage Device Security (AREA)

Description

用於虛擬機器的安全分享互連的處理系統、晶片上系統及方法
本揭示發明的實施例大致上相關於處理系統,且更具體地相關於使執行虛擬機器之處理系統的分享互連安全。
處理系統可包括處理單元(諸如,中央處理單元(CPU)及圖形處理單元(GPU))、主裝置(在下文中稱為匯流排主控器)、及從屬裝置(在下文中稱為匯流排受控器)可經由其彼此通訊的分享互連。匯流排受控器可包括周邊裝置及記憶體。周邊裝置及記憶體可經由該互連與處理系統及匯流排主控器通訊。處理單元可執行可包括一或多個虛擬機器的虛擬化系統以提供更多資源分享。然而,分享互連可使匯流排受控器暴露在來自不為人知的匯流排主控器的惡意攻擊。另外,虛擬化系統使匯流排受控器受來自不為人知的虛擬機器的惡意攻擊。
100‧‧‧處理系統
102‧‧‧中央處理單元(CPU)模組
104‧‧‧中央處理單元(CPU)
106‧‧‧匯流排主控器
108‧‧‧匯流排受控器
110‧‧‧記憶體裝置
112、1111‧‧‧互連
114‧‧‧虛擬化系統
116‧‧‧虛擬機器
118‧‧‧虛擬機器管理程式
120‧‧‧控制器
122、1226‧‧‧處理邏輯
124‧‧‧記憶體防火牆
126‧‧‧周邊防火牆
128‧‧‧記憶體控制器
128‧‧‧暫存器
200、208‧‧‧表
202‧‧‧第一節(VMID)
204‧‧‧第二節
206‧‧‧第三節
210‧‧‧虛擬機器之識別符的列表
212‧‧‧存取許可
310A、310B、310C‧‧‧CPU交易
312A、312B、312C、314、316、318‧‧‧交易
400‧‧‧方法
500‧‧‧管線
590、600、810、815、970、980‧‧‧處理器
502‧‧‧提取級
504‧‧‧長度解碼級
506‧‧‧解碼級
508‧‧‧配置級
510‧‧‧更名級
512‧‧‧排程級
514‧‧‧暫存器讀取/記憶體讀取級
516‧‧‧執行級
518‧‧‧寫回/記憶體寫入級
522‧‧‧異常管理級
524‧‧‧提交級
530‧‧‧前端單元
532‧‧‧分支預測單元
534‧‧‧指令快取單元
536‧‧‧指令轉換後備緩衝器(TLB)
538‧‧‧指令提取單元
540‧‧‧解碼單元
550‧‧‧執行引擎單元
552‧‧‧更名/配置器單元
554‧‧‧引退單元
556‧‧‧排程器單元
558‧‧‧實體暫存器檔案(等)單元
560‧‧‧執行叢集
562‧‧‧執行單元
564‧‧‧記憶體存取單元
570‧‧‧記憶體單元
572‧‧‧資料TLB單元
574‧‧‧資料快取單元(DCU)
576‧‧‧2級(L2)快取記憶體單元
601‧‧‧有序前端
602‧‧‧快速排程器
603‧‧‧無序執行引擎
604‧‧‧慢速/通用浮點排程器
606‧‧‧簡單浮點排程器
608、610‧‧‧暫存器檔案
611‧‧‧執行區塊
612、614‧‧‧位址產生單元(AGU)
616、618‧‧‧快速ALU
620‧‧‧慢速ALU
622‧‧‧浮點ALU
624‧‧‧浮點移動單元
626‧‧‧指令預提取器
628‧‧‧指令解碼器
630‧‧‧追蹤快取記憶體
632‧‧‧微碼ROM
634‧‧‧微運算佇列
700‧‧‧多處理器系統
714、914‧‧‧I/O裝置
716‧‧‧第一匯流排
718‧‧‧匯流排橋接器
720‧‧‧第二匯流排
722‧‧‧鍵盤及/或滑鼠
724‧‧‧音訊I/O
727‧‧‧通訊裝置
728‧‧‧儲存單元
730‧‧‧指令/碼及資料
732、734、840、932、934‧‧‧記憶體
738‧‧‧高效能圖形電路
739‧‧‧高效能圖形介面
750、950、952、954‧‧‧點對點互連
752、754‧‧‧P-P介面
770‧‧‧第一處理器
772、782、1014‧‧‧積集記憶體控制器單元
776、778、786、788、976、978、986、988、994、998‧‧‧點對點(P-P)介面
780‧‧‧第二處理器
790、990‧‧‧晶片組
794、798‧‧‧點對點介面電路
796、996‧‧‧介面
800、900‧‧‧系統
820‧‧‧圖形記憶體控制器集線器(GMCH)
845‧‧‧顯示器
850‧‧‧輸入/輸出(I/O)控制器集線器
860‧‧‧外部圖形裝置
870‧‧‧周邊裝置
895‧‧‧前側匯流排(FSB)
915‧‧‧傳統I/O裝置
972、982‧‧‧積集記憶體及I/O控制邏輯(「CL」)
1000、1100‧‧‧SoC
1002A、1002N、1106、1107‧‧‧核心
1006‧‧‧分享快取記憶體單元
1008‧‧‧積集圖形邏輯
1010‧‧‧系統助理單元
1012‧‧‧互連單元
1016‧‧‧匯流排控制器單元
1018‧‧‧媒體處理器
1020‧‧‧應用處理器
1024‧‧‧影像處理器
1026‧‧‧音訊處理器
1028‧‧‧視訊處理器
1030‧‧‧靜態隨機存取記憶體(SRAM)單元
1032‧‧‧直接記憶體存取(DMA)單元
1040‧‧‧顯示單元
1108‧‧‧快取記憶體控制
1109‧‧‧匯流排介面單元
1110‧‧‧L2快取記憶體
1115‧‧‧GPU
1120‧‧‧視訊編碼解碼器
1125‧‧‧視訊介面
1130‧‧‧用戶識別模組(SIM)
1135‧‧‧開機ROM
1140‧‧‧SDRAM控制器
1145‧‧‧快閃記憶體控制器
1150‧‧‧周邊控制
1160‧‧‧DRAM
1165‧‧‧快閃記憶體
1170‧‧‧藍牙模組
1175‧‧‧3G數據機
1180‧‧‧GPS
1185‧‧‧Wi-Fi
1200‧‧‧電腦系統
1202‧‧‧處理裝置
1204‧‧‧主記憶體
1206‧‧‧靜態記憶體
1208‧‧‧網路介面裝置
1210‧‧‧視訊顯示單元
1212‧‧‧文數字輸入裝置
1214‧‧‧游標控制裝置
1216‧‧‧訊號產生裝置
1218‧‧‧料儲存裝置
1220‧‧‧網路
1222‧‧‧圖形處理單元
1224‧‧‧機器可存取儲存媒體
1226‧‧‧軟體
1226‧‧‧指令
1228‧‧‧視訊處理單元
1230‧‧‧匯流排
1232‧‧‧音訊處理單元
本揭示發明將從下文提供的實施方法並從本揭示發明 之各種實施例的隨附圖式而更完全地理解。然而,該等圖式不應用於將本揭示發明限制在具體實施例,而僅係用於解釋及理解。
圖1描繪根據本揭示發明之實施例的處理系統。
圖2A描繪根據本揭示發明的實施例之保護記憶體的防火牆規則。
圖2B描繪根據本揭示發明的實施例之保護周邊裝置的防火牆規則。
圖3A描繪根據本揭示發明的實施例之設定該處理系統的運算。
圖3B描繪根據本揭示發明的實施例之CPU交易及匯流排主控器交易的存取控制。
圖4係根據本揭示發明的實施例用於圖1所示之處理系統的方法的流程圖。
圖5A係描繪用於本揭示發明之一實施例可使用於其中的處理器之微架構的方塊圖。
圖5B係描繪根據本揭示發明的至少一實施例實作的有序管線及暫存器更名級、無序發佈/執行管線的方塊圖。
圖6描繪根據本揭示發明的一實施例用於處理器之微架構的方塊圖。
圖7係描繪本揭示發明的實施例可使用於其中之系統的方塊圖。
圖8係本揭示發明的實施例可於其中運算之系統的方 塊圖。
圖9係本揭示發明的實施例可於其中運算之系統的方塊圖。
圖10係根據本發明的實施例之系統單晶片(SoC)的方塊圖。
圖11係根據本揭示發明的SoC設計之實施例的方塊圖。
圖12描繪電腦系統之一實施例的方塊圖。
【發明內容及實施方式】
為保護匯流排受控器免於受經由分享互連的惡意攻擊,本揭示發明的實施例包括將存取匯流排受控器的各交易與識別該交易係為其執行之虛擬機器的識別符關聯的處理系統。另外,實施例可提供一或多個防火牆給互連以驗證企圖使用該虛擬機器的識別符存取匯流排受控器的交易。
雖然下列實施例可參考具體積體電路而描述,諸如,計算平台或微處理器,可將其他實施例應用至其他種類的積體電路及邏輯裝置。相似技術及本文描述之實施例的教示可應用於其他種類的電路或半導體裝置。例如,所揭示的實施例並未受限於桌上型電腦系統或超輕薄筆記型電腦(UltrabooksTM)。也可能使用在其他裝置中,諸如,手持裝置、平板電腦、其他薄型筆記型電腦、系統單晶片(SOC)裝置、及嵌入式應用。手持裝置的部分範例包括 行動電話、網際網路協定裝置、數位相機、個人數位助理(PDA)、及手持PC。嵌入式應用典型地包括微控制器、數位訊號處理器(DSP)、系統單晶片、網路電腦(NetPC)、機上盒、網路集線器、廣域網路(WAN)交換器、或能實施下文教示之功能及運算的任何其他系統。
雖然以下實施例係參考至處理器而描述,其他實施例可應用至其他種類的積體電路及邏輯裝置。相似技術及本揭示發明之實施例的教示能應用至能從更高管線處理量及改善效能獲利的其他種類的電路或半導體裝置。本揭示發明之實施例的教示可應用於實施資料操控的任何處理器或機器。然而,本揭示發明並未受限於實施512位元、256位元、128位元、64位元、32位元、或16位元資料運算的處理器或機器,並能應用至在其中實施資料的操控或管理的任何處理器及機器。此外,以下描述提供範例,且隨附圖式顯示用於說明之目的的各種範例。然而,不應以限制方式將此等範例詮釋為僅企圖提供本揭示發明之實施例的範例而非提供本揭示發明之實施例的所有可能實作的詳盡列表。
圖1描繪根據本揭示發明之實施例的處理系統100。在一實施例中,處理裝置100可係可實作在單一半導體封裝內的單一晶粒(相同基板)上的系統單晶片硬體電路。處理系統可包括中央處理單元(CPU)模組102、匯流排主控器(#1至#N)106、匯流排受控器(#1至#M)108、記憶體裝置110、及互連112。
CPU模組102可更包括中央處理單元(CPU)(#1至#K)104,且各CPU可包括一或多個處理核心(未圖示)。CPU 104及/或處理核心可執行虛擬化系統114以容許一或多種作業系統的多個實例在稱為代管處理裝置(「主機」)的處理系統100上運行。因此,處理系統100可係代管虛擬化系統114的主機。虛擬化系統114可用硬體實作(也稱為硬體輔助虛擬化)。CPU 104的指令集可延伸以包括啟動及退出虛擬機器的指令,使得虛擬化系統114可用硬體輔助方式實作。在硬體輔助虛擬化中,稱為虛擬機器管理程式(「VMM」,也稱為超管理程式)118的軟體模組可用於建立及管理一或多個虛擬機器116(也稱為客體機器)。VMM 118可呈現具有客體作業系統的各虛擬機器並管理客體作業系統的執行。應用軟體(也稱為客體軟體)可在虛擬機器116上執行。因此,應用軟體的多個實例可經由虛擬化系統114藉由分享處理系統100的硬體資源而在虛擬機器116上執行。
VMM 118可藉由控制處理系統100的硬體組件而直接在主機的硬體上運行,並可管理虛擬機器116的客體作業系統。此常稱為種類-I VMM。或者,VMM 118可在處理系統100的作業系統(也稱為主體作業系統)內運行。此常稱為種類-II VMM。在任一種類的VMM下,可將在虛擬機器上執行的客體作業系統及客體應用軟體的指令轉譯為給CPU 104的指令並由此等CPU執行。
各CPU 104可包括處理核心(未圖示)以執行指令及 快取記憶體(「快取記憶體」)以針對快速儲存及取得本地地儲存指令及與該等指令關聯的資料。通常,各CPU可具有不同級的快取記憶體。典型地,各處理核心可具有其自有的L1及L2快取記憶體,雖然L1快取記憶體小於且快於L2快取記憶體,且多個核心可分享比L1或L2快取記憶體更大且更慢的L3快取記憶體。CPU 104可在代表虛擬機器的VMM或主體作業系統的控制下執行運算。由CPU 104實施以將在CPU模組102出入的資料及指令移至互連112,然後至周邊裝置108或至記憶體110的運算稱為CPU交易。藉由L1/L2快取記憶體快取的CPU交易稱為經快取交易。例如,若經快取交易係存取周邊裝置108及/或記憶體110,彼等也可稱為經快取CPU存取。相反地,未藉由L1/L2快取記憶體快取的CPU交易稱為非經快取交易。
互連112可係不同硬體組件(諸如,處理單元104、匯流排主控器106、周邊裝置108、記憶體110)經由其彼此通訊的匯流排系統。通訊的內容可包括導向記憶體110及周邊裝置108的CPU交易。CPU交易可包括與待針對虛擬機器實行之指令關聯的指令及資料。除了提供鏈結此等硬體組件的分享通訊結構外,互連112也可包括控制器120以控制分享通訊鏈路上的流量。例如,回應於接收導向存取記憶體110的CPU交易,控制器120可剖析CPU交易以識別記憶體的位址範圍,並經由記憶體控制器130在該位址範圍讀或寫該內容。另外,CPU也可經由周 邊控制器(未圖示)發送交易至周邊裝置108。在一實施例中,各周邊裝置可包括控制器,且在另一實施例中,多個周邊裝置可分享控制器。
匯流排主控器106可包括以可執行碼編程的控制器及微處理器,以將流量導至互連112,然後導至周邊裝置108及/或記憶體110。在一實作中,匯流排主控器可係代表CPU存取記憶體的直接記憶體存取(DMA)控制器。因此,匯流排主控器106可在CPU的指導下取得對互連112的存取,並也產生匯流排主控器交易,亦即,移動在匯流排主控器出入的指令及資料的該等運算(在下文中稱為BM交易)。BM交易可藉由繞過CPU而執行。在虛擬化系統的情景中,CPU(或處理核心)可將虛擬機器的特定CPU交易卸載至匯流排主控器,使得匯流排主控器可經由互連112將指定給虛擬機器的BM交易導至周邊裝置108及/或記憶體110。另外,互連112的控制器120可剖析BM交易以在合適的周邊裝置108及/或記憶體110的記憶體範圍存取(讀或寫)內容。
互連112可接收CPU交易及BM交易而不必知道係何虛擬機器發起特定交易。因為沒有此等交易之擁有者的背景感知,在CPU 104上運行的任何虛擬機器可存取記憶體110的任何部分及任何周邊裝置108。另外,任何匯流排主控器106可存取記憶體110的任何部分及任何周邊裝置108。因此,發送交易而不識別此等交易的所有權的分享互連112及虛擬化系統114使記憶體110及周邊裝置 108易為惡意攻擊所傷害。
本揭示發明的實施例可包括處理系統,其包括處理邏輯以將交易(CPU或BM交易的任一者)與該交易係為其執行之虛擬機器的識別符關聯。在一實施例中,識別符係在虛擬機器建立之前自動產生並儲存在CPU之內部暫存器中的虛擬機器識別(VMID)。各VMID唯一地識別一虛擬機器。或者,識別符能係可指定給虛擬機器以識別該虛擬機器的任何字母數字串。因此,與虛擬機器的識別符關聯的交易可追蹤至該虛擬機器。為了簡化及簡潔,除了識別符唯一地識別虛擬機器外,虛擬機器的識別符及VMID可交換地使用而不將虛擬機器的識別符限制為特定種類的識別符。另外,實施例可對互連112中的處理邏輯提供,以使用虛擬機器的識別符及/或配置至虛擬機器的記憶體範圍驗證該經接收交易。以此方式,即使交易仍經由分享互連112發送且來自虛擬化系統114,可保護周邊裝置108及記憶體110免於不受期望的存取或惡意攻擊。
圖1描繪根據本揭示發明的實施例之具有進一步細節的處理系統100。參考圖1,各虛擬機器116可用識別符(例如,VMID)識別。識別符可係能唯一地識別虛擬機器的位元序列。在一實施例中,識別符可係當虛擬機器供電或重設時指定給虛擬機器的通用唯一識別符(UUID)。在一實施例中,識別符可係N-位元整數(其中N可係任何長度)並可儲存在執行虛擬機器之CPU的內部暫存器中。識別符可經由VMM 118的系統工具存 取。
在一實施例中,各CPU 104可包括處理邏輯122以決定運算係自其發起之虛擬機器的識別符。當VMM 118從虛擬機器發送運算至CPU模組102時,識別符可藉由其提供。在一實施例中,虛擬化可使用可具有額外指令集(例如,x86處理器的虛擬機器擴展指令集或VMX)的虛擬化技術以硬體輔助方式實現以建立VMM及虛擬機器。例如,將VMX使用為範例,CPU可藉由執行VMM開始命令(例如,VMXON)進入虛擬模式以在根運算中開始VMM 118。在根運算下,VMM 118可與為根運算保留的識別符關聯,例如,VMID=0。在根運算下,VMM 118可使用根識別符以如以下段落所描述地設定硬體組件。隨後,在虛擬模式下,VMM 118可使用虛擬機器進入命令(例如,VM_ENTRY)建立虛擬機器。在虛擬機器建立時,虛擬機器本文切換行為可緊隨在後。例如,可將識別虛擬機器的VMID建立及儲存在CPU的內部暫存器中。虛擬機器以非根運算方式運算。由虛擬機器發起的各後續交易可藉由處理邏輯122以VMID標記。然而,當虛擬機器退出時(例如,使用VM_EXIT命令),可將儲存在內部暫存器及VM本文中的識別符移除,且VMM的根運算模式可在虛擬機器的退出時返回。
由虛擬機器請求的運算可包括經由互連112存取記憶體110或周邊裝置108的CPU交易。因此,針對藉由已進入虛擬機器至分享互連112的各交易,處理邏輯122可 讀取儲存VMID的內部暫存器並以識別符標記該交易。以此方式,將CPU交易與該等CPU交易自其產生的虛擬機器關聯。
在一實施例中,CPU可在指定時間將各匯流排主控器106與一個虛擬機器關聯。CPU可導致將該關聯虛擬機器的VMID儲存在匯流排主控器106的暫存器128中。CPU可執行VMM 118以在虛擬機器啟始時將VMID指定給匯流排主控器。在一實施例中,與匯流排主控器關聯的虛擬機器可在虛擬機器系統114的執行時期期間改變。對應於關聯虛擬機器的改變,CPU可對應地更新儲存在暫存器128中的識別符以包括該目前關聯的虛擬機器的VMID。因此,當匯流排主控器發佈BM交易至匯流排受控器(周邊裝置或記憶體)時,匯流排主控器的控制器可首先以儲存在暫存器128中的VMID標記該交易。以此方式,將BM交易與該等BM交易為其實施之虛擬機器的VMID關聯。
在一實施例中,各虛擬機器在建立時可由VMM 118指定以使用記憶體的特定部分。例如,VMM 118可指定虛擬機器存取記憶體的位址範圍,使得不同的虛擬機器可存取記憶體的不同位址範圍。在一實施例中,CPU 104的處理邏輯122也可使用(除了虛擬機器的VMID外)用於存取記憶體110導向分享互連112的各CPU交易標記虛擬機器的記憶體位址範圍。相似地,匯流排主控器也可使用(除了虛擬機器的識別符外)用於存取記憶體110導向 分享互連112的各BM交易標記虛擬機器的記憶體位址範圍。以此方式,存取記憶體110的交易可更使用記憶體位址範圍識別。
在一實施例中,互連112可包括一或多個防火牆以檢查通過的交易。在一實施例中,互連可包括記憶體防火牆124以控制導向互連112且隨後至記憶體110(記憶體可係RAM或塊儲存器,諸如,嵌入式多媒體控制器(eMMC))的該等交易。記憶體防火牆124可包括互連112的控制器120及基於規則的策略以控制對記憶體110的存取。控制器120可實作一或多個規則以根據記憶體防火牆124的一或多個規則決定是否可執行經接收交易(CPU交易或BM交易)。在一實施例中,一或多個規則可包括容許的一或多個識別符及彼等的對應記憶體位址範圍。圖2A描繪根據本揭示發明的實施例之保護互連112的範例規則的表200。表200可儲存在可由控制器120存取的暫存器中。參考圖2A,表200的各列可代表可容許交易存取記憶體110的一部分的一項規則。如圖2A所示,各列可包括第一節(VMID)202以指示容許虛擬機器的識別符,及第二及第三節204及206以指示位址範圍的開始及結束位址。回應於接收交易(來自CPU 104或來自匯流排主控器106),控制器120可從交易接收該關聯虛擬機器的識別符及位址範圍。隨後,控制器120可將經接收識別符及位址範圍與容許虛擬機器及對應位址範圍比較。若彼等滿足該等規則之一者(諸如,區域0-2),記 憶體防火牆124可容許交易的執行以存取藉由該VMID識別之虛擬機器的記憶體位址範圍。然而,若在互連112導向的交易未滿足表200中的任何規則,存取記憶體110的交易可由記憶體防火牆124拒絕。例如,防火牆124可容許包括虛擬機器#1之識別符及在0x1000-0x1FFF內之對應記憶體位址範圍的交易執行。然而,用於虛擬機器#3的交易可因為該交易未滿足任何規則而受拒絕。以此方式,未授權存取(或惡意攻擊)可基於交易中的本文內容由防火牆124防止。
在一實施例中,互連也可包括周邊防火牆126以控制導向這些周邊裝置108的該等交易存取。周邊防火牆126可包括控制器120及規則為基的策略以控制對周邊裝置的存取。控制器120可將存取策略實作為一或多個規則以根據周邊防火牆126的一或多個規則決定是否可執行經接收交易(CPU交易或BM交易)。在一實施例中,周邊防火牆126的一或多個規則可包括一或多個虛擬機器的VMID。在一實施例中,周邊防火牆126可係可偵測容許虛擬機器之識別符的位址解碼電路邏輯。
圖2B描繪根據本揭示發明的實施例之保護周邊裝置的防火牆規則的表208。表208可儲存在可由控制器120存取的暫存器中。如圖2B所示,表208可包括虛擬機器之識別符的列表210及彼等對周邊裝置的對應存取許可212。因此,控制器120可接收來自經接收交易之虛擬機器的VMID並與儲存在表208中的存取許可比較。若經識 別虛擬機器具有存取許可,周邊防火牆126可容許交易在周邊裝置上執行。然而,若周邊防火牆126決定控制器不具有存取許可,周邊防火牆126可拒絕該交易存取匯流排受控器。例如,來自虛擬機器#1的交易會被拒絕,同時來自虛擬機器#2的交易會被容許存取周邊裝置。以此方式,也可保護周邊裝置免於來自未授權虛擬機器或匯流排主控器的惡意攻擊。在一實施例中,記憶體防火牆124及周邊防火牆126係二個分離的防火牆。在另一實施例中,記憶體防火牆124及周邊防火牆126可實作為控制對記憶體110及周邊裝置108之存取的一個防火牆。
在一實施例中,防火牆124、126可包括容許具有根存取識別符的交易組態記憶體防火牆124及周邊防火牆126的根(超級使用者)存取識別符。根存取對設定匯流排主控器中的暫存器128係有用的,其儲存與匯流排主控器關聯之虛擬機器的VMID,且在執行時間期間在處理系統100開始時或在虛擬機器的進入時對設定記憶體防火牆124及周邊防火牆126係有用的。根存取對除錯硬體也可係有用的。在一實施例中,根存取可使用「0」的識別符識別。在一實施例中,VMM 118可指定有根存取識別符,使得VMM可在虛擬機器建立時或在虛擬機器退出時在匯流排主控器106設定虛擬機器的識別符並在防火牆124、126設定存取策略。例如,VMM 118可使用根存取以將虛擬機器的VMID寫至指定給該虛擬機器之匯流排主控器的暫存器128。VMM 118也可使用根存取以更新防火 牆124、126的規則以包括虛擬機器的VMID,且針對記憶體防火牆124,包括記憶體位址範圍。因此,如圖2A-2B所示之防火牆124、126的規則包括用於VMM 118的根存取許可。另外,根存取也可提供給除錯工具,使得其可除錯硬體錯誤。
對匯流排主控器106及防火牆124、126具有根存取的VMM 118可組態匯流排主控器的暫存器128,並在處理系統100重設時組態防火牆124、126之規則為基的策略。圖3A描繪根據本揭示發明的實施例之VMM 118可在處理系統100重設時實施的運算,以保護分享互連112及匯流排受控器免於未授權存取。參考圖3A,當處理系統100重設時(例如,在供電時),處理系統100的CPU 104可首先開始VMM 118。在開始時,VMM 118可執行可包括將虛擬機器擴展指令集(VMX)運算致能之指令(諸如,VMXON指令)的開始碼。開始碼(諸如,VMXON指令)可將一或多個CPU 104置於根存取模式中(例如,VMX_ROOT)。
使用根存取,VMM 118可對互連112、匯流排主控器106具有完全存取,以設定各匯流排主控器106與一個虛擬機器關聯,及設定記憶體防火牆124及周邊防火牆126。例如,如圖3A所示,VMM 118可執行虛擬機器啟動命令以建立各者與個別VMID關聯的一或多個虛擬機器。隨後,在302,VMM 118可設定匯流排主控器106。例如,VMM 118可將一個虛擬機器的VMID寫至匯流排 主控器(例如,匯流排主控器#1)的內部暫存器以將該匯流排主控器(BM #1)與該虛擬機器關聯。
在304,VMM 118可針對互連112中的記憶體防火牆124設定(及更新)規則為基的策略以控制對記憶體110的存取。例如,記憶體110可分割為可由虛擬機器存取的不同範圍(例如,MR #1-#3)。VMM 118可發送及輸入一或多個規則至記憶體防火牆124的規則表(諸如,規則表200)中。各規則可包括具有存取記憶體110之許可及這些虛擬機器的對應位址範圍之此等虛擬機器的VMID。記憶體防火牆124可用於控制藉由交易(CPU交易或BM交易)對記憶體110之區域的存取。例如,可執行包括容許虛擬機器的識別符及在記憶體110之對應位址範圍內的交易以存取記憶體位址範圍。然而,不包括容許識別符或不在對應記憶體位址範圍內的交易可被拒絕。
在306,VMM 118也可針對周邊裝置108設定(及更新)周邊防火牆126之規則為基的策略以控制對周邊裝置108的存取。例如,VMM 118可發送及輸入一或多個規則至周邊防火牆126的規則表(諸如,規則表208)中。各周邊裝置可具有個別規則表,且各規則可包括具有存取該周邊裝置之許可的虛擬機器的VMID。然後周邊防火牆126可用於控制藉由交易(CPU交易或BM交易)對周邊裝置的存取。例如,可執行包括容許虛擬機器之識別符的交易以存取該周邊裝置。然而,不包括容許識別符的交易可被拒絕。
一旦VMM 118設定記憶體防火牆124、周邊防火牆126、及匯流排主控器106的暫存器128,對記憶體110及周邊裝置108的CPU交易及BM交易可在防火牆124、126根據與CPU/BM交易關聯的VMID受調查及控制。藉由互連112對記憶體110的CPU/BM交易更可根據與CPU/BM交易之虛擬機器的識別符關聯的記憶體位址範圍受調查及控制。
圖3B描繪根據本揭示發明的實施例之CPU/BM交易的存取控制。虛擬機器116可執行可企圖存取記憶體110及/或存取周邊裝置108的CPU交易。另外,匯流排主控器(諸如,與虛擬機器#1關聯的匯流排主控器106)也可執行可企圖存取記憶體110及/或存取周邊裝置108的BM交易。參考圖3B,例如,虛擬機器#1可執行企圖存取互連112以存取記憶體110之位址範圍的CPU交易310A-310C。交易310A可包括虛擬機器#1的識別符(VMID1)及與該識別符(VMID1)關聯的記憶體位址範圍(MR1)。回應於接收交易310A的請求,互連中的記憶體防火牆124可將識別符(VMID1)及記憶體位址範圍(MR1)與記憶體防火牆124的規則進行比較,以決定交易310A是否可執行以存取記憶體110的位址範圍。若其能執行,記憶體防火牆124可容許交易310A存取記憶體位址範圍(MR1)。若其不能執行,防火牆124可拒絕交易310A對記憶體110的存取。相似地,交易310B-310C可分別以虛擬機器#2(VMID2)及記憶體位址範圍 (MR2、MR3)標記。相似地,回應於接收交易310B、310C的請求,互連中的記憶體防火牆124可將識別符(VMD2)及記憶體位址範圍(MR2、MR3)與防火牆124的規則進行比較,以決定交易310B、310C是否可執行以存取記憶體位址範圍(MR2、MR3)。
虛擬機器#1也可發佈包括識別符(VMID1)之交易312A的請求企圖存取周邊裝置#1及發佈包括識別符(VMID1)的交易312B企圖存取周邊裝置#2。周邊防火牆126可對虛擬機器#1的VMID及周邊防火牆126中用於周邊裝置#1的規則進行比較以決定虛擬機器#1是否可存取周邊裝置#1。若交易312A能存取,周邊防火牆126可容許交易312A存取周邊裝置#1。然而,若交易312A不能存取,周邊防火牆126可拒絕交易312A存取周邊裝置#1。相似地,周邊防火牆126可控制虛擬機器#1對周邊#1的存取。相似地,虛擬機器#2可發佈包括識別符(VMID2)的交易312C以企圖存取周邊裝置#2。周邊裝置#2的防火牆126可對識別符(VMID2)與防火牆126的規則進行比較,以決定交易312C是否具有存取周邊裝置#2的許可。若其能存取,可容許交易312C存取周邊裝置#2。然而,其不能存取,可拒絕交易312C的存取請求。
匯流排主控器106可發佈企圖存取記憶體110及/或周邊裝置108的交易。各匯流排主控器與一個虛擬機器關聯。例如,匯流排主控器#1可藉由VMM而已與虛擬機器 #1關聯(318),並包括已將虛擬機器#1的VMID(VMID1)儲存於其上的內部暫存器。匯流排主控器#1可發佈請求至互連112以執行包括識別符(VMID1)及與該識別符關聯之記憶體位址範圍(MR1)的交易314。回應於接收交易314的請求,記憶體防火牆124可將識別符及關聯記憶體位址範圍與記憶體防火牆124的規則進行比較,以決定交易314是否可執行以存取記憶體110。若其能執行,記憶體防火牆124可容許交易314存取記憶體位址範圍(MR1)。然而,若其不能存取,可拒絕藉由交易314存取記憶體110的請求。相似地,匯流排主控器106可發佈企圖存取周邊裝置#1之包括識別符(VMID1)的請求316。回應於接收交易316的請求,互連112中的周邊防火牆126可對識別符及防火牆126的規則進行比較,以決定交易316具有存取周邊裝置#1的許可。若其能存取,周邊防火牆126可容許交易316存取周邊裝置#1。然而,若其不能存取,周邊防火牆126可拒絕交易316存取周邊裝置#1。
圖4係根據本揭示發明的實施例運算處理系統之方法的流程圖。方法400可藉由處理邏輯實施,其可包括硬體(例如,電路、專屬邏輯、可程式化邏輯、微碼等)、軟體(諸如,在處理系統、通用電腦系統、或專屬機器上運行的指令)、韌體、或彼等的組合。在一實施例中,方法400可部分地藉由對照圖1描述之執行防火牆124、126的CPU 104及控制器120之任何一者的處理邏輯實施。
為了解釋的簡單化,將方法400描畫及描述為一系列動作。然而,根據此揭示發明的動作能以各種次序及/或同時地發生,並具有未於本文呈現及描述的其他動作。另外,可不實施所有的說明動作以實作根據本揭示主題內容的方法400。此外,熟悉本技術的人士將理解及瞭解方法400能替代地經由狀態圖或事係表示為一系列的相關狀態。
參考圖4,在402,供應包括硬體輔助虛擬機器指令之指令集的CPU可執行虛擬機器管理程式開始指令(諸如,VMXON)以開始虛擬機器管理程式。CPU可將硬體組件的根存取指定給虛擬機器管理程式以設定處理系統。處理系統可包括CPU、互連、記憶體、及周邊裝置,其中CPU、記憶體、及周邊裝置經由互連彼此通訊。
在404,CPU可執行VMM以為各虛擬機器指定一虛擬機器識別符(VMID)。VMID可在VMM建立時自動地產生。VMM可使用其根存取以設定互連中的防火牆的規則。例如,VMM可在規則中指定根據何等標記有指定VMID的交易可存取記憶體及/或周邊裝置。VMID可已儲存在CPU的內部暫存器中。
在406,CPU可執行另一硬體輔助虛擬機器指令(VM_ENTER)以啟動虛擬機器。虛擬機器可運行客體作業系統及應用程式,彼等可產生經由互連存取記憶體及/或周邊裝置的交易。
在408,回應於從虛擬機器接收到交易,CPU可用 VMID標記該交易,使得該交易與藉由該VMID識別的虛擬機器關聯。VMID可儲存在交易的可定址欄位中。在410,CPU可發送包括該VMID的交易至互連的防火牆。然後防火牆藉由比較與防火牆關聯的規則及VMID以決定該交易是否可存取記憶體及/或周邊裝置。
圖5A係描繪根據本揭示發明的一實施例之用於實作包括異質核心之處理裝置的處理器590之微架構的方塊圖。具體地說,處理器590描繪根據本揭示發明的至少一實施例包括在處理器中的有序架構核心及暫存器更名邏輯、無序發佈/執行邏輯。
處理器590包括耦接至執行引擎單元550的前端單元530,且二者均耦接至記憶體單元570。處理器590可包括精簡指令集計算(RISC)核心、複雜指令集計算(CISC)核心、極長指令(VLIW)核心、或混合或其他核心類型。作為另一選項,處理器590可包括專用核心,諸如,網路或通訊核心、壓縮引擎、或圖形核心等。在一實施例中,處理器590可係多核心處理器或可係多處理器系統的一部分。
前端單元530包括耦接至指令快取單元534的分支預測單元532,其耦接至指令轉換後備緩衝器(TLB)536,其耦接至指令提取單元538,其耦接至解碼單元540。解碼單元540(也稱為解碼器)可解碼指令,並將解碼自、或另外反映、或導自原始指令的一或多個微運算、微碼進入點、微指令、其他指令、或其他控制訊號產生為輸出。 解碼器540可使用各種不同機制實作。合適機制的範例包括,但未受限於,查找表、硬體實作、可程式化閘極陣列(PLA)、微碼唯讀記憶體(ROM)等。指令快取單元534更耦接至記憶體單元570。將解碼單元540耦接至執行引擎單元550中的更名/配置器單元552。
執行引擎單元550包括耦接至引退單元554及一組一或多個排程器單元(等)556的更名/配置器單元552。排程器單元(等)556代表任何數量的不同排程器,包括保留站(RS)、中央指令窗等。將排程器單元(等)556耦接至實體暫存器檔案(等)單元(等)558。實體暫存器檔案(等)單元558各者代表一或多個實體暫存器檔案,彼等的不同者儲存一或多個不同資料型別,諸如,純量整數、純量浮點、封裝整數、封裝浮點數、向量整數、向量浮點等、狀態(例如,係待執行的次一指令之位址的指令指標)等。實體暫存器檔案(等)單元(等)558為引退單元554覆蓋,以說明可實作暫存器更名及無序執行的各種方式(例如,使用重排序緩衝器(等)及引退暫存器檔案(等)、使用未來檔案(等)、歷史緩衝器(等)、及引退暫存器檔案(等);使用暫存器映射及暫存器池;等)。
通常,該等架構暫存器可從處理器的外側看見或從程式設師的觀點係可見的。該等暫存器並未受限於任何已知明確類型的電路。只要暫存器能儲存並提供如本文所描述的資料,各種不同類型之暫存器均係合適的。合適暫存器 的範例包括,但未受限於,專用實體暫存器、使用暫存器改名之動態配置實體暫存器、專用及動態配置實體暫存器的組合等。將引退單元554及實體暫存器檔案(等)單元(等)558耦接至執行叢集(等)560。執行叢集(等)560包括一組一或多個執行單元562及一組一或多個記憶體存取單元564。執行單元562可實施各種運算(例如,移位、加法、減法、乘法)並在各種資料型別(例如,純量浮點、封裝整數、封裝浮點、向量整數、向量浮點)上運算。
雖然部分實施例可能包括專用於特定函數或函數集的許多執行單元,其他實施例可能僅包括一執行單元或全部實施所有函數的多個執行單元。將排程器單元(等)556、實體暫存器檔案(等)單元(等)558、及執行叢集(等)560顯示為可能係複數個,因為特定實施例針對特定種類的資料/運算建立個別管線(例如,各者具有自有之排程器單元、實體暫存器檔案(等)單元、及/或執行叢集的純量整數管線、純量浮點/封裝整數/封裝浮點/向量整數/向量浮點管線、及/或記憶體存取管線-且在分離式記憶體存取管線的情形中,實作在其中僅有此管線的執行叢集具有記憶體存取單元(等)564的特定實施例)。也應理解當使用分離式管線時,此等管線的一或多者可能係無序發佈/執行的而其餘係有序的。
將該組記憶體存取單元564耦接至記憶體單元570,其可包括資料預提取器580、資料TLB單元572、資料快 取單元(DCU)574、及2級(L2)快取記憶體單元576,僅列出少數範例。在部分實施例中,DCU 574也稱為第一級資料快取記憶體(L1快取記憶體)。DCU 574可管理多個未處理快取未中並繼續服務輸入儲存及負載。其也支援維持快取一致性。資料TLB單元572係藉由映射虛擬及實體位址空間用於改善虛擬位址轉譯速度的快取記憶體。在一範例實施例中,記憶體存取單元564可包括載入單元、儲存位址單元、及儲存資料單元,彼等各者耦接至記憶體單元570中的資料TLB單元572。L2快取單元576可耦接至一或多個其他級快取記憶體並最終耦接至主記憶體。
在一實施例中,資料預提取器580藉由自動地預測程式即將耗用何資料而臆測地載入/預提取資料至DCU 574。預提取可指資料為處理器所實際需求之前,將儲存在記憶體階層(例如,低階快取記憶體或記憶體)之一記憶體位置中的資料轉移至更接近處理器(例如,產生較低存取延遲)的高階記憶體位置。更具體地說,預提取可指在處理器對正傳回的特定資料發佈需求之前,將資料從低階快取記憶體/記憶體的一者早期取得至資料快取記憶體及/或預提取緩衝器。
處理器590可支援一或多個指令集(例如,x86指令集(具有已加有較新版本的特定延伸);加州桑尼維爾的MIPS Technologies的MIPS指令集;加州桑尼維爾的ARM Holdings的ARM指令集(具有選擇性的額外延伸, 諸如NEON))。
應理解該核心可能支援多執行緒(執行二或多個平行運算或執行緒集),並可能以包括時間切片多執行緒、同步多執行緒(其中單一實體核心為實體核心同步多緒的每個執行緒提供邏輯核心)、或彼等之組合(例如,下文的時間切片提取及解碼及同步多執行緒,諸如,在Intel®超執行緒技術中)的各種方式實施。
雖然暫存器更名係在無序執行的上下文中描述,應理解暫存器更名可使用在有序架構中。雖然處理器的說明實施例也包括分離式指令及資料快取單元及分享L2快取單元,其他實施例可具有用於指令及資料二者的單一內部快取記憶體,諸如,1級(L1)內部快取記憶體、或多級內部快取記憶體。在部分實施例中,該系統可能包括內部快取記憶體及在核心及/或處理器外部之外部快取記憶體的組合。或者,所有快取記憶體可均在核心及/或處理器外部。
圖5B係描繪根據本揭示發明的部分實施例藉由圖5A之處理裝置590實作的有序管線及暫存器更名級、無序發佈/執行管線的方塊圖。圖5B中的實線方塊描繪有序管線,同時虛線方塊描繪暫存器更名、無序發佈/執行管線。在圖5B中,處理器管線500包括提取級502、長度解碼級504、解碼級506、配置級508、更名級510、排程(也稱為調度或發佈)級512、暫存器讀取/記憶體讀取級514、執行級516、寫回/記憶體寫入級518、異常管理級 522、及提交級524。在部分實施例中,級502-524的次序可與所描繪的不同且未受限於顯示於圖5B中的特定次序。
圖6描繪根據本揭示發明的一實施例用於處理器600之微架構的方塊圖。在部分實施例中,能實作根據一實施例的指令以運算具有位元組、字組、雙字組、四字組等的尺寸的資料元件,以及資料類別,諸如,單及倍精準整數及浮點資料類別。在一實施例中,有序前端601係提取待執行之指令並備妥彼等以待稍後在處理器管線中使用之處理器600的部分。
前端601可包括數個單元。在一實施例中,指令預提取器626從記憶體提取指令並將彼等饋送至依次解碼或解譯彼等的指令解碼器628。例如,在一實施例中,解碼器將經接收指令解碼為機器可執行之稱為「微指令」或「微運算」(也稱為微運算(micro op)或微運算(uop))的一或多個運算。在其他實施例中,根據一實施例,解碼器將指令剖析為由微架構使用以實施運算的運算碼及對應資料及控制欄位。在一實施例中,追蹤快取記憶體630取用經解碼微運算並將彼等組合為程式有序序列或在用於執行微運算佇列634中追蹤。當追蹤快取記憶體630遭遇複雜指令時,微碼ROM 632提供完成運算所需的微運算。
部分指令轉換為單一微運算,然而其他指令需要數個微運算以完成全部運算。在一實施例中,若需要多於四個微運算以完成指令,解碼器628存取微碼ROM 632以執 行該指令。針對一實施例,能針對在指令解碼器628的處理將指令解碼為小量的微運算。在另一實施例中,若萬一需要的許多微運算能在微碼ROM 632內將指令儲存以完成運算。根據一實施例,追蹤快取記憶體630係指進入點可程式化邏輯陣列(PLA)以決定用於從微碼ROM 632讀取微碼序列的正確微指令指標,以完成一或多個指令。在微碼ROM 632完成排序用於指令的微運算後,機器的前端601恢復從追蹤快取記憶體630提取微運算。
無序執行引擎603係指令準備執行之所在。無序執行引擎具有許多緩衝器以當指令通過管線並針對執行受排程時,使指令流平滑化並重排序以最佳化效能。配置器邏輯配置各微運算所需要的機器緩衝器及資源以執行。暫存器更名邏輯將邏輯暫存器更名為暫存器檔案中的項目。在指令排程器的前端,配置器也為一者用於記憶體運算及一者用於非記憶體運算的二個微運算佇列之一者中的各微運算配置項目:記憶體排程器、快速排程器602、慢速/通用浮點排程器604、及簡單浮點排程器606。微運算排程器602、604、606基於彼等的相關輸入暫存器運算元來源的就緒性及微運算完成彼等運算所需要的執行資源的可用性決定微運算何時準備執行。一實施例的快速排程器602能在每半個主時鐘週期上排程,同時其他排程器僅能每主處理器時鐘週期排程一次。排程器仲裁調度埠以排程用於執行的微運算。
暫存器檔案608、610位於排程器602、604、606及 執行區塊611中的執行單元612、614、616、618、620、622、624之間。有分別用於整數及浮點運算的分離暫存器檔案608、610。一實施例的各暫存器檔案608、610也包括能將尚未寫入暫存器檔案的完成結果僅旁路或前傳至新的相關微運算的旁路網路。整數暫存器檔案608及浮點暫存器檔案610也能彼此通訊資料。針對一實施例,將整數暫存器檔案608分割為二個分離暫存器檔案,一個暫存器檔案用於資料的低階32位元且第二暫存器檔案用於資料的高階32位元。一實施例的浮點暫存器檔案610具有128位元寬的項,因為浮點指令典型具有在寬度上從64至128位元的運算元。
執行區塊611包含指令實際上在該處執行的執行單元612、614、616、618、620、622、624。此節包括儲存微指令執行所需之整數及浮點資料運算元值的暫存器檔案608、610。一實施例的處理器600由許多執行單元組成:位址產生單元(AGU)612、AGU 614、快速ALU 616、快速ALU 618、慢速ALU 620、浮點ALU 622、浮點移動單元624。針對一實施例,浮點執行區塊622、624執行浮點、MMX、SIMD、及SSE,或其他運算。一實施例的浮點ALU 622包括64位元乘64位元的浮點除法器以執行除法、平方根、及餘數微運算。針對本揭示發明的實施例,包含浮點值的指令可使用浮點硬體管理。
在一實施例中,ALU運算係至高速ALU執行單元616、618。一實施例的快速ALU 616、618能以半個時鐘 週期的有效延遲執行快速運算。針對一實施例,當慢速ALU 620包括用於長延遲種類的運算的整數執行硬體時,諸如,乘法器、移位、旗標邏輯、及分支處理,多數複雜整數運算係至慢速ALU 620。記憶體載入/儲存運算係藉由AGU 612、614執行。針對一實施例,整數ALU 616、618、620係在64元件資料運算元上實施整數運算的背景中描述。在替代實施例中,能實作ALU 616、618、620以支援包括16、32、128、256等的各式各樣的資料位元。相似地,能實作浮點單元622、624以支援具有各種寬度之位元的一系列運算元。針對一實施例,浮點單元622、624可結合SIMD及多媒體指令在128位元寬的封裝資料運算元上運算。
在一實施例中,微運算排程器602、604、606在目前負載已完成執行之前仲裁相關運算。當微運算臆測地排程並在處理器600中執行時,處理器600也包括邏輯以管理記憶體未中。若資料負載在資料快取記憶體中未中,在已將具有暫時不正確資料之排程器丟棄的管線中能有飛行中的相關運算。重播機制追蹤並重執行使用不正確資料的指令。僅需重播相關運算並容許無關運算完成。也針對文字字串比較運算將處理器之一實施例的排程器及重播機制設計成快取指令序列。
根據本揭示發明的實施例,處理器600也包括邏輯以實作用於記憶體歧義消除的儲存位址預測。在一實施例中,處理器600的執行區塊611可包括用於實作用於記憶 體歧義消除之儲存位址預測的儲存位址預測器(未圖示)。
術語「暫存器」可指使用為指令的一部分以識別運算元之處理器內建儲存位置。換言之,暫存器可係可從處理器外側使用的暫存器(從程式設計師的觀點)。然而,實施例的暫存器不應在意義上限制在特定種類的電路。更確切地說,實施例的暫存器能儲存及提供資料,並實施本文描述的功能。本文描述的暫存器能藉由使用任何數量的不同技術之處理器內的電路實作,諸如,專屬實體暫存器、使用暫存器更名的動態配實體暫存器、專屬及動態配置實體暫存器的組合等。在一實施例中,整數暫存器儲存三十二位元整數資料。一實施例的暫存器檔案也包含用於封裝資料的八個多媒體SIMD暫存器。
針對以下討論,將暫存器理解為設計成保持封裝資料的資料暫存器,諸如,在使用來自加州聖克拉拉英特爾公司之MMX技術致能的微處理器中的64位元寬的MMXTM暫存器(在部分實例中也稱為「mm」暫存器)。能以整數及浮點形式二者使用的此等MMX暫存器能使用伴隨SIMD及SSE指令的封裝資料元件運算。相似地,相關於SSE2、SSE3、SSE4、或後續(通常稱為「SSEx」)技術之128位元寬的XMM暫存器也能用於保持此種封裝資料運算元。在一實施例中,在儲存封裝資料及整數資料時,暫存器不需要在該二種資料型別之間區分。在一實施例中,將整數及浮點或包含在相同暫存器檔案中或包含在不 同暫存器檔案中。此外,在一實施例中,浮點及整數資料可儲存在不同暫存器或相同暫存器中。
現在參考圖7,顯示描繪本揭示發明的實施例可使用於其中之系統700的方塊圖。如圖7所示,多處理器系統700係點-對-點互連系統,並包括經由點對點互連750耦接的第一處理器770及第二處理器780。雖然僅顯示二處理器770、780,待理解本揭示發明的實施例並未受如此限制。在其他實施例中,一或多個額外處理可存在於給定處理器中。
將處理器770及780顯示成分別包括積集記憶體控制器單元772及782。處理器770也包括作為其匯流排控制器單元的一部分的點對點(P-P)介面776及778;相似地,第二處理器780包括P-P介面786及788。處理器770、780可經由使用P-P介面電路778、788的點對點(P-P)介面750交換資訊。如圖7所示,IMC 772及782將處理器耦接至個別記憶體,亦即,記憶體732及734,彼等可能係本地附接至個別處理器之主記憶體的部分。
處理器770、780各者可經由使用點對點介面電路776、794、786、798的個別P-P介面752、754與晶片組790交換資訊。晶片組790也可經由高效能圖形介面739與高效能圖形電路738交換資訊。
可將分享快取記憶體(未圖示)包括在處理器中或二處理器外側,仍經由P-P互連與處理器連接,使得若處理器置於低電源模式中,可能將任一個或二個處理器的區域 快取資訊儲存在分享快取記憶體中。
可經由介面796將晶片組790耦接至第一匯流排716。在一實施例中,第一匯流排716可能係週邊組件互連(PCI)匯流排、或係諸如PCI快速匯流排或其他第三代I/O互連匯流排的匯流排,雖然本揭示發明的範圍並未受如此限制。
如圖7所示,可連同將第一匯流排716耦接至第二匯流排720的匯流排橋接器718將各種I/O裝置714耦接至第一匯流排716。在一實施例中,第二匯流排720可係低插腳數(LPC)匯流排。在一實施例中,可將各種裝置耦接至第二匯流排720,包括,例如,鍵盤及/或滑鼠722、通訊裝置727、以及儲存單元728,諸如,硬碟驅動器或可包括指令/碼及資料730的其他大量儲存裝置。另外,可能將音訊I/O 724耦接至第二匯流排720。須注意其他架構也係可能的。例如,取代圖7的點對點架構,系統可能實作多分支匯流排或其他此種架構。
現在參考至圖8,顯示本揭示發明的一實施例可在其中運算之系統800的方塊圖。系統800可包括一或多個處理器810、815,彼等耦接至圖形記憶體控制器集線器(GMCH)820。在圖8中以虛線標示額外處理器815的選擇性性質。
如上文所述,各處理器810、815可係該電路、積體電路、處理器、及/或矽積體電路的特定版本。然而,應注意積體圖形邏輯及積集記憶體控制器單元不太可能會存 在於處理器810、815中。圖8描繪可耦接至可係,例如,動態隨機存取記憶體(DRAM),之記憶體840的GMCH 820。至少針對一實施例,DRAM可與非揮發性快取記憶體關聯。
GMCH 820可係晶片組,或晶片組的一部分。GMCH 820可與處理器(等)810、815通訊,並控制處理器(等)810、815與記憶體840之間的互動。GMCH 820也可作為處理器(等)810、815及系統800的其他元件之間的加速匯流排介面使用。針對至少一實施例,GMCH 820經由多分支匯流排,諸如,前側匯流排(FSB)895,與處理器(等)810、815通訊。
此外,將GMCH 820耦接至顯示器845(諸如,平面或觸控顯示器)。GMCH 820可包括積集圖形加速器。將GMCH 820更耦接至輸入/輸出(I/O)控制器集線器(ICH)850,其可用於將各種周邊裝置耦接至系統800。例如,顯示於圖8之實施例中的係外部圖形裝置860,其可係連同其他周邊裝置870耦接至ICH 850的分離式圖形裝置。
或者,額外或不同的處理器也可存在於系統800中。例如,額外處理器(等)815可包括與處理器810相同的額外處理器(等)、與處理器810異質或非對稱的處理器(等)、加速器(諸如,圖形加速器或數位訊號處理器(DSP)單元)、場效可規劃閘極陣列、或任何其他處理器。依據包括架構、微架構、熱、及電力消耗特徵等之優 點的度量頻譜,在實體處理器(等)810、815之間可有多種不同。此等不同可有效地將自身表現為處理器810、815之間的非對稱性及異質性。針對至少一實施例,各種處理器810、815可能駐留在相同晶粒封裝中。
現在參考至圖9,顯示本揭示發明之實施例可在其中運算之系統900的方塊圖。圖9描繪處理器970、980。處理器970、980可分別包括積集記憶體及I/O控制邏輯(「CL」)972及982,並分別經由點對點(P-P)介面978及988之間的點對點互連950彼此內部通訊。如圖所示,各處理器970、980經由個別P-P介面976至994及986至998的點對點互連952及954與晶片組990通訊。針對至少一實施例,CL 972、982可包括積集記憶體控制器單元。此外,CL 972、982可包括I/O控制邏輯。如所描畫的,也將耦接至CL 972、982及I/O裝置914的記憶體932、934耦接至控制邏輯972、982。經由介面996將傳統I/O裝置915耦接至晶片組990。
可將實施例實作在許多不同的系統類型中。圖10係根據本揭示發明的實施例之SoC 1000的方塊圖。虛線方塊係在更先進SoC上的選擇性特性。在圖10中,將互連單元(等)1012耦接至:包括一組一或多個核心1002A-N及分享快取記憶體單元(等)1006的應用處理器1020;系統助理單元1010;匯流排控制器單元(等)1016;積集記憶體控制器單元(等)1014;可包括積集圖形邏輯1008、用於提供靜態及/或視訊照相機功能的影像 處理器1024、用於提供硬體音訊加速的音訊處理器1026、及用於提供視訊編碼/解碼加速之視訊處理器1028的一組或一或多個媒體處理器1018;靜態隨機存取記憶體(SRAM)單元1030;直接記憶體存取(DMA)單元1032;及用於耦接至一或多個外部顯示器的顯示單元1040。在一實施例中,記憶體模組可包括在積集記憶體控制器單元(等)1014中。在另一實施例中,記憶體模組可包括在可用於存取及/或控制記憶體之SoC 1000的一或多個組件中。
記憶體階層包括在核心內的一或多級快取記憶體、一組或一或多個分享快取記憶體單元1006、及耦接至該組積集記憶體控制器單元1014的外部記憶體(未圖示)。該組分享快取記憶體單元1006可包括一或多個中級快取記憶體,諸如,2級(L2)、3級(L3)、4級(L4)、或其他級快取記憶體、末級快取記憶體(LLC)、及/或彼等的組合。
在部分實施例中,一或多個核心1002A-N有多執行緒的能力。系統助理1010包括協調及運算核心1002A-N的此等組件。系統助理單元1010可包括,例如,電源控制單元(PCU)及顯示單元。PCU可係或包括調節核心1002A-N及積集圖型邏輯1008之電源狀態所需要的邏輯及組件。顯示單元用於驅動一或多個外部連接的顯示器。
依據架構及/或指令集,核心1002A-N可能係同質或異質的。例如,部分核心1002A-N可能係有序的,而其 他係無序的。作為另一範例,二或多個核心1002A-N可有執行相同指令集的能力,而其他可有僅執行該指令集的子集或不同指令集的能力。
例如,應用處理器1020可係通用處理器,諸如,CoreTM i3、i5、i7、2 Duo及Quad、XeonTM、ItaniumTM、AtomTM、或QuarkTM處理器,彼等由加州聖克拉拉的IntelTM公司銷售。或者,應用處理器1020可來自其他公司,諸如,ARM HoldingsTM,Ltd、MIPSTM等。應用處理器1020可係專用處理器,例如,網路或通訊處理器、壓縮引擎、圖形處理器、共處理器、或嵌入式處理器等。應用處理器1020可實作在一或多個晶片上。應用處理器1020可能係使用任何數量的處理技術,例如,BiCMOS、CMOS、或NMOS,之一或多個基材的一部分及/或實作在該一或多個基材上。
圖11係根據本揭示發明的系統單晶片(SoC)設計之實施例的方塊圖。作為具體說明範例,將SoC 1100包括在使用者設備(UE)中。在一實施例中,UE係指待由終端使用者用於通訊的任何裝置,諸如,手持電話、智慧型手機、平板電腦、超薄筆記型電腦、具有寬頻配接器的筆記型電腦、或任何其他相似通訊裝置。UE經常連接至基地台或節點,其在本質上潛在地對應於GSM網路中的行動站台(MS)。
此處,SOC 1100包括2個核心-1106及1107。核心1106及1107可遵守指令集架構,諸如,Intel®架構 CoreTM-為基的處理器,及Advanced Micro Devices,Inc.(AMD)處理器、MIPS-為基的處理器、ARM-為基的處理器設計、或其客製化、以及彼等授權方或採納方。將核心1106及1107耦接至與匯流排介面單元1109關聯的快取記憶體控制1108及L2快取記憶體1110以與系統1100的其他部分通訊。互連1111包括晶片上互連,諸如,IOSF、AMBA、或上文討論的其他互連,其潛在地實作本揭示發明的一或多個樣態。
互連1111提供通訊頻道給其他組件,諸如,用戶識別模組(SIM)1130以與SIM卡介接、開機ROM 1135以保持藉由核心1106及1107執行的開機碼以啟始及開機SoC 1100、SDRAM控制器1140以與外部記憶體(例如,DRAM 1160)介接、快閃記憶體控制器1145以與非揮發性記憶體(例如,快閃記憶體1165)介接、周邊控制1150(例如,串聯周邊介面)以與周邊介接、視訊編碼解碼器1120及視訊介面1125以顯示及接收輸入(諸如,觸控致能輸入)、GPU 1115以實施圖形相關計算等。任何此等介面可合併本文描述之本揭示發明的樣態。此外,系統1100描繪用於通訊的周邊,諸如,藍牙模組1170、3G數據機1175、GPS 1180、及Wi-Fi 1185。
圖12以電腦系統1200的範例形式描繪機器的圖形表示,在該系統內,可執行用於導致該機器實施本文討論的方法之任何一或多者的一組指令。在替代實施例中,機器可連接(例如,網路連接)至在LAN、內部網路、外部網 路、或網際網路中的其他機器。該機器可在主從網路環境中以伺服器或客戶端機器的能力運算,或作為點對點(或分散式)網路環境中的個別機器。該機器可係個人電腦(PC)、平板PC、機上盒(STB)、個人數位助理(PDA)、行動電話、網路器具、伺服器、網路路由器、交換器或橋接器、或能執行指定待由該機器採取之行動的一組指令(循序或以其他方法)的任何機器。另外,當僅說明單一機器時,也應將術語「機器」用於包括獨立地或聯合地執行一組(或多組)指令,以執行本文討論之任何一或多個方法的任何機器集合。
電腦系統1200包括處理裝置1202、主記憶體1204(例如,唯讀記憶體(ROM)、快閃記憶體、動態隨機存取記憶體(DRAM),諸如,同步DRAM(SDRAM)、或Rambus DRAM(RDRAM)等)、靜態記憶體1206(例如,快閃記憶體、靜態隨機存取記憶體(SRAM)等)、及資料儲存裝置1218,彼等經由匯流排1230彼此通訊。
處理裝置1202代表一或多個通用處理裝置,諸如,微處理器、或中央處理單元等。更明確地說、處理裝置可係複雜指令集計算(CISC)微處理器、精簡指令集計算(RISC)微處理器、極長指令(VLIW)微處理器、實作其他指令集的處理器、或實作指令集之組合的處理器。處理裝置1202也可係一或多個專用處理裝置,諸如,特定應用積體電路(ASIC)、場效可規劃閘極陣列(FPGA)、數位訊號處理器(DSP)、或網路處理器等。 在一實施例中,處理裝置1202可包括一或多個處理核心。將處理裝置1202組態成執行用於實施本文討論的運算及步驟的處理邏輯1226。
電腦系統1200可更包括通訊地耦接至網路1220的網路介面裝置1208。電腦系統1200也可包括視訊顯示單元1210(例如,液晶顯示器(LCD)或陰極射線管(CRT))、文數字輸入裝置1212(例如,鍵盤)、游標控制裝置1214(例如,滑鼠)、及訊號產生裝置1216(例如,揚聲器)。此外,電腦系統1200可包括圖形處理單元1222、視訊處理單元1228、及音訊處理單元1232。
資料儲存裝置1218可包括機器可存取儲存媒體1224,在其上儲存實作本文描述之功能的方法之任何一或多者的軟體1246,諸如,如上文描述之實作用於記憶體歧義消除的儲存位址預測。軟體1246在其藉由電腦系統1200的執行期間也可作為指令1236完全或至少部分地駐留在主記憶體1204內及/或作為處理邏輯1226完全或至少部分地駐留在處理裝置1202內;主記憶體1204及處理裝置1202也構成機器可存取儲存媒體。
機器可讀儲存媒體1224也可用於儲存實作儲存位址預測的指令1236及/或包含呼叫上述應用程式之方法的軟體程式庫。當在範例實施例中將機器可存取儲存媒體1128顯示為單一媒體時,應將術語「機器可存取儲存媒體」採用為包括儲存一或多組指令的單一媒體或多個媒體 (例如,集中式或分散式資料庫,及/或關聯快取及伺服器)。也應將術語「機器可存取儲存媒體」採用為包括能儲存、編碼、或運載用於由機器執行的指令組並導致該機器實施本揭示發明之任何一或多個方法的任何媒體。術語「機器可存取儲存媒體」因此可用於包括,但未受限於,固態記憶體、及光學及磁性媒體。
以下範例關於其他實施例。範例1係一種處理系統,其可包括互連及耦接至該互連的處理核心,以執行各者由分別識別符識別的複數個虛擬機器,並藉由第一虛擬機器的識別符標記由該第一虛擬機器啟始以存取該互連的第一交易。
在範例2中,申請專利範圍第1項的主題內容能選擇性地提供該互連包含記憶體防火牆,以回應於接收該第一交易,使用該第一虛擬機器的該識別符驗證該第一交易。
在範例3中,範例1及2之任一者的主題內容能選擇性地更包括匯流排主控器,耦接至該互連,其中該處理器核心將該匯流排主控器為其執行第二交易以存取該互連之該第二虛擬機器的識別符指定給該匯流排主控器,且其中該匯流排主控器使用該第二識別符標記該第二交易。
在範例4中,範例3的主題內容能選擇性地提供該互連耦接至記憶體,且其中該記憶體防火牆更實施以下至少一者:回應於從該處理核心接收該第一交易,對照該記憶體的第一位址範圍及該第一虛擬機器的該識別符驗證該第一交易,或回應於從該匯流排主控器接收該第二交易,對 照該記憶體的第二位址範圍及該第二虛擬機器的該識別符驗證該第二交易。
在範例5中,範例4的主題內容能選擇性地提供該互連耦接至周邊裝置,且其中該互連包含周邊防火牆以實施至少下列一者:回應於從該處理核心接收該第一交易,使用該第一虛擬機器的該識別符驗證該第一交易,或回應於從該匯流排主控器接收該第二交易,使用該第二虛擬機器的該識別符驗證該第二交易。
在範例6中,範例5的主題內容能選擇性地提供該處理核心更執行管理該複數個虛擬機器的虛擬機器管理程式,且其中該虛擬機器管理程式與允許存取該互連及該匯流排主控器的存取權限關聯。
在範例7中,範例6的主題內容能選擇性地提供該處理核心執行該虛擬機器管理程式以設定該記憶體防火牆的規則表或該周邊防火牆之規則表的至少一者。
在範例8中,範例6的主題內容能選擇性地提供該處理核心執行該虛擬機器管理程式以建立該第一虛擬機器,並提供用於後續交易的虛擬機器背景直到該第一虛擬機器的退出。
在範例9中,範例1的主題內容能選擇性地提供該第一虛擬機器的該識別符儲存在該處理核心的內部暫存器中。
範例10係一種系統單晶片(SoC),其能包括處理核心,以執行複數個虛擬機器,及互連,耦接至該處理核 心,該互連包括防火牆以:從該處理核心接收第一交易,該第一交易與該第一虛擬機器的識別符關聯,及使用該第一虛擬機器的該識別符決定是否允許該第一交易存取耦接至該互連的記憶體或耦接至該互連之周邊裝置的一者。
在範例11中,範例10的主題內容能選擇性地提供該處理核心更以該第一虛擬機器的該識別符標記該第一交易。
在範例12中,範例10的主題內容能選擇性地提供決定更包括鑑於該防火牆的一或多個規則使用該第一虛擬機器的該識別符驗證該第一交易。
在範例13中,範例10的主題內容能更包括匯流排主控器,耦接至該互連,其中該匯流排主控器指定有該匯流排主控器為其執行第二交易以存取該互連之第二虛擬機器的識別符,且其中該匯流排主控器以該第二虛擬機器的該識別符標記該第二交易。
在範例14中,範例10至13之任一者的主題內容能選擇性地提供該防火牆更執行下列一者:回應於接收該第一交易,對照該記憶體的第一位址範圍及該第一虛擬機器的該識別符驗證該第一交易,或回應於從該匯流排主控器接收該第二交易,對照該記憶體的第二位址範圍及該第二虛擬機器的該識別符驗證該第二交易。
在範例15中,範例10的主題內容能選擇性地提供該處理核心更執行管理該複數個虛擬機器的虛擬機器管理程式,且其中該虛擬機器管理程式與允許存取該互連及該匯 流排主控器的存取權限關聯。
在範例16中,範例10及15的主題內容能選擇性地提供該處理核心執行該虛擬機器管理程式以設定該防火牆。
在範例17中,範例16的主題內容能選擇性地提供該第一虛擬機器的建立提供用於後續交易的虛擬機器背景,直到該第一虛擬機器的退出。
在範例18中,範例10及15之任一者的主題內容能選擇性地提供該第一虛擬機器的該識別符儲存在該處理核心的內部暫存器中。
範例19係一種方法,其包括開始虛擬機器管理程式、啟動虛擬機器、藉由該虛擬機器管理程式指定識別符給該虛擬機器、及藉由該識別符標記該虛擬機器的第一交易。
在範例20中,範例19的主題內容能更包括發送包括該識別符的該交易至互連。
在範例21中,範例19及20之任一者的主題內容能更包括指定該識別符給匯流排主控器,其中該匯流排主控器代表該虛擬機器發送第二交易至該互連。
在範例22中,範例第10至20項之任一者的主題內容能選擇性地提供該互連包含記憶體防火牆,以回應於接收該第一交易,使用該識別符驗證該第一交易。
範例23係一種具有程式碼儲存於其上的機器可讀非暫時儲存媒體,當執行程式碼時,實施運算,該等運算包 括開始虛擬機器管理程式、啟動虛擬機器、藉由該虛擬機器管理程式指定識別符給該虛擬機器、及藉由該識別符標記該虛擬機器的第一交易。
在範例24中,範例23的主題內容能選擇性地提供該等運算更包括發送包括該識別符的該交易至互連。
範例25係一種處理系統,包括互連及耦接至該互連用於執行複數個虛擬機器的機構,各虛擬機器係由分別識別符識別,並藉由該第一虛擬機器的識別符標記由該第一虛擬機器啟始以存取該互連的第一交易。
在範例26中,範例25項的主題內容能選擇性地提供該互連包括記憶體防火牆,以回應於接收該第一交易,使用該第一虛擬機器的該識別符驗證該第一交易。
當本揭示發明已對照有限數量的實施例描述時,熟悉本發明之人士將理解來自其的許多修改及變化。其目的係隨附的申請專利範圍涵蓋落在此揭示發明之真正精神及範圍內的所有此種修改及變化。
設計可通過從建立至模擬至製造的各種階段。表示設計的資料可用許多方式表示設計。首先,如在模擬中有用的,硬體可使用硬體描述語言或其他功能描述語言表示。此外,具有邏輯及/或電晶體閘的電路級模型可在設計處理的部分階段製造。此外,多數設計在特定階段到達表示硬體模型中之各種裝置的實體配置的資料層級。在使用習知半導體製造技術的情形中,針對用於製造積體電路的遮罩,表示硬體模型的資料可係指定各種特徵存在或不存在 於不同遮罩層上的資料。在設計的任何表示中,資料可用任何形式的機器可讀媒體儲存。記憶體或磁性或光學儲存器,諸如,光碟,可係該機器可讀媒體,以儲存經由經調變或另外產生的光或電波發送的資訊以發送此種資訊。當將指示或運載碼或設計的電載波發送至實施該電訊號的複製、緩衝、或重發送的程度時,產生新複本。因此,通訊供應商或網路供應商可將物品,至少暫時,儲存在實體機器可讀媒體上,諸如,編碼為載波之具現本揭示發明的實施例之技術的資訊。
如本文所使用的,模組係指硬體、軟體、及/或韌體的任何組合。例如,模組包括硬體,諸如,微控制器,其與儲存適於由微控制器執行之碼的非暫時媒體關聯。因此,在一實施例中,對模組的參考係指該硬體,其受特別組態以辨視及/或執行保持在非暫時媒體上的碼。此外,在另一實施例中,模組的使用係指包括該碼的非暫時媒體,其特別適於由該微控制器執行以實施預定運算。在另一實施例中,如所能推斷的,術語模組(在此範例中)可指微控制器及非暫時媒體的組合。描繪成分離的模組邊界經常共同地改變及潛在地重疊。例如,第一及第二模組可分享硬體、軟體、韌體、或其組合,同時潛在地保持部分無關的硬體、軟體、或韌體。在一實施例中,術語邏輯的使用包括硬體,諸如,電晶體、暫存器、或其他硬體,諸如,可程式化邏輯裝置。
在一實施例中,片語「組態以」的使用係指配置、放 置在一起、製造、提供銷售、導入、及/或設計設備、硬體、邏輯、或元件以實施指定或決定工作。在此範例中,若將設備或其元件設計、耦接、及/或互連以實施指定工作,仍將未運算設備或其元件「組態成」實施指定工作。作為純粹說明範例,邏輯閘可在運算期間提供0或1。但「組態成」提供致能訊號至時鐘的邏輯閘不包括可提供1或0的每個潛在邏輯閘。取而代之的,該邏輯閘係以在運算期間該1或0輸出致能時鐘的特定方式耦接的邏輯閘。再度注意到術語「組態以」的使用不需要運算,但取而代之地聚焦在設備、硬體、及/或元件的潛態,其中在該潛態中,當設備、硬體、及/或元件在運算時,將該設備、硬體、及/或元件設計成實施特定工作。
另外,片語「以」、「能」、及/或「可運算以」在一實施例中的使用係指以特定方式致能設備、邏輯、硬體、及/或元件之使用的此種方式設計的部分設備、邏輯、硬體、及/或元件。如上文提及的,以、能、或可運算以在一實施例中的使用係指設備、邏輯、硬體、及/或元件的潛態,其中該設備、邏輯、硬體、及/或元件不在運算中,但以特定方式致能設備之使用的此種方式設計。
如本文所使用的,值包括數字、狀態、邏輯狀態、或二進位邏輯狀態的任何已知表示。通常,也將邏輯位準邏輯值或邏輯的值的使用稱為1及0,其簡單地表示二進位邏輯狀態。例如,1係指高邏輯位準及0係指低邏輯位準。在一實施例中,儲存胞元,諸如,電晶體或快取記憶 體胞元,可有保持單一邏輯值或多個邏輯值的能力。然而,值的其他表示方式已使用在電腦系統中。例如,十進位數十也可表示為1010的二進位值及十六進位字元A。因此,值包括能保持在電腦系統中之資訊的任何表示方式。
再者,狀態可藉由值或值的部分表示。作為範例,第一值,諸如,邏輯一,可表示預設或最初狀態,同時第二值,諸如,邏輯零,可表示非預設狀態。此外,術語重設及設定在一實施例中分別指預設及更新值或狀態。例如,預設值潛在地包括高邏輯值,亦即,重設,同時更新值潛在地包括低邏輯值,亦即,設定。須注意值的任何組合可用於表示任何數量的狀態。
上文陳述之方法、硬體、軟體、韌體、或碼的實施例可經由儲存在可由處理元件執行之機器可存取、機器可讀、電腦可存取、或電腦可讀媒體中的指令或碼實作。非暫時機器可存取/可讀媒體包括以可由機器,諸如,電腦或電子系統,讀取之形式提供(亦即,儲存及/或發送)資訊的任何機制。例如,非暫時機器可存取媒體包括隨機存取記憶體(RAM),諸如,靜態RAM(SRAM)或動態RAM(DRAM);ROM;磁或光儲存媒體;快閃記憶體裝置;電儲存裝置、光儲存裝置、聲響儲存裝置;用於保持從暫時(傳播)訊號(例如,載波、紅外線訊號、數位訊號)接收的資訊之其他形式的儲存裝置;等,暫時訊號可與可自其接收資訊的非暫時媒體區分。
用於編程邏輯以實施本揭示發明之實施例的指令可儲存在系統的記憶體內,諸如,DRAM、快取記憶體、快閃記憶體、或其他儲存器。另外,指令能藉由網路或藉由其他電腦可讀媒體散佈。因此機器可讀媒體可包括用於以可由機器(例如,電腦)讀取的形式儲存或發送資訊的任何機制,但未受限於,軟碟、光碟、光碟唯讀記憶體(CD-ROM)、及磁光碟、唯讀記憶體(ROM)、隨機存取記憶體(RAM)、可抹除可程式化唯讀記憶體(EPROM)、電可抹除可程式化唯讀記憶體(EEPROM)、磁或光卡、快閃記憶體、或使用在經由電、光、聲響、或其他形式(例如,載波、紅外線訊號、數位訊號等)的傳播訊號透過網際網路的資訊之發送中的實體機器可讀儲存器。因此,電腦可讀媒體包括適於以可由機器(例如,電腦)讀取的形式儲存或發送電子指令或資訊之任何種類的實體機器可讀媒體。
於此說明書各處提及之「一實施例」或「實施例」意指相關於該實施例描述的特定特性、結構、或特徵係包括在本揭示發明之至少一實施例中。因此,出現在此說明書通篇之各位置的片語「在一實施例中」或「在實施例中」並不必然全部指稱相同實施例。此外,特定特性、結構、或特徵可在一或多個實施例中以任何適當方式組合。
在上述說明書中,實施方式已參考具體範例實施例而提供。然而,明顯地可產生其之各種修改及改變而不脫離在隨附之申請專利範圍中陳述的本揭示發明之更廣泛的精 神及範圍。因此,本說明書及該等圖式應以說明而非限制的方式看待。此外,實施例及其他範例語言的在上文的使用不必然指相同實施例或相同範例,而可指不同且獨立的實施例,也潛在地指相同實施例。
100‧‧‧處理系統
102‧‧‧中央處理單元(CPU)模組
104‧‧‧中央處理單元(CPU)
106‧‧‧匯流排主控器
108‧‧‧匯流排受控器
110‧‧‧記憶體裝置
112‧‧‧互連
114‧‧‧虛擬化系統
116‧‧‧虛擬機器
118‧‧‧虛擬機器管理程式
120‧‧‧控制器
122‧‧‧處理邏輯
124‧‧‧記憶體防火牆
126‧‧‧周邊防火牆
128‧‧‧記憶體控制器

Claims (20)

  1. 一種處理系統,包含:互連,包含與記憶體或周邊裝置之一者關聯的防火牆;及處理核心,耦接至該互連,以執行複數個虛擬機器,該複數個虛擬機器之各者係由分別的識別符識別,其中該複數個虛擬機器包括第一虛擬機器;識別由該第一虛擬機器執行的第一交易,用以經由該互連存取該記憶體或該周邊裝置之一者;將該第一交易與該第一虛擬機器的識別符關聯;及傳送該第一交易和該第一虛擬機器的該識別符到該互連,其中該防火牆係用以基於與該第一虛擬機器的該識別符關聯的規則來決定對該記憶體或該周邊裝置之一者的存取權。
  2. 如申請專利範圍第1項的處理系統,其中該防火牆係記憶體防火牆,以回應於接收該第一交易,使用該第一虛擬機器的該識別符驗證該第一交易。
  3. 如申請專利範圍第2項的處理系統,更包含:匯流排主控器,耦接至該互連,其中該處理器核心將該匯流排主控器為其執行第二交易以存取該互連之該第二虛擬機器的識別符指定給該匯流排主控器,且其中該匯流排主控器係用以將該第二交易與 該第二識別符關聯。
  4. 如申請專利範圍第3項的處理系統,其中該互連耦接至該記憶體,且其中該記憶體防火牆更實施以下至少一者:回應於從該處理核心接收該第一交易,對照該記憶體的第一位址範圍及該第一虛擬機器的該識別符驗證該第一交易;或回應於從該匯流排主控器接收該第二交易,對照該記憶體的第二位址範圍及該第二虛擬機器的該識別符驗證該第二交易。
  5. 如申請專利範圍第4項的處理系統,其中該互連耦接至該周邊裝置,且其中該防火牆係周邊防火牆以實施至少下列一者:回應於從該處理核心接收該第一交易,使用該第一虛擬機器的該識別符驗證該第一交易;或回應於從該匯流排主控器接收該第二交易,使用該第二虛擬機器的該識別符驗證該第二交易。
  6. 如申請專利範圍第5項的處理系統,其中該處理核心更執行管理該複數個虛擬機器的虛擬機器管理程式,且其中該虛擬機器管理程式與允許存取該互連及該匯流排主控器的存取權限關聯。
  7. 如申請專利範圍第6項的處理系統,其中該處理核心執行該虛擬機器管理程式以設定該記憶體防火牆的規則表或該周邊防火牆之規則表的至少一者。
  8. 如申請專利範圍第6項的處理系統,其中該處理核心執行該虛擬機器管理程式以建立該第一虛擬機器,並提供用於後續交易的虛擬機器背景直到該第一虛擬機器的退出。
  9. 如申請專利範圍第1項的處理系統,其中該第一虛擬機器的該識別符儲存在該處理核心的內部暫存器中。
  10. 一種系統單晶片(SoC),包含:處理核心,以執行複數個虛擬機器;及互連,耦接至該處理核心,包含防火牆,該防火牆包含與記憶體或周邊裝置之一者關聯的防火牆,其中該防火牆係用以:從該處理核心接收第一交易,該第一交易與第一虛擬機器的識別符關聯;及基於與該第一虛擬機器的該識別符關聯的規則使用該第一虛擬機器的該識別符決定是否允許該第一交易存取耦接至該互連的記憶體或耦接至該互連之周邊裝置的一者。
  11. 如申請專利範圍第10項的SoC,其中該處理核心更:將該第一交易與該第一虛擬機器的該識別符關聯。
  12. 如申請專利範圍第10項的SoC,其中決定更包含:鑑於與該防火牆關聯的一或多個規則驗證該第一交易,該一或多個規則包含使用該第一虛擬機器的該識別 符。
  13. 如申請專利範圍第10項的SoC,更包含:匯流排主控器,耦接至該互連,其中該匯流排主控器指定有該匯流排主控器為其執行第二交易以存取該互連之第二虛擬機器的識別符,且其中該匯流排主控器將該第二交易與該第二虛擬機器的該識別符關聯。
  14. 如申請專利範圍第13項的SoC,其中該防火牆更執行下列至少一者:回應於接收該第一交易,對照該記憶體的第一位址範圍及該第一虛擬機器的該識別符驗證該第一交易;或回應於從該匯流排主控器接收該第二交易,對照該記憶體的第二位址範圍及該第二虛擬機器的該識別符驗證該第二交易。
  15. 如申請專利範圍第10項的SoC,其中該處理核心更執行管理該複數個虛擬機器的虛擬機器管理程式,且其中該虛擬機器管理程式與允許存取該互連及該匯流排主控器的存取權限關聯。
  16. 如申請專利範圍第15項的SoC,其中該處理核心執行該虛擬機器管理程式以設定該防火牆。
  17. 如申請專利範圍第16項的SoC,其中該第一虛擬機器的建立提供用於後續交易的虛擬機器背景,直到該第一虛擬機器的退出。
  18. 如申請專利範圍第15項的SoC,其中該第一虛 擬機器的該識別符儲存在該處理核心的內部暫存器中。
  19. 一種方法,包含:開始虛擬機器管理程式;啟動虛擬機器;藉由該虛擬機器管理程式指定識別符給該虛擬機器;藉由該虛擬機器的該識別符關聯該虛擬機器的第一交易;及傳送該第一交易和該虛擬機器的該識別符到防火牆,其中該防火牆係用以基於與該第一虛擬機器的該識別符關聯的規則來決定對該記憶體或該周邊裝置之一者的存取權。
  20. 如申請專利範圍第19項之方法,更包含:指定該虛擬機器的該識別符給匯流排主控器,其中該匯流排主控器係用以使用指定給該匯流排主控器的該識別符來標記第二交易且其中該匯流排主控器代表該虛擬機器發送第二交易至該互連。
TW104104392A 2014-03-27 2015-02-10 用於虛擬機器的安全分享互連的處理系統、晶片上系統及方法 TWI567558B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US14/227,166 US20150277949A1 (en) 2014-03-27 2014-03-27 Securing shared interconnect for virtual machine

Publications (2)

Publication Number Publication Date
TW201602785A TW201602785A (zh) 2016-01-16
TWI567558B true TWI567558B (zh) 2017-01-21

Family

ID=54168713

Family Applications (1)

Application Number Title Priority Date Filing Date
TW104104392A TWI567558B (zh) 2014-03-27 2015-02-10 用於虛擬機器的安全分享互連的處理系統、晶片上系統及方法

Country Status (3)

Country Link
US (1) US20150277949A1 (zh)
CN (1) CN104954356B (zh)
TW (1) TWI567558B (zh)

Families Citing this family (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102013203365A1 (de) * 2013-02-28 2014-08-28 Siemens Aktiengesellschaft Verfahren und Schaltungsanordnung für kontrollierte Zugriffe auf Slave-Einheiten in einem Ein-Chip-System
US9215213B2 (en) 2014-02-20 2015-12-15 Nicira, Inc. Method and apparatus for distributing firewall rules
US10275258B2 (en) * 2014-06-30 2019-04-30 Vmware, Inc. Systems and methods for enhancing the availability of multi-tier applications on cloud computing platforms
US9703951B2 (en) * 2014-09-30 2017-07-11 Amazon Technologies, Inc. Allocation of shared system resources
US9378363B1 (en) 2014-10-08 2016-06-28 Amazon Technologies, Inc. Noise injected virtual timer
US9754103B1 (en) 2014-10-08 2017-09-05 Amazon Technologies, Inc. Micro-architecturally delayed timer
US9491112B1 (en) 2014-12-10 2016-11-08 Amazon Technologies, Inc. Allocating processor resources based on a task identifier
US9864636B1 (en) 2014-12-10 2018-01-09 Amazon Technologies, Inc. Allocating processor resources based on a service-level agreement
US9806948B2 (en) * 2015-06-30 2017-10-31 Nicira, Inc. Providing firewall rules for workload spread across multiple data centers
CN105376226B (zh) * 2015-11-04 2020-04-10 浙江宇视科技有限公司 一种流媒体服务器的转发方法及系统
GB2545170B (en) * 2015-12-02 2020-01-08 Imagination Tech Ltd GPU virtualisation
US20170060736A1 (en) * 2015-12-09 2017-03-02 Mediatek Inc. Dynamic Memory Sharing
US10135727B2 (en) 2016-04-29 2018-11-20 Nicira, Inc. Address grouping for distributed service rules
US10348685B2 (en) 2016-04-29 2019-07-09 Nicira, Inc. Priority allocation for distributed service rules
US11425095B2 (en) 2016-05-01 2022-08-23 Nicira, Inc. Fast ordering of firewall sections and rules
US11171920B2 (en) 2016-05-01 2021-11-09 Nicira, Inc. Publication of firewall configuration
US11258761B2 (en) 2016-06-29 2022-02-22 Nicira, Inc. Self-service firewall configuration
US11082400B2 (en) 2016-06-29 2021-08-03 Nicira, Inc. Firewall configuration versioning
US20180024944A1 (en) * 2016-07-22 2018-01-25 Qualcomm Incorporated Methods and apparatus for access control in shared virtual memory configurations
CN107783913B (zh) * 2016-08-31 2021-12-03 华为技术有限公司 一种应用于计算机的资源访问方法和计算机
KR102511451B1 (ko) * 2016-11-09 2023-03-17 삼성전자주식회사 리치 실행 환경에서 보안 어플리케이션을 안전하게 실행하는 컴퓨팅 시스템
US10699003B2 (en) * 2017-01-23 2020-06-30 Hysolate Ltd. Virtual air-gapped endpoint, and methods thereof
US10387686B2 (en) 2017-07-27 2019-08-20 International Business Machines Corporation Hardware based isolation for secure execution of virtual machines
US10296741B2 (en) 2017-07-27 2019-05-21 International Business Machines Corporation Secure memory implementation for secure execution of virtual machines
US11249779B2 (en) * 2017-09-01 2022-02-15 Intel Corporation Accelerator interconnect assignments for virtual environments
US11115383B2 (en) * 2018-05-24 2021-09-07 Texas Instruments Incorporated System on chip firewall memory architecture
JP6963534B2 (ja) 2018-05-25 2021-11-10 ルネサスエレクトロニクス株式会社 メモリ保護回路及びメモリ保護方法
US11310202B2 (en) 2019-03-13 2022-04-19 Vmware, Inc. Sharing of firewall rules among multiple workloads in a hypervisor
CN110086661B (zh) * 2019-04-18 2022-02-25 绿盟科技集团股份有限公司 一种识别虚拟终端的方法及装置
US10938904B2 (en) * 2019-04-26 2021-03-02 Dell Products L.P. Multi-processor/endpoint data splitting system
US11119739B1 (en) * 2019-06-21 2021-09-14 Amazon Technologies, Inc. Executable programs representing firewall rules for evaluating data packets
US11916880B1 (en) 2019-06-21 2024-02-27 Amazon Technologies, Inc. Compiling firewall rules into executable programs
CN110532062B (zh) * 2019-08-13 2022-05-20 南京芯驰半导体科技有限公司 一种虚拟化SoC总线系统及配置方法
US11281607B2 (en) * 2020-01-30 2022-03-22 Red Hat, Inc. Paravirtualized cluster mode for legacy APICs
US11595192B2 (en) * 2020-04-24 2023-02-28 Dell Products L.P. System and method of migrating one or more storage class memories from a first information handling system to a second information handling system
CN115312110A (zh) * 2021-05-08 2022-11-08 瑞昱半导体股份有限公司 芯片验证系统及其验证方法
DE102022205137A1 (de) 2022-05-23 2023-11-23 Robert Bosch Gesellschaft mit beschränkter Haftung Verfahren zum Überwachen von Zugriffsanfragen für sicherheitskritische Zugriffe in einer Recheneinheit

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080086729A1 (en) * 2006-10-10 2008-04-10 Yuki Kondoh Data processor
US20090193297A1 (en) * 2008-01-24 2009-07-30 Arm Limited Diagnostic context construction and comparison
TWI423040B (zh) * 2004-04-27 2014-01-11 Microsoft Corp 一種用於藉由一安全性虛擬機器執行一安全政策的方法以及系統

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6971096B1 (en) * 2000-05-19 2005-11-29 Sun Microsystems, Inc. Transaction data structure for process communications among network-distributed applications
US20030200247A1 (en) * 2002-02-02 2003-10-23 International Business Machines Corporation Server computer and a method for accessing resources from virtual machines of a server computer via a fibre channel
US8090919B2 (en) * 2007-12-31 2012-01-03 Intel Corporation System and method for high performance secure access to a trusted platform module on a hardware virtualization platform
US8209738B2 (en) * 2007-05-31 2012-06-26 The Board Of Trustees Of The University Of Illinois Analysis of distributed policy rule-sets for compliance with global policy
US8577845B2 (en) * 2008-06-13 2013-11-05 Symantec Operating Corporation Remote, granular restore from full virtual machine backup
WO2010135359A2 (en) * 2009-05-19 2010-11-25 Smx Inet Global Services Sa Providing a local device with computing services from a remote host
US8352941B1 (en) * 2009-06-29 2013-01-08 Emc Corporation Scalable and secure high-level storage access for cloud computing platforms
WO2011081935A2 (en) * 2009-12-14 2011-07-07 Citrix Systems, Inc. Methods and systems for communicating between trusted and non-trusted virtual machines
US8438654B1 (en) * 2012-09-14 2013-05-07 Rightscale, Inc. Systems and methods for associating a virtual machine with an access control right
US9130901B2 (en) * 2013-02-26 2015-09-08 Zentera Systems, Inc. Peripheral firewall system for application protection in cloud computing environments
US9027087B2 (en) * 2013-03-14 2015-05-05 Rackspace Us, Inc. Method and system for identity-based authentication of virtual machines
US9389899B2 (en) * 2014-01-27 2016-07-12 Red Hat Israel, Ltd. Fair unidirectional multi-queue virtual machine migration
US9438618B1 (en) * 2015-03-30 2016-09-06 Amazon Technologies, Inc. Threat detection and mitigation through run-time introspection and instrumentation

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI423040B (zh) * 2004-04-27 2014-01-11 Microsoft Corp 一種用於藉由一安全性虛擬機器執行一安全政策的方法以及系統
US20080086729A1 (en) * 2006-10-10 2008-04-10 Yuki Kondoh Data processor
US20090193297A1 (en) * 2008-01-24 2009-07-30 Arm Limited Diagnostic context construction and comparison

Also Published As

Publication number Publication date
CN104954356B (zh) 2019-07-02
CN104954356A (zh) 2015-09-30
TW201602785A (zh) 2016-01-16
US20150277949A1 (en) 2015-10-01

Similar Documents

Publication Publication Date Title
TWI567558B (zh) 用於虛擬機器的安全分享互連的處理系統、晶片上系統及方法
TWI697804B (zh) 安全區之平台遷移
US10572395B2 (en) Non-enclave access prevention
US9910611B2 (en) Access control for memory protection key architecture
EP3210123B1 (en) Memory protection key architecture with independent user and supervisor domains
US10037288B2 (en) Memory protection at a thread level for a memory protection key architecture
US11995001B2 (en) Supporting secure memory intent
KR20170033891A (ko) 보호 영역에서의 메모리 초기화
US9977743B2 (en) Managing enclave memory pages
WO2015047779A1 (en) Creating secure original equipment manufacturer (oem) identification
CN109643293B (zh) 检测总线上锁条件并且避免总线锁
US20210397721A1 (en) Secure encryption key management in trust domains
US10180854B2 (en) Processor extensions to identify and avoid tracking conflicts between virtual machine monitor and guest virtual machine
US10452423B2 (en) Method and apparatus for light-weight virtualization contexts
US10324862B2 (en) Supporting oversubscription of guest enclave memory pages
US11416300B2 (en) Modular accelerator function unit (AFU) design, discovery, and reuse
US10318440B2 (en) Mapping security policy group registers
US10521342B2 (en) Memory address decoding prioritization

Legal Events

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