(57)【要約】【課題】バス上のデータ転送時に異常が発生した際、バスサイズを変更して再転送を行う情報処理装置を提供する。【解決手段】情報処理装置１０において、ユニット８０からユニット９０にデータ転送を行う際、ビットＡＤ［１］にて異常が発生したとすると、バスサイズ制御装置１２は、ユニット８０から異常ビットの通知を受け、異常ビットを回避したバスサイズ、例えばバスＡＤ［７：４］にバスサイズを決定し、バス制御装置１１に対してバスサイズをバスＡＤ［７：０］からバスＡＤ［７：４］に変更するための制御信号を送る。バス制御装置１１は、この制御信号に従ってバスサイズを変更し、異常ビットを回避したデータ転送を行う。【選択図】        図１
2005070822.tif 000002
【特許請求の範囲】
【請求項１】
バスに複数のユニットが結合される情報処理装置において、データ転送時に前記バスに異常が発生したときに、異常ビットを含まないようなバスサイズを決定するバスサイズ制御装置と、
前記バスサイズに従い、前記異常ビットを回避してデータ転送を行うバス制御装置と、を有することを特徴とする情報処理装置。
【請求項２】
バスに複数のユニットが結合される情報処理装置において、データ転送時に前記バスに異常が発生したときに、データを転送する所定のバスサイズを決定するバスサイズ制御装置と、
前記バスサイズに従って前記データを転送し、前記バスサイズ以外のバスを特定のレベルに固定するバス制御装置と、を有することを特徴とする情報処理装置。
【請求項３】
バスに複数のユニットが結合される情報処理装置において、データ転送時に前記バスに異常が発生したときに、データのバスサイズを前記バスの半分のバスサイズとするバスサイズ制御装置と、
差動信号のデータ転送として対のバスラインを構成し、正常時には、前記対のバスラインで２つのデータを転送し、データ転送時に前記バスに異常が発生したときには、前記対のバスラインを差動論理信号として、１つのデータを転送するバス制御装置と、を有することを特徴とする情報処理装置。
【請求項４】
バスに複数のユニットが結合される情報処理装置において、データ転送時に前記バスに異常が発生したときに、データを転送する所定のバスサイズを決定するバスサイズ制御装置と、
前記データに対応する誤り訂正信号を生成し、前記バスサイズに従って前記データと前記誤り訂正信号を組にしてデータ転送を行うバス制御装置と、を有することを特徴とする情報処理装置。
【請求項５】
バスに複数のユニットが結合される情報処理装置において、
前記ユニットが結合されるスロットとバスの間に設けられたスイッチと、
前記バスに異常が発生したときに、異常ユニットの接続されたスイッチを切断するスロット切断制御装置と、を有することを特徴とする情報処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はデータ転送を行うバスを有する情報処理装置に関し、特にスロットを介して複数のユニットがバス上に結合される情報処理装置に関する。
【０００２】
【従来の技術】
データ転送を行うバス上にユニットが結合される情報処理装置において、例えば、機能を追加するためのユニットをバスに結合する場合、バスの配線条件、ユニットのＩＣドライバのインピーダンス、振幅、遷移時間、搭載スロット位置などによってデータ転送時の送信波形に乱れが発生すると、受信側で正常なデータが受け取れず動作不良となることがある。
【０００３】
近年は、ＰＣＩなどの標準規格バスを採用するため、ＰＣＩ汎用ユニットを搭載することが多い。そのため、多種ユニットの各スロット搭載位置による事前の組み合わせ動作検証が困難になっており、たとえ安定動作しているシステムでも、ユニットを結合することでバスに障害が発生し、突然動作が不安定になる恐れがある。
【０００４】
特に、金融機関システムや医療機器においてはノーダウンシステムが要求されるため、上記のようなバス上での障害は致命的であり、バスを運用系とバックアップ系で完全二重化するなどの対策が必要となっている。
【０００５】
しかし、バスを二重化することによって、構成が複雑になり、コストも上昇する。
さらに、バスを完全に二重化しても、バスの配線条件、搭載ユニットのＩＣドライバのインピーダンス、振幅、遷移時間、搭載スロット位置などによる影響の障害の場合、バックアップ系も同時に障害となることが多く、そのような場合は対象チャネルの縮退などしか障害を回避する手段がなかった。また、バスを二重化しない場合は、ユニットの人為的な取り外しによる縮退運用しか、バスの異常回避手段がなかった。
【０００６】
従来、バス上のデータ転送前後に変化するビット数が一定数以上のときに、データを時分割転送することにより、通常動作時と全く変わらないシステム構成のままでスイッチングノイズの影響を低減する技術として、以下のようなものがある（例えば、特許文献１参照）。
【０００７】
【特許文献１】
特開平７−８４９８５号公報（段落番号〔００２５〕〜〔００２６〕、第３図）
【０００８】
【発明が解決しようとする課題】
しかし、上記特許文献１に記載した技術は、データ転送時に同時に変化するビットを少なくすることでスイッチングノイズを低減するものである。バスデータの一斉変化によって発生する障害に対しては有効であるが、バス上に多種のユニットが結合されることによってもたらされる検証困難な障害、例えば、新たにユニットを結合することでバスの配線条件やインピーダンスが変動し、信号の反射によって乱れた波形が動作不良を起こすような障害には対応することができない。
【０００９】
本発明はこのような点に鑑みてなされたものであり、バス上のデータ転送時に異常が発生した際、バスサイズを変更して再転送を行う情報処理装置を提供することを目的とする。
【００１０】
【課題を解決するための手段】
本発明では上記課題を解決するために、図１に示すように、データ転送時にバスに異常が発生したときに、異常ビットを含まないようなバスサイズを決定するバスサイズ制御装置１２と、前記バスサイズに従い、前記異常ビットを回避してデータ転送を行うバス制御装置１１と、を有することを特徴とする情報処理装置１０が提供される。
【００１１】
この情報処理装置１０において、データ転送時にバスに異常が発生すると、バスサイズ制御装置１２は、異常ビットの通知に基づいて異常ビットを回避したバスサイズを決定し、バスサイズを変更するための制御信号をバス制御装置１１に送る。バス制御装置１１は、この制御信号に従ってバスサイズを変更し、異常ビットを回避したデータ転送を行う。
【００１２】
また、上記課題を解決するために、図６に示すように、データを転送する所定のバスサイズを決定するバスサイズ制御装置２２と、前記バスサイズに従って前記データを転送し、前記バスサイズ以外のバスを特定のレベルに固定するバス制御装置２１と、を有することを特徴とする情報処理装置２０が提供される。
【００１３】
この情報処理装置２０において、データ転送時にバスに異常が発生すると、バスサイズ制御装置２２は、データを転送する所定のバスサイズを決定し、バスサイズを変更するための制御信号をバス制御装置２１に送る。バス制御装置２１は、この制御信号に従ってバスサイズを変更し、バスサイズ以外のバスを特定のレベルに固定してデータ転送を行う。
【００１４】
また、上記課題を解決するために、図１０に示すように、データ転送時にバスに異常が発生したときに、データのバスサイズを前記バスの半分のバスサイズとするバスサイズ制御装置３２と、差動信号のデータ転送として対のバスラインを構成し、正常時には、前記対のバスラインで２つのデータを転送し、データ転送時に前記バスに異常が発生したときには、前記対のバスラインを差動論理信号として、１つのデータを転送するバス制御装置３１と、を有することを特徴とする情報処理装置３０が提供される。
【００１５】
この情報処理装置３０において、データ転送時にバスに異常が発生すると、バスサイズ制御装置３２は、バスサイズをバス幅の半分に変更するための制御信号をバス制御装置３１に送る。バス制御装置３１は、通常時は対のバスライン２つのデータを転送しているが、上記の制御信号を受信すると、バスサイズを変更してバスサイズを構成するデータの差動論理信号を生成し、対のバスラインで１つのデータを転送する。
【００１６】
また、上記課題を解決するために、図１５に示すように、データ転送時にバスに異常が発生したときに、データを転送する所定のバスサイズを決定するバスサイズ制御装置４２と、前記データに対応する誤り訂正信号を生成し、前記バスサイズに従って前記データと前記誤り訂正信号を組にしてデータ転送を行うバス制御装置４１と、を有することを特徴とする情報処理装置４０が提供される。
【００１７】
この情報処理装置４０において、データ転送時にバスに異常が発生すると、バスサイズ制御装置４２は、データを転送する所定のバスサイズを決定し、バスサイズを変更するための制御信号をバス制御装置４１に送る。バス制御装置４１は、転送データに対応する誤り訂正信号を生成し、上記の制御信号に従ってバスサイズを変更し、データと上記の誤り訂正信号を組にしてデータ転送を行う。
【００１８】
また、上記課題を解決するために、図１９に示すように、ユニット２４０，２５０，２６０が結合されるスロット１０１〜１０３とバスの間に設けられたスイッチ１５２ａ〜１５２ｃと、バスに異常が発生したときに、異常ユニットの接続されたスイッチを切断するスロット切断制御装置１５１と、を有することを特徴とする情報処理装置１５０が提供される。
【００１９】
この情報処理装置１５０において、異常ユニットが検出されると、スロット切断制御装置１５１は、異常ユニットが接続されたスイッチをオフにして、異常ユニットをバスから電気的に遮断する。
【００２０】
【発明の実施の形態】
以下、本発明の実施の形態を図面を参照して説明する。
（第１の実施の形態）
図１は、第１の実施の形態の情報処理装置の動作を説明するためのブロック図である。
【００２１】
情報処理装置１０は、バス制御装置１１、バスサイズ制御装置１２、およびバス制御装置１１を介したバスＡＤ［７：０］の両端にそれぞれ接続されたユニット８０，９０によって構成される。バスサイズ制御装置１２は、データ転送中にバスの異常が発生すると、異常ビットを回避するようなバスサイズを決定し、バス制御装置１１に対してバスサイズを変更するための制御信号を送る。バス制御装置１１は、上記の制御信号に従ってバスサイズを変更し、異常ビットを回避したデータ転送を行う。
【００２２】
以上のような構成の情報処理装置１０において、ユニット８０からユニット９０へ、バスＡＤ［７：０］を用いてデータ転送を行う。このとき、ビットＡＤ［１］にて異常が発生したとして、情報処理装置１０の動作を説明する。
【００２３】
ユニット９０は、ビットＡＤ［１］の異常を検出すると、ユニット８０に転送エラー信号を送る。そして、ユニット８０は、バスサイズ制御装置１２に異常ビットを通知する。あるいは、ユニット９０が、ビットＡＤ［１］の異常を単にバスＡＤ［７：０］の異常として検出したときも、ユニット９０はユニット８０に転送エラー信号を送る。そして、予め定められた方法でビットＡＤ［１］の異常を検出して、バスサイズ制御装置１２にビットＡＤ［１］の異常を通知する。
【００２４】
バスサイズ制御装置１２は、上記の通知に基づいて、異常ビットを回避したバスサイズを決定する。ここでは、ビットＡＤ［１］を避けてデータ転送を行うため、異常ビットを含まない残りの半分のバスＡＤ［７：４］にバスサイズを決定するものとする。そして、バスサイズ制御装置１２は、バス制御装置１１に対してバスサイズをバスＡＤ［７：０］からバスＡＤ［７：４］に変更するための制御信号を送る。バス制御装置１１は、この制御信号に従って、変更されたバスサイズでのデータ転送を行う（図中では、異常発生時にデータ転送を回避するバスＡＤ［３：０］を点線で示している）。
【００２５】
このように、データ転送時に異常ビットが発生した場合、異常ビットを含まないバスを用いてデータを再送することで、予め検証困難なバス障害が発生した際にも対応することができる。また、バスを二重化せずとも障害を回避することが可能になる。
【００２６】
なお、上記の説明では、異常ビットを含まない他の半分のバスをバスサイズとして決定したが、半分に限定されることはなく、他のビット数のバスサイズでも同様の処理を実現することができる。
【００２７】
また、上記の説明ではバス幅を８ビットとしたが、３２ビット，６４ビットなど、他のビット数のバスについても適用できる。また、ユニット８０からユニット９０への転送について説明したが、逆にユニット９０からユニット８０への転送についても同様に行うことができる。さらに、ユニット数は２つに限定されることはなく、複数ユニットが結合されていても、ユニット間で上記と同様の処理を実現することができる。
【００２８】
また、上記の説明では異常ビットを特定したが、異常ビットを特定しない場合でも、バスサイズを半分ずつにしていきながら再送を繰り返すことで、異常ビットを含まないようなバスサイズを決定してデータを転送することができる。
【００２９】
次に、上記の情報処理装置１０を適用した情報処理装置１１０について説明する。図２は、第１の実施の形態の情報処理装置の構成図である。
情報処理装置１１０は、バス制御回路１１１ａ〜１１１ｃとバスサイズ制御回路１１２を有している。バス制御回路１１１ａ〜１１１ｃは、それぞれ図１のバス制御装置１１に相当し、バスサイズ制御回路１１２は同図のバスサイズ制御装置１２に相当する。
【００３０】
また、情報処理装置１１０にはスロット１０１〜１０３が設けられており、スロット１０１にはＣＰＵ（Ｃｅｎｔｒａｌ    Ｐｒｏｃｅｓｓｉｎｇ    Ｕｎｉｔ）２１１が搭載されたカード２１０が、スロット１０２にはカード２２０が、スロット１０３にはカード２３０がそれぞれ接続されている。カード２１０は図１のユニット８０に相当し、カード２２０は同図のユニット９０に相当する。スロットに接続された各カードは、バス制御回路１１１ａ〜１１１ｃを介して、同一のバス１１５上に接続される。このバス幅は、３２ビットとする。
【００３１】
バスサイズ制御回路１１２は、ＣＰＵ２１１から異常ビットの通知を受けると、異常ビットを回避したバスサイズを決定し、バス制御回路１１１ａ〜１１１ｃの制御信号をそれぞれ独立に生成する。制御信号には、ＨＥＮ，ＬＥＮ，ＨＳＥＬ，ＬＳＥＬがある（後述する）。
【００３２】
バス制御回路１１１ａ〜１１１ｃは、バスサイズ制御回路１１２の制御信号に基づいて、異常ビットを回避したデータ転送を行う。ここで、バス制御回路について説明する。図３は、バス制御回路の内部構成例であり、図４はバス制御回路の真理値表である。
【００３３】
バス制御回路１１１は、マルチプレクサ（ＭＰＸ）１１３ａ，１１３ｂによって構成される。マルチプレクサ１１３ａ，１１３ｂは、セレクト信号Ｓ＝０で入力Ａが選択され、Ｓ＝１で入力Ｂが選択されるものとする。
【００３４】
バス制御回路１１１には、３２ビットのデータＤ［３１：０］が入力される。
そして、マルチプレクサ１１３ａの入力Ａ，ＢにはデータＤ［３１：１６］，Ｄ［１５：０］が、また、マルチプレクサ１１３ｂの入力Ａ，ＢにはデータＤ［１５：０］，Ｄ［３１：１６］がそれぞれ入力される。
【００３５】
さらに、バス制御回路１１１には、マルチプレクサ１１３ａ，１１３ｂのセレクト信号およびイネーブル信号として、ＨＳＥＬ，ＨＥＮおよびＬＳＥＬ，ＬＥＮが入力される。これらの信号の組み合わせによって決定されるマルチプレクサ１１３ａ，１１３ｂの出力Ｏに出力されるデータは、データＤＯ［３１：１６］，ＤＯ［１５：０］とし、バス制御回路１１１からは、両者がまとまって３２ビットのデータＤＯ［３１：０］として出力される。
【００３６】
続いて、上記のように構成されるバス制御回路１１１の動作について、図４の真理値表を用いて説明する。なお、Ｚはハイインピーダンスを示し、＊はドントケア（値を問わない）を示す。
【００３７】
まず、イネーブル信号ＨＥＮ＝ＬＥＮ＝１のときは、セレクト信号ＨＳＥＬおよびＬＳＥＬの値に応じて、出力データＤＯ［３１：０］の内容が決まる。
すなわち、ＨＳＥＬ＝ＬＳＥＬ＝０のときは、入力データＤ［３１：０］がそのままスルーして出力される。ＨＳＥＬ＝０，ＬＳＥＬ＝１のときは、入力データの上位１６ビットＤ［３１：１６］が、ＨＳＥＬ＝１，ＬＳＥＬ＝０のときは、入力データの下位１６ビットＤ［１５：０］が、出力の上位１６ビットおよび下位１６ビットに出力される。ＨＳＥＬ＝ＬＳＥＬ＝１のときは、入力データの上位と下位を逆転したデータが出力される。
【００３８】
そして、少なくともいずれかのイネーブル信号が「０」になると、対応する出力がハイインピーダンスとなる。ＨＥＮ＝０では、出力データの上位１６ビットＤＯ［３１：１６］がハイインピーダンスとなり、ＬＥＮ＝０では、同下位１６ビットＤＯ［１５：０］がハイインピーダンスとなる。ＨＥＮ＝ＬＥＮ＝０のときは、両者ともにハイインピーダンスとなる。
【００３９】
次に、以上のように構成される情報処理装置１１０において、バスを用いたデータ転送を行い、転送エラーが発生したときの動作について説明する。
データ転送は、カード２１０のＣＰＵ２１１からカード２２０のＩＣ２２１に対して行うとする。ＩＣ２２１の受信部２２１ｂは、ＣＰＵ２１１から送信されたデータを受け取り、同検出部２２１ａは、受け取ったデータのエラーの有無を検出する。本実施の形態において、検出部２２１ａは受け取ったデータのパリティチェックを行うものとする。パリティチェックは、受け取った３２ビットデータの上位１６ビットと下位１６ビットとに分けてチェックされる。
【００４０】
あるデータ転送時、検出部２２１ａにて、データの下位１６ビットにパリティエラーが検出されたとすると、検出部２２１ａからＣＰＵ２１１にパリティエラーの発生が通知される。
【００４１】
そして、ＣＰＵ２１１は、バスサイズ制御回路１１２に対してカード２１０からカード２２０への転送時に下位１６ビット側にパリティエラーが発生したことを通知する。バスサイズ制御回路１１２は、上記の通知に基づいて、異常の発生した下位１６ビット側を回避した上位１６ビット側をデータ転送のバスサイズとして決定する。さらに、カード２１０からカード２２０への転送時に異常が発生していることから、バスサイズ制御回路１１２は、バス制御回路１１１ｂに対して、上記のバスサイズに変更するための制御信号を送る。バス制御回路１１１ｂは、バスサイズ制御回路１１２からの制御信号に従って、変更したバスサイズでのデータ転送を行う（リトライサイクル）。
【００４２】
続いて、以上の動作についてタイミングチャートを用いて説明する。図５は、データ転送時に下位１６ビットにパリティエラーが検出された後、リトライサイクルが行われるまでのタイミングチャートである。
【００４３】
ＩＯＲＥＡＤ信号は、ＣＰＵ２１１からデータ転送を行うためのゲート信号である。
ＰＥＬＨ信号およびＰＥＬＬ信号は、パリティエラー発生時に検出部２２１ａからＣＰＵ２１１へ通知される信号である。パリティエラーが、データの上位１６ビットに生じた場合はＰＥＬＨ信号がハイレベルになり、データの下位１６ビットに生じた場合はＰＥＬＬ信号がハイレベルになる。
【００４４】
ＥＲＲＯＲ信号は、ＣＰＵ２１１からＩＣ２２１に通知されるエラービット信号であり、ハイレベルの場合は、ＩＣ２２１でのデータの書き込みが禁止される。また、ＲＥＴＲＹ信号は、ＣＰＵ２１１からＩＣ２２１に通知される再転送指示の信号である。
【００４５】
図において、区間ＴＡ１は通常のデータ転送を示している。データＤＯ［３１：０］は、バス制御回路１１１ａの出力データである。また、この区間でのバス制御回路１１１ａの入力データをデータＤＡ［３１：０］とする。ＣＰＵ２１１から送られたデータは、バス制御回路１１１ａ，１１１ｂをスルーして、そのままＩＣ２２１へと転送される。
【００４６】
ここで、データの下位１６ビット側にパリティエラーが検出されたとすると、ＰＥＬＬ信号がハイレベルとなり、ＣＰＵ２１１に通知される。
ＣＰＵ２１１は、これを受けてＥＲＲＯＲ信号をハイレベルにし、ＩＣ２２１でのデータ書き込みを禁止する。そして、ＥＲＲＯＲ信号をローレベルに戻すと同時にＲＥＴＲＹ信号をハイレベルにして、ＩＣ２２１にデータの再転送（リトライサイクル）を指示する。また、ＣＰＵ２１１は、バスサイズ制御回路１１２に対してバスの下位１６ビット側の異常を通知する。
【００４７】
区間ＴＢ１は、リトライサイクルを示している。リトライサイクルでは、区間Ｔ１１とＴ１２を用いて、区間ＴＡ１に転送できなかったデータＤＡ［３１：０］を時分割して転送する。リトライサイクル中、バス制御回路１１１ｂにはデータＤＡ［３１：０］が入力される。
【００４８】
バスサイズ制御回路１１２は、バス制御回路１１１ｂのバスサイズを、パリティエラーの発生した下位１６ビットを回避した上位１６ビットとするため、バス制御回路１１１ｂへのイネーブル信号ＬＥＮをローレベルにする。これにより、バス制御回路１１１ｂの出力データの下位１６ビットＤＯ［１５：０］がハイインピーダンスとなる（図ではＨｉ−Ｚと記載）。
【００４９】
さらに、バスサイズ制御回路１１２は、バス制御回路１１１ｂの制御信号ＨＳＥＬを、区間Ｔ１１にて「１」、区間Ｔ１２にて「０」とする。なお、ＨＥＮはハイレベルのまま、ＬＳＥＬはローレベルのままである。
【００５０】
上記のような制御信号によって、バス制御回路１１１ｂは、区間Ｔ１１にて入力データの下位１６ビットＤＡ［１５：０］を出力データの上位１６ビットＤＯ［３１：１６］に出力する。また、区間Ｔ１２にて、入力データの上位１６ビットＤＡ［３１：１６］をそのまま出力データの上位１６ビットＤＯ［３１：１６］に出力する（図４の真理値表を参照）。
【００５１】
上記の説明では、バスの下位１６ビット側での転送エラーにより、単純に上位１６ビット側のバスをデータ転送のバスサイズとして用いたが、異常ビットを特定することで、半分に限らず他のバスサイズで再送することもできる。
【００５２】
異常ビットの特定は、ユニット９０側で特定すること以外にも、例えば次のような方法を用いて行うことができる。すなわち、ＣＰＵ２１１は、バスの転送エラーを受信すると、ＭＳＢ（Ｍｏｓｔ  Ｓｉｇｎｉｆｉｃａｎｔ  Ｂｉｔ）からＬＳＢ（Ｌｅａｓｔ  Ｓｉｇｎｉｆｉｃａｎｔ  Ｂｉｔ）までビットパターンの異なるようなデータをＩＣ２２１に転送し、ＩＣ２２１の受信部２２１ｂは、上記のデータをそのままＣＰＵ２１１に返送する。そして、ＣＰＵ２１１が送信データと受信データを比較し、同じ値かどうかをビットごとに確認する。このようにして、異常ビットを特定することができる。
【００５３】
上記のように特定された異常ビットを回避するバスサイズは、異常ビットを含まない任意のサイズから選択可能であるが、転送効率を考慮すると、ある決まったデータ転送単位の倍数で最大となるバスサイズを選択するとよい。
【００５４】
例えば、バスの２ビット目，８ビット目，２９ビット目が異常ビットと特定された場合、論理的な有効データサイズは２９ビットである。ここで、転送データ単位を８ビットとすると、上記の有効データサイズ以内で転送データ単位の最大倍数であるバスサイズは２４ビットである。このようなバスサイズとすることで、データ転送の効率を高めることができる。
【００５５】
そして、バスサイズ制御回路１１２がこのようなバスサイズに決定すると、バス制御回路は、異常ビットを避けた２４ビットのマルチプレクサを再構築してデータ転送を行う。再構築されたマルチプレクサの情報は、バスサイズ制御回路１１２に記憶され、次回転送するときも同じ状態から行うことができる。
【００５６】
一方、上記とは別に、最初から異常ビットを特定しないでデータを再送する場合でも、次のようにすることで異常ビットを回避したバスサイズを決定することができる。すなわち、転送エラーが発生したら１６ビットのバスサイズで再送し、それでも転送エラーが発生した場合、再送したバスサイズの半分である８ビットで再送する。以下同様に、再送するバスサイズを半分ずつにしていくことで、異常ビットを含まないようなバスサイズを決定してデータを再送することができる。なお、再送の際は、バスサイズを満たすような全てのビットの組み合わせで再送を行う。例えば、バスサイズが８ビットで指定された場合、３２ビットバスを単純にＬＳＢから順に８ビットずつ区分けしたものに対してだけ再送するのではなく、バスサイズが合計で８ビットとなるような全てのビットの組み合わせについても再送を行う。
【００５７】
ただ、このようにバスサイズを半分ずつにしていくと、転送に要する時間も倍ごとに増加していくため、転送エラーが発生しないような最大のバスサイズが決まっても、転送能力不足のためにエラーが生じてしまう場合がある。このようなエラーはデータオーバーランと呼ばれ、ある送信データが規定時間内に転送できなかったときに発生するエラーである。データオーバーランが発生した場合は、先に説明したような方法で異常ビットを特定し、その結果に基づいてマルチプレクサの再構築を行う。
【００５８】
以上説明したように、バス上のデータ転送時に異常が生じた際、異常ビットを含まないバスを用いてデータを時分割転送することにより、バスの伝送回路を通常の構成としたままで障害を回避したデータ転送を行うことができる。
【００５９】
なお、上記の説明ではバス幅を３２ビットとしたが、他のビット数のバスについても適用できる。また、カード２１０からカード２２０への転送について説明したが、逆にカード２２０からカード２１０への転送についても、同様の処理を行うことができる。さらに、カード数は上記に限定されることはなく、複数のカードがバスに結合されていても、上記と同様の処理を実現することができる。
【００６０】
また、ＣＰＵ２１１がカードに搭載された形態に限定されることはない。例えば、ＣＰＵ２１１がバス１１５に接続されて情報処理装置１１０を制御しているような場合でも、ＣＰＵ２１１とカード間、およびカードとカード間の転送について上記と同様の処理を実現することができる。
【００６１】
また、転送データ単位は８ビットに限らず、他のビット数としてもよい。
（第２の実施の形態）
図６は、第２の実施の形態の情報処理装置の動作を説明するためのブロック図である。第１の実施の形態と同じものには同じ符号を付す。
【００６２】
情報処理装置２０は、バス制御装置２１、バスサイズ制御装置２２、およびバス制御装置２１を介したバスＡＤ［３：０］の両端にそれぞれ接続されたユニット８０，９０によって構成される。バスサイズ制御装置２２は、データ転送中に異常が発生すると、データ転送を行うためのバスサイズを決定し、バス制御装置２１に対してバスサイズを変更するための制御信号を送る。バス制御装置２１は、上記の制御信号に従い、所定のバスを固定データとすることでバスサイズを変更し、再度データ転送を行う。
【００６３】
以上のような構成の情報処理装置２０において、ユニット８０からユニット９０へ、バスＡＤ［３：０］を用いてデータ転送を行う。このとき、転送エラーが発生したとして、情報処理装置２０の動作を説明する。
【００６４】
ユニット９０は、バス上の異常を検出すると、ユニット８０に転送エラー信号を送る。そして、ユニット８０は、バスサイズ制御装置２２に対してバスの異常を通知する。
【００６５】
バスサイズ制御装置２２は、上記の通知に基づいて、データ転送を行うバスサイズを決定する。ここでは半分のバスサイズに決定するものとする。そして、バスサイズ制御装置２２は、バス制御装置２１に対してバスサイズを半分に変更するための制御信号を送る。バス制御装置２１は、この制御信号に従って、まず半分のバス（例えば、ビットＡＤ［０］，ＡＤ［２］の２本）を特定のレベル（図ではグランドに落とされてローレベルとなる）に固定してバスサイズを半分にし、ビットＡＤ［３］，ＡＤ［１］の２本を用いてデータを再送する。次に、今度はビットＡＤ［３］，ＡＤ［１］の２本を特定のレベルに固定し、ビットＡＤ［２］，ＡＤ［０］の２本を用いてデータを再送する。
【００６６】
このように、バスに異常が発生した場合、所定のバスを特定のレベルに固定し、残りのバスを用いてデータ転送を行うことで、スイッチングノイズやクロストークノイズなどの影響の少ないデータ転送を実現できる。
【００６７】
なお、上記の説明では再送時のバスサイズを半分としたが、半分に限らず任意のバスサイズとすることができる。また、バス幅を４ビットとして説明したが、他のビット数のバスについても適用できる。
【００６８】
また、ユニット８０からユニット９０への転送について説明したが、逆にユニット９０からユニット８０への転送についても同様に行うことができる。さらに、ユニット数は２つに限定されることはなく、複数ユニットが結合されていても、ユニット間で上記と同様の処理を実現することができる。
【００６９】
また、特定のレベルに固定するバスも、要求されたバスサイズを満たすのであれば、どのような組み合わせでもよい。さらに、上記の説明では特定のレベルとしてローレベルに固定したが、ハイレベルに固定してもよい。
【００７０】
次に、上記の情報処理装置２０を適用した情報処理装置１２０について説明する。情報処理装置１２０は、第１の実施の形態における情報処理装置１１０（図２参照）と基本的に同じ構成のため図を省略する。図２からの変更内容は、バス制御回路１１１ａ〜１１１ｃがバス制御回路１２１ａ〜１２１ｃになり、バスサイズ制御回路１１２がバスサイズ制御回路１２２になることである。また、３２ビットのバス１１５から、４ビットのバス１２５になる。なお、バス制御回路１２１ａ〜１２１ｃは、それぞれ図６のバス制御装置２１に相当し、バスサイズ制御回路１２２は、同図のバスサイズ制御装置２２に相当する。
【００７１】
ここで、バス制御回路１２１について説明する。図７は、バス制御回路の内部構成例であり、図８はバス制御回路の真理値表である。
バス制御回路１２１は、ＡＮＤゲート１２３ａ〜１２３ｄによって構成される。バス制御回路１２１には、４ビットのデータＤ［３：０］が入力され、データＤ［０］〜Ｄ［３］がＡＮＤゲート１２３ａ〜１２３ｄの入力の一端にそれぞれ入力される。また、ＡＮＤゲート１２３ａ，１２３ｃの入力の他端にはゲート信号ＳＥＬＡが、ＡＮＤゲート１２３ｂ，１２３ｄの他端にはゲート信号ＳＥＬＢがそれぞれ入力される（ゲート信号ＳＥＬＡ，ＳＥＬＢは、後述するように、バスサイズ制御回路１２２によって生成される制御信号である）。ＡＮＤゲート１２３ａ〜１２３ｄの出力はデータＤＯ［０］〜ＤＯ［３］とし、これらがまとまり、バス制御回路１２１からはデータＤＯ［３：０］が出力される。
【００７２】
続いて、上記のように構成されるバス制御回路１２１の動作について、図８の真理値表を用いて説明する。
ＳＥＬＡ＝ＳＥＬＢ＝０のときは、出力データＤＯ［３：０］が全て「０」となり、ＳＥＬＡ＝ＳＥＬＢ＝１のときは、入力データＤ［３：０］がそのまま出力にスルーされる。また、ＳＥＬＡ＝１，ＳＥＬＢ＝０のときには、入力データＤ［０］，Ｄ［２］はそのまま出力データＤＯ［０］，ＤＯ［２］に出力され、出力データＤＯ［１］とＤＯ［３］は「０」に固定される。ＳＥＬＡ＝０，ＳＥＬＢ＝１のときは、入力データＤ［１］，Ｄ［３］がそのまま出力データＤＯ［１］，ＤＯ［３］に出力され、出力データＤＯ［０］とＤＯ［２］が「０」に固定される。
【００７３】
次に、以上のように構成される情報処理装置１２０において、バスを用いたデータ転送を行い、転送エラーが発生したときの動作について、タイミングチャートを用いて説明する。
【００７４】
第１の実施の形態と同様、ユニット２１０のＣＰＵ２１１からユニット２２０のＩＣ２２１に対してデータの転送を行うものとする。図９は、データ転送時に転送エラーが発生した後、リトライサイクルが行われるまでのタイミングチャートである。図５と同じ信号については、説明を省略する。
【００７５】
区間ＴＡ２は、正常なデータ転送を示している。データＤＯ［３：０］はバス制御回路１２１ｂの出力データである。また、この区間でのバス制御回路１２１ｂの入力データをデータＤＢ［３：０］とし、ここでは７（データＤＢ［３］＝０，ＤＢ［２］＝１，ＤＢ［１］＝１，ＤＢ［０］＝１）を出力データＤＯ［３：０］に転送するものとする。
【００７６】
区間ＴＡ２において、検出部２２１ａが転送エラーを検出すると、ＣＰＵ２１１に通知される。ＣＰＵ２１１は、ＩＣ２２１に対して、ＥＲＲＯＲ信号をハイレベルにしてデータの書き込みを禁止し、ＲＥＴＲＹ信号をハイレベルにしてリトライサイクルを指示する。また、ＣＰＵ２１１は、カード２１０からカード２２０への転送時にバスの異常が発生したことを、バスサイズ制御回路１２２に対して通知する。
【００７７】
区間ＴＢ２はリトライサイクルを示している。ＣＰＵ２１１は、区間ＴＡ２に転送できなかったデータＤＢ［３：０］を、リトライサイクルＴＢ２の区間Ｔ２１と区間Ｔ２２とに時分割して再送する。リトライサイクル中、バス制御回路１２１ｂにはデータＤＢ［３：０］が入力される。
【００７８】
バスサイズ制御回路１２２は、ＣＰＵ２１１からの通知に基づいて、バス制御回路１２１ｂのバスサイズに対する決定を行う。ここでは半分のバスサイズに決定するものとする。これより、バス制御回路１２１ｂへの制御信号を、区間Ｔ２１にてＳＥＬＡ＝１，ＳＥＬＢ＝０、区間Ｔ２２にてＳＥＬＡ＝０，ＳＥＬＢ＝１とする。
【００７９】
上記のような制御信号によって、バス制御回路１２１ｂは、区間Ｔ２１ではデータＤＯ［２］，ＤＯ［０］に入力データＤＢ［２］＝１，ＤＢ［０］＝１を出力し、データＤＯ［３］，ＤＯ［１］に固定データ「０」を出力する。また、区間Ｔ２２ではデータＤＯ［３］，ＤＯ［１］に入力データＤＢ［３］＝０，ＤＢ［１］＝１を出力し、データＤＯ［２］，ＤＯ［０］に固定データ「０」を出力する（図８の真理値表を参照）。
【００８０】
このように、バス上のデータ転送時に異常が生じた際、入力データの隣に固定されたデータを出力することで、固定データはシールドの役割を果たし、スイッチングノイズやクロストークノイズの影響を半減したデータ転送を行うことができる。
【００８１】
なお、上記の説明では、固定データと入力データを交互に配した出力データを生成して時分割転送を行ったが、ある特定のビットを固定データとした出力データを生成して時分割転送することもできる。例えば、出力データＤＯ［０］を固定データ、出力データＤＯ［１］〜ＤＯ［３］を入力データＤ［１］〜Ｄ［３］としたパターンと、出力データＤＯ［０］を入力データＤ［０］、出力データＤＯ［１］〜ＤＯ［３］を固定データとしたパターンとを時分割転送することもできる。また、バス幅は４ビットとしたが、勿論これ以外のビット数でも上記と同様の処理を行うことができる。また、固定データとして「１」を出力してもよい。
【００８２】
また、カード２１０からカード２２０への転送について説明したが、逆にカード２２０からカード２１０への転送についても、同様に行うことができる。さらに、カード数は上記に限定されることはなく、複数のカードがバスに結合されていても、上記と同様の処理を実現することができる。
【００８３】
また、ＣＰＵ２１１がカードに搭載された形態に限定されることはない。例えば、ＣＰＵ２１１がバス１２５に接続されて情報処理装置１２０を制御しているような場合でも、ＣＰＵ２１１とカード間、およびカードとカード間の転送について上記と同様の処理を実現することができる。
【００８４】
（第３の実施の形態）
図１０は、第３の実施の形態の情報処理装置の動作を説明するためのブロック図である。第１の実施の形態と同じものには同じ符号を付す。
【００８５】
情報処理装置３０は、バス制御装置３１、バスサイズ制御装置３２、およびバス制御装置３１を介したバスＡＤ［３：０］の両端にそれぞれ接続されたユニット８０，９０によって構成される。バスサイズ制御装置３２は、データ転送中に異常が発生すると、バスサイズを半分に決定し、バス制御装置３１にバスサイズを変更するための制御信号を送る。また、バス制御装置３１は、差動ドライバ３３ａ，３３ｂを用いて、バスＡＤ［３：０］を対のバスラインとして構成している。例えば、バスＡＤ［３：２］とバスＡＤ［１：０］をそれぞれ対のバスラインとしている。そして、通常時には対のバスラインで２つのデータを転送するが、上記の制御信号を受信すると、対のバスラインを差動論理信号として用いることで、１つのデータを差動転送する。
【００８６】
以上のような構成の情報処理装置３０において、ユニット８０から受信側ユニット９０へ、バスＡＤ［３：０］を用いてデータ転送を行う。このとき、転送エラーが発生したとして、情報処理装置３０の動作を説明する。
【００８７】
ユニット９０は、バスの異常を検出すると、ユニット８０に転送エラー信号を送る。そして、ユニット８０は、バスサイズ制御装置３２にバスの異常を通知する。バスサイズ制御装置３２は、上記の通知に基づいてバスサイズを半分に決定し、バス制御装置３１に対してバスサイズを半分にするための制御信号を送る。
これにより、バス制御装置３１はバスＡＤ［３：０］を半分に分割する。ここでは、バスＡＤ［３：２］とバスＡＤ［１：０］に分割するものとする。そして、バス制御装置３１は、半分に分割されたバスＡＤ［３：２］およびバスＡＤ［１：０］をそれぞれ交互に差動ドライバ３３ａ，３３ｂへ入力することで、対のバスラインを用いて再度データを差動転送する（図では、バスＡＤ［３：２］と差動ドライバ３３ａ，３３ｂとの接続を示している）。この差動転送によって生成される差動論理信号は、データＡＤ［３：２］に対してはデータＡＤ［３］，−ＡＤ［３］，ＡＤ［２］，−ＡＤ［２］のようになり、データＡＤ［１：０］に対してはデータＡＤ［１］，−ＡＤ［１］，ＡＤ［０］，−ＡＤ［０］のようになる（−は反転記号を示す。例えばデータ−ＡＤ［３］は、データＡＤ［３］を反転したものである）。
【００８８】
このように、データ転送時に異常が発生した際、バスサイズを半分にして差動転送を行うことで、スイッチングノイズやクロストークノイズの影響を少なくしたデータ転送を行うことができる。
【００８９】
なお、バスサイズを半分にするようなビットの組み合わせは、上記に限らず他の組み合わせでもよい。また、バス幅は４ビットとしたが、勿論これ以外のビット数でも上記と同様の処理を行うことができる。
【００９０】
また、ユニット８０からユニット９０への転送について説明したが、逆にユニット９０からユニット８０への転送についても同様に行うことができる。さらに、ユニット数は２つに限定されることはなく、複数ユニットが結合されていても、ユニット間で上記と同様の処理を実現することができる。
【００９１】
次に、上記の情報処理装置３０を適用した情報処理装置１３０について説明する。情報処理装置１３０は、第１の実施の形態における情報処理装置１１０（図２参照）と基本的に同じ構成のため図を省略する。図２からの変更内容は、バス制御回路１１１ａ〜１１１ｃがバス制御回路１３１ａ〜１３１ｃになり、バスサイズ制御回路１１２がバスサイズ制御回路１３２になることである。また、３２ビットのバス１１５から、４ビットのバス１３５になる。なお、バス制御回路１３１ａ〜１３１ｃは、それぞれ図１０のバス制御装置３１に相当し、バスサイズ制御回路１３２は、同図のバスサイズ制御装置３２に相当する。
【００９２】
ここで、バス制御回路１３１について説明する。図１１は、バス制御回路の内部構成例であり、図１２はバス制御回路の真理値表である。
バス制御回路１３１は、４入力２出力のマルチプレクサ１３３ａ，１３３ｂおよび差動ドライバ１３４によって構成される。
【００９３】
バス制御回路１３１には、入力データＤ［３：０］が入力される。マルチプレクサ１３３ａ，１３３ｂは、セレクト信号Ｓ１、Ｓ２の値に応じて、４系統の入力ＩＡ，ＩＢ，ＩＣ，ＩＤから１つを選択して出力Ｏに出力する。また、差動ドライバ１３４は、出力モード選択信号Ｍ１，Ｍ２の値に応じて、出力データＤＯ［０］〜ＤＯ［３］を差動出力にするか、入力をそのままスルーして出力するか選択する。なお、セレクト信号Ｓ１，Ｓ２および出力モード選択信号Ｍ１，Ｍ２には、外部よりセレクト信号ＳＥＬＡ，ＳＥＬＢが入力される。セレクト信号ＳＥＬＡ，ＳＥＬＢは、バスサイズ制御回路１３２によって生成される制御信号である。
【００９４】
続いて、上記のように構成されるバス制御回路１３１の動作について、図１２の真理値表を用いて説明する。信号名の前に付けられた−は、反転記号を表す。ＳＥＬＢ＝ＳＥＬＡ＝０では出力データは全て「０」となり、ＳＥＬＢ＝ＳＥＬＡ＝１では入力データＤ［３：０］がそのまま出力される。
【００９５】
ＳＥＬＢ＝０，ＳＥＬＡ＝１では、入力データＤ［０］に対する差動論理信号Ｄ［０］，−Ｄ［０］と、入力データＤ［１］に対する差動論理信号Ｄ［１］，−Ｄ［１］が出力される。また、ＳＥＬＢ＝１，ＳＥＬＡ＝０では、入力データＤ［２］に対する差動論理信号Ｄ［２］，−Ｄ［２］と、入力データＤ［３］に対する差動論理信号Ｄ［３］，−Ｄ［３］が出力される。
【００９６】
次に、以上のように構成される情報処理装置１３０において、バスを用いたデータ転送を行い、転送エラーが発生したときの動作について、タイミングチャートを用いて説明する。
【００９７】
第１の実施の形態と同様、ユニット２１０のＣＰＵ２１１からユニット２２０のＩＣ２２１に対してデータの転送を行うものとする。図１３は、データ転送時に転送エラーが発生した後、リトライサイクルが行われるまでのタイミングチャートである。図５と同じ信号については、説明を省略する。
【００９８】
区間ＴＡ３は、正常なデータ転送を示している。ＤＯ［３：０］はバス制御回路１３２ｂの出力データとする。また、この区間でのバス制御回路１３２ｂの入力データをデータＤＣ［３：０］とし、ここでは７（データＤＣ［３］＝０，ＤＣ［２］＝１，ＤＣ［１］＝１，ＤＣ［０］＝１）を出力データＤＯ［３：０］に転送するものとする。
【００９９】
区間ＴＡ３において、検出部２２１ａが転送エラーを検出すると、ＣＰＵ２１１に通知される。ＣＰＵ２１１は、ＩＣ２２１に対して、ＥＲＲＯＲ信号をハイレベルにしてデータの書き込みを禁止し、ＲＥＴＲＹ信号をハイレベルにしてリトライサイクルを指示する。また、ＣＰＵ２１１は、カード２１０からカード２２０への転送時にバスの異常が発生したことを、バスサイズ制御回路１３２に対して通知する。
【０１００】
区間ＴＢ３は、リトライサイクルを示している。ＣＰＵ２１１は、区間ＴＡ３に転送できなかったデータＤＣ［３：０］を、リトライサイクルＴＢ３の区間Ｔ３１と区間Ｔ３２とに時分割して再送する。リトライサイクル中、バス制御回路１３１ｂにはデータＤＣ［３：０］が入力される。
【０１０１】
バスサイズ制御回路１３２は、ＣＰＵ２１１からの通知に基づいて、バス制御回路１３１ｂのバスサイズを半分に決定し、バス制御回路１３１ｂへの制御信号を区間Ｔ３１にてＳＥＬＡ＝１，ＳＥＬＢ＝０、区間Ｔ３２にてＳＥＬＡ＝０，ＳＥＬＢ＝１とする。
【０１０２】
上記のような制御信号によって、バス制御回路１３１ｂは、区間Ｔ３１でデータＤＣ［０］，ＤＣ［１］の差動論理信号（−ＤＣ［１］＝０，ＤＣ［１］＝１，−ＤＣ［０］＝０，ＤＣ［０］＝１）を、区間Ｔ３２でデータＤＣ［２］，ＤＣ［３］の差動論理信号（−ＤＣ［３］＝１，ＤＣ［３］＝０，−ＤＣ［２］＝０，ＤＣ［２］＝１）を、それぞれ差動ドライバ１３４から対のバスラインに転送する（図１２の真理値表参照）。
【０１０３】
このように、バス上のデータ転送時に異常が生じた際、データを差動論理信号に変換して時分割転送を行うことで、バスのスイッチングノイズやクロストークノイズの影響を半減したデータ転送を行うことができる。
【０１０４】
なお、上記の説明では差動論理信号を差動ドライバ１３４で生成したが、論理的な変換で差動論理信号を生成することもできる。例えば、バスに異常が発生したときに、ある入力データとそれを論理的に反転した反転入力データとを組にして差動論理信号を生成し、これを時分割転送する。そして、ＩＣ２２１の受信部２２１ｂにて、差動論理信号を元の形に戻すための変換処理を行う。図１４は、受信部での差動論理信号の変換処理を示す図である。データＤ，−Ｄは差動論理信号、データＤＯＵＴは差動論理信号から変換したデータを示す。
【０１０５】
図のように、データＤ，−Ｄが共に「０」または共に「１」のときには無効とし、データＤ＝０，−Ｄ＝１のときデータＤＯＵＴ＝０、データＤ＝１，−Ｄ＝０のときデータＤＯＵＴ＝１と変換処理することで、差動論理信号から元のデータに戻すことができる。
【０１０６】
また、上記の説明ではバス幅は４ビットとしたが、これ以外のビット数でも上記と同様の処理を行うことができる。
また、上記の説明では差動論理信号を生成するためのデータの組み合わせを、バス制御回路１３２ｂの入力データＤ［３：０］に対してデータＤ［０］，Ｄ［１］とデータＤ［２］，Ｄ［３］のようにしたが、データＤ［０］，Ｄ［３］とデータＤ［１］，Ｄ［２］などにしてもよい。
【０１０７】
また、カード２１０からカード２２０への転送について説明したが、逆にカード２２０からカード２１０への転送についても、同様に行うことができる。さらに、カード数は上記に限定されることはなく、複数のカードがバスに結合されていても、上記と同様の処理を実現することができる。
【０１０８】
また、ＣＰＵ２１１がカードに搭載された形態に限定されることはない。例えば、ＣＰＵ２１１がバス１３５に接続されて情報処理装置１３０を制御しているような場合でも、ＣＰＵ２１１とカード間、およびカードとカード間の転送について上記と同様の処理を実現することができる。
【０１０９】
（第４の実施の形態）
図１５は、第４の実施の形態の情報処理装置の動作を説明するためのブロック図である。第１の実施の形態と同じものには同じ符号を付す。
【０１１０】
情報処理装置４０は、バス制御装置４１、バスサイズ制御装置４２、およびバス制御装置４１を介したバスＡＤ［３：０］の両端にそれぞれ接続されたユニット８０，９０によって構成される。バスサイズ制御装置４２は、データ転送中に異常が発生すると、データ転送を行うためのバスサイズを決定し、バス制御装置４１に対してバスサイズを変更するための制御信号を送る。バス制御装置４１は、再転送するデータに対応した誤り訂正符号を生成し、上記の制御信号に従ってバスサイズを変更し、データと上記の誤り訂正符号を組み合わせてデータ転送を行う。
【０１１１】
以上のような構成の情報処理装置４０において、ユニット８０からユニット９０へ、バスＡＤ［３：０］を用いてデータ転送を行う。このとき、転送エラーが発生したとして、情報処理装置４０の動作を説明する。
【０１１２】
ユニット９０は、バスの異常を検出すると、ユニット８０へ転送エラー信号を送る。ユニット８０は、バスサイズ制御装置４２に対して、バスの異常を通知する。バスサイズ制御装置４２は、上記の通知に基づいて、データ転送を行うバスサイズを決定する。そして、バスサイズ制御装置４２は、バス制御装置４１に対してバスサイズを変更するための制御信号を送る。
【０１１３】
一方、バス制御装置４１は、再送するデータに対応した訂正符号を生成する。そして、再送するデータと生成された訂正符号のそれぞれを分割し、分割されたデータおよび訂正符号同士を組み合わせることで、データを再構成して転送する。
【０１１４】
このように、データ転送時に異常が発生した場合、バスサイズを変更して訂正符号を付加して再送することで、データ転送の信頼性を高めることができる。
なお、バス幅は４ビットとしたが、これ以外のビット数でも上記と同様の処理を行うことができる。
【０１１５】
また、ユニット８０からユニット９０への転送について説明したが、逆にユニット９０からユニット８０への転送についても同様に行うことができる。さらに、ユニット数は２つに限定されることはなく、複数ユニットが結合されていても、ユニット間で上記と同様の処理を実現することができる。
【０１１６】
次に、上記の情報処理装置４０を適用した情報処理装置１４０について説明する。情報処理装置１４０は、第１の実施の形態における情報処理装置１１０（図２参照）と基本的に同じ構成のため図を省略する。図２からの変更内容は、バス制御回路１１１ａ〜１１１ｃがバス制御回路１４１ａ〜１４１ｃになり、バスサイズ制御回路１１２がバスサイズ制御回路１４２になることである。また、３２ビットのバス１１５から４ビットのバス１４５になる。なお、バス制御回路１４１ａ〜１４１ｃは、それぞれ図１５のバス制御装置４１に相当し、バスサイズ制御回路１４２は、同図のバスサイズ制御装置４２に相当する。
【０１１７】
ここで、バス制御回路１４２について説明する。図１６は、バス制御回路の内部構成例であり、図１７はバス制御回路の真理値表である。
バス制御回路１４１は、ＥＣＣ（Ｅｒｒｏｒ    Ｃｏｒｒｅｃｔｉｎｇ    Ｃｏｄｅ）生成手段１４３、マルチプレクサ１４４ａ，１４４ｂ、およびマルチプレクサ１４５によって構成される。
【０１１８】
ＥＣＣ生成手段１４３は、入力データに対するＥＣＣを生成する。ここでは、入力データは４ビットデータＤ［３：０］なので、４ビットのＥＣＣデータＥＣ［３：０］が生成される。
【０１１９】
マルチプレクサ１４４ａ，１４４ｂ、およびマルチプレクサ１４５は、セレクト信号Ｓに対し、Ｓ＝０で入力Ａ、Ｓ＝１で入力Ｂが選択されるとする。なお、マルチプレクサ１４４ａ，１４４ｂの入力は２ビットであり、マルチプレクサ１４５の入力は４ビットである。
【０１２０】
マルチプレクサ１４４ａに対しては、上記のデータＥＣ［３：０］の下位２ビットを入力Ａに、上位２ビットを入力Ｂに入力する。また、マルチプレクサ１４４ｂに対しては、データＤ［３：０］の下位２ビットを入力Ａに、上位２ビットを入力Ｂに入力する。そして、マルチプレクサ１４４ａ，１４４ｂそれぞれの出力をまとめて４ビットデータとしてマルチプレクサ１４５の入力Ａに入力し、同入力Ｂには、データＤ［３：０］を入力する。マルチプレクサ１４４ａ，１４４ｂのセレクト信号Ｓには、外部よりセレクト信号ＳＥＬＡを入力し、マルチプレクサ１４５のセレクト信号Ｓには、セレクト信号ＳＥＬＢを入力する。
【０１２１】
続いて、上記のように構成されるバス制御回路１４１の動作について、図１７の真理値表を用いて説明する。なお、＊はドントケア（値を問わない）を示す。ＳＥＬＢ＝０のときには、ＳＥＬＡ＝０で入力データの下位２ビットとＥＣＣの下位２ビット、ＳＥＬＡ＝１で入力データの上位２ビットとＥＣＣの下位２ビットが、それぞれ組となって出力される。ＳＥＬＢ＝１のときには、入力データがスルーされる。
【０１２２】
次に、以上のような情報処理装置１４０において、バスを用いたデータ転送を行い、エラーが発生した時の動作について、タイミングチャートを用いて説明する。
【０１２３】
第１の実施の形態と同様、ユニット２１０のＣＰＵ２１１からユニット２２０のＩＣ２２１に対してデータの転送を行うとする。図１８は、データ転送時に転送エラーが発生した後、リトライサイクルが行われるまでのタイミングチャートである。図５と同じ信号については、説明を省略する。
【０１２４】
区間ＴＡ４は、正常なデータ転送を示している。データＤＯ［３：０］は、バス制御回路１４１ｂの出力データである。また、データＤＤ［３：０］は、この区間でのバス制御回路１４１ｂの入力データとする。
【０１２５】
区間ＴＡ４において、検出部２２１ａが転送エラーを検出すると、ＣＰＵ２１１に通知される。ＣＰＵ２１１は、ＩＣ２２１に対して、ＥＲＲＯＲ信号をハイレベルにしてデータの書き込みを禁止し、ＲＥＴＲＹ信号をハイレベルにしてリトライサイクルを指示する。また、ＣＰＵ２１１は、カード２１０からカード２２０への転送時にバスの異常が発生したことを、バスサイズ制御回路１４２に対して通知する。
【０１２６】
区間ＴＢ４は、リトライサイクルを示している。ＣＰＵ２１１は、区間ＴＡ４に転送できなかったデータＤＤ［３：０］を、リトライサイクルの区間Ｔ４１と区間Ｔ４２とに時分割して再送する。リトライサイクル中、バス制御回路１４１ｂにはデータＤＤ［３：０］が入力される。
【０１２７】
バスサイズ制御回路１４２は、ＣＰＵ２１１からの指示に基づいて、バス制御回路１４１ｂのバスサイズに対する決定を行う。ここでは、半分のバスサイズに決定するものとする。これより、バス制御回路１４１ｂへの制御信号を、区間Ｔ４１にてＳＥＬＡ＝１，ＳＥＬＢ＝０、区間Ｔ４２にてＳＥＬＡ＝０，ＳＥＬＢ＝０とする。
【０１２８】
上記のような制御信号によって、バス制御回路１４１ｂは、区間Ｔ４１では入力データの下位２ビットＤＤ［１：０］とＥＣＣの下位２ビットＥＣ［１：０］、区間Ｔ４２では入力データの上位２ビットＤＤ［３：２］とＥＣＣの上位２ビットＥＣ［３：２］を出力する（図１７の真理値表を参照）。そして、ＩＣ２２１の受信部２２１ｂは、このように時分割されたデータを元に戻し、付加されたＥＣＣを用いてＥＣＣチェックを行う。
【０１２９】
このように、データ転送中に転送エラーが発生した場合、データとデータに対応するＥＣＣを組にして時分割転送を行うことで、バス上で発生する誤りを訂正することができる。
【０１３０】
なお、上記の説明では誤り訂正符号としてＥＣＣを用いたが、他にＣＲＣ（Ｃｙｃｌｉｃ  Ｒｅｄｕｎｄａｎｃｙ  Ｃｈｅｃｋ）やハミングコードなども用いることができる。また、上記の説明ではバス幅を４ビットとしたが、これ以外のビット数でも上記と同様の処理を行うことができる。
【０１３１】
また、カード２１０からカード２２０への転送について説明したが、逆にカード２２０からカード２１０への転送についても、同様に行うことができる。さらに、カード数は上記に限定されることはなく、複数のカードがバスに結合されていても、上記と同様の処理を実現することができる。
【０１３２】
また、ＣＰＵ２１１がカードに搭載された形態に限定されることはない。例えば、ＣＰＵ２１１がバス１４５に接続されて情報処理装置１４０を制御しているような場合でも、ＣＰＵ２１１とカード間、およびカードとカード間の転送について上記と同様の処理を実現することができる。
【０１３３】
（第５の実施の形態）
図１９は、第５の実施の形態の情報処理装置の構成図である。
情報処理装置１５０は、スロット切断制御装置１５１、スイッチ１５２ａ〜１５２ｃを有している。スロット切断制御装置１５１は、ＣＰＵ２４１によって制御され、スイッチ１５２ａ〜１５２ｃのオンとオフを制御する。また、情報処理装置１５０にはスロット１０１〜１０３が設けられ、スイッチ１５２ａ〜１５２ｃを介してバス１５５に接続されている。
【０１３４】
スロット１０１にはＣＰＵ２４１を搭載したユニット２４０が結合され、スロット１０３にはユニット２６０が結合されている。ＣＰＵ２４１では、情報処理装置１５０の稼動状況を診断するＲＡＳ（Ｒｅｌｉａｂｉｌｉｔｙ    Ａｖａｉｌａｂｉｌｉｔｙ    Ｓｅｒｖｉｃｅａｂｉｌｉｔｙ）プログラム１５８が実行され、診断結果は適宜コンソール３００に表示されるとともに、バス１５５に接続されたハードディスク１５６に格納されたアプリケーション１５７に通知される。
【０１３５】
以上のような構成の情報処理装置１５０において、新たに、スロット１０２にユニット２５０を追加したとする。ＲＡＳプログラム１５８は、ユニット２５０の挿入を検知すると、各ユニットの組み合わせに対してワーストパターンを転送し、データ転送が正常に行われるかどうか診断する。
【０１３６】
ユニットの組み合わせは、スロット切断制御装置１５１がスイッチ１５２ａ〜１５２ｃを制御することで実現する。すなわち、（１）スイッチ１５２ｂをオン，スイッチ１５２ｃをオフとして、ユニット２５０が結合，ユニット２６０が遮断された状態、（２）スイッチ１５２ｂをオフ，スイッチ１５２ｃをオンとして、ユニット２５０が遮断，ユニット２６０が結合された状態、（３）スイッチ１５２ｂをオン，スイッチ１５２ｃをオンにして、ユニット２５０，ユニット２６０が共に結合された状態、このような３通りのユニットの組み合わせをスイッチ１５２ａ〜１５２ｃのオン，オフの組み合わせによって実現する。
【０１３７】
そして、上記のような組み合わせ（１）〜（３）に対して、ＲＡＳプログラムは各ユニットにワーストパターンを送信し、返ってきたパターンとのデータコンペアによりデータの正当性の確認を行う。以上により、ＲＡＳプログラム１５８は、データ転送が正常に行われるかどうか診断する。
【０１３８】
以下、このような診断を用いた情報処理装置１５０の運用方法について説明する。図２０は情報処理装置の運用方法のフローチャートである。
［Ｓ１］ＲＡＳプログラム１５８は、ユニットの追加を認識する。
【０１３９】
［Ｓ２］ＲＡＳプログラム１５８は、スロット切断制御装置１５１を制御することでユニットの組み合わせを実現する。そして、各組み合わせに対して各ユニットにワーストパターンを送信する。
【０１４０】
［Ｓ３］ＲＡＳプログラム１５８は、ステップ［Ｓ２］で送信したワーストパターンと返ってきたパターンによるデータコンペアを行い、各ユニットに対するデータ転送が正常かどうか診断する。その結果、スイッチ１５２ａ〜１５２ｃ全てオンでのデータコンペアが全て正常であれば、ステップ［Ｓ８］に進む。そうでなければ、ステップ［Ｓ４］に進む。
【０１４１】
［Ｓ４］ＲＡＳプログラム１５８は、ステップ［Ｓ３］の結果から、最大ユニット数となるようなユニット構成を選択する。そして、選択されたユニット構成において、データコンペアが異常となるユニットに接続しているスイッチをスロット切断制御装置１５１によってオフにし、電気的に遮断する。
【０１４２】
［Ｓ５］ＲＡＳプログラム１５８は、ステップ［Ｓ４］で電気的に遮断されたユニットにおいて、情報処理装置１５０の運用上不可欠なユニットが含まれていないか調べる。その結果、運用上不可欠なユニットが遮断されていなければステップ［Ｓ６］に進み、そうでなければステップ［Ｓ７］に進む。
【０１４３】
［Ｓ６］ＲＡＳプログラム１５８は、異常ユニットを遮断した縮退運転中であること、および縮退運転のユニット構成をコンソール３００に表示し、アプリケーション１５７に対して保守要求などの警告通知を行う。その上で、情報処理装置１５０は運用を継続する。
【０１４４】
［Ｓ７］ＲＡＳプログラム１５８は、継続運用が不可能なことをコンソール３００に表示し、情報処理装置１５０をダウンさせる。
［Ｓ８］ＲＡＳプログラム１５８は、情報処理装置１５０に搭載されたユニットが全て有効であることをコンソール３００に表示する。そして、情報処理装置１５０は通常運転を行う。
【０１４５】
以上説明したように、バス上の異常診断を行う際、スロット切断制御装置１５１がスロットに接続されたスイッチのオン，オフを制御することでユニットの組み合わせを実現できるので、保守者によるカットアンドトライ作業が不要になる。また、異常ユニットはスイッチで電気的に遮断できるので、それが運用に不可欠なユニットでない限り、バス上から切り離すことで情報処理装置１５０の運用を継続することができる。
【０１４６】
なお、上記の説明では、ユニット２４０のＣＰＵ２４１が診断を行うとしたが、診断を行うＣＰＵ２４１は必ずしもユニットに搭載される必要はない。例えば、ＣＰＵ２４１がユニット２４０ではなくバス１５５に接続された構成でも、上記と同様の処理を実現できる。
【０１４７】
また、ユニットの追加によって上記の診断を行うとしたが、ユニットの取り外し時についても、上記と同様の処理を行うことができる。また、スイッチの数を増やしていくことで、ユニット枚数は３枚に限定されず、更に多くのユニット構成でも上記と同様の処理を実現することができる。
【０１４８】
（付記１）  バスに複数のユニットが結合される情報処理装置において、
データ転送時に前記バスに異常が発生したときに、異常ビットを含まないようなバスサイズを決定するバスサイズ制御装置と、
前記バスサイズに従い、前記異常ビットを回避してデータ転送を行うバス制御装置と、を有することを特徴とする情報処理装置。
【０１４９】
（付記２）  前記バス制御装置は、前記異常ビットを含まない他の半分のバスを使用するように構成したことを特徴とする付記１記載の情報処理装置。
（付記３）  前記バスサイズ制御装置は、バスに異常が発生するごとに前記バスサイズを半分にしていくことで、前記異常ビットを含まないバスサイズを決定することを特徴とする付記１記載の情報処理装置。
【０１５０】
（付記４）  バスに複数のユニットが結合される情報処理装置において、
データ転送時に前記バスに異常が発生したときに、データを転送する所定のバスサイズを決定するバスサイズ制御装置と、
前記バスサイズに従って前記データを転送し、前記バスサイズ以外のバスを特定のレベルに固定するバス制御装置と、を有することを特徴とする情報処理装置。
【０１５１】
（付記５）  前記バス制御装置は、データ転送用のバスと特定のレベルに固定したバスを交互に配置することを特徴とする付記４記載の情報処理装置。
（付記６）  バスに複数のユニットが結合される情報処理装置において、
データ転送時に前記バスに異常が発生したときに、データのバスサイズを前記バスの半分のバスサイズとするバスサイズ制御装置と、
差動信号のデータ転送として対のバスラインを構成し、正常時には、前記対のバスラインで２つのデータを転送し、データ転送時に前記バスに異常が発生したときには、前記対のバスラインを差動論理信号として、１つのデータを転送するバス制御装置と、を有することを特徴とする情報処理装置。
【０１５２】
（付記７）  バスに複数のユニットが結合される情報処理装置において、
データ転送時にバスに異常が発生したときに、データのバスサイズを前記バスの半分のバスサイズとするバスサイズ制御装置と、
データ転送時にバスに異常が発生したときに、対のバスラインを差動論理信号として、１つのデータを転送するバス制御装置と、を有することを特徴とする情報処理装置。
【０１５３】
（付記８）  バスに複数のユニットが結合される情報処理装置において、
データ転送時に前記バスに異常が発生したときに、データを転送する所定のバスサイズを決定するバスサイズ制御装置と、
前記データに対応する誤り訂正信号を生成し、前記バスサイズに従って前記データと前記誤り訂正信号を組にしてデータ転送を行うバス制御装置と、を有することを特徴とする情報処理装置。
【０１５４】
（付記９）  バスに複数のユニットが結合される情報処理装置において、
前記ユニットが結合されるスロットとバスの間に設けられたスイッチと、
前記バスに異常が発生したときに、異常ユニットの接続されたスイッチを切断するスロット切断制御装置と、を有することを特徴とする情報処理装置。
【０１５５】
（付記１０）  バスに複数のユニットが結合される情報処理装置の運転方法において、
ユニットが結合されるスロットとバスの間に設けられたスイッチを設け、
前記スイッチを制御して、データの転送が正常なユニットかどうかを確認する運転方法。
【０１５６】
（付記１１）  データの転送が異常なユニットが情報処理装置の運転に不可欠なユニットであるときは、情報処理装置の運転を停止し、不可欠なユニットでないときは異常ユニットを前記スイッチで切り離して前記情報処理装置の運転を継続することを特徴とする付記１０記載の情報処理装置の運転方法。
【０１５７】
【発明の効果】
以上説明したように本発明の情報処理装置は、データ転送時にバスに異常が発生したときに異常ビットを回避してデータ転送を行うような構成としたので、事前検証が困難な障害がバス上に発生したとしても、正常なバスを用いてデータを転送することで、複雑な伝送路を伴わずに上記の障害に起因するシステムの動作不良を防ぐことができ、製造コストを維持しつつ、システムの信頼性を高めることができる。
【０１５８】
また、本発明の情報処理装置は、データ転送時にバスに異常が発生したときに所定のバスサイズでデータ転送し、それ以外のバスを特定のレベルに固定するような構成としたので、バス上に発生するスイッチングノイズやクロストークノイズの影響を少なくしたデータ転送を実現することができる。
【０１５９】
また、本発明の情報処理装置は、データ転送時にバスに異常が発生したときにバスサイズを半分にして差動論理信号を転送するような構成としたので、バス上に発生するスイッチングノイズやクロストークノイズの影響を少なくしたデータ転送を実現することができる。
【０１６０】
また、本発明の情報処理装置は、データ転送時にバスに異常が発生したときに、データとデータに対応した誤り訂正符号を組み合わせて転送するような構成としたので、バス上に発生する誤りを訂正することができる。
【０１６１】
また、本発明の情報処理装置は、スイッチの制御によって異常ユニットを電気的に切断するような構成としたので、異常ユニットが発生した際には、それをバス上から切り離すことでシステムへの影響を遮断し、システムの運用を継続することができる。
【図面の簡単な説明】
【図１】第１の実施の形態の情報処理装置の動作を説明するためのブロック図である。
【図２】第１の実施の形態の情報処理装置の構成図である。
【図３】バス制御回路の内部構成例である。
【図４】バス制御回路の真理値表である。
【図５】データ転送時に下位１６ビットにパリティエラーが検出された後、リトライサイクルが行われるまでのタイミングチャートである。
【図６】第２の実施の形態の情報処理装置の動作を説明するためのブロック図である。
【図７】バス制御回路の内部構成例である。
【図８】バス制御回路の真理値表である。
【図９】データ転送時に転送エラーが発生した後、リトライサイクルが行われるまでのタイミングチャートである。
【図１０】第３の実施の形態の情報処理装置の動作を説明するためのブロック図である。
【図１１】バス制御回路の内部構成例である。
【図１２】バス制御回路の真理値表である。
【図１３】データ転送時に転送エラーが発生した後、リトライサイクルが行われるまでのタイミングチャートである。
【図１４】受信部での差動論理信号の変換処理を示す図である。
【図１５】第４の実施の形態の情報処理装置の動作を説明するためのブロック図である。
【図１６】バス制御回路の内部構成例である。
【図１７】バス制御回路の真理値表である。
【図１８】データ転送時に転送エラーが発生した後、リトライサイクルが行われるまでのタイミングチャートである。
【図１９】第５の実施の形態の情報処理装置の構成図である。
【図２０】情報処理装置の運用方法のフローチャートである。
【符号の説明】
１０  情報処理装置
１１  バス制御装置
１２  バスサイズ制御装置
８０  ユニット
９０  ユニット
【図１】
2005070822.tif 000003
【図２】
2005070822.tif 000004
【図３】
2005070822.tif 000005
【図４】
2005070822.tif 000006
【図５】
2005070822.tif 000007
【図６】
2005070822.tif 000008
【図７】
2005070822.tif 000009
【図８】
2005070822.tif 000010
【図９】
2005070822.tif 000011
【図１０】
2005070822.tif 000012
【図１１】
2005070822.tif 000013
【図１２】
2005070822.tif 000014
【図１３】
2005070822.tif 000015
【図１４】
2005070822.tif 000016
【図１５】
2005070822.tif 000017
【図１６】
2005070822.tif 000018
【図１７】
2005070822.tif 000019
【図１８】
2005070822.tif 000020
【図１９】
2005070822.tif 000021
【図２０】
2005070822.tif 000022