用于針對增強型安全檢查的頁走查擴展的裝置和方法
【專利說明】用于針對増強型安全檢查的頁走查擴展的裝置和方法
[0001] 背景 發(fā)明領域
[0002] 本發(fā)明總體上涉及計算機處理器的領域。更具體地,本發(fā)明涉及一種用于擴展頁 走查以便允許增強型安全檢查的裝置和方法。
[0003] 相關技術描述
[0004] 存儲器尋址方案經常使用被稱為分頁(paging)的技術來實現(xiàn)虛擬存儲器。當使 用分頁時,虛擬地址空間(即,或者由處理器的執(zhí)行單元或者由執(zhí)行單元集合處理器的分 段單元生成的地址空間)被劃分為固定尺寸的被稱為頁的塊,每個塊可被映射到在系統(tǒng)上 可用的物理地址中的任何物理地址(即,與硬件存儲器地址相對應的地址)。在典型的計算 機系統(tǒng)中,存儲器管理單元根據(jù)分頁算法確定并維護用于使用一個或多個頁表的從虛擬到 物理地址的當前映射。
[0005] 在從處理器的執(zhí)行單元接收到虛擬地址(有時還被稱為線性地址(LA))時,典型 的存儲器管理單元初始地使用頁表將LA轉換為其相應的物理地址。由于頁表通常存儲在 主存儲器中,訪問頁表是非常耗時的。為了加快分頁轉換,某些計算機系統(tǒng)在轉換后備緩沖 器或TLB (通常位于處理器上的更快的存儲器)中存儲最近使用的轉換。在生成要求轉換的 LA時,存儲器管理單元在訪問頁表之前首先在TLB中搜索該轉換。如果該轉換存儲在TLB 中,認為TLB "命中(hit)"已經發(fā)生并且TLB提供該轉換。然而,如果該轉換未存儲在TLB 中,認為TLB "未命中(miss)"已經發(fā)生并且頁表走查器(walker)被調用來訪問頁表并提 供該轉換。
[0006] 附圖簡要描述
[0007] 可從以下詳細描述結合以下附圖獲得本發(fā)明的更好的理解,在附圖中:
[0008] 圖1A是框圖,示出根據(jù)本發(fā)明的各實施例的示例性有序流水線以及示例性寄存 器重命名的無序發(fā)布/執(zhí)行流水線兩者的框圖;
[0009] 圖1B是框圖,示出根據(jù)本發(fā)明的各實施例的要包括在處理器中的有序架構核的 示例性實施例和示例性的寄存器重命名的無序發(fā)布/執(zhí)行架構核;
[0010] 圖2是根據(jù)本發(fā)明的各實施例的具有集成存儲器控制器和圖形器件的單核處理 器和多核處理器的框圖;
[0011] 圖3示出根據(jù)本發(fā)明的一個實施例的系統(tǒng)的框圖;
[0012] 圖4示出根據(jù)本發(fā)明的一個實施例的第二系統(tǒng)的框圖;
[0013] 圖5示出根據(jù)本發(fā)明的一個實施例的第三系統(tǒng)的框圖;
[0014] 圖6示出根據(jù)本發(fā)明的實施例的片上系統(tǒng)(SoC)的框圖;
[0015] 圖7示出框圖,該框圖根據(jù)本發(fā)明的各實施例的對比使用軟件指令變換器將源指 令集中的二進制指令變換成目標指令集中的二進制指令;
[0016] 圖8是框圖,示出根據(jù)本發(fā)明的各實施例的通用向量友好指令格式及其指令模 板;
[0017] 圖9根據(jù)本發(fā)明的各實施例的示例性特定向量友好指令格式的框圖;以及
[0018] 圖10是根據(jù)本發(fā)明的一個實施例的寄存器架構的框圖。
[0019] 詳細描述
[0020] 在以下描述中,為了解釋的目的,列出了許多特定細節(jié)以便提供以下描述的本發(fā) 明的各實施例的透徹理解。然而,本領域普通技術人員將認識到本發(fā)明的各實施例可在沒 有這些特定細節(jié)中的一些的情況下實踐。在其他情況下,以框圖的形式示出公知的結構和 設備,以便避免混淆本發(fā)明的各實施例的基礎原理。
[0021] 示例性處理器架構和數(shù)據(jù)類型
[0022] 圖1A是示出根據(jù)本發(fā)明的各實施例的示例性有序流水線和示例性的寄存器重命 名的無序發(fā)布/執(zhí)行流水線的框圖。圖1B是示出根據(jù)本發(fā)明的各實施例的要包括在處理 器中的有序架構核的示例性實施例和示例性的寄存器重命名的無序發(fā)布/執(zhí)行架構核的 框圖。圖1A-B中的實線框示出了有序流水線和有序核,而可選增加的虛線框示出了寄存器 重命名的、無序發(fā)布/執(zhí)行流水線和核。給定有序方面是無序方面的子集的情況下,將描述 無序方面。
[0023] 在圖1A中,處理器流水線100包括取出級102、長度解碼級104、解碼級106、分配 級108、重命名級110、調度(也稱為分派或發(fā)布)級112、寄存器讀取/存儲器讀取級114、 執(zhí)行級116、寫回/存儲器寫入級118、異常處理級122和提交級124。
[0024] 圖1B示出了包括耦合到執(zhí)行引擎單元150的前端單元130的處理器核190,且 執(zhí)行引擎單元和前端單元兩者都耦合到存儲器單元170。核190可以是精簡指令集計算 (RISC)核、復雜指令集計算(CISC)核、超長指令字(VLIW)核或混合或替代核類型。作為又 一選項,核190可以是專用核,諸如例如網絡或通信核、壓縮引擎、協(xié)處理器核、通用計算圖 形處理器單元(GPGPU)核、或圖形核等等。
[0025] 前端單元130包括親合到指令高速緩存單元134的分支預測單元132,該指令高速 緩存單元134耦合到指令轉換后備緩沖器(TLB) 136,該指令轉換后備緩沖器136耦合到指 令取出單元138,指令取出單元138耦合到解碼單元140。解碼單元140 (或解碼器)可解 碼指令,并生成從原始指令解碼出的、或以其他方式反映原始指令的、或從原始指令導出的 一個或多個微操作、微代碼進入點、微指令、其他指令、或其他控制信號作為輸出。解碼單元 140可使用各種不同的機制來實現(xiàn)。合適的機制的示例包括但不限于查找表、硬件實現(xiàn)、可 編程邏輯陣列(PLA)、微代碼只讀存儲器(ROM)等。一個實施例中,核190包括(例如,在解 碼單元140中或以其它方式在前端單元130內的)用于存儲某些宏指令的微代碼的微代碼 ROM或其他介質。解碼單元140耦合到執(zhí)行引擎單元150中的重命名/分配單元152。
[0026] 執(zhí)行引擎單元150包括重命名/分配器單元152,該重命名/分配器單元152耦 合至引退單元154和一個或多個調度器單元156的集合。調度器單元156表示任何數(shù)目的 不同調度器,包括預留站、中央指令窗等。這些調度器單元156耦合到物理寄存器組單元 158。每個物理寄存器組單元158表示一個或多個物理寄存器組,其中不同的物理寄存器 組存儲一種或多種不同的數(shù)據(jù)類型,諸如標量整數(shù)、標量浮點、緊湊整數(shù)、緊湊浮點、向量整 數(shù)、向量浮點、狀態(tài)(例如,作為要執(zhí)行的下一指令的地址的指令指針)等。在一個實施例 中,物理寄存器組單元158包括向量寄存器單元、寫掩碼寄存器單元和標量寄存器單元。這 些寄存器單元可以提供架構向量寄存器、向量掩碼寄存器、和通用寄存器。物理寄存器組單 元158與引退單元154重疊以示出可以用來實現(xiàn)寄存器重命名和無序執(zhí)行的各種方式(例 如,使用重新排序緩沖器和引退寄存器組;使用將來的文件、歷史緩沖器和引退寄存器組; 使用寄存器映射和寄存器池等等)。引退單元154和物理寄存器組單元158耦合到執(zhí)行群 集160。執(zhí)行群集160包括一個或多個執(zhí)行單元162的集合和一個或多個存儲器訪問單元 164的集合。執(zhí)行單元162可以對各種類型的數(shù)據(jù)(例如,標量浮點、緊湊整數(shù)、緊湊浮點、向 量整型、向量浮點)執(zhí)行各種操作(例如,移位、加法、減法、乘法)。盡管一些實施例可以包 括專用于特定功能或功能集合的多個執(zhí)行單元,但其他實施例可包括全部執(zhí)行所有功能的 僅一個執(zhí)行單元或多個執(zhí)行單元。調度器單元156、物理寄存器組單元158和執(zhí)行群集160 被示為可能有多個,因為某些實施例為某些類型的數(shù)據(jù)/操作創(chuàng)建分開的流水線(例如,標 量整型流水線、標量浮點/緊湊整型/緊湊浮點/向量整型/向量浮點流水線,和/或各自 具有其自己的調度器單元、物理寄存器組單元和/或執(zhí)行群集的存儲器訪問流水線一一以 及在分開的存儲器訪問流水線的情況下,實現(xiàn)其中僅該流水線的執(zhí)行群集具有存儲器訪問 單元164的某些實施例)。還應當理解,在使用分開的流水線的情況下,這些流水線中的一 個或多個可以為無序發(fā)布/執(zhí)行,并且其余流水線可以為有序發(fā)布/執(zhí)行。
[0027] 存儲器訪問單元164的集合親合到存儲器單元170,該存儲器單元170包括親合到 數(shù)據(jù)高速緩存單元174的數(shù)據(jù)TLB單元172,其中數(shù)據(jù)高速緩存單元174耦