以下、本発明の一実施例について図面を参照して説明する。
図1は、本発明の一実施例の情報処理装置を示したブロック図である。
図1において、情報処理装置1Aは、診断処理装置(DGP)1000と、複数の論理カード(CELLn)200n(具体的には、論理カード2000〜2007)と、複数のチャネル装置(CHn)300n(具体的には、チャネル装置3000〜3007)と、バス5000とを含む。
診断処理装置1000と、論理カード2000〜2007と、チャネル装置3000〜3007とは、バス5000を介して相互に接続されている。
図2は、論理カード200nの一例を示したブロック図である。さらに言えば、図2は、情報処理装置1A内の、診断処理装置1000、論理カード2000、論理カード2001、チャネル装置3000、チャネル装置3001およびバス5000を示したブロック図である。
論理カード2000には、複数の演算処理装置(EPUn)10x(具体的には、演算処理装置100〜102)と、入出力処理装置(IOPn)200と、メモリ300とが実装されている。
論理カード2001には、複数の演算処理装置(EPUn)10x(具体的には、演算処理装置104〜106)と、入出力処理装置(IOPn)201と、メモリ301とが実装されている。
なお、図2には示していないが、他の論理カード(具体的には、論理カード2002〜2007)にも、複数の演算処理装置(EPUn)10x(具体的には、3台の演算処理装置)と、入出力処理装置(IOPn)20nと、メモリ30nとが実装されている。
論理カード2000〜2007内の各演算処理装置10x、入出力処理装置20nおよびメモリ30nも、バス5000に接続されており、互いにアクセスすることができる。
なお、各演算処理装置10xは同一構成である。各演算処理装置10xは、自己の上で動作するソフトウェア(以下、単に「ソフトウェア」と称する。)の指示に応じて、演算処理を行う。
各チャネル装置300nは、磁気ディスク装置等の周辺装置(PUn)400n(具体的には、周辺装置4000〜4007)のいずれかと接続されている(図1参照)。このため、各演算処理装置10xは、メモリ300〜307と周辺装置4000〜4007との間でデータ転送を行うことができる。
なお、本実施例では、論理カード200nの数を8としたが、論理カード200nの数は適宜変更可能である。
また、本実施例では、論理カード200nが3つの演算処理装置10xを含むようにしたが、論理カード200nに含まれる演算処理装置10xの数は適宜変更可能である。
図3は、演算処理装置10xの一例を示したブロック図である。なお、各演算処理装置10xは同一構成なので、図3では、演算処理装置10xの一例として演算処理装置100を示している。
図3において、演算処理装置100は、処理部100−1と、ファームウェア(FW)100−2と、ローカルメモリ(LM)100−3とを含む。
ファームウェア100−2は、ソフトウェア(この場合、演算処理装置100上で動作するソフトウェア)からの指示を処理する。
処理部100−1は、ファームウェア100−2からの指示に応じて処理を行う。
ローカルメモリ100−3は、ソフトウェアからの指示を処理するのに必要な情報を格納する。
図4は、演算処理装置100が有する機能を示した機能ブロック図である。
図4において、演算処理装置100は、CHnデータ転送指示部10と、CHn転送終了報告部11と、CHn障害発生報告部12と、CHn障害回復成功報告部13と、CHn障害回復失敗報告部14と、CHn交換完了報告部15と、CHn切り離し部16と、CHn組込部17と、ソフトウェア実行部18を含む。
なお、ソフトウェア実行部18は、処理部100−1が演算処理装置100上のソフトウェアを実行することによって実現される。
また、CHnデータ転送指示部10と、CHn転送終了報告部11と、CHn障害発生報告部12と、CHn障害回復成功報告部13と、CHn障害回復失敗報告部14と、CHn交換完了報告部15と、CHn切り離し部16と、CHn組込部17とは、処理部100−1がファームウェア100−2を実行することによって実現される。
CHnデータ転送指示部10は、ソフトウェア(ソフトウェア実行部18)からの指示にしたがって、メモリ300ないし307と周辺装置4000ないし4007との間の、チャネル装置3000ないし30007を介したデータ転送を、入出力処理装置200ないし207に指示する。なお、CHnデータ転送指示部10の動作を規定するソフトウェアは、ファームウェア100−2に含まれる。
CHn転送終了報告部11は、入出力処理装置200ないし207から転送終了報告を受け取ると、ソフトウェアに転送終了を報告する。なお、CHn転送終了報告部11の動作を規定するソフトウェアは、ファームウェア100−2に含まれる。
CHn障害発生報告部12は、診断処理装置1000より、チャネル装置3000ないし3007を制御する入出力処理装置200ないし207で障害が発生した旨の報告を受け取ると、その旨をソフトウェアに報告する。なお、CHn障害発生報告部12の動作を規定するソフトウェアは、ファームウェア100−2に含まれる。
CHn障害回復成功報告部13は、障害発生後に、診断処理装置1000から入出力処理装置200ないし207が切り替わって回復成功した旨の報告を受け取ると、その旨をソフトウェアに報告する。なお、CHn障害回復成功報告部13の動作を規定するソフトウェアは、ファームウェア100−2に含まれる。
CHn障害回復失敗報告部14は、障害発生後に、診断処理装置1000から入出力処理装置200ないし207の切り替わりが失敗して回復失敗した旨の報告を受け取ると、その旨をソフトウェアに報告する(図43参照)。なお、CHn障害回復失敗報告部14の動作を規定するソフトウェアは、ファームウェア100−2に含まれる。
CHn交換完了報告部15は、診断処理装置1000より、障害の発生した入出力処理装置200ないし207が交換された旨の報告を受け取ると、その旨をソフトウェアに報告する。なお、CHn交換完了報告部15の動作を規定するソフトウェアは、ファームウェア100−2に含まれる。
CHn切り離し部16は、ソフトウェアからの指示により指定されたチャネル装置3000ないし3007の切り離しを行う。なお、CHn切り離し部16の動作を規定するソフトウェアは、ファームウェア100−2に含まれる。
CHn組込部17は、ソフトウェアからの指示により指定されたチャネル装置3000ないし3007の組込を行う。なお、CHn組込部17の動作を規定するソフトウェアは、ファームウェア100−2に含まれる。
図5は、論理カードに含まれるメモリ30nの一例を示したブロック図である。なお、各メモリ30nは同一構成なので、図5では、メモリ30nの一例としてメモリ300を示している。
図5において、メモリ300は、IOP構成テーブル400と、CH構成テーブル500とを含む。
IOP構成テーブル400は、入出力処理装置200ないし207が、チャネル装置3000〜3007のどのチャネル装置を制御しているかを示す情報を格納する。
図6は、IOP構成テーブル400の一例を示した説明図である。
図6において、IOP構成テーブル400は、入出力処理装置200〜207ごとに2つの入力欄を持ち、これらの入力欄は、入出力処理装置200〜207の識別子であるIOP番号順(IOP0〜IOP7)に配置されている。
各入力欄には、入出力処理装置200〜207のIOP番号(IOP0〜IOP7)と、そのIOP番号にて識別される入出力処理装置200ないし207の現況を示す現況情報とが対応づけられて格納される。
なお、入出力処理装置200ないし207が、チャネル装置3000〜3007のいずれかを制御している場合、その制御されているチャネル装置3000ないし3007の識別子であるCH番号(CH0ないしCH7)が、入出力処理装置200ないし207の現況情報として、用いられる。
また、入出力処理装置200ないし207が、今はチャネル装置3000ないし3007を制御していないが、チャネル装置3000ないし3007を制御可能である場合、「利用可能」が、現況情報として用いられる。
また、入出力処理装置200ないし207が予備と定義されチャネル装置3000ないし3007を制御できない場合、「予備」が、現況情報として用いられる。
また、入出力処理装置200ないし207が、障害によりチャネル装置3000ないし3007を制御できない場合、「利用不能」が、現況情報として用いられる。
図5に戻って、CH構成テーブル500は、チャネル装置3000ないし3007が入出力処理装置200〜207のどの入出力処理装置によって制御されているかを示す情報を格納する。
図7は、CH構成テーブル500の一例を示した説明図である。
図7において、CH構成テーブル500は、チャネル装置3000〜3007ごとに1つの入力欄を持ち、これらの入力欄は、チャネル装置3000〜3007の識別子であるCH番号順(CH0ないしCH7)で配置されている。
各入力欄には、チャネル装置3000〜3007のCH番号(CH0ないしCH7)と、そのCH番号にて識別されるチャネル装置3000ないし3007の現状を示す現状情報とが対応づけられて格納される。
なお、チャネル装置3000ないし3007が入出力処理装置200ないし207のいずれかによって制御されている場合、その制御している入出力処理装置200ないし207の識別子であるIOP番号(IOP0ないしIOP7)が、現状情報として用いられる。
また、チャネル装置3000ないし3007が利用できない場合、「利用不能」が、現状情報として用いられる。
図2に戻って、診断処理装置1000は、情報処理装置1Aの起動および停止ならびに各装置の対応関係制御および障害処理を行う。
図8は、診断処理装置1000の一例を示したブロック図である。
図8において、診断処理装置1000は、処理部1001と、ファームウェア(FW)1002と、ローカルメモリ(LM)1003とを含む。
ファームウェア1002は、情報処理装置1Aの起動および停止、各装置の対応関係制御および障害処理を行う。
処理部1001は、ファームウェア1002の指示に応じて処理を行う。
ローカルメモリ1003は、情報処理装置1Aの構成情報を格納し、また、各処理が行われる際に情報を格納する。
図9は、ローカルメモリ1003の一例を示した説明図である。
図9において、ローカルメモリ1003は、IOP構成情報1004と、CH構成情報1005とを格納する。
IOP構成情報1004は、情報処理装置1Aが起動された際の、入出力処理装置200ないし207の状態を示す。
図10は、IOP構成情報1004の一例を示した説明図である。
IOP構成情報1004は、入出力処理装置200〜207ごとに1つの入力欄を有し、IOP番号順(IOP0〜IOP7)で配置されている。
各入力欄には、入出力処理装置200〜207のIOP番号(IOP0ないしIOP7)と、そのIOP番号にて識別される入出力処理装置200ないし207の、情報処理装置1Aの起動時の状態を示す起動状況情報とが対応づけて格納される。
なお、情報処理装置1Aの起動時に、入出力処理装置200ないし207が利用可能となるように設定される場合、「利用可能」が、起動状況情報として用いられる。
また、入出力処理装置200ないし207が、情報処理装置1Aの起動時に予備となるように設定される場合、「予備」が、起動状況情報として用いられる。
また、入出力処理装置200ないし207が、情報処理装置1Aの起動時に利用不能となるように設定される場合、「利用不能」が、起動状況情報として用いられる。
図9に戻って、CH構成情報1005は、情報処理装置1Aが起動された際の、チャネル装置3000ないし3007の状態を示す。
図11は、CH構成情報1005の一例を示した説明図である。
CH構成情報1005は、チャネル装置3000〜3007ごとに1つの入力欄を有し、CH番号順(CH0ないしCH7)で配置されている。
各入力欄には、チャネル装置3000〜3007のCH番号(CH0ないしCH7)と、そのCH番号にて識別されるチャネル装置3000〜3007の、情報処理装置1Aの起動時の状態を示す起動状態情報とが対応づけて格納される。
なお、チャネル装置3000〜3007が情報処理装置1Aの起動時に利用可能となるように設定される場合、「利用可能」が、起動状態情報として用いられる。
また、チャネル装置3000〜3007が情報処理装置1Aの起動時に利用不能となるように設定される場合、「利用不能」が、起動状態情報として用いられる。
IOP構成情報1004とCH構成情報1005は、情報処理装置1Aの構成にしたがって、診断処理装置1000に設けられたスイッチにより外部から設定される。
図12は、診断処理装置1000が有する機能を示した機能ブロック図である。
図12において、診断処理装置1000は、CH組込部20と、CHn組込部21と、CHn切り離し部22と、障害IOPm切替部23と、障害IOPm交換部24と、ローカルメモリ1003とを含む。
なお、CH組込部20と、CHn組込部21と、CHn切り離し部22と、障害IOPm切替部23と、障害IOPm交換部24とは、処理部1001がファームウェア1002を実行することによって実現される。
CH組込部20は、情報処理装置1Aの起動時に、IOP構成情報1004とCH構成情報1005に従って、入出力処理装置200〜207とチャネル装置3000〜3007を利用可能にし、また、入出力処理装置200〜207とチャネル装置3000〜3007を対応付け、また、演算処理装置10xが入出力処理装置200〜207とチャネル装置3000〜3007を利用可能にする。なお、CH組込部20の動作を規定するソフトウェアは、ファームウェア1002に含まれる。
CHn組込部21は、演算処理装置10xからの指示により入出力処理装置200〜207とチャネル装置3000〜3007を対応付け、演算処理装置10xが周辺装置4000〜4007を利用可能にする。なお、CHn組込部21の動作を規定するソフトウェアは、ファームウェア1002に含まれる。
CHn切り離し部22は、演算処理装置10xからの指示により入出力処理装置200〜207とチャネル装置3000〜3007の対応付けを解除し、演算処理装置10xが周辺装置4000〜4007を利用不能にする。なお、CHn組込部21の動作を規定するソフトウェアは、ファームウェア1002に含まれる。
障害IOPm切替部23は、入出力処理装置200〜207の障害発生時に、入出力処理装置200〜207とチャネル装置3000〜3007の対応付けを解除する。障害IOPm切替部23は、さらに、演算処理装置100〜123に、障害が発生した入出力処理装置200ないし207に対応するチャネル装置200ないし207で障害が発生した旨を通知する。
また、障害IOPm切替部23は、予備または未使用の、使用可能なSLOTを持つ入出力処理装置200〜207を、障害の発生した入出力処理装置200ないし207が対応していたチャネル装置3000ないし3007に対応させて演算処理装置10xが継続して周辺装置4000ないし4007を利用可能にし、その後、演算処理装置10xに障害の回復成功を報告する。
なお、障害IOPm切替部23の動作を規定するソフトウェアは、ファームウェア1002に含まれる。
障害IOPm交換部24は、障害の発生した入出力処理装置200ないし207が交換されたとき、交換された入出力処理装置200ないし207を利用可能にし、交換が完了したことを演算処理装置10xに報告する。
図2に戻って、入出力処理装置200〜207は、演算処理装置10xからの指示により、診断処理装置1000によって対応されたチャネル装置3000ないし3007を制御して、その制御されたチャネル装置3000ないし3007に接続された周辺装置4000ないし4007とメモリ300ないし307との間でデータ転送を行う。
周辺装置4000ないし4007とメモリ300ないし307とのデータ転送は、入出力処理装置200ないし207を介して行われる。
図13は、入出力処理装置20nの一例を示したブロック図である。なお、各入出力処理装置20nは同一構成なので、図13では、入出力処理装置20nの一例として入出力処理装置200を示している。
図13において、入出力処理装置200は、処理部200−1と、ファームウェア200−3と、ローカルメモリ200−4とを含む。
ファームウェア200−3は、演算処理装置10xまたは診断処理装置1000からの指示に応じて処理を行う。
処理部200−1は、ファームウェア200−3からの指示に応じて処理を行う。
ローカルメモリ200−4は、ファームウェア200−3と処理部200−1がチャネル装置3000〜3007を制御してデータ転送を行うために必要な情報を格納する。
ローカルメモリ200−4は、2つのSLOT(スロット)200−5、200−6を含む。各SLOTは、1台のチャネル装置3000ないし3007を制御してデータ転送するために必要な情報を格納する。
また、各SLOT200−5、200−6は、未使用なのか、または、チャネル装置3000ないし3007で使用されているかを示す情報を格納する。その格納された情報は、ファームウェア200−3にて読み出される。ファームウェア200−3は、その読み出された情報に基づいて、各SLOT200−5、200−6が未使用なのか、または、チャネル装置3000ないし3007で使用されているかを判断する。なお、ファームウェア200−3は、各SLOT200−5、200−6に対して読み書きが可能である。
処理部200−1は、SLOT切替部200−2を含む。
SLOT切替部200−2は、SLOT200−5とSLOT200−6のいずれの情報にしたがってチャネル装置3000ないし3007を制御するかを決定する。
具体的には、SLOT切替部200−2は、ファームウェア200−3によって制御され、SLOT200−5または200−6の情報を使用してデータ転送を行うかを制御することができる。
これらの機能により、入出力処理装置200〜207は同時に2台のチャネル装置3000〜3007を制御してデータ転送を行うことが可能となる。
図14は、入出力処理装置200が有する機能を示した機能ブロック図である。
図14において、入出力処理装置200は、CHn組込部30と、CHn切り離し部31と、CHnデータ転送部32とを含む。なお、CHn組込部30と、CHn切り離し部31と、CHnデータ転送部32とは、処理部200−1がファームウェア200−3を実行することによって実現される。
CHn組込部30は、診断処理装置1000または演算処理装置10xからの指示により、その指示により指定されたチャネル装置3000ないし3007をデータ転送できるように設定し、演算処理装置10xが周辺装置4000ないし4007を利用可能にする。なお、CHn組込部30の動作を規定するソフトウェアは、ファームウェア200−3に含まれる。
CHn切り離し部31は、診断処理装置1000または演算処理装置10xからの指示により、チャネル装置3000ないし3007の動作を停止させ、演算処理装置10xが周辺装置4000ないし4007を利用不能にする。
CHnデータ転送部32は、演算処理装置10xからの指示により、その指示にて指定されたチャネル装置3000ないし3007を使用してデータ転送を行う。
次に、動作の概要を説明する。
チャネル装置300nを制御する入出力処理装置20nで障害が発生すると、診断処理装置1000は、入出力処理装置20nでの障害発生を検出する。
診断処理装置1000は、入出力処理装置20nでの障害発生を検出すると、障害IOPm切替部23を動作させる。
障害IOPm切替部23は、もう1台チャネル装置3000〜3007を制御可能な入出力処理装置20n+1、または、予備の入出力処理装置20n+1に、チャネル装置300nを制御させる。
その後、障害IOPm切替部23は、チャネル装置300nで障害が発生し、その障害が回復したことを、演算処理装置10xに報告する。
さらに、障害IOPm切替部23は、入出力処理装置20n+1がチャネル装置300nを制御している旨をCH構成テーブル500に格納する。なお、CH構成テーブル500に格納された情報は、演算処理装置10xにて確認される。
演算処理装置10xは、診断処理装置1000からチャネル装置300nの障害発生報告とその回復報告を受けると、CHn障害発生報告部12とCHn障害回復成功報告部13とを動作させる。
CHn障害発生報告部12は、ソフトウェアにチャネル装置300nの障害発生を報告し、また、CHn障害回復成功報告部13は、チャネル装置300nの回復を報告する。
演算処理装置10xは、ソフトウェアに回復報告を行った後、ソフトウェアからチャネル装置300nを指定したデータ転送を指示されたとき、演算処理装置10xはCHnデータ転送指示部10を動作させる。
CHnデータ転送指示部10は、CH構成テーブル500を参照して、入出力処理装置20n+1がチャネル装置300nを制御していることを認識する。
CHnデータ転送指示部10は、チャネル装置300nを制御する入出力処理装置20n+1にデータ転送指示を行う。
このため、チャネル装置300nを制御する入出力処理装置20nで障害が発生しても、入出力処理装置20nの代わりに入出力処理装置20n+1がチャネル装置300nを制御する。よって、チャネル装置300nを介したデータ転送を継続することが可能になる。したがって、チャネル装置300nを介したデータ転送を継続させ、情報処理装置の停止および性能低下を防止することが可能になる。
また、障害の発生した入出力処理装置20nが交換されると、診断処理装置1000は障害IOPm交換部24を動作させる。
障害IOPm交換部24は、交換された入出力処理装置20nにチャネル装置300nを制御させる。その後、障害IOPm交換部24は、演算処理装置10xに、チャネル装置300nの交換が完了したことを報告する。
演算処理装置10xは、その報告を受けると、CHn交換完了報告部15を動作させてソフトウェアにチャネル装置300nの交換が完了したことを報告する。
ソフトウェアは、その報告によって、障害の発生した入出力処理装置20nが交換されたことを認識する。
ソフトウェアは、入出力処理装置20nが交換されたことを認識すると、演算処理装置10xに、チャネル装置300nの切り離しを指示し、その後、再度チャネル装置300nの組込を指示する。
このため、入出力処理装置20nが、ソフトウェアの指示に基づいて、再びチャネル装置300nを制御することができる。
したがって、従来、障害の発生した入出力処理装置20nを交換する場合、保守員が入出力処理装置20nを交換後、その交換された入出力処理装置20nを人手により情報処理装置に組込む必要があり、人為的ミスにより情報処理装置を停止させてしまう可能性があったが、人為的ミスにより情報処理装置を停止させてしまう可能性を少なくすることが可能になる。
次に、動作を具体的に説明する。
最初に、情報処理装置1Aの起動時に、診断処理装置1000のローカルメモリ1003内のIOP構成情報1004とCH構成情報1005が、図15、図16に示したように設定されていた場合の動作を説明する。
IOP構成情報1004では、図15のように全ての入出力処理装置200〜207が利用可能と設定され、また、CH構成情報1005では、図16のように全てのチャネル装置3000〜3007が利用可能と設定されている。
この状態で情報処理装置1Aが起動すると、診断処理装置1000のCH組込部20が動作を開始する。
図17は、CH組込部20の動作を説明するためのフローチャートである。以下、図17を参照して、CH組込部20の動作を説明する。
情報処理装置1Aが起動されると、CH組込部20は、ステップ20−1を実行する。
ステップ20−1では、CH組込部20は、全ての入出力処理装置200〜207と全てのチャネル装置3000〜3007をリセットする。CH組込部20は、ステップ20−1を終了すると、ステップ20−2を実行する。
ステップ20−2では、CH組込部20は変数nに0を代入する。CH組込部20は、ステップ20−2を終了すると、ステップ20−3を実行する。
ステップ20−3では、CH組込部20は、IOP構成情報1004からIOPn(20n)の入力欄に登録されている情報を読み出す。CH組込部20は、ステップ20−3を終了すると、ステップ20−4を実行する。
ステップ20−4では、CH組込部20は、その読み出された情報に、IOPnが利用可能と対応づけて設定されているか否かを判断する。CH組込部20は、IOPnが利用可能と対応づけて設定されていると、ステップ20−5を実行し、一方、IOPnが利用可能と対応づけて設定されていないと、ステップ20−6を実行する。
ステップ20−6では、CH組込部20は、その読み出された情報にてIOPnが予備と対応づけて設定されているか否かを判断する。CH組込部20は、IOPnが予備と対応づけて設定されていると、ステップ20−7を実行し、一方、IOPnが予備と対応づけて設定されていないと、ステップ20−8を実行する。
ステップ20−5では、CH組込部20は、論理カード2000〜2007に含まれる各メモリ30nに格納されたIOP構成テーブル400(図6参照)のIOPn(20n)に2つの入力欄に利用可能を設定する。CH組込部20は、ステップ20−5を終了すると、ステップ20−9を実行する。
一方、ステップ20−7では、CH組込部20は、論理カード2000〜2007に含まれる各メモリ30nに格納されたIOP構成テーブル400(図6参照)のIOPn(20n)に2つの入力欄に予備を設定する。CH組込部20は、ステップ20−7を終了すると、ステップ20−9を実行する。
一方、ステップ20−8では、CH組込部20は、論理カード2000〜2007に含まれる各メモリ30nに格納されたIOP構成テーブル400(図6参照)のIOPn(20n)に2つの入力欄に利用不能を設定する。CH組込部20は、ステップ20−8を終了すると、ステップ20−9を実行する。
ステップ20−9では、CH組込部20は変数nに1を加える。CH組込部20は、ステップ20−9を終了すると、ステップ20−10を実行する。
ステップ20−10では、CH組込部20は、変数nが7より大きいか否かを判断する。CH組込部20は、変数nが7より大きくない場合にはステップ20−3を実行し、一方、変数nが7より大きい場合にはステップ20−11を実行する。
なお、本例では、IOP構成情報1004は全て利用可能に設定されている。このため、IOP構成テーブル400の入出力処理装置200〜207の2つの入力欄には、利用可能が設定される。
ステップ20−11では、CH組込部20は変数nに0を代入する。CH組込部20は、ステップ20−11を終了すると、ステップ20−12を実行する。
ステップ20−12では、CH組込部20は、診断処理装置1000内のCH構成情報1005からCHn(300n)の入力欄に登録されている情報を読み出す。CH組込部20は、ステップ20−12を終了すると、ステップ20−13を実行する。
ステップ20−13では、CH組込部20は、その読み出された情報にてCHnが利用可能と対応づけて設定されているか否かを判断する。CH組込部20は、CHnが利用可能と対応づけて設定されていると、ステップ20−14を実行し、一方、CHnが利用可能と対応づけて設定されていないと、ステップ20−22を実行する。
ステップ20−14では、CH組込部20は、チャネル装置300nの番号nと同じ番号nを有する入出力処理装置20nの状態を、IOP構成テーブル400が有する入出力処理装置20n(IOPn)の2つの入力欄から読み出す。CH組込部20は、ステップ20−14を終了すると、ステップ20−15を実行する。
ステップ20−15では、CH組込部20は、その読み出された入出力処理装置20nの状態のうち、少なくとも1つが利用可能であるか否かを判断する。CH組込部20は、少なくとも1つが利用可能である場合にはステップ20−16を実行し、一方、両方とも利用不能である場合にはステップ20−22を実行する。
ステップ20−16では、CH組込部20は、入出力処理装置20nとチャネル装置300nのリセットを解除する。CH組込部20は、ステップ20−16を終了すると、ステップ20−17を実行する。
ステップ20−17では、CH組込部20は、入出力処理装置20nに、チャネル装置300nを指定した組込指示を出す。CH組込部20は、ステップ20−17を終了すると、ステップ20−18を実行する。
ステップ20−18では、CH組込部20は、IOP構成テーブル400の入出力処理装置20nに対応する入力欄の1つにチャネル装置300nのCH番号(CHn)を設定する。CH組込部20は、ステップ20−18を終了すると、ステップ20−19を実行する。
ステップ20−19では、CH組込部20は、CH構成テーブル500のチャネル装置300nに対応する入力欄に入出力処理装置20nのIOP番号(IOPn)を設定する)。CH組込部20は、ステップ20−19を終了すると、ステップ20−20を実行する。
ステップ20−20では、CH組込部20は変数nに1を加える。CH組込部20は、ステップ20−20を終了すると、ステップ20−21を実行する。
ステップ20−21では、CH組込部20は、変数nが7より大きいか否かを判断する。CH組込部20は、変数nが7より大きくない場合にはステップ20−12を実行し、一方、変数nが7より大きい場合にはステップ20−23を実行する。
ステップ20−23では、CH組込部20は動作を終了する。
一方、ステップ20−22では、CH組込部20は、CH構成テーブル500のチャネル装置300nに対応する入力欄に利用不能を設定する。CH組込部20は、ステップ20−22を終了すると、ステップ20−20を実行する。
なお、本例では、CH構成情報1005は全て利用可能に設定されているので、IOP構成テーブル400は図18に示すようになり、CH構成テーブル500は図19に示すようになる。
診断処理装置1000のCH組込部20が動作することにより、入出力処理装置20nに対してチャネル装置300nを指定した組込指示が出されると、入出力処理装置20nではCHn組込部30が動作する。
図20は、CHn組込部30の動作を説明するためのフローチャートである。以下、図20を参照してCHn組込部30の動作を説明する。
CHn組込部30は、入出力処理装置20n(図13参照)がチャネル装置300nを指定した組込指示を受け付けると、ステップ30−1を実行する。
ステップ30−1では、CHn組込部30は、処理部20n−1がSLOT020n−5にアクセスできるように、SLOT切替部20n−2を設定する。CHn組込部30は、ステップ30−1を終了すると、ステップ30−2を実行する。
ステップ30−2では、CHn組込部30は、SLOT020n−5の情報を読み出す。CHn組込部30は、ステップ30−2を終了すると、ステップ30−3を実行する。
ステップ30−3では、CHn組込部30は、その読み出された情報に基づいて、SLOT020n−5が未使用で使用可能か否かを確認する。CHn組込部30は、SLOT020n−5が使用可能である場合にはステップ30−4を実行し、一方、SLOT020n−5が使用不能である場合にはステップ30−7を実行する。
ステップ30−4では、CHn組込部30は、SLOT020n−5に、組込指示にて指定されたチャネル装置300nで使用中を設定し、さらに、SLOT020n−5に、チャネル装置300nの制御情報を設定する。CHn組込部30は、ステップ30−4を終了すると、ステップ30−5を実行する。
ステップ30−5では、CHn組込部30は、チャネル装置300nを初期化し、入出力処理装置20nとチャネル装置300nが対応していることをチャネル装置300nに設定する。CHn組込部30は、ステップ30−5を終了すると、ステップ30−6を実行する。
ステップ30−6では、CHn組込部30は動作を終了する。
一方、ステップ30−7では、CHn組込部30は、処理部20n−1がSLOT120n−6にアクセスできるように、SLOT切替部20n−2を設定する。CHn組込部30は、ステップ30−7を終了すると、ステップ30−8を実行する。
ステップ30−8では、CHn組込部30は、SLOT120n−6の情報を読み出す。CHn組込部30は、ステップ30−8を終了すると、ステップ30−9を実行する。
ステップ30−9では、CHn組込部30は、その読み出された情報に基づいて、SLOT120n−6が未使用で使用可能か否かを確認する。CHn組込部30は、SLOT120n−6が使用可能である場合にはステップ30−10を実行し、一方、SLOT120n−6が使用不能である場合にはステップ30−11を実行する。
ステップ30−10では、CHn組込部30は、SLOT120n−6に、組込指示にて指定されたチャネル装置300nで使用中を設定し、さらに、SLOT120n−6に、チャネル装置300nの制御情報を設定する。CHn組込部30は、ステップ30−10を終了すると、ステップ30−5を実行する。
一方、ステップ30−11では、CHn組込部30は動作を終了する。
なお、本例では、ステップ30−2で読み出された情報が、SLOT020n−5は未使用であることを示すので、SLOT020n−5に、組込指示にて指定されたチャネル装置300nの制御情報が設定され、SLOT020n−5はチャネル装置300nによって使用中に設定される。この時点では、入出力処理装置20nのSLOT120n−6は未使用で使用可能となっている。
診断処理装置1000のCH組込部20と入出力処理装置200のCHn組込部30との動作によって、入出力処理装置20nはチャネル装置300nに対応する。
入出力処理装置20nがチャネル装置300nに対応すると、入出力処理装置20nおよびチャネル装置300nは、演算処理装置10xにより利用可能な状態となる。この状態になると、演算処理装置10xは、ソフトウェアからの指示によりチャネル装置300nを指定したデータ転送指示を入出力処理装置20nに対して出力することができる。
次に、演算処理装置100がソフトウェアからの指示によりチャネル装置3000を指定したデータ転送指示を入出力処理装置200に出すときの動作を説明する。
まず、ソフトウェアからの指示により演算処理装置100のCHnデータ転送指示部10が動作を開始する。
図21は、CHnデータ転送指示部10の動作を説明するためのフローチャートである。以下、図21を参照してCHnデータ転送指示部10の動作を説明する。
CHnデータ転送指示部10は、動作を開始すると、ステップ10−1を実行する。
ステップ10−1では、CHnデータ転送指示部10は、CH構成テーブル500より、ソフトウェアから指示されたチャネル装置3000の入力欄に格納されている情報を読み出す。CHnデータ転送指示部10は、ステップ10−1を終了すると、ステップ10−2を実行する。
ステップ10−2では、CHnデータ転送指示部10は、その読み出された情報に、チャネル装置3000に対応する入出力処理装置200のIOP番号が記載されているか否かを確認する。
なお、その読み出された情報に入出力処理装置200のIOP番号が記載されていると、チャネル装置3000は利用可能であり、一方、その読み出された情報に入出力処理装置200のIOP番号が記載されていないと、チャネル装置3000は利用不能である。
CHnデータ転送指示部10は、チャネル装置3000が利用可能な場合にはステップ10−3を実行し、一方、チャネル装置3000が利用不能な場合にはステップ10−6を実行する。
ステップ10−3では、CHnデータ転送指示部10は、入出力処理装置200に対してチャネル装置3000を指定したデータ転送指示を出す。CHnデータ転送指示部10は、ステップ10−3を終了すると、ステップ10−4を実行する。
ステップ10−4では、CHnデータ転送指示部10は、ソフトウェアに指示成功を報告する。CHnデータ転送指示部10は、ステップ10−4を終了すると、ステップ10−5を実行する。
ステップ10−5では、CHnデータ転送指示部10は動作を終了する。
一方、ステップ10−6では、CHnデータ転送指示部10は、ソフトウェアに指示失敗を報告する。CHnデータ転送指示部10は、ステップ10−6を終了すると、ステップ10−7を実行する。
ステップ10−7では、CHnデータ転送指示部10は動作を終了する。
なお、本例では、CH構成テーブル500のチャネル装置3000の入力欄には入出力処理装置200のIOP番号が格納され、チャネル装置3000が利用可能となっているので、CHnデータ転送指示部10は、入出力処理装置200に対してチャネル装置3000を指定したデータ転送指示を行い、ソフトウェアに指示成功を報告する。
ソフトウェアは、指示成功を受け付けると、演算処理装置100から出力されるデータ転送終了の報告を待つ。
一方、演算処理装置100は、入出力処理装置200から出力されるデータ転送完了の報告を待つ。演算処理装置100がそのデータ転送完了の報告を受け取ると、CHn転送終了報告部11が動作を開始する。
図22は、CHn転送終了報告部11の動作を説明するためのフローチャートである。以下、図22を参照してCHn転送終了報告部11の動作を説明する。
CHn転送終了報告部11は、動作を開始すると、ステップ11−1を実行する。
ステップ11−1では、CHn転送終了報告部11は、ソフトウェアにチャネル装置3000の転送終了を報告する。CHn転送終了報告部11は、ステップ11−1を終了すると、ステップ11−2を実行する。
ステップ11−2では、CHn転送終了報告部11は動作を終了する。
一方、入出力処理装置200は、演算処理装置100よりチャネル装置3000を指定したデータ転送指示を受け付けると、CHnデータ転送部32を動作させる。
図23は、CHnデータ転送部32の動作を説明するためのフローチャートである。以下、図23を参照してCHnデータ転送部32の動作を説明する。
CHnデータ転送部32は、動作を開始すると、ステップ32−1を実行する。
ステップ32−1では、CHnデータ転送部32は、処理部20n−1がSLOT020n−5にアクセスできるように、SLOT切替部20n−2を設定する。CHnデータ転送部32は、ステップ32−1を終了すると、ステップ32−2を実行する。
ステップ32−2では、CHnデータ転送部32は、SLOT020n−5の情報を読み出す。CHnデータ転送部32は、ステップ32−2を終了すると、ステップ32−3を実行する。
ステップ32−3では、CHnデータ転送部32は、その読み出された情報が、SLOT020n−5がチャネル装置300nで使用中を示しているか否かを確認する。
CHnデータ転送部32は、その読み出された情報が、SLOT020n−5がチャネル装置300nで使用中を示している場合にはステップ32−4を実行し、一方、その読み出された情報が、SLOT020n−5がチャネル装置300nで使用中を示していない場合にはステップ32−7を実行する。
ステップ32−4では、CHnデータ転送部32は、SLOT0200−5に格納されているチャネル装置300nの情報に基づいてチャネル装置300nを制御してデータ転送を行う。CHnデータ転送部32は、ステップ32−4を終了すると、ステップ32−5を実行する。
ステップ32−5では、CHnデータ転送部32は、演算処理装置100にデータ転送の完了を報告する。CHnデータ転送部32は、ステップ32−5を終了すると、ステップ32−6を実行する。
ステップ32−6では、CHnデータ転送部32は動作を終了する。
一方、ステップ32−7では、CHnデータ転送部32は、処理部20n−1がSLOT120n−6にアクセスできるように、SLOT切替部20n−2を設定する。CHnデータ転送部32は、ステップ32−7を終了すると、ステップ32−8を実行する。
ステップ32−8では、CHnデータ転送部32は、SLOT120n−6の情報を読み出す。CHnデータ転送部32は、ステップ32−8を終了すると、ステップ32−9を実行する。
ステップ32−9では、CHnデータ転送部32は、その読み出された情報が、SLOT120n−6がチャネル装置300nで使用中を示しているか否かを確認する。
CHnデータ転送部32は、その読み出された情報が、SLOT120n−6がチャネル装置300nで使用中を示している場合にはステップ32−4を実行し、一方、その読み出された情報が、SLOT120n−6がチャネル装置300nで使用中を示していない場合にはステップ32−10を実行する。
ステップ32−10では、CHnデータ転送部32は動作を終了する。
なお、本例では、SLOT0200−5にはチャネル装置3000の情報が格納され、さらに、チャネル装置3000で使用中の情報が格納されているので、CHnデータ転送部32は、この情報に基づき、チャネル装置3000を制御してデータ転送を行い、演算処理装置100にデータ転送の完了を報告する。
次に、演算処理装置100がソフトウェアからの指示によりチャネル装置3000を指定したデータ転送指示を入出力処理装置200に出しているときに、入出力処理装置200で障害が発生した場合の動作を説明する。
入出力処理装置200で障害が発生すると、診断処理装置1000の障害IOPm切替部23が動作を開始する。
図24および25は、障害IOPm切替部23の動作を説明するためのフローチャートである。以下、図24および25を参照して障害IOPm切替部23の動作を説明する。
障害IOPm切替部23は、動作を開始すると、ステップ23−1を実行する。
ステップ23−1では、障害IOPm切替部23は、障害の発生した入出力処理装置200をリセットして入出力処理装置200の動作を停止させる。障害IOPm切替部23は、ステップ23−1を終了すると、ステップ23−2を実行する。
ステップ23−2では、障害IOPm切替部23は、IOP構成テーブル400より、入出力処理装置200の対応する2つの入力欄に格納されている情報を読み出し、その読み出された2つの情報を1つずつ格納部a、bに格納する。なお、格納部a、bは、障害IOPm切替部23に含まれる。
障害IOPm切替部23は、ステップ23−2を終了すると、ステップ23−3を実行する。
ステップ23−3では、障害IOPm切替部23は、格納部aに格納された情報がCH番号を有しているか否か判定する。なお、障害IOPm切替部23は、格納部aに格納された情報がCH番号を有している場合にはCHaが有効であると判定し、一方、格納部aに格納された情報がCH番号を有していない場合にはCHaが有効でないと判定する。
障害IOPm切替部23は、CHaが有効であると判定した場合にはステップ23−4を実行し、一方、CHaが有効でないと判定した場合にはステップ23−6を実行する。
ステップ23−4では、障害IOPm切替部23は、格納部aに格納された情報が示すCH番号のチャネル装置をリセットする。障害IOPm切替部23は、ステップ23−4を終了すると、ステップ23−5を実行する。
ステップ23−5では、障害IOPm切替部23は、演算処理装置100に、格納部aに格納された情報が示すCH番号のチャネル装置の障害発生を報告する。障害IOPm切替部23は、ステップ23−5を終了すると、ステップ23−6を実行する。
ステップ23−6では、障害IOPm切替部23は、格納部bに格納された情報がCH番号を有しているか否か判定する。なお、障害IOPm切替部23は、格納部bに格納された情報がCH番号を有している場合にはCHbが有効であると判定し、一方、格納部bに格納された情報がCH番号を有していない場合にはCHbが有効でないと判定する。
障害IOPm切替部23は、CHbが有効であると判定した場合にはステップ23−7を実行し、一方、CHbが有効でないと判定した場合にはステップ23−9を実行する。
ステップ23−7では、障害IOPm切替部23は、格納部bに格納された情報が示すCH番号のチャネル装置をリセットする。障害IOPm切替部23は、ステップ23−7を終了すると、ステップ23−8を実行する。
ステップ23−8では、障害IOPm切替部23は、演算処理装置100に、格納部bに格納された情報が示すCH番号のチャネル装置の障害発生を報告する。障害IOPm切替部23は、ステップ23−8を終了すると、ステップ23−9を実行する。
なお、本例では、IOP構成テーブル400の入出力処理装置200に対応する入力欄の1つにはチャネル装置3000のCH番号が格納され、もう1つの入力欄には利用可能が設定されている。
このため、障害IOPm切替部23は、チャネル装置3000をリセットし、演算処理装置100にチャネル装置3000の障害発生を報告する。
ステップ23−9では、障害IOPm切替部23は、IOP構成テーブル400の入出力処理装置200に対応する2つの入力欄に利用不能を設定する。障害IOPm切替部23は、ステップ23−9を終了すると、ステップ23−10を実行する。
ステップ23−10では、障害IOPm切替部23は、入出力処理装置200の代替となる入出力処理装置20jを検索するための準備を行う。
具体的には、障害IOPm切替部23は、変数jにn+1を代入し(この場合、n=0)、変数Nに2を代入し、格納部aに格納されていた情報を格納部cに格納する。なお、格納部cは、障害IOPm切替部23に含まれる。
障害IOPm切替部23は、ステップ23−10を終了すると、ステップ23−11(図25参照)を実行する。
ステップ23−11では、障害IOPm切替部23は、格納部cに格納された情報がCH番号を有しているか否か判定する。なお、障害IOPm切替部23は、格納部cに格納された情報がCH番号を有している場合にはCHcが有効であると判定し、一方、格納部cに格納された情報がCH番号を有していない場合にはCHcが有効でないと判定する。
障害IOPm切替部23は、CHcが有効であると判定した場合にはステップ23−12を実行し、一方、CHcが有効でないと判定した場合にはステップ23−19を実行する。
ステップ23−12では、障害IOPm切替部23は、IOP構成テーブル400の入出力処理装置20j(IOPj)に対応する2つの入力欄に格納されている情報を読み出す。障害IOPm切替部23は、ステップ23−12を終了すると、ステップ23−13を実行する。
ステップ23−13では、障害IOPm切替部23は、その読み出された2つの情報が「予備」を示しているか否かを判定する。
障害IOPm切替部23は、その読み出された2つの情報が「予備」を示している場合にはステップ23−14を実行し、一方、その読み出された2つの情報のいずれも「予備」を示していない場合にはステップ23−22を実行する。
ステップ23−14では、障害IOPm切替部23は、入出力処理装置20j(IOPj)と、格納部cに格納されたCH番号のチャネル装置とのリセットを解除する。障害IOPm切替部23は、ステップ23−14を終了すると、ステップ23−15を実行する。
ステップ23−15では、障害IOPm切替部23は、入出力処理装置20j(IOPj)に、格納部cに格納されたCH番号のチャネル装置を指定した組込指示を出す。障害IOPm切替部23は、ステップ23−15を終了すると、ステップ23−16を実行する。
ステップ23−16では、障害IOPm切替部23は、IOP構成テーブル400の入出力処理装置20jに対応する2つの入力欄の1つに、格納部cに格納されたCH番号を設定し、他の入力欄に「利用可能」を設定する。障害IOPm切替部23は、ステップ23−16を終了すると、ステップ23−17を実行する。
ステップ23−17では、障害IOPm切替部23は、CH構成テーブル500の入力欄の中で格納部cに格納されたCH番号に対応する入力欄に、入出力処理装置20jの番号(IOPj)を設定する。障害IOPm切替部23は、ステップ23−17を終了すると、ステップ23−18を実行する。
ステップ23−18では、障害IOPm切替部23は、演算処理装置100にチャネル装置3000の回復成功を報告する。障害IOPm切替部23は、ステップ23−18を終了すると、ステップ23−19を実行する。
一方、ステップ23−22では、障害IOPm切替部23は、変数jに1を加える。障害IOPm切替部23は、ステップ23−22を終了すると、ステップ23−23を実行する。
ステップ23−23では、障害IOPm切替部23は、変数jが7より大きいか否かを判断する。障害IOPm切替部23は、変数jが7より大きい場合にはステップ23−24を実行し、一方、変数jが7より大きくない場合にはステップ23−25を実行する。
ステップ23−24では、障害IOPm切替部23は、変数jを0にする。障害IOPm切替部23は、ステップ23−24を終了すると、ステップ23−25を実行する。
ステップ23−25では、障害IOPm切替部23は、変数jがn(この場合n=0)であるか否かを判断する。障害IOPm切替部23は、変数jがnである場合にはステップ23−26を実行し、一方、変数jがnでない場合にはステップ23−12を実行する。
障害IOPm切替部23は、ステップ23−12、23−13、23−22〜23−25を実行することによって、予備と設定されている入出力処理装置20jを検索する。
予備と設定されている入出力処理装置20jがない場合、障害IOPm切替部23は、ステップ23−26以降の処理を実行する。
ステップ23−26では、障害IOPm切替部23は、変数jに1を加える。障害IOPm切替部23は、ステップ23−26を終了すると、ステップ23−27を実行する。
なお、ステップ23−27で行われる処理は、ステップ23−12で行われる処理と同じである。障害IOPm切替部23は、ステップ23−27を終了すると、ステップ23−28を実行する。
ステップ23−28では、障害IOPm切替部23は、その読み出された2つの情報のいずれかが「利用可能」を示しているか否かを判定する。
障害IOPm切替部23は、その読み出された2つの情報のいずれかが「利用可能」を示している場合にはステップ23−29を実行し、一方、その読み出された2つの情報のいずれも「利用可能」を示していない場合にはステップ23−34を実行する。
ステップ23−29では、障害IOPm切替部23は、格納部cに格納されたCH番号のチャネル装置のリセットを解除する。障害IOPm切替部23は、ステップ23−29を終了すると、ステップ23−30を実行する。
なお、ステップ23−30で行われる処理は、ステップ23−15で行われる処理と同じである。障害IOPm切替部23は、ステップ23−30を終了すると、ステップ23−31を実行する。
ステップ23−31では、障害IOPm切替部23は、IOP構成テーブル400の入出力処理装置20jに対応する2つの入力欄のうち、「利用可能」が格納されている入力欄に、格納部cに格納されたCH番号を設定する。障害IOPm切替部23は、ステップ23−31を終了すると、ステップ23−32を実行し、その後、ステップ23−33を実行する。
なお、ステップ23−32で行われる処理は、ステップ23−17で行われる処理と同じであり、ステップ23−33で行われる処理は、ステップ23−18で行われる処理と同じである。障害IOPm切替部23は、ステップ23−33を終了すると、ステップ23−19を実行する。
一方、ステップ23−34では、障害IOPm切替部23は、変数jに1を加える。障害IOPm切替部23は、ステップ23−34を終了すると、ステップ23−35を実行する。
ステップ23−35では、障害IOPm切替部23は、変数jが7より大きいか否かを判断する。障害IOPm切替部23は、変数jが7より大きい場合にはステップ23−36を実行し、一方、変数jが7より大きくない場合にはステップ23−37を実行する。
ステップ23−36では、障害IOPm切替部23は、変数jを0にする。障害IOPm切替部23は、ステップ23−36を終了すると、ステップ23−37を実行する。
ステップ23−37では、障害IOPm切替部23は、変数jがn(この場合n=0)であるか否かを判断する。障害IOPm切替部23は、変数jがnである場合にはステップ23−38を実行し、一方、変数jがnでない場合にはステップ23−27を実行する。
障害IOPm切替部23は、ステップ23−27、23−28、23−34〜23−37を実行することによって、利用可能と設定されている入出力処理装置20jを検索する。
利用可能と設定されている入出力処理装置20jがない場合、障害IOPm切替部23は、ステップ23−38以降の処理を実行する。
ステップ23−38では、障害IOPm切替部23は、演算処理装置100にチャネル装置3000の回復失敗を報告する。障害IOPm切替部23は、ステップ23−38を終了すると、ステップ23−39を実行する。
ステップ23−39では、障害IOPm切替部23は、変数jに1を加える。障害IOPm切替部23は、ステップ23−39を終了すると、ステップ23−19を実行する。
ステップ23−19では、障害IOPm切替部23は、変数Nから1を引く。障害IOPm切替部23は、ステップ23−19を終了すると、ステップ23−20を実行する。
ステップ23−20では、障害IOPm切替部23は、変数Nが0であるか否かを判断する。障害IOPm切替部23は、変数Nが0である場合にはステップ23−40を実行し、一方、変数Nが0でない場合にはステップ23−21を実行する。
ステップ23−21では、障害IOPm切替部23は、格納部cに格納されていた情報を削除し、その後、格納部bに格納されていた情報を格納部cに格納する。障害IOPm切替部23は、ステップ23−21を終了すると、ステップ23−11を実行する。
一方、ステップ23−40では、障害IOPm切替部23は動作を終了する。
なお、本例では、予備と設定されている入出力処理装置(IOP)は存在しないので、障害IOPm切替部23は、利用可能な入出力処理装置20jを検索する。
また、本例では、IOP構成テーブル400の入出力処理装置201に対応する2つの入力欄の1つには、チャネル装置3001のCH番号が格納され、もう1つの入力欄には利用可能が設定されている(図18参照)。このため、障害IOPm切替部23は、入出力処理装置201を入出力処理装置200の代替として選択する。
その後、障害IOPm切替部23は、チャネル装置3000のリセットを解除し、入出力処理装置201に対してチャネル装置3000を指定した組込指示を出す。
その後、障害IOPm切替部23は、IOP構成テーブル400(図18参照)の入出力処理装置201に対応する入力欄のうち、利用可能となっている入力欄にチャネル装置3000のCH番号を設定する。
その後、障害IOPm切替部23は、CH構成テーブル500(図19参照)のチャネル装置3000に対応する入力欄に入出力処理装置201のIOP番号を格納する。
その後、障害IOPm切替部23は、演算処理装置100にチャネル装置3000の回復成功を報告する。
障害IOPm切替部23が動作することにより、障害の発生した入出力処理装置200の代替として入出力処理装置201が選択される。さらに、IOP構成テーブル400は、図26に示したようになる。また、入出力処理装置200は利用不能に設定される。このため、入出力処理装置201がチャネル装置3000および3001を制御するように設定される。
また、CH構成テーブル500は図27に示したようになり、チャネル装置3000は入出力処理装置201にて制御されるように設定される。
障害IOPm切替部23が動作することにより、入出力処理装置201に対してチャネル装置3000を指定した組込指示が行われる。
入出力処理装置201がその組込指示を受け付けると、入出力処理装置201のCHn組込部30が動作を開始する(図20参照)。
CHn組込部30は、処理部201−1を制御してSLOT0201−5を読み出し、SLOT0201−5が利用可能か否かを確認する(ステップ30−1〜3)。
本例では、このとき、SLOT0201−5はチャネル装置3001によって使用されているので、CHn組込部30は、次に、処理部201−1を制御してSLOT1201−6を読み出し、SLOT1201−6が利用可能か否かを確認する(ステップ30−7〜9)。
本例では、このとき、SLOT1201−6は未使用であるため、SLOT1201−6は使用可能である。このため、CHn組込部30は、SLOT1201−6に、チャネル装置3000で使用中と、チャネル装置3000の制御情報とを設定する(ステップ30−10)。その後、CHn組込部30は、チャネル装置3000を初期化し、チャネル装置3000に、チャネル装置3000が入出力処理装置201により制御されていることを設定する(ステップ30−5)。
障害IOPm切替部23が動作することにより、演算処理装置100に対してチャネル装置3000の障害発生報告と障害回復成功報告が行われる。
演算処理装置100がチャネル装置3000の障害発生報告を受け付けると、演算処理装置100のCHn障害発生報告部12が動作を開始する。
図28は、CHn障害発生報告部12の動作を説明するためのフローチャートである。以下、図28を参照して、CHn障害発生報告部12の動作を説明する。
CHn障害発生報告部12は、動作を開始すると、ステップ12−1を実行する。
ステップ12−1では、CHn障害発生報告部12は、ソフトウェアにチャネル装置3000の障害発生を報告する。CHn障害発生報告部12は、ステップ12−1を終了すると、ステップ12−2を実行する。
ステップ12−2では、CHn障害発生報告部12は動作を終了する。
演算処理装置100がチャネル装置3000の障害回復成功報告を受け付けると、演算処理装置100のCHn障害回復成功報告部13が動作を開始する。
図29は、CHn障害回復成功報告部13の動作を説明するためのフローチャートである。以下、図29を参照して、CHn障害回復成功報告部13の動作を説明する。
CHn障害回復成功報告部13は、動作を開始すると、ステップ13−1を実行する。
ステップ13−1では、CHn障害回復成功報告部13は、ソフトウェアにチャネル装置3000の障害回復成功を報告する。CHn障害回復成功報告部13は、ステップ13−1を終了すると、ステップ13−2を実行する。
ステップ13−2では、CHn障害回復成功報告部13は動作を終了する。
ソフトウェアは、演算処理装置100よりチャネル装置3000の障害発生報告を受けると、今まで出力していたチャネル装置3000を指定したデータ転送指示を破棄し、演算処理装置100からの障害回復報告を待ち、一定時間内に障害回復成功報告を受け取ったら、破棄したデータ転送指示を再度演算処理装置100に対して行う。
これにより、演算処理装置100はソフトウェアからチャネル装置3000を指定したデータ転送指示を受けるので、演算処理装置100のCHnデータ転送指示部10が動作を開始する(図21参照)。
CHnデータ転送指示部10は、CH構成テーブル500より、チャネル装置3000に対応する入力欄に格納されている情報を読み出し、その後、その読み出された情報に基づいて、チャネル装置3000が利用可能か否かを確認する(ステップ10−1、2)。
本例では、このとき、その入力欄には入出力処理装置201のIOP番号が格納されており、チャネル装置3000は利用可能となっている。このため、CHnデータ転送指示部10は、入出力処理装置201に対して、チャネル装置3000を指定したデータ転送指示を行い(ステップ10−3)、その後、ソフトウェアに指示成功を報告する(ステップ10−4)。
入出力処理装置201が演算処理装置100よりチャネル装置3000を指定したデータ転送指示を受けると、入出力処理装置201のCHnデータ転送指示部32が動作を開始する(図23参照)。
CHnデータ転送指示部32は、処理部201−1を制御してSLOT0201−5の情報を読み出し、SLOT0201−5の状況を確認する(ステップ32−1〜3)。
本例では、このとき、SLOT0201−5にはチャネル装置3001の情報が格納されている。このため、CHnデータ転送指示部32は、次に、処理部201−1を制御してSLOT1201−6の情報を読み出し、SLOT1201−6の状況を確認する(ステップ32−7〜9)。
本例では、このとき、SLOT1201−6にはチャネル装置3000の情報(チャネル装置3000で使用中)が格納されている。このため、CHnデータ転送指示部32は、この情報に基づき、チャネル装置3000を制御してデータ転送を行い(ステップ32−4)、演算処理装置100にデータ転送の完了を報告する(ステップ32−5)。
演算処理装置100が入出力処理装置201よりデータ転送完了の報告を受けると、CHn転送完了報告部11が動作を開始する(図22参照)。CHn転送完了報告部11は、ソフトウェアにデータ転送の完了を報告する(ステップ11−1)。
このため、ソフトウェアが、チャネル装置3000と入出力処理装置200とを介して、周辺装置4000とメモリ300ないし307の間でデータ転送を行っているとき、入出力処理装置200で障害が発生しても、入出力処理装置201が、入出力処理装置200に代わってチャネル装置3000を制御する。このため、ソフトウェアは継続してデータ転送を行うことが可能となる。
次に、障害の発生した入出力処理装置200が交換された場合の動作を説明する。
障害の発生した入出力処理装置200が交換されると、診断処理装置1000の障害IOPm交換部24が動作を開始する。
図30は、障害IOPm交換部24の動作を説明するためのフローチャートである。以下、図30を参照して障害IOPm交換部24の動作を説明する。
障害IOPm交換部24は、動作を開始すると、ステップ24−1を実行する。
ステップ24−1では、障害IOPm交換部24は、交換された入出力処理装置200をリセットする。障害IOPm交換部24は、ステップ24−1を終了すると、ステップ24−2を実行する。
ステップ24−2では、障害IOPm交換部24は、IOP構成テーブル400の入出力処理装置200に対応する2つの入力欄に利用可能を設定する。障害IOPm交換部24は、ステップ24−2を終了すると、ステップ24−3を実行する。
ステップ24−3では、障害IOPm交換部24は、演算処理装置10xにチャネル装置3000の交換が完了したことを報告する。障害IOPm交換部24は、ステップ24−3を終了すると、ステップ24−4を実行する。
ステップ24−4では、障害IOPm交換部24は動作を終了する。
演算処理装置10xが診断処理装置1000よりチャネル装置3000の交換完了報告を受けると、演算処理装置10xのCHn交換完了報告部15が動作を開始する。
図31は、CHn交換完了報告部15の動作を説明するためのフローチャートである。以下、図31を参照して、CHn交換完了報告部15の動作を説明する。
CHn交換完了報告部15は、動作を開始すると、ステップ15−1を実行する。
ステップ15−1では、CHn交換完了報告部15は、ソフトウェアにチャネル装置3000の交換が完了したことを報告する。CHn交換完了報告部15は、ステップ15−1を終了すると、ステップ15−2を実行する。
ステップ15−2では、CHn交換完了報告部15は動作を終了する。
ソフトウェアは、演算処理装置10xからチャネル装置3000の交換完了報告を受けると、チャネル装置3000を指定したデータ転送指示を抑止し、既に出力されたデータ転送指示の完了報告を待つ。ソフトウェアは、その完了報告を受け付けると、演算処理装置10xにチャネル装置3000を指定した切り離し指示を出す。
演算処理装置10xがソフトウェアよりチャネル装置3000を指定した切り離し指示を受けると、演算処理装置10xのCHn切り離し部16が動作を開始する。
図32は、CHn切り離し部16の動作を説明するためのフローチャートである。以下、図32を参照して、CHn切り離し部16の動作を説明する。
CHn切り離し部16は、動作を開始すると、ステップ16−1を実行する。
ステップ16−1では、CHn切り離し部16は、診断処理装置1000に、チャネル装置3000を指定した切り離し指示を出す。CHn切り離し部16は、ステップ16−1を終了すると、ステップ16−2を実行する。
ステップ16−2では、CHn切り離し部16は、診断処理装置1000からの回答を待つ。CHn切り離し部16は、ステップ16−2を終了すると、ステップ16−3を実行する。
ステップ16−3では、CHn切り離し部16は、診断処理装置1000からの回答を受け付けると、ソフトウェアにチャネル装置3000の切り離し完了を報告する。CHn切り離し部16は、ステップ16−3を終了すると、ステップ16−4を実行する。
ステップ16−4では、CHn切り離し部16は動作を終了する。
診断処理装置1000が演算処理装置10xよりチャネル装置3000を指定した切り離し指示を受けると、診断処理装置1000のCHn切り離し部22が動作を開始する。
図33は、CHn切り離し部22の動作を説明するためのフローチャートである。以下、図33を参照して、CHn切り離し部22の動作を説明する。
CHn切り離し部22は、動作を開始すると、ステップ22−1を実行する。
ステップ22−1では、CHn切り離し部22は、CH構成テーブル500より、切り離し指示にて指定されたチャネル装置3000に対応する入力欄に格納された情報を読み出す。CHn切り離し部22は、ステップ22−1を終了すると、ステップ22−2を実行する。
ステップ22−2では、CHn切り離し部22は、その読み出された情報が示すIOP番号に対応する入出力処理装置20mに切り離し指示を行う。
なお、本例では、このとき、その入力欄には入出力処理装置201のIOP番号が格納されているので、入出力処理装置201に対して切り離し指示が行われる。
CHn切り離し部22は、ステップ22−2を終了すると、ステップ22−3を実行する。
ステップ22−3では、CHn切り離し部22は、CH構成テーブル500のチャネル装置3000に対応する入力欄に利用可能を設定する。CHn切り離し部22は、ステップ22−3を終了すると、ステップ22−4を実行する。
ステップ22−4では、CHn切り離し部22は、IOP構成テーブル400の入出力処理装置201に対応する入力欄のうち、チャネル装置3000のCH番号が設定されていた入力欄に利用可能を設定する。CHn切り離し部22は、ステップ22−4を終了すると、ステップ22−5を実行する。
ステップ22−5では、CHn切り離し部22は、演算処理装置10xに切り離し完了を報告する。CHn切り離し部22は、ステップ22−5を終了すると、ステップ22−6を実行する。
ステップ22−6では、CHn切り離し部22は動作を終了する。
入出力処理装置201が診断処理装置1000よりチャネル装置3000を指定した切り離し指示を受けると、入出力処理装置201のCHn切り離し部31が動作を開始する。
図34は、CHn切り離し部31の動作を説明するためのフローチャートである。以下、図34を参照して、CHn切り離し部31の動作を説明する。
CHn切り離し部31は、動作を開始すると、ステップ31−1を実行する。
ステップ31−1では、CHn切り離し部31は、処理部20n−1がSLOT020n−5にアクセスできるように、SLOT切替部20n−2を設定する。CHn切り離し部31は、ステップ31−1を終了すると、ステップ31−2を実行する。
ステップ31−2では、CHn切り離し部31は、SLOT020n−5の情報を読み出す。CHn切り離し部31は、ステップ31−2を終了すると、ステップ31−3を実行する。
ステップ31−3では、CHn切り離し部31は、その読み出された情報が、SLOT020n−5がチャネル装置300nで使用中を示しているか否かを確認する。
CHn切り離し部31は、その読み出された情報が、SLOT020n−5がチャネル装置300nで使用中を示している場合にはステップ31−4を実行し、一方、その読み出された情報が、SLOT020n−5がチャネル装置300nで使用中を示していない場合にはステップ31−7を実行する。
ステップ31−4では、CHn切り離し部31は、SLOT0200−5に格納されているCH番号のチャネル装置300nをリセットする。CHn切り離し部31は、ステップ31−4を終了すると、ステップ31−5を実行する。
ステップ31−5では、CHn切り離し部31は、現在、SLOT切替部にて選択されているSLOTをクリアし、そのSLOTを使用可能に設定する。CHn切り離し部31は、ステップ31−5を終了すると、ステップ31−6を実行する。
ステップ31−6では、CHn切り離し部31は動作を終了する。
一方、ステップ31−7では、CHn切り離し部31は、処理部20n−1がSLOT120n−6にアクセスできるように、SLOT切替部20n−2を設定する。CHn切り離し部31は、ステップ31−7を終了すると、ステップ31−8を実行する。
ステップ31−8では、CHn切り離し部31は、SLOT120n−6の情報を読み出す。CHn切り離し部31は、ステップ31−8を終了すると、ステップ31−9を実行する。
ステップ31−9では、CHn切り離し部31は、その読み出された情報が、SLOT120n−6がチャネル装置300nで使用中を示しているか否かを確認する。
CHn切り離し部31は、その読み出された情報が、SLOT120n−6がチャネル装置300nで使用中を示している場合にはステップ31−4を実行し、一方、その読み出された情報が、SLOT120n−6がチャネル装置300nで使用中を示していない場合にはステップ31−10を実行する。
ステップ31−10では、CHn切り離し部31は動作を終了する。
なお、本例では、ステップ31−3が実行される際、SLOT0201−5はチャネル装置3001で使用されている。このため、CHn切り離し部31は、処理部201−1を制御してSLOT1201−6を読み出し、SLOT1201−6がチャネル装置3000で使用されているか確認する。
本例では、ステップ31−9が実行される際、SLOT1201−6はチャネル装置3000にて使用されている。このため、CHn切り離し部31は、チャネル装置3000をリセットし、SLOT1201−6をクリアしてSLOT1201−6に使用可能を設定する。
ソフトウェアは、演算処理装置10xよりチャネル装置3000の切り離し完了を受けると、演算処理装置10xにチャネル装置3000を指定した組込指示を出し、その後、演算処理装置10xからの組込完了を待つ。
演算処理装置10xがソフトウェアよりチャネル装置3000を指定した組込み指示を受けると、演算処理装置10xのCHn組込部17が動作を開始する。
図35は、CHn組込部17の動作を説明するためのフローチャートである。以下、図35を参照して、CHn組込部17の動作を説明する。
CHn組込部17は、動作を開始すると、ステップ17−1を実行する。
ステップ17−1では、CHn組込部17は、診断処理装置1000に、チャネル装置3000を指定した組込指示を出す。CHn組込部17は、ステップ17−1を終了すると、ステップ17−2を実行する。
ステップ17−2では、CHn組込部17は、診断処理装置1000からの回答を待つ。CHn組込部17は、ステップ17−2を終了すると、ステップ17−3を実行する。
ステップ17−3では、CHn組込部17は、診断処理装置1000からの回答を確認し、組込成功であればステップ17−4を実行し、一方、組込失敗であればステップ17−5を実行する。
ステップ17−4では、CHn組込部17は、ソフトウェアにチャネル装置3000の組込完了を報告する。CHn組込部17は、ステップ17−4を終了すると、ステップ17−6を実行する。
一方、ステップ17−5では、CHn組込部17は、ソフトウェアにチャネル装置3000の組込失敗を報告する。CHn組込部17は、ステップ17−5を終了すると、ステップ17−6を実行する。
ステップ17−6では、CHn組込部17は動作を終了する。
診断処理装置1000が演算処理装置10xよりチャネル装置3000を指定した組込指示を受けると、診断処理装置1000のCHn組込部21が動作を開始する。
図36は、CHn組込部21の動作を説明するためのフローチャートである。以下、図36を参照して、CHn組込部21の動作を説明する。
CHn組込部21は、動作を開始すると、ステップ21−1を実行する。
ステップ21−1では、CHn組込部21は、組込指示にて指定されたチャネル装置の番号nを、変数mに代入する。なお、変数mはCHn組込部21に含まれる。CHn組込部21は、ステップ21−1を終了すると、ステップ21−2を実行する。
ステップ21−2では、CHn組込部21は、IOP構成テーブル400から、入出力処理装置20m(IOPm)に対応する2つの入力欄に格納された情報を読み出す。CHn組込部21は、ステップ21−2を終了すると、ステップ21−3を実行する。
ステップ21−3では、CHn組込部21は、その読み出された情報に、IOPmが利用可能と対応づけて設定されているか否かを判断する。CHn組込部21は、IOPmが利用可能と対応づけて設定されていると、ステップ21−4を実行し、一方、IOPmが利用可能と対応づけて設定されていないと、ステップ21−9を実行する。
ステップ21−4では、CHn組込部21は、入出力処理装置20mに、チャネル装置300nを指定した組込指示を出す。CHn組込部21は、ステップ21−4を終了すると、ステップ21−5を実行する。
ステップ21−5では、CHn組込部21は、IOP構成テーブル400の入出力処理装置20mに対応する2つの入力欄のうち、利用可能が格納されている入力欄から利用可能を削除し、その後、その入力欄にチャネル装置300nのCH番号を設定する。CHn組込部21は、ステップ21−5を終了すると、ステップ21−6を実行する。
ステップ21−6では、CHn組込部21は、CH構成テーブル500のチャネル装置300nに対応する入力欄に入出力処理装置20mの番号(IOPm)を設定する。CHn組込部21は、ステップ21−6を終了すると、ステップ21−7を実行する。
ステップ21−7では、CHn組込部21は、演算処理装置10xに組込完了を報告する。CHn組込部21は、ステップ21−7を終了すると、ステップ21−8を実行する。
ステップ21−8では、CHn組込部21は動作を終了する。
一方、ステップ21−9では、CHn組込部21は、変数mに1を加える。CHn組込部21は、ステップ21−9を終了すると、ステップ21−10を実行する。
ステップ21−10では、CHn組込部21は、変数mが7より大きいか否かを判断する。CHn組込部21は、変数mが7より大きい場合にはステップ21−11を実行し、一方、変数mが7より大きくない場合にはステップ21−12を実行する。
ステップ21−11では、CHn組込部21は、変数mに0を代入する。CHn組込部21は、ステップ21−11を終了すると、ステップ21−12を実行する。
ステップ21−12では、CHn組込部21は、変数mが組込指示にて指定されたnと同じになっているか否かを判断する。CHn組込部21は、変数mがそのnと同じになっている場合にはステップ21−13を実行し、また、変数mがそのnと異なる場合にはステップ21−3を実行する。
ステップ21−13では、CHn組込部21は、演算処理装置10xに組込失敗を報告する。CHn組込部21は、ステップ21−13を終了すると、ステップ21−14を実行する。
ステップ21−14では、CHn組込部21は動作を終了する。
本例では、CHn組込部21は、チャネル装置3000に対応する入出力処理装置200を起点として、IOP構成テーブル400の2つの入力欄に格納された情報を順次読み出し、入出力処理装置20mが利用可能か確認する。
本例では、このとき、入出力処理装置200が利用可能である。このため、CHn組込部21は、入出力処理装置200に対してチャネル装置3000を指定した組込指示を行う。
続いて、CHn組込部21は、IOP構成テーブル400の入出力処理装置200に対応する入力欄の1つにチャネル装置3000のCH番号を格納する。続いて、CHn組込部21は、CH構成テーブル500のチャネル装置3000に対応する入力欄に入出力処理装置200のIOP番号を設定し、その後、演算処理装置10xに組込完了を報告する。
入出力処理装置200が診断処理装置1000よりチャネル装置3000を指定した組込指示を受けたとき、CHn組込部30が動作する。なお、この動作は、情報処理装置1Aの起動時に、CHn組込部30が行う動作と同じである。
ソフトウェアは、演算処理装置10xよりチャネル装置3000の組込成功(交換完了)の報告を受けると、抑止していたチャネル装置3000へのデータ転送指示を解除する。
この後、ソフトウェアがチャネル装置3000を指定してデータ転送指示をしたとき、IOP構成テーブル400とCH構成テーブル500は、図18、図19のように入出力処理装置200に障害が発生する前の状態に戻っている。このため、入出力処理装置200に障害が発生する前の状態でデータ転送が行われるようになり、入出力処理装置200の交換が完了する。
次に、情報処理装置1Aの起動時に、診断処理装置1000のローカルメモリ1003内のIOP構成情報1004とCH構成情報1005が、図37、図38のように設定されていた場合の動作を説明する。
IOP構成情報1004では、図37のように入出力処理装置200、202、204および206が利用可能に設定され、入出力処理装置201、203、205および207が予備と設定されている
また、CH構成情報1005では、図38のようにチャネル装置3000、3002、3004および3006が利用可能に設定され、チャネル装置3001、3003、3005および3007が利用不能に設定されている。
この状態で情報処理装置1Aが起動すると、診断処理装置1000のCH組込部20は以下のように動作する(図17参照)。
CH組込部20は、全ての入出力処理装置200〜207と全てのチャネル装置3000〜3007をリセットし(ステップ20−1)、全ての入出力処理装置200〜207の構成情報を1つずつIOP構成情報1004より読み出し(ステップ20−2、20−3)、入出力処理装置200〜207のそれぞれが、利用可能と設定されているのか、利用不能と設定されているのか、予備と設定されているのかを確認する(ステップ20−4、6)。
本例では、IOP構成情報1004は、図37のように設定されている。このため。IOP構成テーブル400の入出力処理装置200、202、204および206の2つの入力欄には利用可能が設定され(ステップ20−5)、入出力処理装置201、203、205および207の2つの入力欄には予備が設定させる(20−7)。
次に、CH組込部20は、全てのチャネル装置3000〜3007の構成情報を1つずつCH構成情報1005より読み出し(ステップ20−11、12)、チャネル装置3000〜3007のそれぞれが利用可能と設定されているか、利用不能と設定されているかを確認する(ステップ20−13)。
本例では、CH構成情報500は、図38のように設定されている。このため、CH構成テーブル500のチャネル装置3001、3003、3005および3007の入力欄には、利用不能が設定される(ステップ20−22)。
次に、CH組込部20は、CH構成テーブル500で利用可能となっているチャネル装置3000、3002、3004および3006のCH番号「n」と同じ番号「n」を有する入出力処理装置200、202、204および206の状態を、IOP構成テーブル400の2つの入力欄から読み出す。CH組込部20は、その読み出された2つの情報のいずれかに利用可能が含まれているか否かを確認する(ステップ20−14、15)。
本例では、このとき、入出力処理装置200、202、204および206は利用可能に設定されている。このため、CH組込部20は、入出力処理装置20nとチャネル装置300nをリセットし(ステップ20−16)、その後、入出力処理装置20nに対してチャネル装置300nを指定した組込指示を行う(ステップ20−17)。
その後、CH組込部20は、IOP構成テーブル400の入出力処理装置20nに対応する入力欄の1つにチャネル装置300nのCH番号を設定し(ステップ20−18)、また、CH構成テーブル500のチャネル装置300nに対応する入力欄に入出力処理装置20nのIOP番号を設定する(ステップ20−19)。
このため、IOP構成テーブル400は図39に示すようになり、CH構成テーブル500は図40に示すようになる。
診断処理装置1000のCH組込部20が動作することにより、入出力処理装置200に対してチャネル装置3000を指定した組込指示が行われ、また、入出力処理装置202に対してチャネル装置3002を指定した組込指示が行われ、また、入出力処理装置204に対してチャネル装置3004を指定した組込指示が行われ、また、入出力処理装置206に対してチャネル装置3006を指定した組込指示が行われる。
入出力処理装置200、202、204および206のそれぞれは、その組込指示を受け付けると、各入出力処理装置200、202、204および206のCHn組込部30が動作を開始する(図20参照)。なお、この動作は、図20を参照して説明した前記動作と同じとなる。
診断処理装置1000のCH組込部20と入出力処理装置200のCHn組込部30との動作によって、入出力処理装置20nはチャネル装置300nに対応する。
入出力処理装置20nがチャネル装置300nと対応すると、入出力処理装置20nおよびチャネル装置300nは、演算処理装置10xにより利用可能な状態となる。この状態になると、演算処理装置10xは、ソフトウェアからの指示によりチャネル装置300nを指定してデータ転送指示を入出力処理装置20nに対して行うことができる。
また、演算処理装置100がソフトウェアからの指示によりチャネル装置3000を指定したデータ転送指示を入出力処理装置200に出すときの動作は、前記と同じである。
次に、演算処理装置100がソフトウェアからの指示によりチャネル装置3000を指定したデータ転送指示を入出力処理装置200に行っているときに、入出力処理装置200で障害が発生した場合の動作を説明する。
入出力処理装置200で障害が発生すると、診断処理装置1000の障害IOPm切替部23が動作を開始する(図24および25参照)。
障害IOPm切替部23は、障害の発生した入出力処理装置200をリセットして動作を停止させ(ステップ23−1)、IOP構成テーブル400より入出力処理装置200に対応する2つの入力欄に格納されている情報を読み出し(ステップ23−2)、その情報にCH番号が設定され、そのCH番号を有するチャネル装置が有効か否かを確認する(ステップ23−3、6)。
本例では、このとき、その入力欄の1つには、チャネル装置3000のCH番号が格納され、もう1つのエントリには利用可能が設定されている。このため、障害IOPm切替部23は、チャネル装置3000をリセットし(ステップ23−4、7)、演算処理装置100にチャネル装置3000の障害発生を報告する(ステップ23−5、8)。
障害IOPm切替部23は、次に、IOP構成テーブル400の入出力処理装置200に対応する2つの入力欄に利用不能を設定し(ステップ23−9)、入出力処理装置200の代替となる入出力処理装置20jを検索する準備をする(ステップ23−10)。
障害IOPm切替部23は、IOP構成テーブル400を読み出し、予備IOPを検索する(ステップ23−12、13、22〜25)。
本例では、このとき、入出力処理装置201が予備IOPとして設定されている。このため、入出力処理装置201が入出力処理装置200の代替として選択される。
その後、障害IOPm切替部23は、入出力処理装置201とチャネル装置3000のリセットを解除し(ステップ23−14)、入出力処理装置201に対してチャネル装置3000を指定した組込指示を出す(ステップ23−15)。
その後、障害IOPm切替部23は、IOP構成テーブル400の入出力処理装置201に対応する2つの入力欄の1つにチャネル装置3000のCH番号を設定し、もう1つの入力欄に利用可能を設定する(ステップ23−16)。
その後、障害IOPm切替部23は、CH構成テーブル500のチャネル装置3000に対応する入力欄に入出力処理装置201のIOP番号を格納し(ステップ23−17)、 演算処理装置100にチャネル装置3000の回復成功を報告する(ステップ23−18)。
障害IOPm切替部23が動作することにより、障害の発生した入出力処理装置200の代替として入出力処理装置201が選択される。さらに、IOP構成テーブル400は図41に示したようになる。また、入出力処理装置200は利用不能に設定される。このため、入出力処理装置201がチャネル装置3000を制御するように設定される。
また、CH構成テーブル500は図42に示したようになり、チャネル装置3000は入出力処理装置201にて制御されるように設定される。
また、障害IOPm切替部23が動作することにより、入出力処理装置201に対してチャネル装置3000を指定した組込指示が行われる。
入出力処理装置201がその組込指示を受け付けると、入出力処理装置201のCHn組込部30が動作を開始する(図20参照)。
CHn組込部30は、処理部201−1を制御してSLOT0201−5を読み出し、SLOT0201−5が利用可能か否かを確認する(ステップ30−1〜3)。
本例では、このとき、SLOT0201−5は未使用であり、SLOT0201−5は利用可能となっている。このため、CHn組込部30は、SLOT0201−5に、チャネル装置3000で使用中と、チャネル装置3000の制御情報とを設定する(ステップ30−3)。
その後、CHn組込部30は、チャネル装置3000を初期化して、チャネル装置3000に、チャネル装置3000が入出力処理装置201により制御されていることを設定する(ステップ30−5)。
障害IOPm切替部23が動作することにより、演算処理装置100に対して、チャネル装置3000の障害発生報告および障害回復成功報告が行われる。
演算処理装置100は、CHn障害発生報告部12にてソフトウェアにチャネル装置3000の障害発生を報告し(ステップ12−2)、また、CHn障害回復成功報告部13にてソフトウェアにチャネル装置3000の障害回復成功を報告する(ステップ13−2)。
ソフトウェアは、演算処理装置100よりチャネル装置3000の障害発生報告を受けると、今まで出力していたチャネル装置3000を指示したデータ転送指示を破棄し、演算処理装置100からの障害回復報告を待つ。ソフトウェアは、その後の一定時間内に障害回復報告を受け取ったら、破棄したデータ転送指示を再度演算処理装置100に対して行う。
演算処理装置100がチャネル装置3000を指定したデータ転送指示をソフトウェアより受けると、CHnデータ転送指示部10が動作を開始する。
CHnデータ転送指示部10は、CH構成テーブル500よりチャネル装置3000に対応する入力欄に格納されている情報を読み出し、チャネル装置3000が利用可能か否かを確認する(ステップ10−1、2)。
本例では、このとき、その入力欄には入出力処理装置201のIOP番号が格納されており、チャネル装置3000は利用可能となっている。このため、CHnデータ転送指示部10は、入出力処理装置201に対してチャネル装置3000を指定したデータ転送指示を行い(ステップ10−3)、ソフトウェアに指示成功を報告する(ステップ10−4)。
入出力処理装置201が演算処理装置100よりチャネル装置3000を指定したデータ転送指示を受けると、CHnデータ転送指示部32が動作を開始する。
CHnデータ転送指示部32は、処理部201−1を制御してSLOT0201−5の情報を読み出し、SLOT0201−5の状況を確認する(ステップ32−1〜3)。
本例では、このとき、SLOT0201−5にはチャネル装置3000の情報(チャネル装置3000で使用中)が格納されている。このため、CHnデータ転送指示部32は、この情報に基づき、チャネル装置3000を制御してデータ転送を行い(ステップ32−4)、演算処理装置100にデータ転送の完了を報告する(ステップ32−5)。
演算処理装置100が入出力処理装置201よりデータ転送完了の報告を受けると、CHn転送完了報告部11が動作を開始し、ソフトウェアにデータ転送の完了を報告する(ステップ11−1)。
このため、ソフトウェアが、チャネル装置3000と入出力処理装置200とを介して、周辺装置4000とメモリ300ないし307の間でデータ転送を行っているとき、入出力処理装置200で障害が発生しても、入出力処理装置201が、入出力処理装置200に代わってチャネル装置3000を制御する。このため、ソフトウェアは、継続してデータ転送を行うことが可能となる。
この後、障害の発生した入出力処理装置200を交換する場合の動作は、前記と同じである。
本実施例によれば、ある入出力処理装置の障害が検出されると、その入出力処理装置の代わりに他の入出力処理装置がチャネル装置に対応し、また、周辺装置(外部装置)とデータ通信が行われる際に、その入出力処理装置の代わりに他の入出力処理装置が、チャネル装置を用いた周辺装置とのデータ通信を実行する。
このため、ある入出力処理装置で障害が発生しても、その入出力処理装置の代わりに他の入出力処理装置がチャネル装置を用いたデータ通信を実行する。よって、ある入出力処理装置で障害が発生しても、チャネル装置を介したデータ通信を継続することが可能になる。したがって、チャネル装置を介したデータ通信を継続させることにより、情報処理装置の停止および性能低下を防止することが可能になる。
また、本実施例では、ある入出力処理装置の交換が検出されると、他の入出力処理装置の代わりにその入出力処理装置がチャネル装置に対応し、かつ、その入出力処理装置とチャネル装置との元の対応関係が格納され、周辺装置とデータ通信を行う際に、その格納された元の対応関係が読み取られ、その読み取られた元の対応関係に応じて、他の入出力処理装置の代わりにその入出力処理装置が、チャネル装置を用いた周辺装置とのデータ通信を実行する。
この場合、交換された入出力処理装置が、自動的に再びチャネル装置に対応することができる。したがって、従来、障害の発生した入出力処理装置を交換する場合、保守員が入出力処理装置を交換後、その交換された入出力処理装置を人手により情報処理装置に組込む必要があり、人為的ミスにより情報処理装置を停止させてしまう可能性があったが、人為的ミスにより情報処理装置を停止させてしまう可能性を少なくすることが可能になる。
以上説明した実施例において、図示した構成は単なる一例であって、本発明はその構成に限定されるものではない。
例えば、各入出力処理装置は、論理カードに設けられていなくてもよい。また、各演算処理装置も論理カードに設けられていなくてもよい。
また、各入出力処理装置は、2台のチャネル装置を制御可能なものの限らず適宜変更可能である。