(57)【要約】【課題】可変長パケット方式と比べて伝送帯域を有効利用することができ、パケット全体をエラー訂正することができるデータ伝送装置、データ送信装置、データ受信装置およびデータ伝送システムを提供する。【解決手段】このデータ伝送装置１は、要求に応じたパケットを生成するパケットエンコーダ１１と、生成されたパケットを分割またはダミーデータの付加により所定の長さのフレームを形成し、これに誤り訂正符号を付加して誤り訂正符号付きフレームを生成するＥＣＣフレームエンコーダ１２と、生成された誤り訂正符号付きフレームを伝送路を介して送信するトランスミッタ１３と、伝送路を介して誤り訂正符号付きフレームを受信するレシーバ１４と、受信された誤り訂正符号付きフレームについて誤り検出および訂正を行うＥＣＣフレームデコーダ１５と、誤り訂正符号付きフレームから誤り訂正符号を除去してパケットを抽出するパケットデコーダ１６とを備える。【選択図】図２
2008294757.tif 000002
【特許請求の範囲】
【請求項１】
要求に応じたパケットを生成するパケット生成部と、
生成された前記パケットを分割またはダミーデータの付加により所定の長さのフレームを形成し、これに誤り訂正符号を付加して誤り訂正符号付きフレームを生成するフレームエンコード部と、
生成された前記誤り訂正符号付きフレームを伝送路を介して送信する送信部と、
前記伝送路を介して前記誤り訂正符号付きフレームを受信する受信部と、
受信された前記誤り訂正符号付きフレームについて誤り検出および訂正を行うフレームデコード部と、
誤り検出および訂正された前記誤り訂正符号付きフレームから前記誤り訂正符号を除去して前記パケットを抽出するパケット抽出部とを備えたことを特徴とするデータ伝送装置。
【請求項２】
前記フレームエンコード部は、前記所定の長さのフレームを形成するフレーム形成部と、形成された前記フレームについてＤＣバランス変換を施すＤＣバランス変換部と、ＤＣバランス変換されたフレームに誤り訂正符号を付加して前記送信部に出力する誤り訂正符号付加部とを備え、
前記フレームデコート部は、前記誤り訂正符号付きフレームについて誤り検出および訂正を行う誤り検出・訂正部と、誤り検出および訂正された前記誤り訂正符号付きフレームから前記誤り訂正符号を除去する誤り訂正符号除去部と、前記誤り訂正符合が除去されたフレームについてＤＣ逆バランス変換を施して前記パケット抽出部に出力するＤＣ逆バランス変換部とを備えたことを特徴とする請求項１に記載のデータ伝送装置。
【請求項３】
前記フレームエンコード部は、前記誤り訂正符号付きフレーム間に所定のシンボルを含むシーケンスを挿入して受信タイミングを補正するためのクロック補償シーケンス後の最初に前記誤り訂正符号付きフレームを生成するとき、前記最初の誤り訂正符号付きフレームの先頭に、クロック補償用の制御シンボルとハミング距離が２以上離れた制御シンボルを設けることを特徴とする請求項１に記載のデータ伝送装置。
【請求項４】
前記フレームエンコード部は、前記誤り訂正符号に他の制御シンボルと区別するための情報を追加することを特徴とする請求項３に記載のデータ伝送装置。
【請求項５】
前記フレームエンコード部は、前記誤り訂正符号付きフレーム間にアイドルシンボルを含むシーケンスを挿入して受信タイミングを補正するための前記クロック補償シーケンス時に２以上の所定数のアイドルシンボルが１組となったデータを生成して前記送信部により送信し、
前記フレームデコード部は、前記クロック補償シーケンス時に受信した前記所定数のシンボルが一部が前記アイドルシンボルに一致し、かつ前記所定数のシンボルのうち前記アイドルシンボルでないシンボルと前記アイドルシンボルとの違いが１ビット以下のとき、受信タイミングの補正を行うことを特徴とする請求項１に記載のデータ伝送装置。
【請求項６】
前記フレームエンコード部は、受信タイミングを補正するためのクロック補償シーケンス時は、クロック補償用のアイドルシンボルを含む前記誤り訂正符号付きフレームを生成して前記送信部により送信することを特徴とする請求項１に記載のデータ伝送装置。
【請求項７】
要求に応じたパケットを生成するパケット生成部と、
生成された前記パケットを分割またはダミーデータの付加により所定の長さのフレームを形成し、これに誤り訂正符号を付加して誤り訂正符号付きフレームを生成するフレームエンコード部と、
生成された前記誤り訂正符号付きフレームを伝送路を介して送信する送信部とを備えたことを特徴とするデータ送信装置。
【請求項８】
パケットを分割またはダミーデータの付加により形成された所定の長さのフレームに、誤り訂正符号を付加して形成された誤り訂正符号付きフレームを伝送路を介して受信する受信部と、
受信された前記誤り訂正符号付きフレームについて誤り検出および訂正を行うフレームデコード部と、
誤り検出および訂正された前記誤り訂正符号付きフレームから前記誤り訂正符号を除去して前記パケットを抽出するパケット抽出部とを備えたことを特徴とするデータ受信装置。
【請求項９】
要求に応じたパケットを生成するパケット生成部と、
生成された前記パケットを分割またはダミーデータの付加により所定の長さのフレーム形成し、これに誤り訂正符号を付加して誤り訂正符号付きフレームを生成するフレームエンコード部と、
生成された前記誤り訂正符号付きフレームを送信する送信部と、
前記送信部に接続され、前記誤り訂正符号付きフレームを伝送する伝送路と、
前記伝送路を介して前記誤り訂正符号付きフレームを受信する受信部と、
受信された前記誤り訂正符号付きフレームについて誤り検出および訂正を行うフレームデコード部と、
誤り検出および訂正された前記誤り訂正符号付きフレームから前記誤り訂正符号を除去して前記パケットを抽出するパケット抽出部とを備えたことを特徴とするデータ伝送システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ伝送装置、データ送信装置、データ受信装置およびデータ伝送システムに関する。
【背景技術】
【０００２】
一般的に、伝送帯域を上げるには、伝送路のビット幅を増やすか、伝送周波数を上げる方法が考えられる。また、近年、半導体技術の向上と共に、ＣＰＵや主記憶メモリの動作周波数が高くなっている。このような事情から、ホスト装置と記憶装置をつなぐ伝送路では、ビット幅を増やして伝送帯域を上げるＳＣＳＩ等のパラレルバスに代わって、ビット数を少なくして伝送周波数を上げるＰＣＩ  Ｅｘｐｒｅｓｓ等のシリアルバスが主流になってきている。
【０００３】
このシリアルバス等の伝送周波数が高いデータ伝送においては、伝送エラーを防いで信頼性を向上することが重要である。例えば、ノイズに弱い直流成分を除去し、シンボル間干渉等の伝送品質の劣化要因を除くために、伝送データが適度に０と１が含まれるようにＤＣバランス調整を行う。８Ｂ１０Ｂとして知れらる方式では、８ビットごとのデータの塊をあらかじめ決められた０と１の割合が５０％に近い１０ビットのデータに変換することによってＤＣバランスを調整している。しかしながら、システムによってそれ以上の伝送品質を要求される場合には、エラー訂正機能は不可欠になる。例えば、ハミング符号のように元のデータにエラー検出用の冗長ビットを付加し、伝送後にエラーの有無を検出し、エラーがあった場合は訂正を行うといった方法が知られている（例えば、特許文献１参照。）。
【０００４】
ところで、データ転送方式には、主に３つの方式がある。
（１）固定長パケットを用いて、エラー検出／訂正を行い、エラー発生時でもデータ再送を行わない方式（固定長パケット方式）。この方式（１）は、構成が単純で１ビット誤りまでのエラー訂正が可能であるが、コマンド毎にフレーム（伝送単位）長を変更して伝送帯域を有効に使用することができない。
【０００５】
（２）可変長パケットを用いて、パケットに含まれるエラー検出符号によりエラー検出を行い、エラー発生時は再送を行う方式（可変長パケット方式）。この方式（２）は、コマンド毎にフレーム長を変更して伝送帯域を有効に使用することができるが、再送処理が非常に複雑となる。また、パケットの先頭を示すデータがビット誤りにより解釈できなかった場合は、パケット全体を見落とすことになる。
【０００６】
（３）上記（１）および上記（２）を組み合わせて、再送せずにエラー訂正を行う方式。
この方式（３）は、（１）、（２）の短所を補う方法である。
【０００７】
上記方式（１）に属するデータ伝送システムとして、固定長（１００バイト）のパケットにパケットＥＣＣ（Error Correcting Code）を付加し、パケットＥＣＣが付加された複数のパケットからなるブロックにブロックＥＣＣを付加して送信するパケットベース通信システムが提案されている（例えば、特許文献２参照。）。
【０００８】
この構成によれば、一部のパケットが消失した場合でも、消失していない他のパケットとブロックＥＣＣによって消失したパケットの誤り検出および訂正を行うことができる。
【特許文献１】特開２００３−３１８８６５号公報
【特許文献２】特表２００５−５１２３５２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
本発明の目的は、可変長パケット方式と比べて伝送帯域を有効利用することができ、パケット全体をエラー訂正することができるデータ伝送装置、データ送信装置、データ受信装置およびデータ伝送システムを提供することにある。
【課題を解決するための手段】
【００１０】
本発明は、上記目的を達成するため、以下のデータ伝送装置、データ送信装置、データ受信装置およびデータ伝送システムを提供する。
【００１１】
［１］要求に応じたパケットを生成するパケット生成部と、生成された前記パケットを分割またはダミーデータの付加により所定の長さのフレームを形成し、これに誤り訂正符号を付加して誤り訂正符号付きフレームを生成するフレームエンコード部と、生成された前記誤り訂正符号付きフレームを伝送路を介して送信する送信部と、前記伝送路を介して前記誤り訂正符号付きフレームを受信する受信部と、受信された前記誤り訂正符号付きフレームについて誤り検出および訂正を行うフレームデコード部と、誤り検出および訂正された前記誤り訂正符号付きフレームから前記誤り訂正符号を除去して前記パケットを抽出するパケット抽出部とを備えたことを特徴とするデータ伝送装置。
【００１２】
［２］前記フレームエンコード部は、前記所定の長さのフレームを形成するフレーム形成部と、形成された前記フレームについてＤＣバランス変換を施すＤＣバランス変換部と、ＤＣバランス変換されたフレームに誤り訂正符号を付加して前記送信部に出力する誤り訂正符号付加部とを備え、前記フレームデコート部は、前記誤り訂正符号付きフレームについて誤り検出および訂正を行う誤り検出・訂正部と、誤り検出および訂正された前記誤り訂正符号付きフレームから前記誤り訂正符号を除去する誤り訂正符号除去部と、前記誤り訂正符合が除去されたフレームについてＤＣ逆バランス変換を施して前記パケット抽出部に出力するＤＣ逆バランス変換部とを備えたことを特徴とする前記［１］に記載のデータ伝送装置。
【００１３】
［３］前記フレームエンコード部は、前記誤り訂正符号付きフレーム間に所定のシンボルを含むシーケンスを挿入して受信タイミングを補正するためのクロック補償シーケンス後の最初に前記誤り訂正符号付きフレームを生成するとき、前記最初の誤り訂正符号付きフレームの先頭に、クロック補償用の制御シンボルとハミング距離が２以上離れた制御シンボルを設けることを特徴とする前記［１］に記載のデータ伝送装置。
【００１４】
［４］前記フレームエンコード部は、前記誤り訂正符号に他の制御シンボルと区別するための情報を追加することを特徴とする前記［３］に記載のデータ伝送装置。
【００１５】
［５］前記フレームエンコード部は、前記誤り訂正符号付きフレーム間にアイドルシンボルを含むシーケンスを挿入して受信タイミングを補正するための前記クロック補償シーケンス時に２以上の所定数のアイドルシンボルが１組となったデータを生成して前記送信部により送信し、前記フレームデコード部は、前記クロック補償シーケンス時に受信した前記所定数のシンボルが一部が前記アイドルシンボルに一致し、かつ前記所定数のシンボルのうち前記アイドルシンボルでないシンボルと前記アイドルシンボルとの違いが１ビット以下のとき、受信タイミングの補正を行うことを特徴とする前記［１］に記載のデータ伝送装置。
【００１６】
［６］前記フレームエンコード部は、受信タイミングを補正するためのクロック補償シーケンス時は、クロック補償用のアイドルシンボルを含む前記誤り訂正符号付きフレームを生成して前記送信部により送信することを特徴とする前記［１］に記載のデータ伝送装置。
【００１７】
［７］要求に応じたパケットを生成するパケット生成部と、生成された前記パケットを分割またはダミーデータの付加により所定の長さのフレームを形成し、これに誤り訂正符号を付加して誤り訂正符号付きフレームを生成するフレームエンコード部と、生成された前記誤り訂正符号付きフレームを伝送路を介して送信する送信部とを備えたことを特徴とするデータ送信装置。
【００１８】
［８］パケットを分割またはダミーデータの付加により形成された所定の長さのフレームに、誤り訂正符号を付加して形成された誤り訂正符号付きフレームを伝送路を介して受信する受信部と、受信された前記誤り訂正符号付きフレームについて誤り検出および訂正を行うフレームデコード部と、誤り検出および訂正された前記誤り訂正符号付きフレームから前記誤り訂正符号を除去して前記パケットを抽出するパケット抽出部とを備えたことを特徴とするデータ受信装置。
【００１９】
［９］要求に応じたパケットを生成するパケット生成部と、生成された前記パケットを分割またはダミーデータの付加により所定の長さのフレーム形成し、これに誤り訂正符号を付加して誤り訂正符号付きフレームを生成するフレームエンコード部と、生成された前記誤り訂正符号付きフレームを送信する送信部と、前記送信部に接続され、前記誤り訂正符号付きフレームを伝送する伝送路と、前記伝送路を介して前記誤り訂正符号付きフレームを受信する受信部と、受信された前記誤り訂正符号付きフレームについて誤り検出および訂正を行うフレームデコード部と、誤り検出および訂正された前記誤り訂正符号付きフレームから前記誤り訂正符号を除去して前記パケットを抽出するパケット抽出部とを備えたことを特徴とするデータ伝送システム。
【発明の効果】
【００２０】
請求項１に係るデータ伝送装置によれば、可変長パケット方式と比べて伝送帯域を有効利用することができ、パケット全体をエラー訂正することができる。
【００２１】
請求項２に係るデータ伝送装置によれば、伝送路で発生したビット誤りがＤＣ逆バラン
ス変換で拡大されることがない。
【００２２】
請求項３に係るデータ伝送装置によれば、誤り訂正符号付きフレームの先頭部分に１ビトのビット誤りがあっても、クロック補償シーケンスと判断されることがない。
【００２３】
請求項４に係るデータ伝送装置によれば、誤り訂正符号と他の制御シンボルとの混同が生じない。
【００２４】
請求項５に係るデータ伝送装置によれば、クロック補償フレームに１ビットの誤りがあっても、クロックを補償することができる。
【００２５】
請求項６に係るデータ伝送装置によれば、クロック補償用のシンボルも誤り訂正の対象となるので、クロック補償用の誤り訂正回路を設けなくても、クロック補償用シンボルの１ビット誤りを訂正することができる。
【００２６】
請求項７に係るデータ送信装置によれば、可変長パケット方式と比べて伝送帯域を有効利用することができ、パケット全体をエラー訂正することができる。
【００２７】
請求項８に係るデータ受信装置によれば、可変長パケット方式と比べて伝送帯域を有効利用することができ、パケット全体をエラー訂正することができる。
【００２８】
請求項９に係るデータ伝送システムによれば、可変長パケット方式と比べて伝送帯域を有効利用することができ、パケット全体をエラー訂正することができる。
【発明を実施するための最良の形態】
【００２９】
本発明のデータ伝送装置、データ送信装置、データ受信装置、データ伝送システムを適用したストレージシステムについて説明する。
【００３０】
（ストレージシステムの構成）
図１は、本発明の実施の形態に係るストレージシステムを示す。このストレージシステム１００は、ホストコンピュータ１０１と、半導体ディスク装置１０２とから構成される。
【００３１】
半導体ディスク装置１０２は、ホストコンピュータ１０１に接続されたホストバスインタフェース（Ｉ／Ｆ）２と、ホストバスＩ／Ｆ２にＰＣＩ  Ｅｘｐｒｅｓｓ等のシリアル伝送路３によって接続されたメモリコントローラ４と、データが格納される半導体メモリ５とを備える。
【００３２】
ホストバスＩ／Ｆ２およびメモリコントローラ４は、それぞれに設けられた高速シリアル伝送技術を応用したデータ伝送装置１により接続されている。データ伝送装置１は、データ送信装置とデータ受信装置とから構成され、ホストバスＩ／Ｆ２およびメモリコントローラ４の一方のデータ送信装置と、シリアル伝送路３と、一方のデータ受信装置とからデータ伝送システム１０を構成している。
【００３３】
ホストバスＩ／Ｆ２は、ホストコンピュータ１０１から発行されたコマンドを解釈して、データ伝送装置１を介してメモリコントローラ４に半導体メモリ５をアクセスするよう指示をする。また、ホストバスＩ／Ｆ２は、メモリコントローラ４からアクセス結果が返されると、ホストコンピュータ１０１に処理が終了したことを通知する。
【００３４】
メモリコントローラ４は、指示を受けると半導体メモリ５をアクセスし、その結果を再びデータ伝送装置１を介してホストバスＩ／Ｆ２に返す。
【００３５】
（データ伝送装置の構成）
図２は、ホストバスＩ／Ｆ２に設けられたデータ伝送装置１の構成を示す。メモリコントローラ４に設けられたデータ伝送装置１も、図２と同様に構成されているので、その説明を省略する。データ伝送装置１は、前述したようにデータ送信装置１ａと、データ受信装置１ｂとから構成されている。
【００３６】
データ伝送装置１ａは、ホストバスＩ／Ｆ２を制御する制御部２０からの要求に応じたパケットを生成するパケットエンコーダ（パケット生成部）１１と、生成されたパケットからＥＣＣ（Error Correcting Code）フレーム（誤り訂正符号付きフレーム）を生成するＥＣＣフレームエンコーダ（フレームエンコード部）１２と、ＥＣＣフレームをパラレルデータからシリアルデータに変換して送出するトランスミッタ（送信部）１３とを備える。
【００３７】
データ受信装置１ｂは、受信したＥＣＣフレームをシリアルデータからパラレルデータに変換するレシーバ（受信部）１４と、ＥＣＣに基づいてエラー検出および訂正を行うＥＣＣフレームデコーダ（フレームデコード部）１５と、ＥＣＣフレームからパケットを抽出するパケットデコーダ（パケット抽出部）１６とを備える。
【００３８】
（ＥＣＣフレームエンコーダ）
ＥＣＣフレームエンコーダ１２は、ＥＣＣエンコード部１２０と、ＩＤＬＥシンボル付加部１２１とを備える。
【００３９】
ＥＣＣエンコード部１２０は、固定長フレーム形成部１２０ａ、８Ｂ１０Ｂ符号化部１２０ｂ、およびＥＣＣ付加部１２０ｃを備える。
【００４０】
固定長フレーム形成部１２０ａは、パケットエンコーダ１１によって生成されたパケットを分割またはダミーデータの付加により所定の長さ（例えば８バイト）のフレーム（固定長フレームという。）を形成する。
【００４１】
８Ｂ１０Ｂ符号化部１２０ｂは、固定長フレーム形成部１２０ａによって形成された固定長フレームを８Ｂ１０Ｂエンコード（ＤＣバランス変換）して８０ビットのフレームを形成する。なお、８Ｂ１０Ｂエンコードの他に、４Ｂ５Ｂ、６４Ｂ６６Ｂ等のＤＣバランス変換を用いてもよい。
【００４２】
ＥＣＣ付加部１２０ｃは、８Ｂ１０ＢエンコードされたフレームにＥＣＣを付加して１００ビットのＥＣＣフレームを作成する。ＥＣＣとしては、例えば、ハミング符号、マンチェスタ符号、リードソロモン符号等の公知の訂正符号を用いることができる。
【００４３】
ＩＤＬＥシンボル付加部１２１は、クロック補償シーケンスの際にＩＤＬＥシンボル（ＩＤＬＥ符号）を出力するものである。ここで、クロック補償シーケンスとは、ＥＥＣフレーム間に所定のシンボル（例えばアイドルシンボル）を含むシーケンスを挿入して受信タイミングを補正するためのものである。
【００４４】
（ＥＣＣフレームデコーダ）
ＥＣＣフレームデコータ１５は、ＩＤＬＥシンボルを検出するＩＤＬＥシンボル検出部１５０と、ＥＣＣデコード部１５１と、エラスティックバッファ・クロック補償処理部１５２と、ＩＤＬＥシンボル削除部１５３とを備える。
【００４５】
ＥＣＣデコード部１５１は、レシーバ１４からのパラレルデータに含まれるＥＣＣを用いて、ＥＣＣエラー検出／訂正を行うＥＣＣエラー検出／訂正部１５１ａと、ＥＣＣエラー検出／訂正後にＥＣＣを除去するＥＣＣ除去部１５１ｂと、ＥＣＣが除去された８０ビットのデータを６４ビットのデータに１０Ｂ８Ｂデコード処理を行う１０Ｂ８Ｂ復号化部１５１ｃとを備える。
【００４６】
（パケットの構成）
次に、パケットエンコーダ１１が生成するパケットについて図３、図４を参照して説明する。
【００４７】
図３は、パケットエンコーダ１１が生成するパケットの構成例を示す。パケット２００は全て「パケット構成」に示すように、１バイトのＳＯＰ（Start of Packet）で始まり、それにパケット本体が続き、１バイトのＥＯＰ（End of Packet）で終わる構成をとる。ＳＯＰ及びＥＯＰは、送信前に８Ｂ１０Ｂエンコードされ、特定のＫキャラクタに変換されるため、受信側で容易にパケットを抽出できるようになる。
【００４８】
パケット本体は、処理及び送信者に応じて、メモリライトリクエスト、メモリライトコンプリーション、メモリリードリクエスト、メモリリードコンプリーションのいずれかの形式をとる。
【００４９】
メモリライトリクエストは、ホストバスＩ／Ｆ２が、ホストコンピュータ１０１から書き込み要求を受け取った際に、ホストバスＩ／Ｆ２から発行されるパケットである。
【００５０】
メモリライトコンプリーションは、メモリコントローラ４が、ホストバスＩ／Ｆ２からメモリライトリクエストを受け取った場合に、メモリライトリクエストのアドレスフィールドで指定されたアドレスへ、データフィールドに格納されたデータを書き込んだ後、処理の完了を通知するために、メモリコントローラ４から発行されるパケットである。
【００５１】
メモリリードリクエストは、ホストバスＩ／Ｆ２が、ホストコンピュータ１０１から読み出し要求を受け取った際に、ホストバスＩ／Ｆ２から発行されるパケットである。
【００５２】
メモリリードコンプリーションは、メモリコントローラ４が、ホストバスＩ／Ｆ２からメモリライトリクエストを受け取った場合に、半導体メモリ５から、メモリリードリクエストのアドレスフィールドで指定されたアドレスのデータを読み出した後、処理が完了したことを通知すると共に、読み出したデータをデータフィールドに格納して、メモリコントローラ４から発行されるパケットである。
【００５３】
ヘッダは、４ビットのタイプと、４ビットのコンプリーションステータスとを合わせた１バイトで構成される。なお、コンプリーションステータスは、メモリライトコンプリーション及びメモリリードコンプリーションのヘッダの場合のみ有効であり、データ送受が正常に行われたかどうかを判定するために用いられる。
【００５４】
コンプリーションステータスは、予約フィールド、ＣフィールドおよびＵフィールドからなる。Ｕフィールドは、致命的なエラーを示し、ホストコンピュータ１０１にこのままでは処理が継続できないことを通知する。Ｃフィールドは、訂正可能なエラーを示し、ホストコンピュータ１０１に通知することで、例えば、訂正可能なメモリエラーを検出後に訂正データで再書き込みすることにより、訂正不可能なエラーに発展することを防ぐ。
【００５５】
図４は、タイプの意味と２進符号の割り当てを示す。メモリライトリクエスト、メモリライトコンプリーション、メモリリードリクエスト、メモリリードコンプリーションには、それぞれ２進符号の（1000)、(1100)、(0000)、(0100)が割り当てられる。
【００５６】
（ストレージシステムの全体の動作）
次に、ストレージシステム１００の全体の動作を説明する。ホストコンピュータ１０１が、半導体ディスク装置１０２に対してアクセスコマンドを発行すると、ホストバスＩ／Ｆ２は、ホストコンピュータ１０１からのコマンドを解釈し、データ伝送装置１を介してメモリコントローラ４に半導体メモリ５をアクセスするよう指示をする。
【００５７】
メモリコントローラ４は、指示を受けると、半導体メモリ５をアクセスし、その結果を再びデータ伝送装置１を介してホストバスＩ／Ｆ２に返す。ホストバスＩ／Ｆ２は、メモリコントローラ４からアクセス結果が返されると、ホストコンピュータ１０１に処理が終了したことを通知する。
【００５８】
（データ伝送装置の全体の動作）
（１）送信側の処理動作
次に、データ伝送装置１の送信側（データ送信装置１ａ）の処理動作を図５〜図９を参照して説明する。図５（ａ）〜（ｄ）は、シリアル伝送前のＥＣＣフレームエンコーダ１２における符号化の流れの一例を示す。
【００５９】
データ伝送装置１のパケットエンコーダ１１は、ホストバスＩ／Ｆ２を制御する制御部２０からの要求に応じたパケットを生成する。
【００６０】
ＥＣＣエンコード部１２０の固定長フレーム形成部１２０ａは、パケットエンコーダ１１によって生成されたパケットを分割またはダミーデータの付加により、図５（ａ）に示すように、８バイトの固定長フレーム２０１を形成する。８バイトの固定長フレーム２０１は、転送したいパケットがある／なしに関わらず、一定の周期で構成され、送出される。このとき、送りたいパケットがない場合は、ＮＯＰ２シンボル（受信側で無視されるシンボル）を詰めて８バイトを構成する。送りたいパケットがある場合は、これを含んだ８バイトを構成する。パケットが８バイトを超える場合は、最初の８バイトまでをまとめて処理し、次のタイミングで残りをやはり８バイトにまとめて処理する。
【００６１】
８Ｂ１０Ｂ符号化部１２０ｂは、固定長フレームを８Ｂ１０Ｂエンコードし、図５（ｂ）に示すように、８０ビットの固定長フレーム２０２を形成する。ここでは、シリアル伝送にＣＤＲ技術を用いるため、この８バイトをそれぞれ８Ｂ１０Ｂエンコードし、８０ビットに変換する。この時、ＳＯＰ、ＥＯＰ、ＮＯＰ２などの特殊なシンボルは、それぞれ対応するＫキャラクタに変換される。その特殊シンボルとＫキャラクタの対応関係を、図６に示す。
【００６２】
ＥＣＣ付加部１２０ｃは、８Ｂ１０Ｂエンコードされた８０ビットのフレームにＥＣＣを追加し、図５（ｃ）に示すように、ＥＣＣフレーム２０３を形成し、伝送時に１ビット誤りが発生しても受信側で訂正できるようにする。
【００６３】
図７は、ＥＣＣ付加部１２０ｃにより追加されるＥＣＣの一例を示す。８０ビットに対するＥＣＣは８ビットで十分であるが、これは８Ｂ１０Ｂエンコードの対象とはならないため、ＤＣバランスを考慮して反転した８ビットを合わせて追加する。この時、それぞれの８ビットに、図７に示すような２ビットを追加し、クロック補償シーケンスに用いるＫ２８．５シンボルと区別できるようにする。これを全て合わせた１００ビットを、以下「ＥＣＣフレーム」という。
【００６４】
図８は、ＥＣＣ付加部１２０ｃによって形成されるＥＣＣフレームの一例を示す。同図中、Ａ１〜Ａ４は、それぞれ１バイトのアドレスを示す。Ｄ１〜Ｄ２５６は、それぞれ１バイトのデータを示す。時間ｔのＥＣＣフレーム（ｔ）は、時間ｔに形成されたものを示す。ＥＣＣフレームには、ＥＣＣフレーム（ｔ）からＥＣＣフレーム（ｔ＋１）のように、１つのパケットの内容が２つのＥＣＣフレームに渡る場合もあり、ＥＣＣフレーム（ｔ＋１）のように、１つのＥＣＣフレームに複数のパケットの一部が含まれる場合もある。また、ＥＣＣフレーム（ｔ＋３）、ＥＣＣフレーム（ｔ＋ｋ）、およびＥＣＣフレーム（ｔ＋ｋ＋３５）のように、パケットが含まれない場合もある。ＥＣＣフレーム（ｔ＋ｋ＋１）、ＥＣＣフレーム（ｔ＋ｋ＋２）、ＥＣＣフレーム（ｔ＋ｋ＋３３）およびＥＣＣフレーム（ｔ＋ｋ＋３４）のように、１つのパケットが複数のＥＣＣフレームに渡る場合もある。
【００６５】
続いてＥＣＣ付加部１２０ｃは、ＥＣＣフレーム２０３を、図５（ｄ）に示すように、２０ビットずつ５回に分けてクロック毎にトランスミッタ１３に出力する。
【００６６】
図９は、図８のＥＣＣフレームを２０ビットずつ出力する様子を示す。トランスミッタ１３は、この２０ビットをパラレル／シリアル変換し、順次伝送路に出力する。
【００６７】
（２）受信側の処理動作
シリアル伝送後のデータ伝送装置１の受信側（データ受信装置１ｂ）における復号処理は、以上の逆の処理を行う。レシーバ１４は、伝送路から入力されたシリアルデータを、シリアル／パラレル変換し、２０ビットのパラレルデータとしてクロック毎にＥＣＣフレームデコーダ１５に出力する。
【００６８】
ＥＣＣフレームデコーダ１５のＥＣＣエラー検出／訂正部１５１ａでは、ＩＤＬＥシンボル検出部１５０を介して２０ビットのパラレルデータを受け取ると、それを５サイクル分まとめて１００ビットとし、これに含まれるＥＣＣを用いて、ＥＣＣエラー検出／訂正処理される。
【００６９】
その後、ＥＣＣ除去部１５１ｂでＥＣＣが除かれた８０ビットは、１０Ｂ８Ｂ復号化部１５１ｃにて８Ｂ１０Ｂデコード処理が施され、６４ビットが復元される。ＥＣＣフレームデコーダ１５は、復元された６４ビットの各８ビットから、ＮＯＰ１、ＮＯＰ２を削除し、残りをエラスティックバッファ・クロック補償処理部１５２およびＩＤＬＥシンボル削除部１５３を介してパケットデコーダ１６に送る。
【００７０】
（３）クロック補償シーケンス
データ伝送装置１の送信側と受信側にそれぞれに図示しないクロック発振器を設け、クロック発振器をリファレンスクロックとして用いている。しかし、同じ周波数のクロック発信器を用いたとしても発振器間にわずかな周波数偏差があるために、レシーバ１４のエラスティックバッファがオーバーフローまたはアンダーフローを起こす可能性がある。このため、レシーバ１４で認識可能な特別なＫキャラクタを割り当てたクロック補償シーケンスというデータ列を用いて、バッファ調整を行う。このシーケンスは、レシーバ１４内で認識され、バッファ調整のためにデータが増減されるため、ＥＣＣフレーム内に含めることはできない。そのため、必要に応じてＥＣＣフレーム間に埋め込む。つまり、このシーケンスは、ＥＣＣによるエラー訂正を適用することができない。
【００７１】
図１０は、クロック補償シーケンス挿入時のフレームの一例を示す。ＥＣＣフレームエンコーダ１２のＩＤＬＥ付加部１２１は、クロック補償シーケンス２１０を４０００サイクル毎に出力するよう制御される。１つのクロック補償シーケンス２１０は、２つのＩＤＬＥシンボル２１１を１サイクルとして連続する２サイクルから構成される。１サイクルの周期は、使用するトランシーバと、使用するリファレンス用のクロック発振器の周波数ばらつきにより規定される。クロック補償シーケンスを２サイクルで構成したのは、１サイクルに例え１ビット誤りが発生しても、ビット誤りが発生していないサイクルが少なくとも１つは残るようにするためである。これにより、１ビット誤りにより、致命的なエラスティックバッファのオーバーフローやアンダーフローが発生することはなくなる。
【００７２】
また、ＥＣＣエンコード部１２０は、ＩＤＬＥシンボル２１１を出力した後の最初のＥＣＣフレーム２０３’の先頭に、必ずＮＯＰ１シンボルを含めるようにする。これは、ＩＤＬＥシンボル２１１直後のデータにＩＤＬＥシンボル２１１とハミング距離が近いデータが配置されることを防ぐためである。
【００７３】
(３−１）クロック補償シーケンスの通常の動作
レシーバ１４に入力されたシリアルデータは、レシーバ１４内のシリアル／パラレル変換部でパラレルデータに変換され、ＥＣＣフレームデコーダ１５のＥＣＣデコード部１５１に入力される。ＥＣＣデコード部１５１でエラー訂正された後、８Ｂ１０Ｂデコードされたデータは、エラスティックバッファ・クロック補償処理部１５２に入力される。
【００７４】
エラスティックバッファ・クロック補償処理部１５２では、バッファ（ＦＩＦＯ）のハーフフル状態が維持されるよう、定期的にトランスミッタ１３から出力されるクロック補償シーケンス用シンボル（ＩＤＬＥシンボル）の削除または複製が行われる。
【００７５】
レシーバ１４、ＥＣＣデコード部１５１、及びエラスティックバッファの書き込み処理部はレシーバ１４で入力シリアルデータから抽出されたリカバリクロック（つまりトランスミッタ１３側のクロック）に同期させ、エラスティックバッファの読み出し処理部以降はローカルクロックに同期させる。これにより、送信側と受信側のクロック周波数偏差を吸収することができる。
【００７６】
エラスティックバッファ・クロック補償処理部１５２から出力されたデータは、ＩＤＬＥシンボル削除部１５３で、パケットに無関係なＩＤＬＥシンボルが削除された後、パケットデコーダ１６に入力される。
【００７７】
以上により、クロック補償シーケンス（ＩＤＬＥシンボル）のエラー訂正のための特別な処理は不要になり、通常のデータと同様に一括してＥＣＣデコード部１５１でエラー訂正することができる。
【００７８】
（３−２）クロック補償シーケンスにビット誤りが発生した場合の動作
図１１は、クロック補償シーケンスにビット誤りが発生した場合の対処フローの一例を示す。クロック補償シーケンスに１ビット誤りが発生すると、該当シーケンスは、レシーバ１４内ではクロック補償シーケンスとしては認識されず、そのままＥＣＣフレームデコーダ１５に渡される。
【００７９】
ＥＣＣフレームデコーダ１５は、レシーバ１４から２０ビットを受け取ると（Ｓ１）、ＩＤＬＥシンボル検出部１５０は、受信した２０ビットのうち、下位１０ビットまたは上位１０ビットがＩＤＬＥシンボルか否かを判断し（Ｓ２）、下位１０ビットまたは上位１０ビットがＩＤＬＥシンボルのとき（Ｓ２：Ｙｅｓ）、下位１０ビットおよび上位１０ビットの両方がＩＤＬＥシンボルか否かを判断し（Ｓ３）、下位１０ビットまたは上位１０ビットの両方がＩＤＬＥシンボルであるとき（Ｓ３：Ｙｅｓ）、受信した２０ビットはクロック補償シーケンスであると判断し、ＥＣＣデコード部１５１のタイミングを次の受信データがフレームの先頭になるように補正し（Ｓ４）、受信した２０ビットをＥＣＣデコード部１５１へ出力する（Ｓ５）。両方のＩＤＬＥシンボルは、ＩＤＬＥシンボル削除部１５３で削除される。
【００８０】
また、ＩＤＬＥシンボル検出部１５０は、受信した２０ビットのうち、上位１０ビットおよび下位１０ビットのいずれもがＩＤＬＥシンボルでないとき（Ｓ２：Ｎｏ）、ＥＣＣデコード部１５１のタイミングを補正せずに受信した２０ビットをＥＣＣデコード部１５１へ出力する（Ｓ５）。
【００８１】
また、ＩＤＬＥシンボル検出部１５０は、上位１０ビットおよび下位１０ビットのいずれかがＩＤＬＥシンボルであるが（Ｓ２：Ｙｅｓ）、両方がＩＤＬＥシンボルでないとき（Ｓ３：Ｎｏ）、（１）もう一方の１０ビットとＩＤＬＥシンボルとのハミング距離が１以下、すなわち両者の違いが１ビット以下であり、（２）ＩＤＬＥシンボルが受信されるべきタイミングであった場合に（Ｓ６：Ｙｅｓ）、この２０ビットはクロック補償シーケンスであると判断し、１ビットエラーを訂正し（Ｓ７）、ＥＣＣデコード部１５１のタイミングを次の受信データがフレームの先頭になるように補正して（Ｓ４）、ＥＣＣデコード部１５１へ出力する（Ｓ５）。
【００８２】
なお、上記条件のうち（２）の条件は、更に以下のいずれかの条件が成立するとき、成立したと判断してもよい。
（ａ）＜リンク初期化中＞
リンク初期化中は、まだ同期が取れていない可能性があるため、強制的に条件（２）を成立させる。
（ｂ）＜ＩＤＬＥ受信タイミング一致＞
４０００サイクル毎に一致するタイミングかどうかを判定する。すなわち、送信側と受信側で同期をとった後、一定のサイクルまでは、一致していると判断して、強制的に条件（２）を成立させる。
（ｃ）＜直前のクロックサイクルでＩＤＬＥシンボルを受信した場合＞
クロック補償シーケンスは、通常２つのサイクルが連続して送信され、またレシーバ１４で認識されると、エラスティックバッファの状態により更に複製されてＥＣＣフレームデコーダ１５に出力される可能性があるため、直前のクロックサイクルがクロック補償シーケンスであった場合は、次のサイクルもクロック補償シーケンスである可能性が高いため、強制的に条件（２）を成立させる。
【００８３】
以上の処理により、クロック補償シーケンスに１ビット誤りが発生しても問題なく訂正することができる。また、ＩＤＬＥシンボルの後には必ずＮＯＰ１シンボルが配置されるため、これが１ビット誤りにより変化してもクロック補償シーケンスと誤認識されることはない。なお、上述した図１１のステップＳ６の条件判断に代えて、ＩＤＬＥシンボルでない方の１０ビットとＩＤＬＥシンボルとのハミング距離が１以下、すなわち両者の違いが１ビット以下の場合に、Ｓ６：Ｙｅｓとし、Ｓ７の処理に進む対処フローとしてもよい。
【００８４】
図１２は、図１１のフローを実現するためのＩＤＬＥシンボル検出部１５０の構成の一例を示す。ＩＤＬＥシンボル検出部１５０は、第１乃至第４の比較器５０Ａ〜５０Ｄと、第１乃至第５のＡＮＤ回路５１Ａ〜５１Ｅと、第１および第２のＯＲ回路５２Ａ，５２Ｂと、クロックコレクションタイミング検出器５３と、第１および第２のマルチプレクサ（ＭＵＸ）５４Ａ，５４Ｂと、ＥＣＣフレームタイミング生成器５５とを有して構成されている。
【００８５】
第１の比較器５０Ａで上位１０ビットがＩＤＬＥシンボルか否かが判断され、第２の比較器５０Ｂで上位１０ビットとハミング距離が１ビット以下か否かが判断される。第３の比較器５０Ｃで下位１０ビットがＩＤＬＥシンボルか否かが判断され、第４の比較器５０Ｄで下位１０ビットとハミング距離が１ビット以下か否かが判断される。上位１０ビットおよび下位１０ビットが共にＩＤＬＥシンボルのとき、およびＩＤＬＥシンボルでない方の１０ビットとハミング距離が１ビット以下のときは、ＥＣＣフレームタイミング生成器５５からＩＤＬＥシンボルに基づくタイミング信号が出力される。１ビットエラー訂正の通知は、第４のＡＮＤ回路５１Ｄから出力される。
【００８６】
（クロック補償シーケンスの他の例）
図１３は、クロック補償シーケンスの他の例を示す図である。上記実施の形態では、ＥＣＣフレーム間にクロック補償シーケンスを挿入したが、図１３に示すように、ＥＣＣフレーム２０３に通常のデータと同様にＩＤＬＥシンボル２１１からなるクロック補償シーケンスを組み込んでもよい。これよっても、前述したのと同様に、エラー訂正が可能になる。エラー訂正後にエラスティックバッファに挿入されるため、ＩＤＬＥシンボル２１１は、上位１０ビットと下位１０ビットの１組でもよい。この構成によれば、エラー訂正前にＩＤＬＥシンボル２１１の検出をする必要がないため、直後にＩＤＬＥシンボル２１１とハミング距離が離れたデータを置く必要がない。
【００８７】
なお、上述のクロック補償シーケンスでは、２つのＩＤＬＥシンボルによってビット誤りに対応しているが、ＩＤＬＥシンボルの数は２つに限らず、３つ以上のＩＤＬＥシンボルを利用してビット誤りに対応してもよい。例えば、ＩＤＬＥ付加部１２１は４つのＩＤＬＥシンボル（各５ビット）を送信し、ＥＣＣフレームデコーダ１５では受信したシンボルの全てがＩＤＬＥシンボルであるか、少なくとも一部がＩＤＬＥシンボルに一致し且つＩＤＬＥシンボルに一致しない５ビットのＩＤＬＥシンボルとのハミング距離が１以下である場合に、受信した２０ビットはクロック保証シーケンスであると判断してＥＣＣでコードタイミング処理を実施する構成でもよい。
【００８８】
図１４は、１対多の通信を行う例を示す。例えば、システムを１つの無線通信放送装置３００と複数の無線通信受信端末３０１Ａ〜３０１Ｃとから構成する。
【００８９】
無線通信放送装置３００は、図２のデータ伝送装置１のうち送信側の機能のみを有するデータ伝送装置１ａを備える。無線通信受信端末３０１Ａ〜３０１Ｃは、図２のデータ伝送装置１のうち受信側の機能のみを有するデータ伝送装置１ｂを備える。同図に示すトランスミッタ１３およびレシーバ１４は、無線通信機能を有する。
【００９０】
このシステムによれば、エラー発生時に、受信側から送信側に再送要求をする必要がないので、一方的にデータを送受する応用例が考えられる。例えば、１つの無線通信放送装置３００から、複数の無線通信受信端末３０１Ａ〜３０１Ｃに同じ情報をブロードキャストするような応用例（デジタル音声データや動画像データなどの送受）が考えられる。
【００９１】
図１５は、多対多の通信を行う例を示す。１対多通信を拡張し、互いに送信部と受信部を設け、相互通信をする応用例が考えられる。例えば、システムを無線により相互に接続された複数の無線通信端末３０２Ａ〜３０２Ｄから構成する。
【００９２】
無線通信端末３０２Ａ〜３０２Ｄは、図２のデータ伝送装置１と同様に送信側および受信側の両方の機能を有するデータ伝送装置１を備える。
【００９３】
このシステムでは、無線通信端末３０２Ａ〜３０２Ｄが送信したパケットは、他の全ての無線通信端末３０２Ａ〜３０２Ｄで受信されるが、必要に応じて無線受信端末３０２Ａ〜３０２Ｄ内で取捨すればよい。このようにすれば、全ての端末同士が相互通信できる。例えば、無線ＬＡＮなどに応用することができる。
【図面の簡単な説明】
【００９４】
【図１】図１は、本発明の実施の形態に係るストレージシステムのブロック図である。
【図２】図２は、ホストバスＩ／Ｆに設けられたデータ伝送装置のブロック図である。
【図３】図３は、パケットエンコーダが生成するパケットの構成例を示す図である。
【図４】図４は、パケットのヘッダに含まれるタイプの意味と２進符号の割り当てを示す図である。
【図５】図５（ａ）〜（ｄ）は、シリアル伝送前のＥＣＣフレームエンコーダにおける符号化の流れの一例を示す図である。
【図６】図６は、特殊シンボルとＫキャラクタの対応を示す図である。
【図７】図７は、ＥＣＣ付加部により追加されるＥＣＣの一例を示す図である。
【図８】図８は、ＥＣＣフレームの一例を示す図である。
【図９】図９は、図８のＥＣＣフレームを２０ビットずつ出力する様子を示す図である。
【図１０】図１０は、クロック補償シーケンス挿入時のフレームの一例を示す図である。
【図１１】図１１は、クロック補償シーケンスにビット誤りが発生した場合の対処フローの一例を示す図である。
【図１２】図１２は、ＩＤＬＥシンボル検出部の構成の一例を示す図である。
【図１３】図１３は、クロック補償シーケンスの他の例を示す図である。
【図１４】図１４は、１対多の通信を行う例を示す図である。
【図１５】図１５は、多対多の通信を行う例を示す図である。
【符号の説明】
【００９５】
１  データ伝送装置
１ａ  データ送信装置
１ｂ  データ受信装置
２  ホストバスＩ／Ｆ
３  シリアル伝送路
４  メモリコントローラ
５  半導体メモリ
１０  データ伝送システム
１１  パケットエンコーダ
１２  ＥＣＣフレームエンコーダ
１３  トランスミッタ
１４  レシーバ
１５  ＥＣＣフレームデコーダ
１６  パケットデコーダ
２０  制御部
５０Ａ〜５０Ｄ  比較器
５１Ａ〜５１Ｅ  ＡＮＤ回路
５２Ａ，５２Ｂ  ＯＲ回路
５３  クロックコレクションタイミング検出器
５４Ａ，５４Ｂ  ＭＵＸ
５５  フレームタイミング生成器
１００  ストレージシステム
１０１  ホストコンピュータ
１０２  半導体ディスク装置
１２０  エンコード部
１２０ａ  固定長フレーム形成部
１２０ｂ  ８Ｂ１０Ｂ符号化部
１２０ｃ  ＥＣＣ付加部
１２１  ＩＤＬＥシンボル付加部
１５０  ＩＤＬＥシンボル検出部
１５１  ＥＣＣデコード部
１５１ａ  ＥＣＣエラー／訂正部
１５１ｂ  ＥＣＣ除去部
１５１ｃ  １０Ｂ８Ｂ復号化部
１５２  エラスティックバッファ・クロック補償処理部
１５３  ＩＤＬＥシンボル削除部
２００  パケット
２０１  固定長フレーム
２０２ 固定長フレーム
２０３  ＥＣＣフレーム
２０３’  クロック補償シーケンス直後のＥＣフレーム
２０４  出力データ
２１０  クロック補償シーケンス
２１１  ＩＤＬＥシンボル
３００  無線通信放送装置
３０１Ａ〜３０１Ｃ  無線通信受信端末
３０２Ａ〜３０２Ｄ  無線通信端末
【図１】
2008294757.tif 000003
【図２】
2008294757.tif 000004
【図３】
2008294757.tif 000005
【図４】
2008294757.tif 000006
【図５】
2008294757.tif 000007
【図６】
2008294757.tif 000008
【図７】
2008294757.tif 000009
【図８】
2008294757.tif 000010
【図９】
2008294757.tif 000011
【図１０】
2008294757.tif 000012
【図１１】
2008294757.tif 000013
【図１２】
2008294757.tif 000014
【図１３】
2008294757.tif 000015
【図１４】
2008294757.tif 000016
【図１５】
2008294757.tif 000017