專利名稱:無停頓鍵設(shè)置工具的制作方法
無停頓鍵設(shè)置工具
背景技術(shù):
本發(fā)明一般地涉及促進(jìn)計(jì)算環(huán)境中的處理,具體地說,涉及促進(jìn)與設(shè)置在計(jì)算環(huán)境中使用的存儲(chǔ)鍵(Storage key)關(guān)聯(lián)的處理。在諸如基于位于紐約阿蒙克的國(guó)際商業(yè)機(jī)器公司的z/Arehitecture#:的多處理器系統(tǒng)之類的計(jì)算環(huán)境中,采用存儲(chǔ)鍵以促進(jìn)所述環(huán)境中的處理。作為一個(gè)實(shí)例,存儲(chǔ)鍵與實(shí)際存儲(chǔ)裝置的每個(gè)塊(也稱為幀)關(guān)聯(lián)。此類鍵關(guān)聯(lián)提供用于分離存儲(chǔ)塊的可靠性機(jī)制,確保在一個(gè)鍵中執(zhí)行的程序不會(huì)不正確地存儲(chǔ)在具有不同鍵的塊中,或取決于鍵中的控件,不會(huì)從具有不同鍵的塊中執(zhí)行取回。存儲(chǔ)鍵還可以為操作系統(tǒng)提供關(guān)于已引用和更改哪些塊的指示,因而允許操作系統(tǒng)確定哪些塊可能需要被寫入到輔助存儲(chǔ)裝置??梢杂稍谟?jì)算環(huán)境中執(zhí)行的指令設(shè)置(更新)存儲(chǔ)鍵。作為實(shí)例,在 Z/Architecture 中,Set Storage Key Extended 指令和 Perform Frame Management Function指令操縱可由所述計(jì)算環(huán)境的多個(gè)處理器訪問的存儲(chǔ)鍵。 為了提高系統(tǒng)性能,處理器可以在本地(處理器特定的)區(qū)域中緩沖存儲(chǔ)鍵的子集。但是,當(dāng)設(shè)置存儲(chǔ)鍵(可能更改也可能不更改實(shí)際鍵值)時(shí),多處理器配置中的所有處理器通常將同時(shí)有效地觀察到更改,以便丟棄陳舊的本地鍵副本。為了促進(jìn)此處理,將執(zhí)行停頓(quiesce)操作,其中用于操縱存儲(chǔ)鍵的指令的啟動(dòng)方將停頓信號(hào)發(fā)送給計(jì)算環(huán)境的其他處理器。響應(yīng)于接收到該信號(hào),其他處理器停頓其處理、清除本地緩存的鍵副本,并確認(rèn)所述清除。當(dāng)接收到停頓信號(hào)的所有處理器均已確認(rèn)時(shí),啟動(dòng)方將存儲(chǔ)鍵設(shè)置為期望值,并向其他處理器發(fā)送取消停頓信號(hào),使得其他處理器可以重新開始執(zhí)行。
發(fā)明內(nèi)容
在更新存儲(chǔ)鍵時(shí)使用的停頓操作對(duì)系統(tǒng)性能產(chǎn)生負(fù)面影響。因此,根據(jù)本發(fā)明的一個(gè)方面,提供了一種工具,其使能在不使可以觀察到存儲(chǔ)鍵的其他處理器停頓的情況下操縱所述存儲(chǔ)鍵。所有處理器不必再同時(shí)有效地觀察更改。通過提供一種如權(quán)利要求I中所述的用于促進(jìn)計(jì)算環(huán)境中的處理的方法而克服了現(xiàn)有技術(shù)的缺點(diǎn)并提供了其他優(yōu)點(diǎn)。在此還描述和要求保護(hù)了一種對(duì)應(yīng)于如權(quán)利要求I中所述的方法的系統(tǒng)和計(jì)算機(jī)程序。通過本發(fā)明的技術(shù)實(shí)現(xiàn)了其他特性和優(yōu)點(diǎn)。在此詳細(xì)描述了本發(fā)明的其他實(shí)施例和方面,并將它們視為要求保護(hù)的發(fā)明的一部分。
在說明書結(jié)尾處的權(quán)利要求中作為實(shí)例具體指出并明確要求保護(hù)本發(fā)明的一個(gè)或多個(gè)方面。從下面結(jié)合附圖的詳細(xì)說明,本發(fā)明的上述和其他目標(biāo)、特性和優(yōu)點(diǎn)是顯而易見的,這些附圖是圖IA示出了結(jié)合并使用本發(fā)明的一個(gè)或多個(gè)方面的計(jì)算環(huán)境的一個(gè)實(shí)施例;
圖IB示出了根據(jù)本發(fā)明的一個(gè)方面的圖IA的計(jì)算環(huán)境的處理器的一個(gè)實(shí)例;圖IC示出了可以結(jié)合并使用本發(fā)明的一個(gè)或多個(gè)方面的邏輯分區(qū)系統(tǒng)的一個(gè)實(shí)例;圖2示 出了根據(jù)本發(fā)明的一個(gè)方面的與圖IA或圖IC的控制器關(guān)聯(lián)的進(jìn)一步細(xì)節(jié)的一個(gè)實(shí)施例;圖3示出了根據(jù)本發(fā)明的一個(gè)方面的可以仿真另一計(jì)算機(jī)的主計(jì)算機(jī)的一個(gè)實(shí)施例;圖4示出了根據(jù)本發(fā)明的一個(gè)方面的存儲(chǔ)鍵的各種組件的一個(gè)實(shí)例;圖5以圖形方式示出了停頓操作對(duì)計(jì)算環(huán)境的處理器的影響的一個(gè)實(shí)例;圖6以圖形方式示出了根據(jù)本發(fā)明的一個(gè)方面的在不停頓任何處理器的情況下操縱存儲(chǔ)鍵的影響的一個(gè)實(shí)例;圖7A示出了根據(jù)本發(fā)明的一個(gè)方面使用的Set Storage Key Extended (SSKE) 指令的格式的一個(gè)實(shí)施例;圖7B示出了根據(jù)本發(fā)明的一個(gè)方面的與圖7A的SSKE指令的M3操作數(shù)關(guān)聯(lián)的字段的一個(gè)實(shí)施例;圖8示出了根據(jù)本發(fā)明的一個(gè)方面的與無停頓SSKE指令關(guān)聯(lián)的邏輯的一個(gè)實(shí)施例;圖9A-9B示出了根據(jù)本發(fā)明的一個(gè)方面的用于管理受無停頓存儲(chǔ)鍵更新影響的處理的邏輯的一個(gè)實(shí)施例;圖10示出了結(jié)合本發(fā)明的一個(gè)或多個(gè)方面的計(jì)算機(jī)程序產(chǎn)品的一個(gè)實(shí)施例;圖11示出了結(jié)合并使用本發(fā)明的一個(gè)或多個(gè)方面的主計(jì)算機(jī)系統(tǒng)的一個(gè)實(shí)施例;圖12示出了結(jié)合并使用本發(fā)明的一個(gè)或多個(gè)方面的計(jì)算機(jī)系統(tǒng)的其他實(shí)例;圖13示出了包含結(jié)合并使用本發(fā)明的一個(gè)或多個(gè)方面的計(jì)算機(jī)網(wǎng)絡(luò)的計(jì)算機(jī)系統(tǒng)的另一個(gè)實(shí)例;圖14示出了結(jié)合并使用本發(fā)明的一個(gè)或多個(gè)方面的計(jì)算機(jī)系統(tǒng)的各種元件的一個(gè)實(shí)施例;圖15A示出了結(jié)合并使用本發(fā)明的一個(gè)或多個(gè)方面的圖14的計(jì)算機(jī)系統(tǒng)的執(zhí)行單元的一個(gè)實(shí)施例;圖15B示出了結(jié)合并使用本發(fā)明的一個(gè)或多個(gè)方面的圖14的計(jì)算機(jī)系統(tǒng)的分支單元的一個(gè)實(shí)施例;圖15C示出了結(jié)合并使用本發(fā)明的一個(gè)或多個(gè)方面的圖14的計(jì)算機(jī)系統(tǒng)的加載 /存儲(chǔ)單元的一個(gè)實(shí)施例;以及圖16示出了結(jié)合并使用本發(fā)明的一個(gè)或多個(gè)方面的仿真的主計(jì)算機(jī)系統(tǒng)的一個(gè)實(shí)施例。
具體實(shí)施例方式根據(jù)本發(fā)明的一個(gè)方面,提供一種無停頓鍵設(shè)置工具,其使能在不使多處理器系統(tǒng)的其他處理器的操作停頓的情況下執(zhí)行存儲(chǔ)鍵操縱。借助此工具,更新可由所述多處理器系統(tǒng)的多個(gè)處理器訪問的存儲(chǔ)鍵而不使所述多個(gè)處理器的操作停頓。由于在不使其他操作停頓的情況下更新存儲(chǔ)鍵,處理器可以觀察到所述存儲(chǔ)鍵在所述處理器執(zhí)行的操作開始時(shí)具有一個(gè)值,并且在該操作結(jié)束時(shí)具有第二值。根據(jù)本發(fā)明的一個(gè)方面對(duì)此進(jìn)行管理,其中提供一種機(jī)制以使得該操作能夠繼續(xù),從而避免嚴(yán)重異常。存儲(chǔ)鍵例如是具有各種字段的控制結(jié)構(gòu),或者它可以是任何用于保護(hù)存儲(chǔ)裝置的屬性或資源。如在此使用的,存儲(chǔ)裝置指計(jì)算機(jī)系統(tǒng)的存儲(chǔ)器,例如中央或主存儲(chǔ)器和/或高速緩沖存儲(chǔ)器。停頓例如是可以被執(zhí)行以確保配置范圍內(nèi)的資源更新立即對(duì)配置的CPU 可見的序列化手段。由一個(gè)CPU啟動(dòng)的停頓操作導(dǎo)致在配置中的其他CPU上發(fā)生以下操作 完成正在該CPU上執(zhí)行的任何指令或操作 單元;丟棄正在被更新的配置范圍內(nèi)的資源的本地緩存的副本;以及延遲指令執(zhí)行恢復(fù),直到配置范圍內(nèi)的資源的更新對(duì)CPU可見。在一個(gè)實(shí)施例中,針對(duì)先前需要停頓的指令實(shí)現(xiàn)所述無停頓工具。作為實(shí)例,國(guó)際商業(yè)機(jī)器公司提供的Set Storage Key Extended(SSKE)指令和Perform Frame Management Function (PFMF)指令傳統(tǒng)上需要停頓以執(zhí)行存儲(chǔ)鍵更新。但是,根據(jù)本發(fā)明的一個(gè)方面, 這些指令以及可能其他指令可以選擇性地實(shí)現(xiàn)為無停頓。在本發(fā)明的一個(gè)方面中,每個(gè)指令可以在兩種處理模式(停頓和無停頓)下執(zhí)行,并且通過在指令中設(shè)置指示器來選擇針對(duì)給定指令執(zhí)行使用的特定模式。參考圖IA描述了結(jié)合并使用本發(fā)明的一個(gè)或多個(gè)方面的計(jì)算環(huán)境的一個(gè)實(shí)施例。作為一個(gè)實(shí)例,所述計(jì)算環(huán)境是多處理器系統(tǒng),例如基于位于紐約阿蒙克的國(guó)際商業(yè)機(jī)器公司提供的z/Arehiteetui*e 的對(duì)稱多處理器系統(tǒng)(smp)。作為一個(gè)特定實(shí)例,所述系統(tǒng)是國(guó)際商業(yè)機(jī)器公司提供的System z 服務(wù)器。在標(biāo)題為“z/Airhiteeture Principles of 0peration”( z/ArcWtectlire 操作原理)(第 SA22-7832-07 號(hào) IBM 刊物, 2009 年 2 月)的IBM 出版物中描述了z/Architecture , IBM 、z/Architecture* 和System z 是位于美國(guó)紐約阿蒙克的國(guó)際商業(yè)機(jī)器公司的注冊(cè)商標(biāo)。在此使用的其他名
稱可能是國(guó)際商業(yè)機(jī)器公司或其他公司的注冊(cè)商標(biāo)、商標(biāo)或產(chǎn)品名稱。作為一個(gè)實(shí)例,多處理器系統(tǒng)100包括多個(gè)處理器110、存儲(chǔ)控制器120和中央存儲(chǔ)裝置130。處理器110經(jīng)由一條或多條總線115相互耦合并經(jīng)由存儲(chǔ)控制器120耦合到中央存儲(chǔ)裝置130。如圖IB中示出的每個(gè)處理器例如包括中央處理單元(CPU) 140,CPU 140 可以例如經(jīng)由一條或多條總線或其他連接144耦合到本地高速緩存142。在另一個(gè)實(shí)施例中,所述系統(tǒng)包括一個(gè)或多個(gè)分區(qū)或區(qū)域。例如,所述系統(tǒng)是國(guó)際商業(yè)機(jī)器公司提供的邏輯分區(qū)System z 服務(wù)器。在此實(shí)例中,如圖ic中所示,服務(wù)器 150例如包括一個(gè)或多個(gè)分區(qū)或區(qū)域152 (例如,邏輯分區(qū)LP0-LP3)、系統(tǒng)管理程序156 (例如,邏輯分區(qū)管理器)以及一個(gè)或多個(gè)中央處理器158(例如,CP0-CP3)。盡管示出四個(gè)分區(qū)和四個(gè)中央處理器,但所述系統(tǒng)可以包括更多或更少分區(qū)和/或更多或更少中央處理器。每個(gè)邏輯分區(qū)152能夠用作單獨(dú)的系統(tǒng)。也就是說,每個(gè)邏輯分區(qū)可以獨(dú)立重設(shè), 初始通過操作系統(tǒng)加載(如果需要),并與不同程序一起運(yùn)行。在邏輯分區(qū)中運(yùn)行的操作系統(tǒng)或應(yīng)用程序看似可以訪問整個(gè)系統(tǒng),但實(shí)際上,只有系統(tǒng)的一部分可用。硬件和許可內(nèi)碼 (也稱為微代碼和毫代碼)的組合可阻止某個(gè)邏輯分區(qū)中的程序干擾不同邏輯分區(qū)中的程序。這允許多個(gè)不同邏輯分區(qū)以時(shí)間分片方式在一個(gè)或多個(gè)物理處理器上運(yùn)行。在此特定實(shí)例中,每個(gè)邏輯分區(qū)具有常駐操作系統(tǒng)160,一個(gè)或多個(gè)邏輯分區(qū)的操作系統(tǒng)160可能不同。在一個(gè)實(shí)施例中,操作系統(tǒng)160是位于紐約阿蒙克的國(guó)際商業(yè)機(jī)器公司提供的z/OS 操作系統(tǒng)。z/OSiH)是位于紐約阿蒙克的國(guó)際商業(yè)機(jī)器公司的注冊(cè)商標(biāo)。每個(gè)邏輯分區(qū)可以包括一個(gè)或多個(gè)中央處理器。中央處理器158是分配給邏輯分區(qū)的物理處理器資源。例如,邏輯分區(qū)152包括一個(gè)或多個(gè)邏輯處理器,每個(gè)邏輯處理器表示分配給該分區(qū)的全部或某一份額的物理處理器資源。邏輯分區(qū)152由系統(tǒng)管理程序156管理,系統(tǒng)管理程序156通過在處理器158上運(yùn)行的微代碼實(shí)現(xiàn)。邏輯分區(qū)152和系統(tǒng)管理程序156都包括一個(gè)或多個(gè)駐留在與中央處理器關(guān)聯(lián)的中央存儲(chǔ)裝置的相應(yīng)部分中的程序。系統(tǒng)管理程序156的一個(gè)實(shí)例是位于紐約阿蒙克的國(guó)際商業(yè)機(jī)器公司提供的Processor Resource/Systems Manager (PR/SM)。 在一個(gè)實(shí)施例中,所述服務(wù)器耦合到存儲(chǔ)控制器170,存儲(chǔ)控制器170包括負(fù)責(zé)在發(fā)出請(qǐng)求的不同處理器之間進(jìn)行仲裁的集中邏輯。例如,當(dāng)控制器170收到請(qǐng)求時(shí),它確定請(qǐng)求方是此請(qǐng)求的啟動(dòng)方,而其他處理器是接收方;它廣播消息;以及以其他方式處理請(qǐng)求。參考圖2描述了關(guān)于存儲(chǔ)控制器(例如,存儲(chǔ)控制器120或存儲(chǔ)控制器170)的進(jìn)一步細(xì)節(jié)。圖2示出了耦合到多個(gè)處理器(CPU)201的控制器200的一個(gè)實(shí)例。在此實(shí)例中, 示出兩個(gè)中央處理器。但是將理解,可以將兩個(gè)以上的處理器耦合到控制器200??刂破?200包括各種控件,一個(gè)此類控件例如是系統(tǒng)序列化控件202。所述系統(tǒng)序列化控件用于確保要序列化的操作(例如,更新操作)被序列化,因?yàn)樵谟?jì)算環(huán)境中一次僅進(jìn)行一個(gè)(或有限數(shù)量的)此類操作。它還監(jiān)視此操作的事件序列,并且是實(shí)現(xiàn)停頓功能的機(jī)制的一部分??刂破?00通過各種接口耦合到每個(gè)中央處理器。例如,中央處理器中的許可內(nèi)碼使用接口 204向所述控制器發(fā)送指定要采取的動(dòng)作的“控制”命令,并發(fā)送從所述控制器返回信息的“讀出”命令。另一個(gè)接口是響應(yīng)總線206,其用于從所述控制器返回“讀出”命令的信息。所述響應(yīng)總線還用于傳送“控制”命令的命令狀態(tài),并且可以從所述控制器中的多個(gè)源(包括系統(tǒng)序列化控件)設(shè)置。中央處理器可以使用此接口讀出控制器200中的系統(tǒng)序列化控件的狀態(tài)。其他接口是接口 208,所述控制器使用此接口向每個(gè)處理器發(fā)送命令。該接口也可以從所述控制器中的多個(gè)源(包括系統(tǒng)序列化控件202)控制。另一接口是接口 210,其向中央處理器201的高速緩存控件212提供信號(hào)。高速緩存控件212響應(yīng)于所述信號(hào)而處理命令。在一個(gè)實(shí)例中,高速緩存控件212處理影響一個(gè)或多個(gè)緩沖區(qū)(例如,轉(zhuǎn)換后備緩沖區(qū) (TLB) 213)的命令。除了高速緩存控件212之外,處理器201包括各種其他控件,例如包括中斷控件 220和執(zhí)行控件222。響應(yīng)于特定事件,中斷控件220導(dǎo)致在CPU中掛起內(nèi)部中斷,這又導(dǎo)致執(zhí)行控件220在下一個(gè)可中斷點(diǎn)暫停程序指令處理。根據(jù)本發(fā)明的一個(gè)方面,中斷控件 220包括用于判定是否阻止保護(hù)異常的標(biāo)志223,如下面所描述。響應(yīng)于中斷,執(zhí)行控件222調(diào)用許可內(nèi)碼例程以設(shè)置廣播操作允許鎖存器224,從而使高速緩存控件212能夠處理掛起命令。中央處理器201還包括指示是否停頓該中央處理器的CPU停頓鎖存器226。上述計(jì)算環(huán)境僅為實(shí)例??梢栽诓黄x本發(fā)明的精神的情況下進(jìn)行許多變化。例如,所述環(huán)境不需要基于z/Architecture_、K:,而是可以基于Intel、Sun Microsystems以及其他公司提供的其他架構(gòu)。此外,環(huán)境可以包括仿真器(例如,軟件或其他仿真機(jī)制),其中仿真特定架構(gòu)或其子集。在此類環(huán)境中,仿真器的一個(gè)或多個(gè)仿真功能可以實(shí)現(xiàn)本發(fā)明的一個(gè)或多個(gè)方面,盡管執(zhí)行所述仿真器的計(jì)算機(jī)可能具有不同于被仿真的能力的架構(gòu)。作為一個(gè)實(shí)例,在仿真模式下,對(duì)被仿真的特定指令或操作進(jìn)行解碼,并構(gòu)建適當(dāng)?shù)姆抡婀δ芤詫?shí)現(xiàn)單個(gè)指令或操作。參考圖3描述了仿真環(huán)境的進(jìn)一步細(xì)節(jié)。作為一個(gè)實(shí)例,主計(jì)算機(jī)300能夠仿真其他架構(gòu)和/或其他計(jì)算機(jī)的處理能力。例如,主計(jì)算機(jī)300基于Intel架構(gòu);RISC架構(gòu), 例如PowerPC ;Sun Microsystems提供的SPARC架構(gòu);或其他架構(gòu),并能夠仿真TRM 的 ZMrehiteeturee或IBM 或其他實(shí)體的其他架構(gòu)。主計(jì)算機(jī)300例如包括存儲(chǔ)器302,其用于存儲(chǔ)指令和數(shù)據(jù);指令取回單元304,其用于從存儲(chǔ)器302取回指令,并可選地為取回的指令提供本地緩沖;指令解碼單元306,其用于從指令取回單元304接收指令并確定已取回的指令的類型;以及指令執(zhí)行單元308,其用于執(zhí)行所述指令。執(zhí)行可以包括將數(shù)據(jù)從存儲(chǔ)器302加載到寄存器;將數(shù)據(jù)從寄存器存儲(chǔ)回存儲(chǔ)器;或如解碼單元所確定的那樣執(zhí)行某種類型的算術(shù)或邏輯運(yùn)算。在一個(gè)實(shí)例中,以軟件實(shí)現(xiàn)上述每個(gè)單元。例如,所述單元執(zhí)行的操作可作為仿真器軟件中的一個(gè)或多個(gè)子例程實(shí)現(xiàn)。在另一個(gè)實(shí)例中,以固件、硬件、軟件或它們的某種組合實(shí)現(xiàn)所述操作中的一個(gè)或多個(gè)。 此外,盡管參考仿真描述了圖3,但圖3的環(huán)境無需是仿真環(huán)境。在另一個(gè)實(shí)例中, 在本機(jī)環(huán)境中執(zhí)行指令,并以硬件、固件、軟件或它們的某種組合實(shí)現(xiàn)所述操作。如上所述,在一個(gè)實(shí)施例中,每個(gè)存儲(chǔ)塊(例如,實(shí)際或絕對(duì)存儲(chǔ)的每個(gè)4k ±夾)都具有與之關(guān)聯(lián)的存儲(chǔ)鍵。存儲(chǔ)鍵提供用于分離存儲(chǔ)塊的可靠性機(jī)制,確保在一個(gè)鍵中執(zhí)行的程序不會(huì)意外地存儲(chǔ)在具有不同鍵的塊中。此外,存儲(chǔ)鍵為操作系統(tǒng)提供關(guān)于已引用和更改哪些塊的指示,因此允許操作系統(tǒng)判定哪些塊可能需要被寫入輔助存儲(chǔ)裝置。參考圖4描述了存儲(chǔ)鍵的一個(gè)實(shí)例。存儲(chǔ)鍵400例如包括訪問控制(ACC)組件 402、取回保護(hù)(F)組件404、引用(R)組件406以及更改(C)組件408,下面將描述每個(gè)組件訪問控制位(ACC) 402 (例如,位0_3):如果引用受到鍵控保護(hù),則存儲(chǔ)信息時(shí),或從防止取回的位置取回信息時(shí),將訪問控制位與訪問鍵(例如,程序狀態(tài)字的訪問鍵或來自指令操作數(shù)的訪問鍵)匹配。取回保護(hù)位(F)404 (例如,位4):如果引用受到鍵控保護(hù),則取回保護(hù)位控制是否向取回型引用應(yīng)用鍵控保護(hù);0指示僅監(jiān)視存儲(chǔ)型引用并允許通過任意訪問鍵取回;1指示向取回或存儲(chǔ)兩者應(yīng)用鍵控保護(hù)。指令取回和操作數(shù)取回之間沒有區(qū)別。引用位(R) 406 (例如,位5):每次引用對(duì)應(yīng)存儲(chǔ)塊中的位置以存儲(chǔ)信息或取回信息時(shí),通常將引用位設(shè)置為I。更改位(C)408 (例如,位6):每次在對(duì)應(yīng)存儲(chǔ)塊中的位置存儲(chǔ)信息時(shí),將更改位設(shè)置為I。 存儲(chǔ)鍵并非可尋址存儲(chǔ)裝置的一部分。因此,在一個(gè)實(shí)例中,使用指令設(shè)置存儲(chǔ)鍵。一個(gè)此類指令是Set Storage Key Extended指令,在標(biāo)題為“z/ArchitecturePrinciples of Operation”(z/Architecture 操作原理)(IBM 第 SA22-7832-07 號(hào)出版物, 2009年2月)的IBM 出版物中描述了此指令的一個(gè)實(shí)施例。此指令設(shè)置存儲(chǔ)鍵的所有組件,即使一個(gè)或多個(gè)組件被更新為與之前相同的值。此外,此指令需要使系統(tǒng)序列化以確保所有CPU觀察到鍵更改。所述序列化使用停頓操作。在其他實(shí)施例中,可以使用條件SSKE指令設(shè)置存儲(chǔ)鍵。當(dāng)環(huán)境允許時(shí),此指令允許程序有條件地繞過例如引用組件、更改組件或二者的更新。即,軟件(例如,操作系統(tǒng)程序)可以指示無需更新這兩個(gè)組件之一或全部。當(dāng)SSKE指令設(shè)置的訪問鍵和取回保護(hù)控件與鍵中當(dāng)前被更新的那些組件匹配時(shí),這允許CPU在實(shí)施方式中的靈活性。此指令選擇性地使用停頓操作,具體取決于被設(shè)置的字段。但在許多情況下,軟件需要更改存儲(chǔ)鍵的訪問控制和取回保護(hù)控件,因此無法使用條件SSKE。參考圖5描述了與使用停頓操作的Set Storage Key Extended指令關(guān)聯(lián)的處理的一個(gè)實(shí)例的概況。如所示出,在此特定實(shí)例中,存在四個(gè)中央處理單元CPUO -CPU3。CPUO 執(zhí)行SSKE操作(500)。因此,它在編號(hào)I處向所有其他中央處理單元啟動(dòng)停頓操作。所有當(dāng)前操作單元完成時(shí),配置中的其他CPU確認(rèn)收到停頓(例如,編號(hào)2a、編號(hào)2b、編號(hào)2c)。 確認(rèn)之后,每個(gè)CPU清除所有本地緩存的鍵副本。CPUO之外的CPU可以繼續(xù)執(zhí)行不需要訪問受SSKE影響的塊的操作(編號(hào)3a和編號(hào)3b)。但是,如果CPU需要訪問其中正在設(shè)置鍵的同一塊,則后續(xù)操作將延遲(502 )。 SSKE指令的執(zhí)行被延遲(編號(hào)4),直到所有CPU均已確認(rèn)收到停頓,此時(shí)可以設(shè)置塊的存儲(chǔ)鍵(編號(hào)5)。執(zhí)行SS KE的CPU然后向其他CPU發(fā)送信號(hào)通知取消停頓(編號(hào)6)。 對(duì)于需要訪問其中正在設(shè)置鍵的同一塊的CPU2,后續(xù)操作被延遲(編號(hào)7),直到發(fā)送信號(hào)通知取消停頓。據(jù)估計(jì),此停頓操作在大型多處理器配置中將導(dǎo)致顯著延遲。因此,根據(jù)本發(fā)明的一個(gè)方面,提供了一種不執(zhí)行停頓的SSKE操作。這在圖6中示出。在此圖中,假設(shè)以下條件A、B和C是包含在單個(gè)4K字節(jié)塊中的上升的存儲(chǔ)位置。在此實(shí)例中,該塊的鍵最初是除了I之外的任何事物。不向接收方CPU廣播停頓,但啟動(dòng)方CPU向接收方CPU發(fā)送交叉驗(yàn)證(XI)信號(hào)以導(dǎo)致接收方CPU清除所有緩存的鍵副本。SSKE的新控件(編號(hào)I)(將在下面描述)實(shí)現(xiàn)無停頓操作。如果該位為O或如果 M3操作數(shù)未被編碼,則執(zhí)行原始停頓操作。鍵的設(shè)置遵循現(xiàn)有規(guī)則。在CPU O設(shè)置鍵并向其他CPU發(fā)送交叉驗(yàn)證信號(hào)(600)之后,CPUl可以在通用寄存器3中觀察到新鍵(編號(hào)2),并觀察到由同時(shí)在CPU 2中執(zhí)行的MVCL (Move Character Long)設(shè)置的更改位。在操作開始時(shí)執(zhí)行操作單元的所有鍵檢查。對(duì)操作單元的后續(xù)訪問使用最初觀察到的鍵(編號(hào)3)。假設(shè)CPU 2的PSW鍵初始與包含A的塊的鍵匹配,則即使在CPUO更改所述鍵之后MVCL也繼續(xù)執(zhí)行。盡管CPU3可以在通用寄存器5中觀察到新鍵,但取回到通用寄存器7和8中的結(jié)果(編號(hào)4)可以分別包含舊/舊、舊/新、新/舊或新/新數(shù)據(jù),具體取決于MVCL的進(jìn)度和執(zhí)行取回的時(shí)間。根據(jù)本發(fā)明的一個(gè)方面,在SSKE執(zhí)行時(shí)判定特定SSKE執(zhí)行是停頓還是無停頓。此判定由在該指令中設(shè)置的指示器進(jìn)行并考慮到與早期配置的兼容性。參考圖7A描述了無停頓Set Storage Key Extended (SSKE)指令700的格式的一個(gè)實(shí)施例。在此實(shí)例中,該指令具有表示寄存器和寄存器操作的RRF格式、擴(kuò)展操作碼字段以及額外的R字段、M字段或二者。無停頓SSKE指令700例如包括操作碼702,其指定 Set Storage Key Extended指令(例如,“B22B”);M3操作數(shù)704,程序(例如,操作系統(tǒng))使用其例如判定此SSKE操作是停頓還是無停頓;寄存器指定(R1) 706,其選擇包括要在存儲(chǔ)鍵中設(shè)置的值的寄存器;以及寄存器指定(R2) 708,其選擇包括要設(shè)置的存儲(chǔ)鍵的地址的寄存器。參考圖7B描述了關(guān)于M3操作數(shù)的進(jìn)一步細(xì)節(jié)。在一個(gè)實(shí)例中,M3操作數(shù)704包括無停頓控制(NQ)710 (例如,位0),其控制是否執(zhí)行停頓操作;引用位更新掩碼(MR)712 (例如,位1),其控制是否可以繞過對(duì)存儲(chǔ)鍵中引用位的更新;更改位更新掩碼(MC)714 (例如,位2),其控制是否可以繞過對(duì)存儲(chǔ)鍵中更改位的更新;以及多塊控制(MB)716 (例如,位 3),其控制是否可以設(shè)置多個(gè)4k字節(jié)存儲(chǔ)塊的存儲(chǔ)鍵。響應(yīng)于例如將無停頓控制設(shè)置為1,不執(zhí)行SSKE指令的停頓操作。參考圖8進(jìn)一步詳細(xì)地對(duì)此進(jìn)行了描述。初始地,SSKE毫代碼(例如,在處理器上執(zhí)行的垂直微代碼)開始執(zhí)行(步驟800),并判定是否在SSKE指令中啟用無停頓控制(查詢802)。如果控制未啟用(指示要執(zhí)行SSKE指令的停頓操作),則向系統(tǒng)的所有處理器廣播鍵清除命令以使處理停頓(步驟804)。此后,啟動(dòng)SSKE指令的處理器等待清除命令被發(fā)送到的所有處理器做出響應(yīng),告知它們已到達(dá)其停頓點(diǎn)(步驟806)。響應(yīng)于收到所有處理器均已停頓的確認(rèn),該啟動(dòng)處理器更改存儲(chǔ)鍵(步驟808 )。此外,它廣播命令以結(jié)束停頓,允許所述處理器再次開始處理(步驟 810)。此后,指令結(jié)束(步驟812)。返回查詢802,如果啟用無停頓控制(指示要繞過停頓),則不執(zhí)行廣播鍵清除命令、等待處理器停頓以及取消停頓。相反,僅更改存儲(chǔ)鍵,并在一個(gè)實(shí)施例中,可以向其他 CPU發(fā)送交叉驗(yàn)證(XI)信號(hào)以導(dǎo)致其他CPU清除任何本地緩存的鍵副本(步驟820)。所述指令結(jié)束(步驟812)。此繞過停頓操作與要更改的存儲(chǔ)鍵的字段無關(guān)。此繞過的唯一控制是NQ字段的值(并假設(shè)支持無停頓)。在判定是否針對(duì)所述無停頓工具繞過停頓時(shí),不檢查更改存儲(chǔ)鍵的哪些字段和/或這些字段的值。現(xiàn)在描述關(guān)于執(zhí)行SSKE指令(包括本發(fā)明的一個(gè)方面的無停頓SSKE指令)的進(jìn)一步細(xì)節(jié)。在此說明中,還描述了關(guān)于常規(guī)條件SSKE工具的細(xì)節(jié),以及為了 SSKE指令的完整性而描述常規(guī)增強(qiáng)型DAT工具。執(zhí)行SSKE指令導(dǎo)致一個(gè)或多個(gè)4K字節(jié)塊的存儲(chǔ)鍵被該指令的第一個(gè)操作數(shù)寄存器中的值替換。在執(zhí)行中,當(dāng)安裝了條件SSKE工具時(shí),可以繞過鍵設(shè)置操作的特定功能。當(dāng)未安裝條件SSKE 工具時(shí),或者當(dāng)安裝了條件SSKE工具并且M3字段的MR和MC位均為O時(shí),由通用寄存器R2的內(nèi)容尋址的4K字節(jié)塊的存儲(chǔ)鍵被來自通用寄存器R1的位替換。所述指令在不更改條件碼的情況下完成。當(dāng)安裝了條件SSKE工具并且MR和MC位之一或全部為I時(shí),將由通用寄存器R2的內(nèi)容尋址的存儲(chǔ)鍵的訪問控制位、取回保護(hù)位以及可選地引用位和更改位與通用寄存器R1 中的對(duì)應(yīng)位進(jìn)行比較。如果比較的位相同,則不對(duì)鍵進(jìn)行更改;否則,鍵的選定位被通用寄存器R1中的對(duì)應(yīng)位替換。在任何修改之前,將存儲(chǔ)鍵插入通用寄存器R1,并且由條件碼指不結(jié)果。當(dāng)安裝了增強(qiáng)型DAT工具時(shí),取決于%字段的多塊控件的控制,可以針對(duì)相同IMB 塊中的多個(gè)4K字節(jié)塊的存儲(chǔ)鍵重復(fù)上述操作。當(dāng)未安裝無停頓鍵設(shè)置工具時(shí),將忽略M3字段的位O。當(dāng)未安裝條件SSKE工具時(shí), 將忽略M3字段的位位置I和2。當(dāng)未安裝增強(qiáng)型DAT工具時(shí),將忽略M3字段的位位置3。當(dāng)安裝了條件SSKE工具時(shí),處理如下I.當(dāng)M3字段的位I和2 (MR和MC位)均為O時(shí),所述指令完成,就像未安裝條件 SSKE工具一樣。由通用寄存器R2的內(nèi)容尋址的4K字節(jié)塊的存儲(chǔ)鍵被來自通用寄存器R1的位替換,并且所述指令在不更改條件碼的情況下完成。2.當(dāng)MR和MC位之一或全部為I時(shí),處理如下
48-54中,并將通用寄存器R1的位55設(shè)置為O。此寄存器的位0_47 和56-63保持不變。如果在取回存儲(chǔ)鍵時(shí)檢測(cè)到無效的檢查塊代碼(CBC),則(a) 4K字節(jié)塊的整個(gè)存儲(chǔ)鍵被通用寄存器R1的位56-62替換,(b)通用寄存器R1的位位置48-55的內(nèi)容無法預(yù)測(cè), 以及(c)通過設(shè)置條件碼3完成所述指令。b.將指定的4K字節(jié)塊的存儲(chǔ)鍵的訪問控制位和取回保護(hù)位與通用寄存器R1的位 56-60中的對(duì)應(yīng)字段進(jìn)行比較。如果相應(yīng)字段不相等,則4K字節(jié)塊的整個(gè)存儲(chǔ)鍵被來自通用寄存器R1的位替換,并且通過設(shè)置條件碼I完成所述指令。當(dāng)所述存儲(chǔ)鍵中的訪問控制和取回保護(hù)位與通用寄存器R1中的相應(yīng)位相等時(shí),處理如下所述繼續(xù)。c.當(dāng)MR和MC位均為I時(shí),通過設(shè)置條件碼O完成所述指令。在這種情況下存儲(chǔ)鍵保持不變。d.當(dāng)MR位為O并且MC位為I時(shí),將指定的4K字節(jié)塊的存儲(chǔ)鍵的引用位與通用寄存器R1的位61進(jìn)行比較。如果位相等,則通過設(shè)置條件碼O完成所述指令。在這種情況下存儲(chǔ)鍵保持不變。如果位不相等,則或者(a)指定的4K字節(jié)塊的整個(gè)存儲(chǔ)鍵被通用寄存器R1中的位替換,并且通過設(shè)置條件碼I完成所述指令;或者(b)所述存儲(chǔ)鍵的引用位被通用寄存器R1 的位61替換,所述鍵的更改位無法預(yù)測(cè),并且通過設(shè)置條件碼2完成所述指令。無法預(yù)測(cè)是設(shè)置條件碼I還是2。e.當(dāng)MR位為O并且MC位為I時(shí),將指定的4K字節(jié)塊的存儲(chǔ)鍵的更改位與通用寄存器R1的位62進(jìn)行比較。如果位相等,則通過設(shè)置條件碼O完成所述指令。在這種情況下所述存儲(chǔ)鍵保持不變,只是引用位無法預(yù)測(cè)。如果位不相等,則或者(a)指定的4K字節(jié)塊的整個(gè)存儲(chǔ)鍵被通用寄存器R1中的位替換,并且通過設(shè)置條件碼I完成所述指令;或者(b)所述存儲(chǔ)鍵的更改位被通用寄存器R1 的位62替換,所述鍵的引用位無法預(yù)測(cè),并且通過設(shè)置條件碼2完成所述指令。無法預(yù)測(cè)是設(shè)置條件碼I還是2。 當(dāng)未安裝增強(qiáng)型DAT工具時(shí),或者當(dāng)安裝了該工具但多塊控制為O時(shí),通用寄存器 R2包含實(shí)地址。當(dāng)安裝了增強(qiáng)型DAT工具并且多塊控制為I時(shí),通用寄存器R2包含絕對(duì)地址。在24位尋址模式下,通用寄存器R2的位40-51指定實(shí)際或絕對(duì)存儲(chǔ)裝置中的4K 字節(jié)塊,并且將忽略此寄存器的位0-39和52-63。在31位尋址模式下,通用寄存器R2的位 33-51指定實(shí)際或絕對(duì)存儲(chǔ)裝置中的4K字節(jié)塊,并且將忽略此寄存器的位0-32和52-63。 在64位尋址模式下,通用寄存器R2的位0-51指定實(shí)際或絕對(duì)存儲(chǔ)裝置中的4K字節(jié)塊,并且將忽略此寄存器的位52-63。因?yàn)槭菍?shí)地址或絕對(duì)地址,所以指定存儲(chǔ)塊的地址不經(jīng)歷動(dòng)態(tài)地址轉(zhuǎn)換。對(duì)存儲(chǔ)鍵的引用不會(huì)出現(xiàn)保護(hù)異常。從通用寄存器R1的位位置56-62獲取新的七位存儲(chǔ)鍵值或其選定位。將忽略此寄存器的位位置0-55和63的內(nèi)容。當(dāng)安裝了條件SSKE工具,并且MR和MC位之一或全部為I時(shí),位位置63應(yīng)該包含O ;否則,程序?qū)砜赡懿粫?huì)兼容地運(yùn)行。在操作開始之前執(zhí)行序列化和檢查點(diǎn)同步功能,并在操作完成之后再次執(zhí)行,只是當(dāng)安裝了條件SSKE工具并且產(chǎn)生的條件碼為O時(shí),無法預(yù)測(cè)是否在操作完成之后執(zhí)行序列化和檢查點(diǎn)同步功能。當(dāng)未安裝無停頓鍵設(shè)置工具時(shí),或者當(dāng)安裝了該工具并且無停頓控制(NQ)為O 時(shí),應(yīng)用以下步驟執(zhí)行停頓操作。對(duì)于在此指令設(shè)置所述鍵之前或之后由CPU或通道程序完成的對(duì)指定4K字節(jié)塊的任何存儲(chǔ)訪問而言,也分別在執(zhí)行此指令之前或之后完成在該塊的存儲(chǔ)鍵中將引用和更改位關(guān)聯(lián)地設(shè)置為I。當(dāng)安裝了無停頓鍵設(shè)置工具并且NQ控制為I時(shí),不執(zhí)行停頓操作。對(duì)無停頓鍵設(shè)置操作(以及其他操作)的存儲(chǔ)鍵的引用被如下處理I.每當(dāng)做出對(duì)存儲(chǔ)裝置的引用并向該引用應(yīng)用鍵控保護(hù)時(shí),將同時(shí)檢查與存儲(chǔ)位置關(guān)聯(lián)的四個(gè)訪問控制位和取回保護(hù)位。訪問控制和取回保護(hù)位的檢查與對(duì)存儲(chǔ)位置的引用同時(shí)發(fā)生,只是當(dāng)一個(gè)CPU針對(duì)存儲(chǔ)位置執(zhí)行無停頓鍵設(shè)置工具時(shí),應(yīng)用以下操作 任意CPU對(duì)存儲(chǔ)位置的訪問控制和取回保護(hù)位的檢查可以在對(duì)該位置的存儲(chǔ)引用之前。如果在存儲(chǔ)之前檢查訪問控制和取回保護(hù)位,則檢查的發(fā)生不早于該CPU上的最后一個(gè)序列化操作完成之后,并且不早于在任意CPU上針對(duì)同一存儲(chǔ)位置的最后一個(gè)停頓鍵設(shè)置操作。 當(dāng)任何其他CPU上的操作單元或指令執(zhí)行導(dǎo)致多次訪問與鍵設(shè)置操作相同的 4K字節(jié)塊時(shí),所述其他CPU僅針對(duì)首次弓I用該塊檢查訪問控制和取回保護(hù)位。所述其他CPU 不一定針對(duì)同一操作單元在該塊中的后續(xù)訪問而檢查訪問控制和取回保護(hù)位。2.當(dāng)CPU執(zhí)行存儲(chǔ)時(shí),在完成存儲(chǔ)訪問的同時(shí)在關(guān)聯(lián)的存儲(chǔ)鍵中將更改位設(shè)置為 1,如該CPU本身所觀察到的那樣。當(dāng)CPU或通道程序執(zhí)行存儲(chǔ)時(shí),在完成存儲(chǔ)訪問之前或之后在關(guān)聯(lián)的存儲(chǔ)鍵中將更改位設(shè)置為1,如其他CPU (如果CPU執(zhí)行存儲(chǔ))或全部CPU (如果通道程序執(zhí)行存儲(chǔ))所觀察到的那樣。如其他或全部CPU所觀察到的,更改位的設(shè)置不早于(I)在執(zhí)行該存儲(chǔ)的CPU通道程序先前執(zhí)行的最后一個(gè)序列化功能之后,以及(2)在配置中的任意CPU執(zhí)行停頓鍵設(shè)置指令(在存儲(chǔ)完成之前最后一次設(shè)置關(guān)聯(lián)的存儲(chǔ)鍵)之后。 如其他或全部CPU所觀察到的,僅當(dāng)在存儲(chǔ)操作之后發(fā)生以下任一操作時(shí)才一定發(fā)生更改位設(shè)置 執(zhí)行該存儲(chǔ)的CPU或通道程序執(zhí)行序列化功能?!び蒀PU或通道程序執(zhí)行存儲(chǔ),并且配置中的任意CPU通過在存儲(chǔ)訪問完成之后執(zhí)行鍵設(shè)置指令來設(shè)置主題(subject)更改位。因存儲(chǔ)訪問導(dǎo)致的更改位設(shè)置在鍵設(shè)置指令進(jìn)行設(shè)置之前發(fā)生,只是當(dāng)安裝了無停頓鍵設(shè)置工具時(shí),更改位可能看似在無停頓鍵設(shè)置指令之后被設(shè)置。 存儲(chǔ)由CPU執(zhí)行并已完成或?qū)⑼瓿桑⑶遗渲弥械娜我釩PU執(zhí)行COMPARE AND SWAP AND PURGE、INVALIDATE DAT TABLE ENTRY 或 INVALIDATE PAGE TAB LE ENTRY 指令, 這些指令從執(zhí)行存儲(chǔ)的CPU的ALB (ART后備緩沖區(qū))或TLB中清除任何用于完成該存儲(chǔ)的表項(xiàng)。將延遲清除指令的完成,直到主題存儲(chǔ)和更改位設(shè)置已完成。 由 CPU 執(zhí)行存儲(chǔ),并且此 CPU 通過 INSERT STORAGE KEY EXTENDED 或 RESET REFERENCE BIT EXTENDED指令檢查主題更改位。當(dāng)使用非停頓控制設(shè)置為I的鍵設(shè)置指令時(shí),在一個(gè)實(shí)例中,程序可以確保其他 CPU或通道程序都不引用正在為其設(shè)置鍵的存儲(chǔ)裝置。例如,在虛擬存儲(chǔ)環(huán)境中,可以通過只是不將存儲(chǔ)位置映射到任何虛擬地址空間來限制對(duì)該存儲(chǔ)位置的訪問。以下實(shí)例示出了在無停頓鍵設(shè)置操作之后觀察到已更改的數(shù)據(jù)。此實(shí)例的初始條件如下 存儲(chǔ)位置A是完全包含在單個(gè)4K字節(jié)塊內(nèi)的256字節(jié)區(qū)域。此塊的存儲(chǔ)鍵中的訪問控制位是二進(jìn)制0001。B和C是區(qū)域A中上升的位置?!?CPUl 的 PSW 鍵是 I。在CPU2上的無停頓SSKE將A的存儲(chǔ)鍵的訪問控制更改為2之前,CPUl確定A是可訪問的。
權(quán)利要求
1.一種促進(jìn)計(jì)算環(huán)境中的處理的方法,所述方法包括以下步驟 由處理器獲取更改存儲(chǔ)鍵的請(qǐng)求,所述存儲(chǔ)鍵與存儲(chǔ)裝置中的位置關(guān)聯(lián)并可由多個(gè)處理器訪問;以及 由所述處理器更改所述存儲(chǔ)鍵,其中在不使所述多個(gè)處理器的處理停頓的情況下執(zhí)行所述更改; 其中所述存儲(chǔ)鍵包括用于鍵匹配的訪問控制組件(402)和用于指示在存儲(chǔ)裝置中與所述存儲(chǔ)鍵關(guān)聯(lián)的位置取回所存儲(chǔ)的數(shù)據(jù)是否受到鍵控的取回保護(hù)組件(404);以及 其中更改步驟更改所述訪問控制組件(402)和所述取回保護(hù)組件(404)中的至少一個(gè)。
2.如權(quán)利要求I中所述的方法,其中所述方法還包括針對(duì)所述請(qǐng)求確定多種處理模式中的一種,其中所述多種處理模式包括停頓和無停頓,并且其中響應(yīng)于指示所述請(qǐng)求的處理模式是無停頓的確定而執(zhí)行所述更改。
3.如權(quán)利要求2中所述的方法,其中所述請(qǐng)求是用于更改所述存儲(chǔ)鍵的指令,并且在所述指令中指定所述指令的特定執(zhí)行的處理模式。
4.如權(quán)利要求3中所述的方法,其中所述指令是包括掩碼字段的SetStorage KeyExtended指令,所述掩碼字段包括用于指示無停頓處理或停頓處理的無停頓控制位。
5.如權(quán)利要求3中所述的方法,其中所述指令包括PerformFrame ManagementFunction 指令。
6.如權(quán)利要求I中所述的方法,其中所述方法還包括 由所述多個(gè)處理器中的另一處理器啟動(dòng)訪問存儲(chǔ)裝置中的所述位置的操作; 在所述啟動(dòng)之后確定用于存儲(chǔ)裝置中的該位置的存儲(chǔ)鍵已更改;以及 響應(yīng)于所述確定而繼續(xù)執(zhí)行所述操作。
7.如權(quán)利要求6中所述的方法,其中所述方法還包括 響應(yīng)于所述啟動(dòng)而獲取訪問存儲(chǔ)裝置中的所述位置的許可;以及 在更改所述存儲(chǔ)鍵之后,根據(jù)響應(yīng)于所述啟動(dòng)獲取的所述許可而繼續(xù)執(zhí)行所述操作。
8.如權(quán)利要求7中所述的方法,其中獲取許可包括 響應(yīng)于所述啟動(dòng)而預(yù)測(cè)試要由所述操作訪問的一個(gè)或多個(gè)存儲(chǔ)位置以判定是否允許訪問;以及 響應(yīng)于成功的預(yù)測(cè)試而獲取許可,其中針對(duì)一系列存儲(chǔ)位置獲取許可。
9.如權(quán)利要求6中所述的方法,其中所述繼續(xù)執(zhí)行包括阻止保護(hù)異常。
10.如權(quán)利要求9中所述的方法,其中所述繼續(xù)執(zhí)行包括 響應(yīng)于確定所述存儲(chǔ)鍵已更改,判定響應(yīng)于修改存儲(chǔ)裝置中的選定位置而設(shè)置的用于指定繼續(xù)執(zhí)行的指示器是否指定執(zhí)行可以繼續(xù)而不管已更改的存儲(chǔ)鍵;以及 響應(yīng)于指示執(zhí)行可以繼續(xù)的判定而阻止所述保護(hù)異常。
11.如權(quán)利要求I中所述的方法,其中響應(yīng)于更改所述存儲(chǔ)鍵,一個(gè)或多個(gè)處理器可觀察到所述存儲(chǔ)鍵的多個(gè)不同值。
12.如權(quán)利要求I中所述的方法,其中所述請(qǐng)求包括用于更改所述存儲(chǔ)鍵的指令,所述指令由所述處理器仿真以更改所述存儲(chǔ)鍵。
13.—種包括適于執(zhí)行根據(jù)任一上述方法權(quán)利要求的方法的所有步驟的裝置的系統(tǒng)。
14.一種包括指令的計(jì)算機(jī)程序,當(dāng)所述計(jì)算機(jī)程序在計(jì)算機(jī)系統(tǒng)上執(zhí)行時(shí),所述指令用于執(zhí)行根據(jù)任一上述方法權(quán)利要求的方法的所有步驟。
全文摘要
提供一種無停頓鍵設(shè)置工具,其使能在不使多處理器系統(tǒng)的其他處理器的操作停頓的情況下執(zhí)行存儲(chǔ)鍵操縱。借助此工具,更新可由所述多處理器系統(tǒng)的多個(gè)處理器訪問的存儲(chǔ)鍵而不使所述多個(gè)處理器的操作停頓。由于在不使其他操作停頓的情況下更新存儲(chǔ)鍵,處理器可以觀察到所述存儲(chǔ)鍵在所述處理器執(zhí)行的操作開始時(shí)具有一個(gè)值,并且在該操作結(jié)束時(shí)具有第二值。提供一種機(jī)制以使得該操作能夠繼續(xù),從而避免嚴(yán)重異常。
文檔編號(hào)G06F9/30GK102713838SQ201080056684
公開日2012年10月3日 申請(qǐng)日期2010年12月14日 優(yōu)先權(quán)日2009年12月15日
發(fā)明者C·雅各比, C-L·K·舒姆, D·格雷納, T·什萊格爾 申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司