TW201413454A - 比較及取代動態位址轉譯表項 - Google Patents

比較及取代動態位址轉譯表項 Download PDF

Info

Publication number
TW201413454A
TW201413454A TW102116784A TW102116784A TW201413454A TW 201413454 A TW201413454 A TW 201413454A TW 102116784 A TW102116784 A TW 102116784A TW 102116784 A TW102116784 A TW 102116784A TW 201413454 A TW201413454 A TW 201413454A
Authority
TW
Taiwan
Prior art keywords
entry
operand
tlb
field
instruction
Prior art date
Application number
TW102116784A
Other languages
English (en)
Other versions
TWI622880B (zh
Inventor
Dan F Greiner
Robert R Rogers
Gustav E Sittmann Iii
Original Assignee
Ibm
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ibm filed Critical Ibm
Publication of TW201413454A publication Critical patent/TW201413454A/zh
Application granted granted Critical
Publication of TWI622880B publication Critical patent/TWI622880B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • G06F9/30047Prefetch instructions; cache control instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3824Operand accessing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/68Details of translation look-aside buffer [TLB]
    • G06F2212/683Invalidation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Executing Machine-Instructions (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

比較一第一運算元與一第二運算元。若該第一運算元與該第二運算元相等,則將暫存器R1+1之內容儲存於第二運算元位置處,且自組態中之已指定CPU清除掉經由使用儲存體中之已取代項而形成的已指明型別之所有轉譯後備緩衝器(TLB)表項,及經由使用已清除較高層級TLB表項而形成之所有較低層級TLB表項。用一新項來取代一有效DAT表項,且自TLB去除掉該組態中之所有CPU上之(至少)單一項的任何複本。若該第一運算元與該第二運算元不相等,則將該第二運算元載入於第一運算元位置處。比較結果係由條件碼指示。本發明提供一種方法、系統及電腦程式產品。

Description

比較及取代動態位址轉譯表項
本發明大體上係關於計算環境內之處理,且尤其係關於以下各者中之一或多者:比較及取代位址表中之項;清除緩衝器項;及用於以上操作之指令。
如2003年5月12日申請的據此以引用方式併入之美國專利7284100之「INVALIDATING STORAGE,CLEARING BUFFER ENTRIES,AND AN INSTRUCTION THEREFORE」所描述,使諸如儲存體區段或儲存體區的選擇之儲存體單元無效化。藉由設定位於對應於待無效化儲存體單元之資料結構項中的無效化指示符而促進該無效化。另外,清除與已無效化儲存體單元或其他選定儲存體單元相關聯之緩衝器項。提供一指令以執行無效化及/或清除。此外,在無任何無效化的情況下清除與特定位址空間相關聯之緩衝器項。此清除亦係由該指令執行。該指令可以軟體、硬體、韌體或其某一組合予以實施,或該指令可被模擬。
在一實施例中,提供一種用於選擇地清除一處理器之一本端轉譯後備緩衝器(Translation Lookaside Buffer,TLB)或複數個處理器之複數個轉譯後備緩衝器的電腦程式產品。該電腦程式產品包括:電腦可讀儲存媒體,其體現有程式碼,該程式碼可由一電腦處理器讀取以執 行一方法。該方法包括:由該處理器自待執行之一機器可執行指令之一作業碼判定出該指令為一比較及取代DAT項指令,該指令包括一R1欄位及一R2欄位;及由該處理器執行該指令。該執行包括:自由一偶奇暫存器對之暫存器指定之一記憶體位置獲得一原始第二運算元,該偶奇暫存器對係由該指令之該R2欄位指明;比較一第一運算元與該所獲得原始第二運算元,該第一運算元含於由該指令之該R1欄位指明之一偶奇暫存器對的一偶數編號(偶數R1)暫存器中;基於該第一運算元等於該原始第二運算元,將該偶數R1暫存器之內容儲存於第二運算元位置中作為新第二運算元;及基於由該原始第二運算元之一值指明之一轉譯表原點而使用轉譯表項來選擇地清除對應於由DAT形成之項之所有本端轉譯後備緩衝器(TLB)項。
在另一實施例中,提供一種用於執行一比較及取代DAT項指令之系統。該系統包括:一記憶體;及一處理器,其經組態以與該記憶體通信,其中電腦系統經組態以執行一方法。該方法包括:由該處理器自待執行之一機器可執行指令之一作業碼判定出該指令為一比較及取代DAT項指令,該指令包括一R1欄位及一R2欄位;及由該處理器執行該指令。該執行包括:自由一偶奇暫存器對之暫存器指定之一記憶體位置獲得一原始第二運算元,該偶奇暫存器對係由該指令之該R2欄位指明;比較一第一運算元與該所獲得原始第二運算元,該第一運算元含於由該指令之該R1欄位指明之一偶奇暫存器對的一偶數編號(偶數R1)暫存器中;基於該第一運算元等於該原始第二運算元,將該偶數R1暫存器之內容儲存於第二運算元位置中作為新第二運算元;及基於由該原始第二運算元之一值指明之一轉譯表原點而使用轉譯表項來選擇地清除對應於由DAT形成之項之所有本端轉譯後備緩衝器(TLB)項。
在一另外實施例中,提供一種用於比較一第一運算元與一第二 位址轉譯表項之電腦實施方法。該方法包括:由該處理器自待執行之一機器可執行指令之一作業碼判定出該指令為一比較及取代DAT項指令,該指令包括一R1欄位及一R2欄位;及由該處理器執行該指令。該執行包括:自由一偶奇暫存器對之暫存器指定之一記憶體位置獲得一原始第二運算元,該偶奇暫存器對係由該指令之該R2欄位指明;比較一第一運算元與該所獲得原始第二運算元,該第一運算元含於由該指令之該R1欄位指明之一偶奇暫存器對的一偶數編號(偶數R1)暫存器中;基於該第一運算元等於該原始第二運算元,將該偶數R1暫存器之內容儲存於第二運算元位置中作為新第二運算元;及基於由該原始第二運算元之一值指明之一轉譯表原點而使用轉譯表項來選擇地清除對應於由DAT形成之項之所有本端轉譯後備緩衝器(TLB)項。
經由所描述技術而實現額外特徵及優點。本文詳細地描述其他實施例及態樣且認為其被包括。
100‧‧‧計算環境
102‧‧‧中央處理器複合體(CPC)
104‧‧‧邏輯分割區
106‧‧‧中央處理器/實體處理器資源
108‧‧‧超管理器
120‧‧‧控制器
200‧‧‧控制器
201‧‧‧中央處理器(CPU)
202‧‧‧系統序列化控制
204‧‧‧介面
206‧‧‧回應匯流排
208‧‧‧介面
210‧‧‧介面
212‧‧‧快取控制
213‧‧‧轉譯後備緩衝器(TLB)
220‧‧‧中斷控制
222‧‧‧執行控制
224‧‧‧廣播操作允許鎖存器
226‧‧‧中央處理單元(CPU)靜止鎖存器
300‧‧‧主機電腦
302‧‧‧記憶體
304‧‧‧指令提取單元
306‧‧‧指令解碼單元
308‧‧‧指令執行單元
401‧‧‧CRDTE指令
402‧‧‧M4欄位
405‧‧‧一般暫存器
410‧‧‧一般暫存器R1
411‧‧‧一般暫存器R1+1
420‧‧‧一般暫存器R2
421‧‧‧一般暫存器R2+1
430‧‧‧表
435‧‧‧第二運算元
436‧‧‧比較
440‧‧‧儲存體
445‧‧‧第二運算元位置
450‧‧‧清除
455‧‧‧將所得條件碼設定至0
460‧‧‧第一運算元位置
465‧‧‧將所得條件碼設定至1
501‧‧‧比較值
510‧‧‧取代值
520‧‧‧欄位
521‧‧‧欄位
522‧‧‧欄位
523‧‧‧欄位
524‧‧‧欄位
530‧‧‧欄位
531‧‧‧欄位
532‧‧‧欄位
533‧‧‧欄位
534‧‧‧欄位
540‧‧‧一般暫存器R2+1
541‧‧‧欄位
542‧‧‧一般暫存器R2+1
550‧‧‧一般暫存器R3
551‧‧‧欄位
552‧‧‧欄位
553‧‧‧欄位
554‧‧‧欄位
555‧‧‧欄位
601‧‧‧欄位
602‧‧‧M4欄位
700‧‧‧電腦程式產品
702‧‧‧電腦可用媒體
704‧‧‧電腦可讀程式碼構件或邏輯
額外目標、特徵及優點自結合隨附圖式而進行之以下詳細描述變得顯而易見,在該等圖式中:圖1描繪併入及使用一或多個態樣之計算環境之一實施例;圖2描繪與圖1之控制器相關聯的另外細節之一實施例;圖3描繪可模擬另一電腦之主機電腦之一實施例;圖4描繪COMPARE AND REPLACE DAT TABLE ENTRY指令之指令影像,及其操作;圖5描繪COMPARE AND REPLACE DAT TABLE ENTRY指令之暫存器運算元;圖6描繪M4欄位;及圖7描繪電腦可讀媒體。
計算環境可使用虛擬儲存體,該虛擬儲存體通常維持於輔助儲存體中以增加可用儲存體之大小。當參考虛擬儲存體之頁時,用來參考該頁之虛擬位址係藉由動態位址轉譯而轉譯至真實儲存體位址。若該轉譯成功,則虛擬儲存體有效;否則,虛擬儲存體無效。虛擬儲存體之頁係由頁表項中之無效位元指示為有效或無效,若該頁有效,則該項包括真實儲存體位址。
可一次一頁地使儲存體之頁無效化。舉例而言,在基於由International Business Machines Corporation提供之z/Architecture之計算環境中,使用被稱作無效化頁表項(Invalidate Page Table Entry,IPTE)指令之指令以使虛擬儲存體中之一或個頁無效化。無效化包括設定與虛擬儲存體相關聯且位於實體主儲存體中之控制結構中之無效指示符,以指示出虛擬儲存體中之位置之虛擬位址不能藉由動態位址轉譯而轉譯至實體主儲存體位址,亦被稱作真實位址。另外,使用該指令以清除與頁相關聯之內部機器緩衝器項,該等項可在動態位址轉譯期間用以避免存取實體主儲存體中之控制結構。舉例而言,在z/Architecture中,存在虛擬位址至真實位址之動態位址轉譯期間使用之轉譯後備緩衝器。當使儲存體之頁無效化時,亦自對應緩衝器清除掉與彼頁相關聯之項。
亦存在使能夠去除整個轉譯後備緩衝器之指令。舉例而言,在z/Architecture中,被稱作比較與交換及去除(Compare and Swap and Purge,CSP)指令之指令去除組態中之所有CPU中之轉譯後備緩衝器的所有項;PURGE TLB清除執行該指令之CPU上之TLB的所有項。
轉譯後備緩衝器
為了增強效能,通常實施動態位址轉譯機制,使得在區表、區段表及頁表中指定之資訊中之一些維持於被稱作轉譯後備緩衝器(TLB)之特殊緩衝器中。CPU必要地參考真實或絕對儲存體中之DAT 表項以僅用於對彼項之初始存取。可將此資訊置放於TLB中,且可藉由使用TLB中之資訊來執行後續轉譯。出於操作一致性起見,亦可藉由使用TLB中之資訊來執行藉由真實空間指明而指定之虛擬等於真實轉譯(virtual-equals-real translation)。TLB之存在在如下程度上影響轉譯處理序:(1)真實或絕對儲存體中之表項之內容的修改未必對轉譯具有立即效應(若存在);(2)位址空間控制元素(address-space-control element,ASCE)中之區第一表原點、區第二表原點、區第三表原點、區段表原點或真實空間符記原點可選擇借助於含有相同值之原點之ASCE而形成的TLB項,即使當兩個原點屬於不同型別時亦如此;及(3)若使用已指明表之TLB等效者,則可省略對照位址空間控制元素中之表長度之比較。在多CPU組態中,每一CPU具有其自己之TLB。
TLB內之項並非可由程式明確地定址。
資訊未必在所有條件下保持於TLB中,該等條件係可為此類保持所准許。此外,TLB中之資訊可在除了清除係強制之條件以外的條件下被清除。
TLB結構
TLB之邏輯結構之描述涵蓋由如由z/Architecture所定義而操作之所有系統進行的實施。TLB項被認為是屬於六個型別:TLB區第一表項、TLB區第二表項、TLB區第三表項(被共同地稱作TLB區表項)、TLB區段表項、TLB頁表項,及TLB真實空間項。TLB區表項、TLB區段表項或TLB頁表項被認為是在其內含有自真實或絕對儲存體中之表項獲得之資訊及用以自儲存體提取此資訊之屬性兩者。TLB真實空間項被認為是含有用以形成該項之頁框真實位址及真實空間符記原點以及區、區段及頁索引。
任何適用TLB區表項、TLB區段表項及TLB頁表項可合併成被稱作TLB複合表項之單一項。以相似方式,一實施可組合表層級之任何 連續子集。當發生此情形時,無需緩衝中間表原點、位移及長度。
可形成架構之先前版本中描述的TLB組合式區及區段表項(CRSTE)之等效者,該等效者將表原點、區索引、區段索引及共同區段位元映射至區段框絕對位址或頁表原點(及其他已指明欄位)。
TLB真實空間項中之符記原點不能區分於TLB複合表項、區表項或區段表項中之表原點。
備註:以下章節描述資訊可置放於TLB中之條件、來自TLB之資訊可用於位址轉譯之條件,及對轉譯表之改變如何影響轉譯處理序。
TLB項之形成
由真實或絕對儲存體中之表項形成TLB區表項、TLB區段表項及TLB頁表項以及由程式對儲存體中之表項內容之任何操控的效應取決於儲存體之項是否附接至特定CPU且取決於該等項是否有效。
表項之附接狀態表明,該表項被附接至之CPU可嘗試使用該表項以用於隱含位址轉譯,惟用於主要或本籍位址空間之表項可附接除外,即使當該CPU並不自彼等空間中任一者進行提取時亦如此。一表項可一次附接至一個以上CPU。
表項之有效狀態表明,與該表項相關聯之區段集合、區、區段或頁係可用的。當一項中之區無效、區段無效或頁無效位元為0時,該項有效。
區表項、區段表項或頁表項可置放於TLB中,只要該項附接且有效且在用於轉譯時將不造成轉譯規格例外即可。
用以轉譯虛擬位址之區表項(若存在)及區段表項(若存在)被稱作轉譯路徑(translation path)。當轉譯路徑中之最高層級表項處於由附接位址空間控制元素(attaching address-space-control element,ASCE)指明之表內時,該最高階層表項附接。「在表內」意謂如由ASCE中之原點及長度欄位所判定。當滿足所有以下條件時,ASCE為附接 ASCE:
1. 當前PSW指定DAT接通。
2. 當前PSW不含有將造成早期規格例外被辨識之錯誤。
3. ASCE滿足以下a、b、c或d中之要求。
a. ASCE為控制暫存器1中之主要ASCE。
b. ASCE為控制暫存器7中之次要ASCE,且滿足以下要求中任一者:
‧CPU處於次要空間模式或存取暫存器模式。
‧CPU處於主要空間模式,且次要空間控制(控制暫存器0之位元37)為1。
‧LOAD PAGE TABLE ENTRY ADDRESS之M4運算元明確地允許對次要空間之存取,或明確地允許存取暫存器轉譯。
‧任一運算元對MOVE WITH OPTIONAL SPECIFICATIONS之運算元存取控制(OAC)明確地允許對次要空間之存取,或明確地允許存取暫存器轉譯。
對於用於以上兩個條目中之術語「明確地允許」之另外解釋,參見以下程式設計備註。
c. ASCE處於附接且有效之ASN第二表項(ASTE)抑或可用ALB ASTE中,且滿足以下要求中任一者:
‧CPU處於存取暫存器模式。
‧LOAD PAGE TABLE ENTRY ADDRESS之M4欄位明確地允許執行存取暫存器轉譯。
‧任一運算元對MOVE WITH OPTIONAL SPECIFICATIONS之OAC明確地允許執行存取暫存器轉譯。
d. ASCE為控制暫存器13中之本籍ASCE。
不管DAT接通抑或關斷,當當前PSW不含有將造成早期規格例外 被辨識之錯誤且滿足以下條件中任一者時,ASCE亦為附接ASCE:
‧當發生監視事件計數操作時,本籍ASCE被認為是附接ASCE。
當轉譯路徑中之剩餘表項中每一者處於由在用於轉譯時將不造成轉譯規格例外的下一較高層級之附接且有效之項或由下一較高層級之可用TLB項指明的表內時,該等剩餘表項中每一者附接。「在表內」意謂如由下一較高層級項中之原點、位移及長度欄位所判定。在下一章節中解釋可用TLB項。
當頁表項處於由在用於轉譯時將不造成轉譯規格例外的附接且有效之區段表項或可用TLB區段表項指明的頁表內時,該頁表項附接。
若區表項或區段表項中之表型別位元(位元60及61)與該項在轉譯處理序中使用轉譯路徑時將被遭遇之層級不一致,則該項造成轉譯規格例外。若私用空間控制位元在用以選擇該私用空間控制位元之位址空間控制元素中為1且共同區段位元在區段表項中為1,則該項亦造成轉譯規格例外。當EDAT-2適用時,若私用空間控制位元在用以選擇該私用空間控制位元之位址空間控制元素中為1且共同區位元在區第三表項中為1,則該項亦造成轉譯規格例外。若頁表項中之位元52為1,則該項造成轉譯規格例外。當EDAT-1不適用時,若頁表項中之位元55為1,則該項亦造成轉譯規格例外。
TLB真實空間使用待辨識之早期規格例外,且滿足以下條件中任一者:
‧當發生監視事件計數操作時,本籍ASCE被認為是附接ASCE。
當轉譯路徑中之剩餘表項中每一者處於由在用於轉譯時將不造成轉譯規格例外的下一較高層級之附接且有效之項或由下一較高層級之可用TLB項指明的表內時,該等剩餘表項中每一者附接。「在表內」意謂如由下一較高層級項中之原點、位移及長度欄位所判定。在 下一章節中解釋可用TLB項。
當頁表項處於由在用於轉譯時將不造成轉譯規格例外的附接且有效之區段表項或可用TLB區段表項指明的頁表內時,該頁表項附接。
若區表項或區段表項中之表型別位元(位元60及61)與該項在轉譯處理序中使用轉譯路徑時將被遭遇之層級不一致,則該項造成轉譯規格例外。若私用空間控制位元在用以選擇該私用空間控制位元之位址空間控制元素中為1且共同區段位元在區段表項中為1,則該項亦造成轉譯規格例外。當EDAT-2適用時,若私用空間控制位元在用以選擇該私用空間控制位元之位址空間控制元素中為1且共同區位元在區第三表項中為1,則該項亦造成轉譯規格例外。若頁表項中之位元52為1,則該項造成轉譯規格例外。當EDAT-1不適用時,若頁表項中之位元55為1,則該項亦造成轉譯規格例外。
以上文所定義之附接且有效之限制為條件,CPU可在預期未來儲存參考時或由於指令之理論式執行而形成TLB項。
程式設計備註:在使ASCE為附接之以上條件清單中,條目3.b及3.c使用術語「明確地允許……」,如下文所解釋:
‧當M4欄位為0010二進位時,LPTEA明確地允許對次要空間之存取。
‧當M4欄位為0001二進位時,LPTEA明確地允許執行ART。
‧當運算元之OAC之位元8至9為10二進位、OAC之位元15為1且次要空間控制(控制暫存器0之位元37)為1時,MVCOS之任一運算元明確地允許對次要空間之存取。
‧當運算元之OAC之位元8至9為01二進位且OAC之位元15為1時,MVCOS之任一運算元明確地允許執行ART。
TLB項之使用
TLB項之可用狀態表明,CPU可嘗試使用TLB項以用於隱含位址轉譯。可用TLB項附接下一較低層級表(若存在),且可能可用於隱含位址轉譯之特定執行個體。
參考TLB項,術語「當前層級」指代供形成TLB項之轉譯表(區第一表、區第二表、區第三表、區段表或頁表)之層級。同樣地,「當前層級索引」為用作至轉譯表之當前層級中之索引的虛擬位址之彼部分。
當滿足所有以下條件時,TLB區或區段表項處於可用狀態:
1. 當前PSW指定DAT接通。
2. 當前PSW不含有將造成早期規格例外被辨識之錯誤。
3. TLB項滿足以下要求中至少一者:
a. 共同區位元在TLB區第三表項中為1。
b. 共同區段位元在TLB區段表項中為1。
c. TLB項中之ASCE表原點(ASCETO)欄位匹配於附接位址空間控制元素中之表原點欄位或符記原點欄位。
d. TLB項為TLB區第二表、區第三表或區段表項,且TLB項中之當前層級表原點欄位匹配於以下各者中之一者:
‧直接地指明當前表層級之附接ASCE中之表原點欄位(如由R及DT位元所指示)
‧下一較高層級之附接區表項中之表原點欄位
‧下一較高層級之可用TLB區表項中同一層級之表原點欄位
僅當TLB區表項處於可用狀態、TLB項中之當前層級索引欄位匹配於正被轉譯之虛擬位址之對應索引欄位且滿足以下條件中任一者時,該項才可用於隱含位址轉譯之特定執行個體:
1. TLB項中之ASCE表原點(ASCETO)欄位匹配於正用於轉譯中之位址空間控制元素中之表原點欄位或符記原點欄位,且在當前層級索 引左側的正被轉譯之虛擬位址之部分匹配於TLB項中之對應索引欄位。
2. 正用於轉譯中之位址空間控制元素指明當前層級之表,且TLB項中之當前層級表原點欄位匹配於彼位址空間控制元素中之表原點。
3. TLB項中之當前層級表原點欄位匹配於正用於轉譯中之下一較高層級表項或TLB項中的同一層級之表原點。
4. 對於TLB區第三表項,共同區位元在TLB項中為1,且TLB項中之區第一索引欄位及區第二索引欄位匹配於正被轉譯之虛擬位址之彼等欄位。
然而,當EDAT-2適用時,若共同區位元在TLB區第三表項中為1,且私用空間控制位元在正用於轉譯中之位址空間控制元素中為1抑或彼位址空間控制元素為真實空間指明,則不使用該項。在兩種此等狀況下,即使TLB項中之ASCE表原點(ASCETO)欄位與位址空間控制元素中之表原點欄位或符記原點欄位匹配,亦不使用該項。
僅當TLB區段表項處於可用狀態、TLB項中之區段索引欄位匹配於正被轉譯之虛擬位址之區段索引欄位且滿足以下條件中任一者時,該項才可用於隱含位址轉譯之特定執行個體:
1. TLB項中之ASCE表原點(ASCETO)欄位匹配於正用於轉譯中之位址空間控制元素中之表原點欄位或符記原點欄位,且TLB項中之區索引欄位匹配於正被轉譯之虛擬位址之區索引欄位。
2. TLB項中之區段表原點欄位匹配於正用於轉譯中之位址空間控制元素中之表原點欄位,且彼位址空間控制元素為區段表指明。
3. TLB項中之區段表原點欄位匹配於正用於轉譯中之區第三表項或TLB區第三表項中之區段表原點欄位。
4. 共同區段位元在TLB項中為1,且TLB項中之區索引欄位匹配 於正被轉譯之虛擬位址之區索引欄位。
然而,若共同區段位元在TLB區段表項中為1,且私用空間控制位元在正用於轉譯中之位址空間控制元素中為1抑或彼位址空間控制元素為真實空間指明,則不使用該項。在兩種此等狀況下,即使TLB項中之ASCE表原點(ASCETO)欄位與位址空間控制元素中之表原點欄位或符記原點欄位匹配,亦不使用該項。
僅當TLB頁表項中之頁表原點欄位匹配於正用於轉譯中之區段表項或TLB區段表項中之頁表原點欄位,且TLB頁表項中之頁索引欄位匹配於正被轉譯之虛擬位址之頁索引時,該項才可用於隱含位址轉譯之特定執行個體。
僅當TLB項中之符記原點欄位匹配於正用於轉譯中之位址空間控制元素中之表原點欄位或符記原點欄位,且TLB項中之區索引、區段索引及頁索引欄位匹配於正被轉譯之虛擬位址之彼等欄位時,TLB真實空間項才可用於隱含位址轉譯。
可藉由使用TLB內容來轉譯LOAD PAGE-TABLE-ENTRY ADDRESS、LOAD REAL ADDRESS及STORE REAL ADDRESS之運算元位址以及對增強型監視計數陣列之存取,而無論DAT接通抑或關斷。然而,對於LOAD PAGE-TABLE-ENTRY ADDRESS、LOAD REAL ADDRESS及STORE REAL ADDRESS,TLB項仍係僅在DAT接通時才被形成。
程式設計備註:
1. 儘管僅當表項既附接又有效時才可將該表項之內容複製至TLB中,但即使當該表項自身不再附接或有效時複本亦可保持於TLB中。
2. 除了當由於增強型監視計數操作而執行轉譯時以外,無內容可在DAT關斷時複製至TLB中,此係因為表項此時未附接。詳言之, 在DAT關斷的情況下LOAD PAGE-TABLE-ENTRY ADDRESS、LOAD REAL ADDRESS及STORE REAL ADDRESS之運算元位址之轉譯不造成項置放於TLB中。
相反地,在給出當前轉譯參數、位址空間控制位元之設定及存取暫存器之內容的情況下,當DAT接通時,資訊可自可用於位址轉譯之所有轉譯表項複製至TLB中。TLB之載入不取決於項是否用於轉譯作為當前指令之執行之部分,且當CPU處於等待狀態時可發生此類載入。
3. 表項之內容之一個以上複本可存在於TLB中。舉例而言,對於用來使有效表項變得附接之每一位址空間控制元素中之表原點,一些實施可造成該項之內容之複本置放於TLB中。
轉譯表之修改
當使附接且無效之表項有效且無可用於關聯虛擬位址之轉譯之項處於TLB中時,改變不遲於當前操作單元之結束而起作用。相似地,當使未附接且有效之表項附接且無可用於關聯虛擬位址之項處於TLB中時,改變不遲於當前操作單元之結束而起作用。
當改變有效且附接之表項時,且當在自TLB清除掉有資格替代彼項之項之前嘗試藉由使用虛擬位址來參考儲存體而需要彼項以供轉譯時,在以下程度上可發生不可預測結果。新值之使用可在若干指令之間或在一指令之執行期間開始,包括造成改變之指令。此外,在自TLB清除掉有資格替代彼項之項以前,TLB可含有舊值及新值兩者,且無論選擇舊值抑或新值以用於特定存取皆係不可預測的。若較高層級表項之舊值及新值兩者存在於TLB中,則可藉由使用一個值來提取較低層級表項,且將較低層級表項置放於與另一值相關聯之TLB中。若該項之新值為將造成例外之值,則該例外可或可不造成發生中斷。若確實發生中斷,則即使例外通常將造成抑制或設為空值,亦可改變 指令之結果欄位。
根據以下規則而自TLB清除掉項:
1. 藉由執行PURGE TLB或SET PREFIX且藉由CPU重設而自TLB清除掉所有項。
2. 取決於由指令使用之一般暫存器中之位元,可藉由組態中之CPU中任一者來執行COMPARE AND SWAP AND PURGE而自組態中之所有TLB清除掉所有項。
3. 藉由組態中之CPU中任一者來執行INVALIDATE DAT TABLE ENTRY或INVALIDATE PAGE TABLE ENTRY而自組態中之所有TLB清除掉選擇之項。
4. 可在不同於由前述規則需要之彼等時間的時間清除一些或所有TLB項。
程式設計備註:
1. TLB中之項可在已供形成該等項之表項已變得未附接或無效之後繼續用於轉譯。此等TLB項未必被移除,除非明確地自TLB被清除。
對附接且有效之項進行之改變或對表項進行之使該項變得附接且有效之改變反映於針對下一指令或早於下一指令之轉譯處理序中,除非TLB項有資格替代彼表項。然而,對表項進行之使該項變得未附接或無效之改變未必反映於轉譯處理序中,直至自TLB清除掉有資格替代彼表項之項為止。
2. 與動態位址轉譯相關聯之例外可藉由作為指令執行之起始之部分而執行的針對運算元可存取性之預測試而建立。因此,當表項在執行開始時無效時可指示區第一轉譯、區第二轉譯、區第三轉譯、區段轉譯或頁轉譯例外,即使指令已使其所使用之表項有效化且該表項在該指令被認為是一次一個位元組地處理運算元時已顯得有效亦如 此。
3. 若附接表項在TLB被清除掉彼項之內容之所有複本之前用於轉譯,則對彼項進行之改變(惟將I位元設定至0、將區段表項或頁表項之CO位元設定至1或變更頁表項之最右側位元組除外)可產生不可預測結果。新值之使用可在若干指令之間或在一指令之執行期間開始,包括造成改變之指令。當諸如MOVE(MVC)之指令對附接表項進行改變(包括使該項無效之改變)且隨後使用該項以供轉譯時,已改變項在不自TLB對該項進行先前清除的情況下被使用,且結果值及例外辨識之關聯不可預測性適用。
附接表項之操控可使偽表項值記錄於TLB中。舉例而言,若分次地進行改變,則有效附接項之修改可使已部分更新項被記錄,或若中間值引入於改變之處理序中,則臆測無效項可臨時地顯得有效且可記錄於TLB中。若改變係藉由所重試之I/O操作而進行,或若中間值係在單一指令之執行期間被引入,則可引入此類中間值。
作為另一實例,若區段表項經改變以指明不同頁表且在不清除TLB的情況下被使用,則新頁表項可被提取且與舊頁表原點相關聯。在此類狀況下,指明新頁表原點之INVALIDATE PAGE TABLE ENTRY之執行將未必清除自新頁表提取之頁表項。
4. 為了促進頁表之操控,提供INVALIDATE PAGE TABLE ENTRY指令。此指令將頁表項中之I位元設定至1,且清除由彼等表項形成之項之組態中的一或多個TLB,如下:
a. 當本端TLB清除設施未被安裝時,或當該設施被安裝且指令指定所有TLB之清除(亦即,指令中之本端清除控制為0)時,清除組態中之所有TLB。
b. 當本端TLB清除設施被安裝且指令指定僅本端TLB之清除(亦即,指令中之本端清除控制為1)時,僅清除執行INVALIDATE PAGE TABLE ENTRY指令之CPU中之TLB。
當使用INVALIDATE PAGE TABLE ENTRY時應考慮TLB操作之以下態樣。(亦參見針對INVALIDATE PAGE TABLE ENTRY之程式設計備註。)
a. INVALIDATE PAGE TABLE ENTRY應在對頁表項進行任何改變之前(除了改變最右側位元組以外)執行;否則,INVALIDATE PAGE TABLE ENTRY之選擇清除部分可不清除該項之TLB複本。
b. 借助於INVALIDATE PAGE TABLE ENTRY使頁表內之所有頁表項無效化未必會清除指明該頁表之任何區段表項之TLB。當需要使區表項或區段表項之TLB無效化及清除時,必須遵循以下備註5中之規則。
相似地,借助於INVALIDATE DAT TABLE ENTRY使區表或區段表內之所有較低層級表項無效化未必會清除指明較低層級表之任何較高層級表項之TLB。當需要使較高層級表項之TLB無效化及清除時,必須遵循以下備註5中之規則。
c. 當將在單一時間使大數目個頁表項無效化時,對於每一頁表項,在使用COMPARE AND SWAP AND PURGE(去除TLB之COMPARE AND SWAP AND PURGE)、INVALIDATE DAT TABLE ENTRY或PURGE TLB時且在遵循以下備註5中之規則時涉及的額外負荷可小於在發出INVALIDATE PAGE TABLE ENTRY時涉及之額外負荷。
5. 表項之操控應根據以下規則。若符合此等規則,則如同來自真實或絕對儲存體之表項總是用於轉譯處理序中一樣執行轉譯。
a. 有效表項在其附接至任何CPU時並非必須改變,且可由彼CPU用於轉譯,惟以下各者除外:(1)藉由使用INVALIDATE PAGE TABLE ENTRY或INVALIDATE DAT TABLE ENTRY使該項無效化; (2)變更頁表項之位元56至63;(3)借助於去除TLB之COMPARE AND SWAP AND PURGE指令進行改變;或(4)藉由使用COMPARE AND REPLACE DAT TABLE ENTRY取代一項。
b. 當對附接且有效或未附接之表項進行除了對頁表項之位元56至63之改變以外的任何改變時,必須使可具有由彼項形成之TLB項之每一CPU在發生該改變之後且在由彼CPU使用彼項以用於隱含轉譯之前去除其TLB。(應注意,若藉由使用COMPARE AND REPLACE DAT TABLE ENTRY、INVALIDATE DAT TABLE ENTRY、INVALIDATE PAGE TABLE ENTRY或去除TLB之COMPARE AND SWAP AND PURGE指令進行改變,則分離去除係不必要的。)在表項附接且有效時之狀況下,當知曉並非正執行可需要該項以用於轉譯之程式時,此規則適用。
c. 當以允許中間有效值出現於無效表項中之方式對該項進行任何改變時,必須使該項被附接至之每一CPU在發生該改變之後且在由彼CPU使用該項以用於隱含位址轉譯之前去除其TLB。
d. 當對針對表而指定之位移或長度進行任何改變時,必須使可具有由不再位於自己之表內之表項形成之TLB項的每一CPU在發生該改變之後且在由彼CPU使用該表以用於隱含轉譯之前去除其TLB。
應注意,當在不引入中間有效值的情況下使無效頁表項有效時,在不具有由彼項形成之任何TLB項之CPU中無需清除TLB。相似地,當在不引入中間有效值的情況下使無效區表項或區段表項有效時,在不具有由彼有效化項形成之任何TLB項且不具有由借助於彼有效化項附接之頁表中之項形成之任何TLB項的CPU中無需清除TLB。
PURGE TLB、COMPARE AND SWAP AND PURGE或SET PREFIX之執行可對一些模型之效能具有不利效應。因此,應最小化此等指令之使用以符合以上規則。
6. 當EDAT-1適用時,以下考慮正在實行:
a. 當STE格式及ACCF有效性控制皆為1時,CPU是否出於任何給定金鑰控制保護檢查而檢測區段表項中或對應4K位元組區塊之儲存體金鑰中的存取控制位元及提取保護位元係不可預測的。因此,在將STE中之無效位元設定至0之前,程式應確保區段表項中之存取控制位元及提取保護位元相同於針對區段之構成4K位元組區塊之所有256個儲存體金鑰中的各別欄位。
在改變區段表項中之ACCF有效性控制、存取控制位元或提取保護位元之前,且在改變區段之256個儲存體金鑰中任一者中之存取控制位元或提取保護位元之前,程式應首先在區段表項中將無效位元設定至1,且清除組態中之所有TLB中之所有項,如先前在此章節中所描述。
b. 在區段表項中將改變記錄覆寫設定至0之前,程式應在區段表項中將無效位元設定至1,且清除組態中之所有TLB中之所有項(例如,藉由使用INVALIDATE DAT TABLE ENTRY)。若使用COMPARE AND REPLACE DAT TABLE ENTRY或清除TLB之COMPARE AND SWAP AND PURGE之形式進行改變,則不要求使表項無效化。
c. 在頁表項中將改變記錄覆寫設定至0之前,程式應在頁表項中將無效位元設定至1,且清除組態中之所有TLB中之所有項(例如,藉由使用INVALIDATE PAGE TABLE ENTRY)。若使用COMPARE AND REPLACE DAT TABLE ENTRY或清除TLB之COMPARE AND SWAP AND PURGE之形式進行改變,則不要求使表項無效化。
當EDAT-2適用時,以下額外考慮正在實行:
a. 當RTTE格式控制及ACCF有效性控制皆為1時,CPU是否出於任何給定金鑰控制保護檢查而檢測區第三表項中或對應4K位元組區塊之儲存體金鑰中之存取控制位元及提取保護位元係不可預測的。因 此,在將RTTE中之無效位元設定至0之前,程式應確保區第三表項中之存取控制位元及提取保護位元相同於區之構成4K位元組區塊之所有524,288個儲存體金鑰中的各別欄位。
在改變區第三表項中之ACCF有效性控制、存取控制位元或提取保護位元之前,且在改變區之524,288個儲存體金鑰中任一者中之存取控制位元或提取保護位元之前,程式應首先在區第三表項中將無效位元設定至1,且清除組態中之所有TLB中之所有項,如先前在此章節中所描述。
b. 在區第三表項中將改變記錄覆寫設定至0之前,程式應在區第三表項中將無效位元設定至1,且清除組態中之所有TLB中之所有項(例如,藉由使用INVALIDATE DAT TABLE ENTRY)。若使用COMPARE AND REPLACE DAT TABLE ENTRY或清除TLB之COMPARE AND SWAP AND PURGE之形式進行改變,則不要求使表項無效化。
觀察此等程序之失敗可導致不可預測結果,其可能地包括延遲存取例外機器檢查,或記錄改變之失敗。
增強型DAT設施1
增強型DAT設施1可用於實施z/Architecture之模型上。當該設施被安裝及啟用時,DAT轉譯可產生藉由區段表項中之STE格式控制判定的頁框真實位址抑或區段框絕對位址。當設施安裝於組態中時,控制暫存器0中之新位元啟用該設施。備註:術語EDAT-1適用在此文件中普遍地用以描述當增強型DAT設施1安裝於組態中且由控制暫存器0啟用時之條件。
當EDAT-1適用時,以下格外功能可用於DAT處理序中:
‧將DAT保護位元添加至區表項,從而在區段表項及頁表項中提供相似於DAT保護位元之功能。
‧將STE格式控制添加至區段表項。當STE格式控制為0時,DAT如當前所定義一樣行進,惟頁表項中之改變記錄覆寫指示改變位元之設定對於頁是否可被略過除外。
‧當STE格式控制為1時,區段表項亦含有以下各者:
- 指定1M位元組區塊之絕對儲存體位置之區段框絕對位址(而非頁表原點)。
- 視情況可代替區段之個別儲存體金鑰中之對應位元而使用的存取控制位元及提取保護位元
- 判定區段表項中之存取控制位元及提取保護位元之有效性的位元
- 指示改變位元之設定在區段之個別儲存體金鑰中是否可被略過的改變記錄覆寫。設施新增PERFORM FRAME MANAGEMENT FUNCTION控制指令。設施包括對以下控制指令之增強或改變:‧LOAD PAGE-TABLE-ENTRY ADDRESS‧MOVE PAGE‧SET STORAGE KEY EXTENDED‧TEST PROTECTION
增強型DAT設施2
增強型DAT設施2可用於實施z/Architecture之模型上。當該設施被安裝及啟用時,DAT轉譯可產生藉由區第三表項(若存在)及區段表項(若存在)中之格式控制判定的頁框真實位址、區段框絕對位址抑或區框絕對位址。
備註:術語EDAT-2適用在此文件中普遍地用以描述當增強型DAT設施2安裝於組態中且由控制暫存器0啟用時之條件。
當EDAT-2適用時,以下格外功能可用於DAT處理序中:
‧EDAT-1適用。
‧將格式控制添加至區第三表項(RTTE)。當RTTE格式控制為0時,DAT如同針對EDAT-1適用時之狀況一樣行進。
‧當RTTE格式控制為1時,區第三表項亦含有以下各者:
- 指定2G位元組區塊之絕對儲存體位置之區框絕對位址(而非區段表原點)。
- 視情況可代替區之個別儲存體金鑰中之對應位元而使用的存取控制位元及提取保護位元
- 判定區第三表項中之存取控制位元及提取保護位元之有效性的位元-指示改變位元之設定在區之個別儲存體金鑰中是否可被略過的改變記錄覆寫。增強型DAT設施2新增COMPARE AND REPLACE DAT TABLE項指令,從而提供有效附接DAT表項之動態取代及自已取代項建立之任何TLB項之選擇清除。增強型DAT設施2亦包括對以下控制指令之增強或改變:‧INVALIDATE DAT TABLE ENTRY‧LOAD PAGE-TABLE-ENTRY ADDRESS‧MOVE PAGE‧PERFORM FRAME MANAGEMENT FUNCTION‧TEST PROTECTION。當安裝增強型DAT設施2時,亦安裝增強型DAT設施1。
當使區段表項無效化時,INVALIDATE DAT TABLE ENTRY(IDTE)藉由選擇地清除TLB組合式區及區段表項而執行無效化及清除操作。IDTE亦執行由ASCE清除操作。
在IDTE指令之執行期間,使儲存體(例如,虛擬儲存體)之已指定部分無效化。作為實例,包括複數個儲存體頁之儲存體區段或包括複數個儲存體區段之儲存體區經選擇為無效化。藉由設定位於對應於待無效化儲存體單元之資料結構項中的無效化指示符而促進該無效化。在一另外態樣中,清除與正被無效化之儲存體或其他儲存體相關聯之緩衝器項(例如,轉譯後備緩衝器項)。再者,在另一態樣中,在不影響非選擇之位址空間之緩衝器項且不執行無效化的情況下自緩衝器清除與選擇之位址空間相關聯之緩衝器項。在一實例中,來自IBM® z/Architecture的在本文中被稱作無效化動態位址轉譯(DAT)表項 (IDTE)指令之指令用以執行以上操作中之一或多者。
無效化DAT表項
IDTE R1,R3,R2[,M4]
備註:術語「已指定CPU」對於受到此指令影響之TLB之範疇具有以下含義:
‧當本端TLB清除設施未被安裝時,或當該設施被安裝且M4欄位中之本端清除控制(LC)位元為0時,術語「已指定CPU」意謂組態中之所有CPU。
‧當本端TLB清除設施被安裝且M4欄位中之LC位元為1時,術語「已指定CPU」僅意謂執行IDTE指令之CPU(本端CPU)。組態中之所有其他CPU中之TLB可不受到影響。
當由ASCE清除選項位元(一般暫存器R2之位元52)為0時,執行被稱作無效化及清除操作之操作,如下。使儲存體中之已指明區表項或區段表項或以已指明項而開始之項範圍無效化,且自組態中之已指定CPU中之轉譯後備緩衝器(TLB)清除掉(1)經由使用儲存體中之已無效化項而形成的已指明型別之所有TLB表項,及(2)經由使用已清除較高層級TLB表項而形成之所有較低層級TLB表項。經清除之TLB項視情況可限於經形成以轉譯已指定位址空間中之位址的項。
當由ASCE清除選項位元為1時,執行被稱作由ASCE清除操作之操作,如下。該操作並不執行儲存體中之DAT表項之任何無效化,而是自組態中之所有CPU中之TLB清除經形成以轉譯已指定位址空間中之位址的所有區第一表項、區第二表項、區第三表項、區段表項及頁表項。
M4欄位之位元被定義如下:
保留: M4欄位之位元0至1應被忽略,但應含有0;否則,程式在未來可不相容地操作。
格式控制摘要(FS): 當EDAT-2適用時,M4欄位之位元2為針對無效化及清除操作之格式控制摘要(FS)。對於由ASCE清除操作且當EDAT-2不適用時,忽略M4欄位之位元2。
當指明型別(DT)(一般暫存器R1之位元60至61)為00或01二進位時,格式控制摘要適用;且當一般暫存器R1中之DT為10或11二進位時,忽略格式控制摘要。
本端清除控制(LC): 當本端TLB清除設施被安裝時,LC位元(M4欄位之位元3)控制是否僅清除本端CPU中之TLB,或是否清除組態之所有CPU中之TLB。當本端TLB清除設施未被安裝時,忽略M4欄位之位元3。
無效化及清除操作
當一般暫存器R2之位元52(由ASCE清除選項位元)為0時,指定無效化及清除操作。
一般暫存器R1之內容具有位址空間控制元素之格式,其中僅使用表原點(位元0至51)及指明型別控制(DT)(位元60及61)。表原點指明一或多個項將被無效化之DAT表,且DT指定彼表之型別。
忽略一般暫存器R1之位元52至59、62及63。
一般暫存器R2之位元0至43具有虛擬位址之區索引及區段索引之格式。通常由DAT用以選擇由一般暫存器R1指明之表型別中之項的位元0至43之部分被稱作有效無效化索引。
一般暫存器R1之位元60及61指定表型別及有效無效化索引,如下:
忽略在有效無效化索引右側的一般暫存器R2之位元0至43之部分。
一般暫存器R1中之表原點及有效無效化索引指明待無效化之DAT表項。一般暫存器R2之位元53至63為指定待無效化之額外表項之數目 的無正負號二進位整數。因此,待無效化項之數目為1至2,048,其對應於位元53至63之值。
一般暫存器R2之位元44至51必須為0;否則,辨識規格例外。
若R3為非零,則一般暫存器R3之內容具有位址空間控制元素之格式,其中僅使用表原點(位元0至51)及指明型別控制(DT)(位元60及61)。此等內容用以選擇待清除之TLB項。忽略一般暫存器R3之位元52至59、62及63。若R3為0,則忽略一般暫存器0之整個內容,且清除TLB項而不管用以形成TLB項之ASCE。
一般暫存器R1中之表原點及一般暫存器R2中之有效無效化索引根據2010年8月IBM出版物第SA22-7832-08號的「z/Architecture Principles of Operation」中之「Lookup in a Table Designated by an Address-Space-Control Element」中的規則而指明表項,該出版物之全文係據此以引用方式併入本文中,惟總是忽略來自所得位址之位元位置0的進位且不對照表長度欄位來檢查該索引除外。表原點被視為64位元位址,且藉由使用針對64位元位址算術之規則而執行相加,而不管由當前PSW之位元31及32指定的當前定址模式。由此兩個分量形成之位址為真實或絕對位址。將此區表項或區段表項之無效位元(位元58)設定至1。在此程序期間,未針對格式錯誤或針對項中下一較低層級表之原點是否將造成定址例外而檢查該項。忽略項中之表型別欄位。若項為區段表項,則忽略該項中之共同區段位元。若EDAT-2適用且項為區第三表項,則忽略該項中之共同區位元。
自儲存體並行地提取整個表項。隨後,儲存含有無效位元之位元組。對該項之提取存取經受金鑰控制保護,且儲存存取經受金鑰控制保護及低位址保護。
若一般暫存器R2之位元53至63並非皆為0,則藉由將1加至有效無效化索引之先前使用值來重複在區表項或區段表項中將無效位元設定 至1,且此重複進行多達如由位元53至63指定之次數。忽略在有效無效化索引之最左側位元位置外之進位,且在此狀況下發生表中之環繞。一般暫存器R2之內容保持不變。
序列化功能係在操作開始之前執行,且在操作完成之後再次執行。如針對所有序列化操作之狀況,此序列化僅應用於此CPU;其他CPU未必被序列化。
在此CPU已將無效位元設定至1之後,此CPU自其TLB清除選擇之項。接著,若本端TLB清除設施未被安裝,或若該設施被安裝且M4欄位中之LC位元為0,則此CPU向組態中之所有其他CPU傳信以自其TLB清除選擇之項。自每一受影響TLB清除掉所有以下條件被滿足的至少彼等項:
‧一般暫存器R2中之有效無效化索引匹配於由一般暫存器R1之位元60至61中之DT欄位指明的型別之TLB表項中之對應索引。若模型實施包括由DT欄位指明之索引之複合TLB項,則在一般暫存器R2中之有效索引左側的位元亦匹配於已指明TLB表項中提供之任何對應位元。應注意,當多個表項歸因於一般暫存器R2之位元53至63而無效化時,則使有效無效化索引遞增,失去在該索引之最左側位元位置外之進位,且針對因此而獲得之索引之每一值清除TLB區表項或區段表項。
‧R3欄位為0,抑或一般暫存器R3中之表原點及指明型別欄位匹配於用以形成TLB表項之位址空間控制元素(ASCE)中之表原點及指明型別欄位。
‧若R3欄位為0,則此步驟中描述之條件不適用。
‧若儲存體中無效化之項指明較低層級轉譯表,則已無效化項中之較低層級表原點匹配於TLB表項中之表原點欄位。
亦自每一受影響TLB清除掉所有以下條件被滿足的至少任何較低 層級TLB表項:
‧較低層級TLB表項係經由使用儲存體中無效化之項或經由使用較高層級TLB表項而形成,該較高層級TLB表項係經由使用儲存體中無效化之項抑或在此處理序中清除之TLB項而形成。
‧R3欄位為0,抑或一般暫存器R3中之表原點及指明型別欄位匹配於用以形成較低層級TLB表項之位址空間控制元素(ASCE)中之表原點及指明型別欄位。此ASCE可為附接含有較高層級表項之轉譯路徑的ASCE,該較高層級表項附接儲存體中供形成較低層級TLB表項之較低層級表項,或該ASCE可為使較高層級TLB表項可用之ASCE,該較高層級TLB表項附接儲存體中供形成較低層級TLB表項之較低層級表項。若R3欄位為0,則此步驟中描述之條件不適用。
‧若儲存體中無效化之項指明較低層級轉譯表,則已無效化項中之較低層級表原點匹配於TLB表項中之表原點欄位。
程式設計備註:
1. 將格式控制摘要設定至1可在某些模型上提供改良型效能。
2. 當指明型別(DT)(一般暫存器R1之位元60至61)為00二進位時,格式控制摘要應用於正被無效化之區段表項。當一般暫存器R1中之DT為01二進位時,格式控制摘要應用於正被無效化之區第三表項。
3. 若程式可確保格式控制(表項之位元53)在正被無效化之所有表項中為1,則程式應僅將格式控制摘要設定至1。若將格式控制摘要設定至1,但格式控制並非在正被無效化之所有表項中為1,則可發生TLB之不完全去除,從而引起來自DAT之不可預測結果。
4. 指令之M4欄位被認為是選用的,如由正含於組譯器語法中之括號[ ]內的欄位所指示。當未指定M4欄位時,組譯器將0置放於指令之彼欄位中。
若無效位元在區表項或區段表項中已經為1,則可或可不發生在 區表項或區段表項中之儲存及TLB項之清除。
當使多個項無效化時,TLB項之清除可經延遲直至已使所有項無效化為止。
由ASCE清除操作
當一般暫存器R2之位元52(由ASCE清除選項位元)為1時,指定由ASCE清除操作。
一般暫存器R3之內容具有位址空間控制元素之格式,其中僅使用表原點(位元0至51)及指明型別控制(DT)(位元60及61)。此等內容用以選擇待清除之TLB項。忽略一般暫存器R3之位元52至59、62及63。R3可為零或非零,亦即,可指明包括暫存器0之任何一般暫存器。
一般暫存器R2之位元44至51必須為0;否則,辨識規格例外。
忽略一般暫存器R1之內容以及一般暫存器R2之位元位置0至43及53至63之內容。
在所有層級下自組態中之已指定CPU之TLB清除掉一般暫存器R3中之表原點欄位及指明型別欄位匹配於用以形成該項之位址空間控制元素(ASCE)中之表原點欄位及指明型別欄位的至少彼等項。此ASCE為用於在期間形成該項之轉譯中的ASCE。
當由ASCE清除選項位元(一般暫存器R2之位元52)為1時,忽略M4欄位。
共同操作
INVALIDATE DAT TABLE ENTRY之執行並不在執行該INVALIDATE DAT TABLE ENTRY之CPU上完成直至發生以下情形為止:
1. 已自此CPU之TLB清除滿足上文所指定之準則的所有項。當本端TLB清除設施被安裝且M4欄位中之LC位元為1時,INVALIDATE DAT TABLE ENTRY之執行在此時完成,且不執行以下步驟。
2. 當本端TLB清除設施未被安裝時,或當該設施被安裝且M4欄位中之LC位元為0時,組態中之所有其他CPU已藉由使用對應於已指定參數之TLB項而完成任何儲存存取,包括改變位元及參考位元之更新。
操作未必對TLB真實空間項具有任何效應。
特殊條件:
一般暫存器R2之位元44至51必須為0;否則,辨識規格例外。
操作關於所有定址及保護例外受到抑制(僅無效化及清除操作)。
所得條件碼: 該碼係不可預測的。
程式例外:
‧定址(已無效化區表項或區段表項,僅無效化及清除操作)。
‧操作(若DAT增強設施未被安裝)
‧特殊權限操作
‧保護(提取及儲存、區表項或區段表項、金鑰控制保護及低位址保護;僅無效化及清除操作)。
‧規格
程式設計備註:
1. 可取決於模型而以不同方式來實施TLB項之選擇清除,且一般而言,可清除多於所需要之最小數目的項。當執行無效化及清除操作時,一些模型可在有效無效化索引並非區段索引時清除所有TLB項,或可清除一項而不管該項中之頁表原點。當執行彼操作或由ASCE清除操作時,一些模型可清除TLB項而不管一般暫存器R3中之指明型別欄位。當執行任一操作時,其他模型可精確地清除所需要之最小數目個項。因此,為了使程式在所有模型上操作,程式不應利用藉由特定模型上之較少選擇清除而獲得的任何性質。
2. 當使用由ASCE清除操作以清除與共同區段相關聯之TLB項 時,應注意,此等項可能已經由使用含有許多不同表原點之位址空間控制元素而形成。
當指定無效化及清除操作時,以下備註適用。
3. TLB項之清除可使用區段表項中之頁表原點。因此,若區段表項在處於附接狀態時一直含有不同於當前值之頁表原點,則含有先前值之項之複本可保持於TLB中。
4. 若存在另一CPU或通道程式亦可正更新主儲存體中之共用位置的可能性,則INVALIDATE DAT TABLE ENTRY不能安全地用以更新該位置。
5. 用於INVALIDATE DAT TABLE ENTRY之DAT表項之位址為64位元位址,且藉由遵循用於64位元位址算術之正常規則來執行位址算術,其中環繞處於264-1處。又,不使用位移及長度欄位。使此情形與隱含轉譯以及用於LOAD REAL ADDRESS及STORE REAL ADDRESS之轉譯形成對比,其全部可在進位發生於位元位置0外時引起環繞抑或引起定址例外,且其在已指明項未位於其表內時指示例外條件。因此,DAT表不應被指定為自最大儲存位置至位置0進行包覆,且第一已指明項及由一般暫存器R2之位元53至63指定之所有額外項應位於已指明表內。
6. 當本端TLB清除設施被安裝時,本端清除控制應被指定為在用以形成正被清除之TLB項之ASCE已僅附接至供執行IDTE指令之CPU時的本端清除控制(例如,若程式正在單處理器上執行)。否則,可發生不可預測結果,包括延遲存取例外機器檢查之呈現。
在一些模型上,針對上文所列出之狀況使用指定僅本端TLB之清除之INVALIDATE DAT TABLE ENTRY可引起顯著效能改良。
7. 指令之M4欄位被認為是選用的,如由正含於組譯器語法中之括號[ ]內的欄位所指示。當未指定M4欄位時,組譯器將0置放於指令 之彼欄位中。
無效化頁表項
IPTE R1,R2[,R3[,M4]]
備註:術語「已指定CPU」對於受到此指令影響之TLB之範疇具有以下含義:
‧當本端TLB清除設施未被安裝時,或當該設施被安裝且M4欄位中之本端清除控制(LC)位元為0時,術語「已指定CPU」意謂組態中之所有CPU。
‧當本端TLB清除設施被安裝且M4欄位中之LC位元為1時,術語「已指定CPU」僅意謂執行IPTE指令之CPU(本端CPU)。組態中之所有其他CPU中之TLB可不受到影響。
使已指明頁表項無效化,且自組態中之已指定CPU中之轉譯後備緩衝器(TLB)清除掉關聯項。
一般暫存器R1之內容具有區段表項之格式,其中僅使用頁表原點。一般暫存器R2之內容具有虛擬位址之格式,其中僅使用頁索引。忽略並非頁表原點或頁索引之部分的欄位內容。
當IPTE範圍設施未被安裝時,或當R3欄位為0時,使由第一運算元及第二運算元指明之單一頁表項無效化。
當IPTE範圍設施被安裝且當R3欄位為非零時,一般暫存器R3之位元56至63含有指定待無效化之額外頁表項之計數的無正負號二進位整數。因此,待無效化之頁表項之數目為1至256,其對應於暫存器之位元56至63中的為0至255之值。
當IPTE範圍設施未被安裝時,R3欄位被忽略,但應含有0;否則,程式在未來可不相容地操作。
M4欄位之位元被定義如下:
保留: 保留位元0至2。M4欄位之保留位元位置被忽略,但應 含有0;否則,程式在未來可不相容地操作。
本端清除控制(LC): 當本端TLB清除設施被安裝時,LC位元(M4欄位之位元3)控制是否僅清除本端CPU中之TLB,或是否清除組態之所有CPU中之TLB。當本端TLB清除設施未被安裝時,保留M4欄位之位元3。
頁表原點及頁索引指明頁表項,其遵循針對頁表查找之動態位址轉譯規則。頁表原點被視為64位元位址,且藉由使用針對64位元位址算術之規則而執行相加,而不管由當前PSW之位元31及32指定的當前定址模式。不能發生由於頁索引與頁表原點之相加的在位元位置0外之進位。由此兩個分量形成之位址為真實或絕對位址。將此頁表項之頁無效位元設定至1。在此程序期間,不針對頁無效位元是否已經為1或針對格式錯誤而檢測頁表項。另外,不針對定址例外檢查含於該項中之頁框真實位址。
當IPTE範圍設施被安裝且R3欄位為非零時,指令係可中斷的,且處理如下:
1. 針對頁表中之每一後續項重複上文所描述之無效化處理序,直至一般暫存器R3之位元56至63中指定之數個額外項已無效化抑或發生中斷為止。
2. 使一般暫存器R2之位元44至51中之頁索引遞增已無效化頁表項之數目;忽略在一般暫存器R2之位元位置44外之進位。
3. 使一般暫存器R3之位元56至63中之額外項計數遞減已無效化頁表項之數目。
因此,當IPTE範圍設施被安裝、R3欄位為非零且發生中斷(除了造成終止之中斷以外)時,一般暫存器R2及R3已被更新,使得指令在重新執行時在中斷點處繼續。
當IPTE範圍設施未被安裝時,或當R3欄位為0時,暫存器R2及R3 之內容保持不變。
對於無效化之每一頁表項,整個頁表項看來像是自儲存體被並行地提取,如由其他CPU所觀察。隨後,儲存含有頁無效位元之位元組。對每一頁表項之提取存取經受金鑰控制保護,且儲存存取經受金鑰控制保護及低位址保護。
序列化功能係在操作開始之前執行,且在操作完成之後再次執行。如針對所有序列化操作之狀況,此序列化僅應用於此CPU;其他CPU未必被序列化。
若例外未被辨識,則此CPU自其TLB清除選擇之項。接著,若本端TLB清除設施未被安裝,或若該設施被安裝且M4欄位中之LC位元為0,則此CPU向組態中之所有CPU傳信以自其TLB清除選擇之項。對於無效化之每一頁表項,自每一受影響TLB清除掉已使用所有以下各者而形成之至少彼等項:
‧由一般暫存器R1指定之頁表原點
‧由一般暫存器R2指定之頁索引
‧含於已指明頁表項中之頁框真實位址
INVALIDATE PAGE TABLE ENTRY之執行並不在執行該INVALIDATE PAGE TABLE ENTRY之CPU上完成直至發生以下情形為止:
1. 已使對應於已指定參數之所有頁表項無效化。
2. 已自此CPU之TLB清除對應於已指定參數之所有項。當本端TLB清除設施被安裝且M4欄位中之LC位元為1,則INVALIDATE PAGE TABLE項之執行在此時完成,且不執行以下步驟。
3. 當本端TLB清除設施未被安裝時,或當該設施被安裝且M4欄位中之LC位元為0時,組態中之所有其他CPU已藉由使用對應於已指定參數之TLB項而完成任何儲存存取,包括改變位元及參考位元之更 新。
特殊條件
當IPTE範圍設施被安裝、R3欄位為非零且一般暫存器R2中之頁索引加上一般暫存器R3中之額外項計數大於255時,辨識規格例外。
操作關於所有定址及保護例外受到抑制。
條件碼: 該碼保持不變。
程式例外:
‧定址(頁表項)
‧特殊權限操作
‧保護(提取及儲存、頁表項、金鑰控制保護,及低位址保護)
‧規格
程式設計備註:
1. 可取決於模型而以不同方式來實施項之選擇清除,且一般而言,可清除多於所需要之最小數目的項。一些模型可清除含有自儲存體中之頁表項獲得之頁框真實位址的所有項。其他模型可清除含有已指明頁索引之所有項,且一些實施可精確地清除所需要之最小數目個項。因此,為了使程式在所有模型上操作,程式不應利用藉由特定模型上之較少選擇清除而獲得的任何性質。
2. TLB項之清除可使用頁表項中之頁框真實位址。因此,若頁表項在處於附接狀態時一直含有不同於當前值之頁框真實位址,則含有先前值之項之複本可保持於TLB中。
3. 若存在另一CPU或通道程式亦可正更新主儲存體中之共用位置的可能性,則INVALIDATE PAGE TABLE ENTRY不能安全地用以更新該位置。
4. 當IPTE範圍設施被安裝且R3欄位為非零時,以下情形適用:
a. 待無效化之所有頁表項必須駐留於同一頁表中。若一般暫存 器R1中之頁索引加上一般暫存器R3中之額外項計數大於為255之最大頁索引,則辨識規格例外。
b. 由INVALIDATE PAGE TABLE ENTRY無效化之頁表項之數目可隨著不同執行而變化。
c. 指令不能用於程式必須依賴於指令之未中斷執行的情形。相似地,程式通常不應使用INVALIDATE PAGE TABLE ENTRY以使頁表項無效化,該頁表項之頁框真實位址指明含有該指令之4K位元組區塊或執行IPTE之執行型別指令之4K位元組區塊。
5. 當本端TLB清除設施被安裝時,本端清除控制應被指定為在用以形成正被清除之TLB項之ASCE已僅附接至供執行IPTE指令之CPU時的本端清除控制(例如,若程式正在單處理器上執行)。否則,可發生不可預測結果,包括延遲存取例外機器檢查之呈現。
在一些模型上,針對上文所列出之狀況使用指定僅本端TLB之清除之INVALIDATE PAGE TABLE ENTRY可引起顯著效能改良。
6. 指令之R3及M4欄位被認為是選用的,如由正含於組譯器語法中之括號[ ]內的欄位所指示。當未指定任一欄位時,組譯器將0置放於指令之對應欄位中。當編碼M4欄位,但不需要R3欄位時,應編碼0以指明第三運算元之位置。
參看圖1來描述併入及使用一或多個態樣之計算環境100之一實施例。計算環境100係基於(例如)由紐約州阿蒙克市之International Business Machines Corporation提供的z/Architecture。2010年8月IBM出版物第SA22-7832-08號的名為「z/Architecture Principles of Operation」之IBM®出版物中描述z/Architecture。(IBM®為美國紐約州阿蒙克市之International Business Machines Corporation的註冊商標。本文所使用之其他名稱可為International Business Machines Corporation或其他公司之註冊商標、商標或產品名稱。)在一實例 中,基於z/Architecture之計算環境包括由紐約州阿蒙克市之International Business Machines Corporation提供的eServer zSeries。
作為一實例,計算環境100包括耦接至控制器120之中央處理器複合體(CPC)102。舉例而言,中央處理器複合體102包括一或多個分割區104(例如,邏輯分割區LP1至LPn)、一或多個中央處理器106(例如,CP1至CPm),及超管理器108(例如,邏輯分割區管理器),其中每一者在下文予以描述。
每一邏輯分割區104能夠充當一分離系統。亦即,每一邏輯分割區可被獨立地重設、最初載入有作業系統(視需要),且用不同程式而操作。在邏輯分割區中執行之作業系統或應用程式看來像是能夠存取完全且完整之系統,但實際上,該系統之僅一部分係可用的。硬體及已授權內部碼(通常被稱為微碼)之組合阻止一邏輯分割區中之程式干擾不同邏輯分割區中之程式。此情形允許若干不同邏輯分割區以時間分片方式在單一或多個實體處理器上操作。在此特定實例中,每一邏輯分割區具有一駐留作業系統110,其對於一或多個邏輯分割區可不同。在一實施例中,作業系統110為由紐約州阿蒙克市之International Business Machines Corporation提供的z/OS作業系統。
中央處理器106為分配給邏輯分割區之實體處理器資源。舉例而言,邏輯分割區104包括一或多個邏輯處理器,該一或多個邏輯處理器中每一者表示分配給該分割區之實體處理器資源106之全部或份額。特定分割區104之邏輯處理器可專用於該分割區,使得底層處理器資源針對彼分割區而保留;抑或與另一分割區共用,使得底層處理器資源潛在地可用於另一分割區。
邏輯分割區104係由超管理器108管理,超管理器108係由在處理器106上執行之微碼實施。邏輯分割區104及超管理器108各自包含駐留於與中央處理器相關聯之中央儲存體之各別部分中的一或多個程 式。超管理器108之一實例為由紐約州阿蒙克市之International Business Machines Corporation提供的處理器資源/系統管理器(PR/SM)。
耦接至中央處理器複合體之控制器120包括負責在發出請求之不同處理器之間作出仲裁的集中式邏輯。舉例而言,當控制器120接收到請求時,該控制器判定出請求者為用於彼請求之主控處理器且其他處理器為受控處理器;該控制器廣播訊息;且以其他方式處置請求。2000年9月12日的Webb等人之名為「System Serialization With Early Release Of Individual Processor」之美國專利第6,199,219號中描述控制器之一實例,該專利之全文係據此以引用方式併入本文中。亦參看圖2來描述另外細節。
圖2描繪耦接至複數個中央處理器(CPU)201之控制器200之一實例。在此實例中,描繪兩個中央處理器。然而,應理解,兩個以上處理器可耦接至控制器200。
控制器200包括各種控制,該等控制包括(例如)系統序列化控制202。該等系統序列化控制用以確保待序列化之操作(諸如,無效化指令)被序列化,此在於:在計算環境中一次僅一個此類指令係在進行中。其亦監視用於彼操作之事件序列。
控制器200係經由各種介面而耦接至每一中央處理器。舉例而言,介面204係由中央處理器中之已授權內部碼使用以將指定待採取動作之「控制」命令發送至控制器,且發送傳回來自控制器之資訊之「感測」命令。另一介面為回應匯流排206,其用以針對「感測」命令傳回來自控制器之資訊。回應匯流排亦用以針對「控制」命令傳達命令狀態,且可自控制器內之複數個來源被設定,該等來源包括系統序列化控制。中央處理器可使用此介面以感測控制器200中之系統序列化控制之狀態。
一另外介面為介面208,其係由控制器使用以將命令發送至每一CPU。此介面亦可自控制器內之複數個來源被控制,該等來源包括系統序列化控制202。又一介面為介面210,其將信號提供至中央處理器201之快取控制212。快取控制212回應於該等信號而處理命令。在一實例中,快取控制212處理影響一或多個緩衝器(諸如,轉譯後備緩衝器(TLB)213)之命令,如下文進一步詳細地所描述。
除了快取控制212以外,中央處理器201亦包括各種其他控制,包括(例如)中斷控制220及執行控制222。回應於特定事件,中斷控制220造成內部中斷在CPU中待決,該內部中斷又在下一可中斷點處造成執行控制222暫時中止程式指令處理。回應於中斷,執行控制222調用已授權內部碼常式以設定廣播操作允許鎖存器224以使快取控制212能夠處理待決命令。
中央處理器201亦包括中央處理單元(CPU)靜止鎖存器226,其指示該中央處理器是否靜止。本說明書中可互換地使用術語CPU與處理器。
上述計算環境僅為一實例。許多變化係可能的。舉例而言,一或多個分割區可正在不同架構模式下執行。另外,作為另一實例,該環境無需基於z/Architecture,但取而代之,可基於由Intel、Sun Microsystems以及其他公司提供之其他架構。此外,一環境可包括一模擬器(例如,軟體或其他模擬機制),其中模擬特定架構或其子集。在此類環境中,模擬器之一或多個模擬函式可實施一或多個態樣,即使執行該模擬器之電腦可具有不同於正被模擬之能力的架構亦如此。作為一實例,在模擬模式下,解碼正被模擬之特定指令或操作,且建置適當模擬函式以實施個別指令或操作。
參看圖3來描述模擬環境之另外細節。作為一實例,主機電腦300能夠模擬另一架構、電腦,及/或另一電腦之處理能力。舉例而 言,主機電腦300係基於Intel架構、諸如PowerPC之RISC架構、由Sun Microsystems提供之SPARC架構,或另一架構,且能夠模擬IBM®之z/Architecture或者IBM®或另一實體之另一架構。
舉例而言,主機電腦300包括儲存指令及資料之記憶體302、自記憶體302提取指令且視情況提供針對已提取指令之本端緩衝之指令提取單元304、自指令提取單元304接收指令且判定已被提取之指令型別之指令解碼單元306,及執行該等指令之指令執行單元308。執行可包括:將資料自記憶體302載入至暫存器中;將資料自暫存器儲存回至記憶體;或執行某一算術或邏輯運算型別,如由解碼單元所判定。
在一實例中,上文所描述之每一單元係以軟體予以實施。舉例而言,由該等單元執行之操作被實施為模擬器軟體內之一或多個次常式。在另一實例中,操作中之一或多者係以韌體、硬體、軟體或其某一組合予以實施。
另外,儘管圖3係參考模擬予以描述,但圖3之環境無需為模擬環境。在另一實例中,指令係在原生環境中執行,且操作係以硬體、韌體、軟體或其某組合予以實施。
計算環境可包括虛擬儲存體以及主儲存體。虛擬儲存體可遠超過可用於組態中之主儲存體的大小,且通常維持於輔助儲存體中。虛擬儲存體被認為是由被稱作頁之位址區塊構成。虛擬儲存體之最近參考頁經指派以佔據實體主儲存體之區塊。隨著使用者參考未出現於主儲存體中的虛擬儲存體之頁,使虛擬頁取代主儲存體中較不可能被使用之頁。儲存體中之頁之交換可由作業系統在使用者不知曉的情況下執行。
用以指明虛擬儲存體中之位置的位址被稱作虛擬位址。跨越(例如)高達4k位元組之循序虛擬位址區塊被稱作頁。相似地,跨越(例如)高達1M位元組之循序虛擬頁區塊被稱作區段;且跨越(例如)高達2G 位元組之循序虛擬區段區塊被稱作區。另外,與由位址空間控制元素(ASCE)指明之虛擬儲存體相關聯的虛擬位址序列被稱作位址空間。位址空間可用以提供使用者之間的隔離度。一位址空間可包括一或多個區、一或多個區段、一或多個頁,或其某組合。
與不同儲存體單元型別(例如,區、區段、頁)相關聯的是待用於與儲存體單元相關聯之處理中的資料結構。舉例而言,與區相關聯的是區表;與區段相關聯的是區段表;且與頁相關聯的是頁表。此等表係(例如)在虛擬位址至用以存取主儲存體之真實位址之轉譯(例如,動態位址轉譯)期間被使用。在本文中被稱作轉譯表的待用於轉譯中之表係由位址空間控制元素(ASCE)指明。當前未指派至主儲存體之虛擬儲存體單元被稱作無效。虛擬儲存體單元之無效狀態係由與該單元相關聯之資料結構中之無效指示符指示。
在一實施例中,實施動態位址轉譯機制,使得經由DAT處理序而自轉譯表(例如,區表、區段表及/或頁表)導出之資訊維持於位於處理器內的在本文中被稱作轉譯後備緩衝器之一或多個緩衝器中,以便增強位址轉譯之效能。亦即,在轉譯期間,針對所需資訊檢查緩衝器,且接著,若該資訊未處於緩衝器中,則存取轉譯表中之一或多者。
在模擬模式下,解碼正被模擬之特定指令,且建置次常式以實施個別指令,如在C次常式或驅動程式中一樣,或使用某其他技術以用於提供用於特定硬體之驅動程式,此在理解一實施例之描述之後處於熟習此項技術者之技藝內。包括但不限於以下各者之各種軟體及硬體模擬專利說明多種已知方式來達成針對不同機器而架構化之指令格式之模擬以用於可用於熟習此項技術者的目標機器以及說明由上文所參考之軟體使用的彼等商用軟體技術:Beausoleil等人之名為「Multiprocessor for Hardware Emulation」之美國專利第5,551,013號;Scalzi等人之名為「Preprocessing of Stored Target Routines for Emulating Incompatible Instructions on a Target Processor」之美國專利第6,009,261號;Davidian等人之名為「Decoding Guest Instruction to Directly Access Emulation Routines that Emulate the Guest Instructions」之美國專利第5,574,873號;Gorishek等人之名為「Symmetrical Multiprocessing Bus and Chipset Used for Coprocessor Support Allowing Non-Native Code to Run in a System」之美國專利第6,308,255號;Lethin等人之名為「Dynamic Optimizing Object Code Translator for Architecture Emulation and Dynamic Optimizing Object Code Translation Method」之美國專利第6,463,582號;及Eric Traut之名為「Method for Emulating Guest Instructions on a Host Computer Through Dynamic Recompilation of Host Instructions」之美國專利第5,790,825號,該等專利中每一者之全文係據此以引用方式併入本文中;以及許多其他專利。
COMPARE AND REPLACE DAT TABLE ENTRY(CRDTE)
所描述的是CPU指令(COMPARE AND REPLACE DAT TABLE ENTRY),其可用新項來取代有效DAT表項,且自TLB去除掉組態中之所有CPU上之(至少)單一項的任何複本。此指令並不要求任何作用中任務暫時中止,且此指令可不去除多於必要項之項。
當執行CRDTE指令時,可取決於模型而以不同方式來實施項之選擇清除,且一般而言,可清除多於所需要之最小數目的項。一些模型可清除含有自儲存體中之頁表項獲得之頁框真實位址的所有項。
若控制程式需要取代DAT表中之有效項(亦即,潛在地由其他CPU使用之表項),則控制程式可執行以下操作中之一者:
‧暫時中止可在組態中之所有CPU上使用此DAT表項之所有任務的執行,使該項在所有CPU上無效化及去除(例如,使用IPTE),用新項來取代已無效化項,且重新分派已暫時中止任務。
‧取代DAT表項,且去除組態中之所有CPU上之整個TLB(例如,使用CSPG)。
第一選項複雜,此在於:第一選項要求撤銷分派及重新分派任務。第二選項次佳,此在於:第二選項要求去除整個TLB,即使正在改變僅一個項亦如此。
在一實施例中,電腦處理器獲得指令以供處理。基於作業碼,機器處理比較及取代DAT表項(CRDTE)指令。CRDTE指令具有以下格式:
R1及R2欄位各自指明一般暫存器之偶奇對,且必須指明偶數編號暫存器;否則,辨識規格例外。一般暫存器R1(該對之偶數暫存器)含有第一運算元。第一運算元可被稱作比較值。一般暫存器R1+1(該對之奇數暫存器)可被稱作取代值。
在進行指令時,比較第一運算元與第二運算元。第一運算元位於一般暫存器R1中。第二運算元係由一般暫存器R2及R2+1指明。R2及R2+1含有定址資訊,諸如,已指明表型別(DTT)及至表中以定位第二運算元之有效索引。
一旦獲得第一運算元及第二運算元,就接著比較第一運算元與第二運算元,且若第一運算元與第二運算元相等,則將一般暫存器R1+1之內容儲存於第二運算元位置處,且自組態中之已指定CPU清除掉(1)經由使用儲存體中之已取代項而形成的已指明型別之所有TLB表項,及(2)經由使用已清除較高層級TLB表項而形成之所有較低層級TLB表項。經清除之TLB項視情況可限於經形成以轉譯已指定位址空間中之位址的項。將所得條件碼設定至0。
若第一運算元與第二運算元不相等,則將第二運算元載入於第一運算元位置處,且將所得條件碼設定至1。
M4欄位可判定清除組態中之所有CPU之TLB抑或僅清除執行指令之CPU中之TLB。
圖4顯示一實施例之圖表。
在一實施例中,電腦處理器獲得CRDTE指令401以供處理。基於作業碼,機器處理比較及取代DAT表項指令。
R1及R2欄位各自指明一般暫存器405之偶奇對,且必須指明偶數編號暫存器;否則,辨識規格例外。一般暫存器R1(該對之偶數暫存器)410在位元位置0至63中含有第一運算元。第一運算元可被稱作比較值。一般暫存器R1+1(該對之奇數暫存器)411之位元位置0至63可被稱作取代值。
在執行指令時,比較第一運算元與第二運算元。第一運算元位於一般暫存器R1 410中。第二運算元為儲存體中由一般暫存器R2 420及R2+1 421指明之雙字組。一般暫存器R2之位元59至61為已指明表型別(DTT),其指定一般暫存器R2中形成儲存體440中之表430之原點的位元;DTT亦指定一般暫存器R2+1中用作至表中以定位第二運算元435之有效索引的位元。
一旦比較(436)第一運算元與第二運算元,若第一運算元與第二運算元相等,則就將一般暫存器R1+1之內容儲存於第二運算元位置445處,且如450所示,自組態中之已指定CPU清除掉(1)經由使用儲存體中之已取代項而形成的已指明型別之所有TLB表項,及(2)經由使用已清除較高層級TLB表項而形成之所有較低層級TLB表項。經清除之TLB項視情況可限於經形成以轉譯已指定位址空間中之位址的項。如455所示,將所得條件碼設定至0。
若第一運算元與第二運算元不相等,則將第二運算元載入於第一運算元位置460處。如465所示,將所得條件碼設定至1。
指令401可利用M4欄位402以判定選擇地清除組態470中之所有 CPU之TLB抑或僅清除執行指令475之CPU中之TLB。M4欄位含有本端清除(LC)控制。若M4欄位中之LC控制為0,則組態中之所有CPU中之TLB將受到影響。若M4欄位中之LC控制欄位為1,則僅與執行比較及取代DAT表項指令之CPU相關聯之TLB可受到影響。組態中之所有其他CPU中之TLB可不受到影響。
備註:術語「已指定CPU」對於受到此指令影響之TLB之範疇具有以下含義:
當M4欄位中之本端清除(LC)控制為0時,術語「已指定CPU」意謂組態中之所有CPU。
當M4欄位中之LC控制為1時,術語「已指定CPU」僅意謂執行COMPARE AND REPLACE DAT TABLE ENTRY指令之CPU(本端CPU)。組態中之所有其他CPU中之TLB可不受到影響。
‧比較第一運算元與第二運算元。若第一運算元與第二運算元相等,則將一般暫存器R1+1之內容儲存於第二運算元位置處,且自組態中之已指定CPU清除掉(1)經由使用儲存體中之已取代項而形成的已指明型別之所有TLB表項,及(2)經由使用已清除較高層級TLB表項而形成之所有較低層級TLB表項。經清除之TLB項視情況可限於經形成以轉譯已指定位址空間中之位址的項。
‧若第一運算元與第二運算元不相等,則將第二運算元載入於第一運算元位置處。然而,在一些模型上,可提取第二運算元,且隨後將其不變地儲存回於第二運算元位置處。此更新看來像是區塊並行連鎖更新參考,如由其他CPU所觀察。比較之結果係由條件碼指示。
R1及R2欄位各自指明一般暫存器之偶奇對,且必須指明偶數編號暫存器;否則,辨識規格例外。現在關於圖5,第一運算元被稱作比較值501,且含於一般暫存器R1之位元位置0至63中。一般暫存器R1+1之位元位置0至63被稱作取代值510。
第二運算元為儲存體中由一般暫存器R2及R2+1 540指明之雙字組。一般暫存器R2之位元59至61為已指明表型別(DTT),其指定一般暫存器R2中形成儲存體中之表之原點的位元;DTT亦指定一般暫存器R2+1 540中用作至表中以定位第二運算元之有效索引的位元,如下:
當DTT如520所示為000二進位時,一般暫存器R2之位元位置0至52之內容(其中十一個0附加於右側上(521))形成表原點,且忽略該暫存器之522中之位元53至58、523中之位元62及524中之位元63。當DTT如530所示為100至111二進位時,一般暫存器R2之位元位置0至51之內容(其中十二個0附加於右側上(531))形成表原點,且忽略該暫存器之532中之位元52至58、533中之位元62及534中之位元63。001、010及011二進位之DTT值無效;若DTT無效,則辨識規格例外。
一般暫存器R2+1 540之位元0至51具有虛擬位址之區索引、區段索引及頁索引之格式。通常由DAT使用以選擇由DTT指明之表型別中之項的541中之位元0至51之部分被稱作有效索引。忽略在該有效索引右側的一般暫存器R2+1之位元0至51之部分。一般暫存器R2+1(542)之位元位置52至63被保留且必須含有0;否則,辨識規格例外。
若R3 550為非零,則一般暫存器R3之內容具有位址空間控制元素之格式,其中僅使用表原點(551中之位元0至51)及指明型別控制(DT)(553中之位元60及61)。此等內容用以選擇待清除之TLB項。忽略一般暫存器R3之552中之位元52至59、554中之位元62,及555中之位 元63。若R3為0,則忽略一般暫存器0之整個內容,且清除TLB項而不管用以形成TLB項之ASCE。
圖6中展示M4欄位。
M4欄位之位元被定義如下:
保留:保留如601所示之位元0至2。M4欄位之保留位元位置被忽略,但應含有0;否則,程式在未來可不相容地操作。
本端清除控制(LC):
LC位元(M4欄位602之位元3)控制僅清除本端CPU中之TLB,抑或清除組態之所有CPU中之TLB。
當第一運算元與第二運算元相等時,將一般暫存器R1+1之內容儲存於第二運算元位置處,且自組態中之已指定CPU中之轉譯後備緩衝器(TLB)清除掉(1)經由使用儲存體中之第二運算元之原始內容(亦即,第二運算元在用取代值進行取代之前的內容)而形成的已指明型別之所有TLB表項,及(2)經由使用已清除較高層級TLB表項而形成之所有較低層級TLB表項。經清除之TLB項視情況可限於經形成以轉譯已指定位址空間中之位址的項。
取決於表型別,一般暫存器R2中之表原點及一般暫存器R2+1中之有效索引根據2010年8月IBM出版物第SA22-7832-08號之「z/Architecture Principles of Operation」中之「Lookup in a Table Designated by an Address-Space-Control Element」或「Page-Table Lookup」中的規則而指明表項,惟總是忽略來自所得位址之位元位置0之進位且不對照表長度欄位來檢查索引除外。表原點被視為64位元位址,且藉由使用針對64位元位址算術之規則而執行相加,而不管由當前PSW之位元31及32指定之當前定址模式。由此兩個分量形成之位址為真實或絕對位址。不針對有效性檢驗表項之內容,且歸因於表項之內容而未辨識例外條件。
表項之提取及儲存被執行為區塊並行連鎖更新。對該項之提取存取經受金鑰控制保護,且儲存存取經受金鑰控制保護及低位址保護。
序列化功能係在操作開始之前執行,且在操作完成之後再次執行。如針對所有序列化操作之狀況,此序列化僅應用於此CPU;其他CPU未必被序列化。
當第一運算元與第二運算元相等時,此CPU自其TLB清除選擇之項。除了清除本端CPU以外,若M4欄位中之LC位元為0,則亦向組態中之所有其他CPU傳信以自其TLB清除選擇之項。自每一TLB清除掉所有以下條件被滿足的至少彼等項:
- 一般暫存器R2+1中之有效索引匹配於由一般暫存器R2之位元59至61中之DTT欄位指明的型別之TLB表項中之對應索引。若模型實施包括由DTT欄位指明之索引之複合TLB項,則在一般暫存器R2+1中之有效索引左側之位元亦匹配於已指明TLB表項中提供之任何對應位元。
- R3欄位為0,抑或一般暫存器R3中之表原點及指明型別欄位匹配於用以形成TLB表項之位址空間控制元素(ASCE)中之表原點及指明型別欄位。
- 若R3欄位為0,則此步驟中描述之條件不適用。
- 若EDAT-1適用且儲存體中取代之項為區段表項,或若EDAT-2適用且儲存體中取代之項為區第三表項,則已取代項中之格式控制匹配於TLB項之格式控制。
- 若儲存體中之已取代項指明較低層級轉譯表,則該項中之較低層級表原點匹配於TLB表項中之表原點欄位。
- 若EDAT-1適用且儲存體中取代之項為格式控制為1之區段表項,或若EDAT-2適用且儲存體中取代之項為格式控制為1之區第三表 項,則已取代項中之區段框絕對位址或區框絕對位址分別匹配於TLB項之區段框絕對位址或區框絕對位址。
亦自每一受影響TLB清除掉所有以下條件被滿足的至少任何較低層級TLB表項:
- 較低層級TLB表項係經由使用儲存體中之已取代項或經由使用較高層級TLB表項而形成,該較高層級TLB表項係經由使用儲存體中之已取代項或在此處理序中清除之TLB項而形成。
- R3欄位為0,抑或一般暫存器R3中之表原點及指明型別欄位匹配於用以形成較低層級TLB表項之位址空間控制元素(ASCE)中之表原點及指明型別欄位。此ASCE可為附接含有較高層級表項之轉譯路徑的ASCE,該較高層級表項附接儲存體中供形成較低層級TLB表項之較低層級表項,或該ASCE可為使較高層級TLB表項可用之ASCE,該較高層級TLB表項附接儲存體中供形成較低層級TLB表項之較低層級表項。
若R3欄位為0,則此步驟中描述之條件不適用。
- 若EDAT-1適用且儲存體中取代之項為區段表項,或若EDAT-2適用且儲存體中取代之項為區第三表項,則已取代項中之格式控制匹配於TLB項之格式控制。
若儲存體中之項指明較低層級轉譯表,則該項中之較低層級表原點匹配於TLB表項中之表原點欄位。
當第一運算元與第二運算元相等時,COMPARE AND REPLACE DAT TABLE ENTRY之執行並不在執行該COMPARE AND REPLACE DAT TABLE ENTRY之CPU上完成直至發生以下情形為止:
1. 已自此CPU之TLB清除滿足上文所指定之準則的所有項。當M4欄位中之LC控制為1時,COMPARE AND REPLACE DAT TABLE ENTRY之執行完成,且不執行以下步驟。
2. 當M4欄位中之LC控制為0時,組態中之所有其他CPU已完成任何儲存存取,包括改變位元及參考位元之更新。
操作未必對TLB真實空間項具有任何效應。
特殊條件
若以下情形中任一者為真,則辨識規格例外,且抑制操作:
R1抑或R2欄位為奇數。
DTT欄位(一般暫存器R2之位元位置59至61)含有001、010或011二進位。
一般暫存器R2+1之位元位置52至63含有非零值。
操作關於所有定址及保護例外受到抑制。
所得條件碼:
0--第一運算元與第二運算元相等,第二運算元係由一般暫存器R1+1之內容取代
1--第一運算元與第二運算元不相等,第一運算元係由第二運算元取代
2--
3--
程式例外:
‧定址
‧操作(若增強型DAT設施2未被安裝)
‧特殊權限操作
‧保護(提取及儲存、區表項、區段表項或頁表項、金鑰控制保護,及低位址保護)
‧規格
程式設計備註:
1. 可取決於模型而以不同方式來實施TLB項之選擇清除,且一 般而言,可清除多於所需要之最小數目的項。
2. 當清除與共同區段相關聯之TLB項時,應注意,此等項可能已經由使用含有許多不同表原點之位址空間控制元素而形成。
3. 指令之M4欄位被認為是選用的,如由正含於組譯器語法中之括號[ ]內的欄位所指示。當未指定M4欄位時,組譯器將0置放於指令之彼欄位中。
4. 本端清除控制應僅在以下情形中任一者為真時才被指定為1;否則,可發生不可預測結果,包括延遲存取例外機器檢查之呈現。
‧程式正在單處理器組態中執行。
‧程式經指派以在單一CPU上執行,且維持程式與彼CPU之間的親和性。
在一些模型上,針對上文所列出之狀況使用指定僅本端TLB之清除之COMPARE AND REPLACE DAT TABLE ENTRY可引起顯著效能改良。
對以上環境之許多變化係可能的。舉例而言,一或多個態樣同等地適用於(例如)虛擬機器模擬,在該虛擬機器模擬中,一或多個可分頁實體(例如,客體)在一或多個處理器上執行。作為一實例,可分頁客體係由啟動解譯性執行(Start Interpretive Execution,SIE)架構定義,IBM出版物第SA22-7095號(1985年)名為「IBM System/370 Extended Architecture」之IBM出版物中描述該SIE架構之一實例,該出版物之全文係據此以引用方式併入本文中。
儘管上文提及SIE及z/Architecture,但一或多個態樣同等地適用於使用可分頁實體或相似建構之其他架構及/或環境。
此外,上文所描述之各種實施例僅僅為實例。舉例而言,儘管本文描述邏輯分割環境,但此環境僅為一實例。態樣有益於許多環境型別,包括具有複數個區之其他環境,及非分割環境。另外,可不存 在中央處理器複合體,而是存在耦接在一起之多個處理器。再者,一或多個態樣適用於單處理器環境。
儘管本文描述特定環境,但此外可實施對此等環境之許多變化。舉例而言,若該環境被邏輯地分割,則較多或較少邏輯分割區可包括於該環境中。另外,可存在耦接在一起之多個中央處理複合體。存在可進行之變化中之僅一些。另外,其他變化係可能的。另外,該環境可包括多個控制器。再者,多個非使用中請求(來自一或多個控制器)可在系統中並行地未處理。額外變化亦係可能的。
有利地,一或多個態樣可受益於以下美國專利中之一或多者描述之效能增強:Slegel等人之名為「Filtering Processor Requests Based On Identifiers」之美國專利第7530067號;Slegel等人之名為「Blocking Processing Restrictions Based On Page Indices」之美國專利第7020761號;及Slegel等人之名為「Blocking Processing Restrictions Based On Addresses」之美國專利第6996698號,該等專利中每一者之全文係據此以引用方式併入本文中。
如本文所描述,術語「處理單元」包括:可分頁實體,諸如,客體;處理器;模擬器;及/或其他相似組件。此外,術語「由處理單元」包括以處理單元之名義。術語「緩衝器」包括儲存體區域,以及不同資料結構型別,包括但不限於陣列;且術語「表」可包括不同於表型別資料結構之表。另外,指令可包括不同於指明資訊之暫存器的指令。此外,頁、區段及/或區可具有不同於本文所描述之大小的大小。
該等能力中之一或多者可以軟體、韌體、硬體或其某組合予以實施。另外,可模擬該等能力中之一或多者。
一或多個態樣可包括於具有(例如)電腦可用媒體之製品(例如,一或多個電腦程式產品)中。舉例而言,該媒體在其中體現有電腦可 讀程式碼構件或邏輯(例如,指令、程式碼、命令等等)以提供及促進能力。該製品可被包括為電腦系統之一部分,或被分離地銷售。
另外,可提供可由機器讀取之至少一程式儲存器件,該機器體現可由該機器執行以執行該等能力之指令之至少一程式。
本文所描繪之流程圖僅僅為實例。可存在對本文所描述之此等圖解或步驟(或操作)之許多變化。舉例而言,可以不同次序來執行該等步驟,或可添加、刪除或修改步驟。
儘管本文已詳細地描繪及描述較佳實施例,但對於熟習相關技術者將顯而易見,可進行各種修改、添加、替代及其類似者,且因此,此等修改、添加、替代及其類似者被認為是在如以下申請專利範圍所定義之範疇內。
在一另外實施例中,適合於儲存及/或執行程式碼之資料處理系統係可用的,其包括直接地或經由系統匯流排間接地耦接至記憶體元件之至少一處理器。舉例而言,該等記憶體元件包括在程式碼之實際執行期間使用之本端記憶體、大容量儲存體,及快取記憶體,該快取記憶體提供至少某一程式碼之臨時儲存,以便縮減在執行期間必須自大容量儲存體擷取程式碼的次數。
輸入/輸出或I/O器件(包括但不限於鍵盤、顯示器、指標器件、DASD、磁帶、CD、DVD、隨身碟(thumb drive)及其他記憶體媒體等等)可直接地或經由介入I/O控制器耦接至系統。網路配接器亦可耦接至系統以使資料處理系統能夠經由介入之私用或公用網路耦接至其他資料處理系統或遠端印表機或儲存器件。數據機、纜線數據機及乙太網路卡僅僅為可用網路配接器型別中之少數幾種。
一或多個態樣可包括於具有(例如)電腦可用媒體之製品(例如,一或多個電腦程式產品)中。舉例而言,該媒體在其中具有電腦可讀程式碼構件或邏輯(例如,指令、程式碼、命令等等)以提供及促進能 力。該製品可被包括為系統(例如,電腦系統)之部分,或被分離地銷售。
參看圖7來描述併入一或多個態樣之製品或電腦程式產品之一實例。舉例而言,電腦程式產品700包括一或多個電腦可用媒體702以在其上儲存電腦可讀程式碼構件或邏輯704以提供及促進一或多個態樣。該媒體可為電子、磁性、光學、電磁、紅外線或半導體系統(或裝置或器件)或傳播媒體。電腦可讀媒體之實例包括半導體或固態記憶體、磁帶、抽取式電腦磁片、隨機存取記憶體(RAM)、唯讀記憶體(ROM)、剛性磁碟及光碟。光碟之實例包括光碟-唯讀記憶體(CD-ROM)、光碟-讀/寫(CD-R/W)及DVD。由一或多個電腦可讀程式碼構件或邏輯定義的程式指令之序列或一或多個相關模組之邏輯組譯碼指導一或多個態樣之執行。
100‧‧‧計算環境
102‧‧‧中央處理器複合體(CPC)
104‧‧‧邏輯分割區
106‧‧‧中央處理器/實體處理器資源
108‧‧‧超管理器
120‧‧‧控制器

Claims (21)

  1. 一種用於管理一動態位址轉譯(DAT)表之電腦程式產品,該電腦程式產品包含:電腦可讀儲存媒體,其體現有程式碼,該程式碼可由一電腦處理器讀取以執行一方法,該方法包含:由該處理器自待執行之一機器可執行指令之一作業碼判定出該指令為一比較及取代DAT表項指令,該指令包含一R1欄位及一R2欄位;及由該處理器執行該指令,該執行包含:基於一型別欄位,將一奇數暫存器之一索引值加至一偶數暫存器之一值以形成一第二運算元之一位址,該奇數暫存器及該偶數暫存器為由該指令之該R2欄位指明之一偶奇暫存器對;自由該已形成位址指定之一記憶體位置獲得一原始第二運算元;比較一第一運算元與該所獲得原始第二運算元,該第一運算元含於由該指令之該R1欄位指明之一偶奇暫存器對的一偶數編號(偶數R1)暫存器中;基於該第一運算元等於該原始第二運算元,將該偶數R1暫存器之內容儲存於第二運算元位置中作為新第二運算元。
  2. 如請求項1之電腦程式產品,其進一步包含基於由該原始第二運算元之一值指明之一轉譯表項而使用轉譯表項來選擇地清除對應於由DAT形成之項之所有本端轉譯後備緩衝器(TLB)項。
  3. 如請求項1之電腦程式產品,其包含基於該第一運算元不等於該 原始第二運算元而將該原始第二運算元儲存至該偶數R1暫存器中。
  4. 如請求項2之電腦程式產品,其中經選擇地清除之一轉譯表項對應於與該原始第二運算元相關聯之較低層級轉譯表項。
  5. 如請求項1之電腦程式產品,其進一步包含:基於一第一運算元比較值等於該第二運算元,設定一第一條件碼值;及基於一第一運算元比較值不等於該第二運算元,設定一第二條件碼值。
  6. 如請求項2之電腦程式產品,其中經清除之該等TLB項限於經形成以轉譯由該指令指定之一位址空間中之位址的項。
  7. 如請求項2之電腦程式產品,其進一步包含:基於該指令之一遮罩欄位具有一第一值,僅選擇地清除一組態之複數個處理器中執行該指令之該處理器之一TLB;及基於該指令之一遮罩欄位具有一第二值,選擇地清除該組態之複數個處理器之該TLB。
  8. 一種用於執行一比較及取代DAT項指令之電腦系統,該系統包含:一記憶體;及一處理器,其經組態以與該記憶體通信,其中該電腦系統經組態以執行一方法,該方法包含:由該處理器自待執行之一機器可執行指令之一作業碼判定出該指令為一比較及取代DAT表項指令,該指令包含一R1欄位及一R2欄位;及由該處理器執行該指令,該執行包含:自由一偶奇暫存器對之暫存器指定之一記憶體位置獲 得一原始第二運算元,該偶奇暫存器對係由該指令之該R2欄位指明;比較一第一運算元與該所獲得原始第二運算元,該第一運算元含於由該指令之該R1欄位指明之一偶奇暫存器對的一偶數編號(偶數R1)暫存器中;基於該第一運算元等於該原始第二運算元,將該偶數R1暫存器之內容儲存於第二運算元位置中作為新第二運算元。
  9. 如請求項8之電腦系統,其進一步包含基於由該原始第二運算元之一值指明之一轉譯表項而使用轉譯表項來選擇地清除對應於由DAT形成之項之所有本端轉譯後備緩衝器(TLB)項。
  10. 如請求項8之電腦系統,其包含基於該第一運算元不等於該原始第二運算元而將該原始第二運算元儲存至該偶數R1暫存器中。
  11. 如請求項9之電腦系統,其中經選擇地清除之一轉譯表項對應於與該原始第二運算元相關聯之較低層級轉譯表項。
  12. 如請求項8之電腦系統,其進一步包含:基於一第一運算元比較值等於該第二運算元,設定一第一條件碼值;及基於一第一運算元比較值不等於該第二運算元,設定一第二條件碼值。
  13. 如請求項9之電腦系統,其中經清除之該等TLB項限於經形成以轉譯由該指令指定之一位址空間中之位址的項。
  14. 如請求項9之電腦系統,其進一步包含:基於該指令之一遮罩欄位具有一第一值,僅選擇地清除一組態之複數個處理器中執行該指令之該處理器之一TLB;及基於該指令之一遮罩欄位具有一第二值,選擇地清除該組態之複數個 處理器之該TLB。
  15. 一種用於比較一第一位址轉譯表項與一第二位址轉譯表項之電腦實施方法,該方法包含:由該處理器自待執行之一機器可執行指令之一作業碼判定出該指令為一比較及取代DAT表項指令,該指令包含一R1欄位及一R2欄位;及由該處理器執行該指令,該執行包含:自由一偶奇暫存器對之暫存器指定之一記憶體位置獲得一原始第二運算元,該偶奇暫存器對係由該指令之該R2欄位指明;比較一第一運算元與該所獲得原始第二運算元,該第一運算元含於由該指令之該R1欄位指明之一偶奇暫存器對的一偶數編號(偶數R1)暫存器中;基於該第一運算元等於該原始第二運算元,將該偶數R1暫存器之內容儲存於第二運算元位置中作為新第二運算元。
  16. 如請求項15之方法,其進一步包含基於由該原始第二運算元之一值指明之一轉譯表項而使用轉譯表項來選擇地清除對應於由DAT形成之項之所有本端轉譯後備緩衝器(TLB)項。
  17. 如請求項15之方法,其包含基於該第一運算元不等於該原始第二運算元而將該原始第二運算元儲存至該偶數R1暫存器中。
  18. 如請求項16之方法,其中經選擇地清除之一轉譯表項對應於與該原始第二運算元相關聯之較低層級轉譯表項。
  19. 如請求項15之方法,其進一步包含:基於一第一運算元比較值等於該第二運算元,設定一第一條件碼值;及基於一第一運算元比較值不等於該第二運算元,設定一第二 條件碼值。
  20. 如請求項16之方法,其中經清除之該等TLB項限於經形成以轉譯由該指令指定之一位址空間中之位址的項。
  21. 如請求項16之方法,其進一步包含:基於該指令之一遮罩欄位具有一第一值,僅選擇地清除一組態之複數個處理器中執行該指令之該處理器之一TLB;及基於該指令之一遮罩欄位具有一第二值,選擇地清除該組態之複數個處理器之該TLB。
TW102116784A 2012-06-15 2013-05-10 比較及取代動態位址轉譯表項之電腦程式產品、電腦系統及方法 TWI622880B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/524,468 2012-06-15
US13/524,468 US20130339656A1 (en) 2012-06-15 2012-06-15 Compare and Replace DAT Table Entry

Publications (2)

Publication Number Publication Date
TW201413454A true TW201413454A (zh) 2014-04-01
TWI622880B TWI622880B (zh) 2018-05-01

Family

ID=49757047

Family Applications (1)

Application Number Title Priority Date Filing Date
TW102116784A TWI622880B (zh) 2012-06-15 2013-05-10 比較及取代動態位址轉譯表項之電腦程式產品、電腦系統及方法

Country Status (23)

Country Link
US (1) US20130339656A1 (zh)
EP (1) EP2862089B1 (zh)
JP (1) JP6202543B2 (zh)
KR (1) KR101572409B1 (zh)
CN (1) CN104903873B (zh)
AU (1) AU2012382781B2 (zh)
BR (1) BR112014031436B1 (zh)
CA (1) CA2874186C (zh)
DK (1) DK2862089T3 (zh)
ES (1) ES2708331T3 (zh)
HK (1) HK1210846A1 (zh)
HR (1) HRP20190166T1 (zh)
IL (1) IL236248A0 (zh)
LT (1) LT2862089T (zh)
MX (1) MX347759B (zh)
PL (1) PL2862089T3 (zh)
PT (1) PT2862089T (zh)
RU (1) RU2550558C2 (zh)
SG (1) SG11201407485RA (zh)
SI (1) SI2862089T1 (zh)
TW (1) TWI622880B (zh)
WO (1) WO2013186606A2 (zh)
ZA (1) ZA201408136B (zh)

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10162764B2 (en) 2016-07-18 2018-12-25 International Business Machines Corporation Marking page table/page status table entries to indicate memory used to back address translation structures
US10168902B2 (en) 2016-07-18 2019-01-01 International Business Machines Corporation Reducing purging of structures associated with address translation
US10169243B2 (en) 2016-07-18 2019-01-01 International Business Machines Corporation Reducing over-purging of structures associated with address translation
US10176111B2 (en) 2016-07-18 2019-01-08 International Business Machines Corporation Host page management using active guest page table indicators
US10176006B2 (en) 2016-07-18 2019-01-08 International Business Machines Corporation Delaying purging of structures associated with address translation
US10176110B2 (en) 2016-07-18 2019-01-08 International Business Machines Corporation Marking storage keys to indicate memory used to back address translation structures
US10180910B2 (en) 2016-07-18 2019-01-15 International Business Machines Corporation Host-based resetting of active use of guest page table indicators
US10223281B2 (en) 2016-07-18 2019-03-05 International Business Machines Corporation Increasing the scope of local purges of structures associated with address translation
US10241924B2 (en) 2016-07-18 2019-03-26 International Business Machines Corporation Reducing over-purging of structures associated with address translation using an array of tags
US10248573B2 (en) 2016-07-18 2019-04-02 International Business Machines Corporation Managing memory used to back address translation structures
US10282305B2 (en) 2016-07-18 2019-05-07 International Business Machines Corporation Selective purging of entries of structures associated with address translation in a virtualized environment
TWI676891B (zh) * 2014-11-14 2019-11-11 美商凱為有限責任公司 轉譯後備緩衝器管理
TWI701551B (zh) * 2017-01-19 2020-08-11 美商萬國商業機器公司 用於於虛擬化環境中保存/復原受防護之儲存器控制之電腦程式產品、電腦實施方法及電腦系統
US10802986B2 (en) 2016-07-18 2020-10-13 International Business Machines Corporation Marking to indicate memory used to back address translation structures

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9182984B2 (en) 2012-06-15 2015-11-10 International Business Machines Corporation Local clearing control
US9684606B2 (en) * 2014-11-14 2017-06-20 Cavium, Inc. Translation lookaside buffer invalidation suppression
US9697137B2 (en) * 2014-11-14 2017-07-04 Cavium, Inc. Filtering translation lookaside buffer invalidations
RU2632416C2 (ru) * 2015-05-14 2017-10-04 Общество С Ограниченной Ответственностью "Яндекс" Способ (варианты) передачи объекта от первого процесса на второй процесс, машиночитаемый носитель (варианты) и система обработки данных
US10210323B2 (en) * 2016-05-06 2019-02-19 The Boeing Company Information assurance system for secure program execution
US20180018283A1 (en) * 2016-07-18 2018-01-18 International Business Machines Corporation Selective purging of guest entries of structures associated with address translation
US9798597B1 (en) 2016-09-26 2017-10-24 International Business Machines Corporation Verifying selective purging of entries from translation look-aside buffers
US10452288B2 (en) 2017-01-19 2019-10-22 International Business Machines Corporation Identifying processor attributes based on detecting a guarded storage event
US10732858B2 (en) 2017-01-19 2020-08-04 International Business Machines Corporation Loading and storing controls regulating the operation of a guarded storage facility
US10496292B2 (en) 2017-01-19 2019-12-03 International Business Machines Corporation Saving/restoring guarded storage controls in a virtualized environment
US10579377B2 (en) 2017-01-19 2020-03-03 International Business Machines Corporation Guarded storage event handling during transactional execution
US10496311B2 (en) 2017-01-19 2019-12-03 International Business Machines Corporation Run-time instrumentation of guarded storage event processing
US10901911B2 (en) 2018-11-21 2021-01-26 Microsoft Technology Licensing, Llc Faster computer memory access by reducing SLAT fragmentation
US10977183B2 (en) 2018-12-11 2021-04-13 International Business Machines Corporation Processing a sequence of translation entry invalidation requests with regard to draining a processor core
US10740239B2 (en) 2018-12-11 2020-08-11 International Business Machines Corporation Translation entry invalidation in a multithreaded data processing system
US10817434B2 (en) 2018-12-19 2020-10-27 International Business Machines Corporation Interruptible translation entry invalidation in a multithreaded data processing system
WO2021085790A1 (ko) 2019-10-30 2021-05-06 박재범 다채널 사운드 시스템이 구비된 의자용 부재 및 이를 포함하는 의자
CA3156094C (en) 2019-10-30 2022-09-20 Tround Inc. Chair member provided with multi-channel sound system and chair comprising same
KR102333695B1 (ko) 2020-01-10 2021-12-02 박재범 다채널 사운드 시스템이 구비된 의자용 부재 및 이를 포함하는 의자
KR102359742B1 (ko) 2020-05-15 2022-02-08 박재범 다채널 사운드 시스템이 구비된 의자
KR102378865B1 (ko) 2020-06-16 2022-03-25 박재범 다채널 사운드 시스템 구현을 위한 의자용 부재 및 이를 포함하는 의자
KR102381959B1 (ko) 2020-07-06 2022-04-01 박재범 다채널 사운드 시스템이 구비된 의자용 부재 및 이를 포함하는 의자
KR102357554B1 (ko) 2020-08-12 2022-02-07 박재범 다채널 사운드 시스템이 구비된 의자
KR102406224B1 (ko) 2020-09-02 2022-06-08 박재범 다채널 사운드 시스템이 구비된 의자용 부재 및 이를 포함하는 의자
KR102352425B1 (ko) 2020-08-21 2022-01-18 박재범 다채널 사운드 시스템이 구비된 의자
KR102426565B1 (ko) 2020-08-28 2022-07-29 박재범 무선 스피커 의자
US11593275B2 (en) 2021-06-01 2023-02-28 International Business Machines Corporation Operating system deactivation of storage block write protection absent quiescing of processors
US12013791B2 (en) * 2021-06-01 2024-06-18 International Business Machines Corporation Reset dynamic address translation protection instruction
KR102630387B1 (ko) 2021-08-19 2024-01-29 박재범 다채널 사운드 시스템이 구비된 의자
US12020059B2 (en) * 2021-08-30 2024-06-25 International Business Machines Corporation Inaccessible prefix pages during virtual machine execution

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3619613A1 (de) * 1985-09-02 1987-03-05 Erfurt Electronic Pc-steuerwerk mit einem programmspeicher und einem abbildspeicher
TW343318B (en) * 1996-09-23 1998-10-21 Advanced Risc Mach Ltd Register addressing in a data processing apparatus
EP1261912A2 (en) * 2000-03-08 2002-12-04 Sun Microsystems, Inc. Processing architecture having sub-word shuffling and opcode modification
US6560687B1 (en) * 2000-10-02 2003-05-06 International Business Machines Corporation Method of implementing a translation lookaside buffer with support for a real space control
US7284100B2 (en) * 2003-05-12 2007-10-16 International Business Machines Corporation Invalidating storage, clearing buffer entries, and an instruction therefor
GB2402763B (en) * 2003-06-13 2006-03-01 Advanced Risc Mach Ltd Data access program instruction encoding
RU2433456C2 (ru) * 2006-04-19 2011-11-10 Квэлкомм Инкорпорейтед Виртуально маркированный кэш команд с поведением физически маркированного
US7624237B2 (en) * 2006-05-03 2009-11-24 International Business Machines Corporation Compare, swap and store facility with no external serialization
US20090182988A1 (en) * 2008-01-11 2009-07-16 International Business Machines Corporation Compare Relative Long Facility and Instructions Therefore
WO2010043401A2 (en) * 2008-10-15 2010-04-22 Martin Vorbach Data processing device
US20110314263A1 (en) * 2010-06-22 2011-12-22 International Business Machines Corporation Instructions for performing an operation on two operands and subsequently storing an original value of operand
US8914619B2 (en) * 2010-06-22 2014-12-16 International Business Machines Corporation High-word facility for extending the number of general purpose registers available to instructions

Cited By (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI676891B (zh) * 2014-11-14 2019-11-11 美商凱為有限責任公司 轉譯後備緩衝器管理
US10223281B2 (en) 2016-07-18 2019-03-05 International Business Machines Corporation Increasing the scope of local purges of structures associated with address translation
US10176111B2 (en) 2016-07-18 2019-01-08 International Business Machines Corporation Host page management using active guest page table indicators
US10248573B2 (en) 2016-07-18 2019-04-02 International Business Machines Corporation Managing memory used to back address translation structures
US10282305B2 (en) 2016-07-18 2019-05-07 International Business Machines Corporation Selective purging of entries of structures associated with address translation in a virtualized environment
US10176110B2 (en) 2016-07-18 2019-01-08 International Business Machines Corporation Marking storage keys to indicate memory used to back address translation structures
US10180910B2 (en) 2016-07-18 2019-01-15 International Business Machines Corporation Host-based resetting of active use of guest page table indicators
US10180909B2 (en) 2016-07-18 2019-01-15 International Business Machines Corporation Host-based resetting of active use of guest page table indicators
US10162764B2 (en) 2016-07-18 2018-12-25 International Business Machines Corporation Marking page table/page status table entries to indicate memory used to back address translation structures
US11016907B2 (en) 2016-07-18 2021-05-25 International Business Machines Corporation Increasing the scope of local purges of structures associated with address translation
US10169243B2 (en) 2016-07-18 2019-01-01 International Business Machines Corporation Reducing over-purging of structures associated with address translation
US10176006B2 (en) 2016-07-18 2019-01-08 International Business Machines Corporation Delaying purging of structures associated with address translation
US10445248B2 (en) 2016-07-18 2019-10-15 International Business Machines Corporation Host page management using active guest page table indicators
US10168902B2 (en) 2016-07-18 2019-01-01 International Business Machines Corporation Reducing purging of structures associated with address translation
US10515020B2 (en) 2016-07-18 2019-12-24 International Business Machines Corporation Marking storage keys to indicate memory used to back address translation structures
US10572392B2 (en) 2016-07-18 2020-02-25 International Business Machines Corporation Increasing the scope of local purges of structures associated with address translation
US10241924B2 (en) 2016-07-18 2019-03-26 International Business Machines Corporation Reducing over-purging of structures associated with address translation using an array of tags
US10802986B2 (en) 2016-07-18 2020-10-13 International Business Machines Corporation Marking to indicate memory used to back address translation structures
TWI701551B (zh) * 2017-01-19 2020-08-11 美商萬國商業機器公司 用於於虛擬化環境中保存/復原受防護之儲存器控制之電腦程式產品、電腦實施方法及電腦系統

Also Published As

Publication number Publication date
DK2862089T3 (en) 2019-02-25
PL2862089T3 (pl) 2019-04-30
JP2015527632A (ja) 2015-09-17
US20130339656A1 (en) 2013-12-19
ES2708331T3 (es) 2019-04-09
AU2012382781B2 (en) 2016-06-02
KR101572409B1 (ko) 2015-12-04
MX347759B (es) 2017-05-10
EP2862089B1 (en) 2018-12-26
WO2013186606A2 (en) 2013-12-19
CN104903873B (zh) 2017-10-20
JP6202543B2 (ja) 2017-09-27
BR112014031436B1 (pt) 2021-08-10
WO2013186606A3 (en) 2015-06-11
MX2014015347A (es) 2015-07-06
TWI622880B (zh) 2018-05-01
KR20140138848A (ko) 2014-12-04
CA2874186C (en) 2020-09-22
SI2862089T1 (sl) 2019-03-29
EP2862089A4 (en) 2015-09-02
ZA201408136B (en) 2020-02-26
WO2013186606A8 (en) 2014-12-18
SG11201407485RA (en) 2014-12-30
PT2862089T (pt) 2019-02-04
EP2862089A2 (en) 2015-04-22
LT2862089T (lt) 2019-02-11
HK1210846A1 (zh) 2016-05-06
BR112014031436A2 (pt) 2017-06-27
RU2550558C2 (ru) 2015-05-10
CN104903873A (zh) 2015-09-09
RU2012148399A (ru) 2014-05-20
HRP20190166T1 (hr) 2019-03-22
AU2012382781A1 (en) 2014-12-11
CA2874186A1 (en) 2013-12-19
IL236248A0 (en) 2015-01-29

Similar Documents

Publication Publication Date Title
TWI622880B (zh) 比較及取代動態位址轉譯表項之電腦程式產品、電腦系統及方法
US10776112B2 (en) Performing an operation absent host intervention
US9182984B2 (en) Local clearing control
JP6206881B2 (ja) 多機能命令のうちの選択されたインストール済み機能を隠蔽するためのコンピュータで実装される方法、コンピュータ・システム、およびコンピュータ・プログラム
US11809870B2 (en) Function virtualization facility for blocking instruction function of a multi-function instruction of a virtual processor
US20050273561A1 (en) Method, system and program product for clearing selected storage translation buffer entries