JP2005070822A - 情報処理装置 - Google Patents
情報処理装置 Download PDFInfo
- Publication number
- JP2005070822A JP2005070822A JP2003208237A JP2003208237A JP2005070822A JP 2005070822 A JP2005070822 A JP 2005070822A JP 2003208237 A JP2003208237 A JP 2003208237A JP 2003208237 A JP2003208237 A JP 2003208237A JP 2005070822 A JP2005070822 A JP 2005070822A
- Authority
- JP
- Japan
- Prior art keywords
- bus
- data
- size
- information processing
- processing apparatus
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Images
Abstract
【課題】バス上のデータ転送時に異常が発生した際、バスサイズを変更して再転送を行う情報処理装置を提供する。
【解決手段】情報処理装置10において、ユニット80からユニット90にデータ転送を行う際、ビットAD[1]にて異常が発生したとすると、バスサイズ制御装置12は、ユニット80から異常ビットの通知を受け、異常ビットを回避したバスサイズ、例えばバスAD[7:4]にバスサイズを決定し、バス制御装置11に対してバスサイズをバスAD[7:0]からバスAD[7:4]に変更するための制御信号を送る。バス制御装置11は、この制御信号に従ってバスサイズを変更し、異常ビットを回避したデータ転送を行う。
【選択図】 図1
【解決手段】情報処理装置10において、ユニット80からユニット90にデータ転送を行う際、ビットAD[1]にて異常が発生したとすると、バスサイズ制御装置12は、ユニット80から異常ビットの通知を受け、異常ビットを回避したバスサイズ、例えばバスAD[7:4]にバスサイズを決定し、バス制御装置11に対してバスサイズをバスAD[7:0]からバスAD[7:4]に変更するための制御信号を送る。バス制御装置11は、この制御信号に従ってバスサイズを変更し、異常ビットを回避したデータ転送を行う。
【選択図】 図1
Description
【0001】
【発明の属する技術分野】
本発明はデータ転送を行うバスを有する情報処理装置に関し、特にスロットを介して複数のユニットがバス上に結合される情報処理装置に関する。
【0002】
【従来の技術】
データ転送を行うバス上にユニットが結合される情報処理装置において、例えば、機能を追加するためのユニットをバスに結合する場合、バスの配線条件、ユニットのICドライバのインピーダンス、振幅、遷移時間、搭載スロット位置などによってデータ転送時の送信波形に乱れが発生すると、受信側で正常なデータが受け取れず動作不良となることがある。
【0003】
近年は、PCIなどの標準規格バスを採用するため、PCI汎用ユニットを搭載することが多い。そのため、多種ユニットの各スロット搭載位置による事前の組み合わせ動作検証が困難になっており、たとえ安定動作しているシステムでも、ユニットを結合することでバスに障害が発生し、突然動作が不安定になる恐れがある。
【0004】
特に、金融機関システムや医療機器においてはノーダウンシステムが要求されるため、上記のようなバス上での障害は致命的であり、バスを運用系とバックアップ系で完全二重化するなどの対策が必要となっている。
【0005】
しかし、バスを二重化することによって、構成が複雑になり、コストも上昇する。
さらに、バスを完全に二重化しても、バスの配線条件、搭載ユニットのICドライバのインピーダンス、振幅、遷移時間、搭載スロット位置などによる影響の障害の場合、バックアップ系も同時に障害となることが多く、そのような場合は対象チャネルの縮退などしか障害を回避する手段がなかった。また、バスを二重化しない場合は、ユニットの人為的な取り外しによる縮退運用しか、バスの異常回避手段がなかった。
【0006】
従来、バス上のデータ転送前後に変化するビット数が一定数以上のときに、データを時分割転送することにより、通常動作時と全く変わらないシステム構成のままでスイッチングノイズの影響を低減する技術として、以下のようなものがある(例えば、特許文献1参照)。
【0007】
【特許文献1】
特開平7−84985号公報(段落番号〔0025〕〜〔0026〕、第3図)
【0008】
【発明が解決しようとする課題】
しかし、上記特許文献1に記載した技術は、データ転送時に同時に変化するビットを少なくすることでスイッチングノイズを低減するものである。バスデータの一斉変化によって発生する障害に対しては有効であるが、バス上に多種のユニットが結合されることによってもたらされる検証困難な障害、例えば、新たにユニットを結合することでバスの配線条件やインピーダンスが変動し、信号の反射によって乱れた波形が動作不良を起こすような障害には対応することができない。
【0009】
本発明はこのような点に鑑みてなされたものであり、バス上のデータ転送時に異常が発生した際、バスサイズを変更して再転送を行う情報処理装置を提供することを目的とする。
【0010】
【課題を解決するための手段】
本発明では上記課題を解決するために、図1に示すように、データ転送時にバスに異常が発生したときに、異常ビットを含まないようなバスサイズを決定するバスサイズ制御装置12と、前記バスサイズに従い、前記異常ビットを回避してデータ転送を行うバス制御装置11と、を有することを特徴とする情報処理装置10が提供される。
【0011】
この情報処理装置10において、データ転送時にバスに異常が発生すると、バスサイズ制御装置12は、異常ビットの通知に基づいて異常ビットを回避したバスサイズを決定し、バスサイズを変更するための制御信号をバス制御装置11に送る。バス制御装置11は、この制御信号に従ってバスサイズを変更し、異常ビットを回避したデータ転送を行う。
【0012】
また、上記課題を解決するために、図6に示すように、データを転送する所定のバスサイズを決定するバスサイズ制御装置22と、前記バスサイズに従って前記データを転送し、前記バスサイズ以外のバスを特定のレベルに固定するバス制御装置21と、を有することを特徴とする情報処理装置20が提供される。
【0013】
この情報処理装置20において、データ転送時にバスに異常が発生すると、バスサイズ制御装置22は、データを転送する所定のバスサイズを決定し、バスサイズを変更するための制御信号をバス制御装置21に送る。バス制御装置21は、この制御信号に従ってバスサイズを変更し、バスサイズ以外のバスを特定のレベルに固定してデータ転送を行う。
【0014】
また、上記課題を解決するために、図10に示すように、データ転送時にバスに異常が発生したときに、データのバスサイズを前記バスの半分のバスサイズとするバスサイズ制御装置32と、差動信号のデータ転送として対のバスラインを構成し、正常時には、前記対のバスラインで2つのデータを転送し、データ転送時に前記バスに異常が発生したときには、前記対のバスラインを差動論理信号として、1つのデータを転送するバス制御装置31と、を有することを特徴とする情報処理装置30が提供される。
【0015】
この情報処理装置30において、データ転送時にバスに異常が発生すると、バスサイズ制御装置32は、バスサイズをバス幅の半分に変更するための制御信号をバス制御装置31に送る。バス制御装置31は、通常時は対のバスライン2つのデータを転送しているが、上記の制御信号を受信すると、バスサイズを変更してバスサイズを構成するデータの差動論理信号を生成し、対のバスラインで1つのデータを転送する。
【0016】
また、上記課題を解決するために、図15に示すように、データ転送時にバスに異常が発生したときに、データを転送する所定のバスサイズを決定するバスサイズ制御装置42と、前記データに対応する誤り訂正信号を生成し、前記バスサイズに従って前記データと前記誤り訂正信号を組にしてデータ転送を行うバス制御装置41と、を有することを特徴とする情報処理装置40が提供される。
【0017】
この情報処理装置40において、データ転送時にバスに異常が発生すると、バスサイズ制御装置42は、データを転送する所定のバスサイズを決定し、バスサイズを変更するための制御信号をバス制御装置41に送る。バス制御装置41は、転送データに対応する誤り訂正信号を生成し、上記の制御信号に従ってバスサイズを変更し、データと上記の誤り訂正信号を組にしてデータ転送を行う。
【0018】
また、上記課題を解決するために、図19に示すように、ユニット240,250,260が結合されるスロット101〜103とバスの間に設けられたスイッチ152a〜152cと、バスに異常が発生したときに、異常ユニットの接続されたスイッチを切断するスロット切断制御装置151と、を有することを特徴とする情報処理装置150が提供される。
【0019】
この情報処理装置150において、異常ユニットが検出されると、スロット切断制御装置151は、異常ユニットが接続されたスイッチをオフにして、異常ユニットをバスから電気的に遮断する。
【0020】
【発明の実施の形態】
以下、本発明の実施の形態を図面を参照して説明する。
(第1の実施の形態)
図1は、第1の実施の形態の情報処理装置の動作を説明するためのブロック図である。
【0021】
情報処理装置10は、バス制御装置11、バスサイズ制御装置12、およびバス制御装置11を介したバスAD[7:0]の両端にそれぞれ接続されたユニット80,90によって構成される。バスサイズ制御装置12は、データ転送中にバスの異常が発生すると、異常ビットを回避するようなバスサイズを決定し、バス制御装置11に対してバスサイズを変更するための制御信号を送る。バス制御装置11は、上記の制御信号に従ってバスサイズを変更し、異常ビットを回避したデータ転送を行う。
【0022】
以上のような構成の情報処理装置10において、ユニット80からユニット90へ、バスAD[7:0]を用いてデータ転送を行う。このとき、ビットAD[1]にて異常が発生したとして、情報処理装置10の動作を説明する。
【0023】
ユニット90は、ビットAD[1]の異常を検出すると、ユニット80に転送エラー信号を送る。そして、ユニット80は、バスサイズ制御装置12に異常ビットを通知する。あるいは、ユニット90が、ビットAD[1]の異常を単にバスAD[7:0]の異常として検出したときも、ユニット90はユニット80に転送エラー信号を送る。そして、予め定められた方法でビットAD[1]の異常を検出して、バスサイズ制御装置12にビットAD[1]の異常を通知する。
【0024】
バスサイズ制御装置12は、上記の通知に基づいて、異常ビットを回避したバスサイズを決定する。ここでは、ビットAD[1]を避けてデータ転送を行うため、異常ビットを含まない残りの半分のバスAD[7:4]にバスサイズを決定するものとする。そして、バスサイズ制御装置12は、バス制御装置11に対してバスサイズをバスAD[7:0]からバスAD[7:4]に変更するための制御信号を送る。バス制御装置11は、この制御信号に従って、変更されたバスサイズでのデータ転送を行う(図中では、異常発生時にデータ転送を回避するバスAD[3:0]を点線で示している)。
【0025】
このように、データ転送時に異常ビットが発生した場合、異常ビットを含まないバスを用いてデータを再送することで、予め検証困難なバス障害が発生した際にも対応することができる。また、バスを二重化せずとも障害を回避することが可能になる。
【0026】
なお、上記の説明では、異常ビットを含まない他の半分のバスをバスサイズとして決定したが、半分に限定されることはなく、他のビット数のバスサイズでも同様の処理を実現することができる。
【0027】
また、上記の説明ではバス幅を8ビットとしたが、32ビット,64ビットなど、他のビット数のバスについても適用できる。また、ユニット80からユニット90への転送について説明したが、逆にユニット90からユニット80への転送についても同様に行うことができる。さらに、ユニット数は2つに限定されることはなく、複数ユニットが結合されていても、ユニット間で上記と同様の処理を実現することができる。
【0028】
また、上記の説明では異常ビットを特定したが、異常ビットを特定しない場合でも、バスサイズを半分ずつにしていきながら再送を繰り返すことで、異常ビットを含まないようなバスサイズを決定してデータを転送することができる。
【0029】
次に、上記の情報処理装置10を適用した情報処理装置110について説明する。図2は、第1の実施の形態の情報処理装置の構成図である。
情報処理装置110は、バス制御回路111a〜111cとバスサイズ制御回路112を有している。バス制御回路111a〜111cは、それぞれ図1のバス制御装置11に相当し、バスサイズ制御回路112は同図のバスサイズ制御装置12に相当する。
【0030】
また、情報処理装置110にはスロット101〜103が設けられており、スロット101にはCPU(Central Processing Unit)211が搭載されたカード210が、スロット102にはカード220が、スロット103にはカード230がそれぞれ接続されている。カード210は図1のユニット80に相当し、カード220は同図のユニット90に相当する。スロットに接続された各カードは、バス制御回路111a〜111cを介して、同一のバス115上に接続される。このバス幅は、32ビットとする。
【0031】
バスサイズ制御回路112は、CPU211から異常ビットの通知を受けると、異常ビットを回避したバスサイズを決定し、バス制御回路111a〜111cの制御信号をそれぞれ独立に生成する。制御信号には、HEN,LEN,HSEL,LSELがある(後述する)。
【0032】
バス制御回路111a〜111cは、バスサイズ制御回路112の制御信号に基づいて、異常ビットを回避したデータ転送を行う。ここで、バス制御回路について説明する。図3は、バス制御回路の内部構成例であり、図4はバス制御回路の真理値表である。
【0033】
バス制御回路111は、マルチプレクサ(MPX)113a,113bによって構成される。マルチプレクサ113a,113bは、セレクト信号S=0で入力Aが選択され、S=1で入力Bが選択されるものとする。
【0034】
バス制御回路111には、32ビットのデータD[31:0]が入力される。
そして、マルチプレクサ113aの入力A,BにはデータD[31:16],D[15:0]が、また、マルチプレクサ113bの入力A,BにはデータD[15:0],D[31:16]がそれぞれ入力される。
【0035】
さらに、バス制御回路111には、マルチプレクサ113a,113bのセレクト信号およびイネーブル信号として、HSEL,HENおよびLSEL,LENが入力される。これらの信号の組み合わせによって決定されるマルチプレクサ113a,113bの出力Oに出力されるデータは、データDO[31:16],DO[15:0]とし、バス制御回路111からは、両者がまとまって32ビットのデータDO[31:0]として出力される。
【0036】
続いて、上記のように構成されるバス制御回路111の動作について、図4の真理値表を用いて説明する。なお、Zはハイインピーダンスを示し、*はドントケア(値を問わない)を示す。
【0037】
まず、イネーブル信号HEN=LEN=1のときは、セレクト信号HSELおよびLSELの値に応じて、出力データDO[31:0]の内容が決まる。
すなわち、HSEL=LSEL=0のときは、入力データD[31:0]がそのままスルーして出力される。HSEL=0,LSEL=1のときは、入力データの上位16ビットD[31:16]が、HSEL=1,LSEL=0のときは、入力データの下位16ビットD[15:0]が、出力の上位16ビットおよび下位16ビットに出力される。HSEL=LSEL=1のときは、入力データの上位と下位を逆転したデータが出力される。
【0038】
そして、少なくともいずれかのイネーブル信号が「0」になると、対応する出力がハイインピーダンスとなる。HEN=0では、出力データの上位16ビットDO[31:16]がハイインピーダンスとなり、LEN=0では、同下位16ビットDO[15:0]がハイインピーダンスとなる。HEN=LEN=0のときは、両者ともにハイインピーダンスとなる。
【0039】
次に、以上のように構成される情報処理装置110において、バスを用いたデータ転送を行い、転送エラーが発生したときの動作について説明する。
データ転送は、カード210のCPU211からカード220のIC221に対して行うとする。IC221の受信部221bは、CPU211から送信されたデータを受け取り、同検出部221aは、受け取ったデータのエラーの有無を検出する。本実施の形態において、検出部221aは受け取ったデータのパリティチェックを行うものとする。パリティチェックは、受け取った32ビットデータの上位16ビットと下位16ビットとに分けてチェックされる。
【0040】
あるデータ転送時、検出部221aにて、データの下位16ビットにパリティエラーが検出されたとすると、検出部221aからCPU211にパリティエラーの発生が通知される。
【0041】
そして、CPU211は、バスサイズ制御回路112に対してカード210からカード220への転送時に下位16ビット側にパリティエラーが発生したことを通知する。バスサイズ制御回路112は、上記の通知に基づいて、異常の発生した下位16ビット側を回避した上位16ビット側をデータ転送のバスサイズとして決定する。さらに、カード210からカード220への転送時に異常が発生していることから、バスサイズ制御回路112は、バス制御回路111bに対して、上記のバスサイズに変更するための制御信号を送る。バス制御回路111bは、バスサイズ制御回路112からの制御信号に従って、変更したバスサイズでのデータ転送を行う(リトライサイクル)。
【0042】
続いて、以上の動作についてタイミングチャートを用いて説明する。図5は、データ転送時に下位16ビットにパリティエラーが検出された後、リトライサイクルが行われるまでのタイミングチャートである。
【0043】
IOREAD信号は、CPU211からデータ転送を行うためのゲート信号である。
PELH信号およびPELL信号は、パリティエラー発生時に検出部221aからCPU211へ通知される信号である。パリティエラーが、データの上位16ビットに生じた場合はPELH信号がハイレベルになり、データの下位16ビットに生じた場合はPELL信号がハイレベルになる。
【0044】
ERROR信号は、CPU211からIC221に通知されるエラービット信号であり、ハイレベルの場合は、IC221でのデータの書き込みが禁止される。また、RETRY信号は、CPU211からIC221に通知される再転送指示の信号である。
【0045】
図において、区間TA1は通常のデータ転送を示している。データDO[31:0]は、バス制御回路111aの出力データである。また、この区間でのバス制御回路111aの入力データをデータDA[31:0]とする。CPU211から送られたデータは、バス制御回路111a,111bをスルーして、そのままIC221へと転送される。
【0046】
ここで、データの下位16ビット側にパリティエラーが検出されたとすると、PELL信号がハイレベルとなり、CPU211に通知される。
CPU211は、これを受けてERROR信号をハイレベルにし、IC221でのデータ書き込みを禁止する。そして、ERROR信号をローレベルに戻すと同時にRETRY信号をハイレベルにして、IC221にデータの再転送(リトライサイクル)を指示する。また、CPU211は、バスサイズ制御回路112に対してバスの下位16ビット側の異常を通知する。
【0047】
区間TB1は、リトライサイクルを示している。リトライサイクルでは、区間T11とT12を用いて、区間TA1に転送できなかったデータDA[31:0]を時分割して転送する。リトライサイクル中、バス制御回路111bにはデータDA[31:0]が入力される。
【0048】
バスサイズ制御回路112は、バス制御回路111bのバスサイズを、パリティエラーの発生した下位16ビットを回避した上位16ビットとするため、バス制御回路111bへのイネーブル信号LENをローレベルにする。これにより、バス制御回路111bの出力データの下位16ビットDO[15:0]がハイインピーダンスとなる(図ではHi−Zと記載)。
【0049】
さらに、バスサイズ制御回路112は、バス制御回路111bの制御信号HSELを、区間T11にて「1」、区間T12にて「0」とする。なお、HENはハイレベルのまま、LSELはローレベルのままである。
【0050】
上記のような制御信号によって、バス制御回路111bは、区間T11にて入力データの下位16ビットDA[15:0]を出力データの上位16ビットDO[31:16]に出力する。また、区間T12にて、入力データの上位16ビットDA[31:16]をそのまま出力データの上位16ビットDO[31:16]に出力する(図4の真理値表を参照)。
【0051】
上記の説明では、バスの下位16ビット側での転送エラーにより、単純に上位16ビット側のバスをデータ転送のバスサイズとして用いたが、異常ビットを特定することで、半分に限らず他のバスサイズで再送することもできる。
【0052】
異常ビットの特定は、ユニット90側で特定すること以外にも、例えば次のような方法を用いて行うことができる。すなわち、CPU211は、バスの転送エラーを受信すると、MSB(Most Significant Bit)からLSB(Least Significant Bit)までビットパターンの異なるようなデータをIC221に転送し、IC221の受信部221bは、上記のデータをそのままCPU211に返送する。そして、CPU211が送信データと受信データを比較し、同じ値かどうかをビットごとに確認する。このようにして、異常ビットを特定することができる。
【0053】
上記のように特定された異常ビットを回避するバスサイズは、異常ビットを含まない任意のサイズから選択可能であるが、転送効率を考慮すると、ある決まったデータ転送単位の倍数で最大となるバスサイズを選択するとよい。
【0054】
例えば、バスの2ビット目,8ビット目,29ビット目が異常ビットと特定された場合、論理的な有効データサイズは29ビットである。ここで、転送データ単位を8ビットとすると、上記の有効データサイズ以内で転送データ単位の最大倍数であるバスサイズは24ビットである。このようなバスサイズとすることで、データ転送の効率を高めることができる。
【0055】
そして、バスサイズ制御回路112がこのようなバスサイズに決定すると、バス制御回路は、異常ビットを避けた24ビットのマルチプレクサを再構築してデータ転送を行う。再構築されたマルチプレクサの情報は、バスサイズ制御回路112に記憶され、次回転送するときも同じ状態から行うことができる。
【0056】
一方、上記とは別に、最初から異常ビットを特定しないでデータを再送する場合でも、次のようにすることで異常ビットを回避したバスサイズを決定することができる。すなわち、転送エラーが発生したら16ビットのバスサイズで再送し、それでも転送エラーが発生した場合、再送したバスサイズの半分である8ビットで再送する。以下同様に、再送するバスサイズを半分ずつにしていくことで、異常ビットを含まないようなバスサイズを決定してデータを再送することができる。なお、再送の際は、バスサイズを満たすような全てのビットの組み合わせで再送を行う。例えば、バスサイズが8ビットで指定された場合、32ビットバスを単純にLSBから順に8ビットずつ区分けしたものに対してだけ再送するのではなく、バスサイズが合計で8ビットとなるような全てのビットの組み合わせについても再送を行う。
【0057】
ただ、このようにバスサイズを半分ずつにしていくと、転送に要する時間も倍ごとに増加していくため、転送エラーが発生しないような最大のバスサイズが決まっても、転送能力不足のためにエラーが生じてしまう場合がある。このようなエラーはデータオーバーランと呼ばれ、ある送信データが規定時間内に転送できなかったときに発生するエラーである。データオーバーランが発生した場合は、先に説明したような方法で異常ビットを特定し、その結果に基づいてマルチプレクサの再構築を行う。
【0058】
以上説明したように、バス上のデータ転送時に異常が生じた際、異常ビットを含まないバスを用いてデータを時分割転送することにより、バスの伝送回路を通常の構成としたままで障害を回避したデータ転送を行うことができる。
【0059】
なお、上記の説明ではバス幅を32ビットとしたが、他のビット数のバスについても適用できる。また、カード210からカード220への転送について説明したが、逆にカード220からカード210への転送についても、同様の処理を行うことができる。さらに、カード数は上記に限定されることはなく、複数のカードがバスに結合されていても、上記と同様の処理を実現することができる。
【0060】
また、CPU211がカードに搭載された形態に限定されることはない。例えば、CPU211がバス115に接続されて情報処理装置110を制御しているような場合でも、CPU211とカード間、およびカードとカード間の転送について上記と同様の処理を実現することができる。
【0061】
また、転送データ単位は8ビットに限らず、他のビット数としてもよい。
(第2の実施の形態)
図6は、第2の実施の形態の情報処理装置の動作を説明するためのブロック図である。第1の実施の形態と同じものには同じ符号を付す。
【0062】
情報処理装置20は、バス制御装置21、バスサイズ制御装置22、およびバス制御装置21を介したバスAD[3:0]の両端にそれぞれ接続されたユニット80,90によって構成される。バスサイズ制御装置22は、データ転送中に異常が発生すると、データ転送を行うためのバスサイズを決定し、バス制御装置21に対してバスサイズを変更するための制御信号を送る。バス制御装置21は、上記の制御信号に従い、所定のバスを固定データとすることでバスサイズを変更し、再度データ転送を行う。
【0063】
以上のような構成の情報処理装置20において、ユニット80からユニット90へ、バスAD[3:0]を用いてデータ転送を行う。このとき、転送エラーが発生したとして、情報処理装置20の動作を説明する。
【0064】
ユニット90は、バス上の異常を検出すると、ユニット80に転送エラー信号を送る。そして、ユニット80は、バスサイズ制御装置22に対してバスの異常を通知する。
【0065】
バスサイズ制御装置22は、上記の通知に基づいて、データ転送を行うバスサイズを決定する。ここでは半分のバスサイズに決定するものとする。そして、バスサイズ制御装置22は、バス制御装置21に対してバスサイズを半分に変更するための制御信号を送る。バス制御装置21は、この制御信号に従って、まず半分のバス(例えば、ビットAD[0],AD[2]の2本)を特定のレベル(図ではグランドに落とされてローレベルとなる)に固定してバスサイズを半分にし、ビットAD[3],AD[1]の2本を用いてデータを再送する。次に、今度はビットAD[3],AD[1]の2本を特定のレベルに固定し、ビットAD[2],AD[0]の2本を用いてデータを再送する。
【0066】
このように、バスに異常が発生した場合、所定のバスを特定のレベルに固定し、残りのバスを用いてデータ転送を行うことで、スイッチングノイズやクロストークノイズなどの影響の少ないデータ転送を実現できる。
【0067】
なお、上記の説明では再送時のバスサイズを半分としたが、半分に限らず任意のバスサイズとすることができる。また、バス幅を4ビットとして説明したが、他のビット数のバスについても適用できる。
【0068】
また、ユニット80からユニット90への転送について説明したが、逆にユニット90からユニット80への転送についても同様に行うことができる。さらに、ユニット数は2つに限定されることはなく、複数ユニットが結合されていても、ユニット間で上記と同様の処理を実現することができる。
【0069】
また、特定のレベルに固定するバスも、要求されたバスサイズを満たすのであれば、どのような組み合わせでもよい。さらに、上記の説明では特定のレベルとしてローレベルに固定したが、ハイレベルに固定してもよい。
【0070】
次に、上記の情報処理装置20を適用した情報処理装置120について説明する。情報処理装置120は、第1の実施の形態における情報処理装置110(図2参照)と基本的に同じ構成のため図を省略する。図2からの変更内容は、バス制御回路111a〜111cがバス制御回路121a〜121cになり、バスサイズ制御回路112がバスサイズ制御回路122になることである。また、32ビットのバス115から、4ビットのバス125になる。なお、バス制御回路121a〜121cは、それぞれ図6のバス制御装置21に相当し、バスサイズ制御回路122は、同図のバスサイズ制御装置22に相当する。
【0071】
ここで、バス制御回路121について説明する。図7は、バス制御回路の内部構成例であり、図8はバス制御回路の真理値表である。
バス制御回路121は、ANDゲート123a〜123dによって構成される。バス制御回路121には、4ビットのデータD[3:0]が入力され、データD[0]〜D[3]がANDゲート123a〜123dの入力の一端にそれぞれ入力される。また、ANDゲート123a,123cの入力の他端にはゲート信号SELAが、ANDゲート123b,123dの他端にはゲート信号SELBがそれぞれ入力される(ゲート信号SELA,SELBは、後述するように、バスサイズ制御回路122によって生成される制御信号である)。ANDゲート123a〜123dの出力はデータDO[0]〜DO[3]とし、これらがまとまり、バス制御回路121からはデータDO[3:0]が出力される。
【0072】
続いて、上記のように構成されるバス制御回路121の動作について、図8の真理値表を用いて説明する。
SELA=SELB=0のときは、出力データDO[3:0]が全て「0」となり、SELA=SELB=1のときは、入力データD[3:0]がそのまま出力にスルーされる。また、SELA=1,SELB=0のときには、入力データD[0],D[2]はそのまま出力データDO[0],DO[2]に出力され、出力データDO[1]とDO[3]は「0」に固定される。SELA=0,SELB=1のときは、入力データD[1],D[3]がそのまま出力データDO[1],DO[3]に出力され、出力データDO[0]とDO[2]が「0」に固定される。
【0073】
次に、以上のように構成される情報処理装置120において、バスを用いたデータ転送を行い、転送エラーが発生したときの動作について、タイミングチャートを用いて説明する。
【0074】
第1の実施の形態と同様、ユニット210のCPU211からユニット220のIC221に対してデータの転送を行うものとする。図9は、データ転送時に転送エラーが発生した後、リトライサイクルが行われるまでのタイミングチャートである。図5と同じ信号については、説明を省略する。
【0075】
区間TA2は、正常なデータ転送を示している。データDO[3:0]はバス制御回路121bの出力データである。また、この区間でのバス制御回路121bの入力データをデータDB[3:0]とし、ここでは7(データDB[3]=0,DB[2]=1,DB[1]=1,DB[0]=1)を出力データDO[3:0]に転送するものとする。
【0076】
区間TA2において、検出部221aが転送エラーを検出すると、CPU211に通知される。CPU211は、IC221に対して、ERROR信号をハイレベルにしてデータの書き込みを禁止し、RETRY信号をハイレベルにしてリトライサイクルを指示する。また、CPU211は、カード210からカード220への転送時にバスの異常が発生したことを、バスサイズ制御回路122に対して通知する。
【0077】
区間TB2はリトライサイクルを示している。CPU211は、区間TA2に転送できなかったデータDB[3:0]を、リトライサイクルTB2の区間T21と区間T22とに時分割して再送する。リトライサイクル中、バス制御回路121bにはデータDB[3:0]が入力される。
【0078】
バスサイズ制御回路122は、CPU211からの通知に基づいて、バス制御回路121bのバスサイズに対する決定を行う。ここでは半分のバスサイズに決定するものとする。これより、バス制御回路121bへの制御信号を、区間T21にてSELA=1,SELB=0、区間T22にてSELA=0,SELB=1とする。
【0079】
上記のような制御信号によって、バス制御回路121bは、区間T21ではデータDO[2],DO[0]に入力データDB[2]=1,DB[0]=1を出力し、データDO[3],DO[1]に固定データ「0」を出力する。また、区間T22ではデータDO[3],DO[1]に入力データDB[3]=0,DB[1]=1を出力し、データDO[2],DO[0]に固定データ「0」を出力する(図8の真理値表を参照)。
【0080】
このように、バス上のデータ転送時に異常が生じた際、入力データの隣に固定されたデータを出力することで、固定データはシールドの役割を果たし、スイッチングノイズやクロストークノイズの影響を半減したデータ転送を行うことができる。
【0081】
なお、上記の説明では、固定データと入力データを交互に配した出力データを生成して時分割転送を行ったが、ある特定のビットを固定データとした出力データを生成して時分割転送することもできる。例えば、出力データDO[0]を固定データ、出力データDO[1]〜DO[3]を入力データD[1]〜D[3]としたパターンと、出力データDO[0]を入力データD[0]、出力データDO[1]〜DO[3]を固定データとしたパターンとを時分割転送することもできる。また、バス幅は4ビットとしたが、勿論これ以外のビット数でも上記と同様の処理を行うことができる。また、固定データとして「1」を出力してもよい。
【0082】
また、カード210からカード220への転送について説明したが、逆にカード220からカード210への転送についても、同様に行うことができる。さらに、カード数は上記に限定されることはなく、複数のカードがバスに結合されていても、上記と同様の処理を実現することができる。
【0083】
また、CPU211がカードに搭載された形態に限定されることはない。例えば、CPU211がバス125に接続されて情報処理装置120を制御しているような場合でも、CPU211とカード間、およびカードとカード間の転送について上記と同様の処理を実現することができる。
【0084】
(第3の実施の形態)
図10は、第3の実施の形態の情報処理装置の動作を説明するためのブロック図である。第1の実施の形態と同じものには同じ符号を付す。
【0085】
情報処理装置30は、バス制御装置31、バスサイズ制御装置32、およびバス制御装置31を介したバスAD[3:0]の両端にそれぞれ接続されたユニット80,90によって構成される。バスサイズ制御装置32は、データ転送中に異常が発生すると、バスサイズを半分に決定し、バス制御装置31にバスサイズを変更するための制御信号を送る。また、バス制御装置31は、差動ドライバ33a,33bを用いて、バスAD[3:0]を対のバスラインとして構成している。例えば、バスAD[3:2]とバスAD[1:0]をそれぞれ対のバスラインとしている。そして、通常時には対のバスラインで2つのデータを転送するが、上記の制御信号を受信すると、対のバスラインを差動論理信号として用いることで、1つのデータを差動転送する。
【0086】
以上のような構成の情報処理装置30において、ユニット80から受信側ユニット90へ、バスAD[3:0]を用いてデータ転送を行う。このとき、転送エラーが発生したとして、情報処理装置30の動作を説明する。
【0087】
ユニット90は、バスの異常を検出すると、ユニット80に転送エラー信号を送る。そして、ユニット80は、バスサイズ制御装置32にバスの異常を通知する。バスサイズ制御装置32は、上記の通知に基づいてバスサイズを半分に決定し、バス制御装置31に対してバスサイズを半分にするための制御信号を送る。
これにより、バス制御装置31はバスAD[3:0]を半分に分割する。ここでは、バスAD[3:2]とバスAD[1:0]に分割するものとする。そして、バス制御装置31は、半分に分割されたバスAD[3:2]およびバスAD[1:0]をそれぞれ交互に差動ドライバ33a,33bへ入力することで、対のバスラインを用いて再度データを差動転送する(図では、バスAD[3:2]と差動ドライバ33a,33bとの接続を示している)。この差動転送によって生成される差動論理信号は、データAD[3:2]に対してはデータAD[3],−AD[3],AD[2],−AD[2]のようになり、データAD[1:0]に対してはデータAD[1],−AD[1],AD[0],−AD[0]のようになる(−は反転記号を示す。例えばデータ−AD[3]は、データAD[3]を反転したものである)。
【0088】
このように、データ転送時に異常が発生した際、バスサイズを半分にして差動転送を行うことで、スイッチングノイズやクロストークノイズの影響を少なくしたデータ転送を行うことができる。
【0089】
なお、バスサイズを半分にするようなビットの組み合わせは、上記に限らず他の組み合わせでもよい。また、バス幅は4ビットとしたが、勿論これ以外のビット数でも上記と同様の処理を行うことができる。
【0090】
また、ユニット80からユニット90への転送について説明したが、逆にユニット90からユニット80への転送についても同様に行うことができる。さらに、ユニット数は2つに限定されることはなく、複数ユニットが結合されていても、ユニット間で上記と同様の処理を実現することができる。
【0091】
次に、上記の情報処理装置30を適用した情報処理装置130について説明する。情報処理装置130は、第1の実施の形態における情報処理装置110(図2参照)と基本的に同じ構成のため図を省略する。図2からの変更内容は、バス制御回路111a〜111cがバス制御回路131a〜131cになり、バスサイズ制御回路112がバスサイズ制御回路132になることである。また、32ビットのバス115から、4ビットのバス135になる。なお、バス制御回路131a〜131cは、それぞれ図10のバス制御装置31に相当し、バスサイズ制御回路132は、同図のバスサイズ制御装置32に相当する。
【0092】
ここで、バス制御回路131について説明する。図11は、バス制御回路の内部構成例であり、図12はバス制御回路の真理値表である。
バス制御回路131は、4入力2出力のマルチプレクサ133a,133bおよび差動ドライバ134によって構成される。
【0093】
バス制御回路131には、入力データD[3:0]が入力される。マルチプレクサ133a,133bは、セレクト信号S1、S2の値に応じて、4系統の入力IA,IB,IC,IDから1つを選択して出力Oに出力する。また、差動ドライバ134は、出力モード選択信号M1,M2の値に応じて、出力データDO[0]〜DO[3]を差動出力にするか、入力をそのままスルーして出力するか選択する。なお、セレクト信号S1,S2および出力モード選択信号M1,M2には、外部よりセレクト信号SELA,SELBが入力される。セレクト信号SELA,SELBは、バスサイズ制御回路132によって生成される制御信号である。
【0094】
続いて、上記のように構成されるバス制御回路131の動作について、図12の真理値表を用いて説明する。信号名の前に付けられた−は、反転記号を表す。SELB=SELA=0では出力データは全て「0」となり、SELB=SELA=1では入力データD[3:0]がそのまま出力される。
【0095】
SELB=0,SELA=1では、入力データD[0]に対する差動論理信号D[0],−D[0]と、入力データD[1]に対する差動論理信号D[1],−D[1]が出力される。また、SELB=1,SELA=0では、入力データD[2]に対する差動論理信号D[2],−D[2]と、入力データD[3]に対する差動論理信号D[3],−D[3]が出力される。
【0096】
次に、以上のように構成される情報処理装置130において、バスを用いたデータ転送を行い、転送エラーが発生したときの動作について、タイミングチャートを用いて説明する。
【0097】
第1の実施の形態と同様、ユニット210のCPU211からユニット220のIC221に対してデータの転送を行うものとする。図13は、データ転送時に転送エラーが発生した後、リトライサイクルが行われるまでのタイミングチャートである。図5と同じ信号については、説明を省略する。
【0098】
区間TA3は、正常なデータ転送を示している。DO[3:0]はバス制御回路132bの出力データとする。また、この区間でのバス制御回路132bの入力データをデータDC[3:0]とし、ここでは7(データDC[3]=0,DC[2]=1,DC[1]=1,DC[0]=1)を出力データDO[3:0]に転送するものとする。
【0099】
区間TA3において、検出部221aが転送エラーを検出すると、CPU211に通知される。CPU211は、IC221に対して、ERROR信号をハイレベルにしてデータの書き込みを禁止し、RETRY信号をハイレベルにしてリトライサイクルを指示する。また、CPU211は、カード210からカード220への転送時にバスの異常が発生したことを、バスサイズ制御回路132に対して通知する。
【0100】
区間TB3は、リトライサイクルを示している。CPU211は、区間TA3に転送できなかったデータDC[3:0]を、リトライサイクルTB3の区間T31と区間T32とに時分割して再送する。リトライサイクル中、バス制御回路131bにはデータDC[3:0]が入力される。
【0101】
バスサイズ制御回路132は、CPU211からの通知に基づいて、バス制御回路131bのバスサイズを半分に決定し、バス制御回路131bへの制御信号を区間T31にてSELA=1,SELB=0、区間T32にてSELA=0,SELB=1とする。
【0102】
上記のような制御信号によって、バス制御回路131bは、区間T31でデータDC[0],DC[1]の差動論理信号(−DC[1]=0,DC[1]=1,−DC[0]=0,DC[0]=1)を、区間T32でデータDC[2],DC[3]の差動論理信号(−DC[3]=1,DC[3]=0,−DC[2]=0,DC[2]=1)を、それぞれ差動ドライバ134から対のバスラインに転送する(図12の真理値表参照)。
【0103】
このように、バス上のデータ転送時に異常が生じた際、データを差動論理信号に変換して時分割転送を行うことで、バスのスイッチングノイズやクロストークノイズの影響を半減したデータ転送を行うことができる。
【0104】
なお、上記の説明では差動論理信号を差動ドライバ134で生成したが、論理的な変換で差動論理信号を生成することもできる。例えば、バスに異常が発生したときに、ある入力データとそれを論理的に反転した反転入力データとを組にして差動論理信号を生成し、これを時分割転送する。そして、IC221の受信部221bにて、差動論理信号を元の形に戻すための変換処理を行う。図14は、受信部での差動論理信号の変換処理を示す図である。データD,−Dは差動論理信号、データDOUTは差動論理信号から変換したデータを示す。
【0105】
図のように、データD,−Dが共に「0」または共に「1」のときには無効とし、データD=0,−D=1のときデータDOUT=0、データD=1,−D=0のときデータDOUT=1と変換処理することで、差動論理信号から元のデータに戻すことができる。
【0106】
また、上記の説明ではバス幅は4ビットとしたが、これ以外のビット数でも上記と同様の処理を行うことができる。
また、上記の説明では差動論理信号を生成するためのデータの組み合わせを、バス制御回路132bの入力データD[3:0]に対してデータD[0],D[1]とデータD[2],D[3]のようにしたが、データD[0],D[3]とデータD[1],D[2]などにしてもよい。
【0107】
また、カード210からカード220への転送について説明したが、逆にカード220からカード210への転送についても、同様に行うことができる。さらに、カード数は上記に限定されることはなく、複数のカードがバスに結合されていても、上記と同様の処理を実現することができる。
【0108】
また、CPU211がカードに搭載された形態に限定されることはない。例えば、CPU211がバス135に接続されて情報処理装置130を制御しているような場合でも、CPU211とカード間、およびカードとカード間の転送について上記と同様の処理を実現することができる。
【0109】
(第4の実施の形態)
図15は、第4の実施の形態の情報処理装置の動作を説明するためのブロック図である。第1の実施の形態と同じものには同じ符号を付す。
【0110】
情報処理装置40は、バス制御装置41、バスサイズ制御装置42、およびバス制御装置41を介したバスAD[3:0]の両端にそれぞれ接続されたユニット80,90によって構成される。バスサイズ制御装置42は、データ転送中に異常が発生すると、データ転送を行うためのバスサイズを決定し、バス制御装置41に対してバスサイズを変更するための制御信号を送る。バス制御装置41は、再転送するデータに対応した誤り訂正符号を生成し、上記の制御信号に従ってバスサイズを変更し、データと上記の誤り訂正符号を組み合わせてデータ転送を行う。
【0111】
以上のような構成の情報処理装置40において、ユニット80からユニット90へ、バスAD[3:0]を用いてデータ転送を行う。このとき、転送エラーが発生したとして、情報処理装置40の動作を説明する。
【0112】
ユニット90は、バスの異常を検出すると、ユニット80へ転送エラー信号を送る。ユニット80は、バスサイズ制御装置42に対して、バスの異常を通知する。バスサイズ制御装置42は、上記の通知に基づいて、データ転送を行うバスサイズを決定する。そして、バスサイズ制御装置42は、バス制御装置41に対してバスサイズを変更するための制御信号を送る。
【0113】
一方、バス制御装置41は、再送するデータに対応した訂正符号を生成する。そして、再送するデータと生成された訂正符号のそれぞれを分割し、分割されたデータおよび訂正符号同士を組み合わせることで、データを再構成して転送する。
【0114】
このように、データ転送時に異常が発生した場合、バスサイズを変更して訂正符号を付加して再送することで、データ転送の信頼性を高めることができる。
なお、バス幅は4ビットとしたが、これ以外のビット数でも上記と同様の処理を行うことができる。
【0115】
また、ユニット80からユニット90への転送について説明したが、逆にユニット90からユニット80への転送についても同様に行うことができる。さらに、ユニット数は2つに限定されることはなく、複数ユニットが結合されていても、ユニット間で上記と同様の処理を実現することができる。
【0116】
次に、上記の情報処理装置40を適用した情報処理装置140について説明する。情報処理装置140は、第1の実施の形態における情報処理装置110(図2参照)と基本的に同じ構成のため図を省略する。図2からの変更内容は、バス制御回路111a〜111cがバス制御回路141a〜141cになり、バスサイズ制御回路112がバスサイズ制御回路142になることである。また、32ビットのバス115から4ビットのバス145になる。なお、バス制御回路141a〜141cは、それぞれ図15のバス制御装置41に相当し、バスサイズ制御回路142は、同図のバスサイズ制御装置42に相当する。
【0117】
ここで、バス制御回路142について説明する。図16は、バス制御回路の内部構成例であり、図17はバス制御回路の真理値表である。
バス制御回路141は、ECC(Error Correcting Code)生成手段143、マルチプレクサ144a,144b、およびマルチプレクサ145によって構成される。
【0118】
ECC生成手段143は、入力データに対するECCを生成する。ここでは、入力データは4ビットデータD[3:0]なので、4ビットのECCデータEC[3:0]が生成される。
【0119】
マルチプレクサ144a,144b、およびマルチプレクサ145は、セレクト信号Sに対し、S=0で入力A、S=1で入力Bが選択されるとする。なお、マルチプレクサ144a,144bの入力は2ビットであり、マルチプレクサ145の入力は4ビットである。
【0120】
マルチプレクサ144aに対しては、上記のデータEC[3:0]の下位2ビットを入力Aに、上位2ビットを入力Bに入力する。また、マルチプレクサ144bに対しては、データD[3:0]の下位2ビットを入力Aに、上位2ビットを入力Bに入力する。そして、マルチプレクサ144a,144bそれぞれの出力をまとめて4ビットデータとしてマルチプレクサ145の入力Aに入力し、同入力Bには、データD[3:0]を入力する。マルチプレクサ144a,144bのセレクト信号Sには、外部よりセレクト信号SELAを入力し、マルチプレクサ145のセレクト信号Sには、セレクト信号SELBを入力する。
【0121】
続いて、上記のように構成されるバス制御回路141の動作について、図17の真理値表を用いて説明する。なお、*はドントケア(値を問わない)を示す。SELB=0のときには、SELA=0で入力データの下位2ビットとECCの下位2ビット、SELA=1で入力データの上位2ビットとECCの下位2ビットが、それぞれ組となって出力される。SELB=1のときには、入力データがスルーされる。
【0122】
次に、以上のような情報処理装置140において、バスを用いたデータ転送を行い、エラーが発生した時の動作について、タイミングチャートを用いて説明する。
【0123】
第1の実施の形態と同様、ユニット210のCPU211からユニット220のIC221に対してデータの転送を行うとする。図18は、データ転送時に転送エラーが発生した後、リトライサイクルが行われるまでのタイミングチャートである。図5と同じ信号については、説明を省略する。
【0124】
区間TA4は、正常なデータ転送を示している。データDO[3:0]は、バス制御回路141bの出力データである。また、データDD[3:0]は、この区間でのバス制御回路141bの入力データとする。
【0125】
区間TA4において、検出部221aが転送エラーを検出すると、CPU211に通知される。CPU211は、IC221に対して、ERROR信号をハイレベルにしてデータの書き込みを禁止し、RETRY信号をハイレベルにしてリトライサイクルを指示する。また、CPU211は、カード210からカード220への転送時にバスの異常が発生したことを、バスサイズ制御回路142に対して通知する。
【0126】
区間TB4は、リトライサイクルを示している。CPU211は、区間TA4に転送できなかったデータDD[3:0]を、リトライサイクルの区間T41と区間T42とに時分割して再送する。リトライサイクル中、バス制御回路141bにはデータDD[3:0]が入力される。
【0127】
バスサイズ制御回路142は、CPU211からの指示に基づいて、バス制御回路141bのバスサイズに対する決定を行う。ここでは、半分のバスサイズに決定するものとする。これより、バス制御回路141bへの制御信号を、区間T41にてSELA=1,SELB=0、区間T42にてSELA=0,SELB=0とする。
【0128】
上記のような制御信号によって、バス制御回路141bは、区間T41では入力データの下位2ビットDD[1:0]とECCの下位2ビットEC[1:0]、区間T42では入力データの上位2ビットDD[3:2]とECCの上位2ビットEC[3:2]を出力する(図17の真理値表を参照)。そして、IC221の受信部221bは、このように時分割されたデータを元に戻し、付加されたECCを用いてECCチェックを行う。
【0129】
このように、データ転送中に転送エラーが発生した場合、データとデータに対応するECCを組にして時分割転送を行うことで、バス上で発生する誤りを訂正することができる。
【0130】
なお、上記の説明では誤り訂正符号としてECCを用いたが、他にCRC(Cyclic Redundancy Check)やハミングコードなども用いることができる。また、上記の説明ではバス幅を4ビットとしたが、これ以外のビット数でも上記と同様の処理を行うことができる。
【0131】
また、カード210からカード220への転送について説明したが、逆にカード220からカード210への転送についても、同様に行うことができる。さらに、カード数は上記に限定されることはなく、複数のカードがバスに結合されていても、上記と同様の処理を実現することができる。
【0132】
また、CPU211がカードに搭載された形態に限定されることはない。例えば、CPU211がバス145に接続されて情報処理装置140を制御しているような場合でも、CPU211とカード間、およびカードとカード間の転送について上記と同様の処理を実現することができる。
【0133】
(第5の実施の形態)
図19は、第5の実施の形態の情報処理装置の構成図である。
情報処理装置150は、スロット切断制御装置151、スイッチ152a〜152cを有している。スロット切断制御装置151は、CPU241によって制御され、スイッチ152a〜152cのオンとオフを制御する。また、情報処理装置150にはスロット101〜103が設けられ、スイッチ152a〜152cを介してバス155に接続されている。
【0134】
スロット101にはCPU241を搭載したユニット240が結合され、スロット103にはユニット260が結合されている。CPU241では、情報処理装置150の稼動状況を診断するRAS(Reliability Availability Serviceability)プログラム158が実行され、診断結果は適宜コンソール300に表示されるとともに、バス155に接続されたハードディスク156に格納されたアプリケーション157に通知される。
【0135】
以上のような構成の情報処理装置150において、新たに、スロット102にユニット250を追加したとする。RASプログラム158は、ユニット250の挿入を検知すると、各ユニットの組み合わせに対してワーストパターンを転送し、データ転送が正常に行われるかどうか診断する。
【0136】
ユニットの組み合わせは、スロット切断制御装置151がスイッチ152a〜152cを制御することで実現する。すなわち、(1)スイッチ152bをオン,スイッチ152cをオフとして、ユニット250が結合,ユニット260が遮断された状態、(2)スイッチ152bをオフ,スイッチ152cをオンとして、ユニット250が遮断,ユニット260が結合された状態、(3)スイッチ152bをオン,スイッチ152cをオンにして、ユニット250,ユニット260が共に結合された状態、このような3通りのユニットの組み合わせをスイッチ152a〜152cのオン,オフの組み合わせによって実現する。
【0137】
そして、上記のような組み合わせ(1)〜(3)に対して、RASプログラムは各ユニットにワーストパターンを送信し、返ってきたパターンとのデータコンペアによりデータの正当性の確認を行う。以上により、RASプログラム158は、データ転送が正常に行われるかどうか診断する。
【0138】
以下、このような診断を用いた情報処理装置150の運用方法について説明する。図20は情報処理装置の運用方法のフローチャートである。
[S1]RASプログラム158は、ユニットの追加を認識する。
【0139】
[S2]RASプログラム158は、スロット切断制御装置151を制御することでユニットの組み合わせを実現する。そして、各組み合わせに対して各ユニットにワーストパターンを送信する。
【0140】
[S3]RASプログラム158は、ステップ[S2]で送信したワーストパターンと返ってきたパターンによるデータコンペアを行い、各ユニットに対するデータ転送が正常かどうか診断する。その結果、スイッチ152a〜152c全てオンでのデータコンペアが全て正常であれば、ステップ[S8]に進む。そうでなければ、ステップ[S4]に進む。
【0141】
[S4]RASプログラム158は、ステップ[S3]の結果から、最大ユニット数となるようなユニット構成を選択する。そして、選択されたユニット構成において、データコンペアが異常となるユニットに接続しているスイッチをスロット切断制御装置151によってオフにし、電気的に遮断する。
【0142】
[S5]RASプログラム158は、ステップ[S4]で電気的に遮断されたユニットにおいて、情報処理装置150の運用上不可欠なユニットが含まれていないか調べる。その結果、運用上不可欠なユニットが遮断されていなければステップ[S6]に進み、そうでなければステップ[S7]に進む。
【0143】
[S6]RASプログラム158は、異常ユニットを遮断した縮退運転中であること、および縮退運転のユニット構成をコンソール300に表示し、アプリケーション157に対して保守要求などの警告通知を行う。その上で、情報処理装置150は運用を継続する。
【0144】
[S7]RASプログラム158は、継続運用が不可能なことをコンソール300に表示し、情報処理装置150をダウンさせる。
[S8]RASプログラム158は、情報処理装置150に搭載されたユニットが全て有効であることをコンソール300に表示する。そして、情報処理装置150は通常運転を行う。
【0145】
以上説明したように、バス上の異常診断を行う際、スロット切断制御装置151がスロットに接続されたスイッチのオン,オフを制御することでユニットの組み合わせを実現できるので、保守者によるカットアンドトライ作業が不要になる。また、異常ユニットはスイッチで電気的に遮断できるので、それが運用に不可欠なユニットでない限り、バス上から切り離すことで情報処理装置150の運用を継続することができる。
【0146】
なお、上記の説明では、ユニット240のCPU241が診断を行うとしたが、診断を行うCPU241は必ずしもユニットに搭載される必要はない。例えば、CPU241がユニット240ではなくバス155に接続された構成でも、上記と同様の処理を実現できる。
【0147】
また、ユニットの追加によって上記の診断を行うとしたが、ユニットの取り外し時についても、上記と同様の処理を行うことができる。また、スイッチの数を増やしていくことで、ユニット枚数は3枚に限定されず、更に多くのユニット構成でも上記と同様の処理を実現することができる。
【0148】
(付記1) バスに複数のユニットが結合される情報処理装置において、
データ転送時に前記バスに異常が発生したときに、異常ビットを含まないようなバスサイズを決定するバスサイズ制御装置と、
前記バスサイズに従い、前記異常ビットを回避してデータ転送を行うバス制御装置と、を有することを特徴とする情報処理装置。
【0149】
(付記2) 前記バス制御装置は、前記異常ビットを含まない他の半分のバスを使用するように構成したことを特徴とする付記1記載の情報処理装置。
(付記3) 前記バスサイズ制御装置は、バスに異常が発生するごとに前記バスサイズを半分にしていくことで、前記異常ビットを含まないバスサイズを決定することを特徴とする付記1記載の情報処理装置。
【0150】
(付記4) バスに複数のユニットが結合される情報処理装置において、
データ転送時に前記バスに異常が発生したときに、データを転送する所定のバスサイズを決定するバスサイズ制御装置と、
前記バスサイズに従って前記データを転送し、前記バスサイズ以外のバスを特定のレベルに固定するバス制御装置と、を有することを特徴とする情報処理装置。
【0151】
(付記5) 前記バス制御装置は、データ転送用のバスと特定のレベルに固定したバスを交互に配置することを特徴とする付記4記載の情報処理装置。
(付記6) バスに複数のユニットが結合される情報処理装置において、
データ転送時に前記バスに異常が発生したときに、データのバスサイズを前記バスの半分のバスサイズとするバスサイズ制御装置と、
差動信号のデータ転送として対のバスラインを構成し、正常時には、前記対のバスラインで2つのデータを転送し、データ転送時に前記バスに異常が発生したときには、前記対のバスラインを差動論理信号として、1つのデータを転送するバス制御装置と、を有することを特徴とする情報処理装置。
【0152】
(付記7) バスに複数のユニットが結合される情報処理装置において、
データ転送時にバスに異常が発生したときに、データのバスサイズを前記バスの半分のバスサイズとするバスサイズ制御装置と、
データ転送時にバスに異常が発生したときに、対のバスラインを差動論理信号として、1つのデータを転送するバス制御装置と、を有することを特徴とする情報処理装置。
【0153】
(付記8) バスに複数のユニットが結合される情報処理装置において、
データ転送時に前記バスに異常が発生したときに、データを転送する所定のバスサイズを決定するバスサイズ制御装置と、
前記データに対応する誤り訂正信号を生成し、前記バスサイズに従って前記データと前記誤り訂正信号を組にしてデータ転送を行うバス制御装置と、を有することを特徴とする情報処理装置。
【0154】
(付記9) バスに複数のユニットが結合される情報処理装置において、
前記ユニットが結合されるスロットとバスの間に設けられたスイッチと、
前記バスに異常が発生したときに、異常ユニットの接続されたスイッチを切断するスロット切断制御装置と、を有することを特徴とする情報処理装置。
【0155】
(付記10) バスに複数のユニットが結合される情報処理装置の運転方法において、
ユニットが結合されるスロットとバスの間に設けられたスイッチを設け、
前記スイッチを制御して、データの転送が正常なユニットかどうかを確認する運転方法。
【0156】
(付記11) データの転送が異常なユニットが情報処理装置の運転に不可欠なユニットであるときは、情報処理装置の運転を停止し、不可欠なユニットでないときは異常ユニットを前記スイッチで切り離して前記情報処理装置の運転を継続することを特徴とする付記10記載の情報処理装置の運転方法。
【0157】
【発明の効果】
以上説明したように本発明の情報処理装置は、データ転送時にバスに異常が発生したときに異常ビットを回避してデータ転送を行うような構成としたので、事前検証が困難な障害がバス上に発生したとしても、正常なバスを用いてデータを転送することで、複雑な伝送路を伴わずに上記の障害に起因するシステムの動作不良を防ぐことができ、製造コストを維持しつつ、システムの信頼性を高めることができる。
【0158】
また、本発明の情報処理装置は、データ転送時にバスに異常が発生したときに所定のバスサイズでデータ転送し、それ以外のバスを特定のレベルに固定するような構成としたので、バス上に発生するスイッチングノイズやクロストークノイズの影響を少なくしたデータ転送を実現することができる。
【0159】
また、本発明の情報処理装置は、データ転送時にバスに異常が発生したときにバスサイズを半分にして差動論理信号を転送するような構成としたので、バス上に発生するスイッチングノイズやクロストークノイズの影響を少なくしたデータ転送を実現することができる。
【0160】
また、本発明の情報処理装置は、データ転送時にバスに異常が発生したときに、データとデータに対応した誤り訂正符号を組み合わせて転送するような構成としたので、バス上に発生する誤りを訂正することができる。
【0161】
また、本発明の情報処理装置は、スイッチの制御によって異常ユニットを電気的に切断するような構成としたので、異常ユニットが発生した際には、それをバス上から切り離すことでシステムへの影響を遮断し、システムの運用を継続することができる。
【図面の簡単な説明】
【図1】第1の実施の形態の情報処理装置の動作を説明するためのブロック図である。
【図2】第1の実施の形態の情報処理装置の構成図である。
【図3】バス制御回路の内部構成例である。
【図4】バス制御回路の真理値表である。
【図5】データ転送時に下位16ビットにパリティエラーが検出された後、リトライサイクルが行われるまでのタイミングチャートである。
【図6】第2の実施の形態の情報処理装置の動作を説明するためのブロック図である。
【図7】バス制御回路の内部構成例である。
【図8】バス制御回路の真理値表である。
【図9】データ転送時に転送エラーが発生した後、リトライサイクルが行われるまでのタイミングチャートである。
【図10】第3の実施の形態の情報処理装置の動作を説明するためのブロック図である。
【図11】バス制御回路の内部構成例である。
【図12】バス制御回路の真理値表である。
【図13】データ転送時に転送エラーが発生した後、リトライサイクルが行われるまでのタイミングチャートである。
【図14】受信部での差動論理信号の変換処理を示す図である。
【図15】第4の実施の形態の情報処理装置の動作を説明するためのブロック図である。
【図16】バス制御回路の内部構成例である。
【図17】バス制御回路の真理値表である。
【図18】データ転送時に転送エラーが発生した後、リトライサイクルが行われるまでのタイミングチャートである。
【図19】第5の実施の形態の情報処理装置の構成図である。
【図20】情報処理装置の運用方法のフローチャートである。
【符号の説明】
10 情報処理装置
11 バス制御装置
12 バスサイズ制御装置
80 ユニット
90 ユニット
【発明の属する技術分野】
本発明はデータ転送を行うバスを有する情報処理装置に関し、特にスロットを介して複数のユニットがバス上に結合される情報処理装置に関する。
【0002】
【従来の技術】
データ転送を行うバス上にユニットが結合される情報処理装置において、例えば、機能を追加するためのユニットをバスに結合する場合、バスの配線条件、ユニットのICドライバのインピーダンス、振幅、遷移時間、搭載スロット位置などによってデータ転送時の送信波形に乱れが発生すると、受信側で正常なデータが受け取れず動作不良となることがある。
【0003】
近年は、PCIなどの標準規格バスを採用するため、PCI汎用ユニットを搭載することが多い。そのため、多種ユニットの各スロット搭載位置による事前の組み合わせ動作検証が困難になっており、たとえ安定動作しているシステムでも、ユニットを結合することでバスに障害が発生し、突然動作が不安定になる恐れがある。
【0004】
特に、金融機関システムや医療機器においてはノーダウンシステムが要求されるため、上記のようなバス上での障害は致命的であり、バスを運用系とバックアップ系で完全二重化するなどの対策が必要となっている。
【0005】
しかし、バスを二重化することによって、構成が複雑になり、コストも上昇する。
さらに、バスを完全に二重化しても、バスの配線条件、搭載ユニットのICドライバのインピーダンス、振幅、遷移時間、搭載スロット位置などによる影響の障害の場合、バックアップ系も同時に障害となることが多く、そのような場合は対象チャネルの縮退などしか障害を回避する手段がなかった。また、バスを二重化しない場合は、ユニットの人為的な取り外しによる縮退運用しか、バスの異常回避手段がなかった。
【0006】
従来、バス上のデータ転送前後に変化するビット数が一定数以上のときに、データを時分割転送することにより、通常動作時と全く変わらないシステム構成のままでスイッチングノイズの影響を低減する技術として、以下のようなものがある(例えば、特許文献1参照)。
【0007】
【特許文献1】
特開平7−84985号公報(段落番号〔0025〕〜〔0026〕、第3図)
【0008】
【発明が解決しようとする課題】
しかし、上記特許文献1に記載した技術は、データ転送時に同時に変化するビットを少なくすることでスイッチングノイズを低減するものである。バスデータの一斉変化によって発生する障害に対しては有効であるが、バス上に多種のユニットが結合されることによってもたらされる検証困難な障害、例えば、新たにユニットを結合することでバスの配線条件やインピーダンスが変動し、信号の反射によって乱れた波形が動作不良を起こすような障害には対応することができない。
【0009】
本発明はこのような点に鑑みてなされたものであり、バス上のデータ転送時に異常が発生した際、バスサイズを変更して再転送を行う情報処理装置を提供することを目的とする。
【0010】
【課題を解決するための手段】
本発明では上記課題を解決するために、図1に示すように、データ転送時にバスに異常が発生したときに、異常ビットを含まないようなバスサイズを決定するバスサイズ制御装置12と、前記バスサイズに従い、前記異常ビットを回避してデータ転送を行うバス制御装置11と、を有することを特徴とする情報処理装置10が提供される。
【0011】
この情報処理装置10において、データ転送時にバスに異常が発生すると、バスサイズ制御装置12は、異常ビットの通知に基づいて異常ビットを回避したバスサイズを決定し、バスサイズを変更するための制御信号をバス制御装置11に送る。バス制御装置11は、この制御信号に従ってバスサイズを変更し、異常ビットを回避したデータ転送を行う。
【0012】
また、上記課題を解決するために、図6に示すように、データを転送する所定のバスサイズを決定するバスサイズ制御装置22と、前記バスサイズに従って前記データを転送し、前記バスサイズ以外のバスを特定のレベルに固定するバス制御装置21と、を有することを特徴とする情報処理装置20が提供される。
【0013】
この情報処理装置20において、データ転送時にバスに異常が発生すると、バスサイズ制御装置22は、データを転送する所定のバスサイズを決定し、バスサイズを変更するための制御信号をバス制御装置21に送る。バス制御装置21は、この制御信号に従ってバスサイズを変更し、バスサイズ以外のバスを特定のレベルに固定してデータ転送を行う。
【0014】
また、上記課題を解決するために、図10に示すように、データ転送時にバスに異常が発生したときに、データのバスサイズを前記バスの半分のバスサイズとするバスサイズ制御装置32と、差動信号のデータ転送として対のバスラインを構成し、正常時には、前記対のバスラインで2つのデータを転送し、データ転送時に前記バスに異常が発生したときには、前記対のバスラインを差動論理信号として、1つのデータを転送するバス制御装置31と、を有することを特徴とする情報処理装置30が提供される。
【0015】
この情報処理装置30において、データ転送時にバスに異常が発生すると、バスサイズ制御装置32は、バスサイズをバス幅の半分に変更するための制御信号をバス制御装置31に送る。バス制御装置31は、通常時は対のバスライン2つのデータを転送しているが、上記の制御信号を受信すると、バスサイズを変更してバスサイズを構成するデータの差動論理信号を生成し、対のバスラインで1つのデータを転送する。
【0016】
また、上記課題を解決するために、図15に示すように、データ転送時にバスに異常が発生したときに、データを転送する所定のバスサイズを決定するバスサイズ制御装置42と、前記データに対応する誤り訂正信号を生成し、前記バスサイズに従って前記データと前記誤り訂正信号を組にしてデータ転送を行うバス制御装置41と、を有することを特徴とする情報処理装置40が提供される。
【0017】
この情報処理装置40において、データ転送時にバスに異常が発生すると、バスサイズ制御装置42は、データを転送する所定のバスサイズを決定し、バスサイズを変更するための制御信号をバス制御装置41に送る。バス制御装置41は、転送データに対応する誤り訂正信号を生成し、上記の制御信号に従ってバスサイズを変更し、データと上記の誤り訂正信号を組にしてデータ転送を行う。
【0018】
また、上記課題を解決するために、図19に示すように、ユニット240,250,260が結合されるスロット101〜103とバスの間に設けられたスイッチ152a〜152cと、バスに異常が発生したときに、異常ユニットの接続されたスイッチを切断するスロット切断制御装置151と、を有することを特徴とする情報処理装置150が提供される。
【0019】
この情報処理装置150において、異常ユニットが検出されると、スロット切断制御装置151は、異常ユニットが接続されたスイッチをオフにして、異常ユニットをバスから電気的に遮断する。
【0020】
【発明の実施の形態】
以下、本発明の実施の形態を図面を参照して説明する。
(第1の実施の形態)
図1は、第1の実施の形態の情報処理装置の動作を説明するためのブロック図である。
【0021】
情報処理装置10は、バス制御装置11、バスサイズ制御装置12、およびバス制御装置11を介したバスAD[7:0]の両端にそれぞれ接続されたユニット80,90によって構成される。バスサイズ制御装置12は、データ転送中にバスの異常が発生すると、異常ビットを回避するようなバスサイズを決定し、バス制御装置11に対してバスサイズを変更するための制御信号を送る。バス制御装置11は、上記の制御信号に従ってバスサイズを変更し、異常ビットを回避したデータ転送を行う。
【0022】
以上のような構成の情報処理装置10において、ユニット80からユニット90へ、バスAD[7:0]を用いてデータ転送を行う。このとき、ビットAD[1]にて異常が発生したとして、情報処理装置10の動作を説明する。
【0023】
ユニット90は、ビットAD[1]の異常を検出すると、ユニット80に転送エラー信号を送る。そして、ユニット80は、バスサイズ制御装置12に異常ビットを通知する。あるいは、ユニット90が、ビットAD[1]の異常を単にバスAD[7:0]の異常として検出したときも、ユニット90はユニット80に転送エラー信号を送る。そして、予め定められた方法でビットAD[1]の異常を検出して、バスサイズ制御装置12にビットAD[1]の異常を通知する。
【0024】
バスサイズ制御装置12は、上記の通知に基づいて、異常ビットを回避したバスサイズを決定する。ここでは、ビットAD[1]を避けてデータ転送を行うため、異常ビットを含まない残りの半分のバスAD[7:4]にバスサイズを決定するものとする。そして、バスサイズ制御装置12は、バス制御装置11に対してバスサイズをバスAD[7:0]からバスAD[7:4]に変更するための制御信号を送る。バス制御装置11は、この制御信号に従って、変更されたバスサイズでのデータ転送を行う(図中では、異常発生時にデータ転送を回避するバスAD[3:0]を点線で示している)。
【0025】
このように、データ転送時に異常ビットが発生した場合、異常ビットを含まないバスを用いてデータを再送することで、予め検証困難なバス障害が発生した際にも対応することができる。また、バスを二重化せずとも障害を回避することが可能になる。
【0026】
なお、上記の説明では、異常ビットを含まない他の半分のバスをバスサイズとして決定したが、半分に限定されることはなく、他のビット数のバスサイズでも同様の処理を実現することができる。
【0027】
また、上記の説明ではバス幅を8ビットとしたが、32ビット,64ビットなど、他のビット数のバスについても適用できる。また、ユニット80からユニット90への転送について説明したが、逆にユニット90からユニット80への転送についても同様に行うことができる。さらに、ユニット数は2つに限定されることはなく、複数ユニットが結合されていても、ユニット間で上記と同様の処理を実現することができる。
【0028】
また、上記の説明では異常ビットを特定したが、異常ビットを特定しない場合でも、バスサイズを半分ずつにしていきながら再送を繰り返すことで、異常ビットを含まないようなバスサイズを決定してデータを転送することができる。
【0029】
次に、上記の情報処理装置10を適用した情報処理装置110について説明する。図2は、第1の実施の形態の情報処理装置の構成図である。
情報処理装置110は、バス制御回路111a〜111cとバスサイズ制御回路112を有している。バス制御回路111a〜111cは、それぞれ図1のバス制御装置11に相当し、バスサイズ制御回路112は同図のバスサイズ制御装置12に相当する。
【0030】
また、情報処理装置110にはスロット101〜103が設けられており、スロット101にはCPU(Central Processing Unit)211が搭載されたカード210が、スロット102にはカード220が、スロット103にはカード230がそれぞれ接続されている。カード210は図1のユニット80に相当し、カード220は同図のユニット90に相当する。スロットに接続された各カードは、バス制御回路111a〜111cを介して、同一のバス115上に接続される。このバス幅は、32ビットとする。
【0031】
バスサイズ制御回路112は、CPU211から異常ビットの通知を受けると、異常ビットを回避したバスサイズを決定し、バス制御回路111a〜111cの制御信号をそれぞれ独立に生成する。制御信号には、HEN,LEN,HSEL,LSELがある(後述する)。
【0032】
バス制御回路111a〜111cは、バスサイズ制御回路112の制御信号に基づいて、異常ビットを回避したデータ転送を行う。ここで、バス制御回路について説明する。図3は、バス制御回路の内部構成例であり、図4はバス制御回路の真理値表である。
【0033】
バス制御回路111は、マルチプレクサ(MPX)113a,113bによって構成される。マルチプレクサ113a,113bは、セレクト信号S=0で入力Aが選択され、S=1で入力Bが選択されるものとする。
【0034】
バス制御回路111には、32ビットのデータD[31:0]が入力される。
そして、マルチプレクサ113aの入力A,BにはデータD[31:16],D[15:0]が、また、マルチプレクサ113bの入力A,BにはデータD[15:0],D[31:16]がそれぞれ入力される。
【0035】
さらに、バス制御回路111には、マルチプレクサ113a,113bのセレクト信号およびイネーブル信号として、HSEL,HENおよびLSEL,LENが入力される。これらの信号の組み合わせによって決定されるマルチプレクサ113a,113bの出力Oに出力されるデータは、データDO[31:16],DO[15:0]とし、バス制御回路111からは、両者がまとまって32ビットのデータDO[31:0]として出力される。
【0036】
続いて、上記のように構成されるバス制御回路111の動作について、図4の真理値表を用いて説明する。なお、Zはハイインピーダンスを示し、*はドントケア(値を問わない)を示す。
【0037】
まず、イネーブル信号HEN=LEN=1のときは、セレクト信号HSELおよびLSELの値に応じて、出力データDO[31:0]の内容が決まる。
すなわち、HSEL=LSEL=0のときは、入力データD[31:0]がそのままスルーして出力される。HSEL=0,LSEL=1のときは、入力データの上位16ビットD[31:16]が、HSEL=1,LSEL=0のときは、入力データの下位16ビットD[15:0]が、出力の上位16ビットおよび下位16ビットに出力される。HSEL=LSEL=1のときは、入力データの上位と下位を逆転したデータが出力される。
【0038】
そして、少なくともいずれかのイネーブル信号が「0」になると、対応する出力がハイインピーダンスとなる。HEN=0では、出力データの上位16ビットDO[31:16]がハイインピーダンスとなり、LEN=0では、同下位16ビットDO[15:0]がハイインピーダンスとなる。HEN=LEN=0のときは、両者ともにハイインピーダンスとなる。
【0039】
次に、以上のように構成される情報処理装置110において、バスを用いたデータ転送を行い、転送エラーが発生したときの動作について説明する。
データ転送は、カード210のCPU211からカード220のIC221に対して行うとする。IC221の受信部221bは、CPU211から送信されたデータを受け取り、同検出部221aは、受け取ったデータのエラーの有無を検出する。本実施の形態において、検出部221aは受け取ったデータのパリティチェックを行うものとする。パリティチェックは、受け取った32ビットデータの上位16ビットと下位16ビットとに分けてチェックされる。
【0040】
あるデータ転送時、検出部221aにて、データの下位16ビットにパリティエラーが検出されたとすると、検出部221aからCPU211にパリティエラーの発生が通知される。
【0041】
そして、CPU211は、バスサイズ制御回路112に対してカード210からカード220への転送時に下位16ビット側にパリティエラーが発生したことを通知する。バスサイズ制御回路112は、上記の通知に基づいて、異常の発生した下位16ビット側を回避した上位16ビット側をデータ転送のバスサイズとして決定する。さらに、カード210からカード220への転送時に異常が発生していることから、バスサイズ制御回路112は、バス制御回路111bに対して、上記のバスサイズに変更するための制御信号を送る。バス制御回路111bは、バスサイズ制御回路112からの制御信号に従って、変更したバスサイズでのデータ転送を行う(リトライサイクル)。
【0042】
続いて、以上の動作についてタイミングチャートを用いて説明する。図5は、データ転送時に下位16ビットにパリティエラーが検出された後、リトライサイクルが行われるまでのタイミングチャートである。
【0043】
IOREAD信号は、CPU211からデータ転送を行うためのゲート信号である。
PELH信号およびPELL信号は、パリティエラー発生時に検出部221aからCPU211へ通知される信号である。パリティエラーが、データの上位16ビットに生じた場合はPELH信号がハイレベルになり、データの下位16ビットに生じた場合はPELL信号がハイレベルになる。
【0044】
ERROR信号は、CPU211からIC221に通知されるエラービット信号であり、ハイレベルの場合は、IC221でのデータの書き込みが禁止される。また、RETRY信号は、CPU211からIC221に通知される再転送指示の信号である。
【0045】
図において、区間TA1は通常のデータ転送を示している。データDO[31:0]は、バス制御回路111aの出力データである。また、この区間でのバス制御回路111aの入力データをデータDA[31:0]とする。CPU211から送られたデータは、バス制御回路111a,111bをスルーして、そのままIC221へと転送される。
【0046】
ここで、データの下位16ビット側にパリティエラーが検出されたとすると、PELL信号がハイレベルとなり、CPU211に通知される。
CPU211は、これを受けてERROR信号をハイレベルにし、IC221でのデータ書き込みを禁止する。そして、ERROR信号をローレベルに戻すと同時にRETRY信号をハイレベルにして、IC221にデータの再転送(リトライサイクル)を指示する。また、CPU211は、バスサイズ制御回路112に対してバスの下位16ビット側の異常を通知する。
【0047】
区間TB1は、リトライサイクルを示している。リトライサイクルでは、区間T11とT12を用いて、区間TA1に転送できなかったデータDA[31:0]を時分割して転送する。リトライサイクル中、バス制御回路111bにはデータDA[31:0]が入力される。
【0048】
バスサイズ制御回路112は、バス制御回路111bのバスサイズを、パリティエラーの発生した下位16ビットを回避した上位16ビットとするため、バス制御回路111bへのイネーブル信号LENをローレベルにする。これにより、バス制御回路111bの出力データの下位16ビットDO[15:0]がハイインピーダンスとなる(図ではHi−Zと記載)。
【0049】
さらに、バスサイズ制御回路112は、バス制御回路111bの制御信号HSELを、区間T11にて「1」、区間T12にて「0」とする。なお、HENはハイレベルのまま、LSELはローレベルのままである。
【0050】
上記のような制御信号によって、バス制御回路111bは、区間T11にて入力データの下位16ビットDA[15:0]を出力データの上位16ビットDO[31:16]に出力する。また、区間T12にて、入力データの上位16ビットDA[31:16]をそのまま出力データの上位16ビットDO[31:16]に出力する(図4の真理値表を参照)。
【0051】
上記の説明では、バスの下位16ビット側での転送エラーにより、単純に上位16ビット側のバスをデータ転送のバスサイズとして用いたが、異常ビットを特定することで、半分に限らず他のバスサイズで再送することもできる。
【0052】
異常ビットの特定は、ユニット90側で特定すること以外にも、例えば次のような方法を用いて行うことができる。すなわち、CPU211は、バスの転送エラーを受信すると、MSB(Most Significant Bit)からLSB(Least Significant Bit)までビットパターンの異なるようなデータをIC221に転送し、IC221の受信部221bは、上記のデータをそのままCPU211に返送する。そして、CPU211が送信データと受信データを比較し、同じ値かどうかをビットごとに確認する。このようにして、異常ビットを特定することができる。
【0053】
上記のように特定された異常ビットを回避するバスサイズは、異常ビットを含まない任意のサイズから選択可能であるが、転送効率を考慮すると、ある決まったデータ転送単位の倍数で最大となるバスサイズを選択するとよい。
【0054】
例えば、バスの2ビット目,8ビット目,29ビット目が異常ビットと特定された場合、論理的な有効データサイズは29ビットである。ここで、転送データ単位を8ビットとすると、上記の有効データサイズ以内で転送データ単位の最大倍数であるバスサイズは24ビットである。このようなバスサイズとすることで、データ転送の効率を高めることができる。
【0055】
そして、バスサイズ制御回路112がこのようなバスサイズに決定すると、バス制御回路は、異常ビットを避けた24ビットのマルチプレクサを再構築してデータ転送を行う。再構築されたマルチプレクサの情報は、バスサイズ制御回路112に記憶され、次回転送するときも同じ状態から行うことができる。
【0056】
一方、上記とは別に、最初から異常ビットを特定しないでデータを再送する場合でも、次のようにすることで異常ビットを回避したバスサイズを決定することができる。すなわち、転送エラーが発生したら16ビットのバスサイズで再送し、それでも転送エラーが発生した場合、再送したバスサイズの半分である8ビットで再送する。以下同様に、再送するバスサイズを半分ずつにしていくことで、異常ビットを含まないようなバスサイズを決定してデータを再送することができる。なお、再送の際は、バスサイズを満たすような全てのビットの組み合わせで再送を行う。例えば、バスサイズが8ビットで指定された場合、32ビットバスを単純にLSBから順に8ビットずつ区分けしたものに対してだけ再送するのではなく、バスサイズが合計で8ビットとなるような全てのビットの組み合わせについても再送を行う。
【0057】
ただ、このようにバスサイズを半分ずつにしていくと、転送に要する時間も倍ごとに増加していくため、転送エラーが発生しないような最大のバスサイズが決まっても、転送能力不足のためにエラーが生じてしまう場合がある。このようなエラーはデータオーバーランと呼ばれ、ある送信データが規定時間内に転送できなかったときに発生するエラーである。データオーバーランが発生した場合は、先に説明したような方法で異常ビットを特定し、その結果に基づいてマルチプレクサの再構築を行う。
【0058】
以上説明したように、バス上のデータ転送時に異常が生じた際、異常ビットを含まないバスを用いてデータを時分割転送することにより、バスの伝送回路を通常の構成としたままで障害を回避したデータ転送を行うことができる。
【0059】
なお、上記の説明ではバス幅を32ビットとしたが、他のビット数のバスについても適用できる。また、カード210からカード220への転送について説明したが、逆にカード220からカード210への転送についても、同様の処理を行うことができる。さらに、カード数は上記に限定されることはなく、複数のカードがバスに結合されていても、上記と同様の処理を実現することができる。
【0060】
また、CPU211がカードに搭載された形態に限定されることはない。例えば、CPU211がバス115に接続されて情報処理装置110を制御しているような場合でも、CPU211とカード間、およびカードとカード間の転送について上記と同様の処理を実現することができる。
【0061】
また、転送データ単位は8ビットに限らず、他のビット数としてもよい。
(第2の実施の形態)
図6は、第2の実施の形態の情報処理装置の動作を説明するためのブロック図である。第1の実施の形態と同じものには同じ符号を付す。
【0062】
情報処理装置20は、バス制御装置21、バスサイズ制御装置22、およびバス制御装置21を介したバスAD[3:0]の両端にそれぞれ接続されたユニット80,90によって構成される。バスサイズ制御装置22は、データ転送中に異常が発生すると、データ転送を行うためのバスサイズを決定し、バス制御装置21に対してバスサイズを変更するための制御信号を送る。バス制御装置21は、上記の制御信号に従い、所定のバスを固定データとすることでバスサイズを変更し、再度データ転送を行う。
【0063】
以上のような構成の情報処理装置20において、ユニット80からユニット90へ、バスAD[3:0]を用いてデータ転送を行う。このとき、転送エラーが発生したとして、情報処理装置20の動作を説明する。
【0064】
ユニット90は、バス上の異常を検出すると、ユニット80に転送エラー信号を送る。そして、ユニット80は、バスサイズ制御装置22に対してバスの異常を通知する。
【0065】
バスサイズ制御装置22は、上記の通知に基づいて、データ転送を行うバスサイズを決定する。ここでは半分のバスサイズに決定するものとする。そして、バスサイズ制御装置22は、バス制御装置21に対してバスサイズを半分に変更するための制御信号を送る。バス制御装置21は、この制御信号に従って、まず半分のバス(例えば、ビットAD[0],AD[2]の2本)を特定のレベル(図ではグランドに落とされてローレベルとなる)に固定してバスサイズを半分にし、ビットAD[3],AD[1]の2本を用いてデータを再送する。次に、今度はビットAD[3],AD[1]の2本を特定のレベルに固定し、ビットAD[2],AD[0]の2本を用いてデータを再送する。
【0066】
このように、バスに異常が発生した場合、所定のバスを特定のレベルに固定し、残りのバスを用いてデータ転送を行うことで、スイッチングノイズやクロストークノイズなどの影響の少ないデータ転送を実現できる。
【0067】
なお、上記の説明では再送時のバスサイズを半分としたが、半分に限らず任意のバスサイズとすることができる。また、バス幅を4ビットとして説明したが、他のビット数のバスについても適用できる。
【0068】
また、ユニット80からユニット90への転送について説明したが、逆にユニット90からユニット80への転送についても同様に行うことができる。さらに、ユニット数は2つに限定されることはなく、複数ユニットが結合されていても、ユニット間で上記と同様の処理を実現することができる。
【0069】
また、特定のレベルに固定するバスも、要求されたバスサイズを満たすのであれば、どのような組み合わせでもよい。さらに、上記の説明では特定のレベルとしてローレベルに固定したが、ハイレベルに固定してもよい。
【0070】
次に、上記の情報処理装置20を適用した情報処理装置120について説明する。情報処理装置120は、第1の実施の形態における情報処理装置110(図2参照)と基本的に同じ構成のため図を省略する。図2からの変更内容は、バス制御回路111a〜111cがバス制御回路121a〜121cになり、バスサイズ制御回路112がバスサイズ制御回路122になることである。また、32ビットのバス115から、4ビットのバス125になる。なお、バス制御回路121a〜121cは、それぞれ図6のバス制御装置21に相当し、バスサイズ制御回路122は、同図のバスサイズ制御装置22に相当する。
【0071】
ここで、バス制御回路121について説明する。図7は、バス制御回路の内部構成例であり、図8はバス制御回路の真理値表である。
バス制御回路121は、ANDゲート123a〜123dによって構成される。バス制御回路121には、4ビットのデータD[3:0]が入力され、データD[0]〜D[3]がANDゲート123a〜123dの入力の一端にそれぞれ入力される。また、ANDゲート123a,123cの入力の他端にはゲート信号SELAが、ANDゲート123b,123dの他端にはゲート信号SELBがそれぞれ入力される(ゲート信号SELA,SELBは、後述するように、バスサイズ制御回路122によって生成される制御信号である)。ANDゲート123a〜123dの出力はデータDO[0]〜DO[3]とし、これらがまとまり、バス制御回路121からはデータDO[3:0]が出力される。
【0072】
続いて、上記のように構成されるバス制御回路121の動作について、図8の真理値表を用いて説明する。
SELA=SELB=0のときは、出力データDO[3:0]が全て「0」となり、SELA=SELB=1のときは、入力データD[3:0]がそのまま出力にスルーされる。また、SELA=1,SELB=0のときには、入力データD[0],D[2]はそのまま出力データDO[0],DO[2]に出力され、出力データDO[1]とDO[3]は「0」に固定される。SELA=0,SELB=1のときは、入力データD[1],D[3]がそのまま出力データDO[1],DO[3]に出力され、出力データDO[0]とDO[2]が「0」に固定される。
【0073】
次に、以上のように構成される情報処理装置120において、バスを用いたデータ転送を行い、転送エラーが発生したときの動作について、タイミングチャートを用いて説明する。
【0074】
第1の実施の形態と同様、ユニット210のCPU211からユニット220のIC221に対してデータの転送を行うものとする。図9は、データ転送時に転送エラーが発生した後、リトライサイクルが行われるまでのタイミングチャートである。図5と同じ信号については、説明を省略する。
【0075】
区間TA2は、正常なデータ転送を示している。データDO[3:0]はバス制御回路121bの出力データである。また、この区間でのバス制御回路121bの入力データをデータDB[3:0]とし、ここでは7(データDB[3]=0,DB[2]=1,DB[1]=1,DB[0]=1)を出力データDO[3:0]に転送するものとする。
【0076】
区間TA2において、検出部221aが転送エラーを検出すると、CPU211に通知される。CPU211は、IC221に対して、ERROR信号をハイレベルにしてデータの書き込みを禁止し、RETRY信号をハイレベルにしてリトライサイクルを指示する。また、CPU211は、カード210からカード220への転送時にバスの異常が発生したことを、バスサイズ制御回路122に対して通知する。
【0077】
区間TB2はリトライサイクルを示している。CPU211は、区間TA2に転送できなかったデータDB[3:0]を、リトライサイクルTB2の区間T21と区間T22とに時分割して再送する。リトライサイクル中、バス制御回路121bにはデータDB[3:0]が入力される。
【0078】
バスサイズ制御回路122は、CPU211からの通知に基づいて、バス制御回路121bのバスサイズに対する決定を行う。ここでは半分のバスサイズに決定するものとする。これより、バス制御回路121bへの制御信号を、区間T21にてSELA=1,SELB=0、区間T22にてSELA=0,SELB=1とする。
【0079】
上記のような制御信号によって、バス制御回路121bは、区間T21ではデータDO[2],DO[0]に入力データDB[2]=1,DB[0]=1を出力し、データDO[3],DO[1]に固定データ「0」を出力する。また、区間T22ではデータDO[3],DO[1]に入力データDB[3]=0,DB[1]=1を出力し、データDO[2],DO[0]に固定データ「0」を出力する(図8の真理値表を参照)。
【0080】
このように、バス上のデータ転送時に異常が生じた際、入力データの隣に固定されたデータを出力することで、固定データはシールドの役割を果たし、スイッチングノイズやクロストークノイズの影響を半減したデータ転送を行うことができる。
【0081】
なお、上記の説明では、固定データと入力データを交互に配した出力データを生成して時分割転送を行ったが、ある特定のビットを固定データとした出力データを生成して時分割転送することもできる。例えば、出力データDO[0]を固定データ、出力データDO[1]〜DO[3]を入力データD[1]〜D[3]としたパターンと、出力データDO[0]を入力データD[0]、出力データDO[1]〜DO[3]を固定データとしたパターンとを時分割転送することもできる。また、バス幅は4ビットとしたが、勿論これ以外のビット数でも上記と同様の処理を行うことができる。また、固定データとして「1」を出力してもよい。
【0082】
また、カード210からカード220への転送について説明したが、逆にカード220からカード210への転送についても、同様に行うことができる。さらに、カード数は上記に限定されることはなく、複数のカードがバスに結合されていても、上記と同様の処理を実現することができる。
【0083】
また、CPU211がカードに搭載された形態に限定されることはない。例えば、CPU211がバス125に接続されて情報処理装置120を制御しているような場合でも、CPU211とカード間、およびカードとカード間の転送について上記と同様の処理を実現することができる。
【0084】
(第3の実施の形態)
図10は、第3の実施の形態の情報処理装置の動作を説明するためのブロック図である。第1の実施の形態と同じものには同じ符号を付す。
【0085】
情報処理装置30は、バス制御装置31、バスサイズ制御装置32、およびバス制御装置31を介したバスAD[3:0]の両端にそれぞれ接続されたユニット80,90によって構成される。バスサイズ制御装置32は、データ転送中に異常が発生すると、バスサイズを半分に決定し、バス制御装置31にバスサイズを変更するための制御信号を送る。また、バス制御装置31は、差動ドライバ33a,33bを用いて、バスAD[3:0]を対のバスラインとして構成している。例えば、バスAD[3:2]とバスAD[1:0]をそれぞれ対のバスラインとしている。そして、通常時には対のバスラインで2つのデータを転送するが、上記の制御信号を受信すると、対のバスラインを差動論理信号として用いることで、1つのデータを差動転送する。
【0086】
以上のような構成の情報処理装置30において、ユニット80から受信側ユニット90へ、バスAD[3:0]を用いてデータ転送を行う。このとき、転送エラーが発生したとして、情報処理装置30の動作を説明する。
【0087】
ユニット90は、バスの異常を検出すると、ユニット80に転送エラー信号を送る。そして、ユニット80は、バスサイズ制御装置32にバスの異常を通知する。バスサイズ制御装置32は、上記の通知に基づいてバスサイズを半分に決定し、バス制御装置31に対してバスサイズを半分にするための制御信号を送る。
これにより、バス制御装置31はバスAD[3:0]を半分に分割する。ここでは、バスAD[3:2]とバスAD[1:0]に分割するものとする。そして、バス制御装置31は、半分に分割されたバスAD[3:2]およびバスAD[1:0]をそれぞれ交互に差動ドライバ33a,33bへ入力することで、対のバスラインを用いて再度データを差動転送する(図では、バスAD[3:2]と差動ドライバ33a,33bとの接続を示している)。この差動転送によって生成される差動論理信号は、データAD[3:2]に対してはデータAD[3],−AD[3],AD[2],−AD[2]のようになり、データAD[1:0]に対してはデータAD[1],−AD[1],AD[0],−AD[0]のようになる(−は反転記号を示す。例えばデータ−AD[3]は、データAD[3]を反転したものである)。
【0088】
このように、データ転送時に異常が発生した際、バスサイズを半分にして差動転送を行うことで、スイッチングノイズやクロストークノイズの影響を少なくしたデータ転送を行うことができる。
【0089】
なお、バスサイズを半分にするようなビットの組み合わせは、上記に限らず他の組み合わせでもよい。また、バス幅は4ビットとしたが、勿論これ以外のビット数でも上記と同様の処理を行うことができる。
【0090】
また、ユニット80からユニット90への転送について説明したが、逆にユニット90からユニット80への転送についても同様に行うことができる。さらに、ユニット数は2つに限定されることはなく、複数ユニットが結合されていても、ユニット間で上記と同様の処理を実現することができる。
【0091】
次に、上記の情報処理装置30を適用した情報処理装置130について説明する。情報処理装置130は、第1の実施の形態における情報処理装置110(図2参照)と基本的に同じ構成のため図を省略する。図2からの変更内容は、バス制御回路111a〜111cがバス制御回路131a〜131cになり、バスサイズ制御回路112がバスサイズ制御回路132になることである。また、32ビットのバス115から、4ビットのバス135になる。なお、バス制御回路131a〜131cは、それぞれ図10のバス制御装置31に相当し、バスサイズ制御回路132は、同図のバスサイズ制御装置32に相当する。
【0092】
ここで、バス制御回路131について説明する。図11は、バス制御回路の内部構成例であり、図12はバス制御回路の真理値表である。
バス制御回路131は、4入力2出力のマルチプレクサ133a,133bおよび差動ドライバ134によって構成される。
【0093】
バス制御回路131には、入力データD[3:0]が入力される。マルチプレクサ133a,133bは、セレクト信号S1、S2の値に応じて、4系統の入力IA,IB,IC,IDから1つを選択して出力Oに出力する。また、差動ドライバ134は、出力モード選択信号M1,M2の値に応じて、出力データDO[0]〜DO[3]を差動出力にするか、入力をそのままスルーして出力するか選択する。なお、セレクト信号S1,S2および出力モード選択信号M1,M2には、外部よりセレクト信号SELA,SELBが入力される。セレクト信号SELA,SELBは、バスサイズ制御回路132によって生成される制御信号である。
【0094】
続いて、上記のように構成されるバス制御回路131の動作について、図12の真理値表を用いて説明する。信号名の前に付けられた−は、反転記号を表す。SELB=SELA=0では出力データは全て「0」となり、SELB=SELA=1では入力データD[3:0]がそのまま出力される。
【0095】
SELB=0,SELA=1では、入力データD[0]に対する差動論理信号D[0],−D[0]と、入力データD[1]に対する差動論理信号D[1],−D[1]が出力される。また、SELB=1,SELA=0では、入力データD[2]に対する差動論理信号D[2],−D[2]と、入力データD[3]に対する差動論理信号D[3],−D[3]が出力される。
【0096】
次に、以上のように構成される情報処理装置130において、バスを用いたデータ転送を行い、転送エラーが発生したときの動作について、タイミングチャートを用いて説明する。
【0097】
第1の実施の形態と同様、ユニット210のCPU211からユニット220のIC221に対してデータの転送を行うものとする。図13は、データ転送時に転送エラーが発生した後、リトライサイクルが行われるまでのタイミングチャートである。図5と同じ信号については、説明を省略する。
【0098】
区間TA3は、正常なデータ転送を示している。DO[3:0]はバス制御回路132bの出力データとする。また、この区間でのバス制御回路132bの入力データをデータDC[3:0]とし、ここでは7(データDC[3]=0,DC[2]=1,DC[1]=1,DC[0]=1)を出力データDO[3:0]に転送するものとする。
【0099】
区間TA3において、検出部221aが転送エラーを検出すると、CPU211に通知される。CPU211は、IC221に対して、ERROR信号をハイレベルにしてデータの書き込みを禁止し、RETRY信号をハイレベルにしてリトライサイクルを指示する。また、CPU211は、カード210からカード220への転送時にバスの異常が発生したことを、バスサイズ制御回路132に対して通知する。
【0100】
区間TB3は、リトライサイクルを示している。CPU211は、区間TA3に転送できなかったデータDC[3:0]を、リトライサイクルTB3の区間T31と区間T32とに時分割して再送する。リトライサイクル中、バス制御回路131bにはデータDC[3:0]が入力される。
【0101】
バスサイズ制御回路132は、CPU211からの通知に基づいて、バス制御回路131bのバスサイズを半分に決定し、バス制御回路131bへの制御信号を区間T31にてSELA=1,SELB=0、区間T32にてSELA=0,SELB=1とする。
【0102】
上記のような制御信号によって、バス制御回路131bは、区間T31でデータDC[0],DC[1]の差動論理信号(−DC[1]=0,DC[1]=1,−DC[0]=0,DC[0]=1)を、区間T32でデータDC[2],DC[3]の差動論理信号(−DC[3]=1,DC[3]=0,−DC[2]=0,DC[2]=1)を、それぞれ差動ドライバ134から対のバスラインに転送する(図12の真理値表参照)。
【0103】
このように、バス上のデータ転送時に異常が生じた際、データを差動論理信号に変換して時分割転送を行うことで、バスのスイッチングノイズやクロストークノイズの影響を半減したデータ転送を行うことができる。
【0104】
なお、上記の説明では差動論理信号を差動ドライバ134で生成したが、論理的な変換で差動論理信号を生成することもできる。例えば、バスに異常が発生したときに、ある入力データとそれを論理的に反転した反転入力データとを組にして差動論理信号を生成し、これを時分割転送する。そして、IC221の受信部221bにて、差動論理信号を元の形に戻すための変換処理を行う。図14は、受信部での差動論理信号の変換処理を示す図である。データD,−Dは差動論理信号、データDOUTは差動論理信号から変換したデータを示す。
【0105】
図のように、データD,−Dが共に「0」または共に「1」のときには無効とし、データD=0,−D=1のときデータDOUT=0、データD=1,−D=0のときデータDOUT=1と変換処理することで、差動論理信号から元のデータに戻すことができる。
【0106】
また、上記の説明ではバス幅は4ビットとしたが、これ以外のビット数でも上記と同様の処理を行うことができる。
また、上記の説明では差動論理信号を生成するためのデータの組み合わせを、バス制御回路132bの入力データD[3:0]に対してデータD[0],D[1]とデータD[2],D[3]のようにしたが、データD[0],D[3]とデータD[1],D[2]などにしてもよい。
【0107】
また、カード210からカード220への転送について説明したが、逆にカード220からカード210への転送についても、同様に行うことができる。さらに、カード数は上記に限定されることはなく、複数のカードがバスに結合されていても、上記と同様の処理を実現することができる。
【0108】
また、CPU211がカードに搭載された形態に限定されることはない。例えば、CPU211がバス135に接続されて情報処理装置130を制御しているような場合でも、CPU211とカード間、およびカードとカード間の転送について上記と同様の処理を実現することができる。
【0109】
(第4の実施の形態)
図15は、第4の実施の形態の情報処理装置の動作を説明するためのブロック図である。第1の実施の形態と同じものには同じ符号を付す。
【0110】
情報処理装置40は、バス制御装置41、バスサイズ制御装置42、およびバス制御装置41を介したバスAD[3:0]の両端にそれぞれ接続されたユニット80,90によって構成される。バスサイズ制御装置42は、データ転送中に異常が発生すると、データ転送を行うためのバスサイズを決定し、バス制御装置41に対してバスサイズを変更するための制御信号を送る。バス制御装置41は、再転送するデータに対応した誤り訂正符号を生成し、上記の制御信号に従ってバスサイズを変更し、データと上記の誤り訂正符号を組み合わせてデータ転送を行う。
【0111】
以上のような構成の情報処理装置40において、ユニット80からユニット90へ、バスAD[3:0]を用いてデータ転送を行う。このとき、転送エラーが発生したとして、情報処理装置40の動作を説明する。
【0112】
ユニット90は、バスの異常を検出すると、ユニット80へ転送エラー信号を送る。ユニット80は、バスサイズ制御装置42に対して、バスの異常を通知する。バスサイズ制御装置42は、上記の通知に基づいて、データ転送を行うバスサイズを決定する。そして、バスサイズ制御装置42は、バス制御装置41に対してバスサイズを変更するための制御信号を送る。
【0113】
一方、バス制御装置41は、再送するデータに対応した訂正符号を生成する。そして、再送するデータと生成された訂正符号のそれぞれを分割し、分割されたデータおよび訂正符号同士を組み合わせることで、データを再構成して転送する。
【0114】
このように、データ転送時に異常が発生した場合、バスサイズを変更して訂正符号を付加して再送することで、データ転送の信頼性を高めることができる。
なお、バス幅は4ビットとしたが、これ以外のビット数でも上記と同様の処理を行うことができる。
【0115】
また、ユニット80からユニット90への転送について説明したが、逆にユニット90からユニット80への転送についても同様に行うことができる。さらに、ユニット数は2つに限定されることはなく、複数ユニットが結合されていても、ユニット間で上記と同様の処理を実現することができる。
【0116】
次に、上記の情報処理装置40を適用した情報処理装置140について説明する。情報処理装置140は、第1の実施の形態における情報処理装置110(図2参照)と基本的に同じ構成のため図を省略する。図2からの変更内容は、バス制御回路111a〜111cがバス制御回路141a〜141cになり、バスサイズ制御回路112がバスサイズ制御回路142になることである。また、32ビットのバス115から4ビットのバス145になる。なお、バス制御回路141a〜141cは、それぞれ図15のバス制御装置41に相当し、バスサイズ制御回路142は、同図のバスサイズ制御装置42に相当する。
【0117】
ここで、バス制御回路142について説明する。図16は、バス制御回路の内部構成例であり、図17はバス制御回路の真理値表である。
バス制御回路141は、ECC(Error Correcting Code)生成手段143、マルチプレクサ144a,144b、およびマルチプレクサ145によって構成される。
【0118】
ECC生成手段143は、入力データに対するECCを生成する。ここでは、入力データは4ビットデータD[3:0]なので、4ビットのECCデータEC[3:0]が生成される。
【0119】
マルチプレクサ144a,144b、およびマルチプレクサ145は、セレクト信号Sに対し、S=0で入力A、S=1で入力Bが選択されるとする。なお、マルチプレクサ144a,144bの入力は2ビットであり、マルチプレクサ145の入力は4ビットである。
【0120】
マルチプレクサ144aに対しては、上記のデータEC[3:0]の下位2ビットを入力Aに、上位2ビットを入力Bに入力する。また、マルチプレクサ144bに対しては、データD[3:0]の下位2ビットを入力Aに、上位2ビットを入力Bに入力する。そして、マルチプレクサ144a,144bそれぞれの出力をまとめて4ビットデータとしてマルチプレクサ145の入力Aに入力し、同入力Bには、データD[3:0]を入力する。マルチプレクサ144a,144bのセレクト信号Sには、外部よりセレクト信号SELAを入力し、マルチプレクサ145のセレクト信号Sには、セレクト信号SELBを入力する。
【0121】
続いて、上記のように構成されるバス制御回路141の動作について、図17の真理値表を用いて説明する。なお、*はドントケア(値を問わない)を示す。SELB=0のときには、SELA=0で入力データの下位2ビットとECCの下位2ビット、SELA=1で入力データの上位2ビットとECCの下位2ビットが、それぞれ組となって出力される。SELB=1のときには、入力データがスルーされる。
【0122】
次に、以上のような情報処理装置140において、バスを用いたデータ転送を行い、エラーが発生した時の動作について、タイミングチャートを用いて説明する。
【0123】
第1の実施の形態と同様、ユニット210のCPU211からユニット220のIC221に対してデータの転送を行うとする。図18は、データ転送時に転送エラーが発生した後、リトライサイクルが行われるまでのタイミングチャートである。図5と同じ信号については、説明を省略する。
【0124】
区間TA4は、正常なデータ転送を示している。データDO[3:0]は、バス制御回路141bの出力データである。また、データDD[3:0]は、この区間でのバス制御回路141bの入力データとする。
【0125】
区間TA4において、検出部221aが転送エラーを検出すると、CPU211に通知される。CPU211は、IC221に対して、ERROR信号をハイレベルにしてデータの書き込みを禁止し、RETRY信号をハイレベルにしてリトライサイクルを指示する。また、CPU211は、カード210からカード220への転送時にバスの異常が発生したことを、バスサイズ制御回路142に対して通知する。
【0126】
区間TB4は、リトライサイクルを示している。CPU211は、区間TA4に転送できなかったデータDD[3:0]を、リトライサイクルの区間T41と区間T42とに時分割して再送する。リトライサイクル中、バス制御回路141bにはデータDD[3:0]が入力される。
【0127】
バスサイズ制御回路142は、CPU211からの指示に基づいて、バス制御回路141bのバスサイズに対する決定を行う。ここでは、半分のバスサイズに決定するものとする。これより、バス制御回路141bへの制御信号を、区間T41にてSELA=1,SELB=0、区間T42にてSELA=0,SELB=0とする。
【0128】
上記のような制御信号によって、バス制御回路141bは、区間T41では入力データの下位2ビットDD[1:0]とECCの下位2ビットEC[1:0]、区間T42では入力データの上位2ビットDD[3:2]とECCの上位2ビットEC[3:2]を出力する(図17の真理値表を参照)。そして、IC221の受信部221bは、このように時分割されたデータを元に戻し、付加されたECCを用いてECCチェックを行う。
【0129】
このように、データ転送中に転送エラーが発生した場合、データとデータに対応するECCを組にして時分割転送を行うことで、バス上で発生する誤りを訂正することができる。
【0130】
なお、上記の説明では誤り訂正符号としてECCを用いたが、他にCRC(Cyclic Redundancy Check)やハミングコードなども用いることができる。また、上記の説明ではバス幅を4ビットとしたが、これ以外のビット数でも上記と同様の処理を行うことができる。
【0131】
また、カード210からカード220への転送について説明したが、逆にカード220からカード210への転送についても、同様に行うことができる。さらに、カード数は上記に限定されることはなく、複数のカードがバスに結合されていても、上記と同様の処理を実現することができる。
【0132】
また、CPU211がカードに搭載された形態に限定されることはない。例えば、CPU211がバス145に接続されて情報処理装置140を制御しているような場合でも、CPU211とカード間、およびカードとカード間の転送について上記と同様の処理を実現することができる。
【0133】
(第5の実施の形態)
図19は、第5の実施の形態の情報処理装置の構成図である。
情報処理装置150は、スロット切断制御装置151、スイッチ152a〜152cを有している。スロット切断制御装置151は、CPU241によって制御され、スイッチ152a〜152cのオンとオフを制御する。また、情報処理装置150にはスロット101〜103が設けられ、スイッチ152a〜152cを介してバス155に接続されている。
【0134】
スロット101にはCPU241を搭載したユニット240が結合され、スロット103にはユニット260が結合されている。CPU241では、情報処理装置150の稼動状況を診断するRAS(Reliability Availability Serviceability)プログラム158が実行され、診断結果は適宜コンソール300に表示されるとともに、バス155に接続されたハードディスク156に格納されたアプリケーション157に通知される。
【0135】
以上のような構成の情報処理装置150において、新たに、スロット102にユニット250を追加したとする。RASプログラム158は、ユニット250の挿入を検知すると、各ユニットの組み合わせに対してワーストパターンを転送し、データ転送が正常に行われるかどうか診断する。
【0136】
ユニットの組み合わせは、スロット切断制御装置151がスイッチ152a〜152cを制御することで実現する。すなわち、(1)スイッチ152bをオン,スイッチ152cをオフとして、ユニット250が結合,ユニット260が遮断された状態、(2)スイッチ152bをオフ,スイッチ152cをオンとして、ユニット250が遮断,ユニット260が結合された状態、(3)スイッチ152bをオン,スイッチ152cをオンにして、ユニット250,ユニット260が共に結合された状態、このような3通りのユニットの組み合わせをスイッチ152a〜152cのオン,オフの組み合わせによって実現する。
【0137】
そして、上記のような組み合わせ(1)〜(3)に対して、RASプログラムは各ユニットにワーストパターンを送信し、返ってきたパターンとのデータコンペアによりデータの正当性の確認を行う。以上により、RASプログラム158は、データ転送が正常に行われるかどうか診断する。
【0138】
以下、このような診断を用いた情報処理装置150の運用方法について説明する。図20は情報処理装置の運用方法のフローチャートである。
[S1]RASプログラム158は、ユニットの追加を認識する。
【0139】
[S2]RASプログラム158は、スロット切断制御装置151を制御することでユニットの組み合わせを実現する。そして、各組み合わせに対して各ユニットにワーストパターンを送信する。
【0140】
[S3]RASプログラム158は、ステップ[S2]で送信したワーストパターンと返ってきたパターンによるデータコンペアを行い、各ユニットに対するデータ転送が正常かどうか診断する。その結果、スイッチ152a〜152c全てオンでのデータコンペアが全て正常であれば、ステップ[S8]に進む。そうでなければ、ステップ[S4]に進む。
【0141】
[S4]RASプログラム158は、ステップ[S3]の結果から、最大ユニット数となるようなユニット構成を選択する。そして、選択されたユニット構成において、データコンペアが異常となるユニットに接続しているスイッチをスロット切断制御装置151によってオフにし、電気的に遮断する。
【0142】
[S5]RASプログラム158は、ステップ[S4]で電気的に遮断されたユニットにおいて、情報処理装置150の運用上不可欠なユニットが含まれていないか調べる。その結果、運用上不可欠なユニットが遮断されていなければステップ[S6]に進み、そうでなければステップ[S7]に進む。
【0143】
[S6]RASプログラム158は、異常ユニットを遮断した縮退運転中であること、および縮退運転のユニット構成をコンソール300に表示し、アプリケーション157に対して保守要求などの警告通知を行う。その上で、情報処理装置150は運用を継続する。
【0144】
[S7]RASプログラム158は、継続運用が不可能なことをコンソール300に表示し、情報処理装置150をダウンさせる。
[S8]RASプログラム158は、情報処理装置150に搭載されたユニットが全て有効であることをコンソール300に表示する。そして、情報処理装置150は通常運転を行う。
【0145】
以上説明したように、バス上の異常診断を行う際、スロット切断制御装置151がスロットに接続されたスイッチのオン,オフを制御することでユニットの組み合わせを実現できるので、保守者によるカットアンドトライ作業が不要になる。また、異常ユニットはスイッチで電気的に遮断できるので、それが運用に不可欠なユニットでない限り、バス上から切り離すことで情報処理装置150の運用を継続することができる。
【0146】
なお、上記の説明では、ユニット240のCPU241が診断を行うとしたが、診断を行うCPU241は必ずしもユニットに搭載される必要はない。例えば、CPU241がユニット240ではなくバス155に接続された構成でも、上記と同様の処理を実現できる。
【0147】
また、ユニットの追加によって上記の診断を行うとしたが、ユニットの取り外し時についても、上記と同様の処理を行うことができる。また、スイッチの数を増やしていくことで、ユニット枚数は3枚に限定されず、更に多くのユニット構成でも上記と同様の処理を実現することができる。
【0148】
(付記1) バスに複数のユニットが結合される情報処理装置において、
データ転送時に前記バスに異常が発生したときに、異常ビットを含まないようなバスサイズを決定するバスサイズ制御装置と、
前記バスサイズに従い、前記異常ビットを回避してデータ転送を行うバス制御装置と、を有することを特徴とする情報処理装置。
【0149】
(付記2) 前記バス制御装置は、前記異常ビットを含まない他の半分のバスを使用するように構成したことを特徴とする付記1記載の情報処理装置。
(付記3) 前記バスサイズ制御装置は、バスに異常が発生するごとに前記バスサイズを半分にしていくことで、前記異常ビットを含まないバスサイズを決定することを特徴とする付記1記載の情報処理装置。
【0150】
(付記4) バスに複数のユニットが結合される情報処理装置において、
データ転送時に前記バスに異常が発生したときに、データを転送する所定のバスサイズを決定するバスサイズ制御装置と、
前記バスサイズに従って前記データを転送し、前記バスサイズ以外のバスを特定のレベルに固定するバス制御装置と、を有することを特徴とする情報処理装置。
【0151】
(付記5) 前記バス制御装置は、データ転送用のバスと特定のレベルに固定したバスを交互に配置することを特徴とする付記4記載の情報処理装置。
(付記6) バスに複数のユニットが結合される情報処理装置において、
データ転送時に前記バスに異常が発生したときに、データのバスサイズを前記バスの半分のバスサイズとするバスサイズ制御装置と、
差動信号のデータ転送として対のバスラインを構成し、正常時には、前記対のバスラインで2つのデータを転送し、データ転送時に前記バスに異常が発生したときには、前記対のバスラインを差動論理信号として、1つのデータを転送するバス制御装置と、を有することを特徴とする情報処理装置。
【0152】
(付記7) バスに複数のユニットが結合される情報処理装置において、
データ転送時にバスに異常が発生したときに、データのバスサイズを前記バスの半分のバスサイズとするバスサイズ制御装置と、
データ転送時にバスに異常が発生したときに、対のバスラインを差動論理信号として、1つのデータを転送するバス制御装置と、を有することを特徴とする情報処理装置。
【0153】
(付記8) バスに複数のユニットが結合される情報処理装置において、
データ転送時に前記バスに異常が発生したときに、データを転送する所定のバスサイズを決定するバスサイズ制御装置と、
前記データに対応する誤り訂正信号を生成し、前記バスサイズに従って前記データと前記誤り訂正信号を組にしてデータ転送を行うバス制御装置と、を有することを特徴とする情報処理装置。
【0154】
(付記9) バスに複数のユニットが結合される情報処理装置において、
前記ユニットが結合されるスロットとバスの間に設けられたスイッチと、
前記バスに異常が発生したときに、異常ユニットの接続されたスイッチを切断するスロット切断制御装置と、を有することを特徴とする情報処理装置。
【0155】
(付記10) バスに複数のユニットが結合される情報処理装置の運転方法において、
ユニットが結合されるスロットとバスの間に設けられたスイッチを設け、
前記スイッチを制御して、データの転送が正常なユニットかどうかを確認する運転方法。
【0156】
(付記11) データの転送が異常なユニットが情報処理装置の運転に不可欠なユニットであるときは、情報処理装置の運転を停止し、不可欠なユニットでないときは異常ユニットを前記スイッチで切り離して前記情報処理装置の運転を継続することを特徴とする付記10記載の情報処理装置の運転方法。
【0157】
【発明の効果】
以上説明したように本発明の情報処理装置は、データ転送時にバスに異常が発生したときに異常ビットを回避してデータ転送を行うような構成としたので、事前検証が困難な障害がバス上に発生したとしても、正常なバスを用いてデータを転送することで、複雑な伝送路を伴わずに上記の障害に起因するシステムの動作不良を防ぐことができ、製造コストを維持しつつ、システムの信頼性を高めることができる。
【0158】
また、本発明の情報処理装置は、データ転送時にバスに異常が発生したときに所定のバスサイズでデータ転送し、それ以外のバスを特定のレベルに固定するような構成としたので、バス上に発生するスイッチングノイズやクロストークノイズの影響を少なくしたデータ転送を実現することができる。
【0159】
また、本発明の情報処理装置は、データ転送時にバスに異常が発生したときにバスサイズを半分にして差動論理信号を転送するような構成としたので、バス上に発生するスイッチングノイズやクロストークノイズの影響を少なくしたデータ転送を実現することができる。
【0160】
また、本発明の情報処理装置は、データ転送時にバスに異常が発生したときに、データとデータに対応した誤り訂正符号を組み合わせて転送するような構成としたので、バス上に発生する誤りを訂正することができる。
【0161】
また、本発明の情報処理装置は、スイッチの制御によって異常ユニットを電気的に切断するような構成としたので、異常ユニットが発生した際には、それをバス上から切り離すことでシステムへの影響を遮断し、システムの運用を継続することができる。
【図面の簡単な説明】
【図1】第1の実施の形態の情報処理装置の動作を説明するためのブロック図である。
【図2】第1の実施の形態の情報処理装置の構成図である。
【図3】バス制御回路の内部構成例である。
【図4】バス制御回路の真理値表である。
【図5】データ転送時に下位16ビットにパリティエラーが検出された後、リトライサイクルが行われるまでのタイミングチャートである。
【図6】第2の実施の形態の情報処理装置の動作を説明するためのブロック図である。
【図7】バス制御回路の内部構成例である。
【図8】バス制御回路の真理値表である。
【図9】データ転送時に転送エラーが発生した後、リトライサイクルが行われるまでのタイミングチャートである。
【図10】第3の実施の形態の情報処理装置の動作を説明するためのブロック図である。
【図11】バス制御回路の内部構成例である。
【図12】バス制御回路の真理値表である。
【図13】データ転送時に転送エラーが発生した後、リトライサイクルが行われるまでのタイミングチャートである。
【図14】受信部での差動論理信号の変換処理を示す図である。
【図15】第4の実施の形態の情報処理装置の動作を説明するためのブロック図である。
【図16】バス制御回路の内部構成例である。
【図17】バス制御回路の真理値表である。
【図18】データ転送時に転送エラーが発生した後、リトライサイクルが行われるまでのタイミングチャートである。
【図19】第5の実施の形態の情報処理装置の構成図である。
【図20】情報処理装置の運用方法のフローチャートである。
【符号の説明】
10 情報処理装置
11 バス制御装置
12 バスサイズ制御装置
80 ユニット
90 ユニット
Claims (5)
- バスに複数のユニットが結合される情報処理装置において、データ転送時に前記バスに異常が発生したときに、異常ビットを含まないようなバスサイズを決定するバスサイズ制御装置と、
前記バスサイズに従い、前記異常ビットを回避してデータ転送を行うバス制御装置と、を有することを特徴とする情報処理装置。 - バスに複数のユニットが結合される情報処理装置において、データ転送時に前記バスに異常が発生したときに、データを転送する所定のバスサイズを決定するバスサイズ制御装置と、
前記バスサイズに従って前記データを転送し、前記バスサイズ以外のバスを特定のレベルに固定するバス制御装置と、を有することを特徴とする情報処理装置。 - バスに複数のユニットが結合される情報処理装置において、データ転送時に前記バスに異常が発生したときに、データのバスサイズを前記バスの半分のバスサイズとするバスサイズ制御装置と、
差動信号のデータ転送として対のバスラインを構成し、正常時には、前記対のバスラインで2つのデータを転送し、データ転送時に前記バスに異常が発生したときには、前記対のバスラインを差動論理信号として、1つのデータを転送するバス制御装置と、を有することを特徴とする情報処理装置。 - バスに複数のユニットが結合される情報処理装置において、データ転送時に前記バスに異常が発生したときに、データを転送する所定のバスサイズを決定するバスサイズ制御装置と、
前記データに対応する誤り訂正信号を生成し、前記バスサイズに従って前記データと前記誤り訂正信号を組にしてデータ転送を行うバス制御装置と、を有することを特徴とする情報処理装置。 - バスに複数のユニットが結合される情報処理装置において、
前記ユニットが結合されるスロットとバスの間に設けられたスイッチと、
前記バスに異常が発生したときに、異常ユニットの接続されたスイッチを切断するスロット切断制御装置と、を有することを特徴とする情報処理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003208237A JP2005070822A (ja) | 2003-08-21 | 2003-08-21 | 情報処理装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003208237A JP2005070822A (ja) | 2003-08-21 | 2003-08-21 | 情報処理装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2005070822A true JP2005070822A (ja) | 2005-03-17 |
Family
ID=34401600
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003208237A Withdrawn JP2005070822A (ja) | 2003-08-21 | 2003-08-21 | 情報処理装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2005070822A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009290497A (ja) * | 2008-05-29 | 2009-12-10 | Fujitsu Ltd | エラー特定方法、データ処理装置、及び半導体装置 |
JP2011197855A (ja) * | 2010-03-18 | 2011-10-06 | Fujitsu Ltd | データ転送システム、データ転送システムの受信装置及びデータ転送システムの制御方法 |
WO2014118985A1 (ja) * | 2013-02-04 | 2014-08-07 | 三菱電機株式会社 | バスモジュール及びバスシステム |
-
2003
- 2003-08-21 JP JP2003208237A patent/JP2005070822A/ja not_active Withdrawn
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009290497A (ja) * | 2008-05-29 | 2009-12-10 | Fujitsu Ltd | エラー特定方法、データ処理装置、及び半導体装置 |
US8327212B2 (en) | 2008-05-29 | 2012-12-04 | Fujitsu Limited | Error identifying method, data processing device, and semiconductor device |
JP2011197855A (ja) * | 2010-03-18 | 2011-10-06 | Fujitsu Ltd | データ転送システム、データ転送システムの受信装置及びデータ転送システムの制御方法 |
WO2014118985A1 (ja) * | 2013-02-04 | 2014-08-07 | 三菱電機株式会社 | バスモジュール及びバスシステム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5838900A (en) | Digital data processing methods and apparatus for fault detection and fault tolerance | |
EP1725941B1 (en) | Data communication module providing fault tolerance and increased stability | |
US6584526B1 (en) | Inserting bus inversion scheme in bus path without increased access latency | |
KR100878550B1 (ko) | 메모리 컨트롤러 및 메모리 제어 방법 | |
JP4456552B2 (ja) | 動的代替機能を持つ論理集積回路、これを用いた情報処理装置及び論理集積回路の動的代替方法 | |
JP2000112834A (ja) | メモリ部品障害を訂正するためにデ―タを区分するための技法 | |
JP2010218370A (ja) | フォールトトレラントシステム | |
JPH10340212A (ja) | クロック同期バス上の障害を分離する方法 | |
CN109753454B (zh) | 半导体装置以及包含半导体装置的半导体系统 | |
JP2005070822A (ja) | 情報処理装置 | |
US7328368B2 (en) | Dynamic interconnect width reduction to improve interconnect availability | |
US20050066258A1 (en) | Error decoding circuit, data bus control method and data bus system | |
JP5056947B2 (ja) | 情報処理装置、データ送信装置およびデータ送信装置のデータ転送方法 | |
EP1683018B1 (en) | Autonomic bus reconfiguration for fault conditions | |
JPH10312340A (ja) | 半導体記憶装置におけるエラー検出,訂正方式 | |
JPH04305748A (ja) | 高信頼性バス | |
JP2979814B2 (ja) | シリアルデータ転送装置 | |
CN116089158A (zh) | 功能安全显示控制器及功能安全显示控制系统 | |
JPH08314811A (ja) | メモリインタフェース装置 | |
JP2606160B2 (ja) | パリティチェック回路の故障検出方式 | |
JPH02171845A (ja) | バス方式 | |
JPH05313931A (ja) | コンピュータの耐障害方式 | |
JP2010010897A (ja) | 多重化装置同期化処理装置及び多重化装置同期化処理方法 | |
JPH01204165A (ja) | メモリ縮退制御方式 | |
JP2002304306A (ja) | エラー報告方式及びその方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20061107 |