(57)【要約】【課題】本発明は、情報処理システムの性能劣化を招く事なく、各IPまたはACに入出力割り込みを振り分けて処理させる事を可能とする制御方式に関する。従来の技術では、入出力割込み処理を各IPおよびACに割り振り、分散化する事は可能であるが、その分別の性能劣化を招いていた。本発明によれば、性能劣化を招くことなく入出力割込み処理を各IPおよびACに分散させる事が可能となる。【解決手段】入出力操作命令実行時に各IPおよびAC用のISCを入出力装置に設定する事で、それぞれのIPやACに入出力割込み処理を割り振る事が可能となる。【選択図】図１
2010026832.tif 000002
【特許請求の範囲】
【請求項１】
2台以上の命令プロセッサ(以下IPと略す)を構成に持つ情報処理装置において、各IPで実装されているプログラム状態を示すレジスタの入出力割り込み受け付けが可能な状態かつ、入出力装置に設定されている割り込み優先順位を示す番号(割り込みサブクラスコード、以下ISCと略す)に対応する、IP側に実装された割り込みサブクラスマスクのビットが有効な時、入出力操作命令を実行した段階でその入出力割り込みを明示的に特定のIPに処理させる事を特徴とする情報処理装置。
【請求項２】
IPに加え、IP処理の負荷を低減する目的で実装され、仮想テープ機能やオープン系テープ装置へのバックアップ処理、オープン連携処理などを実行する事が可能なアクセラレートプロセッサ(以下ACと略す)を構成に持つ情報処理装置において、IPまたはACで実装されているプログラム状態を示すレジスタの入出力割り込み受け付けが可能な状態かつ、入出力装置に設定されているISCに対応する、IPおよびAC側に実装された割り込みサブクラスマスクのビットが有効な時、入出力操作命令を実行した段階でその入出力割り込みを明示的に特定のIPまたはACに処理させる事を特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理システムの性能劣化を招く事なく、各IPまたはACに入出力割り込みを振り分けて処理させる事を可能とする制御方式に関する。
【背景技術】
【０００２】
入出力装置からIPまたはACへの入出力割り込みは、IPまたはACが入出力装置に対して起動や停止などの動作要求命令を実行する事による装置側からの応答として発生する。また、入出力装置自身が単独で状態変化をIPまたはACへ報告する時にも発生し、IPまたはACはこの割り込みを受け付ける事で、入出力動作が処理される。このとき、入出力装置側はISCを持ち、IPおよびAC側は割り込みサブクラスマスクを持ち、入出力装置のISCに対応する割り込みサブクラスマスクが有効な状態にあるIPまたはACが、入出力割り込みを受け付ける事が出来る。
【０００３】
複数のIPおよびACが、あるISCに対して同等に入出力割り込みを受け付ける事が可能な状態にある場合、入出力割り込みは情報処理装置で定義された優先順位でIPまたはACに受け付けられ、処理される。
【０００４】
入出力装置に対するISCの設定は入出力情報設定命令により行われる。この入出力情報設定命令は、オペランドで指定された入出力装置に関する固有情報を入出力装置毎に設定し、ISCもその固有情報に含まれる。従って、ISCを変更する場合は、入出力情報設定命令を実行する必要がある。
【０００５】
【非特許文献１】Mシリーズ処理装置(M/ASA) (8080-2-146)
【発明の開示】
【発明が解決しようとする課題】
【０００６】
従来の入出力割り込み処理方式では、情報処理装置によって割り込みを受け付ける優先順位が定められている為、入出力割り込み処理が特定のIPまたはACに集中する傾向にあり、システム性能の側面で効率的といえない。
【０００７】
例えば、ある入出力装置に設定されたISCに対して、全てのIPやACが受け付け可能となるよう割り込みサブクラスマスクを設定し、IPやACで入出力動作要求命令の実行を繰り返した場合、繰り返し発生する入出力割り込みはIPおよびAC全体に分散して割り込むのではなく、情報処理装置で定義された優先順位に従って、特定のIPまたはACに入出力割り込みの受け付けが偏りがちとなる。
【０００８】
特に、ACが行う仮想テープ機能やオープン系テープ装置へのバックアップ処理などで発生する入出力割り込みは、本来ACで入出力割り込みを受け付け、処理されるべきであるが、ACではなくIPで受け付けられ処理されると、IPの負荷が増大する。さらに、ACが受け付けるべき入出力割り込みをIPが処理した場合、IPからACへ割り込みが上がった事を報告する処理を実行する必要があり、最終的にシステム全体の性能劣化を招く。
【０００９】
このようなケースで、なるべくACに入出力割込みを受け付けるよう制御するには、入出力装置に設定されたISCに対して、個別のIPやACの割り込みサブクラスマスクを随時背反となるよう切り替えて、各IPおよびACで入出力操作命令を実行する必要がある。しかし、この制御を行うと、各IPおよびACで割り込みサブクラスマスクを変更する命令の実行頻度が増加し、その分の性能劣化を招く。
【００１０】
また、各IPやACの割り込みサブクラスマスクは背反の状態で固定し、入出力装置に設定するISCを随時変更し、IPまたはACが入出力割り込みを背反で受け付けるよう制御する場合も、ISCを変更するための入出力情報設定命令を頻繁に実行することとなり、システム性能の劣化を招く。特に、情報処理装置が仮想計算機システムとして動作していて、仮想計算機モード(以下ゲストと略す)で入出力情報設定命令が直接実行できないような情報処理装置の場合、ゲストでISCを変更する為の入出力情報設定命令が実行されると、一旦仮想計算機制御モード(以下ホストと略す)に制御が移り、ホスト側で入出力情報設定命令のシミュレーションを実行し、再びゲストにエントリし、入出力情報設定命令の次から処理を再開する。すなわち、ゲストモードからホストモードへの遷移処理、ホストによる入出力情報設定命令のシミュレーション処理、ホストモードからゲストモードへの遷移処理がオーバーヘッドとなり、性能劣化は増大なものとなる。
【００１１】
前節で述べてきた問題に対して解決しようとする課題は、現状の入出力割り込み制御方式で入出力割り込みの分散化を目的とした割り込みサブクラスマスクやISCの設定制御を行うと、その制御処理そのものが性能劣化要因となる点である。しかし、入出力情報設定命令とは別の手段で、性能劣化なしに入出力装置のISCが変更でき、またIPとAC側の割り込みサブクラスマスクの変更を行わずに、入出力割り込みの受け付けが背反となるよう制御できれば、課題は解決できる。
【課題を解決するための手段】
【００１２】
本発明は、あらかじめ各IPおよびACで入出力割り込みを受け付ける為のISCを設定し、各IPまたはACで入出力装置に対する動作要求命令を実行する時に、それぞれのISCに変更する事を特徴とする。
【発明の効果】
【００１３】
本発明により、ISC変更を目的とする入出力情報設定命令実行の必要がなくなり、またIPとACの間で入出力割込みを報告する処理に要するオーバーヘッドが低減できる。さらに、入出力割り込みを各IPおよびACに分散することが可能となり、システム全体の性能も向上できる。
【発明を実施するための最良の形態】
【００１４】
以下、本発明の実施例を図面に基づいて説明する。
【実施例１】
【００１５】
図１は、入出力割り込み受け付け方法に関する、IP側の基本的な制御方式について示す。
【００１６】
例えば、入出力装置が3台あり(100、101、102)、入出力装置0(100)にはISC=0が設定されているとする。同様に、入出力装置1(101)にはISC=1が、 入出力装置2(102)にはISC=2が設定されているとする。また、情報処理装置内のCPU(104)はIP0(108)とIP1(109)で構成されているとする。各IP内に実装されている割込みサブクラスマスクはビット0〜7の1バイトから成り、各ビットは入出力装置に設定されているISC番号に対応する。例えば、割込みサブクラスマスクのビット0はISC=0に対応し、ビット1はISC=1に、ビット7はISC=7に対応している。
【００１７】
IP0(108)の割込みサブクラスマスクはビット0が’1’に設定された状態(M=x’80’)、即ちISC=0の割り込みが受け付け可能な状態、またIP1(109)の割込みサブクラスマスクはビット1が’1’に設定された状態(M=x’40’)、即ちISC=1の割り込みが受け付け可能な状態であるとする。
【００１８】
入出力装置(100)で入出力割り込みが発生した場合(103)、割り込み信号がCPU(104)に上がる。この時、入出力装置(100)のISCは’0’なので、ISC=0に対応する割込みサブクラスマスクが’1’のIPに割り込み処理が受け付けられる。ここで、IP0(108)の割込みサブクラスマスクのビット0は’1’であり、IP1(109)の割込みサブクラスマスクのビット0は’0’であり、CPU(104)内で割り込み可能な条件に当てはまるIPはIP0(108)なので、IP0が入出力装置(100)の入出力割り込みを受け付ける(105)。
【００１９】
同様に、入出力装置(101)で入出力割り込みが発生した場合(103)、割り込み信号がCPU(104)に上がり、入出力装置(101)のISCは’1’なので、ISC=1に対応する割込みサブクラスマスクが’1’のIPに割り込み処理が受け付けられる。ここで、IP0(108)の割込みサブクラスマスクのビット1は’0’であり、IP1(109)の割込みサブクラスマスクのビット1は’1’であり、CPU(104)内で割り込み可能な条件に当てはまるIPはIP1(109)なので、IP1が入出力装置(101)の入出力割り込みを受け付ける(106)。
【００２０】
入出力装置(102)で入出力割り込みが発生した場合(103)、割り込み信号がCPU(104)に上がるが、入出力装置(103)のISCは’2’であり、IP0(108) とIP1(109)の割込みサブクラスマスクのビット2は共に’0’である為、入出力割り込みを受け付ける事はできず、CPU(104)内で保留された状態となる(107)。
【００２１】
入出力割り込みが保留された状態から、割り込み処理が実行されるよう制御するには、IP0かIP1の割込みサブクラスマスクのビット2を’1’に変更する必要がある。また、割込みサブクラスマスクを変更しない場合は、あらかじめ入出力情報設定命令により、入出力装置(102)のISCを’0’か’１’に変更しておく必要がある。
【００２２】
図２は本発明における基本的な実施形態を示す。
【００２３】
例えば、情報処理装置のCPU(200)はIP0(201)、IP1(202)およびIP2(203)の命令プロセッサとAC0(204)、AC1(205)のアクセラレートプロセッサで構成されているとする。各IPおよびACは、それぞれに割り込みサブクラスマスクが実装されていて、IP0(201)は割込みサブクラスマスクのビット0が’1’で、これ以外のビットは’0’(M=x’80’)に設定され、ISC=0の入出力割込みのみが受け付け可能な状態にある。IP1(202)およびIP2(203)は、割込みサブクラスマスクのビット1と2が’1’で、これら以外のビットは’0’(M=x’60’)に設定されていて、ISC=1と2の入出力割込みが受け付け可能な状態にある。また、AC0(204)は、割込みサブクラスマスクのビット6が’1’で、これ以外のビットは’0’(M=x’02’)に設定されていて、ISC=6の入出力割込みが受け付け可能な状態にある。AC1(205)は、割込みサブクラスマスクのビット7が’1’で、これ以外のビットは’0’(M=x’01’)に設定されていて、ISC=7の入出力割込みが受け付け可能な状態にある。
【００２４】
各IPやACで入出力装置を操作する命令が実行されたとする(206)。例えば、IP0(201)で入出力装置(219)に対して起動命令(207)が実行されると、当該命令は、CPU(200)からアクセス可能な領域に持つISC管理テーブル(212)よりIP0用のISC=0(213)を読み出し、入出力装置(219)のISCを’0’に設定し(218)、起動命令(207)の処理を完了する。その後、入出力装置(219)側の起動処理が完了するとISC=0の入出力割り込み(220)が発生し、CPU(200)の中でISC=0の割り込み受け付け可能なIP0(201)が入出力割り込みを受け付け、起動処理が完了する。従って、IP0(201)で入出力操作処理を行った事による入出力割り込みは、IP0(201)でしか処理されない。
【００２５】
例えば、IP1(202)で入出力装置(219)に対して起動命令(208)が実行されると、当該命令は、CPU(200)からアクセス可能な領域に持つISC管理テーブル(212)よりIP1用のISC=1(214)を読み出し、入出力装置(219)のISCを’1’に設定し(218)、起動命令(208)の処理を完了する。その後、入出力装置(219)側の起動処理が完了するとISC=1の入出力割り込み(220)が発生し、CPU(200)の中でISC=1の割り込み受け付け可能なIP1(202)またはIP2(203)が入出力割り込みを受け付け、起動処理が完了する。従って、IP1(202)で入出力操作処理を行った事による入出力割り込みは、IP2(203)でも受け付け可能であり、割込みサブクラスマスクの設定次第で他のIPでも受け付け可能である。
【００２６】
同様に、IP2(203)で入出力装置(219)に対して停止命令(209)が実行されると、当該命令は、CPU(200)からアクセス可能な領域に持つISC管理テーブル(212)よりIP2用のISC=2(215)を読み出し、入出力装置(219)のISCを’2’に設定し(218)、停止命令(209)の処理を完了する。その後、入出力装置(219)側の停止処理が完了するとISC=2の入出力割り込み(220)が発生し、CPU(200)の中でISC=2の割り込み受け付け可能なIP1(202)またはIP2(203)が入出力割り込みを受け付け、停止処理が完了する。従って、IP2(203)で入出力操作処理を行った事による入出力割り込みは、IP1(202)でも受け付け可能であり、割込みサブクラスマスクの設定次第で他のIPでも受け付け可能である。
【００２７】
さらに、AC0(204)で入出力装置(219)に対して起動命令(210)が実行されると、当該命令は、CPU(200)からアクセス可能な領域に持つISC管理テーブル(212)よりAC0用のISC=6(216)を読み出し、入出力装置(219)のISCを’6’に設定し(218)、起動命令(208)の処理を完了する。その後、入出力装置(219)側の起動処理が完了するとISC=6の入出力割り込み(220)が発生し、CPU(200)の中でISC=6の割り込み受け付け可能なAC0(204)が入出力割り込みを受け付け、起動処理が完了する。従って、AC0(204)で入出力操作処理を行った事による入出力割り込みは、AC0(204)でしか処理されない。
【００２８】
同様に、AC1(205)で入出力装置(219)に対して停止命令(211)が実行されると、当該命令は、CPU(200)からアクセス可能な領域に持つISC管理テーブル(212)よりAC1用のISC=7(217)を読み出し、入出力装置(219)のISCを’7’に設定し(218)、停止命令(211)の処理を完了する。その後、入出力装置(219)側の起動処理が完了するとISC=7の入出力割り込み(220)が発生し、CPU(200)の中でISC=7の割り込み受け付け可能なAC1(205)が入出力割り込みを受け付け、起動処理が完了する。従って、AC1(205)で入出力操作処理を行った事による入出力割り込みは、AC1(205)でしか処理されない。
【００２９】
図３は、仮想計算機システムでにおけるISC管理テーブルの設定方法と使用例について示す。
【００３０】
図３に示す情報処理装置のCPUは、IPとACで構成されているとする。
【００３１】
ISC管理テーブル(311)はCPUからアクセス可能な領域に設定され、ISC管理ID毎にIP用ISCとAC用ISCの値をエントリとして持つ。ISC管理テーブル(311)内の値は、ISCテーブル変更命令で更新される。設定するISCエントリの値は、この命令のオペランドで指定される。
【００３２】
例えば、ホスト(300)でISCテーブル変更命令を実行する場合、オペランドで指定されたIP用ISC(303)とAC用ISC(304)の値はそれぞれ’0’と’1’であり、これらの値はISC管理テーブル(311)内のISC管理ID=0に対応するIP用ISCとAC用ISCに格納される(309)。
【００３３】
同様に、ゲスト1(301)でISCテーブル変更命令が実行された場合、オペランドで指定されたIP用ISC(305)とAC用ISC(306)の値はそれぞれ’2’と’3’であり、これらの値はISC管理テーブル(311)内のISC管理ID=1に対応するIP用ISCとAC用ISCに格納される(312)。
【００３４】
さらに、ゲスト2(302)でISCテーブル変更命令が実行された場合、オペランドで指定されたIP用ISC(307)とAC用ISC(308)の値はそれぞれ’4’と’5’であり、これらの値はISC管理テーブル(311)内のISC管理ID=2に対応するIP用ISCとAC用ISCに格納される(313)。
【００３５】
ISC管理テーブル(311)に設定されたIP用ISCとAC用ISCは、入出力操作命令が実行される時に読み出される。この時、入出力操作命令が動作するホストまたはゲストモードにより、読み出すISC管理IDが識別される。
【００３６】
例えば、ホスト(317)で入出力装置(320)に対して起動命令を実行する場合、ISC管理テーブル(311)に格納されているISC管理ID=0のIP用ISCまたはAC用ISCが読み出される(314)。この時、起動命令を実行するCPUがIPの場合は入出力装置(320)のISCを’0’に設定し、起動命令を実行するCPUがACの場合は入出力装置(320)のISCを’1’に設定する。
【００３７】
また、ゲスト1(318)で入出力装置(321)に対して起動命令を実行する場合、ISC管理テーブル(311)に格納されているISC管理ID=1のIP用ISCまたはAC用ISCが読み出される(315)。
この時、起動命令を実行するCPUがIPの場合は入出力装置(321)のISCを’2’に設定し、起動命令を実行するCPUがACの場合は入出力装置(321)のISCを’3’に設定する。
【００３８】
同様に、ゲスト2(319)で入出力装置(322)に対して停止命令を実行する場合、ISC管理テーブル(311)に格納されているISC管理ID=2のIP用ISCまたはAC用ISCが読み出される(316)。この時、停止命令を実行するCPUがIPの場合は入出力装置(322)のISCを’4’に設定し、起動命令を実行するCPUがACの場合は入出力装置(322)のISCを’5’に設定する。
【産業上の利用可能性】
【００３９】
本発明は、情報処理装置内にISC管理テーブルとそのエントリを更新する命令を新設し、また、入出力操作命令で入出力装置のISCを設定する機能を追加し、OS側でISC管理テーブルと割り込みマスクを制御する事により、容易に利用する事が可能である。
【図面の簡単な説明】
【００４０】
【図１】入出力割り込み受け付け方式を示す図。
【図２】本発明の基本的な実施形態を示す図。
【図３】ISC管理テーブルの設定方法と使用例を示す図。
【符号の説明】
【００４１】
100〜102…入出力装置、104…CPU、108…IP0、109…IP1。
【図１】
2010026832.tif 000003
【図２】
2010026832.tif 000004
【図３】
2010026832.tif 000005