説明

情報処理システム、情報処理装置、インピーダンス調整方法及びプログラム

【課題】 従来の技術によると、固定的な外部抵抗によりインピーダンスを調整しているので、配線のインピーダンス特性のばらつき等の種々の要因に基づく信号伝送経路のインピーダンス特性のばらつきに対応できないという問題がある。
【解決手段】 上記課題を解決するため、本発明の情報処理システムは、伝送経路で発生したエラー数を検出及び計数し、当該エラー数を出力インピーダンスの調整にフィードバックさせる構成を備えることを特徴とする。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、伝送路のインピーダンスの自動調整機能を備える情報処理装置に関し、伝送路で発生したエラーに基づいて、伝送経路のインピーダンスの調整を最適化する情報処理装置に関する。
【背景技術】
【0002】
従来、情報処理装置に搭載された半導体集積回路は、信号伝送経路の特性インピーダンスに出力バッファのインピーダンスを整合させて、反射ノイズを防止していた。
【0003】
特許文献1には、半導体集積回路の外部に、信号伝送経路の特性インピーダンスに等しい抵抗値を有する外部抵抗を設け、出力バッファのインピーダンスを当該外部抵抗に整合させるインピーダンス調整機能を有する情報処理装置が開示されている。
【0004】
【特許文献1】特開2004−30338号公報
【発明の開示】
【発明が解決しようとする課題】
【0005】
信号伝送経路のインピーダンス特性は、種々の要因により、一定とはならない。例えば、半導体集積回路間を接続するケーブル材質、半導体集積回路を搭載するボードの配線パターン、半導体集積回路の製造ばらつきや寄生抵抗等の種々の要因により、信号伝送経路のインピーダンス特性にばらつきが生じる。しかし、従来の技術によると、固定的な外部抵抗によりインピーダンスを調整しているので、上記のような種々の要因に基づく信号伝送経路のインピーダンス特性のばらつきに対応できないという問題がある。上記インピーダンス特性のばらつきに対応できない結果、伝送経路上でノイズ等の影響によるエラーが頻発し、システム性能低下や伝送経路の閉塞といった弊害が生じる。
【課題を解決するための手段】
【0006】
本発明の情報処理システムは、出力インピーダンスを伝送経路のインピーダンスに整合させるための調整値を生成する調整部を備える第1の情報処理装置が、前記伝送経路を介して第2の情報処理装置にデータを送信する情報処理システムにおいて、前記第2の情報処理装置は、前記第1の情報処理装置から送信された前記データについて、前記伝送経路で発生したエラーを検出するエラー検出部と、所定の時間内に前記エラー検出部が検出したエラーの数を計数するエラー計数部とを有し、前記第2の情報処理装置は、計数したエラーの数を前記第1の情報処理装置に対して通知し、前記第1の情報処理装置は、前記第2の情報処理装置から通知された前記伝送経路のエラーの数に基づいて、前記調整値を補正する補正部を有することを特徴とする。
【発明の効果】
【0007】
伝送経路のエラー数をサンプリングし、インピーダンスの調整にフィードバックして、インピーダンスの調整値を補正することにより、種々の要因に基づく信号伝送経路のインピーダンス特性のばらつきに対応することが可能となる。よって、インピーダンスミスマッチによる影響を抑止し、安定したデータ転送が可能なシステムが提供できるという効果が得られる。
【発明を実施するための最良の形態】
【0008】
次に、本発明を実施するための最良の形態について図面を参照して詳細に説明する。
【0009】
(第1の実施形態)
図1を参照すると、本発明の第1の実施形態における情報処理装置1は、半導体集積回路100を備える。半導体集積回路100には、外部基準抵抗3が設けられている。半導体集積回路100は、タイマ設定値選択部4、タイマカウンタ5、カウンタ値演算部6、タイマ比較部7、診断処理部8、調整部10、補正部20、出力IOセル30、入力IOセル31、サンプリング部40、エラー検出部50、エラー計数部51及びデータ処理部60を備える。情報処理装置1と伝送経路1000・1001により接続されている情報処理装置2も、情報処理装置1と同様の構成を有している。
【0010】
図2を参照すると、調整部10は、定電位回路11、レプリカバッファ12、電圧比較部13、調整コード制御部14を備える。調整部10は、外部基準抵抗3と接続している。調整部10のレプリカバッファ12は、外部基準抵抗3と接続している。
【0011】
図3を参照すると、補正部20は、補正制御部21、コードレジスタ22及びエラー規定値格納レジスタ24を備える。補正制御部21は、調整コード制御部14と接続している。エラー規定値格納レジスタは、診断処理部8と接続している。コードレジスタ22は、出力IOセル30と接続している。
【0012】
なお、図1の情報処理装置2は半導体集積回路200を備えており、半導体集積回路200は、情報処理装置1の半導体集積回路100を同一の構成となっている。
【0013】
ここで、情報処理装置1と情報処理装置2により構成される、本発明の第1の実施形態のシステムの概要について説明する。
【0014】
情報処理装置1のデータ処理部60が、情報処理装置2に対して、データ等を送信する。このとき、情報処理装置1の出力IOセル30により、出力インピーダンスが調整されて、伝送経路1000にデータ等が送信される。
【0015】
伝送経路1000に接続された情報処理装置2の入力IOセル31に、情報処理装置1から送信されたデータ等が受信される。
【0016】
逆に、情報処理装置2のデータ処理部60が、情報処理装置1に対して、データ等を送信する場合、情報処理装置2の出力IOセル30により、出力インピーダンスが調整されて、伝送経路1001にデータ等が送信される。伝送経路1001に接続された情報処理装置1の入力IOセル31に、情報処理装置2から送信されたデータ等が受信される。
【0017】
次に、本発明の第1の実施形態について、上記システムの概要をふまえて、詳細に説明する。
【0018】
調整部10は、伝送経路1000・1001のインピーダンス特性に整合するように設定された外部基準抵抗3により、出力インピーダンスの調整を実行する。
【0019】
レプリカバッファ12は、外部基準抵抗3と接続されており、並列に接続された複数のMOSFETにより構成され、個々のMOSFETに対して電流が流れる。
【0020】
電圧比較部13は、定電位回路11の出力電位とレプリカバッファ12の出力電位を比較する。電圧比較部13は、比較結果を調整コード制御部14に送信する。
【0021】
調整コード制御部14は、電圧比較部13の比較結果に基づいてインピーダンス調整をするための調整コードを生成し、レプリカバッファ12に送信する。調整コードは、数ビットの2進数で定義されるコードである。例えば、調整コードを4ビットと定義する場合、調整コードは“1000”や“1010”となる。但し、調整コードのビット数はこれに限定されず、インピーダンスの調整精度に関連して適宜変更してもよい。レプリカバッファ12は、当該調整コードに基づいて、複数のMOSFETのON/OFFを制御する。例えば、レプリカバッファ12が4個のMOSFETを有する場合、調整コードを4ビットとして、各ビットとMOSFETのいずれかをそれぞれ対応させる。そして、“1”となっているビットに対応するMOSFETのみをONにするように構成すればよい。これにより、レプリカバッファ12の出力電位が調整される。なお、レプリカバッファ12は、全てのMOSFETがOFFとなっても動作が可能なように構成される。レプリカバッファ12の出力が、外部基準抵抗3のインピーダンスと整合したとき、調整コードが収束する。このとき、調整コード制御部14は、収束した調整コードを補正制御部21に送信する。
【0022】
タイマ設定値選択部4、タイマカウンタ5、カウンタ値演算部6及びタイマ比較部7は、調整部10の動作間隔を制御する。
【0023】
タイマ設定値選択部4は、調整部10がインピーダンスを調整する間隔を制御する。タイマ設定値選択部4は、タイマ設定値選択部4に設定されたインピーダンス調整間隔を、カウンタ値としてタイマカウンタ5に送信する。
【0024】
タイマカウンタ5は、タイマ設定値選択部4から送信されたカウンタ値を保持する。タイマカウンタ5は、情報処理装置1の動作クロック等に基づいたタイミングで、カウンタ値をカウンタ値演算部6及びタイマ比較部7に送信する。
【0025】
カウンタ値演算部6は、タイマカウンタ5から送信されたカウンタ値に対して、所定の演算を施す。例えば、カウンタ値演算部6を−1回路により構成し、カウンタ値を1ずつデクリメントするような構成にすればよい。演算後、カウンタ値演算部6は、演算結果をタイマカウンタ5に格納する。
【0026】
タイマ比較部7は、タイマカウンタ5から送信されたカウンタ値が所定の値となっているか否かを比較する。カウンタ値が所定の値となっていることを検出したとき、タイマ比較部7はタイマ時間が経過したと判断し、調整部10に対してインピーダンスの調整動作をするように指示する。例えば、タイマ比較部7が、カウンタ値が“1”となったことを検出したとき、調整部10に対してインピーダンスの調整動作をするように指示するように構成すればよい。なお、タイマ時間の経過を検出したとき、タイマ比較部7は、タイマ設定値選択部4に対してタイマ時間の経過を検出したことを通知する。当該通知を受けて、タイマ設定値選択部4は、再度タイマカウンタ5に対してインピーダンス調整間隔をカウンタ値として送信し、タイマ時間の計測が再開される。
【0027】
診断処理部8は、インピーダンス調整間隔を保持している。診断処理部8は、タイマ設定値選択部4に対して調整部10がインピーダンス調整をする間隔を設定する。調整間隔は、診断処理部8の設定を変更することにより、変更することが可能である。
【0028】
補正部20は、伝送経路1000・1001で発生したエラー数に基づいて、調整部10で生成した調整コードを補正する。
【0029】
まず、情報処理装置1の補正部20における補正制御部21は、調整部10が生成した調整コードを、コードレジスタ22にセットする。
【0030】
情報処理装置1の出力IOセル30は、コードレジスタ22にセットされた調整コードに基づいて、出力インピーダンスを調整する。例えば、出力IOセル30をレプリカバッファ12と同様に複数のMOSFETにより構成し、コードレジスタ22に登録された調整コードに基づいて、複数のMOSFETをON/OFFを制御すればよい。例えば、出力IOセル30が4個のMOSFETを有する場合、調整コードを4ビットとして、各ビットとMOSFETのいずれかをそれぞれ対応させる。そして、“1”となっているビットに対応するMOSFETのみをONにするように構成すればよい。これにより、インピーダンスの調整が可能となる。なお、出力IOセル30は、全てのMOSFETがOFFとなっても動作が可能なように構成される。
【0031】
情報処理装置1のデータ処理部60から、伝送経路1000を介して情報処理装置2にデータ等が送信される際に、出力IOセル30により出力インピーダンスが調整される。
【0032】
ここで、データ処理部60について説明する。データ処理部60は、情報処理装置1と2の間で通信するデータや命令等の処理を実行し、出力IOセル30を介して当該データ等を送信する。入力IOセル31が受信したデータ等を受取り、当該データ等の処理も実行する。また、データ処理部60は、出力IOセル30を介して、コードレジスタ22に登録された調整コードによりインピーダンスを調整して伝送経路1000にデータ等を送信する際に、送信するデータに調整コード等の所定の情報を付加する処理を実行する。
【0033】
ここで、図4を参照して、情報処理装置1と2の間で送受信されるデータのトランザクションフォーマットの一例を説明する。
【0034】
トランザクションフォーマットは、データ長あるいはトランザクションの種別等に応じて第1フレームから第nフレームで構成される。
【0035】
第1フレーム70は、HD TYPE71、Command72、Length73、IMP−CODE74、ERR−CNT75、Destination ID76及びSource ID77で構成される。
【0036】
HD TYPE71は、ヘッダの種類を示す情報である。Command72は、リード/ライト等の命令コードを格納する領域である。Length73は、データ長を格納する領域である。Destination ID76は、送信先の識別IDを格納する領域である。Source ID77は、送信元の識別IDを格納する領域である。
【0037】
IMP−CODE74は、伝送経路のインピーダンス調整に関する情報を格納する領域である。具体低には、コードレジスタ22に登録された調整コードの元となった、調整コード制御部14により最初に生成された調整コードが格納される。
【0038】
ERR−CNT75は、伝送経路1000若しくは1001で発生したエラー数を格納する領域である。
【0039】
第2フレーム80は、トランザクションの識別子であるTransaction ID81と、メモリのアクセスフィールドを示すAddress82で構成される。
【0040】
第3〜第nフレームは、データを伴う命令におけるデータ91により構成される。
【0041】
情報処理装置1から送信されたデータ等は、情報処理装置2の入力IOセル31により受信される。
【0042】
入力IOセル31がデータ等を受信すると、情報処理装置2のエラー検出部50及びエラー計数部51は、伝送経路で発生したエラーの検出・計数を実行する。
【0043】
エラー検出部50は、受信したデータのECCやCRC等を検出することにより、伝送経路で発生したエラーを検出する。エラー計数部51は、エラー検出部50で検出されたECCやCRC等のエラーの数を計数する。
【0044】
エラー計数部51は、所定の時間内にエラー検出部50が検出したエラー数を計数する。エラー計数部51は、エラー数を計数するためのタイマ時間を保持している。エラー計数部51は、入力IOセル31からエラー検出部50にデータが入力した時点でタイマをスタートさせて、タイマ時間が経過するまでの間にエラー検出部50が検出したエラー数を計数する。エラー計数部51は、タイマ時間経過後、タイマをリセットする。入力IOセル31からエラー検出部50にデータが入力している間は、エラー計数部51は、タイマをリセット後、再度タイマをスタートさせてタイマ時間が経過するまでエラー数を計数する。
【0045】
エラー計数部51は、計数したエラー数を情報処理装置2のデータ処理部60に送信する。1つのトランザクションで、エラー計数部51が複数回タイマをリセットした場合、エラー計数部51からデータ処理部60に対して複数のエラー数が送信されることになる。この場合、データ処理部60は、複数のエラー数の平均値を計算し、その平均値を伝送経路のエラー数とする。
【0046】
情報処理装置2のデータ処理部60は、情報処理装置1から送信されたIMP−CODE74をそのまま付加し、計数したエラー数をERR−CNT75に格納した第1フレーム70を含んだ送信データを生成し、出力IOセル30を介して情報処理装置1に送信する。これにより、情報処理装置1に対して、調整したインピーダンスにおける伝送経路のエラー数を通知することができる。なお、この場合、情報処理装置2から情報処理装置1に対して送信するデータは、情報処理装置1が、当該データが伝送経路のエラー数を通知するデータであることを認識できる形式となるように構成する。例えば、第1フレームのCommand72の領域に、当該データが伝送経路のエラー数を通知するデータであることを示す情報を格納すればよい。
【0047】
伝送経路のエラー数を通知するデータを情報処理装置1の入力IOセル31が受信する。入力IOセル31は、情報処理装置1のサンプリング部40、エラー検出部50、エラー計数部51及びデータ処理部60にデータを送信する。
【0048】
情報処理装置1のサンプリング部40は、入力IOセル31から受信したデータが、伝送経路のエラー数を通知するデータであると判断すると、エラー数のサンプリングを開始する。情報処理装置1のエラー検出部50及びエラー計数部51は、入力IOセル31から受信したデータが、伝送経路のエラー数を通知するデータであると判断すると、伝送経路のエラーの検出・計数は実行しない。
【0049】
サンプリング部40は、受信したデータのERR−CNT75から、伝送経路のエラー数を抽出する。サンプリング部40は、抽出したエラー数を、補正部20の補正制御部21に通知する。
【0050】
情報処理装置1の補正制御部21は、サンプリング部40から通知されたエラー数に基づいて、調整コードの補正を実行する。
【0051】
補正制御部21は、エラー規定値格納レジスタ24に格納されている伝送経路上で許容されるエラー数を示す規定値と、サンプリング部40から通知されたエラー数を比較する。通知されたエラー数が規定値の範囲内である場合は、補正制御部21は、調整コードの補正処理を終了する。通知されたエラー数が規定値の範囲外である場合は、補正制御部21は、サンプリング部40から通知されたエラー数が、前回通知されたエラー数と比較して増加したか否かを判断する。但し、調整コードについて補正が1度もなされていない場合、補正制御部21は、エラー数が増加したか否かの判断はせず、調整コードの補正を実行する。この場合、補正制御部21は、調整コードを増加させる補正若しくは減少させる補正のいずれかを実行する。いずれの補正を実行するかは、事前に設定しておけばよい。なお、本発明の第1の実施形態における補正制御部21は、前回通知されたエラー数を格納する補助記憶領域を備える。
【0052】
エラー数が減少した場合は、補正制御部21は、前回の補正時と同一の方向に、調整コードを補正する。例えば、前回の補正時において、調整コードを増加させる方向に補正していた場合は、調整コードを再度増加させる補正を実行する。
【0053】
エラー数が増加した場合は、補正制御部21は、前回の補正時と逆の方向に、調整コードを補正する。例えば、前回の補正時において、調整コードを増加させる方向に補正していた場合は、調整コードを減少させる補正を実行する。
【0054】
情報処理装置1と情報処理装置2は、伝送経路のエラー数が規定値の範囲内になるまで、上記の処理を繰り返す。なお、所定回数の補正を繰り返しても、エラー数が規定値の範囲内に収束しない場合、補正制御部21は、伝送経路に障害が発生していると判断し、伝送経路を閉塞する等の処理を実行するように構成してもよい。
【0055】
なお、本実施形態では、情報処理装置1がデータの送信側となった場合について説明したが、情報処理装置2がデータの送信側となった場合も同様の処理が実行される。
【0056】
次に、図5のフローチャートを参照して、本発明の第1の実施形態の動作を説明する。なお、図5において、情報処理装置1がデータ等の送信側となり、情報処理装置2が受信側となる場合について説明するが、逆の場合も同様の動作となる。
【0057】
情報処理装置1の調整部10は、外部基準抵抗3に基づいて、調整コード10を生成する(S1)。
【0058】
情報処理装置1の補正制御部21は、調整コードをコードレジスタ22にセットし、出力IOセル30がコードレジスタ22を参照して出力インピーダンスを調整する(S2)。
【0059】
データ処理部60は、出力IOセル30を介して、調整したインピーダンスによりデータ等を送信する(S3)。
【0060】
情報処理装置2の入力IOセル31は、情報処理装置1から送信されたデータ等を受信する(S4)。
【0061】
情報処理装置2のエラー検出部50及びエラー計数部51は、伝送経路において所定時間内に発生したエラーの検出・計数を実行する(S5)。
【0062】
情報処理装置2のデータ処理部60は、計数したエラー数を含めたデータを、情報処理装置1に対して送信し、情報処理装置1に対して計数したエラー数を通知する(S6)。
【0063】
情報処理装置1は、情報処理装置2から通知されたエラー数に関する通知を受信する(S7)。
【0064】
情報処理装置1のサンプリング部40は、受信した通知から伝送経路のエラー数を抽出する(S8)。
【0065】
情報処理装置1の補正制御部21は、抽出したエラー数が規定値の範囲内か否かを判断する(S9)。
【0066】
エラー数が規定値の範囲内の場合(S9でYesの場合)、補正制御部21は、インピーダンス調整処理を終了する(S10)。
【0067】
エラー数が規定値の範囲外の場合(S9でNoの場合)、補正制御部21は、前回の補正時のエラー数よりもエラー数が増加したか否かを比較する(S11)。但し、調整コードについて補正が1度もなされていない場合、補正制御部21は、エラー数が増加したか否かの判断はせず、調整コードの補正を実行する。
【0068】
エラー数が減少した場合(S11でNoの場合)、補正制御部21は、前回の補正と同じ方向へ調整コードを補正する(S12)。
【0069】
エラー数が増加した場合(S11)、補正制御部21は、前回の補正と逆方向に調整コードを補正する(S13)。
【0070】
(第1の実施形態による効果)
伝送経路のエラー数をサンプリングし、インピーダンスの調整にフィードバックして、インピーダンスの調整コードを補正することにより、種々の要因に基づく信号伝送経路のインピーダンス特性のばらつきに対応することが可能となる。よって、インピーダンスミスマッチによる影響を抑止し、安定したデータ転送が可能なシステムが提供できるという効果が得られる。
【0071】
(第2の実施形態)
次に本発明の第2の実施形態について説明する。
【0072】
第2の実施形態は、補正部20が、調整コードの補正に用いる情報を格納した管理テーブル23を備え、補正制御部21は管理テーブル23に格納された情報に基づいて調整コードの補正を実行することを特徴とする。情報処理装置のその他の構成は、図1乃至3に示す構成と同じである。
【0073】
第2の実施形態における補正部20の構成を、図6に示す。補正部20が管理テーブル23を備え、補正制御部21が参照可能なように構成されている。なお、管理テーブル23は、補正部20に設けられたメモリ等の記憶領域に記憶されている。
【0074】
管理テーブル23の構成を、図7を参照して説明する。 管理テーブル23は、調整コード毎に、補正済フラグ、補正量1、補正中フラグ、補正回数、補正量2、前回の調整コード、E0、E1、E2及びサンプリングフラグが設定されたレコードを有する。管理テーブル23は、調整コードの上限と下限の範囲で、調整コード毎のレコードを有する。図7においては、上限が“1111”、下限が“0000”の例を示しているが、調整コードの範囲はこれに限るものではない。また、図7においては、一部のレコードのみ具体例を記載しており、その他のレコードについては記載を省略している。
【0075】
補正済フラグは、当該調整コードについて、伝送経路で発生したエラーに基づいて、当該調整コードの補正が完了しているか否かを示すフラグである。補正済フラグがONの場合(例えば“1”の場合)、当該調整コードについて補正が完了しており、補正済フラグがOFFの場合(例えば“0”の場合)、補正が完了していないことを示す。
【0076】
補正量1は、補正済フラグがONの場合における調整コードの補正量を示す。つまり、当該調整コードについて、補正量1に示される補正量で、補正が完了したことを示す。補正量1は、調整コード制御部14により生成された調整コードを基準とした補正量を示す。例えば、調整コード制御部14により生成された調整コードが“1000”の場合において、補正量1が“+2”である場合、“1000”を“+2”補正することを意味する。なお、補正量1の初期値には、“0”を格納する。
【0077】
補正中フラグは、当該調整コードが補正中であるか否かを示すフラグである。補正中フラグがONの場合(例えば“1”の場合)、当該調整コードが補正中の状態であることを示す。補正中フラグがOFFの場合(例えば“0”の場合)、当該調整コードが補正中ではないことを示す。
【0078】
補正回数は、当該調整コードについて補正が実行された回数を示す。例えば、補正回数が“2”の場合、当該レコードは補正が2回実行されたことを意味する。補正がなされていないレコードは、補正回数が“0”となっている。
【0079】
補正量2は、当該調整コードが補正中の状態における、調整コードの補正量を示す。補正量2は、調整コード制御部14により生成された調整コードを基準とした補正量を示す。例えば、調整コード制御部14により生成された調整コードが“1000”の場合において、補正量2が“+1”である場合、”1000”を“+1”補正することを意味する。なお、補正量2の初期値には、“0”を格納する。
【0080】
前回の調整コードは、調整コードを補正する場合において、補正する前の調整コードを格納する。例えば、調整コード“1001”に対して“+1”補正して“1010”とする場合、前回の調整コードには、補正前の“1001”を格納する。なお、管理テーブル23のレコードが未補正状態である場合は、“前回の調整コード”の欄には、情報は格納されない(図7では斜線で示している)。
【0081】
E0は、調整コード制御部14により生成された調整コード、即ち、補正をしていない状態の調整コードによりインピーダンスを調整した場合において、伝送経路で発生したエラー数を示す。なお、補正をしていない状態の調整コードにより調整したインピーダンスにおいて、伝送経路で発生したエラー数が管理テーブル23に未登録である場合は、エラー数が未登録であることを示す情報が、E0に格納される。図7においては、模式的に“未”と示しているが、例えば、“−1”等、エラー数が未登録であることを明確に識別できる情報であればよい。E1、E2においても同様である。
【0082】
E2は、最新の補正後の調整コードにより調整したインピーダンスにおいて、伝送経路で発生したエラー数を示す。例えば、調整コード制御部14が生成した調整コード“1000”に対して、最新の補正において“+2”補正をした場合、E2には“1010”により調整したインピーダンスにおける伝送経路のエラー数が格納される。なお、最新の補正後の調整コードにより調整したインピーダンスにおいて、伝送経路で発生したエラー数が、管理テーブル23に未登録である場合は、エラー数が未登録であることを示す情報が、E2に格納される。
【0083】
E1は、最新の補正の1つ以前の補正後の調整コードにより調整したインピーダンスにおいて、伝送経路で発生したエラー数を示す。例えば、調整コード制御部14が生成した調整コード“1000”に対して、2回補正を実行し、1回目の補正により“1001”とし、最新の補正により“1010”となっている場合、E1には“1001”により調整したインピーダンスにおける伝送経路のエラー数が格納される。ただし、調整コードに対する補正が1回目である場合、当該補正後の調整コードにより調整したインピーダンスにおいて伝送経路で発生したエラー数は、E1に格納される。なお、最新の補正の1つ以前の補正後の調整コードにより調整したインピーダンスにおいて、伝送経路で発生したエラー数が、管理テーブル23に未登録である場合は、エラー数が未登録であることを示す情報が、E1に格納される。
【0084】
E2に新たなエラー数が登録される際には、直前にE2に格納されていたエラー数をE1に移してから、E2に新たなエラー数を登録される。
【0085】
E0乃至E2には、サンプリング部40により抽出されたエラー数が登録される。
【0086】
サンプリングフラグは、最新の補正後の調整コードにより調整したインピーダンスにおいて、伝送経路で発生したエラー数が登録されたか否かを示す。サンプリングフラグがONの場合(例えば“1”の場合)、エラー数が登録されていることを示す。
【0087】
補正制御部21は、調整コード制御部14から受信した調整コードに対応する管理テーブル23のレコードにおいて、補正済フラグの状態を参照する。補正済フラグがONであり当該レコードについて補正が確定している場合は(例えば図7で“1000”のレコードのような場合)、補正制御部21は、補正量1を参照して調整コードを補正し、コードレジスタ22に登録する。
【0088】
補正済フラグがOFFである場合、補正制御部21は、エラー規定値格納レジスタ24から、伝送経路において許容できるエラー数を参照し、E0乃至E2のいずれか1つに格納されているエラー数と比較する。比較を実行する前提条件として、補正制御部21は、調整コード制御部14から受けた調整コードに対応する管理テーブル23のレコードにおいて、サンプリングフラグがONとなっているか否かを確認する。なお、伝送経路で許容できるエラー数は診断処理部8が記憶しており、エラー規定値格納レジスタ24に格納される規定値は、診断処理部8により設定される。診断処理部8に設定されている規定値を変更することで、エラー規定値格納レジスタ24に格納する規定値を変更することが可能である。
【0089】
サンプリングフラグがOFFであって、補正回数が“0”の場合、補正制御部21は、調整コード制御部14が生成した調整コードをそのままコードレジスタ22にセットする。この場合(例えば図7で“0111”のレコードのような場合)、調整コード制御部14が生成した調整コードが管理テーブル23において初期状態であるので、補正制御部21は、当該調整コードをそのままコードレジスタ22にセットする。その後、コードレジスタ22にセットした調整コードにより調整したインピーダンスにおける伝送経路のエラー数が管理テーブル23に登録されるまで待機し、登録後、当該エラー数と規定値を比較する。
【0090】
サンプリングフラグがOFFであって、上記以外の場合、補正制御部21は、サンプリングフラグがONとなるまでエラー数の比較を実行せずに待機する。この間に、調整部10から補正部20に調整コードが生成されても、補正制御部21は、サンプリングフラグがONとなるまで待機する。サンプリングフラグがONとなったとき、補正制御部21は、エラー数を規定値と比較する。
【0091】
補正制御部21は、サンプリングフラグがONである場合、E0乃至E2のうち、最新に更新されたエラー数を参照し、エラー規定値格納レジスタ24に格納されているエラー数と比較する。なお、E0乃至E2のうち、最新に更新されたエラー数は、E2が未登録状態ならばE1、E1が未登録状態ならばE0に格納されているエラー数となる。E0乃至E2全てにエラー数が登録されている場合は、E2に格納されたエラー数が最新に更新されたエラー数となる。
【0092】
エラー数が規定値の範囲内であって、補正中フラグがONの場合、補正制御部21は、補正量2から補正量を抽出し、管理テーブル23を更新する。この場合、補正が確定したことになるので、補正制御部21は、補正済フラグをONにし、補正中フラグをOFFにし、補正回数を“0”に戻し、補正量2から抽出した補正量を補正量1に登録する。その後、補正制御部21は、補正量2から抽出した補正量により調整コードを補正し、コードレジスタ22に登録する。
【0093】
エラー数が規定値の範囲内であって、補正中フラグがOFFの場合、補正制御部21は、調整コード制御部14が生成した調整コードをコードレジスタ22に登録する。
【0094】
エラーが規定値の範囲内でない場合、補正制御部21は、調整コードを補正する。補正制御部21は、管理テーブル23の該当する調整コードのレコードについて、補正量2を更新し、補正回数を1だけインクリメントし、サンプリングフラグをOFFにする。補正後の調整コードにより調整したインピーダンスにおける伝送経路のエラー数が管理テーブル23に登録され、サンプリングフラグがONになった場合、補正制御部21は、当該エラー数が規定値の範囲内か否かを再度比較する。補正制御部21は、この動作を、エラー数が規定値の範囲内となるか、あるいは、調整コードが上限値又は下限値(図4においては、“1111”又は”0000”)となるまで繰り返す。
【0095】
ここで、エラー数が規定値の範囲内でない場合における、補正制御部21による補正処理の具体例を、図8を参照して詳細に説明する。
【0096】
まず、図8(a)における+(プラス)補正の場合について説明する。+補正とは、調整コード制御部14により最初に生成されたコードを基準として、調整コードを増加する方向へ補正する場合を意味する。
【0097】
補正処理回数が1回目の場合(管理テーブル23の補正回数が“0”の場合)、補正制御部21は、調整コードの補正量を “+1”増加させる。図8(a)の場合では、調整コード制御部14が生成した調整コード(以下、最初に生成した調整コードとする)が“1000”であるので、補正制御部21は、増加させた補正量により補正し、“1001”とする。補正制御部21は、管理テーブル23の最初に生成した調整コードのレコードにおける“前回の調整コード”に、補正前の調整コードを登録する。図8(a)の場合では、補正前の調整コード“1000”を登録する。補正制御部21は、管理テーブル23の最初に生成した調整コードのレコードにおける補正中フラグをONにし、補正量2に補正量の“+1”を登録し、補正回数を“0”から“1”にインクリメントして、サンプリングフラグをOFFにする。
【0098】
補正処理回数が2回目の場合(管理テーブル23の補正回数が“1”の場合)、補正制御部21は、管理テーブル23の最初に生成した調整コードのレコードにおけるE0とE1のエラー数を比較する。
【0099】
E1≦E0の場合、補正制御部21は、1回目の補正後の補正量を、更に“+1”増加させる。図8(a)の場合では、1回目の補正後の調整コードが“1001”であるので、補正制御部21は、増加させた補正量により補正し、調整コードを“1010”とする。補正制御部21は、管理テーブル23の最初に生成した調整コードのレコードにおける“前回の調整コード”に、補正前の調整コードを登録する。図8(a)の場合では、補正前の調整コード“1001”を登録する。補正制御部21は、管理テーブル23の最初に生成した調整コードのレコードにおける補正量2に補正量の“+2”を登録し、補正回数を“1”から“2”にインクリメントして、サンプリングフラグをOFFにする。
【0100】
補正処理回数が3回目の場合(管理テーブル23の補正回数が“2”の場合)、補正制御部21は、管理テーブル23の最初に生成した調整コードのレコードにおけるE1とE2のエラー数を比較する。
【0101】
E2≦E1の場合、補正制御部21は、2回目の補正後の補正量を、更に“+1”増加させる。例えば図8(a)の場合、2回目の補正後の調整コードが“1010”であるので、補正制御部21は、増加させた補正量により補正し、調整コードを“1011”とする。補正制御部21は、管理テーブル23の最初に生成した調整コードのレコードにおける“前回の調整コード”に、補正前の調整コードを登録する。図8(a)の場合では、補正前の調整コード“1010”を登録する。補正制御部21は、管理テーブル23の最初に生成した調整コードのレコードにおける補正量2に補正量の“+3”を登録し、補正回数を“2”から“3”にインクリメントして、サンプリングフラグをOFFにする。また、補正制御部21は、E2に登録されているエラー数を、E1に上書きする。
【0102】
E2>E1の場合、補正制御部21は調整コードの補正は実行せず、補正動作を中断する。この場合、補正制御部21は、コードレジスタ22に管理テーブル23の“前回の調整コード”に登録されている調整コードを登録する。例えば図8(a)の場合、補正制御部21は、“1001”を、コードレジスタ22に登録する。また、補正制御部21は、管理テーブル23の最初に生成した調整コードのレコードにおける補正中フラグをOFFにし、補正済フラグをONにし、“前回の調整コード”に登録されている調整コードに対応する補正量を補正量1に登録する。図8(a)の場合では、補正量“+1”が管理テーブル23の補正量1に登録される。これにより、伝送経路で発生するエラー数が最も少ない調整コードにより、情報処理装置1又は2の運用を継続することが可能となる。なお、補正制御部21が、E1に登録されているエラー数を、1回目の補正後の調整コードにより調整したインピーダンスにおける伝送経路のエラー数に戻し、補正量2に登録されている補正量を、1回目の補正後の補正量に戻すように構成してもよい。この処理を実行するため、補正制御部21は、E1に格納されているエラー数を一時的に格納するエラー数補助領域と、補正量2に格納されている補正量を一時的に格納する補正量補助領域を備えるように構成される。2回目の補正を実行する前に、補正制御部21は、E1に格納されているエラー数を、エラー数補助領域に格納し、補正量2に格納されている補正量を、補正量補助領域に格納しておく。そして、E2>E1と判断されたときに、補正制御部21は、エラー数補助領域に登録されているエラー数をE1に登録し、補正量補助領域に登録されている補正量を補正量2に登録する。このような構成とすることにより、補正制御部21は、調整コードの補正処理を繰り返すことが可能となる。また、この場合、補正制御部21は、E2>E1となった回数を記憶するように構成される。このような状態で運用を継続することにより、補正制御部21は、E2>E1となった回数をカウントすることが可能となる。補正制御部21は、E2>E1となった回数が所定の回数を超えた場合、伝送経路に障害が発生したと判断し、伝送経路を閉塞するように構成することが可能となる。
【0103】
補正処理回数が4回目の場合(管理テーブル23の補正回数が“3”の場合)も、補正制御部21は、3回目の場合と同様の処理を実行する。
【0104】
なお、図8(a)の+補正の例において、補正量を“+1”ずつ増加される例を示したが、補正量はこれに限定されるものではない。例えば、伝送経路でのエラー数と規定値との差が、一定の値以上である場合に、補正量の増加量を増やすように構成することも可能である。
【0105】
次に、図8(b)における−(マイナス)補正の場合について説明する。
【0106】
補正処理回数が1回目の場合(管理テーブル23の補正回数が“0”の場合)、補正制御部21は、調整コードの補正量を“+1”増加させる。図8(b)の場合では、最初に生成した調整コードが“1000”であるので、補正制御部21は、増加させた補正量により補正し、調整コードを“1001”とする。補正制御部21は、管理テーブル23の最初に生成した調整コードのレコードにおける“前回の調整コード”に、補正前の調整コードを登録する。図8(b)の場合では、補正前の調整コード“1000”を登録する。補正制御部21は、管理テーブル23の最初に生成した調整コードのレコードにおける補正中フラグをONにし、補正量2に補正量の“+1”を登録し、補正回数を“0”から“1”にインクリメントして、サンプリングフラグをOFFにする。
【0107】
補正処理回数が2回目の場合(管理テーブル23の補正回数が“1”の場合)において、管理テーブル23の最初に生成した調整コードのレコードにおけるE0とE1のエラー数がE1>E0となる場合に、−補正が実行される。これは、1回目の補正で+補正したことにより補正後の調整コードに基づくインピーダンスで、伝送経路のエラー数が増加したので、1回目とは逆方向に調整コードを補正する必要があるためである。この場合、補正制御部21は、1回目の補正とは逆方向に補正するために、1回目の補正後の補正量を“−2”減少させる。これにより、最初に生成した調整コードに対して“−1”の補正がされることになる。補正制御部21は、最初に生成した調整コードに対して“−1”の補正をした“0111”を、コードレジスタ22に登録する。
【0108】
補正制御部21は、管理テーブル23の最初に生成した調整コードのレコードにおける“前回の調整コード”に、最初に生成した調整コードを登録する。図8(b)の例では、調整コード“1000”が登録される。“1001”ではなく“1000”を登録するのは、以降の補正処理において、管理テーブル23の“前回の調整コード”に登録されている調整コードを使用する必要が生じた場合に、“1000”よりも伝送経路のエラー数が増大する調整コードが使用されないようにするためである。また、補正制御部21は、補正量2に“−1”を登録し、補正回数を“1”から“2”にインクリメントし、サンプリングフラグをOFFにする。更に、補正制御部21は、E0に登録されているエラー数を、E1に上書きする。これは、3回目の補正処理時において、補正制御部21が、最初に生成した調整コードにおけるエラー数と“−1”補正した調整コードにおけるエラー数とを比較できるようにするためである。
【0109】
補正処理回数が3回目の場合(管理テーブル23の補正回数が“2”の場合)、補正制御部21は、管理テーブル23の最初に生成した調整コードのレコードにおけるE1とE2のエラー数を比較する。
【0110】
E2≦E1の場合、補正制御部21は、2回目の補正後の補正量を、更に“−1”減少させる。例えば図8(b)の場合、2回目の補正後の調整コードが“0111”であるので、補正制御部21は、減少させた補正量により補正し、調整コードを“0110”とする。補正制御部21は、管理テーブル23の最初に生成した調整コードのレコードにおける“前回の調整コード”に、補正前の調整コードを登録する。図8(b)の場合では、補正前の調整コード“0111”を登録する。補正制御部21は、管理テーブル23の最初に生成した調整コードのレコードにおける補正量2に補正量の“−2”を登録し、補正回数を“2”から“3”にインクリメントして、サンプリングフラグをOFFにする。また、補正制御部21は、E2に登録されているエラー数を、E1に上書きする。
【0111】
E2>E1の場合、補正制御部21は調整コードの補正は実行せず、補正動作を中断する。この場合、補正制御部21は、コードレジスタ22に管理テーブル23の“前回の調整コード”に登録されている調整コードを登録する。例えば図8(b)の場合、補正制御部21は、“1000”を、コードレジスタ22に登録する。また、補正制御部21は、管理テーブル23の最初に生成した調整コードのレコードにおける補正中フラグをOFFにし、補正済フラグをONにし、“前回の調整コード”に登録されている調整コードに対応する補正量を補正量1に登録する。図8(b)の場合では、補正量“0”が管理テーブル23の補正量1に登録される。これにより、伝送経路で発生するエラー数が最も少ない調整コードにより、情報処理装置1又は2の運用を継続することが可能となる。なお、補正制御部21が、E1に登録されているエラー数を、1回目の補正後の調整コードにより調整したインピーダンスにおける伝送経路のエラー数に戻し、補正量2に登録されている補正量を、1回目の補正後の補正量に戻すように構成してもよい。この処理を実行するため、補正制御部21は、E1に格納されているエラー数を一時的に格納するエラー数補助領域と、補正量2に格納されている補正量を一時的に格納する補正量補助領域を備えるように構成される。2回目の補正を実行する前に、補正制御部21は、E1に格納されているエラー数を、エラー数補助領域に格納し、補正量2に格納されている補正量を、補正量補助領域に格納しておく。そして、E2>E1と判断されたときに、補正制御部21は、エラー数補助領域に登録されているエラー数をE1に登録し、補正量補助領域に登録されている補正量を補正量2に登録する。このような構成とすることにより、補正制御部21は、調整コードの補正処理を繰り返すことが可能となる。また、この場合、補正制御部21は、E2>E1となった回数を記憶するように構成される。このような状態で運用を継続することにより、補正制御部21は、E2>E1となった回数をカウントすることが可能となる。補正制御部21は、E2>E1となった回数が所定の回数を超えた場合、伝送経路に障害が発生したと判断し、伝送経路を閉塞するように構成することが可能となる。
【0112】
補正処理回数が4回目の場合(管理テーブル23の補正回数が“3”の場合)も、補正制御部21は、3回目の場合と同様の処理を実行する。
【0113】
図8(b)の−補正の例において、補正量を“−1”づつ減少される例を示したが、補正量はこれに限定されるものではない。例えば、伝送経路でのエラー数と規定値との差が、一定の値以上である場合に、補正量の減少量を増やすように構成することも可能である。
【0114】
なお、図8(a)若しくは(b)において、補正処理回数が4回目までの例を示しているが、5回目以降も同様の処理が実行される。また、調整コードの補正が繰り返されて、補正後の調整コードが上限若しくは下限に達した場合、補正制御部21は、上限又は下限の調整コードに対する伝送経路のエラー数を規定値と比較する。調整コードが上限に達した場合、補正制御部21は、コードレジスタ22に上限の調整コードを登録し、当該調整コードに対する伝送経路のエラー数と規定値を比較する。エラーが規定値の範囲内であった場合、補正制御部21は補正済フラグをONにして、上限の調整コードに対する補正量を補正量1に登録する。エラー数が規定値の範囲外であった場合、補正制御部21は、上限の調整コードに対する伝送経路のエラー数が再度登録されるのを待って、規定値を比較する処理を所定回数だけ繰り返す。所定回数だけ比較してもエラー数が規定値の範囲内に収束しない場合、補正制御部21は、何らかの障害が発生していると判断し、伝送経路を閉塞する。エラー数の比較を繰り返す所定回数は、診断処理部8に設定しておき、補正制御部21が診断処理部8から読み出して保持するように構成すればよい。
【0115】
調整コードが下限に達した場合も、補正制御部21は同様の処理を実行する。
【0116】
次に、最初に生成された調整コードが、管理テーブル23で管理される調整コードの上限若しくは下限であった場合の処理について説明する。
【0117】
図7及び図8に示す例では、上限は“1111”であり、下限は“0000”となっている。
【0118】
調整コード制御部14により最初に生成された調整コードが下限の“0000”である場合、補正制御部21は、1回目の補正処理において補正量を “+1”増加させる。当該補正後、2回目の補正処理において、E1>E0となった場合、最初に生成された調整コードが下限であるため、−補正はできない。この場合、補正制御部21は、コードレジスタ22に最初に生成された調整コード、即ち調整コード“0000”をセットして補正動作を中断する。この場合、下限の調整コード、即ち調整コード“0000”の状態で運用を継続するように構成してもよいし、伝送経路のインピーダンス調整が不可能と判断し、伝送経路に障害が発生していると判断してもよい。
【0119】
調整コード制御部14により最初に生成された調整コードが上限の“1111”である場合、補正制御部21は、1回目の補正処理において補正量を “−1”増加させる。当該補正後、2回目の補正処理において、E1>E0となった場合、最初に生成された調整コードが上限であるため、+補正することはできない。この場合、補正制御部21は、コードレジスタ22に最初に生成された調整コード、即ち調整コード“1111”をセットして補正動作を中断する。この場合、上限の調整コード、即ち調整コード“1111”の状態で運用を継続するように構成してもよいし、伝送経路のインピーダンス調整が不可能と判断し、伝送経路に障害が発生していると判断してもよい。
【0120】
次に、第2の実施形態における、情報処理装置1がデータ等の送信側となり、情報処理装置2へデータを送信する場合の、情報処理装置1及び情報処理装置2のデータ処理部60の動作について説明する。データ処理部60のその他の動作は、第1の実施形態と同様である。
【0121】
情報処理装置1のデータ処理部60は、送信データの第1フレームのIMP―CODE74に、補正済フラグ、補正中フラグ、補正量1若しくは補正量2を格納する。このデータを、インピーダンス調整した出力IOセル30を介して、情報処理装置2に対して送信する。情報処理装置2の入力IOセル31は、送信されたデータを受信し、情報処理装置2のサンプリング部40、エラー検出部50、エラー計数部51及びデータ処理部60にデータを送信する。
【0122】
次に、第2の実施形態におけるサンプリング部40の動作について説明する。
サンプリング部40は、受信したデータの第1フレームのIMP−CODE74から調整コードを抽出し、ERR−CNT75から伝送経路のエラー数を抽出する。その後、サンプリング部40は、抽出した調整コードに対応する管理テーブル23のレコードに、抽出したエラー数を登録する。サンプリング部40は、抽出した調整コードに対応する管理テーブル23のレコードの“補正回数”が1の場合、レコードの“E1”に抽出したエラー数を格納する。“補正回数”が2以上の場合、レコードの“E2”に抽出したエラー数を格納する。これにより、補正部20が、補正後の調整コードにより調整したインピーダンスにおける伝送経路のエラー数を認識し、調整コードの補正に対して伝送経路のエラー数をフィードバックすることができる。
【0123】
次に、図9乃至図12のフローチャートを参照して、第2の実施形態の動作を説明する。
【0124】
図9乃至図12は、調整コードの補正をする動作を説明するフローチャートである。
【0125】
補正制御部21は、管理テーブル23を参照し、調整コード制御部14が最初に生成した調整コードに対応するレコードを検索する(S14)。
【0126】
補正制御部21は、検索したレコードの補正済フラグがONとなっているか否かを確認する(S15)。
【0127】
補正済フラグがONとなっている場合(S15でYesの場合)、補正制御部21は、レコードの補正量1に登録されている補正量を読込む(S16)。ここで、補正制御部21は、補正量の読込みと共に、レコードのE0乃至E2のうち、最新に更新されたエラー数を参照し、エラー規定値格納レジスタ24に格納されているエラー数と比較し、エラー数が規定値の範囲内か否かを判断するように構成してもよい。この場合、エラー数が規定値の範囲内になければ、S23以降の処理を実行するように構成する。このように構成することで、補正量が確定した後、伝送経路のケーブルが交換されたこと等の要因で、伝送経路の特性インピーダンスが変化した場合でも、当該特性インピーダンスに合わせて、出力インピーダンスを更に調整することが可能となる。
【0128】
補正制御部21は、抽出した補正量により調整コードを補正し、補正後の調整コードをコードレジスタ22にセットし、調整コードの補正処理を終了する(S5)。
【0129】
補正済フラグがОFFである場合(S15でNoの場合)、補正制御部21は、レコードのE0乃至E2のうち、最新に更新されたエラー数を参照し、エラー規定値格納レジスタ24に格納されているエラー数と比較し、エラー数が規定値の範囲内か否かを判断する(S18)。但し、管理テーブル23のレコードにおける“補正回数”が“0”であり、当該レコードが初期状態である場合、補正制御部21は、調整コードをコードレジスタ22にセットし、当該調整コードで調整したインピーダンスにおける伝送経路のエラー数が管理テーブル23に登録されるまで待機する。エラー数が登録された後、補正制御部21は、S18の処理、即ちエラー数と規定値の比較を実行する。
【0130】
エラー数が規定値の範囲内である場合(S18でYesの場合)、補正制御部21は、レコードの補正中フラグがONであるか否かを判断する(S19)。
【0131】
補正中フラグがOFFである場合(S19でNoの場合)、補正制御部21は、調整コードの補正をせずに、コードレジスタ22にセットする(S22)。
【0132】
補正中フラグがONである場合(S19でYesの場合)、補正制御部21は、レコードの補正量2に登録されている補正量を読込む(S20)。
【0133】
補正量を読込後、補正制御部21は、レコードの補正済フラグをONにし、補正中フラグをOFFにして、抽出した補正量をレコードの補正量1に登録する(S21)。
【0134】
その後、補正制御部21は、抽出した補正量により補正した調整コードをコードレジスタ22にセットし、補正処理を終了する(S17)。
【0135】
エラー数が規定値の範囲外である場合(S18でNoの場合)、補正制御部21は、補正処理回数が1回目か否かを判断する(図10のS23)。
【0136】
補正処理回数が1回目の場合(S23でYesの場合)、補正制御部21は、補正量を“+1”増加させる(S24)。
【0137】
補正後、補正制御部21は、補正中フラグをONにし、補正量をレコードの補正量2に登録し、補正回数をインクリメントする(S25)。
【0138】
その後、補正制御部21は、補正した調整コードをコードレジスタ22に登録する(S26)。補正制御部21は、補正した調整コードをコードレジスタ22に登録後、補正後の調整コードで調整したインピーダンスにおける伝送経路のエラー数が管理テーブル23に登録されるまで待機する(図9の4番へ移動)。エラー数が登録されたとき、補正制御部21は、当該エラー数が規定値の範囲内か否かを比較する(図9のS18)。
【0139】
補正処理回数が1回目ではない場合(S23でNoの場合)、補正制御部21は、補正処理回数が2回目か否かを判断する(図11のS27)。
【0140】
補正処理回数が2回目の場合(S27でYesの場合)、補正制御部21は、レコードのE0とE1に登録されているエラー数がE1>E0の関係となっているか否かを比較する(S28)。
【0141】
E1>E0の場合(S28でYesの場合)、1回目の補正後の補正量を、“−2”減少させる(S29)。
【0142】
E1≦E0の場合(S28でNoの場合)、1回目の補正後の補正量を、 “+1”増加させる(S30)。
【0143】
補正制御部21は、補正量をレコードの補正量2に登録し、補正回数をインクリメントする(S31)。
【0144】
その後、補正制御部21は、補正後の調整コードをコードレジスタ22に登録する(S32)。補正制御部21は、補正した調整コードをコードレジスタ22に登録後、補正後の調整コードで調整したインピーダンスにおける伝送経路のエラー数が管理テーブル23に登録されるまで待機する(図9の4番へ移動)。エラー数が登録されたとき、補正制御部21は、当該エラー数が規定値の範囲内か否かを比較する(図9のS18)。
【0145】
補正処理回数が2回目以降である場合(S27でNoの場合)、補正制御部21は、レコードのE2とE1に登録されているエラー数がE2>E1の関係となっているか否かを比較する(図12のS33)。
【0146】
E2≦E1の場合(S33でNoの場合)、補正制御部21は、調整コードに対する補正が+補正中か否かを判断する(S34)。補正制御部21は、補正量を増加させる補正を実行中である場合は+補正中と判断し、補正量を減少させる補正を実行中である場合は−補正中と判断する。例えば、補正制御部21が、補正量を減少させる補正を実行したときにONになる判断用のフラグを備えるように構成すればよい。このように構成することで、補正制御部21は、+補正中であるか否かを判断することが可能となる。
【0147】
+補正中の場合(S34でYesの場合)、補正量を“+1”増加させる(S35)。
【0148】
−補正中の場合(S34でNoの場合)、補正量を“−1”減少させる(S36)。
【0149】
補正制御部21は、補正量をレコードの補正量2に登録し、補正回数をインクリメントする(S37)。
【0150】
その後、補正制御部21は、補正後の調整コードをコードレジスタ22に登録する(S38)。補正制御部21は、補正した調整コードをコードレジスタ22に登録後、補正後の調整コードで調整したインピーダンスにおける伝送経路のエラー数が管理テーブル23に登録されるまで待機する(図9の4番へ移動)。エラー数が登録されたとき、補正制御部21は、当該エラー数が規定値の範囲内か否かを比較する(図9のS18)。
【0151】
E2>E1の場合(S21でYesの場合)、補正制御部21は、レコードの“前回の調整コード”に登録されている調整コードを、コードレジスタ22にセットする(S27)。その後、補正処理を終了する(図9の5番へ移動)。
【0152】
(第2の実施形態による効果)
本発明の第2の実施形態において、補正部20は、調整コード毎に補正処理のステータスを管理するテーブルを備える管理テーブル23を有する。これにより、調整コード毎に、補正処理を管理することが可能となる。従って、調整部10により生成される調整コードにばらつきが生じるような場合においても、補正部20が調整コード毎に補正処理を実行できるので、調整コードのばらつきに対応した補正処理が実行可能となるという優れた効果が得られる。
【0153】
(第3の実施形態)
次に、本発明の第3の実施形態について説明する。
【0154】
本発明の第3の実施形態は、2台以上の情報処理装置が相互に接続されている環境においても、伝送経路のエラー数に基づいてインピーダンス調整を補正することができることを特徴としている。
【0155】
図13を参照すると、第3の実施形態は、情報処理装置300に対して、情報処理装置400、500及び600が接続されており、伝送経路(1)乃至(3)の複数の伝送経路が設けられている。但し、情報処理装置の接続数は、図13の記載に限定されるものではない。
【0156】
本発明の第3の実施形態における補正部20は、各伝送経路に対応した複数の管理テーブル23を備えることを特徴とする。例えば、図13の情報処理装置300の補正部20は、伝送経路(1)乃至(3)に対応した3つの管理テーブル23を備える。
【0157】
図14に、本発明の第3の実施形態の情報処理装置300の構成を示す。なお、情報処理装置400、500及び600も情報処理装置300と同様の構成となる。
【0158】
情報処理装置300は、伝送経路毎に対応する出力IOセル30及び入力IOセル31を有する。また、補正部20は、各伝送経路に対応する出力IOセル30及び入力IOセル31の組に対応する複数のコードレジスタ22を備える。
【0159】
出力IOセル30は、対応するコードレジスタ22に登録された調整コードを参照し、出力インピーダンスを調整する。
【0160】
データ処理部60は、各伝送経路に対応する出力IOセル30及び入力IOセル31から、データを送受信する。
【0161】
2台以上の情報処理装置が相互にデータを送受信する環境においては、伝送経路も複数存在する。この場合、第3の実施形態のように、各伝送経路に対応した複数の管理テーブル23を備えることで、伝送経路毎に適切なインピーダンス調整が可能となる。
【0162】
伝送経路は、各情報処理装置間で送受信されるデータの第1フレーム70における、Destination ID76とSource ID77により識別される。補正制御部21、サンプリング部40、エラー検出部50、エラー計数部51及びデータ処理部60は、第1フレームのDestination ID76とSource ID77により、データの送信先と送信元を認識できる。データの送信先と送信元が認識できれば、データの伝送経路を特定することができる。
【0163】
その他の処理は、本発明の第1の実施形態及び第2の実施形態と同様である。
【0164】
(第3の実施形態による効果)
複数の伝送経路毎に、管理テーブル23を有するように構成することで、情報処理装置に複数存在する伝送経路毎に、個別に出力インピーダンスの調整をすることが可能になる。これにより、1つの情報処理装置に存在する複数の伝送経路の間で、インピーダンス特性のばらつきがある場合であっても、伝送経路毎にインピーダンスミスマッチによる影響を抑止し、安定したデータ転送が可能なシステムが提供できるという効果が得られる。
【図面の簡単な説明】
【0165】
【図1】本発明の実施形態における情報処理システムを示すブロック図である。
【図2】本発明の実施形態における調整部を示すブロック図である。
【図3】本発明の実施形態における補正部を示すブロック図である。
【図4】本発明の実施形態における通知データのフォーマットの具体例を示す図である。
【図5】本発明の実施形態における動作を示すフローチャートである。
【図6】本発明の実施形態における補正部を示すブロック図である。
【図7】本発明の実施形態における管理テーブルの構成を示す図である。
【図8】本発明の実施形態における調整コードの補正処理の動作を説明する図である。
【図9】本発明の実施形態における調整コードの補正処理の動作を示すフローチャートである。
【図10】本発明の実施形態における調整コードの補正処理の動作を示すフローチャートである。
【図11】本発明の実施形態における調整コードの補正処理の動作を示すフローチャートである。
【図12】本発明の実施形態における調整コードの補正処理の動作を示すフローチャートである。
【図13】本発明の実施形態における情報処理システムを示すブロック図である。
【図14】本発明の実施形態における情報処理システムを示すブロック図である。
【符号の説明】
【0166】
1 情報処理装置
100 半導体集積回路
2 情報処理装置
200 半導体集積回路
300 情報処理装置
400 情報処理装置
500 情報処理装置
600 情報処理装置
700 半導体集積回路
1000、1001 伝送経路
3 外部基準抵抗
4 タイマー設定値選択部
5 タイマカウンタ
6 カウンタ値演算部
7 タイマ比較部
8 診断処理部
10 調整部
11 定電位回路
12 レプリカバッファ
13 電圧比較部
14 調整コード制御部
20 補正部
21 補正制御部
22 コードレジスタ
23 管理テーブル
24 エラー規定値格納レジスタ
30 出力IOセル
31 入力IOセル
40 サンプリング部
50 エラー検出部
51 エラー計数部
60 データ処理部

