欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

虛擬機系統(tǒng)及其計算機系統(tǒng)的輸入/輸出執(zhí)行方法

文檔序號:89795閱讀:676來源:國知局
專利名稱:虛擬機系統(tǒng)及其計算機系統(tǒng)的輸入/輸出執(zhí)行方法
本發(fā)明涉及到高速虛擬機系統(tǒng)(VMS),特別是用于減少虛擬機系統(tǒng)I/O模擬內(nèi)務操作的方法和系統(tǒng)。
1975年6月24日揭示的日本公開專利申請ИO、55-76950的說明書,1981年2月23日揭示的ИO、56-19153,1980年3月25日的ИO、55-42326,以及美國專利ИO、4,459,661(1982年4月21日由金田三郎等基于最近日本公開專利申請的協(xié)約優(yōu)先權提交的申請)都論及了虛擬機系統(tǒng)。
圖1是實計算機系統(tǒng)9000的結構配置。數(shù)字1000代表中央處理機(CPV),數(shù)字2000表示主存儲器,數(shù)字3000表示I/O處理機(IOP),數(shù)字4000為I/O控制器(IOC)。數(shù)字100表示CPU1000和主存儲器2000之間的信號傳輸線,數(shù)字200代表CPU1000和I/O處理機3000之間的信號傳輸線,數(shù)字300表示I/O處理機3000和主存儲器2000之間的信號傳輸線,數(shù)字400表示I/O處理機3000和I/O控制器4000之間的信號傳輸線。實計算機系統(tǒng)9000在主存儲器2000操作系統(tǒng)(OS)的總系統(tǒng)資源管理(CPU,主存儲器和I/O設備)程序的控制下,進行工作。
虛擬機系統(tǒng)(VMS)的結構見圖2。實計算機系統(tǒng)10000的硬件結構(CPU,主存儲器和I/O設備)與圖1的結構相似,但它的主存儲器2000中存有虛擬機系統(tǒng)的控制程序(VMCP或簡寫為CP)。多元邏輯機(稱之為虛擬機(VM))是靠虛擬機控制程序的硬件模擬功能進行工作的邏輯結構。虛擬機(VM)的10000-1(VM1),10000-2(VM2)和10000-3(VM3)均為邏輯結構,其硬件結構與實計算機系統(tǒng)(稱之為主系統(tǒng))10000相同。控制虛擬機的OS-И(И=1、2,3)存儲在各個虛擬機的主存儲器2000-И(И=1,2,3)中,這些操作系統(tǒng)(OS)在一部主系統(tǒng)的控制下同時運行。圖2中的各個虛擬機的硬件結構((CPU,主存儲器,I/O處理機和I/O控制器),都由虛擬機控制程序(VMCP)作邏輯配置,因而大部分實體都靠由主系統(tǒng)配置的各虛擬機的相應硬件結構來維持。例如,作為它的主存儲器而言,虛擬機可排他地占有部分主系統(tǒng)的主存儲器2000,也可訪問主存儲器2000。作為它的I/O設備,虛擬機可分享主系統(tǒng)的I/O設備,也可排他地占用I/O設備。換句話說,主系統(tǒng)中可以沒有相應的I/O設備,I/O設備可由虛擬機控制程序的模擬功能作虛擬配置。在任何情況下,各個虛擬機主存儲器2000-И(И=1,2,3)的操作系統(tǒng)(OS)都可訪問與主系統(tǒng)硬件結構相同的硬件結構(CPU,主存儲器,I/O處理機,I/O控制器)。應該指出,各個虛擬機的結構(硬件結構和從操作系統(tǒng)角度來說的功能)都可以與主系統(tǒng)的結構略有差異。同樣,各虛擬機(VM)的結構也可以不相同。例如,主系統(tǒng)的機器指令組可不必與各虛擬機的機器指令組精確地一一相同。但是在本發(fā)明中,虛擬機系統(tǒng)不予以采用完全不同的機器指令組,因為這將增大虛擬機控制程序的負荷,并增大主系統(tǒng)仿真機構的規(guī)模。本發(fā)明的虛擬機(VM)要求大多數(shù)機器指令都可在VMCP不作干預的情況下在主系統(tǒng)上直接執(zhí)行,并且有與主系統(tǒng)相同的性能(執(zhí)行速度)。雖然圖2中僅有三部虛擬機,實際上可容納任意數(shù)量的虛擬機,這一數(shù)量的上限取決于主系統(tǒng)資源容量和虛擬機性能之間的折衷。主系統(tǒng)有一個特許狀態(tài)和一個非特許狀態(tài)。對系統(tǒng)賦予重大影響的機器指令(例如I/O指令或系統(tǒng)中斷屏蔽位更換指令)被稱為特許指令,它只能在特許狀態(tài)下使用。這一點在計算機界是眾所周知的。
圖3是圖2中的虛擬機VM1存儲器層次的存儲器分級結構。數(shù)字2060表示由VM1的OS1產(chǎn)生的虛擬空間。OS1存儲在VM1的主存儲器2000-1中。VM1的主存儲器2000-1被拷貝在主系統(tǒng)的主存儲器2002中(主系統(tǒng)的主存儲器2000被分割為硬件系統(tǒng)區(qū)2001和可編程序區(qū)2002,參見圖7)。該拷貝由地址轉(zhuǎn)換表2010給出。圖4a所示為地址轉(zhuǎn)換表2010(1)。該地址轉(zhuǎn)換表含有對應于VM1主存儲器2000-1中的地址V2和主存儲器2002中的相應地址r的表目。當VM1的OS1在存儲器22000-1中運行時,地址轉(zhuǎn)換表2010(1)的起始地址將存儲在CPU1000基本控制寄存器1100(見圖7)的一個控制寄存器1110(實地址轉(zhuǎn)換表起始地址寄存器(RATOR)中。在這時,地址轉(zhuǎn)換表2010(1)存儲在VM10000-1的主存儲器2000-1中,即,主系統(tǒng)的主存儲器2002中。同時,起始地址被存儲在由主系統(tǒng)的主存儲器2002中的一個地址所描述的寄存器1110中。
圖3中的數(shù)字2060表示VM1的OS1產(chǎn)生的虛擬存儲器;并由OS1管理的地址轉(zhuǎn)換表2040給出VM1主存儲器2000-1的拷貝。圖4b是地址轉(zhuǎn)換表的格式。它含有虛擬存儲器2060的地址V3和VM1主存儲器2000-1的地址V2相對應的表目。當VM1的OS1在虛擬存儲器2060中運行時,地址轉(zhuǎn)換表2040的起始地址存儲在CPU1000基本控制寄存器1100(見圖7)的一個控制寄存器1120(虛擬地址轉(zhuǎn)換表起始地址寄存器(VATOR)(VATOR)中。此時,由于地址轉(zhuǎn)換表2040存儲在OS1的主存儲器2000-1中,因而起始地址將由OS1的主存儲器2000-1的一個地址系統(tǒng)來描述。地址轉(zhuǎn)換表2010(1)(稱為轉(zhuǎn)換表A)由虛擬機控制程序VMCP替各虛擬機進行管理和修正。地址轉(zhuǎn)換表2040(稱為轉(zhuǎn)換表B)由各虛擬機的操作系統(tǒng)替它本身的虛擬存儲器作管理和修正。主系統(tǒng)的主存儲器2002稱作為1級存儲器,各虛擬機的主存儲器2000-И(И=1,2,3,……)稱為2級存儲器,由各個虛擬機的OS產(chǎn)生的虛擬存儲器2060(通常OS可產(chǎn)生多個虛擬存儲器)總稱為3級存儲器。虛擬存儲器通常分割為一些有預定容量(例如4KB)的頁;并被變換到各頁的主存儲器中,一定數(shù)量的連續(xù)頁數(shù)(例如256頁,1MB)稱為一段,這在計算機界也是眾所周知的。圖3中的數(shù)字2020代表由VMCP為起動其輸入輸出操作而產(chǎn)生的I/O操作命令字(CCW)。由于VMCP是在1級存儲器上運行工作的,因而在1級存儲器地址產(chǎn)生CCW2020。它稱為1級CCW。1級CCW無需作地址轉(zhuǎn)換;當I/O起動命令發(fā)給1級CCW時,由I/O處理機3000直接對它加以變換并發(fā)送給I/O控制器4000。I/O控制器4000替各I/O設備執(zhí)行各個CCW。數(shù)字2030表示由虛擬機操作系統(tǒng)(OS)產(chǎn)生的命令字(CCW),它由2級存儲器地址來描述。2級CCW由虛擬機的OS產(chǎn)生。當I/O起動指令從虛擬機的OS發(fā)給CCW時,它可通過VMCP轉(zhuǎn)換為等效的1級CCW;I/O的起動可通過虛擬機控制程序(VMCP)由等效的1級CCW實施。然而,這將增加虛擬機控制程序的內(nèi)務操作。因而,可采用另一種方法在VMCP的干預下,把地址轉(zhuǎn)換表中由2級存儲器轉(zhuǎn)換為1級存儲器(轉(zhuǎn)換表A)的地址傳送給I/O處理機3000,I/O處理機3000查找轉(zhuǎn)換表2010后,把2級CCW(或2級存儲器地址)中的數(shù)據(jù)地址轉(zhuǎn)換為1級存儲器地址。這種方法減少了VMCP的干預,減少內(nèi)務操作。在許多情況下,虛擬機的OS在3級存儲器上執(zhí)行,因而由虛擬機OS所產(chǎn)生的CCW往往存儲在3級存儲器中。圖3中的數(shù)字2050表示由3級存儲器地址描述的CCW,即3級CCW。當虛擬機的OS把I/O起動指令發(fā)給3級CCW時,它把地址轉(zhuǎn)換表中的地址由3級存儲器傳送給2級存儲器(轉(zhuǎn)換表B)并將該地址由2級存儲器傳送給1級存儲器(轉(zhuǎn)換表A)進而傳送給I/O處理機3000(圖7)。I/O處理機3000查找轉(zhuǎn)換表B,把3級CCW的數(shù)據(jù)地址(3級存儲器地址)轉(zhuǎn)換為2級存儲器地址;再查找轉(zhuǎn)換表A,把轉(zhuǎn)換而得的2級存儲器地址轉(zhuǎn)換為1級地址,以便執(zhí)行CCW。
圖4C是地址轉(zhuǎn)換緩沖器3030,它設置在I/O處理機3000(圖7)的局部存儲器中,用于減少I/O處理機3000地址轉(zhuǎn)換的內(nèi)務操作。地址轉(zhuǎn)換緩沖器3030的字段1含有VM序號(VM#);字段2含有地址轉(zhuǎn)換表A和B的起始地址;字段3容納其識別特征位;字段4包含地址轉(zhuǎn)換前的CCW數(shù)據(jù)地址;而字段5包含地址轉(zhuǎn)換后的1級存儲器地址。I/O處理機3000(圖7)查找地址轉(zhuǎn)換緩沖器以便作地址轉(zhuǎn)換。如果查找不到該地址,則查找轉(zhuǎn)換表B和A來作地址轉(zhuǎn)換,并把被轉(zhuǎn)換的地址寄存在轉(zhuǎn)換緩沖器3030中。地址轉(zhuǎn)換緩沖器是I/O處理機3000中的一個高速局部存儲器,其查找速度比在主存儲器2002中查找轉(zhuǎn)換表B和A要快。應指出,在I/O執(zhí)行期間,2級CCW,3級CCW和數(shù)據(jù)緩沖器都應固定在1級存儲器上。圖5給出了把主系統(tǒng)主存儲器2002的連續(xù)區(qū)域分割為子區(qū)域的方法。這些子區(qū)域被用作各相應虛擬機的主存儲器。在使用這種虛擬機時,把預定的地址位移α加到虛擬機主存儲器的地址上,就可求得主系統(tǒng)主存儲器2002的地址。圖5中,VM1的地址位移是α1,VM2的地址位移是α2。這種情況下,從2級存儲器地址轉(zhuǎn)換為1級存儲器地址的地址轉(zhuǎn)換2010可能只是一個管理各個虛擬機的上、下限地址的轉(zhuǎn)換表,如圖5 2010(2)所示。這種情況下,進行2級CCW的地址轉(zhuǎn)換十分方便,對2級CCW來說,不需要地址轉(zhuǎn)換緩沖器3030的表目(地址轉(zhuǎn)換緩沖器3030的字段3為“0”的表目)或者說,如圖5所示,把轉(zhuǎn)換表2010(2)讀入I/O處理機3000(圖7)的局部存儲器中;由虛擬機的序號(VM#)得到地址位移α,疊加上α,從而實現(xiàn)地址的轉(zhuǎn)換(從2級存儲器地址轉(zhuǎn)換到1級存儲器地址)。高速虛擬機模式可供以下情況下虛擬機使用,即虛擬機(圖3)的全部主存儲器在主系統(tǒng)的主存儲器2002中是常駐的和固定的;或者它占有主系統(tǒng)主存儲器的一個連續(xù)區(qū)域(見圖5)。在采用高速虛擬機模式時,可直接執(zhí)行由虛擬機OS發(fā)出的特許指令(沒有VMCP干預時,以幾乎與主系統(tǒng)相同的性能執(zhí)行指令)。但是,虛擬機的I/O指令仍需要VMCP干預,詳見下文。
下面,參照圖6說明VMCP執(zhí)行虛擬機OS發(fā)出的起動I/O指令的方式。虛擬機的OS指示與I/O設備相對應的子通道號(子通道#),發(fā)出起動I/O指令。由于這一子通道的編號是從屬于虛擬機的,因此稱其為虛擬子通道號#。VMCP把它轉(zhuǎn)換為相應的實子通道號#。這一對應關系是在定義虛擬機時確定的。VMCP檢驗由虛擬機OS發(fā)出的起動I/O指令的CCW的級別。通常,它用起動I/O指令的操作數(shù)表示。假定該起動I/O指令送到3級CCW。圖6中,CCW2810是3級存儲器的CCW,其數(shù)據(jù)地址是3級存儲器地址。VMCP把操作數(shù)2800加到OS產(chǎn)生的CCW2810上,發(fā)出起動I/O指令。操作數(shù)2800包含有指示CCW級別的字段L;當L=3時,還包含有轉(zhuǎn)換表B的起始地址VATOR,及其段長SS和頁面大小PS。操作數(shù)2800也包含轉(zhuǎn)換表A的起始地址RATOR,及其段長SS,頁面大小PS和CCW2810的地址。它們通過信號傳輸線200,按VMCP的起動I/O指令,送到I/O處理機3000(圖7);而基本信息被置于相應的子通道寄存器3011中。類似的基本信息被存儲在子通道控制塊2090(見圖7)的相應的子通道控制塊中(見圖10中的子通道控制塊2091)。I/O處理機3000(圖7)采用子通道中的地址轉(zhuǎn)換表執(zhí)行OS產(chǎn)生的CCW2810,同時轉(zhuǎn)換地址。
圖7給出了原先的虛擬機系統(tǒng)的硬件配置和與I/O執(zhí)行有關的方塊圖。
圖7的CPU1000包括一個前置寄存器1010(它包括含有硬件中斷信息的區(qū)域前綴(PSA)的地址)。CPU控制寄存器1100和包含有CPU基本狀態(tài)的程序狀態(tài)字(PSW)1020(如一個中斷控制位或接著要執(zhí)行的下一個機器指令地址)。它也包括一個I/O指令執(zhí)行電路1030,一個I/O中斷電路1040,一個I/O指令執(zhí)行微程序1050和一個I/O中斷處理微程序1060。代表虛擬機模式的V-位是在作為虛擬機系統(tǒng)特征位的1090中。在虛擬機運行期間,由VMCP將這一位置于“1”。高速虛擬機模式狀態(tài)的特征位H存儲在1090中。虛擬機系統(tǒng)控制標記1090也可以為其它形式。例如,可提供VMCP模式(管理程序模式)和虛擬機模式。虛擬機模式可以包括優(yōu)選的或高性能的虛擬機模式和非優(yōu)選的虛擬機模式。它們多少有些類似。如上所述,I/O處理機3000執(zhí)行3級CCW或2級CCW(見圖3),同時在微程序3020控制下,根據(jù)包含在子通道控制塊2090和子通道寄存器3010中的地址轉(zhuǎn)換信息(圖6),使用地址轉(zhuǎn)換緩沖器3030(見圖4c)的信息。圖7中的主存儲器2000被分割為硬件系統(tǒng)區(qū)(HSA)2001和可編程序區(qū)2002、HSA2001包含有供CPU1000和I/O處理機3000使用的硬件信息。它可以用CPU和I/O處理機的微程序1050,1060和3020進行存取和更新,但不能用訪問CPU1000的一般用戶的機器指令??删幊绦騾^(qū)2002可用機器指令訪問,就OS或VMCP而言,它是一個主存儲區(qū)。與I/O裝置的操作相關聯(lián)的那些I/O指令,如起動I/O,都要以請求排隊的方式在I/O請求隊列2070中排隊。2070由包含有I/O請求實子通道號(由地址指示器互連)的控制塊2071組成。在對I/O請求隊列進行排隊后,起動信號通過信號傳輸線200送到I/O處理機3000。I/O處理機3000對HSA2001中的請求隊列2070進行訪問,并順序地讀出請求列隊單元2071,處理I/O請求。I/O中斷請求按實中斷的優(yōu)先級在I/O中斷請求隊列2080中排隊。其結構示于圖9中??梢缘玫?個中斷優(yōu)先級0,1,2,3,4,5,6和7。當發(fā)出I/O指令時,由操作數(shù)連同子通道號一起來分派優(yōu)先級。圖10示出了子通道控制塊2090(圖7)中的子通道控制塊2091。這些子通道控制塊按實子通道編號次序排列,其位置完全由實子通道號確定。子通道控制塊2090的起始地址置于CPU1000(圖7)控制寄存器1100之中的一個控制寄存器中。中斷優(yōu)先級可被分配給每個子通道。假設,虛擬機的OS發(fā)出I/O指令,同時指定子通道號和0~7級中斷優(yōu)先級中的某一級。由于圖7中VM的模式位1090是“1”,因此I/O指令執(zhí)行微處理機(μP)1050把該控制信息傳送給虛擬機控制程序(VMCP)??刂菩畔⑼ㄟ^VMCP區(qū)域前綴(PSA)2100中的一個新的程序狀態(tài)字傳送給VMCP,作為一種中斷控制信息。由于在VM起動時,VMCP的PSA地址已經(jīng)被存放在VMCP前綴寄存器1010(圖7)中,所以可訪問該地址。
VMCP將虛擬機OS指定的子通道號作為虛擬子通道號處理,把它轉(zhuǎn)換成實子通道號并管理實子通道狀態(tài)。如果實子通道號是有效的,VMCP就指定地址轉(zhuǎn)換信息2800(見圖6)并代替虛擬機的操作系統(tǒng)發(fā)出I/O指令。
由虛擬機OS指定的中斷優(yōu)先級是虛擬中斷優(yōu)先級。VMCP在把虛擬中斷優(yōu)先級作為實中斷優(yōu)先級的同時發(fā)出I/O指令。因此,實中斷優(yōu)先級將與各虛擬機的OS共用。于是,從各虛擬機OS子通道發(fā)出的I/O中斷請求被混合排列在圖9的I/O中斷請求隊列2080的實中斷優(yōu)先級隊列中。
由VMCP干預虛擬機OS的I/O指令的執(zhí)行的理由如下(一)由虛擬機OS指定的虛擬子通道號必須轉(zhuǎn)換成實子通道號。
(二)由于實子通道號可由各虛擬機的OS共用,所以需要子通道調(diào)度。
圖11為控制I/O中斷的一種方法。從子通道發(fā)出的I/O中斷請求,由I/O處理機3000檢測,相應的子通道控制塊排在I/O中斷請求隊列2080中(見圖7)。I/O中斷請求隊列的結構如圖9所示。子通道控制塊按實中斷優(yōu)先級的順序排隊。把圖11所示的相應的實中斷未決寄存器1042的位置成“1”,當中斷未決寄存器1042的位和相應的實中斷優(yōu)先級屏蔽位寄存器1041的位都是“1”,PSW1020的I/O屏蔽位也是“1”時,則起動處于相應的實中斷優(yōu)先級的那個I/O中斷,并把該控制信息傳送給I/O中斷處理微程序1060。上述操作由圖11所示的硬件電路完成。
如上所述,在虛擬機系統(tǒng)中實中斷優(yōu)先級與各虛擬機OS共用。于是,在虛擬機運行期間,把實中斷優(yōu)先級屏蔽位寄存器1041的各個位置于各虛擬機OS的中斷優(yōu)先級屏蔽位的“或”功能狀態(tài),亦即置成“1”,使得中斷總是可以接受的。PSW1020的I/O屏蔽位也被置成“1”。因而,如果實中斷未決寄存器1042的一個位由子通道發(fā)出的I/O中斷請求改變成“1”,那么,“與”門1046中的某個門的輸出將變?yōu)椤?”,“或”門1043的輸出變?yōu)椤?”,“與”門1044的輸出也變?yōu)椤?”,于是I/O中斷處理微程序1060立即被圖11所示的I/O中斷電路所起動。I/O中斷處理微程序1060使排在相應的最高中斷優(yōu)先級I/O中斷請求隊列中的子通道撤離隊列(圖9),以便把該中斷反映到VMCP的前綴。如果實中斷優(yōu)先級的中斷請求隊列是空的,則實中斷優(yōu)先級實中斷未決寄存器1042的位被置成“0”,結果中斷未決寄存器被清零。通過對VMCP的中斷反映,控制信息被傳送給VMCP的I/O中斷處理程序。把請求I/O中斷的實子通道號作為I/O中斷參數(shù)和相應的VM號一起送給VMCP。VMCP完成下列處理,以便把I/O中斷反映到虛擬機。
(一)把實子通道號轉(zhuǎn)換成虛擬子通道號。
(二)檢查VM的中斷優(yōu)先級屏蔽位寄存器和PSW的I/O屏蔽位,借以確定該I/O中斷是否可以接受。
(三)如果VM接受中斷,則把該中斷反映到VM的前綴PSA。
(四)如果VM不接受中斷,則該中斷被VMCP處以未決狀態(tài)。
由于實中斷優(yōu)先級由各VM共用,所以必須把屏蔽位置于各VM相應屏蔽位的“或”功能狀態(tài)(通常為“1”)。結果,即使是在VM中屬不能中斷的優(yōu)先級,也可使VMCP中斷。在這樣的情況下,I/O中斷由VMCP處以未決狀態(tài)。于是,對送往子通道的I/O指令來說,需要由VMCP干預的模擬操作。
如上所述,在原虛擬機系統(tǒng)的虛擬機OS的I/O執(zhí)行中,為了直接執(zhí)行3級CCW和2級CCW,需要利用I/O處理機的功能。否則就是要VMCP不斷進行干預和進行模擬操作。于是具有較高I/O發(fā)出頻率的負載將會增加VMCP的模擬內(nèi)務操作。
本發(fā)明的目的是用VMCP減少虛擬機OS的I/O指令和I/O中斷的模擬內(nèi)務操作;用硬件和微程序支持VM的I/O指令和I/O中斷的直接執(zhí)行。
按照本發(fā)明,在含有虛擬機系統(tǒng)(VMS)的系統(tǒng)中,VMS中至少有一個操作系統(tǒng)可借助一個實計算機系統(tǒng)(主系統(tǒng))和控制VMS的控制程序,主系統(tǒng)的I/O設備是否被OS專用或由OS占用,根據(jù)存儲在實計算機系統(tǒng)中的信息來確定。如果由I/O指令而不是由OS發(fā)出的I/O起動指令指定的I/O設備專供正在運行的OS使用,則I/O指令就發(fā)給該I/O設備;如果不是專供正在運行的OS使用時,則VMCP被中斷。
從以下結合附圖所作的詳細描述中,便可以清楚地了解本發(fā)明。其中圖1是由一般OS控制的實計算機系統(tǒng)的方塊圖;
圖2是以往虛擬機系統(tǒng)的方塊圖;
圖3是以往虛擬機的存儲器分級結構;
圖4~11是先有技術的實例;其中圖4A~4C是地址轉(zhuǎn)換表;
圖5是占有實主存儲器一個連續(xù)區(qū)的VM的配置;
圖6是由VMCP為進行VM的I/O模擬而發(fā)出的I/O指令;
圖7是主系統(tǒng)的配置;
圖8是I/O請求隊列;
圖9是I/O中斷請求隊列;
圖10為實子通道控制塊;
圖11為I/O中斷電路;
圖12至圖22與本發(fā)明有關,其中圖12為主系統(tǒng)的結構;
圖13為前綴控制表;
圖14為轉(zhuǎn)換表的地址控制表;
圖15為虛擬機控制表;
圖16為實際子通道控制塊;
圖17為起動虛擬機指令;
圖18為虛擬機系統(tǒng)控制寄存器;
圖19為虛擬機系統(tǒng)控制特征位;
圖20A和20B描述了分配中斷優(yōu)先級的方式;
圖21為虛擬機系統(tǒng)中斷控制寄存器;
圖22為虛擬機系統(tǒng)I/O中斷電路。
現(xiàn)在敘述本發(fā)明的最佳實施方案。圖12給出了本發(fā)明具體實施例之一的總結構配置。
CPU1000′的各組成部分與圖7的類似,但其中有些部分的功能有所擴充。硬件系統(tǒng)區(qū)(HSA)2001包括的組成部分與圖7的一樣(I/O請求隊列2070,I/O中斷請求隊列2080和實子通道控制塊2090′)。但前綴控制表2300,轉(zhuǎn)換表地址控制表2400以及虛擬機控制表2700包含了新信息。
可編程序區(qū)2002的組成部分與圖7的一樣(虛擬機控制程序PSA2100,VM1PSA2110,VM2PSA2120,(以及其他VM的PSA),虛擬機控制程序2200,由2級存儲器轉(zhuǎn)換為1級存儲器的地址轉(zhuǎn)換表2010,由3級存儲器轉(zhuǎn)換為2級存儲器的地址轉(zhuǎn)換表2040)。但中斷優(yōu)先級級數(shù)轉(zhuǎn)換表2500和子通道號轉(zhuǎn)換表2600包含了新信息。I/O處理機3000′與圖7中的I/O處理機3000在結構上類似但功能有所擴充。以下將硬件系統(tǒng)區(qū)2001和可編程序區(qū)2002中的新改進內(nèi)容作新的說明。
圖13是前綴控制表2300。它包括虛擬機控制程序PSA地址,VM1PSA地址,VM2PSA地址以及VM3PSA地址。雖然在圖13中沒有一一標出,但其他虛擬機PSA地址也可以寄存在該表中。PSA地址由CPU1000′的微程序訪問,它們是在可編程序區(qū)2002主系統(tǒng)中的地址。當虛擬機啟動時,把虛擬機PSA地址作為啟動指令操作數(shù)之一予以傳送;當起動指令被執(zhí)行時,它被存放在前綴控制表2300的對應表目中。前綴控制表2300的起始地址存放在CPU1000′的某一個控制寄存器1100′中(見圖12)。前綴控制表是供選用的,并非必不可少。在某一種情況下需要使用它,這一點以后再作說明。圖14是轉(zhuǎn)換表地址控制表2400。對于每個虛擬機而言,它控制子通道號轉(zhuǎn)換表2600的起始地址以及中斷優(yōu)先級轉(zhuǎn)換表2500的起始地址。轉(zhuǎn)換表地址控制表2400的起始地址也存放在CPU1000′的某一個控制寄存器1100′之中。查找子通道號轉(zhuǎn)換表2600和中斷優(yōu)先級轉(zhuǎn)換表2500的方法如圖14所示。虛擬子通道號(兩個字節(jié))被分成為DO·256和D1,通過D.可以查尋前半個表2601,2601由地址控制表2400中對應條目的內(nèi)容予以指示。后半個表2602的地址存放在前半個表26012601的第D0個條目中,以便查尋后半個表2602第D1個條目。用這種方式,可以獲得對應的實子通道號D0′·256+D1′。只需要讀轉(zhuǎn)換表2500的對應表目就可將虛擬中斷優(yōu)先級轉(zhuǎn)換成對應的實中斷級。當子通道號轉(zhuǎn)換表2600和中斷優(yōu)先級轉(zhuǎn)換表2500是由VMCP命令指定,或者根據(jù)虛擬機的定義信息定義虛擬機時,2600和2500這兩個表由VMCP制定;當虛擬機啟動時,2600和2500由起動指令操作數(shù)指定。當執(zhí)行起動指令時,2600和2500存放在轉(zhuǎn)換表地址控制表2400的對應表目中。轉(zhuǎn)換表2600,2500和2400都是供選用的,并不是必不可少的。只要在虛擬機系統(tǒng)中采用本發(fā)明I/O執(zhí)行系統(tǒng)的虛擬機遵從這樣一個準則虛擬子通道號等于實子通道號,并且虛擬中斷優(yōu)先級等于實中斷優(yōu)先級,那么上述這些轉(zhuǎn)換表便都是不必要的了。
圖15所示是虛擬機控制表2700的內(nèi)容。它包括各對應虛擬機的主存大小(Z0,Z1……),由2級存儲器地址轉(zhuǎn)換為1級存儲器地址的轉(zhuǎn)換表2010的地址(RATORO,RATOR1,…)。這種信息是由虛擬機定義信息給出的,并通過起動虛擬機指令將其存儲在HSA2001中的虛擬機控制表2700的對應表目中。虛擬機控制表2700的起始地址存放在CPU1000′某一個控制寄存器1100′中(見圖12)。HSA2001中控制塊的起始地址存放在CPU1000′中的控制寄存器1100′中,這與原先的系統(tǒng)一樣。當支持本發(fā)明I/O執(zhí)行系統(tǒng)的虛擬機限定為占用主存儲器2002(圖5)上的連續(xù)區(qū)域作為主存時,虛擬機控制表2700可由定義上、下限的轉(zhuǎn)換表2010(2)取代。在采用圖5所示的轉(zhuǎn)換表2010(2)時,由虛擬機啟動指令指定上,下限地址ai和ai+1(i=1,2,3,…)。在執(zhí)行啟動指令時,轉(zhuǎn)換表2010(2)的對應表目被放置在HSA2001中。圖16所示為實子通道控制塊2090′,及其一個實子通道控制塊2091′和它的虛擬機信息區(qū)2092′。虛擬機信息區(qū)2092′含有狀態(tài)字段,虛擬機序號,虛擬子通道號,對應的實子通道號,虛擬中斷優(yōu)先級,對應的實中斷優(yōu)先級和通道命令字CCW地址轉(zhuǎn)換信息2094。狀態(tài)字段包含有一些特征位,用來指明該子通道是否被占用以及是否處于I/O直接執(zhí)行抑制模式。CCW地址轉(zhuǎn)換信息2094的內(nèi)容與圖10的地址轉(zhuǎn)換信息2092一樣。當在以下三種情況下定義虛擬機時,或是由虛擬控制程序命令來指定虛擬機時,或執(zhí)行I/O指令時,虛擬機信息區(qū)2092′中的信息都由虛擬機定義信息來給定。
當定義虛擬機或由虛擬機控制程序的命令規(guī)定虛擬機時,同時也就指定了專用實子通道或?qū)S脤嵵袛鄡?yōu)先級。當專用被指定后,虛擬機信息區(qū)2092′中將放入下列字段·狀態(tài)字段2093中的子通道專用特征位;
·I/O直接執(zhí)行模式抑制特征位通常置于“0”,I/O直接執(zhí)行模式置位于支持狀態(tài);
·專用虛擬機序號;
虛擬子通道號和實子通道號;
·由專用VM主存儲器(2級存儲器)轉(zhuǎn)換為1級存儲器的地址轉(zhuǎn)換表的起始地址(實地址轉(zhuǎn)換表起始寄存器(RATOR),見圖4a),放置在通道命令字(CCW)地址轉(zhuǎn)換信息2094中。如果專用VM占有圖5所示的主存儲器,那么就可確定上限ai和下限ai+1(i=1,2,3,…)。
在共用子通道中,在執(zhí)行I/O指令時,這種信息是按需確定的。在這種情況下,它被放置在I/O發(fā)給虛擬機VM信息區(qū)的相應字段內(nèi)。
圖17所示為起動VM指令的一種格式。數(shù)字2900表示起動VM的指令,數(shù)字2910表示操作數(shù)。操作數(shù)2910包括VM序號,VM程序狀態(tài)字PSA,VMPSA地址,子通道號轉(zhuǎn)換表2600(圖14)的起始地址,中斷優(yōu)先級轉(zhuǎn)換表2500(圖14)的起始地址,由VM主存儲器轉(zhuǎn)換為主系統(tǒng)主存的地址轉(zhuǎn)換表2010(圖15)的起始地址RATOR(見圖4a),以及VM主存儲器容量。對于后兩項來說,當要起動的VM使用圖5所示的主存儲器2002的連續(xù)區(qū)作為VM主存儲器時,可以指定上限ai和下限ai+1(i=1,2,3,…)。在起動VM時,在上述那些操作數(shù)信息中的VM運行程序狀態(tài)字、VMPSA地址、實中斷優(yōu)先級狀態(tài)和VMS控制特征位也就被確定了,而其他許多信息則在定義VM時由VM定義信息來確定。實中斷優(yōu)先級狀態(tài)的實中斷優(yōu)先級專用狀態(tài)和VM系統(tǒng)控制特征位將在后面解釋。那些操作數(shù)由VM控制程序(VMCP)規(guī)定。雖然圖17所示的信息作為操作數(shù)是需要的,但是起動VM的指令不一定是圖17所示的格式。圖18所示為VMS的控制寄存器1080。寄存器1081包含正在運行的VM序號,它由起動VM的指令來規(guī)定。該寄存器的內(nèi)容由起動VM指令的操作數(shù)2910(圖17)的一個字段的內(nèi)容給定。圖19所示為VMS的控制特征位1090′(見圖12)。這些特征位由VM起動指令(圖17)操作數(shù)的一個字段預置初始狀態(tài)。它們分別有下列意義。
V在VM運行期間,它是“1”。在虛擬機控制程序運行時或在實計算機模式時,它是“0”。它由起動VM指令置于“1”;當通過中斷指令把控制信息傳送給VMCP時,它置于“0”。這與先有技術系統(tǒng)(圖7)是同樣的。
H在VM運行期間,當可以直接執(zhí)行特許指令時,它置于“1”。當該特征位是“1”時,在VM運行中的大多數(shù)特許指令都直接由CPU1000′的指令執(zhí)行電路執(zhí)行。當H是“1”時,與原先的系統(tǒng)(圖7)一樣,它是高速VM模式。
R當VM的OS受到限制,致使虛擬子通道號等于實子通道號,虛虛擬中斷優(yōu)先級等于實中斷優(yōu)先級時,R被置于“1”。當R是“1”時,則無需通過微程序來進行子通道號轉(zhuǎn)換和中斷優(yōu)先級轉(zhuǎn)換(在這種情況下,圖14所示的轉(zhuǎn)換表2400,2600和2500就是不必要的了)。
D當能按本發(fā)明通過VM(在虛擬機控制程序不作干預的情況下)進行直接I/O執(zhí)行時,D是“1”。它最初由虛擬機控制程序的起動VM指令置于“1”。
И當正在運轉(zhuǎn)的VM在共用中斷優(yōu)先級上有一個中斷未決因子(對于VM來說實際上是由VMCP處以未決的)時,它被置于“1”,對正在運轉(zhuǎn)的VM的虛擬中斷優(yōu)先級屏蔽位而言,此時是可中斷的(在VM程序狀態(tài)字的I/O屏蔽位是“0”時,是不可中斷的)。當檢查可被虛擬中斷優(yōu)先級接受的VMI/O中斷請求的指令被執(zhí)行時,將使用這一特征位。它由虛擬機控制程序通過起動VM指令預置初始狀態(tài)。
圖20a和20b是一種分配實中斷優(yōu)先級的方法。這里使用了從0到31的32個實中斷優(yōu)先級。實中斷優(yōu)先級0是最高優(yōu)先級,為虛擬機控制程序所專用。專用于各VM的實中斷優(yōu)先級以從實中斷優(yōu)先級1開始的升序排列(對中斷優(yōu)先級而言為降序)分配給各專用VM。共用中斷優(yōu)先級按照從實中斷優(yōu)先級31開始的降序(對中斷優(yōu)先級而言為升序)分配給各VM。在圖20a和20b中,實中斷優(yōu)先級1被分配給VM1的虛擬中斷優(yōu)先級0,它是專用的;實中斷優(yōu)先級31分配給虛擬中斷優(yōu)先級1-7,它由各VM共用。對于VM2和VM3來說,實中斷優(yōu)先級的分配如圖20a和20b所示。VM1中的虛擬中斷優(yōu)先級實際上是0或(1-7)。因此,有兩個實中斷優(yōu)先級可以有效地由VM1的OS使用。通過操作指令可以對該操作系統(tǒng)進行限制。完全專用于VM的特殊中斷優(yōu)先級應該根據(jù)VMS的總計劃確定,并且應由虛擬機控制程序控制。由此確定的實中斷優(yōu)先級的專用的共用狀態(tài)1,由起動VM指令的操作數(shù)給出(見圖17),并且在執(zhí)行該指令時,專用的共用狀態(tài)1將寄存在實中斷優(yōu)先級專用狀態(tài)寄存器1049中(圖21)。
圖21所示為實中斷優(yōu)先級屏蔽位寄存器1041′,實中斷未決寄存器1042′,實中斷優(yōu)先級狀態(tài)寄存器1045和實中斷優(yōu)先級專用狀態(tài)寄存器1049。它們都包括在圖12的I/O中斷電路1040′中。寄存器1041′和1042′與先有技術系統(tǒng)中的那些寄存器是類似的,但是位數(shù)增加了。在圖21中,它們有32位,是先有技術系統(tǒng)中8位的4倍,增加的目的在于支援VM中實中斷優(yōu)先級的專用系統(tǒng)。因為意義相同,所以省略了寄存器1041′和1042′的說明。下面敘述實中斷優(yōu)先級狀態(tài)寄存器1045的意義。它的含義是,當n(0-31)位是“0”時,實中斷優(yōu)先級n專用于正在運行的VM。在其他情況下,它置于“1”。下面敘述實中斷優(yōu)先級專用狀態(tài)寄存器1049的含義。當C(0-31)位是“0”時,意味著實中斷優(yōu)先級C專用于VM;當位C是“1”時,實中斷優(yōu)先級C是共用的。寄存器1045和1049由起動VM指令的操作數(shù)預置初始狀態(tài)。實中斷優(yōu)先級屏蔽位寄存器1041′由VMCP控制和更新。實中斷未決寄存器1042′由I/O處理機3000′(圖12)置位位,并由I/O中斷處理微程序1060′(圖22)來復位。
圖22是本發(fā)明的I/O中斷電路1040′的線路圖。為簡便起見,圖22只給出10個實中斷優(yōu)先級,但實際上有32個用類似方法連接的優(yōu)先級。假定實中斷優(yōu)先級C(C=0-31)有一個中斷未決因數(shù)(也就是說,有中斷請求的子通道被排列在I/O中斷請求隊列2080的實中斷優(yōu)先級(C)的等級隊列中,同時未決寄存器1042′的相應位被置于“1”)。如果中斷優(yōu)先級C專用于當時正在運行的虛擬機,則實中斷優(yōu)先級狀態(tài)寄存器1045的相應位是“零”,“或”門1048將輸出程序狀態(tài)字(PSW)I/O屏蔽位的內(nèi)容,從而程序狀態(tài)字1020的I/O中斷屏蔽位可起有效的作用。因此,只有當相應實中斷優(yōu)先級屏蔽位寄存器1041′的相應位是“1”和程序狀態(tài)字的I/O屏蔽位也是“1”時,與門1047的相應輸出才是“1”,此時I/O中斷被起動,并把這一控制信息傳送到I/O中斷處理微程序1060′。當中斷優(yōu)先級C是共用的或?qū)S糜谄渌摂M機時,則寄存器1045的相應位是“1”,“或”門1048的相應輸出是“1”,程序狀態(tài)字1020的I/O屏蔽位不起作用,從而當相應實中斷優(yōu)先級屏蔽位寄存器1041′是“1”時,I/O中斷被起動。經(jīng)微程序1060′作中斷處理后,如果中斷優(yōu)先級C的中斷請求隊列是空的,則未決寄存器1042′的相應位由微程序清除歸“0”。
現(xiàn)在說明用硬件,主存器上的微程序和信息來執(zhí)行并處理虛擬機OSI/O指令和I/O中斷的方法。
這里作了如下兩點假設,并且虛擬機處于高速虛擬機模式。
(一)虛擬機的整個主存儲器常駐在主系統(tǒng)的主存儲器中。
(二)虛擬機OS的直接輸入/輸出執(zhí)行(沒有虛擬機控制程序干預,包括輸入/輸出中斷的直接執(zhí)行)只供給專用子通道和有專用中斷優(yōu)先級的子通道。
當起動虛擬機時,虛擬機控制程序用下述一種方法,給圖17的起動VM指令的操作數(shù)和實中斷優(yōu)先級屏蔽位寄存器1041′的位C置位。
·當實中斷優(yōu)先級C(0-31)專用于正在運行的虛擬機時,把相應虛擬機OS的虛擬中斷優(yōu)先級(為簡便起見假設只有一級)的屏蔽位置于位C。
·當中斷優(yōu)先級C專用于其他虛擬機時,把虛擬機的相應虛擬中斷優(yōu)先級屏蔽位和虛擬機程序狀態(tài)字的I/O屏蔽位的“與”函數(shù)置位于C位。換句話說,如果中斷優(yōu)先級C的中斷滯后不會引起問題的話,則可以把位C置位于“0”。
·當中斷優(yōu)先級C由各虛擬機共用時,把位C置位于“1”。
在虛擬機運行期間,當改變虛擬中斷優(yōu)先級屏蔽位時,這種改變將被立即反映到實中斷優(yōu)先級屏蔽位寄存器1041′(圖21)。相應地,改變OS虛擬中斷優(yōu)先級屏蔽位的指令可以通過虛擬機控制程序來模擬,或者可以通過CPU的微程序處理把這種改變反映到寄存器1041′,這與原先系統(tǒng)中所做的一樣。當起動處于高速虛擬機模式的虛擬機時,虛擬機的程序狀態(tài)字放置在圖17起動虛擬機指令操作數(shù)的虛擬機運行程序狀態(tài)字里,并把它放置在CPU1000′的程序狀態(tài)字1020里(圖12)。因此,程序狀態(tài)字的I/O屏蔽位與運行中的虛擬機I/O屏蔽位與運行中的虛擬機I/O屏蔽位是一致的。由于虛擬機運行期間,操作系統(tǒng)的程序狀態(tài)字的變化會立即反映到程序狀態(tài)字1020,所以可實現(xiàn)這種一致性。通過直接執(zhí)行方式,可以把改變OS程序狀態(tài)字的指令反映到CPU1000′的程序狀態(tài)字1020,或者可以通過虛擬機控制程序模擬來反映。進行那些置位之后,通過起動VM指令(圖17),可把控制信息傳送到虛擬機的OS。當執(zhí)行指令時,圖18正在運行的虛擬機序號寄存器1081,CPU1000′的程序狀態(tài)字1020(圖12),圖13前綴控制表的相應表目,圖14轉(zhuǎn)換表地址控制表2400的相應表目,圖15虛擬機控制表的相應表目,圖21實中優(yōu)先級狀態(tài)寄存器1045和圖19VMS控制特征位都被預置于初始狀態(tài)。
我們假設,I/O指令是由虛擬機操作系統(tǒng)發(fā)出,在微程序1050′的控制下,CPU1000′的I/O執(zhí)行線路1030′完成如下處理。
(一)如果不處于高速虛擬機狀態(tài)(VMS控制特征位H=“0”,見圖19),則利用虛擬機控制程序的前綴寄存器1010(圖12),把中斷反映到VMCP的PSA2100,使虛擬機控制程序中斷。
(二)當處于高速虛擬機狀態(tài)(VMS控制特征位H=“1”)時,檢查是否處于虛擬機I/O直接執(zhí)行狀態(tài)(VMS控制特征位D=“1”)(圖19)。
(三)當D=“0”時,中斷虛擬機控制程序。
(四)當D=“1”時,檢查VMS控制特征位R。如果R=“0”,則查找相應的虛擬子通道號轉(zhuǎn)換表2600,以便把給定的虛擬子通道號轉(zhuǎn)換為實子通道號。如果虛擬中斷優(yōu)先級由指令操作數(shù)給出,則查找中斷優(yōu)先級轉(zhuǎn)換表,以便把它轉(zhuǎn)換為實中斷優(yōu)先級。它是否是專用的,由實中斷優(yōu)先級專用狀態(tài)寄存器1049來檢查,并把它寫入子通道控制塊VM信息區(qū)2092′的狀態(tài)字段中(圖16)。
還要寫入虛擬中斷優(yōu)先級和實中斷優(yōu)先級 之間的對應關系。當R=“1”時,不要求任何轉(zhuǎn)換,并寫入同樣的值。
(五)當所獲得的實子通道控制塊2091′(圖16)是專用的子通道,并有專用中斷優(yōu)先級時,執(zhí)行I/O指令。此后的操作與實計算機系統(tǒng)的操作類似。當要求異步I/O設備操作時,子通道在I/O請求隊列2070中排隊(圖8)。把條件碼和控制信息返回到發(fā)出I/O的程序。
(六)如果所獲得的實子通道是共用子通道,或中斷優(yōu)先級是共用的,則中斷虛擬機控制程序并進行模擬操作,把剩下的過程委托給VMCP的模擬操作來進行。
(七)如果由虛擬機OS發(fā)出的I/O指令是檢驗可由虛擬中斷優(yōu)先級接受的(也即可由虛擬中斷優(yōu)先級屏蔽位接受的)I/O中斷請求時,則執(zhí)行以下處理。檢查中斷請求對應于現(xiàn)運行虛擬機的實專用中斷優(yōu)先級。如果不存在I/O中斷請求,則應該檢查共用中斷優(yōu)先級。由于虛擬機控制程序控制著共用中斷優(yōu)先級的中斷保持,因而必須將控制信息傳送給虛擬機控制程序。但是,由于這與直接執(zhí)行的規(guī)則相違背,因而使用VMS的控制特征位И(圖19)。當И=“1”時,這意味著虛擬機控制程序保持著待檢查的I/O中斷保持(可被共用中斷優(yōu)先級和虛擬中斷優(yōu)先級所接受)。于是,中斷虛擬機控制程序。當И=“0”時,不存在這樣的I/O中斷保持,虛擬機控制程序不必中斷,允許直接執(zhí)行。現(xiàn)說明I/O中斷處理。
(1)I/O設備發(fā)出的I/O中斷請求由I/O處理機3000′檢測,相應的實子通道控制塊按HSA2001(圖9)I/O中斷請求隊列2080的相應實中斷優(yōu)先級來排隊,這如同在先有技術系統(tǒng)中所做的一樣。
(2)圖22所示的I/O處理機3000′將實中斷未決寄存器1042′的相應位置于“1”,這也如同在先有技術系統(tǒng)中所做的一樣。
(3)實中斷優(yōu)先級屏蔽位寄存器1041′按前面所述的方式置位。圖22的I/O中斷電路按上述方式工作。我們假定已起動I/O中斷,并已把控制信息傳送給I/O中斷處理微程序1060′。
(4)如果出現(xiàn)具有虛擬機實專用中斷優(yōu)先級的中斷,則占有的虛擬機能夠接受虛擬中斷優(yōu)先級的中斷,因為實中斷優(yōu)先級屏蔽位寄存器1041′和實中斷優(yōu)先級狀態(tài)寄存器1045中已經(jīng)置位。如果占有的虛擬機不能接受中斷,由于程序狀態(tài)字1020I/O屏蔽位以及寄存器1041′和1045的作用,對于那個實中斷優(yōu)先級而言,不能發(fā)生I/O中斷,該控制信息將不傳送給1060′,它由硬件處以未決。
(5)I/O中斷微程序1060′執(zhí)行以下處理。
(一)根據(jù)請求中斷的實中斷優(yōu)先級C,撤除I/O中斷請求隊列2080中的實子通道(圖9)。
(二)檢查VMS控制特征位1090′的虛擬機特征位V和高速虛擬機模式特征位H(圖19),如果V=“0”或H=“0”,則將中斷反映到VMCP的PSA。使用VMCP的前綴寄存器1010(圖12)。
(三)如果V=“1”和H=“1”,檢查虛擬機的I/O直接執(zhí)行模式位D。如果D=“0”,它就不是I/O直接執(zhí)行模式,并把中斷反映到VMCP的PSA。
(四)如果D=“1”,則執(zhí)行以下處理。
(a)用實子通道控制塊的狀態(tài)字段(圖16)來確定子通道是不是專用的,如果它是共用子通道,則把中斷反映到VMCP的PSA。
(b)如果請求中斷的實中斷優(yōu)先級C專用于正在運行的虛擬機,也就是說,如果實中斷優(yōu)先級狀態(tài)寄存器1045的相應位是“0”(見圖21),則把中斷反映到現(xiàn)用虛擬機的PSA,使現(xiàn)用虛擬機繼續(xù)工作。使用虛擬機前綴寄存器1070(圖12)。用實子通道控制塊2092′中的虛擬子通道號或虛擬中斷優(yōu)先號,把I/O中斷信息反映到虛擬機前綴。
(C)當實中斷優(yōu)先級C專用于其他虛擬機時,把中斷反映到虛擬機控制程序。接著,由虛擬機控制程序把中斷反映到VM的PSA。
(d)當實中斷優(yōu)先級C共用時,把中斷反映到虛擬機控制程序。接著,由虛擬機控制程序把中斷反映到虛擬機。虛擬機可以不接受中斷。在這種情況下,虛擬機控制程序把I/O中斷處以未決。
如上所述,當子通道專用并處于專用實中斷優(yōu)先級時,可給這個子通道提供虛擬機操作系統(tǒng)的I/O直接執(zhí)行(無需虛擬機控制程序的干預)。對于I/O中斷來說,只有來自現(xiàn)用虛擬機專用子通道的I/O中斷,才被直接執(zhí)行。對于其他虛擬機專用子通道來的I/O中斷,虛擬機控制程序?qū)⒁M行干預,因為這要對各虛擬機進行調(diào)度。
圖16實子通道控制塊中狀態(tài)字段2093的直接I/O執(zhí)行模式抑制特征位通常為“0”,以便保障這個子通道的直接I/O執(zhí)行模式。在專用子通道中,I/O指令不是來自虛擬機的操作系統(tǒng),而是來自占有的虛擬機,但它可以來自虛擬機控制程序。在此情況下,把在狀態(tài)字段2093中的直接I/O執(zhí)行模式抑制特征位1置位于“1”,一直到虛擬機控制程序的I/O結束為止,以便抑制這個子通道的I/O直接執(zhí)行模式。
因此,這個特征位可在虛擬機控制程序控制下置位和復位。在上述I/O執(zhí)行系統(tǒng)中,要指出以下幾點。
(a)虛擬機系統(tǒng)控制特征位1090′(圖19)的R位可以略去。如果虛擬子通道號和虛擬中斷優(yōu)先級總是要轉(zhuǎn)換的話,或者當虛擬機系統(tǒng)應用本發(fā)明的直接I/O執(zhí)行方式,并且這些號總是相同時,則R位是不必要的。
(b)D特征位可以用H特征位來代替,但高速虛擬機模式特征位H卻不能控制I/O指令的直接執(zhí)行,因為除I/O指令外,它還控制特許指令的直接執(zhí)行。
(C)在I/O中斷處理中,如上所述,來自虛擬機(正在運行的虛擬機除外)專用的實中斷優(yōu)先級的I/O中斷,被反映到虛擬機控制程序。由于占有的虛擬機能夠接收中斷,所以中斷可以反映到那個虛擬機機的PSA,然后以虛擬機控制程序訪問形式把控制轉(zhuǎn)交給虛擬機控制程序。虛擬機的PSA地址可由圖13的前綴控制表來確定。在這種情況下,有必要確定虛擬機的程序狀態(tài)字,因此需要信息,它可以用各種方式根據(jù)虛擬機序號來確定,雖然沒有舉例說明它。
(d)子通道號轉(zhuǎn)換表的起始地址,中斷優(yōu)先級轉(zhuǎn)換表的起始地址,實中斷優(yōu)先級狀態(tài)寄存器1045和實中斷優(yōu)先級專用狀態(tài)寄存器1049(圖21),都由起動虛擬機指令的操作數(shù)來預置初始狀態(tài)(圖17)。換句話說,它們可以由虛擬機控制程序的一個單獨指令來預置初始狀態(tài)。
正如上文所述,按照本發(fā)明,I/O指令由虛擬機操作系統(tǒng)發(fā)出并能直接執(zhí)行,致使VMCP的I/O模擬內(nèi)務操作能大大減少。這是使虛擬機性能非常接近實計算機的一個關鍵功能。
權利要求
1.在一個具有虛擬機系統(tǒng)(VMS)的系統(tǒng)中,VMS至少有一個操作系統(tǒng)(OS),可借助于一個實計算機系統(tǒng)(主系統(tǒng))和一個控制VMS的控制程序(VMCP)同時運行,本系統(tǒng)的特征在于虛擬機系統(tǒng)的I/O執(zhí)行方法包括以下幾步,根據(jù)存儲在實計算機中的信息,確定上述主系統(tǒng)的每個I/O設備是否專用于一個特定的OS;和當上述的I/O設備專用于運行中的OS時,向該I/O設備發(fā)出一個不起動該I/O設備的指令,而當上述的I/O設備不是專用于運行中的OS時,則中斷虛擬機控制程序。
2.根據(jù)權項1定義的一個系統(tǒng),其中包括在主系統(tǒng)的主存儲器(實主存儲器)中含有一個OS的主存儲器作為第一種手段用來將地址從OS主存儲器的轉(zhuǎn)換成實主存儲器的地址;和第二種手段是在OS建立虛擬存儲器時把OS的虛擬地址轉(zhuǎn)換成OS的主存儲器地址,其特征在于該虛擬機系統(tǒng)的I/O執(zhí)行方法包括以下幾步,當OS發(fā)出請求I/O設備進行I/O操作的指令時,確定被該指令指定的I/O設備是否被專用于正在運行的OS;當I/O設備被專用于這個運行的操作系統(tǒng)以執(zhí)行上述指令時,借助上述第一種或第二種手段,把該指令的地址轉(zhuǎn)換成實主存儲器地址;而當該I/O裝置不是專用于運行中的操作系統(tǒng)時,就用上述的指令中斷虛擬機控制程序。
3.根據(jù)權項1定義的一個系統(tǒng),其中有多個I/O中斷優(yōu)先級和中斷控制方式,每種控制方式對應一種優(yōu)先級,用來控制接受與不接受I/O中斷,其特點是該虛擬機系統(tǒng)的I/O執(zhí)行方法包括以下幾步,使第一中斷控制方式的控制內(nèi)容等于運行中的OS中斷優(yōu)先級控制方式的控制內(nèi)容,第一中斷控制方式對應于由運行中的操作系統(tǒng)專用的中斷優(yōu)先級;使第二中斷控制方式(對應于由非運行中操作系統(tǒng)專用的中斷優(yōu)先級)的控制內(nèi)容等于OS相應虛擬中斷優(yōu)先級的中斷接受或不接受狀態(tài),或者使上述的第二中斷控制方式的控制內(nèi)容處于不接受狀態(tài);當I/O中斷請求是從運行中的OS專用的I/O設備和運行中的OS專用的中斷優(yōu)先級發(fā)出時,則把該中斷反映給運行中的OS;當I/O中斷請求是從非上述I/O設備和中斷優(yōu)先級發(fā)出時,則把這個控制信息傳送給虛擬機控制程序。
4.根據(jù)權項3定義的一,這個系統(tǒng),其中有一個I/O直接執(zhí)行模式特征位,它用來指定I/O操作模式,其特征在于該虛擬機系統(tǒng)的I/O執(zhí)行方法包括以下幾步,當上述的特征位處于第一狀態(tài)時就使上述的反映步驟能得以實現(xiàn);而當上述的特征位處于第二狀態(tài)時,就用OS中的任一I/O指令和I/O中斷來中斷虛擬擬機控制程序。
5.根據(jù)權項1定義的一個系統(tǒng),其中每個操作系統(tǒng)有一個第一種轉(zhuǎn)換手段用來把由OS指定的虛擬I/O設備地址轉(zhuǎn)換成實I/O設備地址,其特征在于該虛擬機系統(tǒng)的I/O執(zhí)行方法包括以下步驟,利用上述的第一種轉(zhuǎn)換手段,把由I/O指令指定的虛擬I/O設備地址轉(zhuǎn)換成實I/O設備地址。
6.根據(jù)權項1定義的一個系統(tǒng),其中每個操作系統(tǒng)有一個第二種轉(zhuǎn)換手段用來把由OS指定的虛擬中斷優(yōu)先級轉(zhuǎn)換成實中斷優(yōu)先級,其特征在于該虛擬機系統(tǒng)的I/O執(zhí)行方法包括以下步驟,利用上述第二種轉(zhuǎn)換手段,把由I/O指令指定的虛擬中斷優(yōu)先級轉(zhuǎn)換成實中斷優(yōu)先級。
7.根據(jù)權項5定義的一個系統(tǒng),其特征在于該虛擬機系統(tǒng)的I/O執(zhí)行方法包括以下步驟,當I/O中斷信息被反映到運行中的操作系統(tǒng)時,把I/O中斷請求實I/O設備地址轉(zhuǎn)換成虛擬I/O設備地址。
8.根據(jù)權項5定義的一個系統(tǒng)有一個I/O地址相等模式特征位,用來指示I/O的操作模式,其特征在于該虛擬機系統(tǒng)的I/O執(zhí)行方法包括以下幾步,當上述特征位處于第一狀態(tài)時,使上述的第一狀態(tài)時,使上述的第一和第二種轉(zhuǎn)換手段能得以成立;當上述特征位處于第二狀態(tài)時,使用虛擬I/O地址或虛擬中斷優(yōu)先級作為實I/O設備地址或?qū)嵵袛鄡?yōu)先級。
9.根據(jù)權項2定義的I/O執(zhí)行辦法,其特征在于它包括有以下步驟,把由上述第一種轉(zhuǎn)換手段轉(zhuǎn)換得到的內(nèi)容固定在運行的操作系統(tǒng)中。
10.根據(jù)權項3定義的I/O執(zhí)行方法,其特征在于上述的第一步可以借助于運行中OS的前綴地址存儲器方式,確定運行中的OS的前綴,并把I/O中斷反映到該前綴。
11.一個虛擬機系統(tǒng)的I/O執(zhí)行系統(tǒng)有一個虛擬機系統(tǒng)(VMS),它至少能使一個操作系統(tǒng)(OS)借助一個實計算機系統(tǒng)(主系統(tǒng))同時運行;一個虛擬機控制程序(VMCP),用來控制上述的虛擬機系統(tǒng),其特征在于上述虛擬機系統(tǒng)包括有,實中斷優(yōu)先級狀態(tài)寄存器,它能在上述實計算機系統(tǒng)中存儲多個I/O中斷優(yōu)先級;當與上述寄存器某一個單元相對應的一個中斷優(yōu)先級專用于運行中的OS時,有一些方法可使上述寄存器中至少有一個單元處于第一個狀態(tài)并接受操作系統(tǒng)的控制;當上述的相應的中斷優(yōu)先級被共用或?qū)S糜谄渌僮飨到y(tǒng)時,有一些方式可使上述寄存器的該單元處于第二個狀態(tài)而不問運行中操作系統(tǒng)的中斷控制。
專利摘要
在含有虛擬機系統(tǒng)的系統(tǒng)中,虛擬機系統(tǒng)可借助一個實計算機系統(tǒng)和虛擬機控制程序,至少同時運行一個操作系統(tǒng)(一)虛擬機控制程序備有一轉(zhuǎn)換表,把虛子通道號變?yōu)閷嵶油ǖ捞枺?二)實子通道控制塊有一虛擬機信息區(qū)存有虛子通道號和轉(zhuǎn)換來的實子通道號;(三)該信息區(qū)中一狀態(tài)字段有指明該子通道號是否專用的特征位;(四)當實中斷優(yōu)先級專用于虛擬機時,只有帶專用實中斷優(yōu)先級的子通道的I/O中斷請求才能排進該優(yōu)先級的中斷請求隊列中,則可避免虛擬機在該中斷優(yōu)先級中混和。
文檔編號G06F12/08GK85101171SQ85101171
公開日1987年2月11日 申請日期1985年4月1日
發(fā)明者梅野英典, 久保隆重, 獲原亙, 佐藤博昭, 沢本英雄 申請人:株式會社日立制作所導出引文BiBTeX, EndNote, RefMan
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
洛南县| 黑水县| 吴川市| 湟源县| 南开区| 梨树县| 旺苍县| 浦江县| 宁武县| 吉林市| 梅河口市| 新晃| 桑日县| 静安区| 九龙城区| 行唐县| 奇台县| 阿鲁科尔沁旗| 海南省| 北辰区| 增城市| 柯坪县| 通山县| 南汇区| 潢川县| 岫岩| 澄江县| 垦利县| 教育| 若尔盖县| 桂平市| 巧家县| 武宁县| 田林县| 白水县| 平利县| 安乡县| 道真| 合作市| 海安县| 河池市|