新四季網

用於為安全飛地頁面高速緩存提供高級分頁能力的指令和邏輯的製作方法

2023-06-05 06:29:01 1

用於為安全飛地頁面高速緩存提供高級分頁能力的指令和邏輯的製作方法
【專利摘要】本申請公開了用於為安全飛地頁面高速緩存提供高級分頁能力的指令和邏輯。指令和邏輯為安全飛地頁面高速緩存提供高級分頁能力。諸個實施例包括多個硬體線程或處理核心、高速緩存,該高速緩存用於存儲共享頁面地址的安全數據,該共享頁面地址被分配給硬體線程可訪問的安全飛地。解碼級解碼第一指令,並根據該共享頁面地址的飛地頁面高速緩存映射來標記條目,以阻止為所述第一或第二硬體線程中的任一個創建用於訪問該共享頁面的新轉換,該第一指令將所述共享頁面地址指定為操作數。解碼第二指令以供執行,該第二指令將所述安全飛地指定為操作數,並且執行單元記錄當前正在訪問與安全飛地相對應的飛地頁面高速緩存中的安全數據的硬體線程,並在任一硬體線程退出安全飛地時將所記錄的硬體線程的數量遞減。
【專利說明】用於為安全飛地頁面高速緩存提供高級分頁能力的指令和 邏輯

【技術領域】
[0001] 本公開涉及處理邏輯、微處理器以及相關的指令集體系結構的領域,這些指令集 體系結構在被處理器或其他處理邏輯所執行時運行邏輯、數學或其他功能性操作。具體而 言,本公開涉及用於為安全飛地頁面高速緩存(secureenclavepagecaches)提供高級分 頁能力的指令和邏輯。

【背景技術】
[0002] 用於支持諸如語音、視頻、事務以及私有數據之類的新使用模型和服務的應用和 高性能網絡在安全領域提出了新的挑戰。處於保密和完整性的目的而保護存儲器中的或在 傳輸途中的數據是重要的,但為了支持高速加密操作和維持對受保護的代碼和/或數據的 安全訪問所需的存儲器,增加了複雜性最終增加了成本。
[0003] 已知的一種用於創建和維持安全、受保護或隔離的分區或環境的技術是建立飛地 (enclave)。飛地是信息和處理能力的集合,其可作為一組來保護。信息和處理能力可包括 網絡、主機或應用。
[0004] 常用的用於處理數據和/或指令的技術是通過支持虛擬存儲器的高速緩存,例如 通過採用轉換後備緩衝器(TLB)在硬體中根據頁面表中存在的映射快速地進行從線性地址 到物理存儲器地址的轉換。TLB中的條目可與一個或多個特定的處理器核心、硬體線程或邏 輯處理器相關聯。因此,可保護在高速緩存中訪問的數據不被未經授權的處理器核心、硬體 線程或邏輯處理器所訪問。
[0005] 管理許可、物理存儲器和/或改變頁面表中的映射通常由作業系統(OS)來管理, 但當存儲器內容受保護時(例如在飛地中),OS可能未被許可或未被信任來訪問實際受保護 的內容,即飛地具有私有存儲器。因此,在不能信任OS的情況下,確保私有存儲器內容的安 全性和/或完整性並管理有限量物理存儲器的技術限制提出了一系列獨特的安全性和性 能挑戰。
[0006] 迄今為止,解決這些挑戰的安全性解決方案以及對此類性能限制問題以及設計、 驗證和其它複雜性的潛在解決方案尚未被充分探索。

【專利附圖】

【附圖說明】
[0007] 在附圖的各圖中通過示例而非限制地示出本發明。
[0008] 圖IA是執行用於為安全飛地頁面高速緩存提供高級分頁能力的指令的系統的一 個實施例的框圖。
[0009] 圖IB是執行用於為安全飛地頁面高速緩存提供高級分頁能力的指令的系統的另 一實施例的框圖。
[0010] 圖IC是執行用於為安全飛地頁面高速緩存提供高級分頁能力的指令的系統的另 一實施例的框圖。
[0011] 圖2是執行用於為安全飛地頁面高速緩存提供高級分頁能力的指令的處理器的 一個實施例的框圖。
[0012] 圖3A示出根據一個實施例的打包數據類型。
[0013] 圖3B示出根據一個實施例的打包數據類型。
[0014] 圖3C示出根據一個實施例的打包數據類型。
[0015] 圖3D示出根據一個實施例的用於為安全飛地頁面高速緩存提供高級分頁能力的 指令編碼。
[0016] 圖3E示出根據另一實施例的用於為安全飛地頁面高速緩存提供高級分頁能力的 指令編碼。
[0017] 圖3F示出根據另一實施例的用於為安全飛地頁面高速緩存提供高級分頁能力的 指令編碼。
[0018] 圖3G示出根據另一實施例的用於為安全飛地頁面高速緩存提供高級分頁能力的 指令編碼。
[0019] 圖3H示出根據另一實施例的用於為安全飛地頁面高速緩存提供高級分頁能力的 指令編碼。
[0020] 圖4A示出用於執行為安全飛地頁面高速緩存提供高級分頁能力的指令的處理器 微體系結構的一個實施例的要素。
[0021] 圖4B示出用於執行為安全飛地頁面高速緩存提供高級分頁能力的指令的處理器 微體系結構的另一實施例的要素。
[0022] 圖5是用於執行為安全飛地頁面高速緩存提供高級分頁能力的指令的處理器的 一個實施例的框圖。
[0023] 圖6是用於執行為安全飛地頁面高速緩存提供高級分頁能力的指令的計算機系 統的一個實施例的框圖。
[0024] 圖7是用於執行為安全飛地頁面高速緩存提供高級分頁能力的指令的計算機系 統的另一實施例的框圖。
[0025] 圖8是用於執行為安全飛地頁面高速緩存提供高級分頁能力的指令的計算機系 統的另一實施例的框圖。
[0026] 圖9是用於執行為安全飛地頁面高速緩存提供高級分頁能力的指令的晶片上系 統的一個實施例的框圖。
[0027] 圖10是用於執行為安全飛地頁面高速緩存提供高級分頁能力的指令的處理器的 實施例的框圖。
[0028] 圖11是為安全飛地頁面高速緩存提供高級分頁能力的IP核開發系統的一個實施 例的框圖。
[0029] 圖12示出為安全飛地頁面高速緩存提供高級分頁能力的體系結構仿真系統的一 個實施例。
[0030] 圖13示出用於轉換為安全飛地頁面高速緩存提供高級分頁能力的指令的系統的 一個實施例。
[0031] 圖14示出使用指令以向安全飛地頁面高速緩存提供高級分頁能力的處理系統的 一個實施例。
[0032] 圖15示出使用指令以向安全飛地頁面高速緩存提供高級分頁能力的處理器中的 裝置的實施例。
[0033] 圖16示出用於為安全飛地頁面高速緩存提供高級分頁能力的過程的一個實施例 的流程圖。
[0034] 圖17示出用於為安全飛地頁面高速緩存提供高級分頁能力的過程的替代實施例 的流程圖。
[0035] 圖18A示出用於為安全飛地頁面高速緩存提供高級分頁能力的過程的另一實施 例的流程圖。
[0036] 圖18B示出用於為安全飛地頁面高速緩存提供高級分頁能力的過程的另一實施 例的流程圖。