【特許請求の範囲】
【請求項1】
出力インピーダンスを伝送経路のインピーダンスに整合させるための調整値を生成する調整部を備える第1の情報処理装置が、前記伝送経路を介して第2の情報処理装置にデータを送信する情報処理システムにおいて、
前記第2の情報処理装置は、
前記第1の情報処理装置から送信された前記データについて、前記伝送経路で発生したエラーを検出するエラー検出部と、
所定の時間内に前記エラー検出部が検出したエラーの数を計数するエラー計数部とを有し、
前記第2の情報処理装置は、計数したエラーの数を前記第1の情報処理装置に対して通知し、
前記第1の情報処理装置は、
前記第2の情報処理装置から通知された前記伝送経路のエラーの数に基づいて、前記調整値を補正する補正部を有することを特徴とする情報処理システム。
【請求項2】
前記補正部は、
前記伝送経路で許容できるエラー数の規定値を保持するエラー規定値格納レジスタと、
前記補正部は、前記規定値と前記伝送経路のエラーの数を比較し、前記エラーの数が前記規定値よりも大きい場合に、前記調整値を補正する補正制御部とを有することを特徴とする請求項1記載の情報処理システム。
【請求項3】
前記補正制御部は、
最新の補正後の調整値により調整した出力インピーダンスにおける前記伝送経路のエラー数を示す第1のエラー数と、前記最新の補正の前の調整値により調整した出力インピーダンスにおける前記伝送経路のエラー数を示す第2のエラー数とを比較し、
前記第1のエラー数が前記第2のエラー数よりも小さい場合に、前記最新の補正と同じ方向に前記調整値を補正し、
前記第1のエラー数が前記第2のエラー数よりも大きい場合に、前記最新の補正と逆方向に前記調整値を補正することを特徴とする請求項2記載の情報処理システム。
【請求項4】
出力インピーダンスを伝送経路のインピーダンスに整合させるための調整値を生成する調整部を備える第1の情報処理装置が、前記伝送経路を介して第2の情報処理装置にデータを送信する情報処理システムにおいて、
前記第2の情報処理装置は、
前記第1の情報処理装置から送信された前記データについて、前記伝送経路で発生したエラーを検出するエラー検出部と、
所定の時間内に前記エラー検出部が検出したエラーの数を計数するエラー計数部とを有し、
前記第2の情報処理装置は、計数したエラーの数を前記第1の情報処理装置に対して通知し、
前記第1の情報処理装置は、
前記第2の情報処理装置から通知された前記伝送経路のエラーの数を保持する管理テーブルと、
前記管理テーブルが保持するエラーの数に基づいて、前記調整値の補正量を決定する補正制御部を有することを特徴とする情報処理システム。
【請求項5】
前記管理テーブルは、
前記補正制御部が決定した補正量を保持することを特徴とする請求項4記載の情報処理システム。
【請求項6】
前記第1の情報処理装置は、
前記伝送経路で許容できるエラーの数を示す規定値を保持するエラー規定値格納レジスタを更に備え、
前記補正制御部は、前記管理テーブルが保持する前記エラーの数と前記規定値とを比較し、前記エラーの数が前記規定値よりも大きい場合に、前記管理テーブルが保持するエラーの数に基づいて前記調整値の補正量を決定し、
前記エラーの数が前記規定値よりも小さくなった場合に、前記補正量を確定することを特徴とする請求項5記載の情報処理システム。
【請求項7】
前記管理テーブルは、
前記調整値が補正中であることを示す第1のフラグと、
前記調整値の補正量が確定したことを示す第2のフラグとを有することを特徴とする請求項6記載の情報処理システム。
【請求項8】
前記管理テーブルは、
最新の補正後の調整値により調整した出力インピーダンスにおける前記伝送経路のエラー数を示す第1のエラー数と、
前記最新の補正の1つ以前の補正後の調整値により調整した出力インピーダンスにおける前記伝送経路のエラーの数を示す第2のエラー数とを有し、
前記第1のエラー数が前記規定値よりも大きい場合において、
前記補正制御部は、前記第1のエラー数が前記第2のエラー数以下である場合に、新たな補正量を決定することを特徴とする請求項4乃至7いずれか1項記載の情報処理システム。
【請求項9】
前記管理テーブルは、
前記調整値を補正する場合における当該補正をする前の調整値を保持し、
前記補正制御部は、前記第1のエラー数が前記第2のエラー数よりも大きくなった場合に、前記補正をする前の調整値により出力インピーダンスを調整するように制御することを特徴とする請求項8記載の情報処理システム。
【請求項10】
前記第2の情報処理装置は、
前記伝送経路のエラーの数を含めたエラー数通知データを作成するデータ処理部を有し、
前記第2の情報処理装置は、前記エラー数通知データを前記第1の情報処理装置に送信することにより、前記伝送経路のエラーの数を通知することを特徴とする請求項4乃至9いずれか1項記載の情報処理システム。
【請求項11】
前記第1の情報処理装置は、
前記伝送経路毎に前記管理テーブルを有することを特徴とする請求項4乃至10いずれか1項記載の情報処理システム。
【請求項12】
出力インピーダンスを伝送経路のインピーダンスに整合させるための調整値を生成する調整部を有する情報処理装置において、
前記伝送経路で発生したエラーの数に基づいて、前記調整値を補正する補正部を有することを特徴とする情報処理装置。
【請求項13】
出力インピーダンスを伝送経路のインピーダンスに整合させるための調整値を生成する調整部を有する情報処理装置において、
前記伝送経路で発生したエラーの数を保持する管理テーブルと、
前記管理テーブルが保持するエラーの数に基づいて、前記調整値の補正量を決定する補正制御部とを有することを特徴とする情報処理装置。
【請求項14】
前記管理テーブルは、
前記補正制御部が決定した補正量を保持することを特徴とする請求項13記載の情報処理装置。
【請求項15】
前記伝送経路で許容できるエラーの数を示す規定値を保持するエラー規定値格納レジスタを有し、
前記補正制御部は、前記管理テーブルが保持する前記エラーの数と前記規定値とを比較し、前記エラーの数が前記規定値よりも大きい場合に、前記管理テーブルが保持するエラーの数に基づいて前記調整値の補正量を決定し、
前記エラーの数が前記規定値よりも小さくなった場合に、前記補正量を確定することを特徴とする請求項14の情報処理装置。
【請求項16】
前記管理テーブルは、
最新の補正後の調整値により調整した出力インピーダンスにおける前記伝送経路のエラー数を示す第1のエラー数と、
前記最新の補正の1つ以前の補正後の調整値により調整した出力インピーダンスにおける前記伝送経路のエラーの数を示す第2のエラー数とを有し、
前記第1のエラー数が前記規定値よりも大きい場合において、
前記補正制御部は、前記第1のエラー数が前記第2のエラー数以下である場合に、新たな補正量を決定することを特徴とする請求項13乃至15いずれか1項記載の情報処理装置。
【請求項17】
前記管理テーブルは、
前記調整値を補正する場合における当該補正をする前の調整値を保持し、
前記補正制御部は、前記第1のエラー数が前記第2のエラー数よりも大きくなった場合に、前記補正をする前の調整値により出力インピーダンスを調整するように制御することを特徴とする請求項16記載の情報処理装置。
【請求項18】
前記伝送経路毎に前記管理テーブルを有することを特徴とする請求項13乃至17いずれか1項記載の情報処理装置。
【請求項19】
第1の情報処理装置が、出力インピーダンスを伝送経路のインピーダンスに整合させるための調整値を生成する調整値生成ステップと、
第1の情報処理装置が、前記調整値により出力インピーダンスを調整して第2の情報処理装置に対してデータを送信するデータ送信ステップと、
前記第2の情報処理装置が、前記第1の情報処理装置から送信された前記データについて、前記伝送経路で発生したエラーを検出するエラー検出ステップと、
前記エラー検出ステップで検出されたエラーの数を計数するエラー計数ステップと、
前記第2の情報処理装置が、前記エラー計数ステップで計数したエラーの数を前記第1の情報処理装置に通知するエラー数通知ステップと、
前記第1の情報処理装置が、前記エラー数通知ステップで通知されたエラーの数に基づいて、前記調整値を補正する調整値補正ステップとを有することを特徴とするインピーダンス調整方法。
【請求項20】
第1の情報処理装置が、出力インピーダンスを伝送経路のインピーダンスに整合させるための調整値を生成する調整値生成ステップと、
第1の情報処理装置が、前記調整値により出力インピーダンスを調整して第2の情報処理装置に対してデータを送信するデータ送信ステップと、
前記第2の情報処理装置が、前記第1の情報処理装置から送信された前記データについて、前記伝送経路で発生したエラーを検出するエラー検出ステップと、
前記エラー検出ステップで検出されたエラーの数を計数するエラー計数ステップと、
前記第2の情報処理装置が、前記エラー計数ステップで計数したエラーの数を前記第1の情報処理装置に通知するエラー数通知ステップと、
前記第1の情報処理装置が、前記エラー数通知ステップで通知されたエラーの数を管理テーブルに格納するステップと、
前記第1の情報処理装置が、前記管理テーブルに格納されているエラーの数に基づいて、前記調整値の補正量を決定する補正量決定ステップとを有することを特徴とするインピーダンス調整方法。
【請求項21】
前記調整値の補正量を、前記管理テーブルに格納する補正量格納ステップを有することを特徴とする請求項20記載のインピーダンス調整方法。
【請求項22】
前記補正量決定ステップは、
前記伝送経路で許容できるエラーの数を示す規定値と、前記管理テーブルに格納されたエラーの数とを比較し、前記エラーの数が前記規定値よりも大きい場合に、前記管理テーブルに格納されたエラーの数に基づいて前記調整値の補正量を決定し、
前記エラーの数が前記規定値よりも小さくなった場合に、前記補正量を確定するステップであることを特徴とする請求項20又は21記載のインピーダンス調整方法。
【請求項23】
前記補正量決定ステップは、
前記管理テーブルが保持する、最新の補正後の調整値により調整した出力インピーダンスにおける前記伝送経路のエラー数を示す第1のエラー数が、前記規定値よりも大きい場合において、
前記第1のエラー数が、前記最新の補正の1つ以前の補正後の調整値により調整した出力インピーダンスにおける前記伝送経路のエラーの数を示す第2のエラー数以下である場合に、新たな補正量を決定するステップを含むことを特徴とする請求項22記載のインピーダンス調整方法。
【請求項24】
前記補正量決定ステップは、
前記第1のエラー数が前記第2のエラー数よりも大きくなった場合に、
前記管理テーブルが保持している、前記調整値を補正する場合における当該補正をする前の調整値により、出力インピーダンスを調整するステップを含むことを特徴とする請求項23記載のインピーダンス調整方法。
【請求項25】
前記補正量決定ステップは、
複数の伝送経路それぞれに対応する複数の管理テーブルが保持する、各伝送経路のエラーの数に基づいて、伝送経路毎に前記調整値の補正量を決定するステップであることを特徴とする請求項20乃至24いずれか1項記載のインピーダンス調整方法。
【請求項26】
第1のコンピュータに、
出力インピーダンスを伝送経路のインピーダンスに整合させるための調整値を生成する調整値生成処理と、
前記調整値により出力インピーダンスを調整して第2のコンピュータに対してデータを送信するデータ送信処理とを実行させ、
前記第2のコンピュータに、
前記第1のコンピュータから送信された前記データについて、前記伝送経路で発生したエラーを検出するエラー検出処理と、
前記エラー検出処理で検出されたエラーの数を計数するエラー計数処理と、
前記エラー計数処理で計数したエラーの数を前記第1のコンピュータに通知するエラー数通知処理とを実行させ、
前記第1のコンピュータに、
前記エラー数通知処理で通知されたエラーの数に基づいて、前記調整値を補正する調整値補正処理を実行させることを特徴とするプログラム。
【請求項27】
第1のコンピュータに、
出力インピーダンスを伝送経路のインピーダンスに整合させるための調整値を生成する調整値生成処理と、
前記調整値により出力インピーダンスを調整して第2のコンピュータに対してデータを送信するデータ送信処理とを実行させ、
前記第2のコンピュータに、
前記第1のコンピュータから送信された前記データについて、前記伝送経路で発生したエラーを検出するエラー検出処理と、
前記エラー検出処理で検出されたエラーの数を計数するエラー計数処理と、
前記エラー計数処理で計数したエラーの数を前記第1のコンピュータに通知するエラー数通知処理とを実行させ、
前記第1のコンピュータに、
前記エラー数通知処理で通知されたエラーの数を管理テーブルに格納する処理と、
前記管理テーブルに格納されているエラーの数に基づいて、前記調整値の補正量を決定する補正量決定処理とを有することを特徴とするプログラム。
【請求項28】
前記補正量決定処理は、
前記伝送経路で許容できるエラーの数を示す規定値と、前記管理テーブルに格納されたエラーの数とを比較し、前記エラーの数が前記規定値よりも大きい場合に、前記管理テーブルに格納されたエラーの数に基づいて前記調整値の補正量を決定し、
前記エラーの数が前記規定値よりも小さくなった場合に、前記補正量を確定する処理であることを特徴とする請求項27記載のプログラム。
【請求項29】
前記補正量決定処理は、
前記管理テーブルが保持する、最新の補正後の調整値により調整した出力インピーダンスにおける前記伝送経路のエラー数を示す第1のエラー数が、前記規定値よりも大きい場合において、
前記第1のエラー数が、前記最新の補正の1つ以前の補正後の調整値により調整した出力インピーダンスにおける前記伝送経路のエラーの数を示す第2のエラー数以下である場合に、新たな補正量を決定する処理を含むことを特徴とする請求項28記載のプログラム。
【請求項30】
前記補正量決定処理は、
前記第1のエラー数が前記第2のエラー数よりも大きくなった場合に、
前記管理テーブルが保持している、前記調整値を補正する場合における当該補正をする前の調整値により、出力インピーダンスを調整する処理を含むことを特徴とする請求項29記載のプログラム。
【請求項31】
前記補正量決定処理は、
複数の伝送経路それぞれに対応する複数の管理テーブルが保持する、各伝送経路のエラーの数に基づいて、伝送経路毎に前記調整値の補正量を決定する処理であることを特徴とする請求項27乃至30いずれか1項記載のプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate