管理耦合設(shè)施中的操作員消息緩沖器的制造方法
【專(zhuān)利摘要】提供了一種設(shè)施以使得能夠從多個(gè)不同的源向計(jì)算環(huán)境的耦合設(shè)施提供操作員消息命令以用于處理。這些命令被用來(lái)例如在耦合設(shè)施上執(zhí)行動(dòng)作,并且可以從耦合到耦合設(shè)施的控制臺(tái)以及被與之耦合的邏輯分區(qū)或其他系統(tǒng)接收。響應(yīng)于執(zhí)行命令,向命令的發(fā)起者返回響應(yīng)。
【專(zhuān)利說(shuō)明】管理耦合設(shè)施中的操作員消息緩沖器
【技術(shù)領(lǐng)域】
[0001]本發(fā)明的一個(gè)或多個(gè)方面一般地涉及計(jì)算環(huán)境內(nèi)的處理,并且特別涉及計(jì)算環(huán)境內(nèi)的處理操作員消息命令。
【背景技術(shù)】
[0002]計(jì)算環(huán)境的范圍從簡(jiǎn)單環(huán)境到更復(fù)雜的環(huán)境。簡(jiǎn)單環(huán)境可以包括執(zhí)行一個(gè)操作系統(tǒng)的一個(gè)處理器,而復(fù)雜環(huán)境可以包括執(zhí)行各種系統(tǒng)的多個(gè)處理器或多個(gè)隔離存儲(chǔ)器空間。例如,復(fù)雜環(huán)境可以包括執(zhí)行一個(gè)或多個(gè)操作系統(tǒng)的一個(gè)或多個(gè)邏輯分區(qū)及執(zhí)行耦合設(shè)施控制代碼的至少一個(gè)邏輯分區(qū)。無(wú)論計(jì)算環(huán)境是簡(jiǎn)單的還是復(fù)雜的,必須充分地測(cè)試計(jì)算環(huán)境的部件以確保可靠性和可接受水平的性能。
[0003]用于測(cè)試計(jì)算環(huán)境的部件的一種技術(shù)是通過(guò)在連接到部件的控制臺(tái)處發(fā)布操作員命令,其然后被計(jì)算環(huán)境的預(yù)定部件處理。一旦操作員命令被處理,結(jié)果返回到控制臺(tái)以便由控制臺(tái)的操作員驗(yàn)證。
[0004]還可以出于除測(cè)試之外的目的使用操作員命令。再次地,這些操作員命令由操作員在控制臺(tái)處發(fā)布并由計(jì)算環(huán)境的預(yù)定部件處理。
【發(fā)明內(nèi)容】
[0005]通過(guò)提供用于管理計(jì)算環(huán)境的緩沖器的計(jì)算機(jī)程序產(chǎn)品,克服了現(xiàn)有技術(shù)的缺點(diǎn)并提供了優(yōu)點(diǎn)。該計(jì)算機(jī)程序產(chǎn)品包括可被處理電路讀取并存儲(chǔ)用于由處理電路執(zhí)行以便執(zhí)行一種方法的指令的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)。該方法包括例如將耦合設(shè)施的緩沖器設(shè)置成活動(dòng)狀態(tài)或空閑狀態(tài),包括響應(yīng)于開(kāi)始操作員消息命令具有關(guān)聯(lián)操作員消息令牌值,設(shè)置所選緩沖器中的操作員消息令牌值并使得所選緩沖器活動(dòng);以及確定計(jì)算環(huán)境的耦合設(shè)施的所選緩沖器將被重置,該緩沖器包括關(guān)于處理從被耦合到耦合設(shè)施但與之分離的處理器映像遠(yuǎn)程地向耦合設(shè)施發(fā)送的操作員消息命令的信息,該操作員消息命令用以對(duì)耦合設(shè)施執(zhí)行動(dòng)作,所選緩沖器包括具有使得所選緩沖器與具有操作員消息(OM)令牌的操作員消息相關(guān)的令牌值的令牌字段,所述操作員消息(OM)令牌具有相同的令牌值;以及響應(yīng)于確定緩沖器將被重置而將所確定的緩沖器設(shè)置成空閑狀態(tài),其中,所述緩沖器包括多個(gè)字段,該字段包括用以指示對(duì)于緩沖器而言操作員消息已經(jīng)活動(dòng)的時(shí)間段的定時(shí)器、操作員消息請(qǐng)求長(zhǎng)度以及操作員消息響應(yīng)長(zhǎng)度。
[0006]在本文中還描述了關(guān)于本發(fā)明的一個(gè)或多個(gè)方面的方法和系統(tǒng)并要求保護(hù)。此夕卜,還描述了關(guān)于本發(fā)明的一個(gè)或多個(gè)方面的服務(wù),并且可以在此要求保護(hù)。
[0007]通過(guò)本發(fā)明的一個(gè)或多個(gè)方面的技術(shù)實(shí)現(xiàn)了附加特征和優(yōu)點(diǎn)。在此詳細(xì)地描述了本發(fā)明的其他實(shí)施例和方面并將其視為要求保護(hù)的本發(fā)明的一部分。
【專(zhuān)利附圖】
【附圖說(shuō)明】
[0008]特別地指出了本發(fā)明的一個(gè)或多個(gè)方面并在本說(shuō)明書(shū)結(jié)束時(shí)在權(quán)利要求中作為例子明確地要求保護(hù)。根據(jù)結(jié)合附圖進(jìn)行的以下詳細(xì)描述,本發(fā)明的一個(gè)或多個(gè)方面的前述及其他目的、特征和優(yōu)點(diǎn)是顯而易見(jiàn)的,在所述附圖中:
[0009]圖1描述了將結(jié)合并使用本發(fā)明的一個(gè)或多個(gè)方面的計(jì)算環(huán)境的一個(gè)例子。
[0010]圖2A描述了根據(jù)本發(fā)明的一方面的與計(jì)算環(huán)境的耦合設(shè)施通信的圖1的計(jì)算環(huán)境的處理器的一個(gè)例子;
[0011]圖2B描述了根據(jù)本發(fā)明的一方面使用的關(guān)于發(fā)送消息(Send Message)指令的細(xì)節(jié)的一個(gè)實(shí)施例;
[0012]圖3A描述了根據(jù)本發(fā)明的一方面的用來(lái)控制在耦合設(shè)施處接收到的操作員消息命令的處理的復(fù)用器的一個(gè)例子;
[0013]圖3B描述了根據(jù)本發(fā)明的一方面的被圖3A的復(fù)用器用來(lái)控制操作員消息命令的處理的邏輯的一個(gè)例子;
[0014]圖4A描述了根據(jù)本發(fā)明的一方面的在處理操作員信息命令時(shí)所使用的緩沖器的一個(gè)例子;
[0015]圖4B描述了根據(jù)本發(fā)明的一方面的圖4A的緩沖器的更多細(xì)節(jié)的一個(gè)例子;
[0016]圖5描述了根據(jù)本發(fā)明的一方面的緩沖器的各種可能狀態(tài)的例子;
[0017]圖6描述了根據(jù)本發(fā)明的一方面的所使用的各種命令的一個(gè)實(shí)施例;
[0018]圖7A描述了根據(jù)本發(fā)明的一方面的關(guān)于使用發(fā)送消息指令來(lái)發(fā)布開(kāi)始操作員消息(Start Operator Message)命令的細(xì)節(jié)的一個(gè)實(shí)施例;
[0019]圖7B描述了根據(jù)本發(fā)明的一方面的所使用的開(kāi)始操作員消息(Start OperatorMessage)命令的邏輯的一個(gè)實(shí)施例;
[0020]圖8A描述了根據(jù)本發(fā)明的一方面的關(guān)于使用發(fā)送消息(Send Message)指令來(lái)發(fā)布讀取操作員消息(Read Operator Message)命令的細(xì)節(jié)的一個(gè)實(shí)施例;
[0021]圖8B描述了根據(jù)本發(fā)明的一方面所使用的讀取操作員消息(Read OperatorMessage)命令的邏輯的一個(gè)實(shí)施例;
[0022]圖9A描述了根據(jù)本發(fā)明的一方面的關(guān)于使用發(fā)送消息指令來(lái)發(fā)布刪除操作員消息(Delete Operator Message)命令的細(xì)節(jié)的一個(gè)實(shí)施例;
[0023]圖9B描述了根據(jù)本發(fā)明的一方面所使用的刪除操作員消息(Delete OperatorMessage)指令的邏輯的一個(gè)實(shí)施例;
[0024]圖10描述了結(jié)合了本發(fā)明的一個(gè)或多個(gè)方面的計(jì)算機(jī)程序產(chǎn)品的一個(gè)實(shí)施例;
[0025]圖11描述了將結(jié)合和使用本發(fā)明的一個(gè)或多個(gè)方面的主機(jī)計(jì)算機(jī)系統(tǒng)的一個(gè)實(shí)施例;
[0026]圖12描述了將結(jié)合和使用本發(fā)明的一個(gè)或多個(gè)方面的主機(jī)計(jì)算機(jī)系統(tǒng)的另一例子;
[0027]圖13描述了將結(jié)合和使用本發(fā)明的一個(gè)或多個(gè)方面的包括計(jì)算機(jī)網(wǎng)絡(luò)的計(jì)算機(jī)系統(tǒng)的另一例子;
[0028]圖14描述了將結(jié)合和使用本發(fā)明的一個(gè)或多個(gè)方面的計(jì)算機(jī)系統(tǒng)的各種元件的一個(gè)實(shí)施例;
[0029]圖15A描述了將結(jié)合和使用本發(fā)明的一個(gè)或多個(gè)方面的圖14的計(jì)算機(jī)系統(tǒng)的執(zhí)行單元的一個(gè)實(shí)施例;[0030]圖15B描述了將結(jié)合和使用本發(fā)明的一個(gè)或多個(gè)方面的圖14的計(jì)算機(jī)系統(tǒng)的分支單元的一個(gè)實(shí)施例;
[0031]圖15C描述了將結(jié)合和使用本發(fā)明的一個(gè)或多個(gè)方面的圖14的計(jì)算機(jī)系統(tǒng)的加載/存儲(chǔ)單元的一個(gè)實(shí)施例;以及
[0032]圖16描述了將結(jié)合和使用本發(fā)明的一個(gè)或多個(gè)方面的仿真主機(jī)計(jì)算機(jī)系統(tǒng)的一個(gè)實(shí)施例。
【具體實(shí)施方式】
[0033]根據(jù)本發(fā)明的一個(gè)或多個(gè)方面,提供了一種促進(jìn)從一個(gè)或多個(gè)源接收到的操作員信息命令的處理的能力。在一個(gè)例子中,操作員消息命令是由耦合設(shè)施從一個(gè)或多個(gè)源接收到的,并且該耦合設(shè)施處理該命令并向源返回響應(yīng)。在一個(gè)特定例子中,源中的至少一個(gè)是耦合到耦合設(shè)施但與之分離的處理器映像。作為例子:
[0034]*該處理器映像是具有與之相關(guān)聯(lián)的中央處理器資源并能夠執(zhí)行操作系統(tǒng)的邏輯分區(qū),并且該耦合設(shè)施在具有與之相關(guān)聯(lián)的中央處理器資源并能夠執(zhí)行耦合設(shè)施控制代碼的另一邏輯分區(qū),其中,兩個(gè)邏輯分區(qū)都在同一中央處理復(fù)合體(即,同一機(jī)器)內(nèi);
[0035]*該處理器映像是具有與之相關(guān)聯(lián)的中央處理器資源并能夠執(zhí)行操作系統(tǒng)的邏輯分區(qū),并且該耦合設(shè)施在具有與之相關(guān)聯(lián)的中央處理器資源并能夠執(zhí)行耦合設(shè)施控制代碼的另一邏輯分區(qū),其中,兩個(gè)邏輯分區(qū)都在不同的中央處理復(fù)合體(即,不同的機(jī)器)內(nèi);以及
[0036]*處理器映像與能夠執(zhí)行耦合設(shè)施的機(jī)器或邏輯分區(qū)分離的獨(dú)立機(jī)器(并未在邏輯分區(qū)中虛擬化)。
[0037]每個(gè)處理器映像包括一個(gè)或多個(gè)處理器。
[0038]稱(chēng)合設(shè)施操作員命令的例子包括:
[0039]配置一使得CHPID (信道路徑)上線(xiàn)或離線(xiàn);CP—使CP (中央處理器)上線(xiàn)或離線(xiàn);顯示一顯示資源;幫助〈command〉一命令特定幫助;定位一顯示SID (子信道id)向量或SID幀;模式一設(shè)置易失性模式;PRY—將PRY (機(jī)器級(jí)調(diào)試工具)開(kāi)啟或關(guān)閉;檢索一檢索耦合設(shè)施(CF)信息;安全渡過(guò)一設(shè)定電源故障安全渡過(guò)時(shí)間;RType—設(shè)置響應(yīng)類(lèi)型;關(guān)斷一終止CF操作;SMI—將系統(tǒng)監(jiān)視儀表開(kāi)啟或關(guān)閉;時(shí)區(qū)一設(shè)置時(shí)區(qū)偏移;追蹤一設(shè)置追蹤控制;補(bǔ)丁一應(yīng)用并發(fā)補(bǔ)丁 ;Dyndisp—將動(dòng)態(tài)耦合設(shè)施分派開(kāi)啟或關(guān)閉;ΜΤ0 —開(kāi)啟用于命令表的MTO (消息超時(shí));VMDUMP—強(qiáng)制VM上的耦合設(shè)施hardlong ;CFDUMP—強(qiáng)制非破壞性斷電(dump);以及 NDDUMP—nddump_command。在 2005 年 I 月的 IBM PublicationN0.SB10-7036-04 第五版中的 “Processor Resource/Systems Manager Planning Guide,,中描述了這些指令。
[0040]在一個(gè)例子中,命令正在測(cè)試耦合設(shè)施,在于該命令指定要在耦合設(shè)施上采取的動(dòng)作,執(zhí)行該動(dòng)作,將結(jié)果返回至命令的發(fā)起者(例如,操作系統(tǒng)控制臺(tái)、耦合設(shè)施控制臺(tái)、測(cè)試程序)并且由操作員、分析員等手動(dòng)地或變地分析那些結(jié)果。通過(guò)使得能夠從除耦合設(shè)施控制臺(tái)之外的遠(yuǎn)程源發(fā)起和/或發(fā)送在耦合設(shè)施上采取動(dòng)作的操作員消息命令,增強(qiáng)了能夠在耦合設(shè)施上執(zhí)行的測(cè)試以及能夠執(zhí)行的操作。這可以導(dǎo)致耦合設(shè)施的增加的可靠性和/或性能。[0041]參考圖1來(lái)描述將結(jié)合和/或使用本發(fā)明的一個(gè)或多個(gè)方面的計(jì)算環(huán)境的一個(gè)實(shí)施例。在一個(gè)例子中,計(jì)算環(huán)境100包括中央處理器復(fù)合體(CPC) 102,其是基于由國(guó)際商業(yè)機(jī)器公司(IBM?)提供的 z/Architecture?。在 2010 年 IBM PublicationN0.SA22-7832-08 中的題為 “z/Architecture Principles of Operation” 的出版物中描述了 z/Architecture?的方面??梢园ㄖ醒胩幚砥鲝?fù)合體102的一個(gè)系統(tǒng)是由國(guó)際商業(yè)機(jī)器公司提供的zEnterprisel96 (zl96)系統(tǒng)。IBM?和z/Architecture?.是美國(guó)紐約Armonk市的國(guó)際商業(yè)機(jī)器公司的注冊(cè)商標(biāo),并且zEnterprisel96和zl96是商標(biāo)。在此所使用的其他名稱(chēng)可以是國(guó)際商業(yè)機(jī)器公司或其他公司的注冊(cè)商標(biāo)、商標(biāo)或產(chǎn)品名稱(chēng)。
[0042]中央處理器復(fù)合體102包括例如一個(gè)或多個(gè)分區(qū)(處理器映像)104、管理程序分區(qū)106、一個(gè)或多個(gè)中央處理器108以及輸入/輸出子系統(tǒng)110的一個(gè)或多個(gè)部件。分區(qū)可以是物理分區(qū)或邏輯分區(qū)104(例如,LPARS),并且每個(gè)分區(qū)包括一組系統(tǒng)的硬件資源(物理或虛擬化)作為能夠運(yùn)行操作系統(tǒng)軟件的單獨(dú)系統(tǒng)。
[0043]每個(gè)邏輯分區(qū)104能夠作為單獨(dú)系統(tǒng)運(yùn)行。也就是說(shuō),每個(gè)邏輯分區(qū)能夠被獨(dú)立地設(shè)置,最初被加載操作系統(tǒng)或其他控制單元(如果期望的話(huà)),并且用不同的程序進(jìn)行操作。在邏輯分區(qū)中運(yùn)行的操作系統(tǒng)或應(yīng)用程序看起來(lái)可訪問(wèn)完整的整個(gè)系統(tǒng),但實(shí)際上,僅其一部分是可用的。硬件與被稱(chēng)為固件的許可內(nèi)部代碼(LIC)的組合防止一個(gè)邏輯分區(qū)中的程序與不同邏輯分區(qū)中的程序相干擾。這允許多個(gè)不同的邏輯分區(qū)以時(shí)間切片的方式在單個(gè)或多個(gè)物理處理器上進(jìn)行操作。(本文所使用的固件包括例如處理器的偽代碼、毫代碼和/或宏代碼。)其包括例如硬件級(jí)指令和/或在較高層機(jī)器代碼的實(shí)現(xiàn)中使用的數(shù)據(jù)結(jié)構(gòu)。在一個(gè)實(shí)施例中,其包括例如專(zhuān)有代碼,該專(zhuān)有代碼通常被作為包括可信軟件的微代碼或底層硬件所特定的微代碼傳送并控制操作系統(tǒng)對(duì)系統(tǒng)硬件的訪問(wèn)。
[0044]在本例子中,多個(gè)邏輯分區(qū)具有駐留操作系統(tǒng)(OS) 120,其對(duì)于一個(gè)或多個(gè)邏輯分區(qū)而言可以是不同的。在一個(gè)實(shí)施例中,至少一個(gè)邏輯分區(qū)正在執(zhí)行由紐約Armonk市的國(guó)際商業(yè)機(jī)器公司提供的Z/OS?.操作系統(tǒng)。此外,至少一個(gè)邏輯分區(qū)正在執(zhí)行也是由IBM?.提供的耦合設(shè)施控制代碼(CFCC) 122,并且因此被稱(chēng)為耦合設(shè)施。
[0045]耦合設(shè)施是例如非易失共享存儲(chǔ)器件(例如,硬件),包括多個(gè)存儲(chǔ)結(jié)構(gòu),諸如高速緩存器、列表和/或鎖結(jié)構(gòu),其被用來(lái)為計(jì)算環(huán)境提供獨(dú)有的功能。其為具有存儲(chǔ)和處理能力的可共享設(shè)施。例如,耦合設(shè)施是執(zhí)行耦合設(shè)施控制代碼(CFCC)的具有存儲(chǔ)器和特殊信道(CF鏈路)的處理器而不是標(biāo)準(zhǔn)操作系統(tǒng)。耦合設(shè)施中的信息作為CFCC駐留在存儲(chǔ)器上,并且除CF鏈路之外,耦合設(shè)施并不具有I/O設(shè)備。在1994年5月31日發(fā)布的Elko等人的題為“Method and Apparatus for Coupling Data Processing System” 的美國(guó)專(zhuān)利號(hào)5,317, 739中描述了稱(chēng)合設(shè)施(也稱(chēng)為結(jié)構(gòu)化外部存儲(chǔ)器)的實(shí)施方式。
[0046]邏輯分區(qū)104被與在中央處理器108上運(yùn)行的固件實(shí)現(xiàn)的管理程序106管理。邏輯分區(qū)104和管理程序106每個(gè)包括駐留在與中央處理器相關(guān)聯(lián)的主存儲(chǔ)器的各部分中的一個(gè)或多個(gè)程序。管理程序106的一個(gè)例子是由紐約Armonk市的國(guó)際商業(yè)機(jī)器公司提供的處理器資源/系統(tǒng)管理器(PR/SM?)。
[0047]中央處理器108是分配給邏輯分區(qū)的物理處理器資源。例如,邏輯分區(qū)104包括一個(gè)或多個(gè)邏輯處理器,其中的每一個(gè)表示分配給該分區(qū)的物理處理器資源108的全部或一部分。特定分區(qū)104的邏輯處理器可以專(zhuān)用于該分區(qū),使得底層處理器資源專(zhuān)供該分區(qū)之用;或者與另一分區(qū)共享,使得底層處理器資源潛在地可用于另一分區(qū)。
[0048]輸入/輸出子系統(tǒng)110 (僅描述了其一部分)提供到I/O設(shè)備的連接。在z/Architecture?的一個(gè)特定例子中,I/O子系統(tǒng)包括信道子系統(tǒng),其指引I/O設(shè)備與主存儲(chǔ)器之間的信息流。然而,I/O子系統(tǒng)可以是除信道子系統(tǒng)之外的。
[0049]信道子系統(tǒng)在管理到或來(lái)自I/O設(shè)備的信息流時(shí)使用一個(gè)或多個(gè)信道路徑作為通信鏈路。在信道子系統(tǒng)內(nèi)的是子信道。
[0050]一個(gè)子信道被提供為用于且專(zhuān)用于信道子系統(tǒng)可訪問(wèn)的每個(gè)I/O設(shè)備。每個(gè)子信道包含用于關(guān)于關(guān)聯(lián)I/o設(shè)備及其到信道子系統(tǒng)的附件的信息的存儲(chǔ)器。該子信道還提供了用于關(guān)于I/o操作和涉及到關(guān)聯(lián)I/O設(shè)備的其他功能的信息的存儲(chǔ)器。包含在子信道中的信息可以被CPU使用I/O指令以及被信道子系統(tǒng)訪問(wèn),并且充當(dāng)任何CPU與信道子系統(tǒng)之間的關(guān)于關(guān)聯(lián)I/o設(shè)備的通信裝置。
[0051]雖然在本文中將邏輯分區(qū)環(huán)境描述為用以結(jié)合和使用本發(fā)明的一個(gè)或多個(gè)方面的一個(gè)計(jì)算環(huán)境,但其他環(huán)境也可以結(jié)合和/或使用本發(fā)明的一個(gè)或多個(gè)方面。例如,具有耦合到耦合設(shè)施(不是邏輯分區(qū)環(huán)境)的環(huán)境也可以結(jié)合和使用本發(fā)明的一個(gè)或多個(gè)方面。還可以有其他例子。
[0052]一個(gè)或多個(gè)系統(tǒng)間信道促進(jìn)了處理器與耦合設(shè)施之間的通信,無(wú)論是否在邏輯分區(qū)環(huán)境中,如圖2A中所描述的。在本文所述的例子中,通信是在邏輯分區(qū)之間。例如,執(zhí)行諸如z/OS?操作系統(tǒng)的操作系統(tǒng)204的邏輯分區(qū)200經(jīng)由至少一個(gè)系統(tǒng)間信道210來(lái)與執(zhí)行耦合設(shè)施控制代碼208的邏輯分區(qū)206通信。特別地,在一個(gè)例子中,邏輯分區(qū)200經(jīng)由發(fā)送消息(Send Message) (SMSG)協(xié)議220通過(guò)系統(tǒng)間信道與邏輯分區(qū)206通信。
[0053]在一個(gè)例子中,發(fā)送消息(Send Message )協(xié)議包括發(fā)起消息操作的發(fā)送消息(Send Message)指令。該消息操作由發(fā)送消息(Send Message)指令中的信息以及在發(fā)送消息(Send Message)指令中指定的消息操作控制。消息操作包括執(zhí)行在消息命令塊中指定的命令(例如,對(duì)于本發(fā)明的一個(gè)或多個(gè)方面而言,下文所述的開(kāi)始操作員消息(StartOperator Message)命令、讀取操作員消息(Read Operator Message)命令和/或刪除操作員消息(Delete Operator Message)命令)。此外,在操作的執(zhí)行期間,相應(yīng)信息被存儲(chǔ)在主存儲(chǔ)器中的消息響應(yīng)塊中。
[0054]參考圖2B來(lái)描述關(guān)于發(fā)送消息(Send Message)協(xié)議的其他細(xì)節(jié)。發(fā)送消息指令250具有兩個(gè)操作數(shù),包括消息操作塊(MOB)252和位于信道子系統(tǒng)256中的子信道254的名稱(chēng)。消息操作塊包括例如指向消息命令塊264/消息響應(yīng)塊266對(duì)的消息命令塊地址258。存在位于主存儲(chǔ)器中的256字節(jié)緩沖器。消息操作塊252還包括指向消息緩沖器地址列表268的消息緩沖器地址列表(MBAL)地址260。MBAL列表是例如從I一 16的可變長(zhǎng)度列表。其包括指定一個(gè)或多個(gè)消息緩沖器272的一個(gè)或多個(gè)消息緩沖器地址字(MBAW)268。該緩沖器可以是用于到耦合設(shè)施206的寫(xiě)操作的源或來(lái)從耦合設(shè)施的讀取操作的目標(biāo)。在消息操作塊252中還包括指示MBAL列表的長(zhǎng)度的MBAL長(zhǎng)度262。并不是所有命令都必須具有消息緩沖器地址列表,并且因此該長(zhǎng)度可以是零。消息命令塊264包括被發(fā)送到耦合設(shè)施的參數(shù),并且當(dāng)響應(yīng)返回時(shí),其被直接存儲(chǔ)到MRB。
[0055]當(dāng)執(zhí)行發(fā)送消息(Send Message)時(shí),來(lái)自消息操作塊的參數(shù)被傳遞至CPU或信道子系統(tǒng),其請(qǐng)求用與信道子系統(tǒng)的指定子信道相關(guān)聯(lián)的耦合設(shè)施來(lái)執(zhí)行發(fā)送功能。與發(fā)送消息(Send Message)同步地或異步地執(zhí)行發(fā)送功能。
[0056]該發(fā)送功能是通過(guò)使用子信道中的信息以發(fā)現(xiàn)到耦合設(shè)施的路徑來(lái)執(zhí)行的。使用該路徑,消息操作被換送至耦合設(shè)施。例如,通過(guò)將命令信息傳遞至耦合設(shè)施、對(duì)命令進(jìn)行解碼并執(zhí)行、將指示結(jié)果的相應(yīng)信息公式化并將響應(yīng)信息存儲(chǔ)在消息響應(yīng)塊中來(lái)實(shí)現(xiàn)消息操作的執(zhí)行。
[0057]概括在發(fā)送功能的執(zhí)行期間所檢測(cè)的條件的狀態(tài)指示被置于子信道處且可用于操作系統(tǒng)。在1996年10月I日發(fā)布的Elko等人的題為“In A Multiprocessing SystemHaving A Coupling Facility, Communicating Messages Between The Processors AndThe Coupling Facility In Either A Synchronous Operation Or An AsynchronousOperation”的美國(guó)專(zhuān)利號(hào)5,561,809中描述了關(guān)于發(fā)送消息(Send Message)的附加細(xì)節(jié)。
[0058]繼續(xù)圖2A,在本例子中,耦合到邏輯分區(qū)200的是一個(gè)或多個(gè)操作系統(tǒng)控制臺(tái)230以及一個(gè)或多個(gè)測(cè)試程序232,其可以在同一邏輯分區(qū)、同一中央處理復(fù)合體但不同邏輯分區(qū)或另一系統(tǒng)內(nèi)運(yùn)行。同樣地,耦合到邏輯分區(qū)206的是至少一個(gè)耦合設(shè)施控制臺(tái)234。每個(gè)控制臺(tái)使得用戶(hù)能夠像其各自邏輯分區(qū)輸入操作員消息命令。此外,測(cè)試程序232也能夠向其各邏輯分區(qū)發(fā)布操作員消息命令。從控制臺(tái)234發(fā)布到邏輯分區(qū)206 (在本文中也稱(chēng)為耦合設(shè)施)的操作員消息命令在一個(gè)例子中被耦合設(shè)施內(nèi)的操作員消息處理器240接收,其服務(wù)于從耦合設(shè)施控制臺(tái)接收到的命令。
[0059]在本發(fā)明的一個(gè)或多個(gè)方面之前,可以直接地向耦合設(shè)施發(fā)送耦合設(shè)施操作員消息命令并接收返回的響應(yīng)的唯一遠(yuǎn)程實(shí)體是耦合設(shè)施控制臺(tái)。耦合設(shè)施操作員命令的測(cè)試要求一個(gè)人登錄到耦合設(shè)施控制臺(tái)以發(fā)布命令并檢驗(yàn)結(jié)果。諸如操作系統(tǒng)、操作系統(tǒng)控制臺(tái)、測(cè)試程序和/或其他遠(yuǎn)程系統(tǒng)的其他遠(yuǎn)程實(shí)體不能直接地訪問(wèn)耦合設(shè)施以使操作員消息命令被處理并返回結(jié)果。作為替代,任何此類(lèi)命令都必須被轉(zhuǎn)發(fā)至耦合設(shè)施控制臺(tái),并且由于某些命令不能被傳送,所以那些命令不能被耦合設(shè)施處理。由耦合設(shè)施處理的命令的任何將被返回至耦合設(shè)施控制臺(tái)并在控制臺(tái)上顯示。
[0060]根據(jù)本發(fā)明的一個(gè)或多個(gè)方面,在耦合設(shè)施處從控制臺(tái)234以及邏輯分區(qū)2009(和/或其他邏輯分區(qū)、處理器、系統(tǒng)等)接收操作員消息命令。例如,在邏輯分區(qū)200處從控制臺(tái)230和/或測(cè)試程序232 (以及其他可能的發(fā)起者)接收操作員消息命令,并且然后從邏輯分區(qū)200轉(zhuǎn)發(fā)至邏輯分區(qū)206。為了將操作員消息命令從邏輯分區(qū)200轉(zhuǎn)發(fā)至邏輯分區(qū)206,在一個(gè)例子中,通過(guò)系統(tǒng)間信道使用發(fā)送消息(Send Message)協(xié)議從邏輯分區(qū)200向邏輯分區(qū)206發(fā)送操作員消息(OM)請(qǐng)求222。該請(qǐng)求包括例如指定所請(qǐng)求的操作員消息命令的命令。耦合設(shè)施處理該請(qǐng)求并使用SMSG來(lái)發(fā)送從邏輯分區(qū)206返回至邏輯分區(qū)200的操作員消息(OM)響應(yīng)224。
[0061]由于耦合設(shè)施現(xiàn)在能夠從多個(gè)、不同的源接收操作員消息命令,包括例如耦合設(shè)施控制臺(tái)和被與之耦合的一個(gè)或多個(gè)邏輯分區(qū)(或其他處理器、系統(tǒng)等),所以在耦合設(shè)施內(nèi)提供了控制機(jī)構(gòu)以管理要處理的多個(gè)請(qǐng)求。一個(gè)此類(lèi)控制是復(fù)用器,在圖3A中描述了其示例。
[0062]如圖3A中所示,復(fù)用器300從多個(gè)源302接收操作員消息,作為例子,包括執(zhí)行操作系統(tǒng)的邏輯分區(qū)和耦合設(shè)施控制臺(tái)。特別地,在一個(gè)例子中,復(fù)用器使用SMSG經(jīng)由開(kāi)始操作員消息(Start Operator Message)命令直接地從稱(chēng)合設(shè)施控制臺(tái)且直接地從邏輯分區(qū)接收操作員消息命令。復(fù)用器位于耦合設(shè)施內(nèi)且耦合到操作員消息處理器240。因此,從耦合設(shè)施控制臺(tái)發(fā)布的操作員消息命令現(xiàn)在被轉(zhuǎn)發(fā)至復(fù)用器,其指引那些命令到操作員消息處理器的轉(zhuǎn)發(fā)。同樣地,從邏輯分區(qū)(或其他遠(yuǎn)程實(shí)體)接收到的操作員消息命令也被輸入到復(fù)用器300。此外,與操作員消息命令(例如,讀取操作員消息(Read OperatorMessage)和刪除操作員消息(Delete Operator Message))的處理相關(guān)聯(lián)的邏輯分區(qū)所發(fā)布的其他命令也被輸入到復(fù)用器300。因此,為了方便起見(jiàn),包括操作員消息命令的命令以及與之相關(guān)聯(lián)的其他操作在本文中被稱(chēng)為SMSG命令。復(fù)用器將接收到的命令(即,來(lái)自耦合設(shè)施控制臺(tái)的操作員消息命令和SMSG命令)指引到操作員消息處理器。
[0063]參考圖3B來(lái)描述復(fù)用器用來(lái)控制命令的選擇以由操作員消息處理的邏輯的一個(gè)實(shí)施例。最初,復(fù)用器是空閑的,等待接收命令,步驟350。如果不存在命令,詢(xún)問(wèn)352,則復(fù)用器保持空閑,步驟350。否則,如果接收到至少一個(gè)命令,則命令中的一個(gè)被發(fā)送到操作員消息處理以便處理,步驟354。例如,接收到的第一命令被發(fā)送,或者如果接收到操作員消息命令和SMSG命令兩者,在本例子中,則發(fā)送SMSG命令中的一個(gè)。
[0064]操作員消息處理器處理命令,如下文進(jìn)一步所述,并且輸出結(jié)果,步驟356。如果命令來(lái)自耦合設(shè)施控制臺(tái),則結(jié)果被輸出到控制臺(tái)。然而,在本例子中,如果命令來(lái)自處理器,則結(jié)果被存儲(chǔ)在緩沖器中,如下文所述,并被提供給耦合設(shè)施控制臺(tái)。
[0065]其后,進(jìn)行關(guān)于是否存在來(lái)自除耦合設(shè)施控制臺(tái)的源之外的任何待決命令(例如,待決SMSG命令),詢(xún)問(wèn)358。如果存在至少一個(gè)待決SMSG命令,則處理器以其中選擇命令并發(fā)送到操作員消息處理器的步驟354繼續(xù)。否則,進(jìn)行檢查以查看是否存在來(lái)自耦合設(shè)施控制臺(tái)的任何待決命令,詢(xún)問(wèn)360。如果存在一個(gè)或多個(gè)待決控制臺(tái)命令,則處理器以步驟354繼續(xù)。然而,如果不存在更多的待決控制臺(tái)命令,則處理繼續(xù)至步驟350。
[0066]可以從耦合到耦合設(shè)施的一個(gè)或多個(gè)邏輯分區(qū)(S卩,從非CF邏輯分區(qū),其是不包括耦合設(shè)施控制代碼的分區(qū))接收多個(gè)命令。因此,耦合設(shè)施包括一個(gè)或多個(gè)緩沖器(在本文中稱(chēng)為操作員消息(OM)處理緩沖器)以存儲(chǔ)來(lái)自此類(lèi)分區(qū)的輸入命令。參考圖4A — 4B來(lái)描述關(guān)于緩沖器的更多細(xì)節(jié)。
[0067]參考圖4A,在一個(gè)例子中,耦合設(shè)施包括一個(gè)或多個(gè)緩沖器400。在本例子中,存在九個(gè)緩沖器,但此緩沖器數(shù)目是可配置的。每個(gè)緩沖器400具有與之相關(guān)聯(lián)的多個(gè)控制機(jī)構(gòu),如參考圖4B所述。
[0068]參考圖4B,緩沖器400包括例如:
[0069]操作員消息狀態(tài)402,其指示緩沖器的狀態(tài),包括空閑;活動(dòng)和在正在進(jìn)行中;或者活性,響應(yīng)待決,如下所述。
[0070]操作員消息令牌(OMTK) 404,其為當(dāng)開(kāi)始操作員消息過(guò)程時(shí)由操作系統(tǒng)(例如,操作系統(tǒng)控制臺(tái),其包括操作系統(tǒng)代碼,或者在邏輯分區(qū)中運(yùn)行的操作系統(tǒng)的部分)提供的值。操作員消息令牌唯一地識(shí)別操作員消息請(qǐng)求。當(dāng)操作員消息處理緩沖器是空閑的時(shí),操作員消息令牌包括零。此令牌被用來(lái)識(shí)別緩沖器,一旦其被選擇。
[0071]操作員消息定時(shí)器(0MT)406,其為在開(kāi)始操作員消息請(qǐng)求時(shí)設(shè)定的日時(shí)值。其被設(shè)置成日時(shí)鐘的當(dāng)前值。操作員消息定時(shí)器被用來(lái)確定操作員消息已經(jīng)活動(dòng)的時(shí)間長(zhǎng)度。當(dāng)操作員處理緩沖器是空閑的時(shí),操作員消息定時(shí)器包含零。
[0072]操作員消息請(qǐng)求長(zhǎng)度(OMREQL) 408,其為包含OM請(qǐng)求(例如,操作員消息命令)的以字節(jié)為單位的長(zhǎng)度。當(dāng)OM處理緩沖器是空閑的時(shí),OMREQL對(duì)象的值是零。
[0073]操作員消息響應(yīng)長(zhǎng)度(OMRESL) 410,其為包含OM響應(yīng)的以字節(jié)為單位的長(zhǎng)度的值。當(dāng)OM處理緩沖器是空閑的時(shí)或者當(dāng)OM處理緩沖器是活動(dòng)的且正在處理時(shí),OMRESL對(duì)象的值是零。
[0074]操作員消息請(qǐng)求數(shù)據(jù)(OMREQD) 412,其包括由開(kāi)始操作員消息(Start OperatorMessage)命令(下文所述)傳遞至稱(chēng)合設(shè)施的OM請(qǐng)求的內(nèi)容。當(dāng)OM處理緩沖器是空閑的時(shí),OM請(qǐng)求數(shù)據(jù)的內(nèi)容是未定義的。
[0075]操作員消息響應(yīng)數(shù)據(jù)(OMRESD) 414,其包括操作員消息命令的結(jié)果。當(dāng)操作員消息處理緩沖器是空閑的時(shí),或者當(dāng)操作員消息處理緩沖器是活動(dòng)的且正在處理時(shí),OM響應(yīng)數(shù)據(jù)的內(nèi)容是未定義的。
[0076]如上所述,每個(gè)緩沖器具有與之相關(guān)聯(lián)的各種狀態(tài)。參考圖5,最初,緩沖器處于空閑狀態(tài)500。這指示其可用于開(kāi)始消息。響應(yīng)于開(kāi)始操作員消息(Start Operator Message)命令,緩沖器過(guò)渡至活動(dòng)和正在進(jìn)行中狀態(tài)502,其指示操作員消息命令正在被耦合設(shè)施處理。特別地,操作員消息處理器240在后臺(tái)中處理該請(qǐng)求,包括操作員消息命令,并提供響應(yīng)。響應(yīng)于生成響應(yīng),緩沖器被置于活動(dòng),響應(yīng)待決狀態(tài)504。在這里,查詢(xún)緩沖器的讀取操作能夠訪問(wèn)緩沖器并讀出響應(yīng)。
[0077]其后,可以經(jīng)由例如耦合設(shè)施(B卩,操作員消息處理器)所識(shí)別的超時(shí)或者明確地由刪除操作員消息(Delete Operator Message)或開(kāi)始操作員消息(Start OperatorMessage)使緩沖器返回至空閑狀態(tài)。下面描述關(guān)于緩沖器及其處理的更多細(xì)節(jié)。
[0078]操作換消息(OM)處理緩沖器是包含與經(jīng)由開(kāi)始操作員消息(Start OperatorMessage) (SOM)命令發(fā)送的操作員消息命令的處理有關(guān)的信息的耦合設(shè)施存儲(chǔ)器的區(qū)域。OM處理緩沖器是從不可用于結(jié)構(gòu)分配的耦合設(shè)施存儲(chǔ)器的區(qū)域分配的。
[0079]OM處理緩沖器是活動(dòng)的或空閑的。當(dāng)空閑時(shí),其可用于由開(kāi)始操作員消息(StartOperator Message) (SOM)命令選擇。當(dāng)活動(dòng)時(shí),操作員消息過(guò)程已經(jīng)開(kāi)始且尚未被刪除。如果操作員消息響應(yīng)是可用的,則緩沖器狀態(tài)是活動(dòng)的,響應(yīng)待決。否則,緩沖器狀態(tài)是活動(dòng)的且正在處理。
[0080]刪除具有響應(yīng)待決的活動(dòng)操作員消息過(guò)程將與OM處理緩沖器相關(guān)聯(lián)的對(duì)象重置并將緩沖器置于空閑狀態(tài)(也稱(chēng)為將OM處理緩沖器重置)。
[0081]存在能夠刪除活動(dòng)操作員消息過(guò)程的三個(gè)方式:
[0082]1.執(zhí)行刪除操作員消息(Delete Operator Message)命令,其指定與OM令牌對(duì)象匹配的OM令牌,并且OM處理緩沖器是活動(dòng)的,響應(yīng)待決。
[0083]2.操作員消息過(guò)程已經(jīng)活動(dòng)的時(shí)間長(zhǎng)度超過(guò)OM超時(shí)控制的值,并且OM處理緩沖器是活動(dòng)的,響應(yīng)待決。這可以被內(nèi)部I禹合設(shè)施過(guò)程或被開(kāi)始操作員消息(Start OperatorMessage)命令檢測(cè)到。
[0084]3.執(zhí)行開(kāi)始操作員消息(Start Operator Message)命令,其指定與OM令牌對(duì)象匹配的OM令牌,并且OM處理緩沖器是活動(dòng)的,響應(yīng)待決,并且所有消息緩沖器都是忙碌的,并且至少一個(gè)具有超時(shí)。
[0085]時(shí)間的滯后可以在OM處理緩沖器超時(shí)的時(shí)間和其被檢測(cè)為超時(shí)并重置成空閑狀態(tài)時(shí)之間發(fā)生。在這種情況下,OM處理緩沖器仍是活動(dòng)的,響應(yīng)待決,直至OM請(qǐng)求被刪除。[0086]處理OM請(qǐng)求是作為后臺(tái)操作執(zhí)行的。當(dāng)開(kāi)始操作員消息(Start OperatorMessage)命令成功地完成時(shí),發(fā)起后臺(tái)過(guò)程。后臺(tái)過(guò)程生成OM響應(yīng)數(shù)據(jù),將響應(yīng)數(shù)據(jù)存儲(chǔ)在OMRESD對(duì)象中,并將響應(yīng)長(zhǎng)度存儲(chǔ)在OMRESL對(duì)象中。其然后將OM處理緩沖器的狀態(tài)變成活動(dòng)的,響應(yīng)待決。
[0087]下面描述關(guān)于緩沖器處理且特別是操作員消息(Operator Message)命令的更多細(xì)節(jié)。然而,在該描述之前,描述其他對(duì)象和操作數(shù)以幫助理解本發(fā)明的一個(gè)或多個(gè)方面。
[0088]作為示例,耦合設(shè)施包括用來(lái)處理操作員消息命令的許多全局對(duì)象。這些對(duì)象包括例如:
[0089]固定全局控制一例如,操作員消息處理緩沖器計(jì)數(shù)(0MPBC),其為模型相關(guān)值,執(zhí)行耦合設(shè)施所支持的OM處理緩沖器的數(shù)目;
[0090]程序可修改全局控制一例如,操作員消息處理緩沖器(0ΜΡΒ),以及操作員消息超時(shí)控制(0MT0C),其為確定操作員消息與OM處理緩沖器相關(guān)聯(lián)的以秒為單位的最大時(shí)間長(zhǎng)度的值。如果操作員消息在超過(guò)超時(shí)值之前尚未被明確地刪除,則操作員消息被耦合設(shè)施刪除,并且OM處理緩沖器被置于空閑狀態(tài)。在一個(gè)例子中,默認(rèn)值是300 ;以及
[0091]設(shè)施屬性(FACA) —例如,操作員消息設(shè)施指示符,其為指定用于處理操作員消息命令的本文所述設(shè)施是否得到耦合設(shè)施的支持的值。
[0092]此外,耦合設(shè)施包括在處理操作員消息命令中所使用的多個(gè)全局操作數(shù)。在一個(gè)例子中,這些操作數(shù)包括:
[0093]操作員消息(OM)請(qǐng)求(0MREQ):可變長(zhǎng)度字節(jié)串,具有預(yù)先指定數(shù)目的字節(jié)(例如,192字節(jié))的最大長(zhǎng)度,其包括要處理的操作員消息命令。該長(zhǎng)度由OM請(qǐng)求長(zhǎng)度指定。
[0094]操作員消息(OM)響應(yīng)(OMRES):可變長(zhǎng)度字節(jié)串,具有預(yù)定義數(shù)目的字節(jié)(例如,4096字節(jié))的最大長(zhǎng)度。該長(zhǎng)度由OM響應(yīng)長(zhǎng)度指定。
[0095]操作員消息(OM)超時(shí)控制(0MT0C):確定操作員消息與OM處理緩沖器相關(guān)聯(lián)的以秒為單位的最大時(shí)間長(zhǎng)度的值。作為例子,有效值的范圍為從5至300。忽視此操作數(shù),除非更新OMTOC指示符是有效的,并被設(shè)置成指示要更新OM超時(shí)控制的值。
[0096]操作員消息(OM)令牌(OMTK):唯一地識(shí)別操作員消息過(guò)程的值。
[0097]更新OMTOC指示符(UOMTCI):指示是否應(yīng)更新操作員消息超時(shí)控制的值。其具有以下編碼,作為例子:不更新OM超時(shí)控制;更新OM超時(shí)控制。
[0098]根據(jù)本發(fā)明的一個(gè)或多個(gè)方面,能夠?qū)⒉僮鲉T消息命令從耦合設(shè)施控制臺(tái)發(fā)送到耦合設(shè)施以及耦合到耦合設(shè)施的邏輯分區(qū)或其他系統(tǒng)處理器等。參考圖6來(lái)描述與從除耦合設(shè)施控制臺(tái)之外的源向耦合設(shè)施發(fā)送操作員消息命令相關(guān)聯(lián)的處理。
[0099]最初,由發(fā)起者輸入或生成命令,作為例子,諸如操作系統(tǒng)控制臺(tái)或測(cè)試程序,步驟600。響應(yīng)于此,操作系統(tǒng)(例如,在控制臺(tái)上執(zhí)行或執(zhí)行測(cè)試程序的部分)生成操作員消息令牌,步驟602。在一個(gè)例子中,通過(guò)將系統(tǒng)標(biāo)識(shí)符與日時(shí)鐘值串聯(lián)來(lái)生成令牌。其后,發(fā)起者發(fā)布包括令牌的開(kāi)始操作員消息(Start Operator Message) (SOM)請(qǐng)求以及所請(qǐng)求的操作員消息命令,步驟604。開(kāi)始操作員消息(Start Operator Message)請(qǐng)求被發(fā)送到耦合到發(fā)起者的邏輯分區(qū)。
[0100]在邏輯分區(qū)處,操作系統(tǒng)通過(guò)將包括令牌和所請(qǐng)求操作員消息命令的開(kāi)始請(qǐng)求放置在開(kāi)始操作員消息(start Operator Message)命令的消息命令塊中來(lái)創(chuàng)建開(kāi)始操作員消息(Start Operator Message)命令。然后經(jīng)由SMSG命令將消息命令塊從操作系統(tǒng)發(fā)送到耦合設(shè)施。復(fù)用器接收SMSG命令并及時(shí)地將其轉(zhuǎn)發(fā)至操作員消息處理器。操作員消息處理器然后處理該命令,如下所述。作為處理的一部分,生成響應(yīng)。
[0101]對(duì)開(kāi)始操作員消息(Start Operator Message)命令的響應(yīng)被轉(zhuǎn)發(fā)至SOM的發(fā)起者。例如,響應(yīng)被包括在經(jīng)由SMSG轉(zhuǎn)發(fā)至邏輯分區(qū)的消息響應(yīng)塊中。然后,從邏輯分區(qū),響應(yīng)被轉(zhuǎn)發(fā)至發(fā)起者。
[0102]發(fā)起者(例如,操作系統(tǒng)控制臺(tái)、測(cè)試程序)接收響應(yīng)并檢查響應(yīng)代碼的值,詢(xún)問(wèn)606。如果響應(yīng)代碼指示所有緩沖器都已是活動(dòng)的,并且因此不可用,則處理返回至步驟604。然而,如果相應(yīng)代碼指示操作員消息已經(jīng)開(kāi)始,則處理以步驟610繼續(xù)。否則,發(fā)布錯(cuò)誤消息,步驟608。
[0103]在步驟610處,由發(fā)起者讀取操作員消息(Read Operator Message)命令以讀取緩沖器以獲得由I禹合設(shè)施響應(yīng)于處理開(kāi)始操作員消息(start Operator Message)中的操作員消息命令而提供的響應(yīng)。例如,在邏輯分區(qū)(例如,操作系統(tǒng))處接收由發(fā)起者發(fā)布的讀取操作員消息(Read Operator Message)請(qǐng)求,其創(chuàng)建讀取操作員消息(Read OperatorMessage)命令并經(jīng)由SMSG將其從操作系統(tǒng)轉(zhuǎn)發(fā)至耦合設(shè)施。該耦合設(shè)施和特別地復(fù)用器接收SMSG命令并隨后將其轉(zhuǎn)發(fā)至操作員消息處理器。操作員消息處理器如下所述地處理讀取命令并發(fā)送響應(yīng)代碼。響應(yīng)代碼最終被返回至發(fā)起者,如上所述。檢查響應(yīng)代碼,詢(xún)問(wèn)612,并且如果響應(yīng)指示OM響應(yīng)不可用,則處理返回至步驟610。然而,如果響應(yīng)代碼指示OM響應(yīng)是可用的,則讀取緩沖器以獲得所請(qǐng)求操作員消息命令的結(jié)果。在一個(gè)實(shí)施例中,處理然后以步驟616繼續(xù)。否則,發(fā)布錯(cuò)誤消息,步驟614。
[0104]在步驟616處,由發(fā)起者發(fā)布刪除操作員消息請(qǐng)求并在邏輯分區(qū)處接收。操作系統(tǒng)生成刪除操作員消息(Delete Operator Message)命令并經(jīng)由SMSG將其發(fā)送到稱(chēng)合設(shè)施,如上所述。由操作員消息處理器處理刪除操作員消息(Delete Operator Message)命令,如下所述,并且向發(fā)起者返回響應(yīng)。發(fā)起者檢查對(duì)刪除操作員消息(Delete OperatorMessage)命令的響應(yīng)代碼,詢(xún)問(wèn)618。如果響應(yīng)代碼指示操作員消息被刪除,則向發(fā)布者提供OM響應(yīng),步驟620。否則,發(fā)布錯(cuò)誤消息,步驟622。
[0105]如上文所指示的,存在根據(jù)本發(fā)明的一個(gè)或多個(gè)方面而使用的各種消息命令。一個(gè)此列命令是開(kāi)始操作員消息(Start Operator Message)命令,參考圖7A—7B來(lái)描述其實(shí)施例。
[0106]在一個(gè)例子中,通過(guò)例如z/OS?控制臺(tái)或測(cè)試程序來(lái)發(fā)起操作員消息命令。其流入z/OS?邏輯分區(qū)并被通過(guò)開(kāi)始操作員消息(start Operator Message)命令中的發(fā)送消息(Send Message)被發(fā)送到耦合設(shè)施。參考圖7A來(lái)描述此處理的一個(gè)實(shí)施例。
[0107]如上所述,發(fā)送消息(Send Message)指令250包括消息操作塊252和子信道254的名稱(chēng)。然而,在這種情況下,對(duì)于開(kāi)始操作員消息(Start Operator Message)而言,消息操作塊僅包括消息命令塊地址258,其指向MCB264/MRB266。對(duì)于此操作而言,不存在消息塊。呈現(xiàn)給稱(chēng)合設(shè)施的消息命令塊包括開(kāi)始操作員消息(Start Operator Message)MCB780,其具有例如開(kāi)始操作員消息(Start Operator Message)請(qǐng)求參數(shù)782和指定所請(qǐng)求的操作員命令的操作員消息請(qǐng)求784。返回的響應(yīng)是開(kāi)始操作員消息MRB790,其包括具有響應(yīng)代碼的開(kāi)始操作員消息(Start Operator Message)響應(yīng)參數(shù)792。[0108]在一個(gè)例子中,開(kāi)始操作員消息(Start Operator Message)請(qǐng)求參數(shù)包括令牌、請(qǐng)求以及請(qǐng)求長(zhǎng)度。耦合設(shè)施和特別地操作員消息處理器經(jīng)由復(fù)用器接收SMSG命令塊并開(kāi)始處理開(kāi)始操作員消息(Start Operator Message)命令,如參考圖7B所述。
[0109]最初,操作員消息處理器掃描操作消息緩沖器,尋找空閑緩沖器(例如,OMTK具有零),步驟700。進(jìn)行關(guān)于是否存在任何空閑緩沖器的確定,詢(xún)問(wèn)702。如果存在空閑緩沖器,則選擇空閑緩沖器(例如,第一),步驟704。其后,將操作員消息令牌存儲(chǔ)在緩沖器中,步驟706。此外,將緩沖器中的操作員消息定時(shí)器設(shè)置成當(dāng)前時(shí)間,步驟708。在一個(gè)例子中,從日時(shí)鐘獲得時(shí)間。此外,將請(qǐng)求和請(qǐng)求長(zhǎng)度存儲(chǔ)在緩沖器中,步驟710,并且將緩沖器狀態(tài)設(shè)置成活動(dòng)的和正在進(jìn)行中(也稱(chēng)為活動(dòng)和處理),步驟712。返回代碼被返回操作系統(tǒng)(例如,z/OS?)指示設(shè)置了緩沖器,步驟714,并且最后到發(fā)起者。此處理與z/OS?程序同步地執(zhí)行。
[0110]返回詢(xún)問(wèn)702,如果不存在空閑緩沖器,則再一次操作操作員消息緩沖器,尋找已經(jīng)超時(shí)的活動(dòng)緩沖器,步驟720。進(jìn)行關(guān)于是否存在已經(jīng)超時(shí)的任何活動(dòng)緩沖器的確定,詢(xún)問(wèn)722。如果沒(méi)有,則提供指示不存在可用緩沖器的返回代碼,步驟724。
[0111]然而,如果存在已經(jīng)超時(shí)的任何活動(dòng)緩沖器,則選擇超時(shí)緩沖器,步驟726。在一個(gè)例子中,選擇的是第一超時(shí)緩沖器。緩沖器被設(shè)置成空閑狀態(tài),步驟728,并且處理以步驟706繼續(xù),其中緩沖器被初始化。
[0112]下面描述關(guān)于開(kāi)始操作員消息(Start Operator Message)命令的更多細(xì)節(jié)。如本文所指示的,此命令以及讀取操作員消息(Read Operator Message)命令和刪除操作員消息(Delete Operator message)命令被使用SMSG傳送至稱(chēng)合設(shè)施。SMSG從邏輯分區(qū)向稱(chēng)合設(shè)施發(fā)送包括所請(qǐng)求命令的消息。為了發(fā)送該消息,消息被包括在消息命令塊(PCB)中,并且在消息響應(yīng)開(kāi)(MRB)中包括對(duì)消息的任何響應(yīng)。
[0113]在一個(gè)例子中,用于開(kāi)始操作員消息(Start Operator Message)的消息命令塊包括:消息報(bào)頭;命令(例如,開(kāi)始操作員消息(Start Operator Message)) ;0M請(qǐng)求長(zhǎng)度;操作員消息令牌;以及操作員消息請(qǐng)求(例如,操作員消息命令)。
[0114]在操作中,將在請(qǐng)求中提供的OM令牌的值與每個(gè)OM處理緩沖器中的OM令牌對(duì)象相比較。如果OM令牌是有效的且與任何OM令牌對(duì)象不匹配,并且如果至少一個(gè)OM處理緩沖器是空閑的,則選擇空閑緩沖器。如果OM處理緩沖器處于空閑狀態(tài)且至少OM處理緩沖器是活動(dòng)的,響應(yīng)待決且已超過(guò)了超時(shí)值,則選擇超時(shí)緩沖器并重置成空閑狀態(tài)。
[0115]一旦選擇了空閑緩沖器,則將OM令牌放置在OMTK對(duì)象中,將0M0請(qǐng)求放置在OMREQD對(duì)象中,將OM請(qǐng)求長(zhǎng)度放置在OMREQL對(duì)象中,將OM定時(shí)器對(duì)象設(shè)置成日時(shí)鐘的值,將緩沖器置于活動(dòng)和正在處理狀態(tài),并且發(fā)起后臺(tái)過(guò)程以處理OM響應(yīng)(B卩,開(kāi)始處理所請(qǐng)求的操作員消息命令并將信息(流入,關(guān)于OM命令的結(jié)果)放置在緩沖器中)。返回代碼被返回至操作系統(tǒng),指示操作員消息已經(jīng)開(kāi)始。
[0116]如果OM令牌與用于活動(dòng)OM處理緩沖器的OM令牌對(duì)象匹配,則不發(fā)生處理。該命令完成并返回響應(yīng)代碼,指示操作員消息已經(jīng)開(kāi)始。
[0117]如果OM令牌是有效的,不與任何OM令牌對(duì)象匹配,并且所有緩沖器是活動(dòng)的且正在處理或者活動(dòng)的,響應(yīng)待決而未超過(guò)超時(shí)控制,則該命令完成并返回響應(yīng)代碼,指示沒(méi)有可用緩沖器。[0118]在消息響應(yīng)塊中返回響應(yīng),其包括例如響應(yīng)描述符和響應(yīng)代碼。
[0119]響應(yīng)于接收到指示操作員消息已經(jīng)開(kāi)始的響應(yīng),發(fā)布讀取操作員消息(ReadOperator Message)命令以獲得對(duì)所請(qǐng)求操作員消息命令的響應(yīng)。返回圖8A,經(jīng)由發(fā)送消息(Send Message)協(xié)議來(lái)發(fā)送讀取操作員消息(Read Operator Message)命令。如上所述,發(fā)送消息(Send Message)指令250包括消息操作塊252和子信道254的名稱(chēng)。對(duì)于讀取操作員消息(Read Operator Message)命令而言,消息操作塊252包括MCB地址258、MBAL地址260以及MBAL長(zhǎng)度262。對(duì)于讀取操作員消息(Read Operator Message)命令而言,MBAL長(zhǎng)度等于一且MBAL地址260指向具有一個(gè)條目的MBAL268。MBAL268指向消息緩沖器272。
[0120]MCB地址258指定MCB264/MRB266對(duì)。用于讀取操作員消息(Read OperatorMessage)命令的消息控制塊880包括讀取操作員消息(Read Operator Message)請(qǐng)求參數(shù)882 (例如,消息報(bào)頭、讀取命令、OM令牌),其被傳送至耦合設(shè)施以用于處理。響應(yīng)于處理讀取操作員消息(Read Operator Message)命令,在MRB266中返回讀取操作員消息(ReadOperator Message)響應(yīng)參數(shù)(例如,響應(yīng)代碼)。另外,返回操作員消息(OM)響應(yīng)875并放置在消息緩沖器272中。
[0121]參考圖SB來(lái)描述讀取操作員消息命令的邏輯的一個(gè)實(shí)施例。最初,在操作員消息緩沖器中掃描具有與在命令中提供的OM令牌匹配的OM令牌的緩沖器,步驟800。如果不存在具有匹配OM令牌的緩沖器,詢(xún)問(wèn)802,則返回指示未發(fā)現(xiàn)匹配令牌的響應(yīng)代碼,步驟804。
[0122]然而,如果存在具有匹配OM令牌的OM緩沖器,則進(jìn)行關(guān)于在緩沖器是否存在OM響應(yīng)待決的確定,詢(xún)問(wèn)806。如果不存在OM響應(yīng)待決,則返回指示OM響應(yīng)不可用的響應(yīng)代碼,步驟808。
[0123]返回詢(xún)問(wèn)806,如果存在OM響應(yīng)待決,則OM響應(yīng)被拷貝到由SMSG指定的數(shù)據(jù)塊(例如,位于消息緩沖器272內(nèi)),步驟810,并且響應(yīng)長(zhǎng)度被拷貝到消息響應(yīng)塊,步驟812。返回OM響應(yīng)(即,數(shù)據(jù)塊),以及指示OM響應(yīng)可用的響應(yīng)代碼,步驟814。
[0124]下面描述關(guān)于讀取操作員消息(Read Operator Message)命令的更多細(xì)節(jié)。在一個(gè)例子中,用于讀取操作員消息(Read Operator Message)的消息命令塊包括消息報(bào)頭;讀取命令;以及操作員消息令牌。
[0125]在操作中,當(dāng)提供了足夠的消息緩沖器空間(例如,緩沖器272)時(shí)(即等于或大于預(yù)先指定尺寸的緩沖空間可用),則將OM令牌的值與每個(gè)OM處理緩沖器中的OM令牌對(duì)象相比較。
[0126]如果OM令牌與用于OM處理緩沖器的OM令牌對(duì)象相比較且緩沖器是活動(dòng)的,響應(yīng)待決,則OM響應(yīng)被放置在數(shù)據(jù)塊中。返回?cái)?shù)據(jù)塊、OM請(qǐng)求、OM請(qǐng)求長(zhǎng)度、OM響應(yīng)長(zhǎng)度以及指示OM響應(yīng)可用的響應(yīng)代碼。除數(shù)據(jù)塊之外,在消息響應(yīng)塊中返回響應(yīng),其包括例如響應(yīng)描述符、響應(yīng)代碼、OM請(qǐng)求長(zhǎng)度、OM響應(yīng)長(zhǎng)度以及OM請(qǐng)求。經(jīng)由SMSG但與響應(yīng)塊分開(kāi)地返回?cái)?shù)據(jù)塊。
[0127]如果OM令牌與用于活動(dòng)且正在處理的OM處理緩沖器的OM令牌對(duì)象匹配,則不發(fā)生處理。該命令完成并向程序返回指示OM響應(yīng)不可用的響應(yīng)代碼。在響應(yīng)塊中返回響應(yīng),其包括例如響應(yīng)指示符和響應(yīng)代碼。
[0128]如果OM令牌是有效的但并不與用于活動(dòng)OM處理緩沖器的任何OM令牌對(duì)象匹配,則不發(fā)生處理。命令完成并返回指示未發(fā)現(xiàn)匹配令牌的響應(yīng)代碼。在響應(yīng)塊中返回響應(yīng),其包括例如響應(yīng)指示符和響應(yīng)代碼。
[0129]當(dāng)消息緩沖器尺寸小于預(yù)先指定尺寸時(shí),存在不足以包含數(shù)據(jù)塊的消息緩沖器空間(例如,緩沖器272)。(在這種情況下,不發(fā)生處理,命令完成并返回指示不足消息緩沖器空間的響應(yīng)代碼。在響應(yīng)塊中返回響應(yīng),其包括例如響應(yīng)指示符和響應(yīng)代碼。
[0130]在接收到響應(yīng)之后,可以進(jìn)行將緩沖器重置的判定。因此,發(fā)布刪除操作員消息(Delete Operator Message)命令。參考圖9A,如其他操作員消息命令的情況一樣,經(jīng)由發(fā)送消息(Send Message)協(xié)議向f禹合設(shè)施發(fā)送刪除操作員消息(Delete Operator Message)命令。再次地,發(fā)送消息(Send Message)指令250包括消息操作塊252和子信道254的名稱(chēng)。在這種情況下,消息操作塊包括指向MCB264/MRB266對(duì)的MCB地址258。用于刪除操作員消息(Delete Operator Message)的MCB980包括刪除操作員消息請(qǐng)求參數(shù)982(例如,消息報(bào)頭、刪除命令以及OM令牌),其被轉(zhuǎn)發(fā)至耦合設(shè)施。響應(yīng)于執(zhí)行刪除操作員消息(DeleteOperator Message)命令,在 MRB266 中返回刪除操作員消息(Delete Operator Message)MRB990,其包括刪除操作員消息(Delete Operator Message)響應(yīng)參數(shù)。
[0131]參考圖9B來(lái)描述由操作員消息處理器執(zhí)行的刪除操作員消息(Delete OperatorMessage)命令的邏輯的一個(gè)實(shí)施例。最初,在OM緩沖器中掃描具有匹配OM令牌的緩沖器,步驟900。如果不存在具有匹配OM令牌的緩沖器,詢(xún)問(wèn)902,則返回指示操作員消息被刪除的響應(yīng)代碼,步驟904。
[0132]然而,如果存在具有匹配OM令牌的緩沖器,詢(xún)問(wèn)902,則進(jìn)行關(guān)于OM響應(yīng)是否待決的進(jìn)一步確定,詢(xún)問(wèn)906。如果OM響應(yīng)不是待決的,則返回指示緩沖器是活動(dòng)的且正在處理的響應(yīng)代碼,步驟908。
[0133]如果存在OM響應(yīng)待決,詢(xún)問(wèn)906,則將OM令牌、OM定時(shí)器、請(qǐng)求長(zhǎng)度和響應(yīng)長(zhǎng)度重置,例如重置成零,步驟910。此外,將OM緩沖器狀態(tài)設(shè)置成空閑,步驟912,并且返回指示操作員消息被刪除的響應(yīng)代碼,步驟914。(在另一實(shí)施例中,將緩沖器設(shè)置成空閑狀態(tài)刪除緩沖器;并且將空閑緩沖器設(shè)置成活動(dòng)狀態(tài)創(chuàng)建新的緩沖器。)
[0134]下面描述關(guān)于刪除操作員消息(Delete Operator Message)命令的更多細(xì)節(jié)。在一個(gè)例子中,用于刪除操作員消息(Delete Operator Message)命令的消息命令塊包括消息報(bào)頭;刪除操作員消息(Delete Operator Message)命令;以及操作員消息令牌。
[0135]在操作中,將OM令牌的值與每個(gè)OM處理緩沖器中的OM令牌對(duì)象相比較。如果OM令牌與活動(dòng)OM處理緩沖器中的OM令牌對(duì)象的值匹配且緩沖器是活動(dòng)的,響應(yīng)待決,則將OM處理緩沖器中的對(duì)象重置并將緩沖器置于空閑狀態(tài)。當(dāng)緩沖器對(duì)象已被重置時(shí),命令完成并向操作系統(tǒng)返回指示操作員消息被刪除的響應(yīng)代碼。
[0136]當(dāng)OM處理緩沖器是活動(dòng)的且正在處理時(shí),不發(fā)生動(dòng)作。命令完成并返回指示緩沖器是活動(dòng)的且正在處理的響應(yīng)代碼。
[0137]當(dāng)OM令牌是有效的且不與用于任何活動(dòng)OM處理緩沖器的OM令牌對(duì)象匹配時(shí),不發(fā)生動(dòng)作。命令完成并向程序返回指示操作消息被刪除的響應(yīng)代碼。
[0138]在消息響應(yīng)塊中返回響應(yīng),其包括例如響應(yīng)描述符和響應(yīng)代碼。
[0139]上面詳細(xì)地描述了用以處理操作員消息請(qǐng)求的各種命令。在本例子中,這些命令是操作員消息(Operator Message)設(shè)施的一部分。操作員消息(Operator Message)設(shè)施包括在本文中為了完整起見(jiàn)而描述的其他命令。這些命令包括讀取設(shè)施參數(shù)(Read FacilityParameters)命令和設(shè)置設(shè)施權(quán)限(Set Facility Authority)命令。
[0140]對(duì)于讀取設(shè)施參數(shù)(Read Facility Parameters)命令而言,消息請(qǐng)求塊包括例如消息報(bào)頭和讀取設(shè)施參數(shù)(Read Facility Parameters)命令。在操作中,將稱(chēng)合設(shè)施控制的值放置在響應(yīng)操作數(shù)中,并且指示成功(如果為真的話(huà))的響應(yīng)代碼存儲(chǔ)在響應(yīng)代碼操作數(shù)中。此命令可以將許多控制置于響應(yīng)操作數(shù)中,然而,對(duì)于操作員消息設(shè)施(OperatorMessage Facility)而言,操作員消息處理器緩沖器計(jì)數(shù)被放置在OMPBC中,并且操作員消息超時(shí)控制被放置在OMTOC中。
[0141]當(dāng)響應(yīng)代碼指示返回了耦合設(shè)施控制值時(shí),返回的消息響應(yīng)塊包括例如用于操作員消息設(shè)施(Operator Message Facility)的響應(yīng)描述符、響應(yīng)代碼、OM處理器緩沖器計(jì)數(shù)以及OM超時(shí)控制。還可以返回用于其他設(shè)施的其他控制。
[0142]對(duì)于設(shè)置設(shè)施權(quán)限(Set Facility Authority)命令而言,消息請(qǐng)求塊包括例如下文所述的消息報(bào)頭、設(shè)置設(shè)施權(quán)限(Set Facility Authority)命令、OM超時(shí)控制、更新0MT0C指示符、比較權(quán)限控制和權(quán)限控制。
[0143]在操作中,將耦合設(shè)施權(quán)限控制值與在消息命令塊中接收到的比較權(quán)限(CAU)操作數(shù)相比較。當(dāng)其比較為相等時(shí),將在消息命令塊中接收到的權(quán)限(AU)操作數(shù)的值存儲(chǔ)在耦合設(shè)施權(quán)限控制中并更新耦合設(shè)施狀態(tài)。
[0144]當(dāng)耦合設(shè)施權(quán)限控制從零變成非零值時(shí),耦合設(shè)施狀態(tài)從未管理變成被管理,OM超時(shí)控制被有條件地更新,在每個(gè)消息路徑上向遠(yuǎn)程耦合設(shè)施發(fā)布activate-message-path (活動(dòng)消息路徑)命令,并且返回指示成功的響應(yīng)代碼。如果update-0m-timeout (更新OM超時(shí))指示符是一,則OM超時(shí)控制操作數(shù)被存儲(chǔ)在0MT0C對(duì)象中。否則,不對(duì)0MT0C對(duì)象進(jìn)行更新。還可以發(fā)生其他處理。
[0145]在包括例如響應(yīng)描述符和響應(yīng)代碼的消息響應(yīng)塊中返回響應(yīng)代碼。
[0146]根據(jù)本發(fā)明的一個(gè)或多個(gè)方面,提供了用于由耦合設(shè)施來(lái)處理來(lái)自多個(gè)源的操作員消息命令的操作員消息設(shè)施(Operator Message FaciIity),包括但不限于稱(chēng)合到I禹合設(shè)施的耦合設(shè)施控制臺(tái)和邏輯分區(qū)(或其他處理器、系統(tǒng)等)。設(shè)施包括例如:
[0147]*操作員消息(OM)處理緩沖器集合。每個(gè)緩沖器能夠每次處理一個(gè)操作員消息請(qǐng)求。緩沖器的數(shù)目是固定的(例如,9個(gè))且是模型相關(guān)的。
[0148]*所支持OM處理緩沖器的數(shù)目的計(jì)數(shù)器。
[0149]*到期超時(shí),稱(chēng)為OM超時(shí)控制,其額定操作員消息在其被刪除之前將在處理緩沖器中維持的時(shí)間長(zhǎng)度。用于到期超時(shí)的默認(rèn)值是例如5分鐘。其可以被設(shè)置設(shè)施權(quán)限(SetFacility Authority)命令改變。
[0150]*全局命令,允許程序訪問(wèn)操作員消息設(shè)施(Operator Message Facility):
[0151]一開(kāi)始操作員消息(Start Operator Message) (SOM)
[0152]一讀取操作員消息(Read Operator Message) (ROM)
[0153]一刪除操作員消息(Delete Operator Message) (DOM)
[0154]*后臺(tái)處理功能,其生成操作員消息響應(yīng),將響應(yīng)放置在OM處理緩沖器中,并改變緩沖器的狀態(tài)以指示響應(yīng)而用于檢索。
[0155]此設(shè)施在一方面提供用于除耦合設(shè)施控制臺(tái)之外的遠(yuǎn)程實(shí)體發(fā)布操作員消息命令以例如測(cè)試耦合設(shè)施的機(jī)構(gòu)。這允許更多的深入測(cè)試,例如在生產(chǎn)之前或者甚至在生產(chǎn)中。操作員消息命令導(dǎo)致在耦合設(shè)施上執(zhí)行動(dòng)作。此類(lèi)命令/動(dòng)作的示例包括但不限于在耦合設(shè)施上安裝一塊代碼,產(chǎn)生耦合設(shè)施的一部分的切斷,配置耦合設(shè)施,將耦合設(shè)施解除配置或管理耦合設(shè)施的一個(gè)或多個(gè)部件。也可以有其他動(dòng)作,在本文中描述了其中的某些。按照所請(qǐng)求命令,在耦合設(shè)施上執(zhí)行動(dòng)作,并且然后進(jìn)行關(guān)于動(dòng)作是否如預(yù)期的那樣執(zhí)行、引起錯(cuò)誤等的確定。通過(guò)執(zhí)行該動(dòng)作,測(cè)試耦合設(shè)施以查看耦合是否按照該動(dòng)作表現(xiàn)如預(yù)期的那樣。
[0156]在一個(gè)特定示例中,z/OS系統(tǒng)上的程序使用系統(tǒng)名和存儲(chǔ)時(shí)鐘(STCK)值來(lái)生成sysplex范圍的唯一令牌,并發(fā)布SMSG指令以向耦合設(shè)施發(fā)送CFCC操作員命令。耦合設(shè)施接受該命令并異步地處理命令。如果SMSG是成功的,則z/OS程序用緩沖器來(lái)輪詢(xún)命令完成以使用在第一 SMSG上發(fā)布的唯一令牌來(lái)包含命令響應(yīng)。當(dāng)CFCC處理命令時(shí),其向耦合設(shè)施控制臺(tái)發(fā)布消息并將消息保存到緩沖器中。當(dāng)命令完成時(shí),用來(lái)輪詢(xún)命令完成的SMSG將獲得成功返回代碼并向指定緩沖器中返回命令響應(yīng)。z/OS程序然后處理該結(jié)果并發(fā)布SMSG以將保存的命令響應(yīng)從耦合設(shè)施刪除。作為示例,程序可以是處理結(jié)果的測(cè)試用例或在控制臺(tái)上顯示結(jié)果的z/OS命令接口。
[0157]作為示例,如本文所使用的獲得包括但不限于接收、具有、提供、生成或創(chuàng)建。
[0158]所屬【技術(shù)領(lǐng)域】的技術(shù)人員知道,本發(fā)明可以實(shí)現(xiàn)為系統(tǒng)、方法或計(jì)算機(jī)程序產(chǎn)品。因此,本公開(kāi)可以具體實(shí)現(xiàn)為以下形式,即:可以是完全的硬件、也可以是完全的軟件(包括固件、駐留軟件、微代碼等),還可以是硬件和軟件結(jié)合的形式,本文一般稱(chēng)為“電路”、“模塊”或“系統(tǒng)”。此外,在一些實(shí)施例中,本發(fā)明還可以實(shí)現(xiàn)為在一個(gè)或多個(gè)計(jì)算機(jī)可讀介質(zhì)中的計(jì)算機(jī)程序產(chǎn)品的形式,該計(jì)算機(jī)可讀介質(zhì)中包含計(jì)算機(jī)可讀的程序代碼。
[0159]可以采用一個(gè)或多個(gè)計(jì)算機(jī)可讀的介質(zhì)的任意組合。計(jì)算機(jī)可讀介質(zhì)可以是計(jì)算機(jī)可讀信號(hào)介質(zhì)或者計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)。計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)例如可以是一但不限于——電、磁、光、電磁、紅外線(xiàn)、或半導(dǎo)體的系統(tǒng)、裝置或器件,或者任意以上的組合。計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)的更具體的例子(非窮舉的列表)包括:具有一個(gè)或多個(gè)導(dǎo)線(xiàn)的電連接、便攜式計(jì)算機(jī)磁盤(pán)、硬盤(pán)、隨機(jī)存取存儲(chǔ)器(RAM)、只讀存儲(chǔ)器(ROM)、可擦式可編程只讀存儲(chǔ)器(EPR0M或閃存)、光纖、便攜式緊湊磁盤(pán)只讀存儲(chǔ)器(CD-ROM)、光存儲(chǔ)器件、磁存儲(chǔ)器件、或者上述的任意合適的組合。在本文件中,計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)可以是任何包含或存儲(chǔ)程序的有形介質(zhì),該程序可以被指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結(jié)合使用。
[0160]現(xiàn)在參考圖10,在一個(gè)例子中,計(jì)算機(jī)程序產(chǎn)品1000包括,例如,一個(gè)或多個(gè)非易失性計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)1002,在其上存儲(chǔ)有計(jì)算機(jī)可讀的程序代碼裝置或邏輯1004,以提供并方便本發(fā)明的一個(gè)或多個(gè)方面。
[0161]體現(xiàn)在計(jì)算機(jī)可讀介質(zhì)上的程序代碼可以用任何適當(dāng)?shù)慕橘|(zhì)傳輸,所述介質(zhì)包括但不限于:無(wú)線(xiàn)、有線(xiàn)、光纜、RF等,或上述的任意合適的組合。
[0162]可以以一種或多種程序設(shè)計(jì)語(yǔ)言或其組合來(lái)編寫(xiě)用于執(zhí)行本發(fā)明操作的計(jì)算機(jī)程序代碼,所述程序設(shè)計(jì)語(yǔ)言包括面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言一諸如Java、Smalltalk、C++,還包括常規(guī)的過(guò)程式程序設(shè)計(jì)語(yǔ)言一諸如”C”語(yǔ)言或類(lèi)似的程序設(shè)計(jì)語(yǔ)言。程序代碼可以完全地在用戶(hù)計(jì)算機(jī)上執(zhí)行、部分地在用戶(hù)計(jì)算機(jī)上執(zhí)行、作為一個(gè)獨(dú)立的軟件包執(zhí)行、部分在用戶(hù)計(jì)算機(jī)上部分在遠(yuǎn)程計(jì)算機(jī)上執(zhí)行、或者完全在遠(yuǎn)程計(jì)算機(jī)或服務(wù)器上執(zhí)行。在涉及遠(yuǎn)程計(jì)算機(jī)的情形中,遠(yuǎn)程計(jì)算機(jī)可以通過(guò)任意種類(lèi)的網(wǎng)絡(luò)一包括局域網(wǎng)(LAN)或廣域網(wǎng)(WAN)—連接到用戶(hù)計(jì)算機(jī),或者,可以連接到外部計(jì)算機(jī)(例如利用因特網(wǎng)服務(wù)提供商來(lái)通過(guò)因特網(wǎng)連接)。
[0163]本文中將參照本發(fā)明實(shí)施例的方法、裝置(系統(tǒng))和計(jì)算機(jī)程序產(chǎn)品的流程圖和/或框圖描述本發(fā)明。應(yīng)當(dāng)理解,流程圖和/或框圖的每個(gè)方框以及流程圖和/或框圖中各方框的組合,都可以由計(jì)算機(jī)程序指令實(shí)現(xiàn)。這些計(jì)算機(jī)程序指令可以提供給通用計(jì)算機(jī)、專(zhuān)用計(jì)算機(jī)或其它可編程數(shù)據(jù)處理裝置的處理器,從而生產(chǎn)出一種機(jī)器,這些計(jì)算機(jī)程序指令通過(guò)計(jì)算機(jī)或其它可編程數(shù)據(jù)處理裝置執(zhí)行,產(chǎn)生了實(shí)現(xiàn)流程圖和/或框圖中的方框中規(guī)定的功能/操作的裝置。
[0164]也可以把這些計(jì)算機(jī)程序指令存儲(chǔ)在能使得計(jì)算機(jī)或其它可編程數(shù)據(jù)處理裝置以特定方式工作的計(jì)算機(jī)可讀介質(zhì)中,這樣,存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)中的指令就產(chǎn)生出一個(gè)包括實(shí)現(xiàn)流程圖和/或框圖中的方框中規(guī)定的功能/操作的指令裝置(instructionmeans)的制造品(manufacture)。
[0165]也可以把計(jì)算機(jī)程序指令加載到計(jì)算機(jī)、其它可編程數(shù)據(jù)處理裝置、或其它設(shè)備上,使得在計(jì)算機(jī)、其它可編程數(shù)據(jù)處理裝置或其它設(shè)備上執(zhí)行一系列操作步驟,以產(chǎn)生計(jì)算機(jī)實(shí)現(xiàn)的過(guò)程,從而使得在計(jì)算機(jī)或其它可編程裝置上執(zhí)行的指令能夠提供實(shí)現(xiàn)流程圖和/或框圖中的方框中規(guī)定的功能/操作的過(guò)程。
[0166]附圖中的流程圖和框圖顯示了根據(jù)本發(fā)明的多個(gè)實(shí)施例的系統(tǒng)、方法和計(jì)算機(jī)程序產(chǎn)品的可能實(shí)現(xiàn)的體系架構(gòu)、功能和操作。在這點(diǎn)上,流程圖或框圖中的每個(gè)方框可以代表一個(gè)模塊、程序段或代碼的一部分,所述模塊、程序段或代碼的一部分包含一個(gè)或多個(gè)用于實(shí)現(xiàn)規(guī)定的邏輯功能的可執(zhí)行指令。也應(yīng)當(dāng)注意,在有些作為替換的實(shí)現(xiàn)中,方框中所標(biāo)注的功能也可以以不同于附圖中所標(biāo)注的順序發(fā)生。例如,兩個(gè)連續(xù)的方框?qū)嶋H上可以基本并行地執(zhí)行,它們有時(shí)也可以按相反的順序執(zhí)行,這依所涉及的功能而定。也要注意的是,框圖和/或流程圖中的每個(gè)方框、以及框圖和/或流程圖中的方框的組合,可以用執(zhí)行規(guī)定的功能或操作的專(zhuān)用的基于硬件的系統(tǒng)來(lái)實(shí)現(xiàn),或者可以用專(zhuān)用硬件與計(jì)算機(jī)指令的組合來(lái)實(shí)現(xiàn)。
[0167]除了上述,本發(fā)明的一個(gè)或多個(gè)方面可由服務(wù)提供商提供、許諾(offer)、部署、管理、服務(wù)等,該服務(wù)提供商提供用戶(hù)環(huán)境的管理。例如,服務(wù)提供商可創(chuàng)建、維持、支持等計(jì)算機(jī)代碼和/或計(jì)算機(jī)基礎(chǔ)設(shè)施,其為一個(gè)或多個(gè)用戶(hù)執(zhí)行本發(fā)明的一個(gè)或多個(gè)方面。反過(guò)來(lái),服務(wù)提供商可例如根據(jù)預(yù)訂和/或費(fèi)用協(xié)議從用戶(hù)接受付費(fèi)。額外地或可替換地,月艮務(wù)提供商可從向一個(gè)或多個(gè)第三方銷(xiāo)售廣告內(nèi)容接受付費(fèi)。
[0168]在本發(fā)明的一個(gè)方面,可部署用于執(zhí)行本發(fā)明的一個(gè)或多個(gè)方面的應(yīng)用。作為一個(gè)例子,部署應(yīng)用包括提供計(jì)算機(jī)基礎(chǔ)設(shè)施,其可操作以執(zhí)行本發(fā)明的一個(gè)或多個(gè)方面。
[0169]作為本發(fā)明的又一個(gè)方面,可部署計(jì)算基礎(chǔ)設(shè)施,其包括將計(jì)算機(jī)可讀代碼集成到計(jì)算機(jī)系統(tǒng),其中與計(jì)算系統(tǒng)結(jié)合的代碼能夠執(zhí)行本發(fā)明的一個(gè)或多個(gè)方面。
[0170]作為本發(fā)明的再一個(gè)方面,可提供用于集成計(jì)算基礎(chǔ)設(shè)施包括將計(jì)算機(jī)可讀碼集成到計(jì)算機(jī)系統(tǒng)的過(guò)程。計(jì)算機(jī)系統(tǒng)包括計(jì)算機(jī)可讀介質(zhì),其中計(jì)算機(jī)介質(zhì)包括本發(fā)明的一個(gè)或多個(gè)方面。與計(jì)算機(jī)系統(tǒng)結(jié)合的代碼能夠執(zhí)行本發(fā)明的一個(gè)或多個(gè)方面。
[0171]雖然上文描述了各種實(shí)施例,但這些僅僅是例子。例如,其他架構(gòu)的計(jì)算環(huán)境可以結(jié)合并使用本發(fā)明的一個(gè)或多個(gè)方面。作為例子,除zl96服務(wù)器之外的服務(wù)器可以包括、使用和/或受益于本發(fā)明的一個(gè)或多個(gè)方面。此外,除邏輯分區(qū)環(huán)境之外的環(huán)境可以結(jié)合和使用本發(fā)明的一個(gè)或多個(gè)方面。另外,可以使用更多、更少或其他操作員消息命令和/或其他命令。此外,可以使用除SMSG之外的傳輸。此外,復(fù)用器可以使用其他邏輯來(lái)選擇要處理的下一命令。可以有許多其他變化。
[0172]而且,其他類(lèi)型的計(jì)算環(huán)境可受益于本發(fā)明的一個(gè)或多個(gè)方面。作為例子,可使用適于存儲(chǔ)和/或執(zhí)行程序代碼的數(shù)據(jù)處理系統(tǒng),其包括至少兩個(gè)通過(guò)系統(tǒng)總線(xiàn)直接或間接耦合到存儲(chǔ)元件的處理器。存儲(chǔ)器元件包括,例如,在程序代碼的實(shí)際執(zhí)行期間使用的本地存儲(chǔ)器、大容量存儲(chǔ)器以及高速緩沖存儲(chǔ)器,其提供至少一些程序代碼的臨時(shí)存儲(chǔ),以便減少在執(zhí)行期間必須從大容量存儲(chǔ)器取回代碼的次數(shù)。
[0173]輸入/輸出或I/O設(shè)備(包括但不限于鍵盤(pán)、顯示器、指點(diǎn)設(shè)備、DASD、磁帶、⑶、DVD、拇指驅(qū)動(dòng)器(thumb drive)以及其他的存儲(chǔ)介質(zhì)等)可直接或通過(guò)介于其間的I/O控制器耦合到系統(tǒng)。網(wǎng)絡(luò)適配器也可耦合到系統(tǒng)以使得數(shù)據(jù)處理系統(tǒng)能夠通過(guò)介于其間的私有或公共網(wǎng)絡(luò)而耦合到其他的數(shù)據(jù)處理系統(tǒng)或遠(yuǎn)程打印機(jī)或存儲(chǔ)設(shè)備。調(diào)制解調(diào)器、電纜調(diào)制解調(diào)器和以太網(wǎng)卡僅是一些可獲得的網(wǎng)絡(luò)適配器類(lèi)型。
[0174]參考圖11,其描述了實(shí)施本發(fā)明的一個(gè)或多個(gè)方面的主機(jī)計(jì)算機(jī)系統(tǒng)5000的代表性組件。代表性主機(jī)計(jì)算機(jī)5000包括與計(jì)算機(jī)存儲(chǔ)器(即,中央存儲(chǔ)器)5002通信的一個(gè)或多個(gè)CPU5001,以及到存儲(chǔ)介質(zhì)設(shè)備5011和網(wǎng)絡(luò)5010的I/O接口,以用于與其他計(jì)算機(jī)或SAN等通信。CPU5001符合具有架構(gòu)指令集和架構(gòu)功能的架構(gòu)。CPU5001可具有動(dòng)態(tài)地址轉(zhuǎn)換(DAT)5003,其用于將程序地址(虛擬地址)轉(zhuǎn)變?yōu)榇鎯?chǔ)器的真實(shí)地址。DAT典型地包括用于高速緩存轉(zhuǎn)換的轉(zhuǎn)換后備緩沖器(TLB)5007,這樣稍后對(duì)計(jì)算機(jī)存儲(chǔ)器5002塊的訪問(wèn)不需要地址轉(zhuǎn)換的延遲。典型地,高速緩存5009被使用在計(jì)算機(jī)存儲(chǔ)器5002和處理器5001之間。高速緩存5009可以是分層的,具有可被多于一個(gè)的CPU獲得的大高速緩存,以及大高速緩存和每個(gè)CPU之間的較小、較快(較低級(jí))的高速緩存。在一些實(shí)施方式中,較低級(jí)的高速緩存被拆分以為指令獲取和數(shù)據(jù)訪問(wèn)提供單獨(dú)的低級(jí)高速緩存。在一個(gè)實(shí)施例中,由指令提取單元5004經(jīng)由高速緩存5009從存儲(chǔ)器5002獲取指令。指令在指令解碼單元5006中被解碼,且(在一些實(shí)施例中與其他指令一起)被發(fā)送到一個(gè)或多個(gè)指令執(zhí)行單元5008。典型地,使用若干執(zhí)行單元5008,例如算術(shù)執(zhí)行單元、浮點(diǎn)執(zhí)行單元和分支指令執(zhí)行單元。指令被執(zhí)行單元執(zhí)行,如需要,從指令指定的寄存器或存儲(chǔ)器訪問(wèn)操作數(shù)。如果將從存儲(chǔ)器5002訪問(wèn)(加載或存儲(chǔ))操作數(shù),加載/存儲(chǔ)單元5005典型地在被執(zhí)行的指令的控制下處理該訪問(wèn)。指令可在硬件電路或內(nèi)部微代碼(固件)中或其組合中被執(zhí)行。
[0175]需注意的是,計(jì)算機(jī)系統(tǒng)包括本地(或主)存儲(chǔ)器中的信息,以及尋址、保護(hù)以及引用和改變記錄。尋址的一些方面包括地址格式、地址空間的概念、地址的各種類(lèi)型和其中一種類(lèi)型的地址被轉(zhuǎn)換為另一種類(lèi)型的地址的方式。一些主存儲(chǔ)器包括永久分配的存儲(chǔ)位置。主存儲(chǔ)器向系統(tǒng)提供直接可被尋址的快速訪問(wèn)的數(shù)據(jù)存儲(chǔ)。數(shù)據(jù)和程序在可被處理之前都將(從輸入設(shè)備)被加載到主存儲(chǔ)器。
[0176]主存儲(chǔ)器可包括一個(gè)或多個(gè)更小、更快速訪問(wèn)的緩沖存儲(chǔ)器,有時(shí)候被稱(chēng)為高速緩存。高速緩存典型地與CPU或I/O處理器物理地關(guān)聯(lián)。物理結(jié)構(gòu)以及不同存儲(chǔ)介質(zhì)的使用的效果,除了在性能上,通常不會(huì)被程序觀察到。[0177]可維護(hù)用于指令和數(shù)據(jù)操作數(shù)的單獨(dú)的高速緩存。高速緩存中的信息可被維護(hù)為相鄰的字節(jié),所述字節(jié)位于被稱(chēng)為高速緩存塊或高速緩存線(xiàn)(或簡(jiǎn)稱(chēng)為線(xiàn))的整數(shù)界限上。模型可提供EXTRACT CACHE ATTRIBUTE(提取高速緩存屬性)指令,其返回高速緩存線(xiàn)的字節(jié)大小。模型也可提供PREFETCH DATA (預(yù)取數(shù)據(jù))和PREFETCH DATA RELATIVE LONG (預(yù)取較長(zhǎng)數(shù)據(jù))指令,其實(shí)現(xiàn)存儲(chǔ)到數(shù)據(jù)或指令高速緩存中的預(yù)取,或數(shù)據(jù)從高速緩存的釋放。
[0178]存儲(chǔ)器被視為位的長(zhǎng)水平串。對(duì)于大部分操作來(lái)說(shuō),以從左到右的順序進(jìn)行對(duì)存儲(chǔ)器的訪問(wèn)。位串被細(xì)分為八個(gè)位的單位。八位單位被稱(chēng)為字節(jié),其是所有信息格式的基本構(gòu)件。存儲(chǔ)器中的每個(gè)字節(jié)位置由唯一的非負(fù)整數(shù)標(biāo)識(shí),該非負(fù)整數(shù)是該字節(jié)位置的地址,或簡(jiǎn)稱(chēng)為字節(jié)地址。相鄰的字節(jié)位置具有連續(xù)的地址,在左邊從O開(kāi)始且以從左到右的順序進(jìn)行。地址是無(wú)符號(hào)二進(jìn)制整數(shù),且是24、31或64位。
[0179]信息一次一個(gè)字節(jié)或一組字節(jié)地在存儲(chǔ)器和CPU或通道子系統(tǒng)之間傳遞。除非另有指定,例如在z/Architecture?中,存儲(chǔ)器中的一組字節(jié)由該組的最左邊的字節(jié)尋址。組中的字節(jié)的數(shù)量可由將被執(zhí)行的操作暗示或顯式地指定。當(dāng)在CPU操作中使用時(shí),一組字節(jié)被稱(chēng)為字段。在字節(jié)的每個(gè)組內(nèi),例如在ζ/Architecture?中,位以從左到右的順序被編號(hào)。在z/Architecture?中,最左邊的位有時(shí)候被稱(chēng)為“高階”位且最右邊的位被稱(chēng)為“低階”位。但是,位數(shù)不是存儲(chǔ)器地址。僅字節(jié)可被尋址。為了操作存儲(chǔ)器中的字節(jié)的單個(gè)位,訪問(wèn)整個(gè)字節(jié)。字節(jié)上的位從左到右被編號(hào)為O到7(例如在z/Architecture?中)。對(duì)于24位地址,地址中的位被編號(hào)為8-31或40-63,對(duì)于31位地址,編號(hào)為1_31或33-63,對(duì)于64位地址,編號(hào)為0-63。在多個(gè)字節(jié)的任何其他的固定長(zhǎng)度的格式中,構(gòu)成格式的位從O開(kāi)始被連續(xù)編號(hào)。為了錯(cuò)誤檢測(cè),且優(yōu)選地為了校正,一個(gè)或多個(gè)校驗(yàn)位可與每一個(gè)字節(jié)或一組字節(jié)一起被傳遞。這樣的校驗(yàn)位由機(jī)器自動(dòng)生成且不能被程序直接控制。存儲(chǔ)容量以字節(jié)的數(shù)量來(lái)表示。當(dāng)存儲(chǔ)器操作數(shù)字段的長(zhǎng)度由指令的操作碼暗示時(shí),字段被稱(chēng)為具有固定長(zhǎng)度,其可以是一個(gè)、兩個(gè)、四個(gè)、八個(gè)或十六個(gè)字節(jié)??蔀槟承┲噶畎凳靖蟮淖侄巍.?dāng)存儲(chǔ)器操作數(shù)字段的長(zhǎng)度沒(méi)有被暗示,而是被顯式地表示時(shí),該字段被稱(chēng)為具有可變長(zhǎng)度。可變長(zhǎng)度的操作數(shù)可以一個(gè)字節(jié)的增量(或者對(duì)于一些指令,以?xún)蓚€(gè)字節(jié)倍數(shù)或其他倍數(shù))在長(zhǎng)度上可變。當(dāng)信息被放在存儲(chǔ)器中時(shí),僅替換被包括在指定的字段中的那些字節(jié)位置的內(nèi)容,即使到存儲(chǔ)器的物理路徑的寬度可能大于正被存儲(chǔ)的字段的長(zhǎng)度。
[0180]某些信息單元位于存儲(chǔ)器中的整數(shù)界限上。對(duì)于信息單元,當(dāng)其存儲(chǔ)器地址是以字節(jié)表示的單元長(zhǎng)度的倍數(shù)時(shí),界限被稱(chēng)為是整數(shù)的。特殊的名稱(chēng)被給予整數(shù)界限上的2、
4、8和16字節(jié)的字段。半字是兩字節(jié)邊界上的一組兩個(gè)連續(xù)的字節(jié),且是指令的基本構(gòu)件。字是四字節(jié)邊界上的一組四個(gè)連續(xù)的字節(jié)。雙字是八字節(jié)邊界上一組八個(gè)連續(xù)的字節(jié)。四倍長(zhǎng)字(quadword)是16字節(jié)邊界上的一組16個(gè)連續(xù)的字節(jié)。當(dāng)存儲(chǔ)器地址指定半字、字、雙字和四倍長(zhǎng)字時(shí),地址的二進(jìn)制表示分別包括一個(gè)、兩個(gè)、三個(gè)或四個(gè)最右邊的零位。指令將位于二字節(jié)整數(shù)邊界上。大多數(shù)指令的存儲(chǔ)器操作數(shù)不具有界限對(duì)準(zhǔn)要求。
[0181]在為指令和數(shù)據(jù)操作數(shù)實(shí)現(xiàn)單獨(dú)的高速緩存的設(shè)備上,如果程序在高速緩存線(xiàn)中存儲(chǔ)且指令被隨后從該高速緩存線(xiàn)獲取,可經(jīng)歷顯著的延遲,不管該存儲(chǔ)是否改變隨后被獲取的指令。
[0182]在一個(gè)實(shí)施例中,本發(fā)明可被軟件(有時(shí)候被稱(chēng)為許可的內(nèi)部代碼、固件、微代碼、毫代碼、微微代碼(pico-code)等,其任何一個(gè)都將符合本發(fā)明)實(shí)施。參考圖11,體現(xiàn)本發(fā)明的軟件程序代碼可典型地由主系統(tǒng)5000的處理器5001從長(zhǎng)期存儲(chǔ)介質(zhì)設(shè)備5011(諸如CD-ROM驅(qū)動(dòng)器、磁帶驅(qū)動(dòng)或硬盤(pán)驅(qū)動(dòng)器)訪問(wèn)。軟件程序代碼可體現(xiàn)在與數(shù)據(jù)處理系統(tǒng)一起使用的各種已知介質(zhì)(諸如軟磁盤(pán)、硬盤(pán)驅(qū)動(dòng)或CD-ROM)中的任何一個(gè)上。代碼可在這樣的介質(zhì)上被分發(fā),或可從一個(gè)計(jì)算機(jī)系統(tǒng)的計(jì)算機(jī)存儲(chǔ)器5002或存儲(chǔ)設(shè)備通過(guò)網(wǎng)絡(luò)5010被分發(fā)給其他計(jì)算機(jī)系統(tǒng)的用戶(hù),以由這樣的其他系統(tǒng)的用戶(hù)使用。
[0183]軟件程序代碼包括操作系統(tǒng),其控制各種計(jì)算機(jī)組件和一個(gè)或多個(gè)應(yīng)用程序的功能和交互。程序代碼通??蓮拇鎯?chǔ)介質(zhì)設(shè)備5011調(diào)頁(yè)到相對(duì)更高速的計(jì)算機(jī)存儲(chǔ)器5002,在此它對(duì)于處理器5001是可用的。用于在存儲(chǔ)器中、物理介質(zhì)上體現(xiàn)軟件程序代碼和/或經(jīng)由網(wǎng)絡(luò)分發(fā)軟件代碼的技術(shù)和方法是熟知的,且不會(huì)在此被進(jìn)一步討論。當(dāng)程序代碼被創(chuàng)建并存儲(chǔ)在有形介質(zhì)(包括但不限于電子存儲(chǔ)模塊(RAM)、閃存、光盤(pán)(⑶)、DVD、磁帶等)上時(shí),其經(jīng)常被稱(chēng)為“計(jì)算機(jī)程序產(chǎn)品”。計(jì)算機(jī)程序產(chǎn)品介質(zhì)典型地可由優(yōu)選地位于計(jì)算機(jī)系統(tǒng)中的處理電路讀取以由處理電路執(zhí)行。
[0184]圖12示出了可在其中實(shí)施本發(fā)明的代表性工作站或服務(wù)器硬件系統(tǒng)。圖12的系統(tǒng)5020包括代表性基本計(jì)算機(jī)系統(tǒng)(base computer system)5021,諸如個(gè)人計(jì)算機(jī)、工作站或服務(wù)器,包括可選的外圍設(shè)備。根據(jù)已知技術(shù),基本計(jì)算機(jī)系統(tǒng)5021包括一個(gè)或多個(gè)處理器5026以及被用于連接并使能處理器5026和系統(tǒng)5021的其他組件之間的通信的總線(xiàn)??偩€(xiàn)將處理器5026連接到存儲(chǔ)器5025以及可包括例如硬盤(pán)驅(qū)動(dòng)器(例如,包括磁介質(zhì)、⑶、DVD和閃存中的任何一個(gè))或磁帶驅(qū)動(dòng)器的長(zhǎng)期存儲(chǔ)器5027。系統(tǒng)5021也可包括用戶(hù)接口適配器,其經(jīng)由總線(xiàn)將微處理器5026連接到一個(gè)或多個(gè)接口設(shè)備,諸如鍵盤(pán)5024、鼠標(biāo)5023、打印機(jī)/掃描儀5030和/或其他接口設(shè)備,其可以是任何用戶(hù)接口設(shè)備,諸如觸摸敏感屏、數(shù)字化輸入墊(digitized entry pad)等??偩€(xiàn)也可經(jīng)由顯示適配器將諸如IXD屏幕或監(jiān)視器的顯示設(shè)備5022連接到微處理器5026。
[0185]系統(tǒng)5021可通過(guò)能與網(wǎng)絡(luò)5029通信5028的網(wǎng)絡(luò)適配器與其他計(jì)算機(jī)或計(jì)算機(jī)網(wǎng)絡(luò)通信。示例性網(wǎng)絡(luò)適配器是通信通道、令牌環(huán)網(wǎng)、以太網(wǎng)或調(diào)制解調(diào)器?;蛘?,系統(tǒng)5021可使用諸如⑶ro (蜂窩數(shù)字分組數(shù)據(jù))卡的無(wú)線(xiàn)接口來(lái)通信。系統(tǒng)5021可與局域網(wǎng)(LAN)或廣域網(wǎng)(WAN)中的這樣的其他計(jì)算機(jī)關(guān)聯(lián),或系統(tǒng)5021可以是與另一個(gè)計(jì)算機(jī)的客戶(hù)機(jī)/服務(wù)器安排中的客戶(hù)機(jī)等。所有這些配置以及合適的通信硬件和軟件在本領(lǐng)域中是已知的。
[0186]圖13示出了其中可實(shí)施本發(fā)明的數(shù)據(jù)處理網(wǎng)絡(luò)5040。數(shù)據(jù)處理網(wǎng)絡(luò)5040可包括多個(gè)單獨(dú)的網(wǎng)絡(luò),諸如無(wú)線(xiàn)網(wǎng)和有線(xiàn)網(wǎng),其每個(gè)可包括多個(gè)單獨(dú)的工作站5041、5042、5043、5044。此外,本領(lǐng)域技術(shù)人員將理解,可包括一個(gè)或多個(gè)LAN,其中LAN可包括多個(gè)耦合到主處理機(jī)的智能工作站。
[0187]仍然參考圖13,網(wǎng)絡(luò)也可包括大型計(jì)算機(jī)或服務(wù)器,諸如網(wǎng)關(guān)計(jì)算機(jī)(客戶(hù)機(jī)服務(wù)器5046)或應(yīng)用服務(wù)器(遠(yuǎn)程服務(wù)器5048,其可訪問(wèn)數(shù)據(jù)儲(chǔ)存庫(kù),且也可直接從工作站5045被訪問(wèn))。網(wǎng)關(guān)計(jì)算機(jī)5046用作到每個(gè)單獨(dú)網(wǎng)絡(luò)的進(jìn)入點(diǎn)。當(dāng)將一個(gè)聯(lián)網(wǎng)協(xié)議連接到另一個(gè)時(shí),需要網(wǎng)關(guān)。網(wǎng)關(guān)5046可通過(guò)通信鏈路優(yōu)選地耦合到另一個(gè)網(wǎng)絡(luò)(例如因特網(wǎng)5047)。也可使用通信鏈路將網(wǎng)關(guān)5046直接耦合到一個(gè)或多個(gè)工作站5041、5042、5043、5044??梢?br>
利用可從國(guó)際商業(yè)機(jī)器公司獲得的eServerTMSystem z?.服務(wù)器來(lái)實(shí)現(xiàn)網(wǎng)關(guān)計(jì)算機(jī)。
[0188]同時(shí)參考圖12和13,可體現(xiàn)本發(fā)明的軟件編程代碼可被系統(tǒng)5020的處理器5026從諸如CD-ROM驅(qū)動(dòng)器或硬盤(pán)驅(qū)動(dòng)器的長(zhǎng)期存儲(chǔ)介質(zhì)5027訪問(wèn)。軟件編程代碼可被體現(xiàn)在與數(shù)據(jù)處理系統(tǒng)一起使用的各種已知介質(zhì)(諸如軟盤(pán)、硬盤(pán)驅(qū)動(dòng)器或CD-ROM)中的任一個(gè)上。代碼可在這樣的介質(zhì)上被分發(fā),或從一個(gè)計(jì)算機(jī)系統(tǒng)的存儲(chǔ)器或存儲(chǔ)設(shè)備通過(guò)網(wǎng)絡(luò)被分發(fā)到其他計(jì)算機(jī)系統(tǒng)的用戶(hù)5050、5051,以供這樣的其他系統(tǒng)的用戶(hù)使用。
[0189]或者,編程代碼可體現(xiàn)在存儲(chǔ)器5025中,且由處理器5026使用處理器總線(xiàn)訪問(wèn)。這樣的編程代碼包括操作系統(tǒng),其控制各種計(jì)算機(jī)組件和一個(gè)或多個(gè)應(yīng)用程序5032的功能和交互。程序代碼通常從存儲(chǔ)介質(zhì)5027調(diào)頁(yè)到高速存儲(chǔ)器5025,在此它可用于由處理器5026進(jìn)行處理。用于在存儲(chǔ)器中、在物理介質(zhì)上體現(xiàn)軟件編程代碼和/或經(jīng)由網(wǎng)絡(luò)分發(fā)軟件代碼的技術(shù)和方法是公知的,不會(huì)在此進(jìn)一步討論。程序代碼,當(dāng)其被創(chuàng)建且在有形介質(zhì)(包括但不限于電子存儲(chǔ)模塊(RAM)、閃存、光盤(pán)(⑶)、DVD、磁帶等)上存儲(chǔ)時(shí),通常被稱(chēng)為“計(jì)算機(jī)程序產(chǎn)品”。計(jì)算機(jī)程序產(chǎn)品介質(zhì)典型地可以被優(yōu)選地位于計(jì)算機(jī)系統(tǒng)中的處理電路讀取以由處理電路執(zhí)行。
[0190]最容易被處理器使用的高速緩存(通常比處理器的其他高速緩存更快更小)是最低級(jí)(LI或級(jí)別I)高速緩存,且主存儲(chǔ)(主存儲(chǔ)器)是最高級(jí)高速緩存(如果有三個(gè)級(jí)別的話(huà)是L3)。最低級(jí)高速緩存經(jīng)常被分為保持將被執(zhí)行的機(jī)器指令的指令緩存(1-高速緩存),和保持?jǐn)?shù)據(jù)操作數(shù)的數(shù)據(jù)高速緩存(D-高速緩存)。
[0191]參考圖14,為處理器5026示出了示例性處理器實(shí)施例。典型地,使用一個(gè)或多個(gè)級(jí)別的高速緩存5053來(lái)緩沖存儲(chǔ)器塊,以便改善處理器性能。高速緩存5053是高速緩沖器,其保持很可能被使用的存儲(chǔ)器數(shù)據(jù)的高速緩存線(xiàn)。典型的高速緩存線(xiàn)是64、128或256字節(jié)的存儲(chǔ)器數(shù)據(jù)。通常使用單獨(dú)的高速緩存以用于緩存指令而不是緩存數(shù)據(jù)。高速緩存一致性(存儲(chǔ)器和高速緩存中的線(xiàn)的副本的同步)通常由本領(lǐng)域中熟知的各種“窺探”算法提供。處理器系統(tǒng)的主存儲(chǔ)器5025通常被稱(chēng)為高速緩存。在具有4個(gè)級(jí)別的高速緩存5053的處理器系統(tǒng)中,主存儲(chǔ)器5025有時(shí)候被稱(chēng)為級(jí)別5 (L5)高速緩存,因?yàn)樗湫偷馗?,且僅保持可被計(jì)算機(jī)系統(tǒng)使用的非易失性存儲(chǔ)器(DASD、磁帶等)的一部分。主存儲(chǔ)器5025可“高速緩存”由操作系統(tǒng)向主存儲(chǔ)器5025調(diào)頁(yè)入或從其調(diào)頁(yè)出的數(shù)據(jù)頁(yè)。
[0192]程序計(jì)數(shù)器(指令計(jì)數(shù)器)5061保持跟蹤將被執(zhí)行的當(dāng)前指令的地址。z/Architect:ure?處理器中的程序計(jì)數(shù)器是64位的,且可被截短為31或24位以支持先前的尋址界限。程序計(jì)數(shù)器典型地體現(xiàn)在計(jì)算機(jī)的PSW (程序狀態(tài)字)中,這樣它可在上下文轉(zhuǎn)換中持續(xù)。因此,具有程序計(jì)數(shù)器值的進(jìn)行中的程序可被例如操作系統(tǒng)中斷(從程序環(huán)境到操作系統(tǒng)環(huán)境的上下文轉(zhuǎn)換)。當(dāng)程序不活動(dòng)時(shí),程序的PSW維持程序計(jì)數(shù)器值,且在操作系統(tǒng)執(zhí)行時(shí),操作系統(tǒng)的(PSW中的)程序計(jì)數(shù)器被使用。典型地,程序計(jì)數(shù)器以等于當(dāng)前指令的字節(jié)數(shù)的量增量。RISC (精簡(jiǎn)指令集計(jì)算)指令典型地是固定長(zhǎng)度,而CISC (復(fù)雜指令集計(jì)算)指令典型地是可變長(zhǎng)度。IBMz/Architecture?的指令是具有長(zhǎng)度為2、4或6字節(jié)的CISC指令。程序計(jì)數(shù)器5061被例如上下文轉(zhuǎn)換操作或分支指令的分支采取操作修改。在上下文轉(zhuǎn)換操作中,當(dāng)前的程序計(jì)數(shù)器值與關(guān)于正被執(zhí)行的程序的其他狀態(tài)信息(諸如條件碼)一起被保存在程序狀態(tài)字中,且新程序計(jì)數(shù)器值被載入并指向?qū)⒈粓?zhí)行的新程序模塊的指令。執(zhí)行分支采取操作,以通過(guò)將分支指令的結(jié)果加載到程序計(jì)數(shù)器5061中而允許程序進(jìn)行決定或在程序內(nèi)循環(huán)。
[0193]典型地,使用指令提取單元5055代表處理器5026獲取指令。獲取單元可獲取“下一序列指令”、分支采取指令的目標(biāo)指令或上下文轉(zhuǎn)換后的程序的第一指令?,F(xiàn)在的指令獲取單元通常使用預(yù)取技術(shù)基于被預(yù)取的指令將被使用的可能性來(lái)推測(cè)性地預(yù)取指令。例如,獲取單元可獲取16字節(jié)的指令,其包括下一順序指令以及進(jìn)一步的順序指令的額外字節(jié)。
[0194]獲取的指令隨后被處理器5026執(zhí)行。在一實(shí)施例中,獲取的指令被傳遞給獲取單元的分派單元5056。分派單元解碼指令并將關(guān)于解碼的指令的信息轉(zhuǎn)發(fā)給合適的單元5057、5058、5060。執(zhí)行單元5057將典型地從指令獲取單元5055接收關(guān)于解碼的算術(shù)指令的信息,并將根據(jù)指令的操作碼對(duì)操作數(shù)執(zhí)行算術(shù)操作。優(yōu)選地從存儲(chǔ)器5025、架構(gòu)寄存器5059或從正被執(zhí)行的指令的立即字段(immediate field)向執(zhí)行單元5057提供操作數(shù)。執(zhí)行的結(jié)果,當(dāng)被存儲(chǔ)時(shí),被存儲(chǔ)在存儲(chǔ)器5025、寄存器5059或其他機(jī)器硬件(諸如控制寄存器、PSW寄存器等)中。
[0195]處理器5026典型地具有一個(gè)或多個(gè)用于執(zhí)行指令的功能的單元5057、5058、5060。參考圖15A,執(zhí)行單元5057可通過(guò)接口邏輯5071與架構(gòu)通用寄存器5059、解碼/分派單元5056、加載存儲(chǔ)單元5060和其他5065處理器單元通信。執(zhí)行單元5057可使用幾個(gè)寄存器電路5067、5068、5069來(lái)保持算術(shù)邏輯單元(ALU) 5066將操作的信息。ALU執(zhí)行諸如加減乘除的算術(shù)操作,以及諸如和、或以及異或(X0R)、旋轉(zhuǎn)和移位的邏輯運(yùn)算。優(yōu)選地,ALU支持依賴(lài)于設(shè)計(jì)的專(zhuān)門(mén)操作。其他電路可提供其他架構(gòu)工具5072,例如包括條件碼和恢復(fù)支持邏輯。典型地,ALU操作的結(jié)果被保持在輸出寄存電路5070中,該輸出寄存器電路可將結(jié)果轉(zhuǎn)發(fā)到多種其他處理功能。有許多處理器單元安排,本說(shuō)明書(shū)僅旨在提供對(duì)一個(gè)實(shí)施例的代表性理解。
[0196]例如,ADD指令將在具有算術(shù)和邏輯功能的執(zhí)行單元5057中被執(zhí)行,而例如浮點(diǎn)指令將在具有專(zhuān)用浮點(diǎn)能力的浮點(diǎn)執(zhí)行中被執(zhí)行。優(yōu)選地,執(zhí)行單元通過(guò)在操作數(shù)上執(zhí)行操作碼定義的功能在由指令標(biāo)識(shí)的操作數(shù)上操作。例如,ADD指令可被執(zhí)行單元5057在由指令的寄存器字段標(biāo)識(shí)的兩個(gè)寄存器5059中發(fā)現(xiàn)的操作數(shù)上執(zhí)行。
[0197]執(zhí)行單元5057對(duì)兩個(gè)操作數(shù)執(zhí)行算術(shù)加法,并在第三操作數(shù)中存儲(chǔ)結(jié)果,其中第三操作數(shù)可以是第三寄存器或兩個(gè)源寄存器中的一個(gè)。執(zhí)行單元優(yōu)選地利用算術(shù)邏輯單元(ALU)5066,其能執(zhí)行多種邏輯功能,諸如移位、旋轉(zhuǎn)、和、或、異或,以及多種代數(shù)函數(shù),包括加減乘除中的任何一個(gè)。有些ALU5066被設(shè)計(jì)為用于標(biāo)量運(yùn)算,有些用于浮點(diǎn)。根據(jù)架構(gòu),數(shù)據(jù)可以是大端(big endien)(其中最低有效字節(jié)位于最高字節(jié)地址)或小端(littleendien)(其中最低有效字節(jié)位于最低字節(jié)地址)。TBM z/Architecture?是大端。根據(jù)架構(gòu),帶符號(hào)字段可以是符號(hào)和幅度、I的補(bǔ)碼或2的補(bǔ)碼。2的補(bǔ)碼數(shù)是有利的,其在于ALU不需要設(shè)計(jì)減法能力,因?yàn)椴还苁?的補(bǔ)碼中的負(fù)值還是正值,都僅要求ALU中的加法。數(shù)字通常以速記描述,其中12位的字段定義了 4096字節(jié)塊的地址,且通常被描述為例如4Kbyte (千字節(jié))塊。
[0198]參考圖15B,用于執(zhí)行分支指令的分支指令信息典型地被發(fā)送到分支單元5058,該分支單元經(jīng)常使用諸如分支歷史表5082的分支預(yù)測(cè)算法,在其他條件運(yùn)算完成前預(yù)測(cè)分支結(jié)果。在條件運(yùn)算完成前,當(dāng)前分支指令的目標(biāo)將被獲取并推測(cè)性地執(zhí)行。當(dāng)條件運(yùn)算完成時(shí),基于條件運(yùn)算的條件和推測(cè)的結(jié)果,推測(cè)性執(zhí)行的分支指令或被完成或被丟棄。典型的分支指令可測(cè)試條件碼,以及如果條件碼滿(mǎn)足分支指令的分支要求,分支到目標(biāo)地址,分支地址可基于若干數(shù)被計(jì)算,所述數(shù)包括例如在寄存器字段或是指令的立即字段中找到的數(shù)。分支單元5058可利用具有多個(gè)輸入寄存器電路5075、5076、5077和一個(gè)輸出寄存器電路5080的ALU5074。分支單元5058可與例如通用寄存器5059、解碼分派單元5056或其他電路5073通信。
[0199]一組指令的執(zhí)行可由于多個(gè)原因中斷,所述原因包括例如由操作系統(tǒng)發(fā)起的上下文轉(zhuǎn)換、引起上下文轉(zhuǎn)換的程序異?;蝈e(cuò)誤、引起上下文轉(zhuǎn)換的I/o中斷信號(hào)或多個(gè)程序(在多線(xiàn)程環(huán)境中)的多線(xiàn)程活動(dòng)。優(yōu)選地,上下文轉(zhuǎn)換動(dòng)作保存關(guān)于當(dāng)前執(zhí)行的程序的狀態(tài)信息,且隨后加載關(guān)于正被調(diào)用的另一個(gè)程序的狀態(tài)信息。狀態(tài)信息可被存儲(chǔ)在例如硬件寄存器或存儲(chǔ)器中。狀態(tài)信息優(yōu)選地包括指向?qū)⒈粓?zhí)行的下一個(gè)指令的程序計(jì)數(shù)器值、條件碼、存儲(chǔ)器轉(zhuǎn)換信息和架構(gòu)寄存器內(nèi)容。上下文轉(zhuǎn)換活動(dòng)可被硬件電路、應(yīng)用程序、操作系統(tǒng)程序或固件代碼(微代碼、微微代碼或許可內(nèi)部碼(LIC))單獨(dú)地或其組合實(shí)現(xiàn)。
[0200]處理器根據(jù)指令定義的方法而訪問(wèn)操作數(shù)。指令可使用指令的一部分的值提供立即操作數(shù),可提供一個(gè)或多個(gè)寄存器字段,其顯式地指向通用寄存器或?qū)S眉拇嫫?例如浮點(diǎn)寄存器)。指令可利用由操作碼字段確定的暗示的寄存器作為操作數(shù)。指令可利用用于操作數(shù)的存儲(chǔ)器位置。可由寄存器、立即字段或寄存器和立即字段的組合提供操作數(shù)的存儲(chǔ)器位置,如由z/Architecture?長(zhǎng)位移工具(facility)所例示的,其中該指令定義了基寄存器、索引寄存器和立即字段(位移字段),它們加到一起,以提供例如存儲(chǔ)器中的操作數(shù)的地址。除非另外指明,此處的位置典型地意味著主存儲(chǔ)器(主存儲(chǔ)設(shè)備)中的位置。
[0201]參考圖15C,處理器使用加載/存儲(chǔ)單元5060訪問(wèn)存儲(chǔ)器。加載/存儲(chǔ)單元5060可以通過(guò)獲取存儲(chǔ)器5053中的目標(biāo)操作數(shù)的地址并將操作數(shù)加載到寄存器5059或其他存儲(chǔ)器5053位置中,來(lái)執(zhí)行加載操作,或可以通過(guò)獲取存儲(chǔ)器5053中的目標(biāo)操作數(shù)的地址并將從寄存器5059或另一個(gè)存儲(chǔ)器5053位置獲得的數(shù)據(jù)存儲(chǔ)在存儲(chǔ)器5053中的目標(biāo)操作數(shù)位置,來(lái)執(zhí)行存儲(chǔ)操作。加載/存儲(chǔ)單元5060可以是推測(cè)性的,且可以以相對(duì)于指令順序來(lái)說(shuō)無(wú)序的順序訪問(wèn)存儲(chǔ)器,但是加載/存儲(chǔ)單元5060將向程序維持指令按順序執(zhí)行的外觀。加載/存儲(chǔ)單元5060可與通用寄存器5059、解密/分派單元5056、高速緩存/存儲(chǔ)器接口 5053或其他元件5083通信,且包括各種寄存器電路、ALU5085和控制邏輯5090以計(jì)算存儲(chǔ)器地址并提供流水線(xiàn)順序以使操作保持次序。一些操作可不按順序,但加載/存儲(chǔ)單元提供功能以使不按順序執(zhí)行的操作對(duì)程序看起來(lái)如已按順序執(zhí)行一樣,如本領(lǐng)域所熟知的。
[0202]優(yōu)選地,應(yīng)用程序“看到的”地址通常被稱(chēng)為虛擬地址。虛擬地址有時(shí)候被稱(chēng)為“邏輯地址”和“有效地址”。這些虛擬地址之所以虛擬,在于它們由多種動(dòng)態(tài)地址轉(zhuǎn)換(DAT)技術(shù)中的一種重定向到物理存儲(chǔ)器位置,所述動(dòng)態(tài)地址轉(zhuǎn)換技術(shù)包括但不限于簡(jiǎn)單地給用偏移值給虛擬地址加前綴、經(jīng)由一個(gè)或多個(gè)轉(zhuǎn)換表轉(zhuǎn)換虛擬地址,所述轉(zhuǎn)換表優(yōu)選地包括至少一個(gè)段表和一個(gè)頁(yè)表(單獨(dú)地或組合地),優(yōu)選地,段表具有指向頁(yè)表的項(xiàng)。在z/Architecture?中,提供轉(zhuǎn)換分級(jí)結(jié)構(gòu),包括區(qū)域第一表、區(qū)域第二表、區(qū)域第三表、段表和可選的頁(yè)表。地址轉(zhuǎn)換的性能通常通過(guò)利用轉(zhuǎn)換后備緩沖器(TLB)被改善,該轉(zhuǎn)換后備緩沖器包括將虛擬地址映射到相關(guān)的物理存儲(chǔ)位置的項(xiàng)。當(dāng)DAT使用轉(zhuǎn)換表轉(zhuǎn)換虛擬地址時(shí),創(chuàng)建項(xiàng)。于是,虛擬地址的隨后使用可利用快的TLB的項(xiàng),而不是慢的順序轉(zhuǎn)換表訪問(wèn)。TLB內(nèi)容可由包括LRU (最少最近使用)的多個(gè)替換算法來(lái)管理。
[0203]在處理器是多處理器系統(tǒng)的處理器的情況下,每個(gè)處理器具有保持共享資源的責(zé)任,所述共享資源諸如I/o、高速緩存、TLB和存儲(chǔ)器,它們互鎖以實(shí)現(xiàn)一致性。典型地,“窺探”技術(shù)將被用于維持高速緩存一致性。在窺探環(huán)境中,每個(gè)高速緩存線(xiàn)可被標(biāo)記為正處于共享狀態(tài)、獨(dú)占狀態(tài)、改變狀態(tài)、無(wú)效狀態(tài)等中的一個(gè),以便有助于共享。
[0204]I/O單元5054 (圖14)向處理器提供用于附加到例如包括磁帶、盤(pán)、打印機(jī)、顯示器和網(wǎng)絡(luò)的外圍設(shè)備的裝置。I/o單元通常由軟件驅(qū)動(dòng)器向計(jì)算機(jī)程序呈現(xiàn)。在諸如來(lái)自IBM?的System z?'的大型計(jì)算機(jī)中,通道適配器和開(kāi)放系統(tǒng)適配器是提供操作系統(tǒng)和外圍設(shè)備之間的通信的大型計(jì)算機(jī)的i/o單元。
[0205]而且,其他類(lèi)型的計(jì)算環(huán)境可受益于本發(fā)明的一個(gè)或多個(gè)方面。作為例子,環(huán)境可包括仿真器(例如,軟件或其他仿真機(jī)制),其中特定架構(gòu)(包括例如指令執(zhí)行、諸如地址轉(zhuǎn)換的架構(gòu)功能、以及架構(gòu)寄存器)或其子集被仿真(例如,在具有處理器和存儲(chǔ)器的本機(jī)計(jì)算機(jī)系統(tǒng)中)。在這樣的環(huán)境中,仿真器的一個(gè)或多個(gè)仿真功能可實(shí)施本發(fā)明的一個(gè)或多個(gè)方面,即使執(zhí)行仿真器的計(jì)算機(jī)可具有與正被仿真的能力不同的架構(gòu)。作為一個(gè)例子,在仿真模式中,解碼正被仿真的特定指令或操作,且建立合適的仿真功能以實(shí)施單個(gè)指令或操作。
[0206]在仿真環(huán)境中,主計(jì)算機(jī)包括例如存儲(chǔ)器以存儲(chǔ)指令和數(shù)據(jù);指令獲取單元以從存儲(chǔ)器獲取指令,且可選地,提供用于獲取的指令的本地緩沖;指令解碼單元以接收獲取的指令并確定已被獲取的指令的類(lèi)型;以及指令執(zhí)行單元以執(zhí)行該指令。執(zhí)行可包括將數(shù)據(jù)從存儲(chǔ)器加載到寄存器;從寄存器將數(shù)據(jù)存儲(chǔ)回存儲(chǔ)器;或執(zhí)行如由解碼單元確定的某些類(lèi)型的算術(shù)或邏輯運(yùn)算。在一個(gè)例子中,每個(gè)單元在軟件中實(shí)現(xiàn)。例如,被所述單元執(zhí)行的操作被實(shí)現(xiàn)為仿真器軟件中的一個(gè)或多個(gè)子例程。
[0207]更具體地,在大型計(jì)算機(jī)中,程序員(通常是如今的“C”程序員)一般通過(guò)編譯器應(yīng)用使用架構(gòu)機(jī)器指令。存儲(chǔ)在存儲(chǔ)介質(zhì)中的這些指令可以在z/Architecture?IBM?服務(wù)器中本機(jī)地執(zhí)行,或在執(zhí)行其他架構(gòu)的機(jī)器中執(zhí)行。它們可在現(xiàn)有的和未來(lái)的IBM?大型計(jì)算機(jī)服務(wù)器以及IBM?的其他機(jī)器(例如,Power Systems服務(wù)器和System X?.服務(wù)器)中被仿真。它們可在使用山IBM?、丨ntel?、AMD?等制造的硬件的各種機(jī)器上運(yùn)行Linux的機(jī)器中被執(zhí)行。除了在z/Architecture? K的該硬件上執(zhí)行,Linux也可被用于這樣的機(jī)器,其使用由Hercules、UMX或FSI (Fundamental Software, Inc)(其中一般地執(zhí)行是處于仿真模式中)提供的仿真。在仿真模式中,仿真軟件由本機(jī)處理器執(zhí)行以仿真被仿真處理器的架構(gòu)。
[0208]本機(jī)處理器典型地執(zhí)行仿真軟件,其包括固件或本機(jī)操作系統(tǒng),以執(zhí)行被仿真處理器的仿真程序。仿真軟件負(fù)責(zé)獲取并執(zhí)行被仿真處理器架構(gòu)的指令。仿真軟件維護(hù)仿真的程序計(jì)數(shù)器以保持跟蹤指令界限。仿真軟件可一次獲取一個(gè)或多個(gè)仿真的機(jī)器指令,并將所述一個(gè)或多個(gè)仿真的機(jī)器指令轉(zhuǎn)換為對(duì)應(yīng)的本機(jī)機(jī)器指令組,以由本機(jī)處理器執(zhí)行。這些轉(zhuǎn)換的指令可被高速緩存,這樣可完成更快的轉(zhuǎn)換。仿真軟件將維持被仿真的處理器架構(gòu)的架構(gòu)規(guī)則以保證為被仿真處理器編寫(xiě)的操作系統(tǒng)和應(yīng)用正確操作。而且,仿真軟件將提供由被仿真的處理器架構(gòu)確定的資源,包括但不限于控制寄存器、通用寄存器、浮點(diǎn)寄存器、例如包括段表和頁(yè)表的動(dòng)態(tài)地址轉(zhuǎn)換功能、中斷機(jī)制、上下文轉(zhuǎn)換機(jī)制、日中時(shí)間(TOD)時(shí)鐘和到I/O子系統(tǒng)的架構(gòu)接口,這樣被設(shè)計(jì)為在被仿真處理器上運(yùn)行的操作系統(tǒng)或應(yīng)用程序可在具有仿真軟件的本機(jī)處理器上運(yùn)行。
[0209]解碼正被仿真的特定指令,且調(diào)用子例程以執(zhí)行該單個(gè)指令的功能。仿真被仿真處理器的功能的仿真軟件功能例如在“C”子例程或驅(qū)動(dòng)器中實(shí)現(xiàn),或由提供用于特定硬件的驅(qū)動(dòng)器的其他方法實(shí)現(xiàn),如本領(lǐng)域技術(shù)人員在理解優(yōu)選實(shí)施例的描述后將理解的。包括但不限于 Beausoleil 等人的標(biāo)題為 “Multiprocessor for Hardware Emulation” 的美國(guó)專(zhuān)利證書(shū)號(hào) 5,551,013 ;以及 Scalzi 等人的標(biāo)題為 “Preprocessing of Stored TargetRoutines for Emulating Incompatible Instructions on a Target Processor,,的美國(guó)專(zhuān)利證書(shū)號(hào) 6, 009, 261 ;以及 Davidian 等人的標(biāo)題為 “Decoding Guest Instruction toDirectly Access Emulation Routines that Emulate the Guest Instructions,,的美國(guó)專(zhuān)利證書(shū)號(hào),5,574,873 ;以及Gorishek等人的標(biāo)題為“Symmetrical Multiprocessing Busand Chipset Used for Coprocessor Support Allowing Non-Native Code to Run in aSystem”的美國(guó)專(zhuān)利證書(shū)號(hào)6,308, 255 ;以及Lethin等人的標(biāo)題為“Dynamic OptimizingObject Code Translator for Architecture Emulation and Dynamic Optimizing ObjectCode Translation Method”的美國(guó)專(zhuān)利證書(shū)號(hào)6,463,582,;以及Eric Traut的標(biāo)題為“Method for Emulating Guest Instructions on a Host Computer Through DynamicRecompilation of Host Instructions”的美國(guó)專(zhuān)利證書(shū)號(hào)5,790,825 ;以及許多其他專(zhuān)利的各種軟件和硬件仿真專(zhuān)利示出各種已知的方式來(lái)實(shí)現(xiàn)針對(duì)可為本領(lǐng)域技術(shù)人員獲得的目標(biāo)機(jī)器對(duì)為不同機(jī)器進(jìn)行架構(gòu)設(shè)計(jì)的指令格式的仿真。
[0210]在圖16中,提供了仿真主計(jì)算機(jī)系統(tǒng)5092的例子,其仿真主架構(gòu)的主計(jì)算機(jī)系統(tǒng)5000’。在仿真主計(jì)算機(jī)系統(tǒng)5092中,主處理器(CPU) 5091是仿真主處理器(或虛擬主處理器),并包括具有與主計(jì)算機(jī)5000’的處理器5091不同的本機(jī)指令集架構(gòu)的仿真處理器5093。仿真主計(jì)算機(jī)系統(tǒng)5092具有可被仿真處理器5093訪問(wèn)的存儲(chǔ)器5094。在示例性實(shí)施例中,存儲(chǔ)器5094被分區(qū)為主計(jì)算機(jī)存儲(chǔ)器5096部分和仿真例程5097部分。根據(jù)主計(jì)算機(jī)架構(gòu),主計(jì)算機(jī)存儲(chǔ)器5096對(duì)于仿真主計(jì)算機(jī)5092的程序來(lái)說(shuō)是可用的。仿真處理器5093執(zhí)行與被仿真處理器5091不同架構(gòu)的架構(gòu)指令集的本機(jī)指令(即來(lái)自仿真程序處理器5097的本機(jī)指令),且可通過(guò)使用從順序和訪問(wèn)/解碼例程獲得的一個(gè)或多個(gè)指令從主計(jì)算機(jī)存儲(chǔ)器5096中的程序訪問(wèn)用于執(zhí)行的主機(jī)指令,所述順序和訪問(wèn)/解碼例程可解碼訪問(wèn)的主機(jī)指令,以確定用于仿真被訪問(wèn)的主機(jī)指令的功能的本機(jī)指令執(zhí)行例程。被定義用于主計(jì)算機(jī)系統(tǒng)5000’架構(gòu)的其他工具可被架構(gòu)工具例程仿真,所述架構(gòu)工具例程包括諸如通用寄存器、控制寄存器、動(dòng)態(tài)地址轉(zhuǎn)換和1/0子系統(tǒng)支持和處理器高速緩存等工具。仿真例程也可利用在仿真處理器5093中可獲得的功能(諸如通用寄存器和虛擬地址的動(dòng)態(tài)轉(zhuǎn)換)以改善仿真例程的性能。也可提供專(zhuān)用硬件和卸載引擎以輔助處理器5093來(lái)仿真主計(jì)算機(jī)5000’的功能。
[0211]在此使用的術(shù)語(yǔ)僅是為了描述特定實(shí)施例,且不旨在限制本發(fā)明。如在此使用的,單數(shù)形式“一”、“一個(gè)”和“該”也旨在包括復(fù)數(shù)形式,除非上下文另外清楚地指明。還將理解,當(dāng)在說(shuō)明書(shū)中使用時(shí),術(shù)語(yǔ)“包括”和/或“包含”指明存在所述的特征、整體、步驟、操作、元件和/或組件,但不排除存在或附加一個(gè)或多個(gè)其他特征、整體、步驟、操作、元件和/或組件。
【權(quán)利要求】
1.一種用于管理計(jì)算環(huán)境的緩沖器的計(jì)算機(jī)程序產(chǎn)品,所述計(jì)算機(jī)程序產(chǎn)品包括: 計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其可被處理電路讀取并存儲(chǔ)指令以供處理電路執(zhí)行以便執(zhí)行一種方法,所述方法包括: 將耦合設(shè)施的緩沖器設(shè)置成活動(dòng)狀態(tài)或空閑狀態(tài),包括: 響應(yīng)于具有關(guān)聯(lián)操作員消息令牌值的開(kāi)始操作員消息命令,設(shè)置所選緩沖器中的操作員消息令牌值并使得所選緩沖器活動(dòng);以及 確定計(jì)算環(huán)境的耦合設(shè)施的所選緩沖器將被重置,該緩沖器包括關(guān)于處理從被耦合到耦合設(shè)施但與之分離的處理器映像遠(yuǎn)程地向耦合設(shè)施發(fā)送的操作員消息命令的信息,該操作員消息命令用以對(duì)耦合設(shè)施執(zhí)行動(dòng)作,所選緩沖器包括具有使得所選緩沖器與具有操作員消息(OM)令牌的操作員消息相關(guān)的令牌值的令牌字段,所述操作員消息(OM)令牌具有相同的令牌值;以及 響應(yīng)于確定緩沖器將被重置而將所確定的緩沖器設(shè)置成空閑狀態(tài),其中,所述緩沖器包括多個(gè)字段,該字段包括用以指示對(duì)于緩沖器而言操作員消息已經(jīng)活動(dòng)的時(shí)間長(zhǎng)度的定時(shí)器、操作員消息請(qǐng)求長(zhǎng)度以及操作員消息響應(yīng)長(zhǎng)度。
2.如權(quán)利要求1所述的計(jì)算機(jī)程序產(chǎn)品,其中,所述確定是基于由耦合設(shè)施接收到的明確操作員消息命令,該明確操作員消息命令具有用于選擇與令牌匹配的令牌字段值的緩沖器的令牌。
3.如權(quán)利要求2所述的計(jì)算機(jī)程序產(chǎn)品,其中,所述明確操作員消息命令包括刪除操作員消息命令。
4.如權(quán)利要求2所述 的計(jì)算機(jī)程序產(chǎn)品,其中,所述明確操作員消息命令包括開(kāi)始操作員消息命令。
5.如權(quán)利要求4所述的計(jì)算機(jī)程序產(chǎn)品,其中,所述確定包括響應(yīng)于處理開(kāi)始操作員消息命令而確定緩沖器是活動(dòng)的且已超時(shí);并且其中,所述設(shè)置包括用與開(kāi)始操作員消息命令相關(guān)聯(lián)的信息將緩沖器的一個(gè)或多個(gè)字段初始化,該信息包括操作員消息令牌值。
6.如權(quán)利要求1所述的計(jì)算機(jī)程序產(chǎn)品,其中,所述確定是隱含地基于耦合設(shè)施所考慮的定義標(biāo)準(zhǔn)。
7.如權(quán)利要求6所述的計(jì)算機(jī)程序產(chǎn)品,其中,所述定義標(biāo)準(zhǔn)包括確定緩沖器是活動(dòng)的,具有待決響應(yīng),并且與緩沖器相關(guān)聯(lián)的超時(shí)值已經(jīng)超過(guò)預(yù)定時(shí)間值。
8.如權(quán)利要求1所述的計(jì)算機(jī)程序產(chǎn)品,其中,所述重置包括處理刪除操作員消息命令,該刪除操作員消息命令包括具有消息報(bào)頭、指示刪除操作員消息命令的命令以及操作員消息令牌的消息命令塊。
9.如權(quán)利要求8所述的計(jì)算機(jī)程序產(chǎn)品,其中,所述處理包括: 確定緩沖器中的操作員消息令牌與刪除操作員消息令牌中的操作員消息令牌匹配;以及 響應(yīng)于確定指示緩沖器中的操作員消息令牌與刪除操作員消息命令中的操作員消息令牌匹配,檢查操作員消息響應(yīng)是否是待決的; 響應(yīng)于確定指示操作員消息響應(yīng)是待決的,將緩沖器的一個(gè)或多個(gè)字段重置并將緩沖器的狀態(tài)設(shè)置成空閑;以及 提供指示操作員消息被刪除的消息響應(yīng)塊。
10.如權(quán)利要求9所述的計(jì)算機(jī)程序產(chǎn)品,其中,所述方法還包括將操作員消息令牌設(shè)置成零。
11.一種用于管理計(jì)算環(huán)境的緩沖器的計(jì)算機(jī)系統(tǒng),所述計(jì)算機(jī)系統(tǒng)包括: 存儲(chǔ)器;以及 與存儲(chǔ)器通信的處理器,其中,所述計(jì)算機(jī)系統(tǒng)被配置成執(zhí)行一種方法,所述方法包括: 將耦合設(shè)施的緩沖器設(shè)置成活動(dòng)狀態(tài)或空閑狀態(tài),包括: 響應(yīng)于具有關(guān)聯(lián)操作員消息令牌值的開(kāi)始操作員消息命令,設(shè)置所選緩沖器中的操作員消息令牌值并使得所選緩沖器活動(dòng);以及 確定計(jì)算環(huán)境的耦合設(shè)施的所選緩沖器將被重置,該緩沖器包括關(guān)于處理從被耦合到耦合設(shè)施但與之分離的處理器映像遠(yuǎn)程地向耦合設(shè)施發(fā)送的操作員消息命令的信息,該操作員消息命令用以對(duì)耦合設(shè)施執(zhí)行動(dòng)作,所選緩沖器包括具有使得所選緩沖器與具有操作員消息(OM)令牌的操作員消息相關(guān)的令牌值的令牌字段,所述操作員消息(OM)令牌具有相同的令牌值;以及 響應(yīng)于確定緩沖器將被重置而將所確定的緩沖器設(shè)置成空閑狀態(tài),其中,所述緩沖器包括多個(gè)字段,該字段包括用以指示對(duì)于緩沖器而言操作員消息已經(jīng)活動(dòng)的時(shí)間長(zhǎng)度的定時(shí)器、操作員消息請(qǐng)求長(zhǎng)度以及操作員消息響應(yīng)長(zhǎng)度。
12.如權(quán)利要求11所述的 計(jì)算機(jī)系統(tǒng),其中,所述確定是基于由耦合設(shè)施接收到的明確操作員消息命令,該明確操作員消息命令具有用于選擇與令牌匹配的令牌字段值的緩沖器的令牌。
13.如權(quán)利要求11所述的計(jì)算機(jī)系統(tǒng),其中,所述確定是隱含地基于耦合設(shè)施所考慮的定義標(biāo)準(zhǔn)。
14.如權(quán)利要求13所述的計(jì)算機(jī)系統(tǒng),其中,所述定義標(biāo)準(zhǔn)包括確定緩沖器是活動(dòng)的,具有待決響應(yīng),并且與緩沖器相關(guān)聯(lián)的超時(shí)值已經(jīng)超過(guò)預(yù)定時(shí)間值。
15.如權(quán)利要求11所述的計(jì)算機(jī)系統(tǒng),其中,所述重置包括處理刪除操作員消息命令,該刪除操作員消息命令包括具有消息報(bào)頭、指示刪除操作員消息命令的命令以及操作員消息令牌的消息命令塊。
16.如權(quán)利要求15所述的計(jì)算機(jī)系統(tǒng),其中,所述處理包括: 確定緩沖器中的操作員消息令牌與刪除操作員消息令牌中的操作員消息令牌匹配;以及 響應(yīng)于確定指示緩沖器中的操作員消息令牌與刪除操作員消息命令中的操作員消息令牌匹配,檢查操作員消息響應(yīng)是否是待決的; 響應(yīng)于確定指示操作員消息響應(yīng)是待決的,將緩沖器的一個(gè)或多個(gè)字段重置并將緩沖器的狀態(tài)設(shè)置成空閑;以及 提供指示操作員消息被刪除的消息響應(yīng)塊。
17.如權(quán)利要求16所述的計(jì)算機(jī)系統(tǒng),其中,所述方法還包括將操作員消息令牌設(shè)置成零。
18.一種用于管理計(jì)算環(huán)境的緩沖器的方法,所述方法包括: 將耦合設(shè)施的緩沖器設(shè)置成活動(dòng)狀態(tài)或空閑狀態(tài),包括:響應(yīng)于具有關(guān)聯(lián)操作員消息令牌值的開(kāi)始操作員消息命令,設(shè)置所選緩沖器中的操作員消息令牌值并使得所選緩沖器活動(dòng);以及 確定計(jì)算環(huán)境的耦合設(shè)施的所選緩沖器將被重置,該緩沖器包括關(guān)于處理從被耦合到耦合設(shè)施但與之分離的處理器映像遠(yuǎn)程地向耦合設(shè)施發(fā)送的操作員消息命令的信息,該操作員消息命令用以對(duì)耦合設(shè)施執(zhí)行動(dòng)作,所選緩沖器包括具有使得所選緩沖器與具有操作員消息(OM)令牌的操作員消息相關(guān)的令牌值的令牌字段,所述操作員消息(OM)令牌具有相同的令牌值;以及 響應(yīng)于確定緩沖器將被重置而將所確定的緩沖器設(shè)置成空閑狀態(tài),其中,所述緩沖器包括多個(gè)字段,該字段包括用以指示對(duì)于緩沖器而言操作員消息已經(jīng)活動(dòng)的時(shí)間長(zhǎng)度的定時(shí)器、操作員消息請(qǐng)求長(zhǎng)度以及操作員消息響應(yīng)長(zhǎng)度。
19.如權(quán)利要求18所述的方法,其中,所述確定是基于由耦合設(shè)施接收到的明確操作員消息命令,該明確操作員消息命令具有用于選擇與令牌匹配的令牌字段值的緩沖器的令牌。
20.如權(quán)利要求18所述的方法,其中,所述重置包括處理刪除操作員消息命令,該刪除操作員消息命令包括具有消息報(bào)頭、指示刪除操作員消息命令的命令以及操作員消息令牌的消息命令塊。
【文檔編號(hào)】G06F13/37GK103582879SQ201280025769
【公開(kāi)日】2014年2月12日 申請(qǐng)日期:2012年6月6日 優(yōu)先權(quán)日:2011年6月10日
【發(fā)明者】T.肖, S.N.戈斯, D.埃爾科 申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司