TWI514144B - 積聚分頁錯失之信號傳遞與處置技術 - Google Patents
積聚分頁錯失之信號傳遞與處置技術 Download PDFInfo
- Publication number
- TWI514144B TWI514144B TW101149827A TW101149827A TWI514144B TW I514144 B TWI514144 B TW I514144B TW 101149827 A TW101149827 A TW 101149827A TW 101149827 A TW101149827 A TW 101149827A TW I514144 B TWI514144 B TW I514144B
- Authority
- TW
- Taiwan
- Prior art keywords
- page
- miss
- processor
- missed
- memory
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0766—Error or fault reporting or storing
- G06F11/0784—Routing of error reports, e.g. with a specific transmission path or data flow
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30036—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30036—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
- G06F9/30038—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations using a mask
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
- G06F9/30043—LOAD or STORE instructions; Clear instruction
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Quality & Reliability (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Storage Device Security (AREA)
Description
實施例係關於電腦架構。詳言之,實施例係關於電腦架構中之頁面錯失。
處理器通常執行存取記憶體(例如,自記憶體讀取及/或寫入至記憶體)之指令。舉例來說,指令可具有提供記憶體位置之位址之記憶體運算元。通常使用指令指示虛擬或邏輯記憶體位址之虛擬記憶體管理方案,虛擬或邏輯記憶體位址經轉譯成用以存取主記憶體中之位置的實體位址。通常將分頁用作記憶體管理方案。分頁將記憶體組織成頁面。頁面可表示記憶體之作為個別實體處置的固定或可變大小之區塊或區段。因此,指令對記憶體運算元之存取可表示對頁面之存取。分頁之優勢在於,其允許資料儲存於副儲存器(例如,硬碟)中,且當需要時擷取至主記憶體內。
當指令試圖存取正自主記憶體丟失之頁面時,可發生頁面錯失。舉例來說,指令可指示不能映射至與該頁
面相關聯之實體位址的虛擬位址。當由指令試圖之存取被考慮為不准許的時,亦可發生頁面錯失。舉例來說,當指令試圖寫入至僅經讀取之頁面時,此情形可發生。頁面錯失可有效地表示由硬體(例如,處理器及/或記憶體管理單元(MMU))引起或信號傳遞至軟體(例如,作業系統及/或頁面錯失處理常式)之錯失、中斷、異常或設陷。回應於頁面錯失,軟體(例如,頁面錯失處理常式)可試圖在自頁面錯失返回至處理器前處置頁面錯失。此等頁面錯失傾向於花費大量時間來解決,傾向於降低效能,且通常不合需要。
一些指令具有多個記憶體運算元,且試圖存取多個記憶體位置。作為一實例,2011年6月出版之Intel® Advanced Vector Extensions Programming Reference(文件參考編號319433-011)描述若干VGATHER指令(例如,VGATHERDPD、VGATHERQPD、VGATHERDPS、VGATHERQPS、VPGATHERDD、VPGATHERQD、VPGATHERDQ及VPGATHERQQ)。VGATHER指令用以使用自索引向量得出之記憶體位址搜集或載入來自記憶體之多個值。以實例說明,VPGATHERDD/VPGATHERQD能夠搜集高達4個或8個來自記憶體之值。具有兩個或兩個以上記憶體運算元且試圖存取兩個或兩個以上記憶體位置的其他指令在此項技術中係已知的。
圖1為說明可回應於指定記憶體104中之多個對應的頁面103之多個記憶體位址102之VGATHER指令101執行的一實例搜集操作100之方塊圖。VGATHER操作使用由
VGATHER指令指定之八個對應的記憶體位址搜集或載入來自八個頁面之八個值,且將其儲存於結果緊縮資料104中。舉例來說,第一記憶體位址0 102-0對應於第一頁面0 103-0,第二記憶體位址1 102-1對應於第二頁面1 103-1等等。因此,VGATHER指令潛在地試圖同時存取高達八個不同頁面。舉例來說,當轉置大的矩陣或以其他方式存取稀疏記憶體位置時,可使用此VGATHER指令/操作。
當由VGATHER指令指示的頁面中之兩個或兩個以上或更糟的全部八個頁面正自記憶體丟失時及/或當對頁面之存取為不准許的時,可出現顯著的問題。詳言之,VGATHER指令之執行可涉及兩個或兩個以上或更糟的潛在八個依序頁面錯失。用於VGATHER之當前頁面錯失機制係依序的,按頁面錯失之右至左位址排序。舉例來說,若在VGATHER指令之執行期間,對應於記憶體位址0、記憶體位址2及記憶體位址7之頁面不存在於實體記憶體中,則對於記憶體位址0,可引起第一頁面錯失。在已解決了第一頁面錯失後,可重新開始VGATHER指令之執行,且對於記憶體位址2,可引起第二頁面錯失。在已解決了第二頁面錯失後,可重新開始VGATHER指令之執行,且對於記憶體位址7,可引起第三頁面錯失。在一些情況下,對於此VGATHER指令,可引起高達八個依序頁面錯失。類似地,各種其他指令可指定可潛在地導致引起兩個或兩個以上依序頁面錯失之兩個或兩個以上記憶體位址。
此等頁面錯失之依序解決可傾向於花費大量時
間來解決,傾向於降低效能,且通常不合需要。
依據本發明之一實施例,係特地提出一種處理器,其包含:一指令管線,其用以處理指示多個記憶體位址之一多記憶體位址指令;以及多頁面錯失積聚邏輯,其與該指令管線耦接,該多頁面錯失積聚邏輯用以積聚針對多個頁面錯失之頁面錯失資訊,該等多個頁面錯失各與該指令之該多個記憶體位址中之一者相關聯,該多頁面錯失積聚邏輯將該積聚頁面錯失資訊提供至一頁面錯失通信介面。
100‧‧‧實例搜集操作
101‧‧‧VGATHER指令
102-0‧‧‧第一記憶體位址0
102-1‧‧‧第二記憶體位址1
103-0‧‧‧第一頁面0
103-1‧‧‧第二頁面1
104‧‧‧記憶體/結果緊縮資料
210、1200、1400‧‧‧系統
211、1100、1210、1215‧‧‧處理器
212‧‧‧多記憶體位址指令
213-1‧‧‧第一記憶體位址
213-N‧‧‧第N個記憶體位址
214‧‧‧習知指令管線
216‧‧‧記憶體管理子系統
220‧‧‧多頁面錯失積聚邏輯
221‧‧‧處理器狀態
222‧‧‧實體記憶體位址
223‧‧‧單一多-頁頁面錯失
224‧‧‧多-頁頁面錯失之單一返回
225‧‧‧頁面錯失通信介面
226、526、626、826‧‧‧積聚頁面錯失資訊
227、527、627‧‧‧處理器狀態資訊
228‧‧‧頁面
229、829‧‧‧作業系統模組
230‧‧‧積聚頁面錯失處理常式模組
231‧‧‧頁面
232‧‧‧副記憶體
233‧‧‧主記憶體
340‧‧‧用於產生多-頁頁面錯失之處理器中的方法
341-344、446-450‧‧‧區塊
445‧‧‧用於解決多-頁頁面錯失之頁面錯失處理常式模組中的方法
525‧‧‧頁面錯失通信介面
551‧‧‧錯失虛擬記憶體位址或頁面
551-1‧‧‧第一錯失虛擬記憶體位址或頁面
551-N‧‧‧第N個錯失虛擬記憶體位址或頁面
552‧‧‧積聚錯誤碼資訊
553、554-1、554-N‧‧‧資訊
555‧‧‧狀態暫存器及/或旗標
556‧‧‧指令指標
625‧‧‧頁面錯失處理常式模組堆疊
651‧‧‧虛擬記憶體位址或頁面
651-1‧‧‧第一虛擬記憶體位址或頁面
651-N‧‧‧第N個虛擬記憶體位址
652‧‧‧錯失頁面之積聚錯誤碼資訊
657‧‧‧堆疊段暫存器
658‧‧‧堆疊指標暫存器
659‧‧‧狀態暫存器
660‧‧‧碼段暫存器
661‧‧‧指令指標暫存器
662‧‧‧頁數
663‧‧‧哪些頁面為錯失頁面之指示
816‧‧‧記憶體管理子系統
820‧‧‧多頁面錯失積聚邏輯
825‧‧‧頁面錯失通信介面
865‧‧‧圖形處理單元(GPU)
866‧‧‧紋理取樣器
900‧‧‧管線
902‧‧‧提取級
904‧‧‧長度解碼級
906‧‧‧解碼級
908‧‧‧分配級
910‧‧‧重新命名級
912‧‧‧排程級
914‧‧‧暫存器讀取/記憶體讀取級
916‧‧‧執行級
918‧‧‧寫回/記憶體寫入級
922‧‧‧異常處置級
924‧‧‧提交級
930‧‧‧前端單元
932‧‧‧分支預測單元
934‧‧‧指令快取單元
936‧‧‧指令轉譯後援緩衝器(TLB)
938‧‧‧指令提取單元
940‧‧‧解碼單元
950‧‧‧執行引擎單元
952‧‧‧重新命名/分配器單元
954‧‧‧引退單元
956‧‧‧排程器單元
958‧‧‧實體暫存器檔案單元
960‧‧‧執行叢集
962‧‧‧執行單元
964‧‧‧記憶體存取單元
970‧‧‧記憶體單元
972‧‧‧資料TLB單元
974‧‧‧資料快取單元
976‧‧‧第2層級(L2)快取單元
990、1102A、1102N‧‧‧核心
1000‧‧‧指令解碼器
1002‧‧‧晶粒上互連網路
1004‧‧‧第2層級(L2)快取記憶體
1006‧‧‧第1層級(L1)快取記憶體
1006A‧‧‧L1資料快取記憶體
1008‧‧‧純量單元
1010‧‧‧向量單元
1012‧‧‧純量暫存器
1014‧‧‧向量暫存器
1020‧‧‧攪和單元
1022A、1022B‧‧‧數值轉換單元
1024‧‧‧複製單元
1026‧‧‧寫入罩幕暫存器
1028‧‧‧16寬向量ALU
1106‧‧‧共用快取單元
1108‧‧‧專用邏輯
1110‧‧‧系統代理
1112‧‧‧基於環狀之互連單元
1114‧‧‧整合式記憶體控制器單元
1116‧‧‧匯流排控制器單元
1220‧‧‧控制器集線器
1240、1332、1334‧‧‧記憶體
1245、1338、1520‧‧‧共處理器
1250‧‧‧輸入/輸出集線器(IOH)
1260‧‧‧輸入/輸出(I/O)器件
1290‧‧‧圖形記憶體控制器集線器(GMCH)
1295‧‧‧點對點介面或類似連接件
1300‧‧‧多處理器系統
1314、1414‧‧‧I/O器件
1315‧‧‧額外處理器
1316‧‧‧第一匯流排
1318‧‧‧匯流排橋接器
1320‧‧‧第二匯流排
1322‧‧‧鍵盤及/或滑鼠
1324‧‧‧音訊I/O
1327‧‧‧通信器件
1328‧‧‧儲存單元
1330‧‧‧指令/程式碼及資料
1339‧‧‧高效能介面
1350‧‧‧點對點互連件
1352、1354、1378‧‧‧點對點(P-P)介面
1370‧‧‧第一處理器
1372、1382‧‧‧整合式記憶體控制器(IMC)單元
1376‧‧‧點對點介面電路/點對點(P-P)介面
1380‧‧‧第二處理器
1386、1394、1398‧‧‧點對點介面電路
1388‧‧‧P-P介面電路
1390‧‧‧晶片集
1396‧‧‧介面
1415‧‧‧舊式I/O器件
1500‧‧‧SoC
1502‧‧‧互連單元
1510‧‧‧應用程式處理器
1530‧‧‧靜態隨機存取記憶體(SRAM)單元
1532‧‧‧直接記憶體存取(DMA)單元
1540‧‧‧顯示單元
1602‧‧‧高階語言
1604‧‧‧x86編譯器
1606‧‧‧x86二進位程式碼
1608‧‧‧替代指令集編譯器
1610‧‧‧替代指令集二進位程式碼
1612‧‧‧指令轉換器
1614‧‧‧不具有至少一x86指令集核心之處理器
1616‧‧‧具有至少一x86指令集核心之處理器
可藉由參照用以說明實施例之以下描述及隨附圖式來最佳地理解本發明。在該等圖式中:圖1為說明可回應於指定記憶體中之多個對應的頁面之多個記憶體位址之VGATHER指令執行的一實例搜集操作之方塊圖。
圖2為可實施本發明之實施例的系統之一實施例之方塊圖。
圖3為在用於產生多-頁頁面錯失之處理器中的方法之一實例實施例之方塊流程圖。
圖4為在用於解決多-頁頁面錯失之頁面錯失處理常式模組中的方法之一實例實施例之方塊流程圖。
圖5為頁面錯失通信介面之一實施例之方塊圖。
圖6為具有積聚頁面錯失資訊及處理器狀態資訊的頁
面錯失處理常式模組之一特定實例實施例之方塊圖。
圖7為用於多個錯失頁面的合適的積聚錯誤碼之一特定實例實施例之方塊圖。
圖8為具有一紋理取樣器及包括一多頁面錯失積聚邏輯的一記憶體管理子系統之一圖形處理單元(GPU)之方塊圖。
圖9A為說明根據本發明之實施例的一例示性有序管線及一例示性暫存器重新命名之無序發出/執行管線兩者之方塊圖。
圖9B為說明根據本發明之實施例的待包括於處理器中之有序架構核心之一例示性實施例及一例示性暫存器重新命名之無序發出/執行架構核心兩者之方塊圖。
圖10A至圖10B說明一更特定之例示性有序核心架構之方塊圖,該核心將為晶片中的若干邏輯區塊(包括相同類型及/或不同類型之其他核心)中之一者。
圖11為根據本發明之實施例的可具有一個以上核心、可具有一整合式記憶體控制器且可具有整合式圖形之處理器1100之方塊圖。
圖12展示根據本發明之一實施例的系統1200之方塊圖。
圖13展示根據本發明之一實施例的第一更特定例示性系統1300之方塊圖。
圖14展示根據本發明之一實施例的第二更特定例示性系統1400之方塊圖。
圖15展示根據本發明之一實施例的SoC 1500之方塊圖。
圖16展示對比用以將源指令集中之二進位指令轉換至目標指令集中之二進位指令的軟體指令轉換器之使用之方塊圖。
在以下描述中,闡明眾多特定細節(例如,特定處理器組態、操作之序列、介面、錯誤碼等)。然而,可在無此等特定細節之情況下實踐實施例。在其他情況下,尚未詳細展示熟知電路、結構及技術以避免使對描述之理解難懂。
圖2為可實施本發明之實施例的系統210(例如,電腦系統或具有一或多個處理器及記憶體之其他電子系統)之一實施例之方塊圖。電腦系統包括處理器211、主記憶體233及副記憶體232。處理器可為各種複雜指令集計算(CISC)處理器、各種精簡指令集計算(RISC)處理器、各種極長指令字集(VLIW)處理器、其各種混合或完全其他類型之處理器中的任一者。在一些實施例中,處理器可為通用處理器(例如,在桌上型、膝上型及類似電腦中使用的類型之通用微處理器)。或者,處理器可為專用處理器。合適的專用處理器之實例包括(但不限於)圖形處理器、網路處理器、通信處理器、密碼編譯處理器、共處理器、嵌式處理器、數位信號處理器(DSP)(僅舉幾個實例)。
處理器包括習知指令管線214。可將指令提供至指令管線供執行。在一些實施例中,可將多記憶體位址指令212提供至指令管線供執行。該多記憶體位址指令具有多個記憶體位址213。記憶體位址可表示虛擬或邏輯記憶體位址(例如,線性位址)。如所示,指令可具有第一記憶體位址213-1至第N個記憶體位址213-N,其中N至少為二。合適的多記憶體位址指令之實例包括(但不限於)指示多個記憶體位址之搜集指令、指示多個記憶體位置之散佈指令及指示多個記憶體位址(其可各潛在地對應於不同記憶體頁面)之其他記憶體存取指令。
在指令管線內,努力將多記憶體位址指令之虛擬或邏輯記憶體位址轉譯成對應的實體位址。可將記憶體位址提供至處理器之記憶體管理子系統216。藉由相對於積聚之頁面錯失的少數異常(其將在下文進一步論述),記憶體管理子系統可實質上為習知的,且可執行實質上習知操作以試圖將虛擬記憶體位址轉譯成對應的實體位址。
此項技術中已知不同記憶體管理子系統。在一些實施例中,記憶體管理子系統可包括記憶體管理單元(MMU)及轉譯後援緩衝器(TLB)。MMU可表示用以幫助試圖將由指令指示之虛擬記憶體位址轉譯成實體記憶體位址之硬體組件。MMU可檢查TLB以看虛擬記憶體位址至實體記憶體位址轉譯在TLB中是否可用。若轉譯可用(亦即,存在TLB命中),則實體記憶體位址222可經擷取且用以存取主記憶體233中之對應的頁面228。或者,若轉譯不可用(亦即,存
在TLB丟失),則MMU可進一步試圖藉由執行頁面查核行程來轉譯虛擬記憶體位址。在頁面查核行程期間,MMU可判定與虛擬記憶體位址相關聯之頁面是否存在於記憶體中,且可判定與頁面相關聯之准許是否允許試圖之存取。若頁面正丟失,或若准許不允許試圖之存取,則習知地,將引起頁面錯失。
在本發明之實施例中,記憶體管理子系統216包括可操作以積聚多個頁面錯失之多頁面錯失積聚邏輯220。頁面錯失可表示次要頁面錯失、軟頁面錯失、主要頁面錯失、硬頁面錯失、無效頁面錯失或其組合。多頁面錯失積聚邏輯可操作以儲存用於多個頁面錯失之積聚頁面錯失資訊226或將其提供至頁面錯失通信介面225。在一些實施例中,多頁面錯失積聚邏輯可操作以積聚多記憶體位址指令212之所有記憶體位址的所有頁面錯失,但此並非必需的。在其他實施例中,多頁面錯失積聚邏輯可操作以積聚多記憶體位址指令之記憶體位址中的兩者或兩者以上之一子集的兩個或兩個以上頁面錯失之一子集。雖然此可傾向於犧牲一些效能(如與積聚所有頁面錯失之情況相比較),但積聚兩個或兩個以上頁面錯失可具有比不積聚頁面錯失之情況好的效能,且可適合於一些實施。視實施而定,頁面錯失積聚邏輯可依序(例如,自第一記憶體位址朝向指令之最後一個記憶體位址)或並行地工作。一旦偵測到第一頁面錯失,則積聚邏輯可判定由錯失指令指示之多個頁面,且將多個頁面作為引起的異常之部分提供。多頁面錯失積聚
邏輯可操作以引起或發出對應於多個積聚之頁面錯失之單一多-頁頁面錯失223。
該多頁面錯失積聚邏輯亦可操作以儲存關於處理器狀態221之處理器狀態資訊227或將其提供至頁面錯失通信介面。處理器狀態可表示處理器之當前執行狀態。處理器狀態之實例包括(但不限於)處理器狀態、處理器旗標、指令指標及其組合。
該頁面錯失通信介面225為由處理器及作業系統模組229及/或積聚頁面錯失處理常式模組230用以交換關於積聚頁面錯失之資訊的介面。在一些實施例中,頁面錯失通信介面可表示可由處理器及作業系統兩者存取之一或多個預定達成一致之架構上可見的儲存位置。不同類型之頁面錯失通信介面係合適的。合適的頁面錯失通信介面之實例包括(但不限於)一或多個堆疊(例如,頁面錯失處理常式模組堆疊)、一或多個暫存器(例如,一或多個控制暫存器或向量控制暫存器)、分配之記憶體位置、記憶體映射之輸入/輸出記憶體位置及其組合。本發明之範疇不限於任一已知類型的頁面錯失通信介面,只要處理器及作業系統及/或頁面錯失處理常式模組意識到介面且能夠按需要存取該介面以傳送適當資訊。
該多頁面錯失積聚邏輯220可以硬體(例如,積體電路)、韌體、微碼、軟體或其組合實施。在一些實施例中,多頁面錯失積聚邏輯可以處理器之微碼、嵌式韌體或嵌式軟體實施。在一些實施例中,多頁面錯失積聚邏輯包括至
少某一硬體(例如,積體電路、電晶體、邏輯閘等)。在一些實施例中,記憶體管理子系統包括MMU,且多頁面錯失積聚邏輯包括於MMU中。在其他實施例中,記憶體管理子系統包括MMU,且多頁面錯失積聚邏輯與MMU分開,但與MMU耦接或以其他方式通信。
再次參看圖2,作業系統模組229儲存於主記憶體中。說明之作業系統模組包括積聚頁面錯失處理常式模組230,其可操作以回應於由處理器引起或信號傳遞之單一多-頁頁面錯失223處置多個頁面錯失。在各種實施例中,積聚頁面錯失處理常式模組可表示一或多個常式、次常式、模組、子模組、軟體部分或可操作以處置自處理器之單一存取中的多個頁面錯失之作業系統之一或多個其他部分。頁面錯失可表示錯失、中斷、異常或設陷。
在處置多個頁面錯失過程中,積聚頁面錯失處理常式模組230可自頁面錯失通信資訊讀取或以其他方式存取積聚之頁面錯失資訊226。如以下將進一步解釋,積聚之頁面錯失資訊可包括關於多個頁面錯失之資訊。以實例說明,積聚之頁面錯失資訊可包括用於錯失頁面之多個記憶體位址、描述頁面錯失中之每一者之性質的資訊(例如,特定針對或關於頁面錯失中之每一者的錯誤碼資訊)等。積聚頁面錯失處理常式模組可潛在地引入來自副記憶體232之多個丟失之頁面231,且將其與其他頁面228一起儲存於主記憶體中。副記憶體可包括一或多個硬碟或其他大容量儲存器件。在一些情況下,積聚頁面錯失處理常式模組可潛
在地改變頁面之屬性。
頁面錯失處理常式模組及/或作業系統可回應於自處理器之單一存取處置、服務或解決所有錯失之頁面(例如,單一多-頁頁面錯失)。亦即,多個頁面錯失可經一起或作為一批或一群組處理,而非各在自處理器引起分開的依序或連續頁面錯失後經依序或連續地處理。當已解決了多個頁面錯失時,可進行自作業系統及/或頁面錯失處理常式模組返回至處理器的自多-頁頁面錯失之單一返回224。舉例來說,作為處理器狀態資訊之部分傳遞的指令指標可用以將執行返回至多記憶體位址指令,多記憶體位址指令可接著繼續進行以在無或至少具有減少之招致頁面錯失之風險的情況下執行。有利地,藉由允許處理器將多個頁面錯失積聚在一起,且藉由允許作業系統將積聚之多個頁面錯失作為一批或一群組處置,與連續引起且處置一連串多個頁面錯失相關聯的缺點可避免,其可幫助顯著改良效能及執行速度。
為了避免使描述難懂,已展示及描述相對簡單的電腦系統及處理器。在其他實施例中,處理器可視情況包括其他熟知組件,諸如,指令提取單元、指令排程單元、分支預測單元、指令及資料快取記憶體、指令及資料轉譯後援緩衝器、預提取緩衝器、微指令佇列、微指令定序器、匯流排介面單元、第二或更高層級快取記憶體、引退單元、暫存器重新命令單元、包括於處理器中之其他組件及其各種組合。實施例可具有多個核心、邏輯處理器或執行引擎。
可操作以執行本文中揭示的指令之一實施例之執行單元可包括於核心、邏輯處理器或執行引擎中之至少一者、至少兩者、多數者或所有者。在處理器中真正存在組件之眾多不同組合及組態,且實施例不限於任一特定組合或組態。
圖3為在用於產生多-頁頁面錯失之處理器中的方法340之一實例實施例之方塊流程圖。在各種實施例中,該方法可由通用處理器或專用處理器(例如,圖形處理器)執行。在一些實施例中,方法340可由圖2之處理器211執行。或者,方法340可由不同於處理器211之處理器執行。此外,處理器211可執行與方法340之操作及方法相同或不同的操作及方法之實施例。
方法包括在區塊341偵測多個頁面錯失。在一些實施例中,可使多個頁面錯失與單一多記憶體位址指令相關聯。
該方法包括在區塊342將處理器狀態資訊儲存於頁面錯失通信介面中。以實例說明,處理器狀態資訊可包括處理器狀態、處理器旗標、指令指標、堆疊指標、堆疊段資訊、碼段資訊或其組合。一般而言,可儲存習知針對頁面錯失儲存的任一類型之處理器狀態資訊。在一些實施例中,頁面錯失通信介面可包括頁面錯失處理常式堆疊、控制暫存器、一或多個分配之記憶體位置、記憶體映射之輸入/輸出或其組合。
該方法包括在區塊343將用於多個頁面錯失之積聚頁面錯失資訊儲存於頁面錯失通信介面中。在一些實施
例中,積聚頁面錯失資訊可包括用於多個對應的錯失頁面之多個記憶體位址。在一些實施例中,積聚頁面錯失資訊可包括用於多個錯失頁面之積聚錯誤碼資訊。在一些實施例中,積聚錯誤碼資訊可包括多個或所有錯失頁面共同之資訊(例如,關於影響指令之記憶體位址中之每一者的多記憶體位址指令之資訊)及特定針對錯失頁面中之個別者的資訊。
該方法包括在區塊344信號傳遞針對多個錯失頁面之單一多-頁頁面。在一些實施例中,當作業系統處置積聚頁面錯失時,可停止多記憶體位址指令之執行,且接著在多個頁面錯失已經分批處置(其中引起單一錯失至作業系統,且進行自作業系統之自錯失的單一相關聯之返回)後,多記憶體位址指令之執行可重新繼續。
此僅為合適的方法之一實施例。該方法已經按基本形式展示,但可視情況將操作添加至該方法及/或自該方法移除。此外,雖然已展示及/或描述一特定操作次序,但替代實施例可按不同次序執行某些操作,組合某些操作,重疊某些操作等。舉例來說,可在處理器狀態資訊前儲存積聚頁面錯失資訊。
圖4為在用於解決多-頁頁面錯失之頁面錯失處理常式模組中的方法445之一實例實施例之方塊流程圖。在各種實施例中,該方法可在電腦系統或其他電子器件中執行,包括藉由在通用或專用處理器上執行指令。頁面錯失處理常式模組可為具有解決多個積聚頁面錯失之特定邏輯
的一特定頁面錯失處理常式模組。
該方法包括在區塊446接收一多-頁頁面錯失。該多-頁頁面錯失可涉及多個頁面。在一些實施例中,此可包括接收由處理器或MMU引起或信號傳遞之頁面錯失。
該方法包括在區塊447自一頁面錯失通信介面存取處理器狀態資訊。處理器狀態資訊可包括先前提到的資訊類型。頁面錯失通信介面可如先前所描述(例如,堆疊、暫存器、記憶體位置或其組合)。
該方法包括在區塊448自頁面錯失通信介面存取用於多個頁面錯失之積聚頁面錯失資訊。在一些實施例中,積聚頁面錯失資訊可包括用於多個對應的錯失頁面之多個記憶體位址。在一些實施例中,積聚頁面錯失資訊可包括用於多個錯失頁面之積聚錯誤碼資訊。在一些實施例中,積聚錯誤碼資訊可包括多個或所有錯失頁面共同之資訊(例如,關於影響指令之記憶體位址中之每一者的多記憶體位址指令之資訊)及特定針對錯失頁面中之個別者的資訊。
該方法包括在區塊449解決多個頁面錯失。頁面錯失處理常式可識別與錯失相關聯之多個頁面位址。頁面錯失處理常式可接著判定對於多個頁面中之每一者的問題同與試圖之存取相關聯的准許屬性相關,或是歸因於頁面不存在。以實例說明,若問題同准許屬性相關(例如,存在准許衝突),則可解決准許屬性(例如,可分配新的頁面)。作為另一實例,若問題係歸因於頁面不存在(例如,頁面不
在主記憶體而在副記憶體中),則可擷取頁面(例如,頁面可自副記憶體存取且儲存於主記憶體中)。在一些情況下,可能需要自主記憶體換出一頁面以騰出空間。分頁結構及反映改變之其他更新可如習知所進行來執行。可針對與多-頁頁面錯失相關聯的多個或多批頁面中之每一者重複此操作。
該方法包括在區塊450,在已解決多個頁面錯失
後自多-頁頁面錯失之單一返回。在一些實施例中,此可包括在經由引起單一頁面錯失及自頁面錯失之單一返回已解決與多個記憶體位址相關聯的許多頁面錯失後,使用指令指標將執行返回至多記憶體位址指令。
此僅為合適的方法之一實施例。該方法已經按基
本形式展示,但可視情況將操作添加至該方法及/或自該方法移除。此外,雖然已展示及/或描述一特定操作次序,但替代實施例可按不同次序執行某些操作,組合某些操作,重疊某些操作等。舉例來說,可在處理器狀態資訊前存取積聚頁面錯失資訊。
圖5為頁面錯失通信介面525之一實施例之方塊
圖。頁面錯失通信介面表示由處理器及作業系統模組用以交換關於積聚頁面錯失之資訊的介面。在一些實施例中,頁面錯失通信介面可表示可由處理器及作業系統兩者存取之一或多個預定達成一致之架構上可見的儲存位置。合適的頁面錯失通信介面之實例包括(但不限於)一或多個堆疊(例如,頁面錯失處理常式模組堆疊)、一或多個暫存器(例
如,一或多個控制暫存器或向量控制暫存器)、分配之記憶體位置、記憶體映射之輸入/輸出記憶體位置及其組合。本發明之範疇不限於任一已知類型的頁面錯失通信介面,只要處理器及作業系統及/或頁面錯失處理常式模組意識到介面且能夠按需要存取該介面以傳送適當資訊。
將用於多個錯失頁面之積聚頁面錯失資訊526儲
存於介面中。積聚頁面錯失資訊包括多個錯失虛擬記憶體位址或頁面551。在說明中,多個錯失虛擬記憶體位址包括第一錯失虛擬記憶體位址或頁面551-1及第N個錯失虛擬記憶體位址或頁面551-N,其中N至少為二。在一些實施例中,僅錯失虛擬記憶體位址可經由介面提供及/或自處理器遞送至作業系統。或者,在其他實施例中,所有虛擬記憶體位址(例如,多記憶體位址指令之所有虛擬記憶體位址)可經由介面提供及/或自處理器遞送至作業系統,即使其不錯失。有利地,此可允許作業系統模組及/或頁面錯失處理常式模組確保指令需要之所有頁面可用且對其之存取為在返回至指令之執行前的值(例如,其具有適當准許屬性)。在再其他實施例中,所有虛擬記憶體位址可經由介面提供及/或自處理器遞送至作業系統,即使其不錯失,且可將錯失虛擬記憶體位址之一子集與非錯失虛擬記憶體位址區分開。可按各種不同方式(諸如,藉由設定或清除與錯失及非錯失虛擬記憶體位址中之一或多者相關聯的一位元或以其他方式標記錯失及非錯失虛擬記憶體位址中之一或多者)將錯失與非錯失虛擬記憶體位址相互區分開。
積聚頁面錯失資訊亦包括積聚錯誤碼資訊552。
在該說明中,積聚錯誤碼資訊包括所有錯失虛擬記憶體位址或頁面(在一些情況下,所有虛擬記憶體位址或頁面)共同之資訊553、特定或特別針對第一錯失虛擬記憶體位址或頁面之資訊554-1及特定或特別針對第N個錯失虛擬記憶體位址或頁面之資訊554-N。以實例說明,所有錯失虛擬記憶體位址共同之資訊可包括指定以下各者之資訊:造成錯失之存取為讀取(例如,在搜集指令之情況下)或是寫入(例如,在散佈指令之情況下)、錯失是否由指令提取造成、當處理器正在特殊權限(例如,監督員)模式或是非特殊權限(例如,使用者)模式下執行時引發造成錯失之存取等,該資訊可為與一給定多記憶體位址指令相關聯的所有虛擬記憶體位址所共同具有。
相比之下,特定或特別針對一給定錯失虛擬記憶
體位址之資訊可包括指定以下各者之資訊:錯失是否由不存在之頁面造成、錯失是否由頁面級保護違反造成、錯失是否由保留之位元違反造成等,該資訊可皆特定針對一給定錯失虛擬記憶體位址。亦即,可每個錯失虛擬記憶體位址指定資訊中之一些。在此實施例中,所有錯失虛擬記憶體位址共同的資訊之一部分僅需要儲存一次,且僅特定或特別針對每一錯失虛擬記憶體位址之資訊需要針對每一錯失虛擬記憶體位址加以儲存。或者,在其他實施例中,可針對每一錯失虛擬記憶體位址儲存所有資訊,但此可佔據較多空間。
處理器狀態資訊527亦儲存於介面中。說明之處
理器狀態資訊包括狀態暫存器及/或旗標555及指令指標556。
圖6為具有積聚頁面錯失資訊626及處理器狀態
資訊627的頁面錯失處理常式模組堆疊625之一特定實例實施例之方塊圖。頁面錯失處理常式模組堆疊可表示主記憶體的分配之部分。該堆疊可表示後進先出(LIFO)線性資料結構或自被稱作堆疊之頂部的一端進行添加及刪除的資訊之線性清單。該堆疊可由特定命令或操作(諸如,推入及拿取)存取。推入操作可將一條新的資訊添加至堆疊之頂部。拿取操作可自堆疊之頂部移除項目。或者,可視情況使用除了堆疊之外的其他類型之資料結構。處理器可將說明之資訊推入至堆疊上,且作業系統模組或頁面錯失處理常式模組可自堆疊拿取說明之資訊。
堆疊包括處理器狀態資訊627。如所示,在說明
之實施例中,處理器狀態資訊可包括一堆疊段暫存器(例如,SS)657、一堆疊指標暫存器(例如,ESP)658、一狀態暫存器(例如,EFLAGS)659、一碼段暫存器(例如,CS)660及一指令指標暫存器(例如,EIP)661。此僅為可能的處理器狀態資訊之一實例實施例,且本發明之範疇不限於此特定處理器狀態資訊。在其他實施例中,此資訊中之一些可視情況省略,可視情況添加額外資訊,且此外,可視情況重新排列資訊之次序。
該堆疊亦包括積聚頁面錯失資訊626。如所示,
在說明之實施例中,積聚頁面錯失資訊包括用於多個錯失頁面之積聚錯誤碼資訊652、頁數662的指示(例如,頁面之總數或錯失頁面之總數)、包括第一虛擬記憶體位址或頁面651-1及第N個虛擬記憶體位址651-N或頁面(例如,指令之所有虛擬記憶體位址或僅錯失虛擬記憶體位址)的多個虛擬記憶體位址或頁面651及哪些頁面為錯失頁面之指示663。此僅為可能的積聚頁面錯失資訊之一實例實施例,且本發明之範疇不限於此特定積聚頁面錯失資訊。在其他實施例中,此資訊中之一些可視情況省略,可視情況添加額外資訊,且此外,可視情況重新排列資訊之次序。再另外,可組合此資訊中之一些。舉例來說,可視情況將哪些頁面錯失及/或頁面之數目的指示組合至積聚錯誤碼資訊內。在其他實施例中,代替指定頁面之數目,可替代地指定有錯失之區域的數目。
圖7為用於多個錯失頁面752的合適的積聚錯誤碼之一特定實例實施例之方塊圖。積聚錯誤碼包括M個位元。以實例說明,M可為32位元、64位元、128位元等。可表示用於高達N個頁面錯失之積聚錯誤碼資訊。在該說明中,P-N表示具有指示對於頁面N之錯失由不存在之頁面造成的值0或指示對於頁面N之錯失由頁面級保護違反造成的值1之每頁面位元。W/R表示具有指示造成錯失之存取為讀取(R)的值0或指示指示造成錯失之存取為寫入(W)的值1之單一位元。U/S表示具有指示當處理器正在監督員模式(S)下執行時引發造成錯失之存取的值0或指示當處理器正在
使用者模式(U)下執行時引發造成錯失之存取的值1之單一位元。RSVD-N表示具有指示對於頁面N之錯失不由保留之位元違反造成的值0或指示對於頁面N之錯失由在某一分頁結構項中設定至1之保留位元造成的值1之每頁面位元。I/D表示具有指示造成錯失之存取不由指令提取造成的值0或指示造成錯失之存取由指令提取造成的值1之單一位元。AG表示具有指示非積聚頁面錯失處置程序(例如,如中背景技術章節中描述之習知程序)將用以處置頁面錯失的值0或指示如本文中揭示之積聚頁面錯失處置程序將用以處置頁面錯失的值1之單一位元。此位元允許啟用或停用本文中揭示之積聚頁面錯失處置程序。展示在積聚錯誤碼內的位元之次序之一特定說明性實例,但此僅為說明性且並不必需的。在替代實施例中,此等位元可不同地排列。
圖8為具有一紋理取樣器866及包括多頁面錯失積聚邏輯820之一記憶體管理子系統816的圖形處理單元(GPU)865之方塊圖。紋理取樣器可自影像擷取樣本,處理樣本,且儲存處理之結果。自影像的紋理之取樣可招致多個頁面錯失。多頁面錯失積聚邏輯可積聚關於多個頁面錯失之資訊,且將積聚頁面錯失資訊826儲存於頁面錯失通信介面825中。多頁面錯失積聚邏輯可接著信號傳遞或引起單一多-頁頁面錯失至作業系統模組829。作業系統模組及/或其頁面錯失處理常式模組可解決多個頁面錯失,且一旦已解決多個頁面錯失,則造成自多-頁頁面錯失之單一返回。在說明之實施例中,記憶體管理子系統(例如,MMU及其他
組件)經展示位於GPU上(例如,具有GPU之一或多個核心的晶粒上),但在其他實施例中,記憶體管理子系統或其具有多頁錯失積聚邏輯之一部分可位置離開GPU(例如,作為獨立的組件或作為通用處理器之部分)。
處理器核心可以不同方式、針對不同目的及在不同處理器中實施。舉例來說,此等核心之實施可包括:1)意欲用於通用計算之通用有序核心;2)意欲用於通用計算之高效能通用無序核心;3)意欲主要用於圖形及/或科學(輸送量)計算之專用核心。不同處理器之實施可包括:1)包括意欲用於通用計算之一或多個通用有序核心及/或意欲用於通用計算之一或多個通用無序核心的CPU;及2)包括意欲主要用於圖形及/或科學(輸送量)之一或多個專用核心的共處理器。此等不同處理器導致不同電腦系統架構,其可包括:1)在與CPU分開的晶片上之共處理器;2)在與CPU相同之封裝中的分開的晶粒上之共處理器;3)在與CPU相同的晶粒上之共處理器(在該情況下,此共處理器有時被稱作專用邏輯,諸如,整合式圖形及/或科學(輸送量)邏輯,或被稱作專用核心);及4)可在同一晶粒上包括所描述之CPU(有時被稱作應用程式核心或應用程式處理器)、上述共處理器及額外功能性之系統單晶片。接下來描述例示性核心架構,接著為例示性處理器及電腦架構之描述。
圖9A為說明根據本發明之實施例的一例示性有
序管線及一例示性暫存器重新命名之無序發出/執行管線兩者之方塊圖。圖9B為說明根據本發明之實施例的待包括於處理器中之有序架構核心之一例示性實施例及一例示性暫存器重新命名之無序發出/執行架構核心兩者之方塊圖。圖9A至圖9B中之實線框說明有序管線及有序核心,而虛線框之可選添加說明暫存器重新命令之無序發出/執行管線及核心。假設有序態樣為無序態樣之一子集,將描述無序態樣。
在圖9A中,處理器管線900包括一提取級902、
一長度解碼級904、一解碼級906、一分配級908、一重新命名級910、一排程(亦被稱為調度或發出)級912、一暫存器讀取/記憶體讀取級914、一執行級916、一寫回/記憶體寫入級918、一異常處置級922及一提交級924。
圖9B展示處理器核心990,包括一前端單元
930,其耦接至一執行引擎單元950,且前端單元930及執行引擎單元950兩者皆耦接至一記憶體單元970。核心990可為精簡指令集計算(RISC)核心、複雜指令集計算(CISC)核心、極長指令字集(VLIW)核心或混合或替代核心類型。作為又一選項,核心990可為專用核心,諸如,網路或通信核心、壓縮引擎、共處理器核心、通用計算圖形處理單元(GPGPU)核心、圖形核心或其類似者。
前端單元930包括一分支預測單元932,其耦接至
指令快取單元934,指令快取單元934耦接至指令轉譯後援
緩衝器(TLB)936、TLB 936耦接至指令提取單元938、指令提取單元938耦接至解碼單元940。解碼單元940(或解碼器)可解碼指令,且產生自原始指令解碼或以其他方式反映原始指令或自原始指令得出之一或多個微操作、微碼入口點、微指令、其他指令或其他控制信號作為輸出。可使用各種不同機制來實施解碼單元940。合適的機制之實例包括(但不限於)查找表、硬體實施、可程式化邏輯陣列(PLA)、微碼唯讀記憶體(ROM)等。在一實施例中,核心990包括儲存用於某些巨集指令之微碼(例如,在解碼單元940中或另外在前端單元930內)的微碼ROM或其他媒體。解碼單元940耦接至執行引擎單元950中之重新命名/分配器單元952。
執行引擎單元950包括重新命名/分配器單元
952,其耦接至引退單元954及一或多個排程器單元956之一集合。排程器單元956表示任一數目個不同排程器,包括保留台、中央指令窗等。排程器單元956耦接至實體暫存器檔案單元958。實體暫存器檔案單元958中之每一者表示一或多個實體暫存器檔案,其中之不同者儲存一或多個不同資料類型,諸如,純量整數、純量浮點、緊縮整數、緊縮浮點、向量整數、向量浮點、狀態(例如,為待執行之下一個指令之位址的指令指標)等。在一實施例中,實體暫存器檔案單元958包含一向量暫存器單元、一寫入罩幕暫存器單元及一純量暫存器單元。此等暫存器單元可提供架構向量暫存器、向量罩幕暫存器及通用暫存器。實體暫存器檔案單元958由引退單元954重疊以說明可實施暫存器重新命名及
無序執行之各種方式(例如,使用重新排序緩衝器及引退暫存器檔案;使用未來檔案、歷史緩衝器及引退暫存器檔案;使用暫存器映像及暫存器集區;等)。引退單元954及實體暫存器檔案單元958耦接至執行叢集960。執行叢集960包括一或多個執行單元962之一集合及一或多個記憶體存取單元964之一集合。執行單元962可執行各種運算(例如,移位、加、減、乘)及對各種類型之資料(例如,純量浮點、緊縮整數、緊縮浮點、向量整數、向量浮點)。雖然一些實施例可包括特定功能或功能集合專用之許多執行單元,但其他實施例可包括僅一個執行單元或皆執行所有功能之多個執行單元。排程器單元956、實體暫存器檔案單元958及執行叢集960展示為可能為複數個,此係因為某些實施例創造用於某些類型之資料/操作的分開之管線(例如,純量整數管線、純量浮點/緊縮整數/緊縮浮點/向量整數/向量浮點管線及/或記憶體存取管線,其各具有其自身的排程器單元、實體暫存器檔案單元及/或執行叢集一一且在分開之記憶體存取管線之情況下,實施僅此管線之執行叢集具有記憶體存取單元964的某些實施例)。亦應理解,在使用分開之管線之情況下,此等管線中之一或多者可為無序發出/執行及其餘為有序。
該組記憶體存取單元964耦接至記憶體單元
970,其包括耦接至資料快取單元974之一資料TLB單元972,資料快取單元974耦接至第2層級(L2)快取單元976。在一例示性實施例中,記憶體存取單元964可包括一載入單
元、一儲存位址單元及一儲存資料單元,其中之每一者耦接至記憶體單元970中之資料TLB單元972。指令快取單元934進一步耦接至記憶體單元970中之第2層級(L2)快取單元976。L2快取單元976耦接至一或多個其他層級之快取記憶體且最終耦接至主記憶體。
以實例說明,例示性暫存器重新命名、無序發出
/執行核心架構可實施管線900,如下:1)指令提取938執行提取級902及長度解碼級904;2)解碼單元940執行解碼級906;3)重新命名/分配器單元952執行分配級908及重新命名級910;4)排程器單元956執行排程級912;5)實體暫存器檔案單元958及記憶體單元970執行暫存器讀取/記憶體讀取級914;執行叢集960執行執行級916;6)記憶體單元970及實體暫存器檔案單元958執行寫回/記憶體寫入級918;7)異常處置級922可涉及各種單元;及8)引退單元954及實體暫存器檔案單元958執行提交級924。
核心990可支援一或多個指令集(例如,x86指令
集(具有已隨著較新版本添加之一些延伸);MIPS Technologies of Sunnyvale,CA之MIPS指令集;ARM Holdings of Sunnyvale,CA之ARM指令集(具有可選額外延伸,諸如,NEON)),包括本文中描述之指令。在一實施例中,核心990包括支援緊縮資料指令集延伸(例如,AVX1、AVX2)的邏輯,藉此允許使用緊縮資料執行由許多多媒體應用程式使用之操作。
應理解,核心可支援多執行緒(執行兩組或兩組
以上並行的操作或執行緒),且可按包括時間分片多執行緒、同時多執行緒(其中單一實體核心為實體核心正同時多執行緒執行的執行緒中之每一者提供一邏輯核心)或其組合(例如,時間分片提取及解碼以及其後同時多執行緒,諸如,在Intel® Hyperthreading技術中)的各種各樣之方式進行此。
雖然在無序執行之情況下描述暫存器重新命
名,但應理解,可在有序架構中使用暫存器重新命名。雖然處理器之說明之實施例亦包括分開之指令及資料快取單元934/974及一共用之L2快取單元976,但替代實施例可具有用於指令及資料兩者之單一內部快取記憶體,諸如,第1層級(L1)內部快取記憶體或多層級之內部快取記憶體。在一些實施例中,該系統可包括內部快取記憶體與在核心及/或處理器外部之外部快取記憶體的組合。或者,所有快取記憶體可在核心及/或處理器外部。
圖10A至圖10B說明一更特定之例示性有序核心架構之方塊圖,該核心將為晶片中的若干邏輯區塊(包括相同類型及/或不同類型之其他核心)中之一者。該等邏輯區域經由高頻寬互連網路(例如,環狀網路)通信,視應用而定,該高頻寬互連網路具有一些固定功能邏輯、記憶體I/O介面及其他必要的I/O邏輯。
圖10A為根據本發明之實施例的單一處理器核
心連同其至晶粒上互連網路1002之連接及其第2層級(L2)快取記憶體1004之局部子集的方塊圖。在一實施例中,指
令解碼器1000支援具有緊縮資料指令集延伸的x86指令集。L1快取記憶體1006允許低潛時存取將記憶體快取至純量及向量單元內。雖然在一實施例中(為了簡化設計),純量單元1008及向量單元1010使用分開之暫存器集(分別,純量暫存器1012及向量暫存器1014),且將在其間轉移之資料寫入至記憶體,且接著自第1層級(L1)快取記憶體1006讀回,但本發明之替代實施例可使用不同方法(例如,使用單一暫存器集或包括允許資料在兩個暫存器檔案之間轉移而不寫回或讀回之通信路徑)。
L2快取記憶體1004之局部子集為被分成分開之局部子集(每一處理器核心一個局部子集)的全域L2快取記憶體之部分。每一處理器核心具有至L2快取記憶體1004之其自身的局部子集之直接存取路徑。由處理器核心讀取之資料儲存於其L2快取記憶體子集1004中,且可與其他處理器核心存取其自身的局部L2快取記憶體子集並行地快速存取。由處理器核心寫入之資料儲存於其自身的L2快取記憶體子集1004中,且若必要自其他子集清空。環狀網路確保針對共用之資料的一致性。環狀網路為雙向的,以允許諸如處理器核心、L2快取記憶體及其他邏輯區塊之代理在晶片內相互通信。每一環狀資料路徑為每個方向1012個位元寬。
圖10B為根據本發明之實施例的圖10A中之處理器核心之部分之放大圖。圖10B包括L1快取記憶體1004之L1資料快取記憶體1006A部分,以及關於向量單元1010及向量暫存器1014之較多細節。特定言之,向量單元1010為
16寬向量處理單元(VPU)(見16寬向量ALU 1028),其執行整數、單一精度浮點及雙倍精度浮點指令中之一或多者。VPU支援對記憶體輸入進行的藉由攪和單元1020攪和暫存器輸入、藉由數值轉換單元1022A至1022B之數值轉換及藉由複製單元1024之複製。寫入罩幕暫存器1026允許預測所得向量寫入。
具有整合式記憶體控制器及圖形之處理器
圖11為根據本發明之實施例的可具有一個以上核心、可具有一整合式記憶體控制器且可具有整合式圖形之處理器1100之方塊圖。圖11中之實線框說明處理器1100,其具有一單一核心1102A、一系統代理1110、一或多個匯流排控制器單元1116之一集合,而虛線框之可選添加說明一替代處理器1100,其具有多個核心1102A至1102N、系統代理單元1110中的一或多個整合式記憶體控制器單元1114之一集合及專用邏輯1108。
因此,處理器1100之不同實施可包括:1)一CPU,其中專用邏輯1108為整合式圖形及/或科學(輸送量)邏輯(其可包括一或多個核心),且核心1102A至1102N為一或多個通用核心(例如,通用有序核心、通用無序核心、兩者之組合);2)一共處理器,其中核心1102A至1102N為意欲主要用於圖形及/或科學(輸送量)之大量專用核心;及3)共處理器,其中核心1102A至1102N為大量通用有序核心。因此,處理器1100可為通用處理器、共處理器或專用處理器,諸如,網路或通信處理器、壓縮引擎、圖形處理器、
GPGPU(通用圖形處理單元)、高輸送量多整合式核心(MIC)共處理器(包括30或30個以上核心)、嵌式處理器或其類似者。處理器可實施於一或多個晶片上。處理器1100可為一或多個基板之一部分及/或可使用許多製程技術(諸如,BiCMOS、CMOS或NMOS)中之任何者實施於一或多個基板上。
記憶體階層包括在核心內之一或多層級快取記
憶體、一組或一或多個共用快取單元1106及耦接至整合式記憶體控制器單元1114的集合之外部記憶體(未圖示)。該組共用快取單元1106可包括一或多個中間層級快取記憶體,諸如,第2層級(L2)、第3層級(L3)、第4層級(L4)或其他層級之快取記憶體、最後一層級快取記憶體(LLC)及/或其組合。雖然在一實施例中,基於環狀之互連單元1112互連整合式圖形邏輯1108、該組共用快取單元1106與系統代理單元1110/整合式記憶體控制單元1114,但替代實施例可將任何數目個熟知技術用於互連此等單元。在一實施例中,維持一或多個快取單元1106與核心1102A至1102N之間的一致性。
在一些實施例中,核心1102A至1102N中之一或
多者能夠多執行緒。系統代理1110包括協調及操作核心1102A至1102N之彼等組件。系統代理單元1110可包括(例如)一功率控制單元(PCU)及一顯示單元。PCU可為或包括需要用於調節核心1102A至1102N及整合式圖形邏輯1108之功率狀態的邏輯及組件。顯示單元用於驅動一或多個外部連
接之顯示器。
就架構指令集來說,核心1102A至1102N可為同
質或異質;亦即,核心1102A至1102N中之兩者或兩者以上可能夠執行同一指令集,而其他者可能夠執行彼指令集之僅一子集或不同指令集。
圖12至圖15為例示性電腦架構之方塊圖。此項技術中已知用於膝上型電腦、桌上型電腦、手持型PC、個人數位助理、工程工作站、伺服器、網路器件、網路集線器、交換器、嵌式處理器、數位信號處理器(DSP)、圖形器件、視訊遊戲器件、機上盒、微控制器、蜂巢式電話、攜帶型媒體播放器、手持型器件及各種其他電子器件之其他系統設計及組態亦為合適的。一般來說,能夠併有如本文中揭示之處理器及/或其他執行邏輯的大量各種各樣之系統或電子器件通常為合適的。
現參看圖12,展示根據本發明之一實施例的系統1200之方塊圖。系統1200可包括一或多個處理器1210、1215,其耦接至控制器集線器1220。在一實施例中,控制器集線器1220包括一圖形記憶體控制器集線器(GMCH)1290及一輸入/輸出集線器(IOH)1250(其可在分開之晶片上);GMCH 1290包括記憶體1240及共處理器1245耦接至之記憶體及圖形控制器;IOH 1250將輸入/輸出(I/O)器件1260耦接至GMCH 1290。或者,記憶體及圖形控制器中之一或多者整合於處理器(如本文中所描述)內,記憶體1240及共處
理器1245直接耦接至處理器1210及具有IOH 1250的在單一晶片中之控制器集線器1220。
額外處理器1215之可選性質藉由虛線表示於圖
12中。每一處理器1210、1215可包括本文中描述的處理核心中之一或多者,且可為某一版本之處理器1100。
記憶體1240可為(例如)動態隨機存取記憶體
(DRAM)、相變記憶體(PCM)或兩者之組合。對於至少一實施例,控制器集線器1220經由多點匯流排(諸如,前側匯流排(FSB)、諸如QuickPath互連件(QPI)之點對點介面或類似連接件1295)與處理器1210、1215通信。
在一實施例中,共處理器1245為專用處理器,諸
如,高輸送量MIC處理器、網路或通信處理器、壓縮引擎、圖形處理器、GPGPU、嵌式處理器或其類似者。在一實施例中,控制器集線器1220可包括整合式圖形加速器。
就包括架構、微架構、熱、功率消耗特性及其類
似者的優點之一系列量度來說,在實體資源1210、1215之間可存在各種各樣之差異。
在一實施例中,處理器1210執行控制一般類型之
資料處理操作的指令。嵌入於指令內的可為共處理器指令。處理器1210將此等共處理器指令辨識為屬於應由附接之共處理器1245執行的類型。因此,處理器1210在共處理器匯流排或其他互連件上將此等共處理器指令(或表示共處理器指令之控制信號)發出至共處理器1245。共處理器1245接受且執行接收之共處理器指令。
現參看圖13,展示根據本發明之一實施例的第一
更特定例示性系統1300之方塊圖。如圖13中所示,多處理器系統1300為點對點互連系統,且包括經由點對點互連件1350耦接之第一處理器1370及第二處理器1380。處理器1370及1380中之每一者可為某一版本之處理器1100。在本發明之一實施例中,處理器1370及1380分別為處理器1210及1215,而共處理器1338為共處理器1245。在另一實施例中,處理器1370及1380分別為處理器1210及共處理器1245。
展示處理器1370及1380,分別包括整合式記憶體
控制器(IMC)單元1372及1382。處理器1370亦包括點對點(P-P)介面1376及1378作為其匯流排控制器單元之部分;類似地,第二處理器1380包括P-P介面1386及1388。處理器1370、1380使用P-P介面電路1378、1388經由點對點(P-P)介面1350交換資訊。如在圖13中所示,IMC 1372及1382將處理器耦接至各別記憶體,即,記憶體1332及記憶體1334,記憶體1332及記憶體1334可為主記憶體之局部附接至各別處理器的部分。
處理器1370、1380可各使用點對點介面電路
1376、1394、1386、1398經由個別P-P介面1352、1354與晶片集1390交換資訊。晶片集1390可視情況經由高效能介面1339與共處理器1338交換資訊。在一實施例中,共處理器1338為專用處理器,諸如,高輸送量MIC處理器、網路或通信處理器、壓縮引擎、圖形處理器、GPGPU、嵌式處理器或其類似者。
共用快取記憶體(未圖示)可包括於處理器中或
兩個處理器之外,然而經由P-P互連件與處理器連接,使得若將一處理器置於低功率模式下,則任一或兩個處理器之局部快取資訊可儲存於共用快取記憶體中。
晶片集1390可經由介面1396耦接至第一匯流排
1316。在一實施例中,第一匯流排1316可為周邊組件互連(PCI)匯流排或諸如PCI快速匯流排或另一第三代I/O互連匯流排之匯流排,但本發明之範疇不受如此限制。
如在圖13中所示,各種I/O器件1314可與將第一
匯流排1316耦接至第二匯流排1320的匯流排橋接器1318一起耦接至第一匯流排1316。在一實施例中,諸如共處理器、高輸送量MIC處理器、GPGPU、加速器(諸如,圖形加速器或數位信號處理(DSP)單元)、場可程式化閘陣列或任一其他處理器之一或多個額外處理器1315耦接至第一匯流排1316。在一實施例中,第二匯流排1320可為低接腳計數(LPC)匯流排。在一實施例中,包括(例如)鍵盤及/或滑鼠1322、通信器件1327及諸如碟機或其他大容量儲存器件(其可包括指令/程式碼及資料1330)之儲存單元1328的各種器件可耦接至第二匯流排1320。另外,音訊I/O 1324可耦接至第二匯流排1320。注意,其他架構係可能的。舉例來說,代替圖13之點對點架構,系統可實施多點匯流排或其他此架構。
現參看圖14,展示根據本發明之一實施例的第二
更特定例示性系統1400之方塊圖。在圖13及圖14中之相似元件具有相似參考數字,且已自圖14省略圖13之某些態
樣,以便避免使圖14之其他態樣難懂。
圖14說明處理器1370、1380可分別包括整合式記憶體及I/O控制邏輯(「CL」)1372及1382。因此,CL 1372、1382包括整合式記憶體控制器單元,且包括I/O控制邏輯。圖14說明不僅記憶體1332、1334耦接至CL 1372、1382,且I/O器件1414亦耦接至控制邏輯1372、1382。舊式I/O器件1415耦接至晶片集1390。
現參看圖15,展示根據本發明之一實施例的SoC 1500之方塊圖。圖11中之類似元件具有相似參考數字。又,虛線框為關於較進階SoC之可選特徵。在圖15中,互連單元1502耦接至:應用程式處理器1510,其包括一或多個核心202A至202N之一集合及共用快取單元1106;系統代理單元1110;匯流排控制器單元1116;整合式記憶體控制器單元1114;一組或一或多個共處理器1520,其可包括整合式圖形邏輯、一影像處理器、一音訊處理器及一視訊處理器;一靜態隨機存取記憶體(SRAM)單元1530;一直接記憶體存取(DMA)單元1532;及一顯示單元1540,其用於耦接至一或多個外部顯示器。在一實施例中,共處理器1520包括專用處理器,諸如,網路或通信處理器、壓縮引擎、GPGPU、高輸送量MIC處理器、嵌式處理器或其類似者。
本文中揭示的機制之實施例可以硬體、軟體、韌體或此等實施方法之組合來實施。本發明之實施例可作為在包含至少一處理器、一儲存系統(包括揮發性及非揮發性記憶體及/或儲存元件)、至少一輸入器件及至少一輸出器件
之可程式化系統上執行的電腦程式或程式碼來實施。
諸如在圖13中說明之程式碼1330的程式碼可施加至輸入指令以執行本文中描述之功能及產生輸出資訊。可按已知方式將輸出資訊施加至一或多個輸出器件。為了此應用之目的,處理系統包括具有諸如數位信號處理器(DSP)、微控制器、特殊應用積體電路(ASIC)或微處理器之處理器的任一系統。
程式碼可按高階程序或物件導向式程式設計語言實施以與處理系統通信。若需要,亦可按組合或機器語言實施程式碼。事實上,本文中描述之機制在範疇上不限於任一特定程式設計語言。在任一情況下,語言可為編譯或解譯語言。
至少一實施例之一或多個態樣可由儲存於表示處理器內之各種邏輯的機器可讀媒體上之代表性指令實施,該等代表性指令當由機器讀取時使該機器製造邏輯以執行本文中描述之技術。被稱為「IP核心」之此等表示可儲存於有形機器可讀媒體上,且供應至各種消費者或製造設施以載入至實際製造邏輯或處理器之製造機器內。
此等媒體可讀儲存媒體可包括(而不限於)由機器或器件製造或形成的物品之非暫時性有形配置,包括諸如以下之儲存媒體:硬碟;任一其他類型之碟,包括軟碟、光碟、緊密光碟唯讀記憶體(CD-ROM)、可重寫緊密光碟(CD-RW)及磁光碟;半導體器件,諸如,唯讀記憶體(ROM)、隨機存取記憶體(RAM)(諸如,動態隨機存取記憶
體(DRAM)、靜態隨機存取記憶體(SRAM)、可抹除可程式化唯讀記憶體(EPROM)、快閃記憶體、電可抹除可程式化唯讀記憶體(EEPROM)、相變記憶體(PCM));磁卡或光卡;或適合於儲存電子指令的任一其他類型之媒體。
因此,本發明之實施例亦包括含有指令或含有諸
如硬體描述語言(HDL)之設計資料的非暫時性有形機器可讀媒體,設計資料定義本文中描述之結構、電路、裝置、處理器及/或系統特徵。此等實施例亦可被稱作程式產品。
在一些情況下,可使用指令轉換器將指令自源指令集轉換至目標指令集。舉例來說,指令轉換器可將指令轉譯(例如,使用靜態二進位轉譯、包括動態編譯之動態二進位轉譯)、變形、仿真或以其他方式轉換至待由核心處理之一或多個其他指令。指令轉換器可以軟體、硬體、韌體或其組合來實施。指令轉換器可在處理器上、在處理器外或部分在處理器上且部分在處理器外。
圖16為對比根據本發明之實施例的用以將源指令集中之二進位指令轉換至目標指令集中之二進位指令的軟體指令轉換器之使用之方塊圖。在說明之實施例中,指令轉換器為軟體指令轉換器,但替代地,指令轉換器可以軟體、韌體、硬體或其各種組合來實施。圖16展示可使用x86編譯器1604編譯高階語言1602下之程式以產生x86二進位程式碼1606,x86二進位程式碼1606可原生地由具有至少一x86指令集核心之處理器1616執行。具有至少一x86指令
集核心之處理器1616表示可藉由以下操作執行實質上與具有至少一x86指令集核心之Intel處理器相同的功能之任一處理器:相容地執行或以其他方式處理(1)Intel x86指令集核心之指令集的實質部分,或(2)目標在於在具有至少一x86指令集核心之Intel處理器上執行的應用程式或其他軟體之目標程式碼版本,以便達成實質上與具有至少一x86指令集核心之Intel處理器相同的結果。x86編譯器1604表示可操作以產生x86二進位程式碼1606(例如,目標程式碼)之編譯器,x86二進位程式碼1606可藉由或不藉由額外鏈接處理在具有至少一x86指令集核心之處理器1616上執行。類似地,圖16展示可使用替代指令集編譯器1608編譯高階語言1602下之程式以產生可原生地由不具有至少一x86指令集核心之處理器1614(例如,具有執行MIPS Technologies of Sunnyvale,CA之MIPS指令集及/或執行ARM Holdings of Sunnyvale,CA之ARM指令集的核心之處理器)執行的替代指令集二進位程式碼1610。指令轉換器1612用以將x86二進位程式碼1606轉換成可原生地由不具有x86指令集核心之處理器1614執行的程式碼。此轉換之程式碼不大可能與替代指令集二進位程式碼1610相同,此係因為能夠進行此操作之指令轉換器難以製造;然而,轉換之程式碼將實現一般操作,且由來自替代指令集之指令組成。因此,指令轉換器1612表示經由仿真、模擬或任一其他程序允許不具有x86指令集處理器或核心之處理器或其他電子器件執行x86二進位程式碼1606的軟體、韌體、硬體或其組合。
在該描述及申請專利範圍中,已使用術語「耦接」
及/或「連接」,連同其衍生詞。應理解,此等術語並不意欲作為彼此之同義詞。相反地,在特定實施例中,「連接」可用以指示兩個或兩個以上元件相互直接實體或電接觸。「耦接」可意謂兩個或兩個以上元件直接實體或電接觸。然而,「耦接」亦可意謂兩個或兩個以上元件不相互直接接觸,但仍相互合作或互動。舉例來說,記憶體管理子系統可經由一或多個介入組件與暫存器或記憶體位置耦接。在圖中,使用箭頭展示耦接及/或連接。
在該描述及申請專利範圍中,可已使用術語「邏輯」。如本文中所使用,術語邏輯可包括硬體、韌體、軟體或其各種組合。邏輯之實例包括積體電路、特殊應用積體電路、類比電路、數位電路、程式化之邏輯器件、包括指令之記憶體器件等。在一些實施例中,邏輯可包括潛在地與其他電路組件一起之電晶體及/或閘極。
在以上描述中,已闡明特定細節以便提供對實施例之澈底理解。然而,可在無此等特定細節之情況下實踐其他實施例。本發明之範疇將不由以上提供之特定實例而僅由以下申請專利範圍判定。所有與圖式中所說明及說明書中所描述之關係等效的關係涵蓋於實施例內。在其他情況下,已按方塊圖形式或無細節地展示熟知電路、結構、器件及操作以便避免使對該描述之理解難懂。在一些情況下,在已展示及描述多個組件之情況下,該等組件可併入至一組件內。在一些情況下,在已展示及描述單一組件之
情況下,此單一組件可與兩個或兩個以上組件分開。
本文中揭示之某些方法已經按基本形式展示及描述,但可視情況將操作添加至該等方法及/或自該等方法移除。此外,可已展示及/或描述特定操作次序,但替代實施例可按不同次序執行某些操作、組合某些操作、重疊某些操作等。
實施例係關於一種製品(例如,電腦程式產品),其包括儲存一連串指令(例如,一或多個常式或程式之其他部分)之機器可讀儲存媒體。該一連串指令若由一機器執行則可操作以使該機器執行如本文中揭示之一或多個操作或方法。在一些實施中,該機器可讀儲存媒體可為有形及/或非暫時性機器可讀儲存媒體。
在各種實例實施例中,機器可讀儲存媒體可包括軟碟、光碟、CD-ROM、磁碟、磁光碟、唯讀記憶體(ROM)、可程式化ROM(PROM)、可抹除且可程式化ROM(EPROM)、電可抹除且可程式化ROM(EEPROM)、隨機存取記憶體(RAM)、靜態RAM(SRAM)、動態RAM(DRAM)、快閃記憶體、相變記憶體、半導體記憶體、其他類型之記憶體或其組合。在一些實施例中,媒體可包括一或多個固體資料儲存材料,諸如,半導體資料儲存材料、相變資料儲存材料、磁性資料儲存材料、光學透明固體資料儲存材料等。
不同類型之機器的實例包括(但不限於)處理器(例如,通用處理器及專用處理器)、指令處理裝置及具有一
或多個處理器或指令處理裝置之各種電子器件。此等電子器件之少數代表性實例包括(但不限於)電腦系統、桌上型電腦、膝上型電腦、筆記型電腦、伺服器、網路路由器、網路交換器、桌上型易網機、機上盒、蜂巢式電話、視訊遊戲控制器等。
舉例來說,貫穿此說明書對「一實施例」、「一或多個實施例」、「一些實施例」之參考指示一特定特徵可包括於本發明之實踐中,但未必需要如此。類似地,在該描述中,為了使本發明簡單化及輔助理解各種本發明態樣之目的,在一單一實施例、圖或其描述中有時將各種特徵分組在一起。然而,不應將本發明之此方法解釋為反映本發明需要比在每一申請專利範圍中明確所列舉之特徵多的特徵之意圖。相反地,如以下申請專利範圍反映,本發明態樣在於少於單一揭示之實施例的所有特徵。因此,在實施方式後之申請專利範圍在此明確地併入至此實施方式內,其中每一申請專利範圍獨立地作為本發明之一單獨實施例。
210‧‧‧系統
211‧‧‧處理器
212‧‧‧多記憶體位址指令
213-1‧‧‧第一記憶體位址
213-N‧‧‧第N個記憶體位址
214‧‧‧習知指令管線
216‧‧‧記憶體管理子系統
220‧‧‧多頁面錯失積聚邏輯
221‧‧‧處理器狀態
222‧‧‧實體記憶體位址
223‧‧‧單一多-頁頁面錯失
224‧‧‧多-頁頁面錯失之單一返回
225‧‧‧頁面錯失通信介面
226‧‧‧積聚頁面錯失資訊
227‧‧‧處理器狀態資訊
228‧‧‧頁面
229‧‧‧作業系統模組
230‧‧‧積聚頁面錯失處理常式模組
231‧‧‧丟失之頁面
232‧‧‧副記憶體
233‧‧‧主記憶體
Claims (28)
- 一種處理器,其包含:一指令管線,其包括一解碼級以解碼指示多個記憶體位址之一多記憶體位址指令及一執行級以執行該指令;以及多頁面錯失積聚邏輯電路(multiple page fault aggregation logic circuit),其與該指令管線耦接,該多頁面錯失積聚邏輯電路用以積聚針對多個頁面錯失之頁面錯失資訊,該等多個頁面錯失各與該指令之該多個記憶體位址中之一者相關聯,該多頁面錯失積聚邏輯電路將該積聚頁面錯失資訊提供至一頁面錯失通信介面,該頁面錯失通信介面用於將頁面錯失與一作業系統模組通信。
- 如申請專利範圍第1項之處理器,其中該處理器針對該等多個頁面錯失引起一單一多-頁頁面錯失至一作業系統。
- 如申請專利範圍第1項之處理器,其中該處理器針對該等多個頁面錯失自該作業系統接收自該多-頁頁面錯失之一單一返回。
- 如申請專利範圍第1項之處理器,其中該多頁面錯失積聚邏輯電路用以將多個錯失位址提供至該頁面錯失通信介面,該多個錯失位址中之每一者對應於該等多個頁面錯失中之一者。
- 如申請專利範圍第1項之處理器,其中該多頁面錯失積聚邏輯電路用以將針對該等多個頁面錯失之積聚錯 誤碼資訊提供至該頁面錯失通信介面。
- 如申請專利範圍第5項之處理器,其中該積聚錯誤碼資訊包含特定針對該等多個頁面錯失中之一第一頁面錯失的第一錯誤碼資訊及特定針對該等多個頁面錯失中之一第二頁面錯失的第二錯誤碼資訊。
- 如申請專利範圍第1項之處理器,其中該多頁面錯失積聚邏輯電路係用以將該等多個頁面錯失中之許多者提供至該頁面錯失通信介面。
- 如申請專利範圍第1項之處理器,其中該多頁面錯失積聚邏輯電路為該處理器之一記憶體管理子系統之部分,且包含至少某一電路。
- 如申請專利範圍第1項之處理器,其中該頁面錯失通信介面包含一頁面錯失處理常式模組之一堆疊。
- 一種方法,其包含:偵測多個頁面錯失;將針對該等多個頁面錯失之積聚頁面錯失資訊提供至一頁面錯失通信介面,其中該頁面錯失通信介面係用於將頁面錯失與一作業系統通信;以及信號傳遞針對該等多個頁面錯失之一單一多-頁頁面錯失。
- 如申請專利範圍第10項之方法,其進一步包含接收指示多個記憶體位址之一多記憶體位址指令,且其中偵測該等多個頁面錯失包含偵測各對應於由該指令指示的該多個記憶體位址中之一者之多個頁面錯失。
- 如申請專利範圍第10項之方法,其進一步包含接收自該多-頁頁面錯失之一單一返回。
- 如申請專利範圍第10項之方法,其中提供該積聚頁面錯失資訊包含將該積聚頁面錯失資訊儲存於一暫存器及一堆疊中之至少一者中。
- 如申請專利範圍第10項之方法,其中提供該積聚頁面錯失資訊包含將多個錯失位址提供至該頁面錯失通信介面,該多個錯失位址中之每一者對應於該等多個頁面錯失中之一者。
- 如申請專利範圍第10項之方法,其中提供該積聚頁面錯失資訊包含將針對該等多個頁面錯失之積聚錯誤碼資訊提供至該頁面錯失通信介面。
- 如申請專利範圍第15項之方法,其中提供該積聚錯誤碼資訊包含提供特定針對該等多個頁面錯失中之一第一頁面錯失的一第一錯誤碼資訊及特定針對該等多個頁面錯失中之一第二頁面錯失的一第二錯誤碼資訊。
- 如申請專利範圍第16項之方法,其中提供該積聚錯誤碼資訊包含僅一次提供該等多個頁面錯失中之所有者共同的資訊。
- 如申請專利範圍第10項之方法,其中提供該積聚頁面錯失資訊包含將該等多個頁面錯失中之許多者提供至該頁面錯失通信介面。
- 一種製品,其包含:一機器可讀儲存媒體,其包括一或多個固體材料,該 機器可讀儲存媒體儲存一連串指令,該一連串指令若由一機器執行則可操作以使該機器執行包含以下之操作:接收已由一處理器信號傳遞之一單一多-頁頁面錯失;自一頁面錯失通信介面存取針對多個頁面錯失的積聚頁面錯失資訊,該等多個頁面錯失與該多-頁頁面錯失相關聯;以及在已解決該等多個頁面錯失後,提供自該單一多-頁頁面錯失之一單一返回。
- 如申請專利範圍第19項之製品,其中該機器可讀儲存媒體進一步儲存數個指令,該等指令若經執行則可操作以使該機器執行包含以下之操作:在接收該單一多-頁頁面錯失與提供該單一返回之間解決該等多個頁面錯失。
- 如申請專利範圍第19項之製品,其中該機器可讀儲存媒體進一步儲存數個指令,該等指令若經執行則可操作以使該機器執行包含以下之操作:自該頁面錯失通信介面存取多個錯失位址,該等多個錯失位址中之每一者對應於該等多個頁面錯失中之一者。
- 如申請專利範圍第19項之製品,其中該機器可讀儲存媒體進一步儲存數個指令,該等指令若經執行則可操作以使該機器執行包含以下之操作:自該頁面錯失通信介面存取針對該等多個頁面錯失之積聚錯誤碼資訊。
- 如申請專利範圍第22項之製品,其中該機器可 讀儲存媒體進一步儲存數個指令,該等指令若經執行則可操作以使該機器執行包含以下之操作:存取特定針對該等多個頁面錯失中之一第一頁面錯失的一第一錯誤碼資訊及存取特定針對該等多個頁面錯失中之一第二頁面錯失的一第二錯誤碼資訊。
- 如申請專利範圍第22項之製品,其中該機器可讀儲存媒體進一步儲存數個指令,該等指令若經執行則可操作以使該機器執行包含以下之操作:僅一次自該頁面錯失通信介面存取該等多個頁面錯失中之所有者共同的資訊。
- 如申請專利範圍第19項之製品,其中該機器可讀儲存媒體進一步儲存數個指令,該等指令若經執行則可操作以使該機器執行包含以下之操作:自該頁面錯失通信介面存取該等多個頁面錯失中之許多者。
- 一種系統,其包含:一互連件;一處理器,其與該互連件耦接,該處理器包括多頁面錯失積聚邏輯,該多頁面錯失積聚邏輯用以積聚針對多個頁面錯失之頁面錯失資訊,該多頁面錯失積聚邏輯將該積聚頁面錯失資訊提供至一頁面錯失通信介面,該處理器信號傳遞一單一多-頁頁面錯失;以及一動態隨機存取記憶體(DRAM),其與該互連件耦接,該DRAM儲存一連串指令,該一連串指令若由該系統執行則可操作以使該系統執行包含以下之操作: 接收由該處理器信號傳遞之該單一多-頁頁面錯失;自該頁面錯失通信介面存取該積聚頁面錯失資訊;以及在已解決該等多個頁面錯失後,提供自該單一多-頁頁面錯失之一單一返回。
- 如申請專利範圍第26項之系統,其中該多頁面錯失積聚邏輯係用以將多個錯失位址提供至該頁面錯失通信介面,該多個錯失位址中之每一者對應於該等多個頁面錯失中之一者。
- 如申請專利範圍第26項之系統,其中該多頁面錯失積聚邏輯係用以將針對該等多個頁面錯失之積聚錯誤碼資訊提供至該頁面錯失通信介面,其中該積聚錯誤碼資訊包含特定針對該等多個頁面錯失中之一第一頁面錯失的第一錯誤碼資訊及特定針對該等多個頁面錯失中之一第二頁面錯失的一第二錯誤碼資訊。
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/US2011/067723 WO2013101020A1 (en) | 2011-12-29 | 2011-12-29 | Aggregated page fault signaling and handline |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| TW201342059A TW201342059A (zh) | 2013-10-16 |
| TWI514144B true TWI514144B (zh) | 2015-12-21 |
Family
ID=48698259
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| TW101149827A TWI514144B (zh) | 2011-12-29 | 2012-12-25 | 積聚分頁錯失之信號傳遞與處置技術 |
Country Status (5)
| Country | Link |
|---|---|
| US (4) | US9891980B2 (zh) |
| EP (1) | EP2798477A4 (zh) |
| CN (2) | CN110069418B (zh) |
| TW (1) | TWI514144B (zh) |
| WO (1) | WO2013101020A1 (zh) |
Families Citing this family (13)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US9921967B2 (en) | 2011-07-26 | 2018-03-20 | Intel Corporation | Multi-core shared page miss handler |
| US9891980B2 (en) | 2011-12-29 | 2018-02-13 | Intel Corporation | Aggregated page fault signaling and handline |
| US10303616B2 (en) | 2013-03-14 | 2019-05-28 | Nvidia Corporation | Migration scheme for unified virtual memory system |
| DE102013022169A1 (de) | 2013-03-14 | 2014-09-18 | Nvidia Corporation | Fehlerpuffer zur verfolgung von seitenfehlern in einem vereinheitlichten virtuellen speichersystem |
| US10416890B2 (en) * | 2015-09-09 | 2019-09-17 | Intel Corporation | Application execution enclave memory page cache management method and apparatus |
| KR102429903B1 (ko) | 2015-12-03 | 2022-08-05 | 삼성전자주식회사 | 비휘발성 메인 메모리 시스템의 페이지 폴트 처리 방법 |
| CN109766168B (zh) * | 2017-11-09 | 2023-01-17 | 阿里巴巴集团控股有限公司 | 任务调度方法和装置、存储介质以及计算设备 |
| JP6508382B1 (ja) * | 2018-03-26 | 2019-05-08 | 日本電気株式会社 | 情報処理装置、情報処理方法、プログラム |
| US11416411B2 (en) * | 2019-03-15 | 2022-08-16 | Intel Corporation | Preemptive page fault handling |
| US12517798B2 (en) | 2020-03-20 | 2026-01-06 | Nvidia Corporation | Techniques for memory error isolation |
| JP7580448B2 (ja) * | 2020-03-25 | 2024-11-11 | 合同会社H.U.グループ中央研究所 | ゲート領域推定プログラム、ゲート領域推定方法、及びゲート領域推定装置 |
| US12399761B2 (en) | 2023-02-09 | 2025-08-26 | Samsung Electronics Co., Ltd. | System and method for fault page handling |
| GR1011044B (el) | 2024-05-02 | 2025-09-25 | Soukos Robotics E.E., | Μεθοδος οικολογικης διαχειρισης και ανακυκλωσης μπαταριων παντος τυπου καθως και επικινδυνων χημικων-εκρηκtικων ουσιων, με συστημα τεχνητης νοημοσυνης (tn) |
Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| TW305959B (en) * | 1996-05-22 | 1997-05-21 | Ind Tech Res Inst | The method and system for eliminating penalty of page/row missing |
| TW544575B (en) * | 2000-08-15 | 2003-08-01 | Silicon Integrated Sys Corp | Page organizer within memory controller |
| US20050091569A1 (en) * | 2003-10-24 | 2005-04-28 | Hon Hai Precision Industry Co., Ltd. | System and method for securely storing data in a memory |
| US20110153983A1 (en) * | 2009-12-22 | 2011-06-23 | Hughes Christopher J | Gathering and Scattering Multiple Data Elements |
Family Cites Families (20)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5664159A (en) * | 1994-03-08 | 1997-09-02 | Exponential Technology, Inc. | Method for emulating multiple debug breakpoints by page partitioning using a single breakpoint register |
| US5895501A (en) * | 1996-09-03 | 1999-04-20 | Cray Research, Inc. | Virtual memory system for vector based computer systems |
| EP1870814B1 (en) * | 2006-06-19 | 2014-08-13 | Texas Instruments France | Method and apparatus for secure demand paging for processor devices |
| US7840850B2 (en) | 2005-04-11 | 2010-11-23 | Hewlett-Packard Development Company, L.P. | Data processing system for logging memory access data |
| JP2006339355A (ja) * | 2005-06-01 | 2006-12-14 | Nec Electronics Corp | 半導体集積回路装置及びその設計方法 |
| KR100837274B1 (ko) * | 2006-08-28 | 2008-06-11 | 삼성전자주식회사 | 오토 멀티-페이지 카피백 기능을 갖는 플래시 메모리 장치및 그것의 블록 대체 방법 |
| US20080104362A1 (en) * | 2006-10-25 | 2008-05-01 | Buros William M | Method and System for Performance-Driven Memory Page Size Promotion |
| US7730361B2 (en) * | 2007-03-30 | 2010-06-01 | Texas Instruments Incorporated | Aggregation of error messaging in multifunction PCI express devices |
| CN101364253A (zh) * | 2007-08-06 | 2009-02-11 | 电子科技大学 | 反恶意程序隐蔽调试引擎与方法 |
| CN100547595C (zh) * | 2007-12-03 | 2009-10-07 | 福建星网锐捷网络有限公司 | 一种共享链表错误检测方法和系统 |
| US7984273B2 (en) * | 2007-12-31 | 2011-07-19 | Intel Corporation | System and method for using a mask register to track progress of gathering elements from memory |
| US7746099B1 (en) | 2008-01-11 | 2010-06-29 | Xilinx, Inc. | Method of and system for implementing a circuit in a device having programmable logic |
| US8112699B2 (en) | 2008-02-14 | 2012-02-07 | Atmel Rousset S.A.S. | Error detecting/correcting scheme for memories |
| US9201793B2 (en) * | 2008-05-30 | 2015-12-01 | Red Hat, Inc. | Facilitating profiling of applications for efficient loading |
| US8281306B2 (en) * | 2008-06-06 | 2012-10-02 | International Business Machines Corporation | Managing assignment of partition services to virtual input/output adapters |
| DE102009038011B9 (de) * | 2009-08-20 | 2018-04-12 | Schenck Rotec Gmbh | Verfahren zur automatischen Erfassung und Erkennung von Fehlern an einer Auswuchtmaschine |
| US8239610B2 (en) * | 2009-10-29 | 2012-08-07 | Red Hat, Inc. | Asynchronous page faults for virtual machines |
| US20120254591A1 (en) * | 2011-04-01 | 2012-10-04 | Hughes Christopher J | Systems, apparatuses, and methods for stride pattern gathering of data elements and stride pattern scattering of data elements |
| US8850121B1 (en) * | 2011-09-30 | 2014-09-30 | Applied Micro Circuits Corporation | Outstanding load miss buffer with shared entries |
| US9891980B2 (en) | 2011-12-29 | 2018-02-13 | Intel Corporation | Aggregated page fault signaling and handline |
-
2011
- 2011-12-29 US US13/977,106 patent/US9891980B2/en active Active
- 2011-12-29 CN CN201811637429.6A patent/CN110069418B/zh active Active
- 2011-12-29 CN CN201180076471.5A patent/CN104246694B/zh active Active
- 2011-12-29 WO PCT/US2011/067723 patent/WO2013101020A1/en not_active Ceased
- 2011-12-29 EP EP11878938.7A patent/EP2798477A4/en not_active Withdrawn
-
2012
- 2012-12-25 TW TW101149827A patent/TWI514144B/zh active
-
2018
- 2018-02-12 US US15/893,982 patent/US10255126B2/en active Active
- 2018-12-27 US US16/234,539 patent/US20190205200A1/en not_active Abandoned
-
2020
- 2020-08-14 US US16/994,269 patent/US11275637B2/en active Active
Patent Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| TW305959B (en) * | 1996-05-22 | 1997-05-21 | Ind Tech Res Inst | The method and system for eliminating penalty of page/row missing |
| TW544575B (en) * | 2000-08-15 | 2003-08-01 | Silicon Integrated Sys Corp | Page organizer within memory controller |
| US20050091569A1 (en) * | 2003-10-24 | 2005-04-28 | Hon Hai Precision Industry Co., Ltd. | System and method for securely storing data in a memory |
| US20110153983A1 (en) * | 2009-12-22 | 2011-06-23 | Hughes Christopher J | Gathering and Scattering Multiple Data Elements |
Also Published As
| Publication number | Publication date |
|---|---|
| US11275637B2 (en) | 2022-03-15 |
| CN104246694A (zh) | 2014-12-24 |
| WO2013101020A1 (en) | 2013-07-04 |
| US20140304559A1 (en) | 2014-10-09 |
| US20190205200A1 (en) | 2019-07-04 |
| EP2798477A1 (en) | 2014-11-05 |
| CN110069418B (zh) | 2023-07-18 |
| CN110069418A (zh) | 2019-07-30 |
| US9891980B2 (en) | 2018-02-13 |
| TW201342059A (zh) | 2013-10-16 |
| EP2798477A4 (en) | 2015-08-26 |
| US20180181458A1 (en) | 2018-06-28 |
| US10255126B2 (en) | 2019-04-09 |
| CN104246694B (zh) | 2019-01-01 |
| US20200379835A1 (en) | 2020-12-03 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| TWI514144B (zh) | 積聚分頁錯失之信號傳遞與處置技術 | |
| US10635593B2 (en) | Create page locality in cache controller cache allocation | |
| TWI742132B (zh) | 用以將多個資料元件載入到非緊縮資料暫存器的目的地儲存位置的處理器、方法、系統及指令 | |
| US20230093247A1 (en) | Memory access tracker in device private memory | |
| WO2017172354A1 (en) | Hardware apparatuses and methods for memory performance monitoring | |
| KR101787851B1 (ko) | 다중 페이지 크기 변환 색인 버퍼(tlb)용 장치 및 방법 | |
| CN108885586A (zh) | 用于以有保证的完成将数据取出到所指示的高速缓存层级的处理器、方法、系统和指令 | |
| US20150134932A1 (en) | Structure access processors, methods, systems, and instructions | |
| US20220197816A1 (en) | Compressed cache memory with parallel decompress on fault | |
| CN104969199A (zh) | 实施黑名单分页结构指示值的处理器、方法,以及系统 | |
| CN105027137B (zh) | 用于针对增强型安全检查的页走查扩展的装置和方法 | |
| EP3709159B1 (en) | Processing vectorized guest physical address translation instructions | |
| TWI752034B (zh) | 用以校驗具有指示校驗位元值之位元的位元校驗處理器、方法、系統與指令 | |
| CN108027726B (zh) | 用于在远程处理器上实施原子动作的硬件机制 | |
| CN116089028A (zh) | 处理器中断扩展特征 | |
| US12130738B2 (en) | Compressed cache memory with decompress on fault | |
| US20160378497A1 (en) | Systems, Methods, and Apparatuses for Thread Selection and Reservation Station Binding |