【具體實施方式】
[0037] 下文揭示了一種用於在處理器、計算機系統或其他處理設備中、或與處理器、計算 機系統或其他處理設備一起結合以為安全飛地頁面高速緩存提供高級分頁能力的指令和 處理邏輯。
[0038] 在特殊高速緩存或僅保持私有或受保護數據的高速緩存(例如與飛地相關聯)的 一部分中,對未加密的私有或受保護數據的訪問可僅限於經授權的處理器核心、硬體線程 或邏輯處理器。這樣的飛地私有存儲器可被稱為飛地頁面高速緩存(EPC)存儲器。
[0039] 如同其它物理存儲器一樣,通過按照需要將數據和/或代碼置入分頁和移出分 頁,可使EPC支持更大的私有或受保護的地址空間。改變頁面的映射通常由OS管理,但在 飛地中,OS不一定有對飛地私有存儲器的內容的訪問權。
[0040] TLB中的條目與一個或多個特定處理器核心、硬體線程或邏輯處理器相關聯,當頁 面正在被移出至存儲器或非易失性存儲時,一個或多個特定處理器核心、硬體線程或邏輯 處理器不應當被允許修改該頁面。因此,改變飛地的頁面的映射(即逐出頁面或加載該飛地 的新頁面)可能需要系統通過如下方式使訪問飛地資源的該一個或多個處理器核心、硬體 線程或邏輯處理器"靜默":在EPC存儲器內容被加密並寫回、新頁面從存儲器被加載並解 密、TLB條目被轉儲存儲和替換等等的同時,將訪問飛地資源的該一個或多個處理器核心、 硬體線程或邏輯處理器置於臨時停用或禁止狀態,或使飛地中的任何應用停止運行。可能 需要硬體保護機制來保護EPC中的頁面,以在不能信任OS的情況下確保私有存儲器內容的 安全性和/或完整性,並輔助管理有限量的物理私有存儲器。
[0041] 涉及安全飛地的一個示例方法在2012年6月19日提交的名稱為"Methodand ApparatustoProvideSecureApplicationExecution(用於提供安全應用執行的方法 和裝置)"的共同待審的美國專利申請S/N13/527, 547中有描述。
[0042] 每當EPC存儲器中的頁面被逐出,它就需要利用EPC存儲器發信號通知所有處理 器核心或邏輯處理器,並且需要所有處理器核心或邏輯處理器退出飛地以替換頁面內容、 轉儲存儲TLB條目或多個條目、等等。此外,在硬體中確保滿足這樣的要求以保護飛地隱私 性可涉及相當程度的設計和驗證複雜性。
[0043] 將理解,例如,如果在EPC存儲器內容被加密並寫回、新頁面從存儲器被加載並解 密、TLB條目被轉儲清除並替換等等場合下的分頁過程可被分拆成多個階段,其中在一個或 多個階段期間僅短暫地中斷處理器核心或邏輯處理器,則可減小由於分頁過程引起的性能 降級。
[0044] 本文中公開了用於為安全飛地頁面高速緩存提供高級分頁能力的指令和邏輯。一 些實施例包括多個硬體線程、邏輯處理器或處理核心、用於存儲用於共享頁面地址的安全 數據的高速緩存,該共享頁面地址被分配給安全飛地並可由硬體線程、邏輯處理器或處理 核心訪問。解碼級解碼第一指令(例如下文更詳細討論的EBLOCK指令),該第一指令指定共 享頁面地址作為操作數。一個或多個執行單元標記與共享頁面地址的飛地頁面高速緩存映 射相對應的條目,以阻止為所述多個硬體線程、邏輯處理器或處理核心創建用於訪問該共 享頁面的新的TLB轉換。解碼第二指令(例如也在下文中詳細討論的ETRACK指令)以供執 行,該第二指令指定所述安全飛地作為操作數,並且一個或多個執行單元記錄當前正在訪 問與安全飛地相對應的該飛地頁面高速緩存中的安全數據的硬體線程。當硬體線程中的任 一個退出安全飛地時,遞減所記錄的硬體線程的數量。
[0045] 然後OS可將處理器間中斷(IPI)發送至當前正在訪問與安全飛地相對應的飛地 頁面高速緩存中的安全數據的任何硬體線程、邏輯處理器或處理核心。當硬體線程、邏輯處 理器或處理核心確收IPI並退出安全飛地時,它們的TLB條目或多個TLB條目被轉儲清除, 並且所記錄的硬體線程的數量遞減。當所記錄的硬體線程的數量達到零時,可以安全地使 OS逐出頁面或多個頁面、對數據加密並將它們寫回存儲器或非易失性存儲器。OS可使用第 三指令(例如也在下文中詳細討論的EWB指令)來完成逐出和寫回。由於對安全數據的飛地 保護可能不能信任0S,所以如果所記錄的硬體線程的數量未達到零,則第三指令的一個實 施例可能失敗。在替代實施例中,第三指令可等待,直到所記錄的硬體線程的數量達到零才 執行。
[0046] 將可理解,管理許可、物理存儲器和/或改變頁面表中的映射通常由作業系統 (OS)來管理,但當存儲器內容受保護時(例如在飛地中),OS可能未被許可或未被信任來訪 問實際受保護的內容,因為飛地具有私有存儲器。因此,利用為安全飛地頁面高速緩存提供 高級分頁能力的指令和處理邏輯,可在不能信任OS的情況下按照分級方式實現確保私有 存儲器內容的安全性和/或完整性並且管理有限量物理存儲器的技術限制,無需精巧的硬 件支持和/或設計努力。
[0047] 在以下描述中,陳述了諸如處理邏輯、處理器類型、微體系結構條件、事件、啟用機 制等多種特定細節,以提供對本發明實施例的更透徹理解。然而,本領域技術人員應當領 會,沒有這些具體細節也可實踐本發明。此外,沒有詳細示出一些公知的結構、電路等等,以 避免不必要地混淆本發明的實施例。
[0048] 雖然下述的諸個實施例參照處理器來描述,但其他實施例也適用於其他類型的集 成電路和邏輯設備。本發明的實施例的類似技術和教導可應用於其它類型的電路或半導體 器件,這些其它類型的電路或半導體器件也可受益於更高的流水線吞吐量和提高的性能。 本發明的諸個實施例的教示適用於執行數據操縱的任何處理器或機器。然而,本發明不限 於執行512位、256位、128位、64位、32位、或16位數據運算的處理器或機器,並適用於執行 數據操作或管理的任何處理器和機器。此外,下述描述提供了示例,並且附圖出於示意性目 的示出了多個示例。然而,這些示例不應該被理解為具有限制性目的,因為它們僅僅旨在提 供本發明的諸個實施例的示例,而並非對本發明的實施例的所有可能實現方式進行窮舉。
[0049] 雖然下述的示例描述了在執行單元和邏輯電路情況下的指令處理和分配,但本發 明的其他實施例也可通過存儲在機器可讀有形介質上的數據和/或指令來完成,這些數據 和/或指令在被機器執行時使得機器執行與本發明至少一個實施例相一致的功能。在一個 實施例中,與本發明的實施例相關聯的功能被具體化在機器可執行指令中。這些指令可用 來使通過這些指令編程的通用處理器或專用處理器執行本發明的步驟。本發明的諸個實施 例也可以作為電腦程式產品或軟體來提供,該電腦程式產品或軟體可包括其上存儲有 指令的機器或計算機可讀介質,這些指令可被用來對計算機(或其他電子設備)進行編程來 執行根據本發明的實施例的一個或多個操作。另選地,本發明的諸個實施例的這些步驟可 由包含用於執行這些步驟的固定功能邏輯的專用硬體組件來執行,或由經編程的計算機組 件以及固定功能硬體組件的任何組合來執行。
[0050] 被用於對邏輯進行編程以執行本發明的諸個實施例的指令可被存儲在系統中的 存儲器(諸如,DRAM、高速緩存、快閃記憶體、或其他存儲器)內。進一步的,指令可經由網絡或其他 計算機可讀介質來分發。因此,計算機可讀介質可包括用於以機器(諸如,計算機)可讀的格 式存儲或發送信息的任何機制,但不限於:磁碟、光碟、緻密盤只讀存儲器(CD-ROM)、磁光 盤、只讀存儲器(ROM)、隨機存取存儲器(RAM)、可擦除可編程只讀存儲器(EPR0M)、電可擦 除可編程只讀存儲器(EEPR0M)、磁卡或光卡、快閃記憶體、或在經由網際網路通過電、光、聲、或其他 形式的傳播信號(諸如,載波、紅外信號、數位訊號等)發送信息中所用的有形機器可讀存儲 器。因此,計算機可讀介質包括用於存儲或發送機器(例如,計算機)可讀形式的電子指令或 信息的任何類型的有形機器可讀介質。
[0051] 設計會經歷多個階段,從創新到仿真到製造。表示設計的數據可用多種方式來表 示該設計。首先,如仿真中將有用的,可使用硬體描述語言或其他功能性描述語言來表示硬 件。此外,可在設計過程的某些階段產生具有邏輯和/或電晶體門電路的電路級模型。此 夕卜,大多數設計在某些階段都達到表示硬體模型中多種設備的物理布置的數據水平。在使 用常規半導體製造技術的情況下,表示硬體模型的數據可以是指定在用於製造集成電路的 掩模的不同掩模層上存在或不存在各種各樣特徵的數據。在任何的設計表示中,數據可被 存儲在任何形式的機器可讀介質中。存儲器或磁/光存儲器(諸如,盤)可以是存儲信息的 機器可讀介質,這些信息是經由光學或電學波來發送的,這些光學或電學波被調製或以其 他方式生成以傳送這些信息。當發送指示或承載代碼或設計的電學載波達到實現電信號的 複製、緩衝或重新發送的程度時,即產生了新的副本。因此,通信提供商或網絡提供商會在 有形機器可讀介質上至少臨時地存儲具體化本發明的諸個實施例的技術的物品(諸如,編 碼在載波中的信息)。
[0052] 在現代處理器中,多個不同執行單元被用於處理和執行多種代碼和指令。並不是 所有指令都被同等地創建,因為其中有一些更快地被完成而另一些需要多個時鐘周期來完 成。指令的吞吐量越快,則處理器的總體性能越好。因此,使大量指令儘可能快地執行將會 是有利的。然而,某些指令具有更大的複雜度,並需要更多的執行時間和處理器資源。例如, 存在浮點指令、加載/存儲操作、數據移動等等。
[0053] 因為更多的計算機系統被用於網際網路、文本以及多媒體應用,所以逐漸地引進更 多的處理器支持。在一個實施例中,指令集可與一個或多個計算機體系結構相關聯,一個或 多個計算機體系結構包括數據類型、指令、寄存器體系結構、尋址模式、存儲器體系結構、中 斷和例外處理、外部輸入輸出(I/O)。
[0054] 在一個實施例中,指令集體系結構(ISA)可由一個或更多微體系結構來執行,微體 繫結構包括用於實現一個或多個指令集的處理器邏輯和電路。因此,具有不同微體系結構 的諸個處理器可共享公共指令集的至少一部分。例如,INTEL?奔騰四(Pentium4)處理 器、丨ntel?酷睿(Core?)處理器、以及來自加利福尼亞州桑尼威爾(Sunnyvale)的超微半 導體有限公司(AdvancedMicroDevices,Inc.)的諸多處理器執行幾乎相同版本的x86指 令集(在更新的版本中加入了一些擴展),但具有不同的內部設計。類似地,由其他處理器開 發公司(諸如,ARM控股有限公司、MIPS或它們的授權方或兼容方)所設計的諸多處理器可 共享至少一部分公共指令集,但可包括不同的處理器設計。例如,ISA的相同寄存器體系結 構在不同的微體系結構中可使用新的或已知的技術以不同方法來實現,包括專用物理寄存 器、使用寄存器重命名機制(諸如,使用寄存器別名表RAT、重排序緩衝器R0B、以及隱退寄 存器文件)的一個或多個動態分配物理寄存器。在一個實施例中,寄存器可包括:可由軟體 編程者尋址或不可尋址的一個或多個寄存器、寄存器體系結構、寄存器文件、或其他寄存器 集合。
[0055] 在一個實施例中,指令可包括一個或多個指令格式。在一個實施例中,指令格式可 指示多個欄位(位的數目、位的位置等)以特別指定將要被執行的操作以及將要被執行的操 作的操作數。一些指令格式可進一步被指令模板(或子格式)所細分定義。例如,給定指令 格式的指令模板可被定義為具有指令格式欄位的不同的子集,和/或被定義為具有不同解 釋的給定欄位。在一個實施例中,使用指令格式(並且,如果定義過,則以該指令格式的一個 給定指令模板)來表示指令,並且該指令指定或指示操作以及該操作將操作的操作數。
[0056] 科學應用、金融應用、自動向量化通用應用、RMS(識別、挖掘和合成)應用以及視 覺和多媒體應用(諸如,2D/3D圖形、圖像處理、視頻壓縮/解壓縮、語音識別算法和音頻處 理)可能需要對大量數據項執行相同的操作。在一個實施例中,單指令多數據(SMD)指的 是使得處理器在多個數據元素上執行一操作的一種類型的指令。SMD技術可被用於處理器 中,這些處理器將寄存器中的諸個位(bit)邏輯地劃分入多個固定大小或可變大小的數據 元素,每個數據元素表示單獨的值。例如,在一個實施例中,64位寄存器中的諸個位可被組 織為包含四個單獨的16位數據元素的源操作數,每個數據元素表示單獨的16位值。該數 據類型可被稱為"打包"數據類型或"向量"數據類型,並且該數據類型的操作數被稱為打包 數據操作數或向量操作數。在一個實施例中,打包數據項或向量可以是存儲在單個寄存器 中的打包數據元素的序列,並且打包數據操作數或向量操作數可以是SMD指令(或"打包 數據指令"或"向量指令")的源操作數或目的地操作數。在一個實施例中,SIMD指令指定 了將要被執行在兩個源向量操作數上的單個向量操作,以生成具有相同或不同大小的、具 有相同或不同數量的數據元素的、具有相同或不同數據元素次序的目的地向量操作數(也 被稱為結果向量操作數)。
[0057] 諸如由InteKfe酷睿(Core?)處理器(具有包括x86、MMX?、流SMD擴展(SSE)、 SSE2、SSE3、SSE4. 1、SSE4. 2指令的指令集)、ARM處理器(諸如,ARMCortex?處理器族,具 有包括向量浮點(VFP)和/或NEON指令的指令集)、MIPS處理器(諸如,中國科學院計算機 技術研宄所(ICT)開發的龍芯處理器族)所使用的SMD技術之類的SMD技術在應用性能 上帶來了極大的提高(Core?和MMX?是加利福尼亞州聖克拉拉市的英特爾公司的註冊商標 或商標)。
[0058] 在一個實施例中,目的地寄存器/數據和源寄存器/數據是表示對應數據或操作 的源和目的地的通用術語。在一些實施例中,它們可由寄存器、存儲器或具有與所示出的那 些名稱或功能不同的名稱或功能的其他存儲區域所實現。例如,在一個實施例中,"DEST1" 可以是臨時存儲寄存器或其他存儲區域,而"SRC1"和"SRC2"是第一和第二源存儲寄存器 或其他存儲區域,等等。在其他實施例中,SRC和DEST存儲區域中的兩個或更多區域可對 應於相同存儲區域中的不同數據存儲元素(例如,SIMD寄存器)。在一個實施例中,例如通 過將對第一和第二源數據執行的操作的結果寫回至兩個源寄存器中作為目的地寄存器的 那個寄存器,源寄存器中的一個也可以作為目的地寄存器。
[0059]圖IA是根據本發明的一個實施例的示例性計算機系統的框圖,該計算機系統被 形成為具有包括執行單元以執行指令的處理器。根據本發明,諸如根據在此所描述的實 施例,系統100包括諸如處理器102之類的組件,以採用包括邏輯的執行單元來執行算法 以處理數據。系統100代表基於可從美國加利福尼亞州聖克拉拉市的英特爾公司獲得的 PENTIUM?ΠΙ、PENTIUM?4、XeontD1、Itanium?、XScaletn'和 / 或StrongARMtni微處理 器的處理系統,不過也可使用其它系統(包括具有其它微處理器的PC、工程工作站、機頂盒 等)。在一個實施例中,樣本系統100可執行可從美國華盛頓州雷蒙德市的微軟公司買到的 WINDOWStm作業系統的一個版本,不過也可使用其它作業系統(例如UNIX和Linux)、嵌入式 軟體、和/或圖形用戶界面。因此,本發明的各實施例不限於硬體和軟體的任何具體組合。
[0060] 實施例不限於計算機系統。本發明的替換實施例可被用於其他設備,諸如手持式 設備和嵌入式應用。手持設備的一些示例包括蜂窩電話、網際協議設備、數位相機、個人數 字助理(PDA)以及手持PC。嵌入式應用可包括:微控制器、數位訊號處理器(DSP)、晶片上 系統、網絡計算機(NetPC)、機頂盒、網絡中樞、廣域網(WAN)交換機、或可執行根據至少一 個實施例的一個或多個指令的任何其他系統。
[0061] 圖IA是計算機系統100的框圖,計算機系統100被形成為具有處理器102,處理 器102包括一個或多個執行單元108以執行算法,以執行根據本發明的一個實施例的至少 一個指令。參照單處理器桌面或伺服器系統來描述了一個實施例,但替代實施例可被包括 在多處理器系統中。系統100是"中樞"系統體系結構的示例。計算機系統100包括處理 器102以處理數據信號。處理器102可以是複雜指令集計算機(CISC)微處理器、精簡指令 集計算(RISC)微處理器、超長指令字(VLIW)微處理器、實現指令集組合的處理器或任意其 它處理器設備(諸如數位訊號處理器)。處理器102耦合至處理器總線110,處理器總線110 可在處理器102和系統100內的其他組件之間傳輸數據信號。系統100的諸個元素執行本 領域所熟知的常規功能。
[0062] 在一個實施例中,處理器102包括第一級(LI)內部高速緩存存儲器104。取決於 體系結構,處理器102可具有單個內部高速緩存或多級內部高速緩存。或者,在另一個實施 例中,高速緩存存儲器可位於處理器102的外部。其他實施例也可包括內部高速緩存和外 部高速緩存的組合,這取決於特定實現和需求。寄存器文件106可在多個寄存器(包括整數 寄存器、浮點寄存器、狀態寄存器、指令指針寄存器)中存儲不同類型的數據。
[0063] 執行單元108(包括執行整數和浮點操作的邏輯)也位於處理器102中。處理器 102還包括微代碼(UC〇de)ROM,其存儲用於特定宏指令的微代碼。對於一個實施例,執行單 元108包括處理打包指令集109的邏輯。通過將打包指令集109包括在通用處理器102的 指令集內並包括相關的電路以執行這些指令,可使用通用處理器102中的打包數據來執行 許多多媒體應用所使用的操作。因此,通過將處理器數據總線的全帶寬用於對打包數據進 行操作,許多多媒體應用可獲得加速,並更為有效率地執行。這能減少在處理器數據總線上 傳輸更小數據單元以在一個時間對一個數據元素執行一個或多個操作的需要。
[0064] 執行單元108的替換實施例也可被用於微控制器、嵌入式處理器、圖形設備、DSP 以及其他類型的邏輯電路。系統100包括存儲器120。存儲器設備120可以是動態隨機存 取存儲器(DRAM)設備、靜態隨機存取存儲器(SRAM)設備、快閃記憶體設備或其他存儲器設備。存 儲器120可存儲可由處理器102執行的指令和/或數據,數據由數據信號表示。
[0065] 系統邏輯晶片116耦合至處理器總線110和存儲器120。在所示出的實施例中的系 統邏輯晶片116是存儲器控制器中樞(MCH)。處理器102可經由處理器總線110與MCH116 通信。MCH116提供至存儲器120的高帶寬存儲器路徑118,用於指令和數據存儲,以及用於 存儲圖形命令、數據和文本。MCH116用於引導處理器102、存儲器120以及系統100內的其 他組件之間的數據信號,並在處理器總線110、存儲器120和系統1/0122之間橋接數據信 號。在一些實施例中,系統邏輯晶片116可提供耦合至圖形控制器112的圖形埠。MCH116 經由存儲器接口 118耦合至存儲器120。圖形卡112通過加速圖形埠(AGP)互連114耦 合至MCHl16。
[0066] 系統100使用外圍設備中樞接口總線122以將MCH116耦合至I/O控制器中樞 (100 130。ICH130經由本地I/O總線向一些I/O設備提供直接連接。本地I/O總線是高 速I/O總線,用於將外圍設備連接至存儲器120、晶片組以及處理器102。一些示例是音頻 控制器、固件中樞(快閃記憶體BIOS) 128、無線收發機126、數據存儲器124、包括用戶輸入和鍵盤 接口的傳統I/O控制器、串行擴展埠(諸如通用串行總線USB)以及網絡控制器134。數據 存儲設備124可以包括硬碟驅動器、軟盤驅動器、CD-ROM設備、快閃記憶體設備、或其他大容量存 儲設備。
[0067] 對於系統的另一個實施例,根據一個實施例的指令可被用於晶片上系統。晶片上 系統的一個實施例包括處理器和存儲器。用於這樣一個系統的存儲器是快閃記憶體存儲器。快閃記憶體 存儲器可位於與處理器和其他系統組件相同的管芯上。此外,諸如存儲器控制器或圖形控 制器之類的其他邏輯塊也可位於晶片上系統上。
[0068] 圖IB示出數據處理系統140,數據處理系統140實現本發明的一個實施例的原理。 本領域的技術人員將容易理解,在此描述的諸個實施例可用於替代處理系統,而不背離本 發明的實施例的範圍。
[0069] 計算機系統140包括處理核心159,處理核心159能執行根據一個實施例的至少一 個指令。對於一個實施例,處理核心159表示任何類型的體系結構的處理單元,包括但不限 於:CISC、RISC或VLIW類型體系結構、處理核心159也可適於以一種或多種處理技術來制 造,並且通過充分詳細地表示在機器可讀介質上可以便於其製造。
[0070] 處理核心159包括執行單元142、一組寄存器文件145以及解碼器144。處理核心 159也包括對於理解本發明的實施例不是必需的額外電路(沒有示出)。執行單元142用於 執行處理核心159所接收到的指令。除了執行典型的處理器指令外,執行單元142也執行 打包指令集143中的指令,用於對打包數據格式執行操作。打包指令集143包括用於執行 本發明的諸個實施例的指令以及其他打包指令。執行單元142通過內部總線耦合至寄存器 文件145。寄存器文件145表示處理核心159上的存儲區域,用於存儲包括數據的信息。如 前所述的,可以理解,該存儲區域被用於存儲打包數據不是關鍵。執行單元142耦合至解碼 器144。解碼器144用於將處理核心159所接收到的指令解碼為控制信號和/或微代碼進 入點。響應於這些控制信號和/或微代碼進入點,執行單元142執行合適的操作。在一個 實施例中,解碼器用於解釋指令的操作碼,操作碼指示應當對該指令內所指示的對應數據 執行何種操作。
[0071] 處理核心159耦合至總線141,用於與多個其他系統設備進行通信,這些系統設備 包括但不限於:例如,同步動態隨機存取存儲器(SDRAM)控制器146、靜態隨機存取存儲器 (SRAM)控制器147、猝發快閃記憶體接口 148、個人計算機存儲卡國際協會(PCMCIA)/緻密快閃記憶體 (CF)卡控制器149、液晶顯示器(IXD)控制器150、直接存儲器存取(DMA)控制器151、以及 替代的總線主接口 152。在一個實施例中,數據處理系統140也包括I/O橋154,用於經由 I/O總線153與多個I/O設備進行通信。這樣的I/O設備可包括但不限於:例如,通用異步 接收機/發射機(UART) 155、通用串行總線(USB) 156、藍牙無線UART157、以及I/O擴展接 P158〇
[0072] 數據處理系統140的一個實施例提供了移動通信、網絡通信和/或無線通信,並提 供了能夠執行SMD操作的處理核心159,SMD操作包括文本串比較操作。處理核心159可 編程有多種音頻、視頻、圖像和通信算法,包括離散變換(諸如Walsh-Hadamard變換、快速 傅立葉變換(FFT)、離散餘弦變換(DCT)、以及它們相應的逆變換)、壓縮/解壓縮技術(諸如 色彩空間變換)、視頻編碼運動估計或視頻解碼運動補償、以及調製/解調(MODEM)功能(諸 如脈衝編碼調製PCM)。
[0073] 圖IC示出了能夠執行用於為安全飛地頁面高速緩存提供高級分頁能力的指令的 數據處理系統的另一替換實施例。根據一個替代實施例,數據處理系統160可包括主處理 器166、SMD協處理器161、高速緩存處理器167以及輸入/輸出系統168。輸入/輸出系統 168可選地耦合至無線接口 169。SMD協處理器161能夠執行包括根據一個實施例的指令 的操作。處理核心170可適於以一種或多種處理技術來製造,並且通過充分詳細地表示在 機器可讀介質上可以便於包括處理核心170的數據處理系統160的全部或一部分的製造。
[0074] 對於一個實施例,SMD協處理器161包括執行單元162以及一組寄存器文件164。 主處理器166的一個實施例包括解碼器165,用於識別指令集163的指令,指令集163包括 根據一個實施例的用於由執行單元162所執行的指令。對於替換實施例,SMD協處理器161 也包括解碼器165B的至少一部分以解碼指令集163的指令。處理核心170也包括對於理 解本發明的實施例不是必需的額外電路(沒有示出)。
[0075] 在操作中,主處理器166執行數據處理指令流,數據處理指令流控制通用類型的 數據處理操作,包括與高速緩存存儲器167以及輸入/輸入系統168的交互。SMD協處理 器指令嵌入數據處理指令流中。主處理器166的解碼器165將這些SMD協處理器指令識別 為可由附連的SMD協處理器161來執行的類型。因此,主處理器166在協處理器總線171 上發出這些SMD協處理器指令(或表示SMD協處理器指令的控制信號),任何附連的SMD 協處理器從協處理器總線171接收到這些指令。在該情況中,SMD協處理器161將接受並 執行任何接收到的針對該SMD協處理器的SMD協處理器指令。
[0076] 可經由無線接口 169接收數據以通過SMD協處理器指令進行處理。對於一個示 例,語音通信可以數位訊號的形式被接收到,其將被SMD協處理器指令所處理,以重新生 成表示該語音通信的數字音頻採樣。對於另一個示例,壓縮音頻和/或視頻可以數字位流 的形式被接收到,其將被SMD協處理器指令所處理,以重新生成數字音頻採樣和/或運動 視頻幀。對於處理核心170的一個實施例,主處理器166和SMD協處理器161被集成在單 個處理核心170中,該單個處理核心170包括執行單元162、一組寄存器文件164、以及解碼 器165以識別指令集163的指令,指令集163包括根據一個實施例的指令。
[0077] 圖2是包括邏輯電路以執行根據本發明的一個實施例的指令的處理器200的微 體系結構的框圖。在一些實施例中,根據一個實施例的指令可被實現為對具有字節大小、 字大小、雙字大小、四字大小等並具有諸多數據類型(諸如單精度和雙精度整數和浮點數據 類型)的數據元素執行操作。在一個實施例中,有序前端201是處理器200的一部分,其獲 取將要被執行的指令,並準備這些指令以在稍後供處理器流水線使用。前端201可包括諸 個單元。在一個實施例中,指令預取器226從存儲器獲取指令,並將指令饋送至指令解碼器 228,指令解碼器228隨後解碼或解釋指令。例如,在一個實施例中,解碼器將所接收到的指 令解碼為機器可執行的被稱為"微指令"或"微操作"(也稱為微操作數或uop)的一個或多 個操作。在其他實施例中,解碼器將指令解析為操作碼和對應的數據及控制欄位,它們被微 體系結構用於執行根據一個實施例的操作。在一個實施例中,追蹤高速緩存230接受經解 碼的微操作,並將它們組裝為程序有序序列或微操作隊列234中的蹤跡,以用於執行。當追 蹤高速緩存230遇到複雜指令時,微代碼ROM232提供完成操作所需的微操作。
[0078] -些指令被轉換為單個微操作,而其他指令需要若干個微操作以完成整個操作。 在一個實施例中,如果需要超過四個微操作來完成指令,則解碼器228訪問微代碼ROM232 以進行該指令。對於一個實施例,指令可被解碼為少量的微操作以用於在指令解碼器228 處進行處理。在另一個實施例中,如果需要若干微操作來完成操作,則可將指令存儲在微代 碼ROM232中。追蹤高速緩存230參考進入點可編程邏輯陣列(PLA)來確定正確的微指令 指針,以從微代碼ROM232讀取微代碼序列以完成根據一個實施例的一個或多個指令。在微 代碼ROM232完成對於指令的微操作序列化之後,機器的前端201恢復從追蹤高速緩存230 提取微操作。
[0079] 無序執行引擎203是將指令準備好用於執行的單元。無序執行邏輯具有若干個緩 衝器,用於將指令流平滑並且重排序,以優化指令流進入流水線後的性能,並調度指令流以 供執行。分配器邏輯分配每個微操作需要的機器緩衝器和資源,以用於執行。寄存器重命 名邏輯將諸個邏輯寄存器重命名為寄存器文件中的條目。在指令調度器(存儲器調度器、快 速調度器202、慢速/通用浮點調度器204、簡單浮點調度器206)之前,分配器也將每個微 操作的條目分配在兩個微操作隊列中的一個之中,一個微操作隊列用於存儲器操作,另一 個微操作隊列用於非存儲器操作。微操作調度器202、204、206基於對它們的依賴輸入寄存 器操作數源的準備就緒以及微操作完成它們的操作所需的執行資源的可用性來確定微操 作何時準備好用於執行。一個實施例的快速調度器202可在主時鐘周期的每半個上進行調 度,而其他調度器可僅僅在每個主處理器時鐘周期上調度一次。調度器對分配埠進行仲 裁以調度微操作以便執行。
[0080] 寄存器文件208、210位於調度器202、204、206和執行塊211中的執行單元212、 214、216、218、220、222、224之間。也存在單獨的寄存器文件208、210,分別用於整數和浮點 操作。一個實施例的每個寄存器文件208、210也包括旁路網絡,旁路網絡可將剛完成的還 沒有被寫入寄存器文件的結果旁路或轉發給新的依賴微操作。整數寄存器文件208和浮點 寄存器文件210也能夠彼此通信數據。對於一個實施例,整數寄存器文件208被劃分為兩 個單獨的寄存器文件,一個寄存器文件用於低階的32位數據,第二個寄存器文件用於高階 的32位數據。一個實施例的浮點寄存器文件210具有128位寬度的條目,因為浮點指令通 常具有從64至128位寬度的操作數。
[0081] 執行塊 211 包括執行單元 212、214、216、218、220、222、224,在執行單元212、214、 216、218、220、222、224中實際執行指令。該區塊包括寄存器文件208、210,寄存器文件208、 210存儲微指令需要執行的整數和浮點數據操作數值。一個實施例的處理器200包括有多 個執行單元:地址生成單元(AGU) 212、AGU214、快速ALU216、快速ALU218、慢速ALU220、浮 點ALU222、浮點移動單元224。對於一個實施例,浮點執行塊222、224執行浮點、MMX、SIMD、 SSE以及其他操作。一個實施例的浮點ALU222包括64位/64位浮點除法器,用於執行除 法、平方根、以及餘數微操作。對於本發明的諸個實施例,涉及浮點值的指令可使用浮點硬 件來處理。在一個實施例中,ALU操作進入高速ALU執行單元216、218。一個實施例的高速 ALU216、218可執行高速操作,有效等待時間為半個時鐘周期。對於一個實施例,大多數複雜 整數操作進入慢速ALU220,因為慢速ALU220包括用於長等待時間類型操作的整數執行硬 件,諸如,乘法器、移位器、標記邏輯和分支處理。存儲器加載/存儲操作由AGU212、214來 執行。對於一個實施例,整數ALU216、218、220被描述為對64位數據操作數執行整數操作。 在替代實施例中,可實現ALU216、218、220以支持包括16、32、128、256等各種數據位。類似 地,可實現浮點單元222、224以支持具有各種位寬的多個操作數。對於一個實施例,浮點單 元222、224可結合SMD和多媒體指令對128位寬度打包數據操作數進行操作。
[0082] 在一個實施例中,在父加載完成執行之前,微操作調度器202、204、206就分派依 賴操作。因為在處理器200中微操作被投機地調度和執行,所以處理器200也包括處理存 儲器未命中的邏輯。如果數據加載在數據高速緩存中未命中,則可能存在帶有臨時錯誤數 據離開調度器並運行在流水線中的依賴操作。重放機制跟蹤使用錯誤數據的指令,並重新 執行這些指令。僅僅依賴操作需要被重放,而允許獨立操作完成。處理器的一個實施例的 調度器和重放機制也被設計為捕捉為安全飛地頁面高速緩存提供高級分頁能力的指令。
[0083] 術語"寄存器"指代被用作為指令的一部分以標識操作數的板上處理器存儲位置。 換句話說,寄存器是那些處理器外部(從編程者的角度來看)可用的處理器存儲位置。然而, 一實施例的寄存器不限於表示特定類型的電路。相反,一實施例的寄存器能夠存儲並提供 數據,能夠執行在此所述的功能。本文所描述的寄存器可利用任何數量的不同技術通過處 理器中的電路來實現,這些不同技術諸如專用物理寄存器、利用寄存器重命名的動態分配 物理寄存器、專用和動態分配物理寄存器的組合等。在一個實施例中,整數寄存器存儲32 位整數數據。一個實施例的寄存器文件也包含八個多媒體SMD寄存器,用於打包數據。對 於以下討論,寄存器應被理解為設計成保存打包數據的數據寄存器,諸如來自美國加利福 尼亞州聖克拉拉市的英特爾公司的啟用了MMX技術的微處理器的64位寬MMXtm寄存器(在 一些實例中也稱為"mm寄存器)。"這些MMX寄存器(可用在整數和浮點格式中)可與伴隨 SMD和SSE指令的打包數據元素一起操作。類似地,涉及SSE2、SSE3、SSE4或更新的技術 (統稱為"SSEx")的128位寬XMM寄存器也可被用於保持這樣打包數據操作數。在一個實 施例中,在存儲打包數據和整數數據時,寄存器不需要區分這兩類數據類型。在一個實施例 中,整數和浮點數據可被包括在相同的寄存器文件中,或被包括在不同的寄存器文件中。進 一步的,在一個實施例中,浮點和整數數據可被存儲在不同的寄存器中,或被存儲在相同的 寄存器中。
[0084] 在下述附圖的示例中,描述了多個數據操作數。圖3A示出了根據本發明一個實施 例的多媒體寄存器中的各種打包數據類型表示。圖3A示出用於128位寬操作數的打包字 節310、打包字320以及打包雙字(dword)330的數據類型。本示例的打包字節格式310是 128位長,並且包含十六個打包字節數據元素。字節在此被定義為是8位數據。每一個字節 數據元素的信息被存儲為:對於字節0存儲在位7到位0,對於字節1存儲在位15到位8, 對於字節2存儲在位23到位16,最後對於字節15存儲在位120到位127。因此,在該寄存 器中使用了所有可用的位。該存儲配置提高了處理器的存儲效率。同樣,因為訪問了十六 個數據元素,所以現在可對十六個數據元素並行地執行一個操作。
[0085] 通常,數據元素是單獨的數據片,與具有相同長度的其他數據元素一起存儲在單 個寄存器或存儲器位置中。在涉及SSEx技術的打包數據序列中,存儲在XMM寄存器中的數 據元素的數目是128位除以單個數據元素的位長。類似地,在涉及MMX和SSE技術的打包 數據序列中,存儲在MMX寄存器中的數據元素的數目是64位除以單個數據元素的位長。雖 然圖3A中所示的數據類型是128位長,但本發明的諸個實施例也可操作64位寬、256位寬、 512位寬或其他大小的操作數。本示例的打包字格式320是128位長,並且包含八個打包字 數據元素。每個打包字包含十六位的信息。圖3A的打包雙字格式330是128位長,並且包 含四個打包雙字數據元素。每個打包雙字數據元素包含三十二位信息。打包四字是128位 長,並包含兩個打包四字數據元素。
[0086] 圖3B示出了替代的寄存器內數據存儲格式。每個打包數據可包括超過一個獨立 數據元素。示出了三個打包數據格式:打包半數據元素314、打包單數據元素342、以及打包 雙數據元素343。打包半數據元素341、打包單數據元素342、打包雙數據元素343的一個實 施例包含定點數據元素。對於替代實施例中,一個或多個打包半數據元素341、打包單數據 元素342、打包雙數據元素343可包含浮點數據元素。打包半數據元素341的一個替代實 施例是一百二十八位長度,包含八個16位數據元素。打包單數據元素342的一個替代實施 例是一百二十八位長度,且包含四個32位數據元素。打包雙數據元素343的一個實施例是 一百二十八位長度,且包含兩個64位數據元素。可以理解的是,這樣的打包數據格式進一 步可被擴展至其他寄存器長度,例如,96位、160位、192位、224位、256位、512位或更長。
[0087] 圖3C示出了根據本發明的一個實施例的多媒體寄存器中的多種有符號和無符號 打包數據類型表示。無符號打包字節表示344示出了SMD寄存器中的無符號打包字節的 存儲。每一個字節數據元素的信息被存儲為:對於字節〇存儲在位7到位0,對於字節1存 儲在位15到位8,對於字節2存儲在位23到位16,等等,最後對於字節15存儲在位120到 位127。因此,在該寄存器中使用了所有可用的位。該存儲配置可提高處理器的存儲效率。 同樣,因為訪問了十六個數據元素,所以可對十六個數據元素並行地執行一個操作。有符號 打包字節表示345示出了有符號打包字節的存儲。注意到,每個字節數據元素的第八位是 符號指示符。無符號打包字表示346示出了SMD寄存器中字7到字O如何被存儲。有符 號打包字表示347類似於無符號打包字寄存器內表示346。注意到,每個字數據元素的第 十六位是符號指示符。無符號打包雙字表示348示出了雙字數據元素如何存儲。有符號打 包雙字表示349類似於無符號打包雙字寄存器內表示348。注意到,必要的符號位是每個雙 字數據元素的第三十二位。
[0088] 圖3D是與可從美國加利福尼亞州聖克拉拉市的英特爾公司的全球資訊網(www) intel.com/products/processor/manuals/上獲得的"Intel? 64 和IA-32 英特爾體系結 構軟體開發者手冊卷2:指令集參考(丨ntel? 64和IA_32IntelArchitectureSoftware Developer'sManualVolume2:InstructionSetReference)" 中描述的操作碼格式類型 相對應的具有32或更多位的操作編碼(操作碼)格式360以及寄存器/存儲器操作數尋址 模式的一個實施例的描述。在一個實施例中,可通過一個或更多個欄位361和362來編碼 指令。可以標識每個指令高達兩個操作數位置,包括高達兩個源操作數標識符364和365。 對於一個實施例,目的地操作數標識符366與源操作數標識符364相同,而在其他實施例中 它們不相同。對於可選實施例,目的地操作數標識符366與源操作數標識符365相同,而在 其他實施例中它們不相同。在一個實施例中,由源操作數標識符364和365所標識的源操 作數中的一個被指令的結果所覆寫,而在其他實施例中,標識符364對應於源寄存器元素, 而標識符365對應於目的地寄存器元素。對於一個實施例,操作數標識符364和365可被 用於標識32位或64位的源和目的地操作數。
[0089] 圖3E示出了具有四十個或更多位的另一個替代操作編碼(操作碼)格式370。操 作碼格式370對應於操作碼格式360,並包括可選的前綴字節378。根據一個實施例的指令 可通過欄位378、371和372中的一個或多個來編碼。通過源操作數標識符374和375以 及通過前綴字節378,可標識每個指令中高達兩個操作數位置。對於一個實施例,前綴字節 378可被用於標識32位或64位的源和目的地操作數。對於一個實施例,目的地操作數標 識符376與源操作數標識符374相同,而在其他實施例中它們不相同。對於替代實施例,目 的地操作數標識符376與源操作數標識符375相同,而在其他實施例中它們不相同。在一 個實施例中,指令對由操作數標識符374和375所標識的一個或多個操作數進行操作,並 且由操作數標識符374和375所標識的一個或多個操作數被指令的結果所覆寫,然而在其 他實施例中,由標識符374和375所標識的操作數被寫入另一個寄存器中的另一個數據元 素中。操作碼格式360和370允許由MOD欄位363和373以及由可選的比例-變址-基址 (scale-index-base)和位移(displacement)字節所部分指定的寄存器到寄存器尋址、存 儲器到寄存器尋址、由存儲器對寄存器尋址、由寄存器對寄存器尋址、直接對寄存器尋址、 寄存器至存儲器尋址。
[0090] 接下來轉到圖3F,在一些替換實施例中,64位(或128位、或256位、或512位或更 多)單指令多數據(SIMD)算術操作可經由協處理器數據處理(CDP)指令來執行。操作編碼 (操作碼)格式380示出了一個這樣的⑶P指令,其具有CDP操作碼欄位382和389。對於替 代實施例,該類型⑶P指令操作可由欄位383、384、387和388中的一個或多個來編碼。可 以對每個指令標識高達三個操作數位置,包括高達兩個源操作數標識符385和390以及一 個目的地操作數標識符386。協處理器的一個實施例可對8、16、32和64位值操作。對於一 個實施例,對整數數據元素執行指令。在一些實施例中,使用條件欄位381,可有條件地執行 指令。對於一些實施例,源數據大小可通過欄位383來編碼。在一些實施例中,可對SMD欄位執行零(Z)、負(N)、進位(C)和溢出(V)檢測。對於一些指令,飽和類型可通過欄位384 來編碼。
[0091] 接下來轉到圖3G,其描繪了根據另一個實施例的用於為安全飛地頁面高速緩存提 供高級分頁能力的另一個替換操作編碼(操作碼)格式397,該替換操作編碼(操作碼)格式 397對應於可在全球資訊網intel.com/products/processor/manuals/上從加利福尼亞州聖克 拉拉市的Intel公司獲得的"丨ntel?高級向量擴展編程參考"("丨ntel?AdvancedVector ExtensionsProgrammingReference")中所描述的操作碼格式類型。
[0092] 原始x86指令集向1位元組操作碼提供多種地址字節(syllable)格式以及包含在附 加字節中的直接操作數,其中可從第一個"操作碼"字節中獲知附加字節的存在。此外,特定 字節值被預留給操作碼作為修改符(稱為前綴prefix,因為它們被放置在指令之前)。當256 個操作碼字節的原始配置(包括這些特殊前綴值)耗盡時,指定單個字節以跳出(escape)到 新的256個操作碼集合。因為添加了向量指令(諸如,SIMD),即便通過使用前綴進行了擴展 以後,也需要產生更多的操作碼,並且"兩字節"操作碼映射也已經不夠。為此,將新指令加 入附加的映射中,附加的映射使用兩字節加上可選的前綴作為標識符。
[0093] 除此外,為了便於在64位模式中實現額外的寄存器,在前綴和操作碼(以及任何 的用於確定操作碼所需的跳出字節)之間使用額外的前綴(被稱為"REX")。在一個實施例 中,REX具有4個"有效載荷"位,以指示在64位模式中使用附加的寄存器。在其他實施例 中,可具有比4位更少或更多的位。至少一個指令集的通用格式(一般對應于格式360和/ 或格式370)被一般地不出如下:
[0094] [prefixes] [rex]escape[escape2]opcodemodrm(等等)
[0095] 操作碼格式397對應於操作碼格式370,並包括可選的VEX前綴字節391 (在一個 實施例中,以十六進位的C4開始)以替換大部分的其他公共使用的傳統指令前綴字節和跳 出代碼。例如,以下示出了使用兩個欄位來編碼指令的實施例,其可在原始指令中存在第二 跳出代碼時、或在需要在REX欄位中使用額外位(諸如,XB和W欄位)時被使用。在以下所示 的實施例中,傳統跳出由新的跳出值所表示,傳統前綴被完全壓縮為"有效載荷(payload)" 字節的一部分,傳統前綴被重新申明並可用於未來的擴展,第二跳出代碼被壓縮在"映射 (map)"欄位中且未來的映射或特徵空間可用,並且加入新的特徵(諸如,增加的向量長度以 及額外的源寄存器區分符)。
[0096]

【權利要求】
1. 一種處理器,包括: 第一硬體線程和第二硬體線程; 飛地頁面高速緩存,用於將共享頁面地址的安全數據存儲在高速緩存行中,所述共享 頁面地址被分配給所述第一和第二硬體線程可訪問的相應安全飛地; 解碼級,用於解碼第一指令以供所述處理器執行,所述第一指令將所述共享頁面地址 指定為操作數;以及 一個或多個執行單元,用於響應於經解碼的第一指令: 標記與所述共享頁面地址的飛地頁面高速緩存映射相對應的條目,以阻止為所述第一 或第二硬體線程中的任一個創建用於訪問與所述共享頁面地址相對應的安全數據的新轉 換。
2. 如權利要求1所述的處理器,其特徵在於,所述第一指令是EBLOCK指令,所述 EBLOCK指令指定所述共享頁面地址以防止在任何轉換後備緩衝器(TLB)中創建與所述共 享頁面地址相對應的新轉換。
3. 如權利要求1所述的處理器,其特徵在於,包括: 所述解碼級,用於解碼第二指令以供所述處理器執行,所述第二指令將所述安全飛地 指定為操作數;以及 一個或多個執行單元,用於響應於經解碼的第二指令: 記錄當前正在訪問與所述安全飛地相對應的飛地頁面高速緩存中的安全數據的硬體 線程。
4. 如權利要求3所述的處理器,其特徵在於,所述第二指令是ETRACK指令,所述 ETRACK指令指定所述安全飛地以記錄當前正在所述安全飛地中執行的硬體線程的數量。
5. 如權利要求4所述的處理器,其特徵在於,所述一個或多個執行單元響應於經解碼 的第二指令: 當所述硬體線程中的任一個退出所述安全飛地時,將所記錄的當前正在所述安全飛地 中執行的硬體線程的數量遞減。
6. 如權利要求4所述的處理器,其特徵在於,所述一個或多個執行單元響應於經解碼 的第一指令: 當所述硬體線程中的任一個退出所述安全飛地時,將所記錄的當前正在所述安全飛地 中執行的硬體線程的數量遞減。
7. -種處理器,包括: 第一硬體線程和第二硬體線程; 飛地頁面高速緩存,用於將共享頁面地址的安全數據存儲在高速緩存行中,所述共享 頁面地址被分配給所述第一和第二硬體線程可訪問的相應安全飛地; 解碼級,用於解碼第一指令以供所述處理器執行,所述第一指令將所述安全飛地指定 為操作數;以及 一個或多個執行單元,用於響應於經解碼的第一指令: 記錄當前正在訪問與所述安全飛地相對應的飛地頁面高速緩存中的安全數據的硬體 線程。
8. 如權利要求7所述的處理器,其特徵在於,所述第一指令是ETRACK指令,所述 ETRACK指令指定所述安全飛地以記錄當前正在所述安全飛地中執行的硬體線程的數量。
9. 如權利要求8所述的處理器,其特徵在於,所述一個或多個執行單元響應於經解碼 的第一指令: 當所述硬體線程中的任一個退出所述安全飛地時,將所記錄的當前正在所述安全飛地 中執行的硬體線程的數量遞減。
10. 如權利要求7所述的處理器,其特徵在於,包括: 所述解碼級,用於解碼第二指令以供所述處理器執行,所述第二指令將所述共享頁面 地址指定為操作數;以及 一個或多個執行單元,用於響應於經解碼的第二指令: 標記與所述共享頁面地址的飛地頁面高速緩存映射相對應的條目,以阻止為所述第一 或第二硬體線程中的任一個創建用於訪問與所述共享頁面地址相對應的安全數據的新轉 換。
11. 如權利要求10所述的處理器,其特徵在於,所述第二指令是EBLOCK指令,所述 EBLOCK指令指定所述共享頁面地址以防止在任何TLB中創建與所述共享頁面地址相對應 的新轉換。
12. 如權利要求11所述的處理器,其特徵在於,所述一個或多個執行單元響應於經解 碼的第二指令: 當所述硬體線程中的任一個退出所述安全飛地時,將所記錄的當前正在所述安全飛地 中執行的硬體線程的數量遞減。
13. 如權利要求7所述的處理器,其特徵在於,包括: 所述解碼級,用於解碼第二指令以供所述處理器執行,所述第二指令將所述共享頁面 地址指定為操作數;以及 一個或多個執行單元,用於響應於經解碼的第二指令: 如果所記錄的當前正在所述安全飛地中執行的硬體線程的數量達到零,則逐出並寫回 與所述共享頁面地址相對應的飛地頁面高速緩存中的安全數據。
14. 如權利要求13所述的處理器,其特徵在於,所述第二指令是飛地寫回(EWB)指令, 所述飛地寫回(EWB)指令指定所述共享頁面地址,以從飛地頁面高速緩存中逐出並寫回所 述共享頁面。
15. 如權利要求14所述的處理器,其特徵在於,如果所記錄的當前正在所述安全飛地 中執行的硬體線程的數量尚未達到零,則所述第二指令失敗。
16. 如權利要求14所述的處理器,其特徵在於,所述第二指令等待直到所記錄的當前 正在所述安全飛地中執行的硬體線程的數量達到零才執行。
17. -種方法,包括: 在多線程處理器中執行第一硬體線程和第二硬體線程; 將共享頁面地址的安全數據存儲在高速緩存行中,所述共享頁面地址被分配給所述第 一和第二硬體線程可訪問的相應安全飛地; 解碼第一指令以供所述處理器執行,所述第一指令將所述共享頁面地址指定為操作 數;以及 響應於解碼所述第一指令,標記與所述共享頁面地址的飛地頁面高速緩存映射相對應 的條目,以阻止為所述第一或第二硬體線程中的任一個創建用於訪問與所述共享頁面地址 相對應的安全數據的新轉換。
18. 如權利要求17所述的方法,其特徵在於,所述第一指令是EBLOCK指令,所述 EBLOCK指令指定所述共享頁面地址以防止在任何TLB中創建與所述共享頁面地址相對應 的新轉換。
19. 如權利要求17所述的方法,其特徵在於,包括: 響應於解碼所述第一指令,還記錄當前正在訪問與所述安全飛地相對應的飛地頁面高 速緩存中的安全數據的硬體線程。
20. 如權利要求19所述的方法,其特徵在於,響應於解碼所述第一指令,當所述硬體線 程中的任一個退出所述安全飛地時,將所記錄的當前正在所述安全飛地中執行的硬體線程 的數量遞減。
21. 如權利要求20所述的方法,其特徵在於,當所述硬體線程中的任一個硬體線程退 出所述安全飛地時,在與所述任一個硬體線程相對應的TLB中轉儲清除與所述共享頁面地 址相對應的轉換。
22. 如權利要求17所述的方法,其特徵在於,包括: 解碼第二指令以供所述處理器執行,所述第二指令將所述安全飛地指定為操作數;以 及 響應於解碼所述第二指令,記錄當前正在訪問與所述安全飛地相對應的飛地頁面高速 緩存中的安全數據的硬體線程。
23. 如權利要求22所述的方法,其特徵在於,響應於解碼所述第二指令,當所述硬體線 程中的任一個退出所述安全飛地時,將所記錄的當前正在所述安全飛地中執行的硬體線程 的數量遞減。
24. 如權利要求22所述的方法,其特徵在於,包括: 解碼第三指令以供所述處理器執行,所述第三指令將所述共享頁面地址指定為操作 數;以及 響應於解碼所述第三指令,如果所記錄的當前正在所述安全飛地中執行的硬體線程 的數量達到零,則逐出並寫回與所述共享頁面地址相對應的飛地頁面高速緩存中的安全數 據。
25. 如權利要求24所述的方法,其特徵在於,響應於解碼所述第三指令以供所述處理 器執行,在將所述安全數據寫回存儲器或非易失性存儲器之前加密與所述共享頁面地址相 對應的飛地頁面高速緩存中的安全數據。
26. 如權利要求24所述的方法,其特徵在於,如果所記錄的當前正在所述安全飛地中 執行的硬體線程的數量尚未達到零,則所述第三指令失敗。
27. 如權利要求24所述的方法,其特徵在於,所述第三指令等待直到所記錄的當前正 在所述安全飛地中執行的硬體線程的數量達到零才執行。
28. -種方法,包括: 在多線程處理器中執行第一硬體線程和第二硬體線程; 將共享頁面地址的安全數據存儲在高速緩存行中,所述共享頁面地址被分配給所述第 一和第二硬體線程可訪問的相應安全飛地; 解碼第一指令以供所述處理器執行,所述第一指令將所述安全飛地指定為操作數;以 及 響應於解碼所述第一指令,記錄當前正在訪問與所述安全飛地相對應的飛地頁面高速 緩存中的安全數據的硬體線程。
29. 如權利要求28所述的方法,其特徵在於,所述第一指令是ETRACK指令,所述 ETRACK指令指定所述安全飛地以記錄當前正在所述安全飛地中執行的硬體線程的數量。
30. 如權利要求28所述的方法,其特徵在於,響應於解碼所述第一指令,當所述硬體線 程中的任一個退出所述安全飛地時,將所記錄的當前正在所述安全飛地中執行的硬體線程 的數量遞減。
31. 如權利要求30所述的方法,其特徵在於,響應於解碼所述第一指令,防止在任何 TLB中創建與所述共享頁面地址相對應的新轉換。
32. 如權利要求30所述的方法,其特徵在於,包括: 解碼第二指令以供所述處理器執行,所述第二指令將所述共享頁面地址指定為操作 數;以及 響應於解碼所述第二指令,如果所記錄的當前正在所述安全飛地中執行的硬體線程 的數量達到零,則逐出並寫回與所述共享頁面地址相對應的飛地頁面高速緩存中的安全數 據。
33. 如權利要求32所述的方法,其特徵在於,響應於解碼所述第二指令以供所述處理 器執行,在將所述安全數據寫回存儲器或非易失性存儲器之前加密與所述共享頁面地址相 對應的飛地頁面高速緩存中的安全數據。
34. 如權利要求33所述的方法,其特徵在於,如果所記錄的當前正在所述安全飛地中 執行的硬體線程的數量尚未達到零,則所述第二指令失敗。
35. 一種處理系統,包括: 存儲器;以及 處理器,包括: 第一硬體線程和第二硬體線程, 飛地頁面高速緩存,用於將共享頁面地址的安全數據存儲在高速緩存行中,所述共享 頁面地址被分配給所述第一和第二硬體線程可訪問的相應安全飛地, 解碼級,用於解碼第一指令以供所述處理器執行,所述第一指令將所述共享頁面地址 指定為操作數,以及 一個或多個執行單元,用於響應於經解碼的第一指令,標記與所述共享頁面地址的飛 地頁面高速緩存映射相對應的條目,以阻止為所述第一或第二硬體線程中的任一個創建用 於訪問與所述共享頁面地址相對應的安全數據的新轉換; 所述解碼級,用於解碼第二指令以供所述處理器執行,所述第二指令將所述安全飛地 指定為操作數,以及 所述一個或多個執行單元,用於響應於經解碼的第二指令: 記錄當前正在訪問與所述安全飛地相對應的飛地頁面高速緩存中的安全數據的硬體 線程, 當所述硬體線程中的任一個退出所述安全飛地時,將所記錄的當前正在所述安全飛地 中執行的硬體線程的數量遞減。
36. 如權利要求35所述的處理系統,其特徵在於,當所述硬體線程中的任一個硬體線 程退出所述安全飛地時,在與所述任一個硬體線程相對應的TLB中轉儲清除與所述共享頁 面地址相對應的轉換。
37. 如權利要求36所述的處理系統,其特徵在於,所述處理器包括: 所述解碼級,用於解碼第三指令以供所述處理器執行,所述第三指令將所述共享頁面 地址指定為操作數;以及 所述一個或多個執行單元,用於響應於經解碼的第三指令,如果所記錄的當前正在所 述安全飛地中執行的硬體線程的數量達到零,則逐出並寫回與所述共享頁面地址相對應的 飛地頁面高速緩存中的安全數據。
38. 如權利要求37所述的處理系統,其特徵在於,如果所記錄的當前正在所述安全飛 地中執行的硬體線程的數量尚未達到零,則所述第三指令失敗。
【文檔編號】G06F12/08GK104484284SQ201410124302
【公開日】2015年4月1日 申請日期:2014年3月28日 優先權日:2013年3月31日
【發明者】C·V·羅扎斯, I·埃裡克山德洛維奇, I·安奈蒂, A·貝倫宗, M·A·戈德史密斯, B·E·亨特利, A·伊凡諾夫, S·P·詹森, R·M·勒斯列-赫德, F·X·麥克金, G·尼格, R·拉波波特, S·D·羅傑斯, U·R·薩瓦高恩卡, V·R·斯卡拉塔, V·尚伯格, W·H·史密斯, W·C·伍德 申請人:英特爾公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