TWI739748B - 位址轉換延遲之測量 - Google Patents
位址轉換延遲之測量 Download PDFInfo
- Publication number
- TWI739748B TWI739748B TW105119395A TW105119395A TWI739748B TW I739748 B TWI739748 B TW I739748B TW 105119395 A TW105119395 A TW 105119395A TW 105119395 A TW105119395 A TW 105119395A TW I739748 B TWI739748 B TW I739748B
- Authority
- TW
- Taiwan
- Prior art keywords
- delay
- conversion
- address
- instruction
- circuit system
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3409—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
- G06F11/3419—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3409—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3466—Performance evaluation by tracing or monitoring
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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
- G06F12/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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
- G06F12/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0653—Monitoring storage devices or systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/88—Monitoring involving counting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
- G06F2212/1024—Latency reduction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/68—Details of translation look-aside buffer [TLB]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Human Computer Interaction (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Memory System (AREA)
Abstract
本案介紹一種設備,該設備包括處理電路系統以處理指令,其中一些指令可要求轉換位址。該設備亦包括位址轉換電路系統以回應於由處理電路系統處理的指令而轉換位址。此外,該設備亦包括轉換延遲測量電路系統以測量位址轉換過程之至少部分的延遲,該位址轉換過程由位址轉換電路系統回應於給定指令而執行。
Description
本技術係關於資料處理之領域。
資料處理設備可處理指令。一些設備當處理可包括用於在處理彼等指令時測量處理設備效能的機制。
至少一些實例提供一種設備,該設備包括: 處理電路系統,用以處理指令; 位址轉換電路系統,用以回應於處理電路系統所處理的指令而轉換位址;及 轉換延遲測量電路系統,用以測量位址轉換過程之至少部分的延遲,該位址轉換過程由位址轉換電路系統回應於給定指令而執行。
至少一些實例提供一種設備,該設備包括: 用於處理指令的手段; 用於回應於該用於處理的手段所處理的指令而轉換位址的手段;及 用以測量位址轉換過程之至少部分的延遲的手段,該位址轉換過程由該用於轉換的手段回應於給定指令而執行。
至少一些實例提供一方法,該方法包括: 處理指令; 回應於所處理的指令而轉換位址;及 測量回應於給定指令而執行的位址轉換過程之至少部分的延遲。
本技術之更多態樣、特徵及優勢將憑藉以下實例描述而顯而易見,該等實例應結合附圖進行閱讀。
下文中將論述一些特定實例。將瞭解,本發明並非限定於該等特定實例。
資料處理設備可具有用於在處理指令時監測效能的機制。一些資料處理設備可包括位址轉換電路系統以回應於指令而轉換位址,且與執行位址轉換關連之延遲可為在處理一些指令時影響整體效能的一個因素。
用於識別由位址轉換所引起的效能問題的一個方法可為計數特定事件之發生率,該等事件如轉換旁看緩衝器(translation lookaside buffer; TLB)中之未中或對從記憶體擷取頁表資料的請求。此方法假定如若存在大量TLB未中或頁表走查,則與存在較少TLB未中或頁表走查時相比,效能可為不良。
然而,發明者認識到,在一些系統中,執行位址轉換所耗時間可在指令之間有相對較大程度之改變,該等指令全部經歷同一種事件,如TLB未中。根據本技術之設備包括轉換延遲測量電路系統,以測量位址轉換過程之至少部分的延遲。延遲提供對轉換所用時長的更直接指示,因此可進行更精確的成本效能判定。除測量位址轉換延遲之外,仍可能對諸如TLB未中或頁表走查之事件進行計數。
可能有數個原因使得與位址轉換關連之延遲可在指令之間改變,該等指令全部經歷同一種事件(例如TLB未中)。可能有多種快取策略以用於本地快取用於位址轉換的一些資訊(例如頁表項可快取在資料快取記憶體中,或走查快取記憶體可用以在記憶體中快取頁表項之位址以加速頁表走查),因此延遲可視在何處快取所需資訊而定。
在一些實例中,位址轉換電路系統可藉由使用兩階段轉換將虛擬位址轉換至實體位址,該轉換包括從虛擬位址獲取中間位址的第一階段,及從中間位址獲取實體位址的第二階段。此舉例如可適用以支援虛擬化,在虛擬化中,第一階段由作業系統控制且第二階段由超管理器控制。當使用兩個階段之位址轉換時,本技術可尤其有利,因為兩階段轉換引入更多變數,位址轉換延遲可藉由該等變數改變,因此轉換延遲之直接測量可比僅對TLB未中或頁表走查之數目進行計數更有用。
測得的位址轉換延遲可為與用於自給定虛擬位址獲取實體位址的整體位址轉換過程關連之延遲的量度。當位址轉換過程包括第一轉換階段及第二轉換階段時,延遲測量可為兩個階段的總延遲。
或者,測得的延遲可能只是具有位址轉換過程中之部分,或可對過程中數個部分進行延遲之多個單獨測量。例如,可排他地對轉換階段中之一者進行延遲測量,或可單獨測量兩個階段之延遲以允許對哪一階段造成潛在的效能問題進行更有針對性的識別。
位址轉換過程有時可藉由使用資料儲存器(例如記憶體)中之頁表執行頁表走查來獲取轉換資料。例如,如若TLB中有未中,則可執行頁表走查。在一些情況下,頁表可為單級頁表,在單級頁表中,對記憶體之單一存取返回用於轉換給定虛擬位址的轉換資料。
然而,在一些情況下,頁表可具有階層結構。在該情況下,單一頁表走查可包括對頁表中不同級的數次存取。例如,可查找頁表之給定級以識別指向頁表之下一級的指標,且可遍歷頁表之數個級以定位頁表中包括所需轉換資料之最終級。該種階層結構可用於縮減頁表結構在記憶體中之總大小。當提供多級頁表結構時,與頁表走查關連之延遲可能有增大的變動,因為依據正在使用的快取策略,走查之一些步驟可比其他步驟更快,或可全部忽略。因此,在提供階層頁表結構的系統中,藉由追蹤位址轉換延遲而非僅對事件進行計數來監測效能可尤其有用。
該設備亦可包括指令選擇電路系統以選擇將由轉換測量電路系統監測的指令子集,且在指令子集中之一者需要位址轉換過程時,轉換延遲測量電路系統可測量位址轉換延遲。另一方面,當並非來自指令子集的指令需要位址轉換時,轉換延遲測量電路系統不可測量該指令的位址轉換延遲。此舉有助於藉由不追蹤全部指令來減少與轉換延遲測量電路系統關連之面積及功率額外負擔。對特定指令子集進行取樣以作為位址轉換的候選者亦可有助於將延遲測量歸屬於個別指令,比起僅對在整個程式執行期間發生多少事件進行計數,此舉可提供更有針對性的診斷資訊。儘管有人可能預計記錄僅一指令子集的延遲可能錯漏某些效能關鍵事件,但對指令中某一部分進行取樣可給出充足資訊以提供對整個程式效能之統計代表視圖。
指令選擇電路系統可識別哪些指令為將以不同方式監測的子集之部分。例如,與指令自身關連之標記值可用以指示一指令屬於還是不屬於該子集。標記可與指令一起沿處理管線傳遞,且當轉換延遲測量電路系統偵測到具有一標記的指令時,該標記具有設定值,則轉換延遲測量電路系統可測量針對該指令的位址轉換延遲。另一選項可為對指令子集使用單獨儲存的識別符以識別子集。例如,每一指令可已具有將其區別於其他指令的指令識別符,且指令選擇電路系統可將識別哪些指令識別符屬於子集的記錄與指令自身分開儲存,並當轉換延遲測量電路系統遇到其識別符儲存在記錄中之指令時,該電路系統可測量延遲。另一選項可為使用該等方法之組合,例如包括指令子集的指令組的單獨儲存識別符,及與該組內將用作指令子集的特定指令關連之標記;或與沿管線傳遞的指令組中全部指令關連之標記,及規定標記組中哪些指令將被包含入子集的一或更多個單獨識別符。亦將可能對微型架構中的不同部分使用不同方法,例如一些指令種類可使用標記,而其他指令可使用識別符。此外,在一些情況下,指令可針對其使用壽命中一或更多個部分而標記,並由記錄針對其他部分進行引用。例如,當在管線中時,指令可經標記,但當指令在佇列(例如載入/儲存佇列)中時,則可使用指令識別符之記錄。
在給定時間允許在管線中處於飛行中的指令子集之最大數目在不同實施方式中可為不同。一些系統可提供充足資源以同時追蹤多個指令的位址轉換延遲,在此情況下,可將一個以上的飛行中指令識別為在給定時間屬於指令子集。然而,為減少電路額外負擔,其他系統可將被監測指令的數目限制為每次一個飛行中指令。
指令選擇電路系統可經配置以自選擇先前指令起,經過預定間隔之後,選擇額外指令作為指令子集中之一者。如若間隔足夠久,則此舉可有效地將被監測的飛行中指令數目限制至一次一個。間隔可藉由軟體設定或可為固線式的。此外,在經過間隔及選擇另一指令之間可包括推遲(delay)——並非必須在間隔到期之後選擇緊隨其後的指令。例如,在已經過預定間隔之後,指令選擇電路系統可對隨機決定的更多間隔進行計數,再選擇子集的下一成員。隨機改變選擇指令以納入子集的間隔可提供更佳的統計取樣,因為取樣間隔與程序循環重合的機會減小。預定間隔可根據處理週期數目或遇到的指令數目而定義。
在一些實例中,當已經過預定間隔時,指令選擇電路系統可延緩選擇另一指令作為子集中之一者,直至先前選擇的指令已前進超過預定處理階段。此預定階段可為完成先前指令所需的任一位址轉換之時間點,或預定階段可為隨後的處理階段,如管線的回寫(writeback)或棄置(retire)階段。以此方式,即使軟體例如將取樣間隔設定為相對較短時間,轉換延遲測量電路系統亦可測量每次對應於單一指令的位址轉換延遲,以避免需要提供額外電路系統(例如計數器)以用於追蹤多個指令。
設備可包括效能監測電路系統以監測對應於指令子集的其他資訊項目。其他資訊項可結合位址轉換延遲以用於決定指令子集之效能度量。由此,位址轉換延遲可能不是被監測的唯一資訊,且可形成更大問題中的部分,該等問題可影響個別指令的效能。
一般而言可作為開始事件與結束事件之間的延遲而測量轉換延遲。在一些情況下,哪些特定事件用作開始/結束事件是可配置的,例如藉由在配置暫存器中使用軟體來設定資訊。或者,一些系統可具有固線式電路系統,該電路系統將由某一類型的開始事件或結束事件所觸發,使得使用者不可能改變哪些事件觸發延遲測量的開始及結束。
在一個實例中,轉換延遲測量電路系統可回應於針對給定指令由位址轉換電路系統接收到的對位址轉換之請求而偵測到開始事件。或者,可回應於發送至經配置以發送對位址轉換之請求的功能電路單元的給定指令而偵測到開始事件。即使位址轉換過程自身在指令發送至有關功能電路單元之後的一段時間內不開始,但如若指令到達功能電路單元與位址轉換請求被發送之間的推遲對每一指令而言大體上恆定不變,則略早開始位址轉換延遲測量仍然允許決定與不同指令關連之相對的位址轉換推遲(並非必須提供位址轉換延遲之絕對測量)。在一些情況下,在硬體中偵測在給定功能電路單元處接收到的指令可能比偵測實際位址轉換請求更為有效。
可回應於由位址轉換電路系統返回的轉換位址而偵測到結束事件。或者,可回應於資料存取請求而偵測到結束事件,該資料存取請求規定由位址轉換電路系統獲取並被發送至資料儲存器的轉換位址。此外,儘管返回轉換位址與發送資料存取請求之間的時間可能並非位址轉換過程自身之部分,但如若該時間對於每一指令而言相對恆定,則在資料存取請求被發送之時停止位址轉換測量可能僅向每一測量增添固定偏移。由此,恰好在延遲測量開始及結束之時存在某種靈活性範圍,以在一些情況下允許更有效的電路實施方式。
該等開始事件及結束事件之任何組合皆可用於給定延遲測量。同樣,在存在多個轉換階段的情況下,開始/結束事件可能有關於個別位址轉換階段的開始及結束。
同時,在一些情況下,即使在已偵測到給定開始或結束事件時,延遲測量實際開始/停止之前亦可能有某一推遲。例如,為避免取樣指令的實際處理推遲(此舉影響關鍵路徑),延遲測量可能在執行與指令處理自身相關的某種操作之後開始/停止。例如,位址轉換請求可能在開始延遲測量之前發送,或資料存取請求可能在停止延遲測量之前被發送至記憶體。
記錄延遲有不同的方式。設備可包括計數器以回應於開始事件而開始計數,並回應於結束事件而停止計數,在結束事件時之計數值對應於位址轉換延遲。或者,時間戳器可在開始事件時記錄時間戳,並在結束事件時記錄另一時間戳,且延遲可根據時間戳之間的差而計算得出。在使用時間戳時,表示位址轉換延遲的記錄值可為開始/結束時間戳自身,或時間戳之間的差。
轉換延遲測量電路系統可經配置以將測得延遲寫入儲存器位置。儲存器位置可包括效能監測緩衝器,該緩衝器可儲存根據監測給定指令而收集的其他資料及位址轉換延遲。在一些情況下,當緩衝器變滿時,軟體可發信號以處理緩衝器內容,使得緩衝器可被重寫其他效能資料。
儲存器位置亦可為分配用於儲存效能監測資料的記憶體區域。在每一指令之後,或週期性地在已監測到給定指令數目之後,或在已獲得某一量的監測資料之後(該某一量的資料可能是用於多個指令的資料或與一個指令相關的資料子集),測得的延遲(及視情況其他效能監測資訊)可能寫入儲存器位置。例如,當晶片上提供的本地緩衝器變滿時,資料可能寫出至記憶體。來自緩衝器的資料亦可回應於另一種事件(並非僅緩衝器變滿)而寫入記憶體,該事件例如當指令完成時,對應資料可能被寫入記憶體。
例如,針對給定指令所記錄的另一資訊可包括:給定指令之位址、識別與給定指令關連之上下文的上下文識別符(例如處理或虛擬機)、給定指令的指令類型、回應於給定指令而將轉換的位址、回應於給定指令而獲得的已轉換位址、與給定指令的處理關連之總延遲、對於給定指令的位址請求是否在轉換旁看緩衝器中命中的指示,或對於給定指令的資料請求是否在資料快取記憶體中命中的指示。
在一些情況下,可應用一些過濾以用於判定針對給定指令而監測的資料是否應該寫入儲存器位置。此過濾可能特定於位址轉換延遲測量,或可能影響針對給定指令而監測的全部資料。該過濾可能基於多種參數,例如與處理指令關連之總延遲(例如從調度起到棄置的總延遲)。
然而,當正在測量位址轉換延遲時,另一選項是基於位址轉換延遲自身而過濾。例如,可設定給定臨限值,並當測得延遲大於臨限值時,轉換延遲測量電路系統可將測得延遲(及可能針對同一指令而監測的另一資料)寫入儲存器位置。因此,對於位址轉換延遲小於臨限值(因為顯著的效能問題,一般不遇到此臨限值)的指令而言,可能禁止寫入效能資料以在儲存器位置中節省空間。
第1圖圖示用於回應於指令而執行資料處理的處理管線10的實例。管線10包括解碼階段100以用於解碼接收到的指令,及發送階段102以用於向執行階段104發送解碼指令。執行階段104可包括數個執行單元以用於實現不同類型的處理操作。由執行階段104執行的指令運算元是從暫存器105中讀取的。在回寫階段106,指令結果被回寫至暫存器105。將理解,第1圖中圖示之管線階段的特定排列僅為一個實例,且亦可提供其他類型之階段,如解碼與發送之間提供的調度階段,或用於將架構暫存器說明符映射至硬體中提供的實體暫存器105的暫存器重命名階段,該等說明符由指令規定。將理解,處理管線10可能是依序管線,或亂序管線且處理管線10可並行處理多個指令(例如藉由從公共程式執行緒提供指令雙發送,或藉由支援多個執行緒的並行執行)。
提供記憶體系統118用於儲存資料。在此實例中,記憶體系統118包括資料快取記憶體120及記憶體122,但將理解,可提供更多級別的快取記憶體。當指令需要存取記憶體中之資料時,在執行階段104獲得該資料的虛擬位址。執行階段104引用位址轉換電路系統114,該電路系統轉換虛擬位址以獲得實體位址以用於存取記憶體系統118中之資料。位址轉換電路系統可將虛擬位址與實體位址之間的映射本地儲存在轉換旁看緩衝器(translation lookaside buffer; TLB) 116中,在此情況下,可相對迅速地返回實體位址。當所需映射不儲存在TLB 116中時,位址轉換電路系統114引用儲存在記憶體系統118中之頁表以獲得所需轉換資料。對資料快取記憶體122及系統記憶體120之存取通常比存取TLB 116需要更多處理週期。
第1圖的處理管線10亦包括效能監測電路系統110,該電路系統可測量並記錄關於由處理管線10處理的指令的統計資料。效能監測電路系統110可記錄關於管線中任何階段的指令處理的度量。在此實例中,效能監測電路系統110包括轉換延遲測量電路系統112以用於測量回應於某些指令而執行的位址轉換延遲。
效能監測之一個方法可為對離散事件數目進行計數,該等離散事件在指令串流由管線處理的期間出現,例如對快取未中、TLB命中等等的數目進行計數。然而,儘管在整體程式處理期間遇到的事件數目可能給出效能是優良還是不良的某種指示,但事件自身不給出關於潛在效能損失的理由的很多資訊。為改良代碼效能,提供關於何處發生效能問題的資訊可能更有用,如識別哪一指令、碼行、種類或模組具有效能問題,並識別該指令的調用堆疊及/或路徑,或識別當遇到效能問題時,哪一資料、變數、陣列或物件正在被處理。因此,效能監測電路系統110可記錄偵測到的事件或診斷資訊,以用於處理特定指令(在某些實施例中,除針對特定指令偵測到的資訊之外,還可針對整個程式聚集資訊)。然而,針對所有被處理的指令追蹤該種逐個指令的資訊對監測電路系統110及用於儲存聚集的效能資訊的存儲容量的面積及功率成本而言十分昂貴。
此成本可藉由對指令進行取樣以減少針對其聚集效能監測資訊的指令的數目,而得以降低。處理管線10亦包括指令選擇電路系統108。指令選擇電路系統可經配置以指示特定指令組,將針對該特定指令組來監測效能(例如藉由向沿管線傳遞的選定指令附加標記,或儲存哪些指令被選擇的單獨記錄)。不監測未被指令選擇電路系統108指示的其他指令。當已被指令選擇電路系統指示的指令中之一者需要位址轉換時,轉換延遲測量電路系統112測量該轉換的延遲。藉由將效能分佈的成本削減至更易管理的水平,指令取樣具有的其他優勢在於,此舉使得對特定指令進行更複雜的測量是可行的,如依據不同事件對同一指令的相關性(例如偵測調度/發送與負載棄置之間的總延遲,或偵測TLB與快取未中之間的相關性),或在亂序處理器中的監測指令下偵測棄置指令數目的彼等測量。而且,此方法亦允許效能資料向特定指令的更精確歸因,例如將效能資訊與給定指令的程式計數器或正在存取的資料值的虛擬位址相關連。
在一個實施方式中,指令選擇電路系統108包括計數器,且軟體將取樣間隔寫入計數器。可依據解碼指令中測量該間隔,或可依據經過的處理週期數目或經過的時間來測量該間隔。賦能取樣時,計數器針對每一解碼指令或處理週期而遞減,或在經過給定時段之後而遞減。當計數器達到零時,選擇一指令以用於概況分析(或者計數器可在零點初始化並向上計數至給定臨限值,以用於觸發指令選擇以用於概況分析)。視情況,可賦能隨機擾動,在該種情況下計數器可繼續計數達又一隨機時段之久(例如隨機數目的更多解碼指令),然後選擇指令以用於概況分析。隨機擾動降低取樣偏差出現的機會。例如,如若取樣間隔符合程式循環,或程式循環之組合,則取樣指令可變得重複,且可不提供對整個程式所達到的效能的統計多樣視圖。應注意,在當取樣間隔或隨機額外時段結束的時刻,要在取樣點周圍選擇哪一指令的選擇可為任意的,只要該選擇是一致即可,以便不引入取樣偏差。例如,所選指令可為經過了取樣間隔的指令,或下一指令。一旦選擇指令,計數器可重置,且過程可重複。然後,所選指令在管線10內被效能監測電路系統110追蹤,並截獲該指令的取樣記錄。將理解,在第1圖的實例中,選擇指令以用於在解碼階段進行概況分析。然而,不同的微型架構可選擇不同點以決定何時取樣指令。
可同時被選擇以用於在飛行中取樣的指令的最大數目可能不同,但在一些實施方式中,此數目是一次僅一個指令。如若樣本最大數目在取樣間隔結束之時刻仍在飛行,則選擇新樣本可能導致與前一樣本碰撞,且因此指令選擇電路系統108不選擇新樣本,而是在選擇另一取樣指令之前重置取樣計數器,並等至下次取樣間隔到期。回應於碰撞,指令選擇電路系統可遞增碰撞計數器,該計數器記錄碰撞數目(如若出現顯著的碰撞數目,則此計數器可指示取樣間隔過短或取樣指令遇到了顯著的效能問題)。
在一些系統中,接收到用於在解碼階段100中解碼的指令與被隨後階段處理的指令之間可能有一對一映射。然而,在其他實例中,如管線10的隨後階段102、104、106中所見的「指令」不可與從指令快取記憶體或記憶體中擷取並提供至解碼階段100的「指令」具有同一形式。所擷取的巨集指令可具有根據給定指令設定架構的編碼,但解碼階段100可將該等指令映射至將由執行階段104處理的微操作(μ操作)。例如,載入多指令(該指令載入具有不同值的多個暫存器位置)能夠映射至多個μ操作,每一位置用於載入具有一值的暫存器,且該等μ操作中每一者可需要單獨的位址轉換。同樣,架構中可能定義有其他複雜指令,該等指令可被解碼階段100映射至更簡單的μ操作。同時,解碼階段可融合兩個架構指令至執行階段104所支援的一個μ操作中,例如乘法指令並繼之以使用乘法所得結果進行的加法可替換為乘加μ操作(如若執行階段104支援該種操作)。因此,指令選擇電路系統108所使用的取樣間隔在一些情況下可依據接收到的以用於解碼的巨集指令數目而被計數,而在其他情況下,取樣間隔可根據解碼階段所生成的μ操作數目而被計數。隨後階段中之後續效能監測可基於μ操作。一般而言,下文中引用的術語「指令」可視作涵蓋巨集指令或μ操作。
第2圖圖示經配置以執行兩階段位址轉換的位址轉換電路系統114之一實例。一些系統支援在不同特權級別下操作的軟體。例如,虛擬化設備可執行在較高特權級別下操作的超管理器,及在較低特權級別下執行的一或更多個作業系統,且每一作業系統可控制在更低特權級別下執行的應用程式。應用程式及作業系統可使用虛擬位址(virtual address; VA)以識別要在記憶體系統118中存取的位址,該等位址首先在位址轉換的第一階段被轉換為中間實體位址(intermediate physical address; IPA),然後IPA在第二階段被轉換為實體位址。藉由提供兩個級別的位址轉換,作業系統可控制階段1(VA至IPA)轉換的頁表以控制位址空間中哪些部分被分配給其自身及每一應用程式6,且超管理器可控制階段2(IPA至IPA)轉換的頁表以控制實體位址空間中哪些部分被分配給每一作業系統。由超管理器啟動的資料存取將會規定VA並僅需要階段1轉換,因為階段1轉換生成的IPA可與用於存取記憶體系統118的對應實體位址相同。
因此,位址轉換電路系統包括兩個記憶體管理單元(memory management unit; MMU)、階段1 (S1) MMU 302及階段2 (S2) MMU 304。S1 MMU 302經配置以將虛擬位址(virtual address; VA)轉換為中間實體位址(intermediate physical address; IPA),及S2 MMU 304經配置以將IPA轉換為實體位址(physical address; PA)。S1 MMU 302具有級別1 TLB 306、級別2 TLB 310,及走查快取記憶體308。TLB可快取虛擬位址空間中數個最近存取頁的頁表項。每一頁表項可包括虛擬位址到中間位址的映射,且視情況亦可包括定義某些軟體過程是否允許讀取/寫入存取的資訊。當給定虛擬位址的所需位址映射不在TLB 306、310中之一者中時,可執行頁表走查以從儲存在記憶體系統118中之頁表擷取所需轉換資料。在一些情況下,所需位址轉換資料可在資料快取記憶體122中快取,但如若非如此,則資料可從主記憶體120中擷取。走查快取記憶體308可擷取記憶體系統118中儲存轉換資料(與快取轉換資料自身相反)之位置的位址。S1 MMU 302亦包括轉換表基址暫存器(translation table base register; TTBR) 312以用於指示中間實體位址,該中間實體位址識別階段1頁表在記憶體系統118中之位置。S2 MMU 304類似於S1 MMU 302,只不過S2 MMU 304經配置以將中間實體位址轉換為實體位址,且S2 MMU 304的TTBR 320規定識別階段2頁表的實體位址。儘管第2圖圖示一實例,在該實例中,每一MMU具有兩個級別的TLB,但其他實例可能提供僅一個級別的TLB或兩個以上級別的TLB,且在一些情況下,S2 MMU 304可具有不同數目個TLB級別。
儘管第2圖圖示具有在硬體中提供的兩個單獨MMU 302、304的實例,但在其他實施例中,單個電路可能實施該兩個功能。例如,可共享TLB及/或走查快取記憶體,且項可經標記以指示該等項是否與階段1或階段2轉換相關。仍可提供兩個單獨的TTBR 312。
其他實施例可僅具有單個階段的位址轉換,在該種情況下,可提供單個MMU 302用於將虛擬位址轉換至實體位址。同時,其他實施例可能具有兩個以上位址轉換階段。
第3圖圖示在TLB中無一者儲存用於轉換給定位址所需轉換資料之情況下,在單個階段的位址轉換中執行頁表走查的一個實例。在此實例中,頁表具有階層結構,該結構中提供數個級別的頁表。來自輸入虛擬位址的位元的不同部分用以索引至頁表結構中每一級別。在此實例中,具有n+1個位元的位址(即位元[n]是最有效位址位元——n可為固定或由軟體配置),且級別0、1、2及3表分別藉由使用「a」位元[n:39]、「b」位元[38:30]、「c」位元[29:21]及「d」位元[20:12]索引(將理解,用以索引至頁表中每一級別的精確位元子集在其他實例中可為不同——此將取決於由該級別中的項及每一級別中提供的項數目所表示的位址範圍大小)。在頁表走查中,首先讀取TTBR 312以識別級別0表之基址。虛擬位址的「a」位元指示級別0表中儲存有表描述符的位置,該表描述符包括指向下一表(級別1表)的基址的指標。因此,進行一個記憶體存取,以擷取儲存在級別0表中之表描述符。此表描述符指示下一表(級別1表)中之位置,且虛擬位址的「b」位元用以定位識別級別2表之基址的下一表描述符。對頁表的每一另外級別重複此過程,且最終級別表(在此實例中為級別3)包括提供實際轉換資料以用於轉換所需頁中位址的頁表項,並返回所獲得的頁表項且在L1 TLB 306中快取以便對同一頁中的位址的隨後存取可得以更迅速地處理。因此,在第3圖之實例中,在返回頁表項之前需要四個記憶體存取。在此實例中,頁大小(與一個頁表項關連之位址區塊)是4 KB,但將理解,亦可使用其他頁大小。
在諸如第3圖中圖示的使用階層頁表結構的系統中,執行完整頁表走查可較為緩慢,因為可能需要數個記憶體存取。有可用以加速頁表走查的多種快取及儲存結構。通常,最近存取的頁表項儲存在TLB中。在此情況下,可轉換虛擬位址,完全無需執行頁表走查。在其他情況下,除最終級別以外,在頁表走查級別存取的一些或全部表描述符資料可本地儲存在走查快取記憶體308中。藉由在走查快取記憶體中儲存頁表走查中一些級別的位址,對位址空間中鄰近區域的隨後之頁表走查可藉由在遍曆階層結構時消除記憶體存取中的至少一者而更快執行。例如,識別頁表項在最終級別3表中的位址的級別2表描述符可在走查快取記憶體中快取,以便下次需要對級別3表進行僅一個記憶體存取,以存取同一頁表項。加速頁表走查的另一方式是在資料快取記憶體122中儲存一些頁表項或頁表部分,與須從主記憶體120中讀取相比,此方式允許更快的存取。視當前的快取政策而定,用以擷取TLB中未中的兩個虛擬位址的頁表項的耗時可能取決於表或頁描述符資料儲存在何處而在明顯程度上不同。
在具有如上文所論述的兩階段位址轉換的系統中,此延遲變動可能加劇,因為如第4圖所示,每當獲得表描述符(提供下一級別頁表的基址)以作為階段1位址轉換的部分時,描述符僅具有中間實體位址的形式。為存取下一級別表,此中間實體位址需要被轉換為實體位址,從而需要階段2轉換。如若所需IPA在S2 L1或L2 TLB 314、316中命中,則階段2轉換可相對較快。然而,在最快的情況下,每當在S1頁表走查中獲得另一表描述符時,可需要執行額外S2頁表走查。如若每一階段使用N個頁表級別,則定位最終位址轉換資料以用於將原始VA轉換至對應IPA所需的記憶體存取數目隨著N的平方而增長。此加劇了針對不同的位址轉換執行頁表走查所耗時間的可能變動。
因為哪些資料可易於及不可易於用於位址轉換電路系統有眾多排列,因此對位址轉換是否儲存在TLB中的離散指示不指示TLB未中對效能的影響。如若走查快取記憶體308或資料快取記憶體122的大部分可用以避免最壞情況頁表走查的全部損失,則大量TLB未中是可接受的。另一方面,指示僅存在少數TLB未中的報告可表示資料處理設備正在有效執行。然而,如若該等未中全部需要全面頁表走查,如第4圖中圖示之一者,則僅未中數目的指示確實反映成本效能的最大程度。
第5圖圖示效能監測電路系統110之一個實例。效能監測電路系統110包括延遲計數器502、事件計數器504、時間戳器506、配置暫存器508及緩衝器510。延遲計數器502及時間戳器506提供測量延遲的備選方法,任一方法可對應於第1圖中之轉換延遲測量電路系統112。延遲計數器502可在開始事件與結束事件之間遞增,或開始事件與結束事件的時序可由時間戳器506記錄。
緩衝器510用以儲存所記錄的位址轉換延遲,及關於其他類型之指令的其他效能指示符。例如,緩衝器510亦可用以儲存: • 與取樣指令相關的時間戳; • 發出指令時所依據的上下文、特權級別及安全狀態; • 指令是否產生異常; • 指令是否完成執行; • 指令的程式計數器虛擬位址; • 指令是否是分支、載入、儲存或其他; • 指令是否是條件性的(條件性選擇); • 總延遲,亦即從指令被調度以用於發送到正完成指令的週期計數; • 發送延遲,亦即從指令被調度以用於發送到正發送的μ操作的週期計數; • 其他事件、延遲計數器及/或位址的記錄。
對於載入、儲存或原子指令,緩衝器510亦可記錄: • 正在存取的虛擬及實體位址。 • 指令類型。 • 位址轉換延遲。 • 轉換資料要求是否在TLB中命中。 • 資料存取是否在第一級別快取記憶體中命中。 • 資料存取是否在任何其他級別的快取記憶體中命中。 • 存取是否存取多套接字系統中的另一套接字。 • 用於載入的資料來源的指示符。
可能具有記錄的位址轉換延遲的其他指令可包括快取維護指令,以用於使來自資料快取記憶體122的資料無效或清除該資料,該資料快取記憶體122對應於規定的虛擬位址或虛擬位址區塊;或包括需要轉換虛擬位址的任何另一種指令。
分封化格式可用以將與給定指令關連之資料寫入緩衝器510。例如,不同的封包標頭可用以識別何種類型的效能監測資訊被納入每一封包。在一些實例中,全部效能資訊可儲存在晶片上緩衝器510中,並由執行指令讀出以讀取緩衝器,或可提供接口以用於從外部裝置存取緩衝器。然而,此舉可需要相對大的緩衝器,該大緩衝器就硬體而言可十分昂貴,且可能可行地包括的緩衝器大小仍將僅允許收集相對小的樣本數目。因此,另一方法可為提供晶片上緩衝器510以在截獲監測資料時暫時儲存少量監測資料,且在緩衝器510變滿時,觸發異常,該異常導致資料從緩衝器510中讀出並寫出至記憶體系統118,以使得緩衝器510可經重寫,因為更多資料被效能監測電路系統110截獲。此允許收集眾多樣本。
配置暫存器508可包括控制位元以指定將記錄上述事件中哪些事件。配置暫存器508可以可程式化方式被軟體設定,或在設備製造期間可為固線式的。
效能監測電路系統500亦包括過濾電路系統512,該電路系統經配置以過濾所記錄的資料。收集的樣本可基於指令類型而過濾。例如,可僅儲存記錄以用於載入指令,但不可儲存從其他指令收集的任何資料,包括分支或儲存指令。或者,過濾可基於事件或事件組合,如誤預測分支、TLB未中存取、級別1快取記憶體再充填存取,及/或棄置的指令。配置暫存器508可規定將執行怎樣的過濾。在一個實例中,過濾電路系統512基於延遲而執行過濾,以便僅儲存某種記錄,該等記錄具有一總延遲(例如從調度到棄置),該總延遲大於給定臨限值,或僅儲存某種記錄,該等記錄具有一位址轉換延遲,該位址轉換延遲大於可程式化臨限值。當過濾電路系統512決定對應於取樣指令的資料滿足過濾需求時,資料可儲存在緩衝器510中,然後寫出至記憶體系統。或者,對應於取樣指令的全部資料可在最初寫入緩衝器,無論是否滿足過濾標準,但隨後過濾電路系統512可先過濾儲存在緩衝器中之資料,然後在將資料寫入系統記憶體。
第6圖圖示與位址轉換過程關連之不同事件的一實例,該實例包括: • E1:在執行階段104中,一指令被提供至位址生成單元以用於生成所需虛擬位址(在一些情況下,位址生成單元可為用於生成位址的專用功能單元,或者位址生成單元可僅為已提供用於處理其他任務的某種電路系統(例如算術/邏輯單元),該等其他任務亦可生成位址(例如藉由向偏置添加基址)); • E2:虛擬位址由位址生成單元生成; • E3:虛擬位址請求被發送至S1 MMU; • E4:中間實體位址由S1 MMU返回; • E5:中間實體位址提供至S2 MMU(應注意,在一些情況下,E4及E5可大體為同一事件); • E6:一實體位址由S2 MMU返回;及 • E7:使用所獲得的實體位址的資料存取請求被發送至記憶體系統118。
如第6圖所示,位址轉換過程可對應於在E3中虛擬位址請求被發送至MMU與在E6中返回實體位址之間執行的操作。因此,在一些情況下,可測量開始事件E3與結束事件E6之間的位址轉換延遲。該等事件之間的時間取決於諸多因素,如轉換資料是否儲存在TLB中,頁表項位址是否在走查快取記憶體中快取,或頁表項是否在記憶體中之資料快取記憶體中快取,且可回應於不同的指令而改變較大程度。因而,測量E3與E6之間的位址轉換延遲以提供有用資訊以用於診斷觀測到的效能損失原因是有優勢的。
然而,在其他情況下,用於測量位址轉換延遲的開始事件可能早於在E3中被發送的虛擬位址請求。例如,儘管E3與E6之間的推遲在不同轉換時可為不同,但每一轉換中E1與E3之間的推遲或E2與E3之間的推遲可相對恆定,例如在時間E1(此時指令被提供至位址生成單元)與時間E3(此時虛擬位址請求被發送至MMU)之間沒有指令佇列的情況下。因此,其他實例可使用E1或E2作為開始事件,自此開始事件起測量延遲。儘管E1與E3之間的時段實際上可能不是位址轉換過程的一部分,但在E1或E2開始計數在一些情況下可更便於在電路系統中實施,且如若E1與E3之間的時間對於不同指令不太可能有顯著不同,則此將仍提供對由給定指令的位址轉換所導致的相對推遲的測量。
類似地,用於測量位址轉換延遲的結束事件無須是E6中實體位址的返回。相反,結束事件可能為在E7中發送資料存取請求之時。
此外,應注意,測量無須自E3開始。相反,在測量於隨後時間E3'開始之前亦可包括推遲。此舉可用於允許任何效能關鍵過程,該等過程可藉由開始進行將首先啟動的測量而變慢。只要E3與E3'之間的推遲在數個測量中皆為恆定(例如因為取決於信號傳播通過某一組邏輯閘極的推遲),則稍後在E3'開始計數延遲將僅導致與所記錄的絕對延遲值的固定偏離,不會影響針對不同轉換測得的相對延遲,該等相對延遲可能比絕對延遲更有益處。同樣,可在E6之後及在測量停止於E6'之前包括推遲。
將理解,第6圖是可在位址轉換過程測量期間使用的事件的一個實例,且可改為使用其他事件。一般而言,可使用任何開始或結束事件,該等事件允許記錄可代表位址轉換過程中至少部分的延遲的值。
第6圖圖示具有兩階段位址轉換過程之一實例,並在此情況下,亦將有可能記錄事件E3與E4之間的延遲(對應於階段1轉換延遲),或事件E5與E6之間的延遲(對應於階段2轉換延遲),以作為唯一延遲測量或與亦測量E1/E2/E3與E6/E7之間的總延遲相結合。在其他實例中,位址轉換過程可包括單一階段虛擬至實體位址轉換。
儘管第6圖中未圖示,但階段1轉換中的事件E3與E4之間可需要頁表走查,或階段2轉換中的事件E5與E6之間可需要頁表走查。在此情況下,另一選項可為使開始事件成為頁表走查的開始(例如偵測TLB未中或發送頁表項請求到記憶體),而結束事件成為頁表走查的完成(例如從記憶體系統返回所需頁表項)。因此,延遲亦可被測量作為與位址轉換過程之僅部分(例如頁表走查)關連之延遲。
第7圖圖示用於對指令進行取樣的方法。在步驟700中,重置計數器。然後,過程移至步驟702,在步驟702中,過程對解碼指令進行計數。在步驟704中,檢查計數器是否已達到取樣臨限值。如非如此,計數器返回對解碼指令進行計數。另一方面,如若計數器已達到取樣臨限值,則過程移至步驟706,在步驟706中,計數器針對更多隨機指令數目遞增或遞減。此舉是防止取樣週期變得重複,從而導致多樣性更低的取樣群體。然後,在步驟708中,檢查先前選擇的指令是否仍在飛行(例如先前選擇的指令是否已到達回寫階段)。如若先前選擇的指令不再飛行,則下一解碼指令被選為用於在步驟710進行效能監測的指令。然後,過程返回步驟700。此方法可例如藉由第1圖中指令選擇電路系統108來實施。如上文所論述,不對解碼巨集指令進行計數,計數器亦可對生成的微操作數目進行計數。同時,其他實例可對根據週期時間或數目(而非指令數目)定義的取樣間隔進行計數。此外,計數器可從某一開始值起計數,最高達給定臨限值或最低至零。
第8圖圖示用於執行轉換延遲測量的方法。在步驟600中,轉換延遲測量電路系統112監測選擇指令的開始事件是否已出現。當開始事件出現時,過程移至步驟602,在該步驟中,計數器回應於開始事件而啟動。計數器可在開始事件之後立即啟動,或在啟動計數器之前可出現固定推遲,如上文針對第6圖所論述。在步驟604中,轉換延遲測量電路系統112監測選擇指令的結束事件是否出現。當結束事件出現時,過程移至步驟606並停止計數器。可包括可選步驟608,在此情況下,延遲與臨限值相比,且如若延遲大於臨限值,則在步驟610中延遲被寫入緩衝器。或者,無論延遲為何,延遲皆可被寫入緩衝器510,但如若延遲小於臨限值則阻止延遲寫入記憶體。在步驟612中,過程重置計數器並返回步驟600。
針對數個取樣指令測得的位址轉換延遲亦可用以得出其他資訊,該等資訊可用於分析給定程式的執行效能。例如,可決定諸如最小延遲、最大延遲或平均延遲之參數。儘管有可能得出該種晶片上額外資訊,但實際上一旦截獲的延遲值已從緩衝器510或記憶體系統118中讀出,則此操作可在外部更簡單地實現。儘管未經取樣的指令中之一些者有可能遇到大於已判定最大值的延遲或小於已判定最小值的延遲,但如若選擇統計有效的取樣群體,則基於取樣指令判定的最小/最大量可仍僅提供對整個程序中最小/最大延遲的合理預估。類似地,如若已測量過全部轉換之延遲,則憑藉統計有效的取樣群體,藉由對取樣延遲求平均值而判定的平均延遲可提供對實際平均值的合理預估。
亦有可能藉由使用測得的延遲及對在給定時段中進行轉換總數目的計數,來預估平均佇列深度(在給定時間在位址轉換電路系統114中待定的未完成轉換的平均數目)。利特尔定律說明,穩定系統中的顧客長期平均數L等於長期平均有效到達率λ乘以顧客在系統中花費的平均時間W;L = λW。可提供轉換計數器(或者在效能監測電路系統110或在位址轉換電路系統114 (MMU)自身中)以對在給定週期數目N中進行的轉換之總數目T進行計數。長期平均有效到達率λ可決定為T/N,因此平均佇列深度L可被計算為TW/N,其中W是藉由如上文中所論述使用測得的轉換延遲來判定的平均轉換延遲。
在本申請案中,詞語「經配置以(configured to...)」用以意謂著設備元件具有一配置,該配置能夠執行定義之操作。在此上下文中,「配置(configuration)」意謂著硬體或軟體互連之排列或方式。例如,該設備可具有提供定義之操作的專用硬體,或處理器或其他處理裝置可經程式化以執行該功能。「經配置以(configured to)」不暗示設備元件需要以任何方式變更以便提供定義之操作。
儘管本發明之說明性實施例已在本案中藉由參考附圖進行詳細描述,但將理解,本發明並非限定於彼等精確實施例,且熟習該項技術者在不背離本發明範圍及精神之情況下可在彼等實施例中實現多種變更及修改,如所附之申請專利範圍所定義。
10‧‧‧處理管線100‧‧‧解碼階段102‧‧‧發送階段104‧‧‧執行階段105‧‧‧暫存器106‧‧‧回寫階段108‧‧‧指令選擇電路系統110‧‧‧效能監測電路系統112‧‧‧轉換延遲測量電路系統114‧‧‧位址轉換電路系統116‧‧‧轉換旁看緩衝器118‧‧‧記憶體系統120‧‧‧資料快取記憶體122‧‧‧記憶體302‧‧‧階段1(S1) MMU304‧‧‧階段2(S2) MMU306‧‧‧級別1 TLB308‧‧‧走查快取記憶體310‧‧‧級別2 TLB312‧‧‧轉換表基址暫存器314‧‧‧S2 L1316‧‧‧L2 TLB320‧‧‧轉換表基址暫存器502‧‧‧延遲計數器504‧‧‧事件計數器506‧‧‧時間戳器508‧‧‧配置暫存器510‧‧‧緩衝器512‧‧‧過濾電路系統600‧‧‧步驟602‧‧‧步驟604‧‧‧步驟606‧‧‧步驟608‧‧‧步驟610‧‧‧步驟612‧‧‧步驟700‧‧‧步驟702‧‧‧步驟704‧‧‧步驟706‧‧‧步驟708‧‧‧步驟710‧‧‧步驟
第1圖示意地圖示處理管線的一個實例;
第2圖示意地圖示具有兩個MMU的位址轉換電路系統之一個實例;
第3圖圖示多級頁表走查之一實例;
第4圖圖示多級頁表走查之一實例,在該實例中,有兩個位址轉換階段;
第5圖示意地圖示效能監測電路系統之一個實例;
第6圖圖示在測量位址轉換過程之延遲時可被考慮的不同開始事件及結束事件的一個實例;
第7圖圖示用於對指令進行取樣的方法;
第8圖圖示用於測量位址轉換延遲的方法。
國內寄存資訊 (請依寄存機構、日期、號碼順序註記) 無
國外寄存資訊 (請依寄存國家、機構、日期、號碼順序註記) 無
(請換頁單獨記載) 無
10‧‧‧處理管線
100‧‧‧解碼階段
102‧‧‧發送階段
104‧‧‧執行階段
105‧‧‧暫存器
106‧‧‧回寫階段
108‧‧‧指令選擇電路系統
110‧‧‧效能監測電路系統
112‧‧‧轉換延遲測量電路系統
114‧‧‧位址轉換電路系統
116‧‧‧轉換旁看緩衝器
118‧‧‧記憶體系統
120‧‧‧資料快取記憶體
122‧‧‧記憶體
Claims (22)
- 一種用於資料處理的設備,包括:處理電路系統,用以處理指令;位址轉換電路系統,用以回應於來自該處理電路系統的一虛擬位址請求而將一虛擬位址轉換至一實體位址;及轉換延遲測量電路系統,用以測量一位址轉換過程之至少部分的一測量延遲,該位址轉換過程由該位址轉換電路系統回應於一給定指令而執行,其中該轉換延遲測量電路系統經配置以從該測量延遲排除:使用由於轉換該虛擬位址請求中所指定的該虛擬位址而取得的該實體位址的一資料存取操作的一延遲;其中該給定指令係為該測量延遲所歸屬的一特定指令。
- 如請求項1所述之設備,其中該位址轉換過程包括一第一轉換階段以用於轉換該虛擬位址至一中間位址,且包括一第二轉換階段以用於轉換該中間位址至該實體位址。
- 如請求項2所述之設備,其中該延遲包括該第一轉換階段及該第二轉換階段的一總延遲。
- 如請求項2所述之設備,其中該延遲包括該第一轉換階段及該第二轉換階段中被選擇的一者的 一延遲。
- 如請求項1所述之設備,其中該位址轉換電路系統經配置以獲得轉換資料,以用於藉由執行一頁表走查而從一記憶體轉換一給定位址,該頁表走查使用儲存在該記憶體中之複數個頁表級別執行。
- 如請求項1所述之設備,包括指令選擇電路系統以選擇一指令子集,該指令子集由該處理電路系統處理;其中該轉換延遲測量電路系統經配置以當該指令子集中之一者需要該位址轉換過程時測量該延遲。
- 如請求項6所述之設備,其中該轉換延遲測量電路系統經配置以基於以下各者中至少一者來識別一給定指令是否是該指令子集中之一者:一標記值,與該給定指令關連,該標記值指示該給定指令是否是該子集中之一者;及一識別符,與該給定指令單獨儲存,該識別符識別該給定指令是該指令子集中之一者。
- 如請求項6所述之設備,其中該指令選擇電路系統經配置以判定自選擇一前述指令作為該子集中之一者起是否已經過一預定間隔,且在該預定間隔經過之後選擇另一指令以作為該子集中之一者。
- 如請求項8所述之設備,其中回應於已經過 的該預定間隔,當被選擇作為該子集中之一者的該前一指令仍進展超過一預定處理階段時,則該指令選擇電路系統經配置以延緩選擇另一指令以作為該子集中之一者,直至該前一指令已發展超過該預定階段。
- 如請求項6所述之設備,包括效能監測電路系統,該效能監測電路系統除由該轉換延遲測量電路系統測得的該延遲以外,亦用以監測與該指令子集的處理關連之其他資訊之至少一項目。
- 如請求項10所述之設備,其中其他資訊中之該至少一項目包括以下各者中至少一者:該給定指令的一位址;一上下文識別符,識別與該給定指令關連之一上下文;該給定指令的一指令類型;一位址,將回應於該給定指令而被轉換;回應於該給定指令而獲得的一轉換位址;與該給定指令的處理關連之一總延遲;該給定指令的一位址請求在一轉換旁看緩衝器中是否命中的一指示;及該給定指令的一資料請求在一資料快取記憶體中是否命中的一指示。
- 如請求項1所述之設備,其中該轉換延遲 測量電路系統經配置以測量針對該給定指令而偵測到的一開始事件與一結束事件之間的該延遲。
- 如請求項12所述之設備,其中該轉換延遲測量電路系統經配置以回應於針對該給定指令由該位址轉換電路系統接收到的對一位址轉換的一請求而偵測該開始事件。
- 如請求項12所述之設備,其中該轉換延遲測量電路系統經配置以回應於該給定指令而偵測該開始事件,該給定指令被發送至一功能電路單元,該功能電路單元經配置以發送位址轉換請求至該位址轉換電路系統。
- 如請求項12所述之設備,其中該轉換延遲測量電路系統經配置以回應於由該位址轉換電路系統返回的一轉換位址而偵測該結束事件。
- 如請求項12所述之設備,其中該轉換延遲測量電路系統經配置以回應於一資料存取請求而偵測該結束事件,該資料存取請求規定該位址轉換電路系統獲取的被發送至一資料儲存器的一轉換位址。
- 如請求項12所述之設備,包括一計數器,用以回應於該開始事件而開始對該延遲進行計數,並回應於該結束事件而停止對該延遲計數。
- 如請求項1所述之設備,其中該轉換延遲 測量電路系統經配置以將該測得延遲寫入一儲存器位置。
- 如請求項18所述之設備,其中該儲存器位置包括一效能監測緩衝器以用於儲存在該給定指令的處理期間監測的資料。
- 如請求項18所述之設備,其中該儲存器位置包括一記憶體區域。
- 如請求項18所述之設備,其中該轉換延遲測量電路系統經配置以在該測得延遲大於一臨限值時將該測得延遲寫入該儲存器位置。
- 一種資料處理方法,該方法包括以下步驟:處理指令;回應於一虛擬位址請求而將一虛擬位址轉換至一實體位址;及測量一位址轉換過程之至少部分的一測量延遲,該位址轉換過程回應於一給定指令而執行,其中該轉換步驟從該測量延遲排除:使用由於轉換該虛擬位址請求中所指定的該虛擬位址而取得的該實體位址的一資料存取操作的一延遲;其中該給定指令係為該測量延遲所歸屬的一特定指令。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/002,648 US10140216B2 (en) | 2016-01-21 | 2016-01-21 | Measuring address translation latency |
US15/002,648 | 2016-01-21 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201727495A TW201727495A (zh) | 2017-08-01 |
TWI739748B true TWI739748B (zh) | 2021-09-21 |
Family
ID=56113006
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW105119395A TWI739748B (zh) | 2016-01-21 | 2016-06-21 | 位址轉換延遲之測量 |
Country Status (8)
Country | Link |
---|---|
US (1) | US10140216B2 (zh) |
EP (1) | EP3405875B1 (zh) |
JP (1) | JP6936803B2 (zh) |
KR (1) | KR102685220B1 (zh) |
CN (1) | CN108475236B (zh) |
IL (1) | IL260141B (zh) |
TW (1) | TWI739748B (zh) |
WO (1) | WO2017125701A1 (zh) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9830187B1 (en) * | 2015-06-05 | 2017-11-28 | Apple Inc. | Scheduler and CPU performance controller cooperation |
US20190188154A1 (en) * | 2017-12-15 | 2019-06-20 | Intel Corporation | Translation pinning in translation lookaside buffers |
JP7155629B2 (ja) * | 2018-06-07 | 2022-10-19 | 富士通株式会社 | 演算処理装置、情報処理装置、及び演算処理装置の制御方法 |
US10725928B1 (en) | 2019-01-09 | 2020-07-28 | Apple Inc. | Translation lookaside buffer invalidation by range |
GB2582362B (en) | 2019-03-21 | 2021-08-04 | Advanced Risc Mach Ltd | Page table structure |
US11163695B2 (en) | 2019-12-03 | 2021-11-02 | International Business Machines Corporation | Methods and systems for translating virtual addresses in a virtual memory based system |
CN113050874A (zh) * | 2019-12-26 | 2021-06-29 | 华为技术有限公司 | 一种内存设置方法以及装置 |
US11663107B2 (en) * | 2020-02-21 | 2023-05-30 | Arm Limited | Data processing system performance monitoring |
US11386203B2 (en) * | 2020-06-15 | 2022-07-12 | Western Digital Technologies, Inc. | Detection of compromised storage device firmware |
JP7537135B2 (ja) | 2020-06-15 | 2024-08-21 | 富士通株式会社 | 半導体装置 |
US11422946B2 (en) | 2020-08-31 | 2022-08-23 | Apple Inc. | Translation lookaside buffer striping for efficient invalidation operations |
US11615033B2 (en) | 2020-09-09 | 2023-03-28 | Apple Inc. | Reducing translation lookaside buffer searches for splintered pages |
KR20230105441A (ko) * | 2022-01-04 | 2023-07-11 | 삼성전자주식회사 | 스토리지 시스템과 장치 및 그 동작 방법 |
US20240111687A1 (en) * | 2022-10-04 | 2024-04-04 | MIPS Tech, LLC | Translating Virtual Memory Addresses to Physical Memory Addresses |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070283125A1 (en) * | 2006-06-05 | 2007-12-06 | Sun Microsystems, Inc. | Dynamic selection of memory virtualization techniques |
TW201447579A (zh) * | 2013-03-14 | 2014-12-16 | Nvidia Corp | 追蹤統一虛擬記憶體系統內分頁錯誤的錯誤緩衝區 |
TW201523254A (zh) * | 2013-12-04 | 2015-06-16 | Univ Nat Taiwan | 記憶體配置與分頁位址轉換系統及方法 |
US20150178220A1 (en) * | 2013-12-23 | 2015-06-25 | Arm Limited | Address translation in a data processing apparatus |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS63201742A (ja) * | 1987-02-17 | 1988-08-19 | Matsushita Electric Ind Co Ltd | アドレス変換装置 |
US5151981A (en) * | 1990-07-13 | 1992-09-29 | International Business Machines Corporation | Instruction sampling instrumentation |
JPH05210591A (ja) * | 1992-01-31 | 1993-08-20 | Matsushita Electric Ind Co Ltd | アドレス変換装置 |
US5586283A (en) * | 1993-10-07 | 1996-12-17 | Sun Microsystems, Inc. | Method and apparatus for the reduction of tablewalk latencies in a translation look aside buffer |
US5937437A (en) * | 1996-10-28 | 1999-08-10 | International Business Machines Corporation | Method and apparatus for monitoring address translation performance |
US5914730A (en) * | 1997-09-09 | 1999-06-22 | Compaq Computer Corp. | System and method for invalidating and updating individual GART table entries for accelerated graphics port transaction requests |
US6202127B1 (en) * | 1997-11-26 | 2001-03-13 | Compaq Computer Corporation | Apparatus for spatial and temporal sampling in a computer memory system |
US6195748B1 (en) | 1997-11-26 | 2001-02-27 | Compaq Computer Corporation | Apparatus for sampling instruction execution information in a processor pipeline |
JP2001142737A (ja) * | 1999-11-10 | 2001-05-25 | Matsushita Electric Ind Co Ltd | メモリ管理装置 |
US6665788B1 (en) | 2001-07-13 | 2003-12-16 | Advanced Micro Devices, Inc. | Reducing latency for a relocation cache lookup and address mapping in a distributed memory system |
US7624248B1 (en) * | 2006-04-14 | 2009-11-24 | Tilera Corporation | Managing memory in a parallel processing environment |
US8464023B2 (en) | 2010-08-27 | 2013-06-11 | International Business Machines Corporation | Application run-time memory optimizer |
US9047090B2 (en) | 2012-08-07 | 2015-06-02 | Qualcomm Incorporated | Methods, systems and devices for hybrid memory management |
US9213649B2 (en) * | 2012-09-24 | 2015-12-15 | Oracle International Corporation | Distributed page-table lookups in a shared-memory system |
JP6099458B2 (ja) * | 2013-03-29 | 2017-03-22 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | 特定の仮想マシンに関連するトレース・データを得るためのコンピュータ実装方法、プログラム、トレーサ・ノード |
EP2849071A1 (en) * | 2013-09-16 | 2015-03-18 | ST-Ericsson SA | Pre-fetch in a multi-stage memory management system |
US9507729B2 (en) * | 2013-10-01 | 2016-11-29 | Synopsys, Inc. | Method and processor for reducing code and latency of TLB maintenance operations in a configurable processor |
US10210096B2 (en) | 2013-10-01 | 2019-02-19 | Ampere Computing Llc | Multi-stage address translation for a computing device |
US9251088B2 (en) * | 2013-10-30 | 2016-02-02 | Globalfoundries Inc. | Mechanisms for eliminating a race condition between a hypervisor-performed emulation process requiring a translation operation and a concurrent translation table entry invalidation |
-
2016
- 2016-01-21 US US15/002,648 patent/US10140216B2/en active Active
- 2016-06-07 KR KR1020187023245A patent/KR102685220B1/ko active IP Right Grant
- 2016-06-07 EP EP16727827.4A patent/EP3405875B1/en active Active
- 2016-06-07 JP JP2018536763A patent/JP6936803B2/ja active Active
- 2016-06-07 WO PCT/GB2016/051667 patent/WO2017125701A1/en active Application Filing
- 2016-06-07 CN CN201680078640.1A patent/CN108475236B/zh active Active
- 2016-06-21 TW TW105119395A patent/TWI739748B/zh active
-
2018
- 2018-06-19 IL IL260141A patent/IL260141B/en active IP Right Grant
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070283125A1 (en) * | 2006-06-05 | 2007-12-06 | Sun Microsystems, Inc. | Dynamic selection of memory virtualization techniques |
TW201447579A (zh) * | 2013-03-14 | 2014-12-16 | Nvidia Corp | 追蹤統一虛擬記憶體系統內分頁錯誤的錯誤緩衝區 |
TW201523254A (zh) * | 2013-12-04 | 2015-06-16 | Univ Nat Taiwan | 記憶體配置與分頁位址轉換系統及方法 |
US20150178220A1 (en) * | 2013-12-23 | 2015-06-25 | Arm Limited | Address translation in a data processing apparatus |
Also Published As
Publication number | Publication date |
---|---|
IL260141B (en) | 2020-06-30 |
JP6936803B2 (ja) | 2021-09-22 |
US20170212844A1 (en) | 2017-07-27 |
EP3405875A1 (en) | 2018-11-28 |
CN108475236B (zh) | 2023-02-28 |
US10140216B2 (en) | 2018-11-27 |
JP2019506670A (ja) | 2019-03-07 |
EP3405875B1 (en) | 2021-08-18 |
TW201727495A (zh) | 2017-08-01 |
KR102685220B1 (ko) | 2024-07-16 |
IL260141A (en) | 2018-07-31 |
WO2017125701A1 (en) | 2017-07-27 |
CN108475236A (zh) | 2018-08-31 |
KR20180105169A (ko) | 2018-09-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI739748B (zh) | 位址轉換延遲之測量 | |
US7827541B2 (en) | Method and apparatus for profiling execution of code using multiple processors | |
TWI564719B (zh) | 具有多個資料預取器的處理器、所述處理器的操作方法及所述處理器操作的電腦程式產品 | |
US10761998B2 (en) | Recording set indicator | |
JP4528307B2 (ja) | メモリ管理に対する動的なパフォーマンスモニタリングベースのアプローチ | |
JP4371452B2 (ja) | コンピュータメモリシステムにおいて空間的及び時間的サンプリングを行う装置 | |
TWI596479B (zh) | 具有資料預取器的處理器及其運作方法 | |
US20110119426A1 (en) | List based prefetch | |
US20110119469A1 (en) | Balancing workload in a multiprocessor system responsive to programmable adjustments in a syncronization instruction | |
JPH11316711A (ja) | メモリシステムトランザクションの特性の統計値を推定する方法 | |
US6499116B1 (en) | Performance of data stream touch events | |
US20110153942A1 (en) | Reducing implementation costs of communicating cache invalidation information in a multicore processor | |
WO2013100981A1 (en) | Performance monitoring resources programmed status | |
US20080141002A1 (en) | Instruction pipeline monitoring device and method thereof | |
US7051177B2 (en) | Method for measuring memory latency in a hierarchical memory system | |
US20220206955A1 (en) | Automated translation lookaside buffer set rebalancing | |
US20140229715A1 (en) | Apparatus and method for providing eventing ip and source data address in a statistical sampling infrastructure | |
JP2023526554A (ja) | 処理回路によって処理されるサンプル操作のプロファイリング | |
US20080140993A1 (en) | Fetch engine monitoring device and method thereof | |
US11176042B2 (en) | Method and apparatus for architectural cache transaction logging | |
JP2009217385A (ja) | プロセッサ及びマルチプロセッサ | |
US20080141008A1 (en) | Execution engine monitoring device and method thereof | |
US20220100626A1 (en) | Monitoring performance cost of events | |
Zhu et al. | An Efficient Point-to-Point Deterministic Record-Replay Enhanced with Signatures |