(57)【要約】【課題】  定期的なＤＬＬ調整の影響による、スループット、レイテンシについての性能低下を招くことなく、信頼性を確保するためのデータ転送の高速化方式を提供する。【解決手段】  分割リンク４１０〜４１３は本来の転送データを分割して転送し、分割リンク４１４は冗長データを転送し、送信制御部２２０は分割リンク４１０〜４１４のクロック位相調整をタイミングをずらして実行し、受信制御部１５０は分割リンク４１０〜分割リンク４１３の何れかでデータ転送ができない場合に、転送できない分割リンクの本来の転送データを、転送できる分割リンクの本来の転送データ及び前記冗長データを用いて補完生成する。【選択図】      図１
2008059134.tif 000002
【特許請求の範囲】
【請求項１】
１以上の伝送路を有するデータ転送方式であって、前記１以上の伝送路の何れかでデータ転送が出来ない場合に受信側で転送データの生成をするための冗長データを転送する１以上の冗長伝送路と、前記１以上の伝送路および前記１以上の冗長伝送路のクロック位相調整を、前記１以上の伝送路および前記１以上の冗長伝送路毎にタイミングをずらして実行する手段を有することを特徴とするデータ転送方式。
【請求項２】
１以上の伝送路を有するデータ転送方式であって、前記１以上の伝送路の何れかの伝送路のクロック位相調整実行時は前記冗長伝送路の前記冗長データで補完することにより前記転送データの生成をする受信手段を有することを特徴とする請求項１記載のデータ転送方式。
【請求項３】
１以上の伝送路を有するデータ転送方式であって、前記１以上の伝送路の何れかの伝送路の故障検出時は前記冗長伝送路の前記冗長データで補完することにより前記転送データの生成をする受信手段を有することを特徴とする請求項１、または、２記載のデータ転送方式。
【請求項４】
前記冗長データは、前記１以上の伝送路の転送データのパリティデータであり、前記転送データの前記生成は、前記データ転送ができないいずれかの前記伝送路を除く前記伝送路の前記転送データと前記冗長データとの排他的論理和を取ることによって得ることを特徴とする請求項１、２、または、３記載のデータ転送方式。
【請求項５】
１以上の伝送路を有するインタフェースのデータ転送方法であって、前記１以上の伝送路の何れかでデータ転送が出来ない場合に、１以上の冗長伝送路で転送された冗長データを利用して受信側で転送データの生成を行い、前記１以上の伝送路および前記１以上の冗長伝送路のクロック位相調整を、前記１以上の伝送路および前記１以上の冗長伝送路毎にタイミングをずらして実行することを特徴とするデータ転送方法。
【請求項６】
１以上の伝送路を有するインタフェースのデータ転送方法であって、前記１以上の伝送路の何れかの伝送路のクロック位相調整実行時は前記冗長伝送路の前記冗長データで補完することにより前記転送データの生成をすることを特徴とする請求項５記載のデータ転送方法。
【請求項７】
１以上の伝送路を有するインタフェースのデータ転送方法であって、前記１以上の伝送路の何れかの伝送路の故障検出時は前記冗長伝送路の前記冗長データで補完することにより前記転送データの生成をすることを特徴とする請求項５、または、６記載のデータ転送方法。
【請求項８】
前記冗長データは、前記１以上の伝送路の転送データのパリティデータであり、前記転送データの前記生成は、前記データ転送ができないいずれかの前記伝送路を除く前記伝送路の前記転送データと前記冗長データとの排他的論理和を取ることによって得ることを特徴とする請求項５、６、または、７記載のデータ転送方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はデータ転送方式およびデータ転送方法に関し、特に、クロック位相調整の定期的な実行を必要する場合のスループット及びレイテンシの低下を防止できるデータ転送方式およびデータ転送方法に関する。
【背景技術】
【０００２】
高速なシリアル通信を行うインタフェースにおいて、送信側クロックと受信側クロックは、同周波数ではあるが別ソースのため誤差のあるクロックを使用する。このため、動作開始の初期化にて、送信側と受信側のクロック位相調整が行われる。しかし、こうして動作を開始しても、時間が経つと送信側と受信側のクロック誤差のために位相がずれてくるため、一定間隔で再クロック位相調整が必要となる。クロック位相調整期間中はデータ転送を止めなければならないため、レイテンシ及びスループットが低下するという問題があった。
【０００３】
これらの課題を解決するための従来のデータの転送方式およびデータ転送方法としては、クロック位相調整に要する時間を短縮するものがある（例えば特許文献１参照。）。
【０００４】
【特許文献１】特開平１１−８８１６２
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、これら従来のデータ転送方式およびデータ転送方法では、クロック位相調整期間中のデータ転送の中断を完全に回避することはできず、クロック位相調整の影響による、スループット、レイテンシについての性能低下が発生することは避けられないという問題があった。
【０００６】
本発明の目的は、上述した従来の課題であるクロック位相調整による性能低下を解決するデータ転送方式およびデータ転送方法を提供することにある。
【課題を解決するための手段】
【０００７】
本発明の第１のデータ転送方式は、１以上の伝送路を有するデータ転送方式であって、前記１以上の伝送路の何れかでデータ転送が出来ない場合に受信側で転送データの生成をするための冗長データを転送する１以上の冗長伝送路と、前記１以上の伝送路および前記１以上の冗長伝送路のクロック位相調整を、前記１以上の伝送路および前記１以上の冗長伝送路毎にタイミングをずらして実行する手段を有する。
【０００８】
本発明の第２のデータ転送方式は、前記第１のデータ転送方式に於いて、１以上の伝送路を有するデータ転送方式であって、前記１以上の伝送路の何れかの伝送路のクロック位相調整実行時は前記冗長伝送路の前記冗長データで補完することにより前記転送データの生成をする受信手段を有する。
【０００９】
本発明の第３のデータ転送方式は、前記第１、または、第２のデータ転送方式に於いて、１以上の伝送路を有するデータ転送方式であって、前記１以上の伝送路の何れかの伝送路の故障検出時は前記冗長伝送路の前記冗長データで補完することにより前記転送データの生成をする受信手段を有する。
【００１０】
本発明の第４のデータ転送方式は、前記第１、第２、または、第３のデータ転送方式に於いて、前記冗長データは、前記１以上の伝送路の転送データのパリティデータであり、前記転送データの前記生成は、前記データ転送ができないいずれかの前記伝送路を除く前記伝送路の前記転送データと前記冗長データとの排他的論理和を取ることによって得る。
【００１１】
本発明の第１のデータ転送方法は、１以上の伝送路を有するインタフェースのデータ転送方法であって、前記１以上の伝送路の何れかでデータ転送が出来ない場合に、１以上の冗長伝送路で転送された冗長データを利用して受信側で転送データの生成を行い、前記１以上の伝送路および前記１以上の冗長伝送路のクロック位相調整を、前記１以上の伝送路および前記１以上の冗長伝送路毎にタイミングをずらして実行する。
【００１２】
本発明の第２のデータ転送方法は、前記第１のデータ転送方法に於いて、１以上の伝送路を有するインタフェースのデータ転送方法であって、前記１以上の伝送路の何れかの伝送路のクロック位相調整実行時は前記冗長伝送路の前記冗長データで補完することにより前記転送データの生成をする。
【００１３】
本発明の第３のデータ転送方法は、前記第１、または、第２のデータ転送方法に於いて、１以上の伝送路を有するインタフェースのデータ転送方法であって、前記１以上の伝送路の何れかの伝送路の故障検出時は前記冗長伝送路の前記冗長データで補完することにより前記転送データの生成をする。
【００１４】
本発明の第４のデータ転送方法は、前記第１、第２、または、第３のデータ転送方法に於いて、前記冗長データは、前記１以上の伝送路の転送データのパリティデータであり、前記転送データの前記生成は、前記データ転送ができないいずれかの前記伝送路を除く前記伝送路の前記転送データと前記冗長データとの排他的論理和を取ることによって得る。
【発明の効果】
【００１５】
本発明は、クロック位相調整による性能低下を防止することが可能であるという効果を有している。その理由は、転送データを補完可能な冗長データを転送し、伝送路毎のクロック調整タイミングをずらすことによって、いずれかの伝送路上でデータを転送できない場合でも受信側で転送データを生成可能としたためである。
【発明を実施するための最良の形態】
【００１６】
次に、本発明を実施するための最良の形態について図面を参照して詳細に説明する。
【００１７】
図１を参照すると、本発明の第１の実施の形態は、同じ構造を持つＬＳＩ２００とＬＳＩ１００と、ＬＳＩ２００とＬＳＩ１００を接続する転送方向毎に、伝送路４本および冗長伝送路１本として、計５本のＳＥＲＤＥＳインタフェースから成るリンク４００（ＬＳＩ２００からＬＳＩ１００方向）と、リンク３００（ＬＳＩ１００からＬＳＩ２００方向）とから構成される。
【００１８】
ＬＳＩ２００には送受信するデータを処理するプロセッサ２１０、送信データの分割およびパリティデータの生成を行う機能、および伝送路のクロック位相調整であるＤＬＬ調整のタイミングを制御する機能を有する送信制御部２２０、送信データをシリアル変換してリンク４００へ出力する機能を有する５個の送信マクロ（図１ではＳＭ）２３０〜２３４、リンク３００からシリアルデータを受信し、バイトデータへ変換する機能を有する５個の受信マクロ（図１ではＲＭ）２４０〜２４４、受信データをプロセッサ２１０が使用できる形式に復元し、プロセッサ２１０へ出力する機能を有する受信制御部２５０から構成される。尚、マクロとは回路の単位である。
【００１９】
各送信マクロ２３０〜２３４は、送信制御部２２０からＤＬＬ調整指示信号がアサートされると、分割リンク４１０〜４１４上でＤＬＬ調整シーケンスを開始する機能を有する。
【００２０】
ＬＳＩ２００の受信マクロ２４０〜２４４は、ＬＳＩ１００からＤＬＬ調整シーケンスが開始されたことを認識し、受信制御部２５０に対しデータ無効信号をアサートする機能を有する。受信制御部２５０は、受信マクロ２４０〜２４３の何れかからのデータ無効信号を受信すると、該受信マクロからの入力データを無効と見なし、プロセッサ２１０に出力するデータの生成に、該受信マクロからの入力データを使用しなくなる。ＤＬＬ調整は、両方向の対応する分割リンク４１０〜４１４で送信マクロ２３０〜２３４及び受信マクロ１４０〜１４４間で実施され、一連のシーケンスの完了には、数１０から数１００クロックの時間を要する。尚、ＤＬＬ調整の動作に関しては既存の技術であるため、特に説明しない。ＤＬＬ調整の間、受信マクロ２４０〜２４４は受信制御部２５０に対しデータ無効信号をアサートし続ける。
【００２１】
受信マクロ１４０〜１４４は、対応する分割リンク４１０〜４１４のエラーを監視し、エラーを検出すると、受信制御部１５０に対し、データ無効信号をアサートする機能を有し、また、エラーした分割リンク４１０〜４１４の復旧を試みる。尚、リンクエラーの検出方式および復旧方式については、既存の技術であるため、特に説明しない。分割リンク４１０〜４１４の復旧が成功して、データ転送が再開できる状態になった場合は、受信マクロ１４０〜１４４はデータ無効信号をディアサートするが、分割リンク４１０〜４１４の復旧が失敗した場合は、データ無効信号をアサートし続ける。
【００２２】
リンク４００は、分割リンク４１０〜４１４の、５本のＳＥＲＤＥＳインタフェースで構成される。各ＳＥＲＤＥＳインタフェースは２ｂｙｔｅ／クロックでデータ転送できる能力を有する。分割リンク４１０〜４１３は、データ転送用の伝送路（計８ｂｙｔｅ／クロック）である。分割リンク４１４は、冗長データとして分割リンク４１０〜４１３のビット対応のパリティ値を転送するための、冗長伝送路である。
【００２３】
ＬＳＩ１００は、ＬＳＩ２００と同じ構成であるため説明は省略する。リンク３００は、リンク４００と同等の構成であるため、説明は省略する。分割リンク３１０〜３１４は、分割リンク４１０〜４１４と同等の構成であるため、説明は省略する。送信制御部１２０は、送信制御部２２０と同等の構成であるため、説明は省略する。送信マクロ１３０〜１３４は、送信マクロ２３０〜２３４と同等の構成であるため、説明は省略する。
【００２４】
次に、本発明を実施するための最良の形態の動作について図面を参照して説明する。
【００２５】
まず、通常動作時のデータ転送動作について説明する。図２は本発明の通常動作時のデータ処理フローを表している。
【００２６】
プロセッサ２１０はＬＳＩ１００へデータを出力する場合、送信制御部２２０に対し、８ｂｙｔｅ／クロックの転送能力でデータを出力する（図２項番１）。送信制御部２２０は８ｂｙｔｅ幅のデータを、２ｂｙｔｅ×４本に分割し、データ用送信マクロ２３０〜２３３へ出力する。また、送信制御部２２０は、出力データからパリティデータ２ｂｙｔｅを生成し、パリティ用送信マクロ２３４へ出力する（図２項番２）。各送信マクロ２３０〜２３４は、送信制御部２２０から受信した２ｂｙｔｅのデータをシリアル変換し、リンク４００の各ＳＥＲＤＥＳインタフェースへ出力する（図２項番３）。ＬＳＩ１００の各受信マクロ１４０〜１４４は、それぞれリンク４００からシリアルデータを受信し、データを復元、２ｂｙｅｔデータとして、受信制御部１５０へ出力する（図２項番５）。受信制御部１５０は各受信マクロ１４０〜１４４から受信した対応する２ｂｙｔｅデータを結合し８ｂｙｔｅデータに復元してプロセッサ１１０へ出力する（図２項番６）。８ｂｙｔｅデータを受信したプロセッサ１１０は任意の処理を実行する（図２項番７）。
【００２７】
次に、リンク調整動作について説明する。本実施例では、高速にシリアル転送を行うＳＥＲＤＥＳインタフェースを使用する。一般的に、ＳＥＲＤＥＳインタフェースでは、受信側と送信側のクロック位相ずれ改善のためのＤＬＬ調整や、温度、電圧環境の変化に対応するためにインピーダンス調整を定期的に行う必要がある。以下では、ＬＳＩ２００からＬＳＩ１００方向のＤＬＬ調整動作を例にあげて説明する。
【００２８】
ＬＳＩ２００の送信制御部２２０は、各送信マクロ２３０〜２３４へ個別にＤＬＬ調整指示信号を出力する。ＤＬＬ調整は、分割リンク４１０〜４１４毎に一定間隔で実施する必要があるが、送信制御部２２０は、ＤＬＬ調整が２以上の分割リンク４１０〜分割リンク４１３で同時に行われないように、各送信マクロ２３０〜２３４に対し順番に前記ＤＬＬ調整指示信号を出力する。尚、ＤＬＬ調整時間はＤＬＬ調整開始から一定時間内に完了するため、送信制御部２２０は前記ＤＬＬ調整指示信号出力時点から、カウンタ回路等を使用して一定時間待つことにより、ＤＬＬ調整が完了したことを認識する。
【００２９】
図３のタイミング１〜６は本発明におけるリンク４００のＤＬＬ調整動作を示している。図３ではリンク４００の状態、各受信マクロ１４０〜１４４の出力データ、受信制御部１５０で生成したデータを、縦を時間軸（下方向が時間が進む方向）として表している。リンク４００の分割リンク４１０〜４１４の状態が「通常動作」である場合は、該分割リンク４１０〜４１４はデータ転送中または、ＩＤＬＥ状態であることを示している。リンク４００の分割リンク４１０〜４１４の状態が「ＤＬＬ調整」状態であるときは、データ転送は行われず、ＤＬＬ調整パターンが一定期間出力されている。各受信マクロ１４０〜１４４の出力データが、「ＲＭ１４０受信ＤＡＴＡ〜ＲＭ１４４受信ＤＡＴＡ」である場合は、受信制御部１５０に対して２ｂｙｔｅ／クロックで、対応する分割リンク４１０〜４１４から受信したデータを転送中、または、ＩＤＬＥ状態であることを示している。各受信マクロ１４０〜１４４の出力データが、「無効」である場合は、受信制御部１５０に対して有効なデータを出力していないことを示している。
【００３０】
図３のタイミング１で、送信制御部２２０は送信マクロ２３０に対し、ＤＬＬ調整指示信号を出力する。送信制御部２２０から前記ＤＬＬ調整指示信号を受けた送信マクロ２３０は分割リンク４１０でＤＬＬ調整シーケンスを開始する。受信側のＬＳＩ１００では、受信マクロ１４０が、ＤＬＬ調整状態移入を検出すると、受信制御部１５０に対し、データが無効であることを信号により通知する。受信制御部１５０は、ＤＬＬ調整状態になっている受信マクロ１４０から受信するデータを無効として扱う。ＤＬＬ調整中の分割リンク４１０はデータ用のリンクであるので、受信制御部１５０は、残りの３本のデータ用分割リンク４１１〜４１３の受信マクロ１４１〜１４３及びパリティ用受信マクロ１４４から受信した各２ｂｙｔｅのデータを、排他的論理和（ＸＯＲ）を行うことにより、ＤＬＬ調整中の分割リンク４１０分のデータを生成する。受信制御部１５０は、生成されたデータを受信マクロ１４０から受信したデータとして扱い、他の受信マクロ１４１〜１４３から受信したデータとマージし、８ｂｙｔｅデータに復元して、プロセッサ１１０へ出力する。受信制御部１５０は、分割リンク４１０がＤＬＬ調整中である期間中は、上記のように、他の分割リンク４１１〜４１４から分割リンク４１０のデータを生成して動作し続ける。分割リンク４１０のＤＬＬ調整が終了した場合、分割リンク４１０の受信マクロ１４０は受信制御部１５０に対して出力していたデータ無効信号をディアサートし、データ転送を再開する。
【００３１】
分割リンク４１０のＤＬＬ調整が終了すると、ＬＳＩ２００の送信制御部２２０は、次に分割リンク４１１の送信マクロ２３１に対してＤＬＬ調整指示信号を出力する（図３タイミング２）。同様に分割リンク４１１のＤＬＬ調整が終了すると、ＬＳＩ２００の送信制御部２２０は、次に分割リンク４１２の送信マクロ２３２に対してＤＬＬ調整指示信号を出力する（図３タイミング３）。
【００３２】
尚、パリティ用の分割リンク４１４がＤＬＬ調整中である場合（図３タイミング５のケース）は、他の４本の分割リンク４１０〜４１３の受信マクロ１４０〜１４３から受信した各２ｂｙｔｅのデータを用いてパリティを生成することは出来るが、元々冗長なデータであるため、データを補完する必要は無い。
【００３３】
以上述べたように、伝送路毎のクロック位相調整を、タイミングをずらして実施し、冗長データにより転送データを補完するようにしたことにより、データ転送を止めることなく、クロック位相調整を行うことが出来るという効果を有している。
【００３４】
次にエラーリカバリ動作について説明する。
【００３５】
図３のエラータイミング１は分割リンク４１０上での間欠エラーが発生した場合の動作を示している。分割リンク４１０でエラーが発生した場合、受信側のＬＳＩ１００の、受信マクロ１４０が、エラーを検出し、受信制御部１５０に対し、データが無効であることを信号により通知する。受信マクロ１４０は、送信マクロ２３０を介し、ＬＳＩ２００に対して、分割リンク４１０上でリンク復旧シーケンスを実行するよう指示する。リンク復旧シーケンスの実行中は、分割リンク４１０ではデータ転送を行えないため、受信マクロ１４０は受信制御部１５０に対し、データ無効信号を出力し続ける。尚、リンク復旧シーケンスは数１０から数１００クロックの時間を要する場合がある。
【００３６】
分割リンク４１０がデータ無効状態の間は、受信制御部１５０は残りの分割リンク４１１〜４１４から分割リンク４１０のデータを生成し動作を継続する。データの生成の方法は、分割リンク４１０がＤＬＬ調整中の場合と同じであるため説明は省略する。リンク復旧シーケンスの実行が、他の分割リンク４１１〜４１４のリンク復旧シーケンス、または、ＤＬＬ調整シーケンスのタイミングと一致しなければ、データ転送を止めることなくリンク復旧シーケンスを実施することが出来る。
【００３７】
分割リンク４１０上でリンク復旧シーケンスを実施してもエラーが発生する場合、固定故障と考えられるため、分割リンク４１０を閉塞する場合がある。その場合、受信マクロ１４０は、受信制御部１５０に対し、データ無効信号を出力し続ける。そのため、他の分割リンク４１１〜４１４で、ＤＬＬ調整または復旧シーケンスが動作した場合、データ転送を止めなくてはならないが、データ転送不可とはならないので、コンピュータシステムは停止する必要は無い。
【００３８】
以上述べたように、伝送路毎のクロック位相調整をタイミングをずらして実施し、冗長データにより転送データを補完するようにしたことにより、リンク上の間欠エラーや、固定エラーをリカバリすることができるという効果がある。
【００３９】
尚、ＬＳＩ１００、ＬＳＩ２００は、単一のＬＳＩである必要はなく複数に別れていても良く、またボードや装置あるいは情報処理システムであっても良い。
【産業上の利用可能性】
【００４０】
本発明は、高性能かつ高信頼性が要求される、サーバー等のコンピュータシステムにおいて、有効である。
【図面の簡単な説明】
【００４１】
【図１】本発明の最良の実施の形態の構成を示すブロック図である。
【図２】本発明の通常動作時のデータ処理フローの図である。
【図３】本発明の伝送路の時間軸上での動作を説明する図である。
【符号の説明】
【００４２】
１００    ＬＳＩ
２００    ＬＳＩ
１１０    プロセッサ
２１０    プロセッサ
１２０    送信制御部
２２０    送信制御部
１３０〜１３４    送信マクロ
２３０〜２３４    送信マクロ
１４０〜１４４    受信マクロ
２４０〜２４４    受信マクロ
１５０    受信制御部
２５０    受信制御部
３００    リンク
４００    リンク
３１０〜３１４    分割リンク
４１０〜４１４    分割リンク
【図１】
2008059134.tif 000003
【図２】
2008059134.tif 000004
【図３】
2008059134.tif 000005