• / 36
  • 下載費用:30 金幣  

比較及替換動態地址轉換表項.pdf

摘要
申請專利號:

CN201280073581.0

申請日:

2012.11.26

公開號:

CN104903873A

公開日:

2015.09.09

當前法律狀態:

授權

有效性:

有權

法律詳情: 授權|||實質審查的生效IPC(主分類):G06F 12/10申請日:20121126|||公開
IPC分類號: G06F12/10 主分類號: G06F12/10
申請人: 國際商業機器公司
發明人: D.格雷納; R.羅杰斯; G.西特曼
地址: 美國紐約阿芒克
優先權: 13/524,468 2012.06.15 US
專利代理機構: 北京市柳沈律師事務所11105 代理人: 邸萬奎
PDF完整版下載: PDF下載
法律狀態
申請(專利)號:

CN201280073581.0

授權公告號:

||||||

法律狀態公告日:

2017.10.20|||2015.10.07|||2015.09.09

法律狀態類型:

授權|||實質審查的生效|||公開

摘要

比較第一操作元與第二操作元。如果它們相等,則將寄存器R1+1的內容存儲于第二操作元位置處,且從配置中已指定CPU清除通過使用存儲器中已替換項所形成的已指定類型的所有轉換后備緩沖器(TLB)表項,以及通過使用已清除較高層TLB表項所形成的所有較低層TLB表項。用新項來替換有效DAT表項,且從TLB去除掉配置中所有CPU上的(至少)單一項的任何復本。如果第一操作元與第二操作元不相等,則將第二操作元載入第一操作元位置處。比較結果由條件碼加以指示。提供了一種方法、系統以及計算機程序產品。

權利要求書

權利要求書
1.  一種用于管理動態地址轉換(DAT)表的方法,所述方法包含下列步驟:
處理器根據將要執行的機器可執行指令的操作碼判定所述指令為比較及替換DAT表項指令,所述指令包含R1字段及R2字段;以及
由所述處理器執行所述指令,所述執行包含:
根據類型字段,將奇數寄存器的索引值加至偶數寄存器的值,以形成第二操作元的地址,所述奇數寄存器及所述偶數寄存器為由所述指令的R2字段指定的奇偶寄存器對;
從由已形成地址指定的存儲器位置獲得原始第二操作元;
比較第一操作元與所獲得的原始第二操作元,第一操作元包含在由所述指令的R1字段指定的奇偶寄存器對的偶數編號(偶R1)寄存器中;
根據第一操作元等于原始第二操作元,將偶R1寄存器的內容作為新第二操作元存儲于第二操作元位置中。

2.  根據權利要求1所述的方法,還包含根據由原始第二操作元的值指定的轉換表項,使用轉換表項有選擇地清除對應于由DAT形成的項的所有本地轉換后備緩沖器(TLB)項。

3.  根據權利要求1所述的方法,包含根據第一操作元不等于原始第二操作元將原始第二操作元存儲至偶R1寄存器中。

4.  根據權利要求2所述的方法,其中,有選擇地清除的轉換表項對應于與原始第二操作元相關聯的較低層轉換表項。

5.  根據權利要求1所述的1的方法,還包含:
根據第一操作元比較值等于第二操作元,設置第一條件碼值;以及
根據第一操作元比較值不等于所述第二操作元,設置第二條件碼值。

6.  根據權利要求所述的2的方法,其中,已清除的TLB項限于其形成旨在轉換由所述指令指定的地址空間中的地址的項。

7.  根據權利要求2所述的方法,還包含:
根據所述指令的具有第一值的掩碼字段,有選擇地僅清除配置的多個處理器中執行所述指令的處理器的TLB;以及根據所述指令的一個具有第二值的掩碼字段,有選擇地清除配置的多個處理器的TLB。

8.  一種系統,包含適合于執行根據任何先前方法要求的方法的所有步驟 的機制。

9.  一種計算機程序,包含在計算機系統上執行所述計算機程序時適合于執行根據任何先前方法要求的方法的所有步驟的指令。

說明書

說明書比較及替換動態地址轉換表項
技術領域
總體上講,本發明涉及計算環境中的處理,具體地講,本發明涉及以下一或者多種情況:比較及替換地址表中的項;清除緩沖器項以及用于以上操作的指令。
背景技術
如2003年5月12日申請的申請號為7284100的、名為“INVALIDATING STORAGE,CLEARING BUFFER ENTRIES,AND AN INSTRUCTION THEREFORE”的美國專利中所描述的,使所選擇的諸如存儲器段或者存儲器區的存儲器單元無效化。通過位于對應于將要無效化的存儲器單元的數據結構項中的無效化指示符的設置,簡化無效化。另外,還清除與已無效化存儲器單元或者其它選定存儲器單元相關聯的緩沖器項。提供一條執行無效化與/或清除的指令。而且,在無任何無效化的情況下清除與特定地址空間相關聯的緩沖器項。也通過所述指令執行所述清除。可以按軟件、硬件、固件或者它們的某一組合實現所述指令,也可以模擬該指令。
發明內容
在一個實施例中,提供了一種用于有選擇地清除一個處理器的本地轉換后備緩沖器(Translation Lookaside Buffer,TLB)或者多個處理器的多個轉換后備緩沖器的計算機程序產品。該計算機程序產品包括:計算機可讀存儲介質,其具有其中所包含的程序代碼,所述程序代碼可以由計算機處理器加以讀取,以執行某一方法。所述方法包括:由處理器根據一條將要執行的機器可執行的操作碼判定所述指令為一條比較及替換DA的項的指令。所述指令包括R1字段和R2字段,并且通過處理器執行所述指令。所述執行包括:從該指令的R2字段指定的奇偶寄存器對的寄存器指定的存儲器位置獲得原始第二操作元;比較第一操作元和所獲得的原始第二操作元,第一操作元包含在由所述指令的R1字段指定的奇偶寄存器對的一個偶數編號(偶R1)的寄存器中;根據 第一操作元等于原始第二操作元,所以將該偶R1寄存器的內容作為新第二操作元存儲于第二操作元位置中;并且根據原始第二操作元的值指定的一個轉換表原點、使用轉換表項有選擇地清除對應于根據DAT所形成的項的所有本地轉換后備緩沖器(TLB)項。
在另一個實施例中,提供了一種用于執行比較及替換DAT項指令的系統。所述系統包括:存儲器;以及處理器,將其配置為能夠與存儲器進行通信,其中將所述計算機系統配置為能夠執行某一方法。所述方法包括:由處理器根據一條將要執行的機器可執行的操作碼判定所述指令為一條比較及替換DA的項的指令。所述指令包括R1字段和R2字段,并且由處理器執行該指令。所述執行包括:從該指令的R2字段指定的奇偶寄存器對的寄存器指定的存儲器位置獲得原始第二操作元;比較第一操作元和所獲得的原始第二操作元,第一操作元包含在由所述指令的R1字段指定的奇偶寄存器對的偶數編號(偶R1)的寄存器中;根據第一操作元等于原始第二操作元,所以將該偶R1寄存器的內容作為新第二操作元存儲于第二操作元位置中;并且根據原始第二操作元的值指定的一個轉換表原點、使用轉換表項有選擇地清除對應于根據DAT所形成的項的所有本地轉換后備緩沖器(TLB)項。
在另一個實施例中,提供一種用于比較第一操作元與第二地址轉換表項的計算機實現的方法。所述方法包括:由處理器根據一條將要執行的機器可執行的操作碼判定所述指令為一條比較及替換DA的項的指令。所述指令包括R1字段和R2字段,并且通過處理器執行所述指令。所述執行包括:從該指令的R2字段指定的奇偶寄存器對的寄存器指定的存儲器位置獲得原始第二操作元;比較第一操作元和所獲得的原始第二操作元,第一操作元包含在由所述指令的R1字段指定的奇偶寄存器對的偶數編號(偶R1)的寄存器中;根據第一操作元等于原始第二操作元,所以將該偶R1寄存器的內容作為新第二操作元存儲于第二操作元位置中;并且根據原始第二操作元的值指定的轉換表原點、使用轉換表項有選擇地清除對應于根據DAT所形成的項的所有本地轉換后備緩沖器(TLB)項。
通過所描述的技術實現更多的特性及優點。此處詳細地描述了其它實施例及方面,并且認為包括所述其它實施例及方面。
附圖說明
通過以下結合附圖的詳細描述,更多的目的、特性以及優點將變得十分明顯,其中:
圖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)的特殊緩沖器中維持區表、段表以及頁表中指定的某些的某些信息。僅當對DAT表項進行初始訪問時,CPU才需引用真實或者絕對存儲器中的該項。可以將此信息放置在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結構
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中。
將用于轉換虛擬地址的區表項(如果存在)及段表項(如果存在)稱為轉換路徑。當轉換路徑中的最高層表項處于附接地址空間控制元素(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)或者可用ALBASTE中,且滿足以下要求中任何之一:
·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項中的當前層表原點字段匹配于以下之一:
·直接指定當前表層(如由R及DT比特所指示)的附接ASCE中的表原點字段
·下一較高層的附接區表項中的表原點字段
·下一較高層的可用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 DATTABLE項指令,從而提供了有效附接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指令的執行期間,使存儲器(例如,虛擬存儲器)的已指定部分無效化。例如,將包括多個存儲器頁的存儲器段或者包括多個存儲器段的存儲器區選擇為無效化。通過位于對應于將要無效化的存儲器單元的數據結構項中的無效化指示符的設置有助于無效化。在另一個方面中,清除與正被無效化的存儲器或者其它存儲器相關聯的緩沖器項(例如,轉換后備緩沖器項)。另外,在另一方面中,在不影響未選擇的地址空間的緩沖器項且不執行無效化的情況下從緩沖器清除與選擇的地址空間相關聯的緩沖器項。在一個實例中,將來自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項而不管用于形成它們的ASCE如何。
除了總是忽略來自所得地址的比特位置0的進位且不對照表長度字段檢查該索引之外,通用寄存器R1中的表原點及通用寄存器R2中的有效無效化索引根據2010年8月的IBM出版物第SA22-7832-08號的“z/Architecture Principles of Operation”中“Lookup in a Table Designated by an Address-Space-Control Element”中的規則指定表項,特將該出版物的全部內容并入此處,以作參考。表原點被視為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的執行并未在執行其的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的執行在執行其的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”的出版物中描述了z/Architecture。(為美國紐約州阿蒙克市的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可以不同。在一個實施例中,操作系統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體系結構,或者另一種體系結構,并且能夠模擬的z/Architecture或者的另一種體系結構或者另一個實體。
例如,主計算機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指令具有以下格式:
操作碼  R3  M4  R1  R2
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為000二進制時,如520所示,通用寄存器R2的比特位置0至52的內容(具有附加于右側的11個0)(521)形成表原點,且忽略該寄存器的522中的比特53至58、523中的比特62、以及524中的比特63。當DTT為100至111二進制時,如530所示,通用寄存器R2的比特位置0至51的內容(具有附加于右側的12個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項而不管用于形成它們的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控制器將輸入/輸出,即I/O設備(包括但不局限于鍵盤、顯示器、定位設備、DASD、磁帶、CD、DVD、拇指翻閱驅動器(thumb drive)以及其它存儲器介質等)耦合于系統。也可以通過介入私用或者公用網絡將網絡適配器耦合于系統,使數據處理系統能夠耦合于其它數據處理系統或者遠端打印機或者存儲設備。調制解調器、電纜調制解調器以及Ethernet卡僅為少數幾種可用網絡適配器。
一或多個方面可以包括于具有(例如)計算機可用介質的制品(例如,一或多個計算機程序產品)中。例如,所述介質中包含了提供及簡化所述能力的計算機可讀程序代碼機制或者邏輯(例如,指令、代碼、命令等)。可以將所述制品作為計算機系統的一個部分加以包括,也可以獨立地加以銷售。
參照圖7描述并入了一或多個方面的制品或者計算機程序產品的一個實例。例如,計算機程序產品700包括一或多個計算機可用介質702,以在其上存儲計算機可讀程序代碼機制或者邏輯704,以提供及簡化一或多個方面。所述介質可以為電子、磁性、光學、電磁、紅外線或者半導體系統(或者裝置或者設備)或者傳播介質。計算機可讀介質的實例包括半導體或者固態存儲器、磁帶、可以移動計算機磁盤、隨機訪問存儲器(RAM)、只讀存儲器(ROM)、硬磁盤及光盤。光盤的實例包括壓縮盤-只讀存儲器(CD-ROM)、壓縮盤-讀/寫(CD-R/W)以及DVD。由一或多個計算機可讀程序代碼機制或者邏輯定義的程序指令的序列或者一或多個相關模塊的邏輯組件引導一或多個方面的執行。

關 鍵 詞:
比較 替換 動態 地址 轉換
  專利查詢網所有資源均是用戶自行上傳分享,僅供網友學習交流,未經上傳用戶書面授權,請勿作他用。
關于本文
本文標題:比較及替換動態地址轉換表項.pdf
鏈接地址:http://www.rgyfuv.icu/p-6373785.html
關于我們 - 網站聲明 - 網站地圖 - 資源地圖 - 友情鏈接 - 網站客服客服 - 聯系我們

[email protected] 2017-2018 zhuanlichaxun.net網站版權所有
經營許可證編號:粵ICP備17046363號-1 
 


收起
展開
山东11选5中奖结果走势图