(57)【特許請求の範囲】
【請求項１】
ビット単位の複数の送信データにより構成されたフレームを順次形成するフレーム形成部と、
前記フレーム形成部により順次形成された複数の前記フレームを時系列的に並列に配置したとき、前記複数のフレームに含まれる前記複数の送信データのうち所定の位置に配置された複数の送信データを算出元データとして誤り訂正符号を算出し、その算出した前記誤り訂正符号をビット単位の複数の分割データに分割して前記算出元データを含む前記複数のフレームとは異なる複数の前記フレームに付加する誤り訂正符号付加部と、
前記複数のフレームに前記誤り訂正符号が付加された誤り訂正符号付きフレームを伝送路を介して順次送信する送信部と、
前記伝送路を介して前記誤り訂正符号付きフレームを順次受信する受信部と、
前記受信部により順次受信された複数の前記誤り訂正符号付きフレームにそれぞれ含まれる前記複数の分割データから前記誤り訂正符号を取得し、その取得した前記誤り訂正符号に基づいて、前記算出元データに対して誤り検出及び訂正を行う誤り検出訂正部とを備えたデータ伝送装置。
【請求項２】
要求に応じたパケットを生成するパケット生成部と、
前記パケット生成部により生成された前記パケットを複数のビット単位の送信データに分割し、その分割した複数の前記送信データにより構成されたフレームを順次形成するフレーム形成部と、
前記フレーム形成部により順次形成された複数の前記フレームを時系列的に並列に配置したとき、前記複数のフレームに含まれる前記複数の送信データのうち所定の位置に配置された複数の送信データを算出元データとして誤り訂正符号を算出し、その算出した前記誤り訂正符号をビット単位の複数の分割データに分割して前記算出元データを含む前記複数のフレームとは異なる複数の前記フレームに付加する誤り訂正符号付加部と、
前記複数のフレームに前記誤り訂正符号が付加された誤り訂正符号付きフレームを伝送路を介して順次送信する送信部と、
前記伝送路を介して前記誤り訂正符号付きフレームを順次受信する受信部と、
前記受信部により順次受信された複数の前記誤り訂正符号付きフレームにそれぞれ含まれる前記複数の分割データから前記誤り訂正符号を取得し、その取得した前記誤り訂正符号に基づいて、前記算出元データに対して誤り検出及び訂正を行う誤り検出訂正部と、
前記誤り検出及び訂正が行われた前記誤り訂正符号付きフレームから前記誤り訂正符号を除去して前記パケットを抽出するパケット抽出部とを備えたデータ伝送装置。
【請求項３】
前記誤り訂正符号付加部は、前記所定の位置として斜め方向に配置された前記複数の送信データから前記誤り訂正符号を算出する請求項１又は２に記載のデータ伝送装置。
【請求項４】
前記誤り訂正符号付加部は、前記算出元データが含まれる前記複数のフレームが前記送信部により送信されてから所定の期間経過後に前記フレーム形成部により形成された複数のフレームに前記複数の分割データを付加する請求項１又は２に記載のデータ伝送装置。
【請求項５】
前記誤り訂正符号付加部は、前記算出元データが異なる複数の誤り訂正符号を算出し、その算出した前記複数の誤り訂正符号を複数の分割データにそれぞれ分割して前記複数のフレームに付加し、
前記誤り検出訂正部は、前記複数の誤り訂正符号に基づいて、前記複数の誤り訂正符号にそれぞれ対応する前記算出元データに対して誤り検出及び訂正を行う請求項１又は２に記載のデータ伝送装置。
【請求項６】
前記誤り訂正符号付加部は、前記所定の位置として複数の送信データのうち所定の間隔で配置された複数のフレームに含まれる前記複数の送信データから前記誤り訂正符号を算出する請求項１又は２に記載のデータ伝送装置。
【請求項７】
前記誤り訂正符号付加部は、前記フレーム形成部により形成された前記複数の前記フレームのうち所定の間隔で形成された前記複数のフレームに前記複数の分割データを付加する請求項１又は２に記載のデータ伝送装置。
【請求項８】
ｋ番目に形成するフレームとして、ｗ個のビット単位の送信データ｛Ｄ（ｋ，０），Ｄ（ｋ，１），…，Ｄ（ｋ，ｗ−１）｝により構成されたフレームを順次形成するフレーム形成部と、
前記フレーム形成部により形成された（ｋ−ｗ）番目から（ｋ−１）番目までのｗ個の前記フレームに含まれるｗ個の前記送信データ｛Ｄ（ｋ−ｗ，０），Ｄ（ｋ−ｗ＋１，１），…，Ｄ（ｋ−１，ｗ−１）｝を算出元データとして（ｋ）番目の誤り訂正符号を算出し、その算出した前記誤り訂正符号をｎ個のビット単位の分割データに分割し、その分割したｎ個の分割データを（ｋ）番目から（ｋ＋ｎ−１）番目までのｎ個の前記フレームにそれぞれ付加する訂正符号付加部と、
前記ｎ個のフレームに前記誤り訂正符号が付加された誤り訂正符号付きフレームを伝送路を介して順次送信する送信部と、
前記伝送路を介して前記誤り訂正符号付きフレームを順次受信する受信部と、
前記受信部により順次受信されたｎ個の前記誤り訂正符号付きフレームにそれぞれ含まれる前記ｎ個の分割データから前記（ｋ）番目の誤り訂正符号を取得し、その取得した前記誤り訂正符号に基づいて、前記算出元データに対して誤り検出及び訂正を行う誤り検出訂正部とを備えたデータ伝送装置。
【請求項９】
ビット単位の複数の送信データにより構成されたフレームを順次形成するフレーム形成部と、
前記フレーム形成部により順次形成された複数の前記フレームを時系列的に並列に配置したとき、前記複数のフレームに含まれる前記複数の送信データのうち所定の位置に配置された複数の送信データを算出元データとして誤り訂正符号を算出し、その算出した前記誤り訂正符号をビット単位の複数の分割データに分割して前記算出元データを含む前記複数のフレームとは異なる複数の前記フレームに付加する誤り訂正符号付加部と、
前記複数のフレームに前記誤り訂正符号が付加された誤り訂正符号付きフレームを伝送路を介して順次送信する送信部とを備えたデータ送信装置。
【請求項１０】
ビット単位の複数の送信データにより構成された複数のフレームに、前記複数のフレームを時系列的に並列に配置したとき、前記複数のフレームに含まれる前記複数の送信データのうち所定の位置に配置された複数の送信データを算出元データとして誤り訂正符号を算出し、その算出した前記誤り訂正符号をビット単位に分割した複数の分割データがそれぞれ付加された前記算出元データを含む前記複数のフレームとは異なる複数の誤り訂正符号付きフレームを順次受信する受信部と、
前記受信部により順次受信された複数の前記誤り訂正符号付きフレームにそれぞれ付加された複数の前記分割データから前記誤り訂正符号を取得し、その取得した前記誤り訂正符号に基づいて、前記算出元データに対して誤り検出及び訂正を行う誤り検出訂正部とを備えたデータ受信装置。
【請求項１１】
ビット単位の複数の送信データにより構成されたフレームを順次形成するフレーム形成部と、
前記フレーム形成部により順次形成された複数の前記フレームを時系列的に並列に配置したとき、前記複数のフレームに含まれる前記複数の送信データのうち所定の位置に配置された複数の送信データを算出元データとして誤り訂正符号を算出し、その算出した前記誤り訂正符号をビット単位の複数の分割データに分割して前記算出元データを含む前記複数のフレームとは異なる複数の前記フレームに付加する誤り訂正符号付加部と、
前記複数のフレームに前記誤り訂正符号が付加された誤り訂正符号付きフレームを順次送信する送信部と、
前記送信部に接続され、前記誤り訂正符号付きフレームを伝送する伝送路と、
前記伝送路を介して前記誤り訂正符号付きフレームを順次受信する受信部と、
前記受信部により順次受信された複数の前記誤り訂正符号付きフレームにそれぞれ含まれる前記複数の分割データから前記誤り訂正符号を取得し、その取得した前記誤り訂正符号に基づいて、前記算出元データに対して誤り検出及び訂正を行う誤り検出訂正部とを備えたデータ伝送システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ伝送装置、データ送信装置、データ受信装置及びデータ伝送システムに関する。
【背景技術】
【０００２】
送信するデータにパケット誤り訂正符号及びブロック誤り訂正符号を付加して送信するパケットベース通信システムが提案されている（例えば、特許文献１参照。）。
【０００３】
このパケットベース通信システムによれば、固定長のパケットにパケット誤り訂正符号を付加し、パケット誤り訂正符号が付加された複数のパケットからなるブロックにブロック誤り訂正符号を付加して送信する。そして、ブロック誤り訂正符号によりブロックにおける１ビットの誤りが訂正され、各パケット誤り訂正符号によりブロックに含まれる各パケットにおける１ビットの誤りが訂正される。
【特許文献１】特表２００５−５１２３５２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
本発明の目的は、１つのフレームで２ビット以上の誤りが発生しても、誤り訂正符号による誤り訂正を行うことができるデータ伝送装置、データ送信装置、データ受信装置及びデータ伝送システムを提供することにある。
【課題を解決するための手段】
【０００５】
本発明は、上記目的を達成するため、以下のデータ伝送装置、データ送信装置、データ受信装置及びデータ伝送システムを提供する。
【０００６】
［１］ビット単位の複数の送信データにより構成されたフレームを順次形成するフレーム形成部と、
前記フレーム形成部により順次形成された複数の前記フレームを時系列的に並列に配置したとき、前記複数のフレームに含まれる前記複数の送信データのうち所定の位置に配置された複数の送信データを算出元データとして誤り訂正符号を算出し、その算出した前記誤り訂正符号をビット単位の複数の分割データに分割して前記算出元データを含む前記複数のフレームとは異なる複数の前記フレームに付加する誤り訂正符号付加部と、
前記複数のフレームに前記誤り訂正符号が付加された誤り訂正符号付きフレームを伝送路を介して順次送信する送信部と、
前記伝送路を介して前記誤り訂正符号付きフレームを順次受信する受信部と、
前記受信部により順次受信された複数の前記誤り訂正符号付きフレームにそれぞれ含まれる前記複数の分割データから前記誤り訂正符号を取得し、その取得した前記誤り訂正符号に基づいて、前記算出元データに対して誤り検出及び訂正を行う誤り検出訂正部とを備えたデータ伝送装置。
【０００７】
［２］要求に応じたパケットを生成するパケット生成部と、
前記パケット生成部により生成された前記パケットを複数のビット単位の送信データに分割し、その分割した複数の前記送信データにより構成されたフレームを順次形成するフレーム形成部と、
前記フレーム形成部により順次形成された複数の前記フレームを時系列的に並列に配置したとき、前記複数のフレームに含まれる前記複数の送信データのうち所定の位置に配置された複数の送信データを算出元データとして誤り訂正符号を算出し、その算出した前記誤り訂正符号をビット単位の複数の分割データに分割して前記算出元データを含む前記複数のフレームとは異なる複数の前記フレームに付加する誤り訂正符号付加部と、
前記複数のフレームに前記誤り訂正符号が付加された誤り訂正符号付きフレームを伝送路を介して順次送信する送信部と、
前記伝送路を介して前記誤り訂正符号付きフレームを順次受信する受信部と、
前記受信部により順次受信された複数の前記誤り訂正符号付きフレームにそれぞれ含まれる前記複数の分割データから前記誤り訂正符号を取得し、その取得した前記誤り訂正符号に基づいて、前記算出元データに対して誤り検出及び訂正を行う誤り検出訂正部と、
前記誤り検出及び訂正が行われた前記誤り訂正符号付きフレームから前記誤り訂正符号を除去して前記パケットを抽出するパケット抽出部とを備えたデータ伝送装置。
【０００８】
［３］前記誤り訂正符号付加部は、前記所定の位置として斜め方向に配置された前記複数の送信データから前記誤り訂正符号を算出する前記［１］又は［２］に記載のデータ伝送装置。
【０００９】
［４］前記誤り訂正符号付加部は、前記算出元データが含まれる前記複数のフレームが前記送信部により送信されてから所定の期間経過後に前記フレーム形成部により形成された複数のフレームに前記複数の分割データを付加する前記［１］又は［２］に記載のデータ伝送装置。
【００１０】
［５］前記誤り訂正符号付加部は、前記算出元データが異なる複数の誤り訂正符号を算出し、その算出した前記複数の誤り訂正符号を複数の分割データにそれぞれ分割して前記複数のフレームに付加し、前記誤り検出訂正部は、前記複数の誤り訂正符号に基づいて、前記複数の誤り訂正符号にそれぞれ対応する前記算出元データに対して誤り検出及び訂正を行う前記［１］又は［２］に記載のデータ伝送装置。
【００１１】
［６］前記誤り訂正符号付加部は、前記所定の位置として複数の送信データのうち所定の間隔で配置された複数のフレームに含まれる前記複数の送信データから前記誤り訂正符号を算出する前記［１］又は［２］に記載のデータ伝送装置。
【００１２】
［７］前記誤り訂正符号付加部は、前記フレーム形成部により形成された前記複数の前記フレームのうち所定の間隔で形成された前記複数のフレームに前記複数の分割データを付加する前記［１］又は［２］に記載のデータ伝送装置。
【００１３】
［８］ｋ番目に形成するフレームとして、ｗ個のビット単位の送信データ｛Ｄ（ｋ，０），Ｄ（ｋ，１），…，Ｄ（ｋ，ｗ−１）｝により構成されたフレームを順次形成するフレーム形成部と、
前記フレーム形成部により形成された（ｋ−ｗ）番目から（ｋ−１）番目までのｗ個の前記フレームに含まれるｗ個の前記送信データ｛Ｄ（ｋ−ｗ，０），Ｄ（ｋ−ｗ＋１，１），…，Ｄ（ｋ−１，ｗ−１）｝を算出元データとして（ｋ）番目の誤り訂正符号を算出し、その算出した前記誤り訂正符号をｎ個のビット単位の分割データに分割し、その分割したｎ個の分割データを（ｋ）番目から（ｋ＋ｎ−１）番目までのｎ個の前記フレームにそれぞれ付加する訂正符号付加部と、
前記ｎ個のフレームに前記誤り訂正符号が付加された誤り訂正符号付きフレームを伝送路を介して順次送信する送信部と、
前記伝送路を介して前記誤り訂正符号付きフレームを順次受信する受信部と、
前記受信部により順次受信されたｎ個の前記誤り訂正符号付きフレームにそれぞれ含まれる前記ｎ個の分割データから前記（ｋ）番目の誤り訂正符号を取得し、その取得した前記誤り訂正符号に基づいて、前記算出元データに対して誤り検出及び訂正を行う誤り検出訂正部とを備えたデータ伝送装置。
【００１４】
［９］ビット単位の複数の送信データにより構成されたフレームを順次形成するフレーム形成部と、
前記フレーム形成部により順次形成された複数の前記フレームを時系列的に並列に配置したとき、前記複数のフレームに含まれる前記複数の送信データのうち所定の位置に配置された複数の送信データを算出元データとして誤り訂正符号を算出し、その算出した前記誤り訂正符号をビット単位の複数の分割データに分割して前記算出元データを含む前記複数のフレームとは異なる複数の前記フレームに付加する誤り訂正符号付加部と、
前記複数のフレームに前記誤り訂正符号が付加された誤り訂正符号付きフレームを伝送路を介して順次送信する送信部とを備えたデータ送信装置。
【００１５】
［１０］ビット単位の複数の送信データにより構成された複数のフレームに、前記複数のフレームを時系列的に並列に配置したとき、前記複数のフレームに含まれる前記複数の送信データのうち所定の位置に配置された複数の送信データを算出元データとして誤り訂正符号を算出し、その算出した前記誤り訂正符号をビット単位に分割した複数の分割データがそれぞれ付加された前記算出元データを含む前記複数のフレームとは異なる複数の誤り訂正符号付きフレームを順次受信する受信部と、
前記受信部により順次受信された複数の前記誤り訂正符号付きフレームにそれぞれ付加された複数の前記分割データから前記誤り訂正符号を取得し、その取得した前記誤り訂正符号に基づいて、前記算出元データに対して誤り検出及び訂正を行う誤り検出訂正部とを備えたデータ受信装置。
【００１６】
［１１］ビット単位の複数の送信データにより構成されたフレームを順次形成するフレーム形成部と、
前記フレーム形成部により順次形成された複数の前記フレームを時系列的に並列に配置したとき、前記複数のフレームに含まれる前記複数の送信データのうち所定の位置に配置された複数の送信データを算出元データとして誤り訂正符号を算出し、その算出した前記誤り訂正符号をビット単位の複数の分割データに分割して前記算出元データを含む前記複数のフレームとは異なる複数の前記フレームに付加する誤り訂正符号付加部と、
前記複数のフレームに前記誤り訂正符号が付加された誤り訂正符号付きフレームを順次送信する送信部と、
前記送信部に接続され、前記誤り訂正符号付きフレームを伝送する伝送路と、
前記伝送路を介して前記誤り訂正符号付きフレームを順次受信する受信部と、
前記受信部により順次受信された複数の前記誤り訂正符号付きフレームにそれぞれ含まれる前記複数の分割データから前記誤り訂正符号を取得し、その取得した前記誤り訂正符号に基づいて、前記算出元データに対して誤り検出及び訂正を行う誤り検出訂正部とを備えたデータ伝送システム。
【発明の効果】
【００１７】
請求項１に係るデータ伝送装置によれば、１つのフレームで２ビット以上の誤りが発生しても、誤り訂正符号による誤り訂正を行うことができる。
【００１８】
請求項２に係るデータ伝送装置によれば、１つのフレーム内で２ビット以上の誤りが発生しても、誤り訂正符号による誤り訂正を行うことができる。
【００１９】
請求項３に係るデータ伝送装置によれば、本構成を有していない場合に比較して、誤り訂正符号付加部及び誤り検出訂正部の構成を簡略化することができる。
【００２０】
請求項４に係るデータ伝送装置によれば、一定期間内に複数のフレームで２ビット以上の誤りがそれぞれ発生しても、誤り訂正符号による誤り訂正を行うことができる場合がある。
【００２１】
請求項５に係るデータ伝送装置によれば、算出元データに２ビット以上の誤りが含まれている場合でも、他の算出元データにより算出された誤り訂正符号により誤り訂正を行うことができる。
【００２２】
請求項６に係るデータ伝送装置によれば、本構成を有していない場合に比較して、バースト誤りに対する誤り訂正能力を向上することができる。
【００２３】
請求項７に係るデータ伝送装置によれば、本構成を有していない場合に比較して、バースト誤りに対する誤り訂正能力を向上することができる。
【００２４】
請求項８に係るデータ伝送装置によれば、本構成を有していない場合に比較して、誤り訂正符号付加部及び誤り検出訂正部の構成を簡略化することができる。
【００２５】
請求項９に係るデータ送信装置によれば、１つのフレームで２ビット以上の誤りが発生しても、誤り訂正符号による誤り訂正を行うことができる。
【００２６】
請求項１０に係るデータ受信装置によれば、１つのフレームで２ビット以上の誤りが発生しても、誤り訂正符号による誤り訂正を行うことができる。
【００２７】
請求項１１に係るデータ伝送システムによれば、１つのフレームで２ビット以上の誤りが発生しても、誤り訂正符号による誤り訂正を行うことができる。
【発明を実施するための最良の形態】
【００２８】
［第１の実施の形態］
本発明の第１の実施の形態に係るデータ伝送装置、データ送信装置、データ受信装置及びデータ伝送システムを適用したストレージシステムについて説明する。
【００２９】
（ストレージシステムの構成）
図１は、本発明の第１の実施の形態に係るストレージシステムの概略構成の一例を示す全体図である。このストレージシステム１００は、ホストコンピュータ１０１と、半導体ディスク装置１０２とから構成されている。
【００３０】
半導体ディスク装置１０２は、ホストコンピュータ１０１に接続されたホストバスインタフェース（Ｉ／Ｆ）２と、ホストバスＩ／Ｆ２にＰＣＩ  Ｅｘｐｒｅｓｓ（登録商標）等のシリアル伝送路３によって接続されたメモリコントローラ４と、データが格納される半導体メモリ５とを備える。
【００３１】
ホストバスＩ／Ｆ２及びメモリコントローラ４は、それぞれに設けられた高速シリアル伝送技術を応用したデータ伝送装置１Ａにより接続されている。データ伝送装置１Ａは、データ送信装置とデータ受信装置とから構成され、ホストバスＩ／Ｆ２及びメモリコントローラ４の一方のデータ送信装置と、シリアル伝送路３と、一方のデータ受信装置とからデータ伝送システム１０を構成している。
【００３２】
ホストバスＩ／Ｆ２は、ホストコンピュータ１０１から発行されたコマンドを解釈して、データ伝送装置１Ａを介してメモリコントローラ４に半導体メモリ５にアクセスするよう指示をする。また、ホストバスＩ／Ｆ２は、メモリコントローラ４からアクセス結果が返されると、ホストコンピュータ１０１に処理が終了したことを通知し、ホストコンピュータ１０１から発行されたコマンドに応じて、データを返信する。
【００３３】
メモリコントローラ４は、ホストバスＩ／Ｆ２からの指示を受けると、半導体メモリ５にアクセスし、その結果をデータ伝送装置１Ａを介してホストバスＩ／Ｆ２に返す。
【００３４】
（データ伝送装置の構成）
図２は、ホストバスＩ／Ｆ２に設けられたデータ伝送装置１Ａの概略構成の一例を示すブロック図である。メモリコントローラ４に設けられたデータ伝送装置１Ａも、図２と同様に構成されているので、その説明を省略する。データ伝送装置１Ａは、前述したようにデータ送信装置１ａと、データ受信装置１ｂとから構成されている。
【００３５】
データ送信装置１ａは、ホストバスＩ／Ｆ２を制御する制御部２０からの要求に応じたパケットを生成するパケットエンコーダ（パケット生成部）１１と、生成されたパケットに誤り訂正符号（Error Correcting Code、以下「ＥＣＣ」と略す。）を付加したＥＣＣフレーム（誤り訂正符号付きフレーム）を生成するＥＣＣフレームエンコーダ１２Ａと、ＥＣＣフレームをパラレルデータからシリアルデータに変換して送出するトランスミッタ（送信部）１３とを備える。
【００３６】
データ受信装置１ｂは、受信したＥＣＣフレームをシリアルデータからパラレルデータに変換するレシーバ（受信部）１４と、ＥＣＣに基づいてエラー検出及び訂正を行うＥＣＣフレームデコーダ１５Ａと、ＥＣＣフレームからパケットを抽出するパケットデコーダ（パケット抽出部）１６とを備える。
【００３７】
（ＥＣＣフレームエンコーダ）
ＥＣＣフレームエンコーダ１２Ａは、固定長フレーム形成部１２０、８Ｂ１０Ｂ符号化部１２１、ＥＣＣ付加部１２２Ａ、及び送信フレーム記憶部１２３を備える。
【００３８】
固定長フレーム形成部１２０は、パケットエンコーダ１１によって生成されたパケットを分割またはダミーデータの付加により、複数の１ビットデータにより構成された所定のビット数のフレーム（固定長フレームという。）を順次形成する。なお、固定長フレームに含まれる１ビットデータは、送信データを構成するものである。
【００３９】
８Ｂ１０Ｂ符号化部１２１は、固定長フレーム形成部１２０によって形成された、例えば、６４ビットの固定長フレームを８Ｂ１０Ｂ変換によるエンコード処理（ＤＣバランス変換）を行い、８０ビットの固定長フレームを形成する。なお、８Ｂ１０Ｂによるエンコード処理の他に、４Ｂ５Ｂ変換、６４Ｂ６６Ｂ変換等のＤＣバランス変換を用いてもよい。
【００４０】
ＥＣＣ付加部１２２Ａは、８Ｂ１０Ｂ符号化部１２１によるエンコード処理が行われた複数の固定長フレームを時系列的に並列に配置したとき、それら複数の固定長フレームに含まれる複数の１ビットデータのうち、所定の位置に配置された複数の１ビットデータをＥＣＣ算出元データとしてＥＣＣを算出する。なお、所定の位置の詳細については後述する。
【００４１】
そして、ＥＣＣ付加部１２２Ａは、その算出したＥＣＣを複数の１ビットデータに分割して複数の固定長フレームに付加する。従って、１つの固定長フレームには、複数のＥＣＣからそれぞれ分割された複数の１ビットデータが結合されたＥＣＣ結合データが付加される。なお、ＥＣＣから分割された１ビットデータは、分割データを構成するものである。
【００４２】
また、ＥＣＣ付加部１２２Ａにより算出されるＥＣＣには、例えば、ハミング符号、マンチェスタ符号、リードソロモン符号等の公知の誤り訂正符号を用いることができる。
【００４３】
送信フレーム記憶部１２３には、ＥＣＣフレームエンコーダ１２Ａにより生成された複数のＥＣＣフレーム及びＥＣＣが時系列的に記憶されている。
【００４４】
（ＥＣＣフレームデコーダ）
ＥＣＣフレームデコーダ１５Ａは、レシーバ１４からのパラレルデータからＥＣＣフレームを順次受信し、受信した複数のＥＣＣフレームに含まれるＥＣＣに基づいて、そのＥＣＣに対応するＥＣＣ算出元データに対してエラー検出／訂正を行うＥＣＣエラー検出／訂正部１５０Ａと、ＥＣＣフレームからＥＣＣ結合データを除去するＥＣＣ除去部１５１と、ＥＣＣ結合データが除去された固定長フレームに対して１０Ｂ８Ｂによるデコード処理を行う１０Ｂ８Ｂ復号化部１５２と、受信した複数のＥＣＣフレームを記憶する受信フレーム記憶部１５３とを備える。
【００４５】
（パケットの構成）
次に、パケットエンコーダ１１が生成するパケットについて図３、図４を参照して説明する。
【００４６】
図３は、パケットエンコーダ１１が生成するパケットの構成例を示す図である。パケット２００は全て「パケット構成」に例示するように、１バイトのＳＯＰ（Start of Packet）で始まり、それにパケット本体が続き、１バイトのＥＯＰ（End of Packet）で終わる構成をとる。ＳＯＰ及びＥＯＰは、送信前に８Ｂ１０Ｂ変換によるエンコード処理が行われ、特定のＫキャラクタに変換されるため、受信側で容易にパケットを抽出できるように構成されている。
【００４７】
パケット本体は、ホストコンピュータ１０１から発行されたコマンド及びパケットを送信する送信元に応じて、メモリライトリクエスト、メモリライトコンプリーション、メモリリードリクエスト、メモリリードコンプリーションのいずれかのタイプをとる。
【００４８】
メモリライトリクエストは、ホストバスＩ／Ｆ２が、ホストコンピュータ１０１から書き込み要求を受け取った際に、ホストバスＩ／Ｆ２から発行されるパケットである。
【００４９】
メモリライトコンプリーションは、メモリコントローラ４が、ホストバスＩ／Ｆ２からメモリライトリクエストを受け取った場合に、メモリライトリクエストのアドレスフィールドで指定されたアドレスへ、データフィールドに格納されたデータを書き込んだ後、処理の完了を通知するために、メモリコントローラ４から発行されるパケットである。
【００５０】
メモリリードリクエストは、ホストバスＩ／Ｆ２が、ホストコンピュータ１０１から読み出し要求を受け取った際に、ホストバスＩ／Ｆ２から発行されるパケットである。
【００５１】
メモリリードコンプリーションは、メモリコントローラ４が、ホストバスＩ／Ｆ２からメモリライトリクエストを受け取った場合に、半導体メモリ５から、メモリリードリクエストのアドレスフィールドで指定されたアドレスのデータを読み出した後、処理が完了したことを通知すると共に、読み出したデータをデータフィールドに格納して、メモリコントローラ４から発行されるパケットである。
【００５２】
ヘッダは、４ビットのタイプと、４ビットのコンプリーションステータスとを合わせた１バイトで構成される。なお、コンプリーションステータスは、メモリライトコンプリーション及びメモリリードコンプリーションのヘッダの場合のみ有効であり、データ送受が正常に行われたかどうかを判定するために用いられる。
【００５３】
コンプリーションステータスは、予約フィールド、Ｃフィールド及びＵフィールドからなる。Ｕフィールドは、致命的なエラーを示し、ホストコンピュータ１０１にこのままでは処理が継続できないことを通知する。Ｃフィールドは、訂正可能なエラーを検出したことをホストコンピュータ１０１に通知する。
【００５４】
図４は、パケットのヘッダに含まれるタイプの意味と２進符号の割り当てを例示する。メモリライトリクエスト、メモリライトコンプリーション、メモリリードリクエスト、メモリリードコンプリーションには、それぞれ２進符号の（1000)、(1100)、(0000)、(0100)が割り当てられる。
【００５５】
（ストレージシステムの全体の動作）
次に、ストレージシステム１００の全体の動作を説明する。ホストコンピュータ１０１が、半導体ディスク装置１０２に対してコマンドを発行すると、ホストバスＩ／Ｆ２は、ホストコンピュータ１０１からのコマンドを解釈し、データ伝送装置１Ａを介してメモリコントローラ４に対して半導体メモリ５にアクセスするよう指示をする。
【００５６】
メモリコントローラ４は、その指示を受けると、半導体メモリ５にアクセスし、その結果を再びデータ伝送装置１Ａを介してホストバスＩ／Ｆ２に返す。ホストバスＩ／Ｆ２は、メモリコントローラ４からアクセス結果が返されると、ホストコンピュータ１０１に処理が終了したことを通知し、ホストコンピュータ１０１から発行されたコマンドに応じて、データを返信する。
【００５７】
（データ伝送装置の全体の動作）
（１）送信側の処理動作
次に、データ伝送装置１Ａの送信側（データ送信装置１ａ）の処理動作を図５〜図９を参照して説明する。図５は、シリアル伝送前のＥＣＣフレームエンコーダ１２Ａにおける符号化の流れの一例を示す図である。
【００５８】
データ伝送装置１Ａのパケットエンコーダ１１は、ホストバスＩ／Ｆ２を制御する制御部２０からの要求に応じたパケットを生成する。
【００５９】
ＥＣＣフレームエンコーダ１２Ａの固定長フレーム形成部１２０は、パケットエンコーダ１１によって生成されたパケットを分割またはダミーデータの付加により、図５（ａ）に例示するように、例えば、６４ビットの固定長フレーム２０１を形成する。
【００６０】
６４ビットの固定長フレーム２０１は、送信すべきパケットの有無に関わらず、一定の周期で構成され送出される。このとき、送信すべきパケットがない場合は、ＮＯＰシンボル（受信側で無視されるシンボル）を詰めて、６４ビットを構成する。送信すべきパケットがある場合は、これを含んだ６４ビットを構成する。なお、１つのパケットのサイズが６４ビットを超える場合は、最初の６４ビットまでを処理した後、次のタイミングで残りのパケットにおける次の６４ビットまでを処理する。
【００６１】
８Ｂ１０Ｂ符号化部１２１は、固定長フレームを８Ｂ１０Ｂ変換によるエンコード処理を行い、図５（ｂ）に例示するように、８０ビットの固定長フレーム２０２を形成する。この時、ＳＯＰ、ＥＯＰ、ＮＯＰなどの特殊なシンボルは、それぞれ対応するＫキャラクタに変換される。その特殊シンボルとＫキャラクタの対応関係を図６に例示する。
【００６２】
次に、ＥＣＣ付加部１２２Ａは、８Ｂ１０Ｂ変換によるエンコード処理が行われた８０ビットのフレームにＥＣＣ付加データ２０４を付加し、図５（ｃ）に例示するように、ＥＣＣフレーム２０３を生成する。
【００６３】
図７は、固定長フレームに付加されるＥＣＣ付加データ２０４の一例を示す図である。ＥＣＣ付加データ２０４は、８Ｂ１０Ｂ変換によるエンコード処理の対象とはならないため、８ビットのＥＣＣ結合データ２０６とともに、ＤＣバランスを考慮して反転した８ビットを合わせて追加する。さらに、それぞれの８ビットに、図７に例示するような２ビットを追加し、これらを全て合わせた１００ビットを、以下「ＥＣＣフレーム」という。
【００６４】
次に、ＥＣＣを算出する方法と、その算出されたＥＣＣに基づいてＥＣＣフレーム２０３にＥＣＣ結合データ２０６を付加する方法について、図８を参照して説明する。
【００６５】
図８は、複数のＥＣＣフレームを時系列的に並列に配置した状態の一例を示す図である。この図８において、ＥＣＣフレーム（ｋ）は、時刻（ｋ）に生成されるＥＣＣフレームを表し、Ｄ（ｋ，０）〜Ｄ（ｋ，７９）は、ＥＣＣフレーム（ｋ）に含まれる８０ビットの固定長フレームを構成する各１ビットデータを表す。また、Ｅ（ｋ，０）〜Ｅ（ｋ，７）は、ＥＣＣフレーム（ｋ）に付加される８ビットのＥＣＣ結合データ（ｋ）２０６Ａを構成する各１ビットデータを表す。
【００６６】
時刻（ｋ）において、送信フレーム記憶部１２３には、送信済みのＥＣＣフレームとして、固定長フレームのビット数である８０個、すなわち、時刻（ｋ−８０）から時刻（ｋ−１）までの間に形成された８０個のＥＣＣフレーム（ｋ−８０）〜ＥＣＣフレーム（ｋ−１）が記憶されている。また、同様の時刻（ｋ）において、送信フレーム記憶部１２３には、ＥＣＣのビット数である８から１を減じた数の７個、すなわち、時刻（ｋ−７）から時刻（ｋ−１）までの間に算出された７個のＥＣＣ（ｋ−７）〜ＥＣＣ（ｋ−１）も記憶されている。
【００６７】
そして、ＥＣＣ付加部１２２Ａは、送信フレーム記憶部１２３に記憶されている８０個のＥＣＣフレーム（ｋ−８０）〜ＥＣＣフレーム（ｋ−１）を時系列的に並列に配置し、それら８０個のＥＣＣフレームに含まれる複数の１ビットデータのうち、所定の位置として斜め方向に配置された複数の１ビットデータ、すなわち、図８に例示するＥＣＣ（ｋ）算出元データ２１０Ａに含まれる８０個の１ビットデータ｛Ｄ（ｋ−８０，０）、Ｄ（ｋ−７９，１）、…、Ｄ（ｋ−２，７８）、Ｄ（ｋ−１，７９）｝からＥＣＣ（ｋ）を算出する。
【００６８】
次に、ＥＣＣ付加部１２２Ａは、送信フレーム記憶部１２３に記憶されている７個のＥＣＣ（ｋ−７）〜ＥＣＣ（ｋ−１）とその算出したＥＣＣ（ｋ）とからなる計８個のＥＣＣに含まれる複数の１ビットデータのうち、図８に例示するＥＣＣ結合データ（ｋ）２０６Ａとなるように、各ＥＣＣに含まれる８個の１ビットデータ｛Ｅ（ｋ，０）、Ｅ（ｋ，１）、…、Ｅ（ｋ，６）、Ｅ（ｋ，７）｝を結合することにより、ＥＣＣ結合データ（ｋ）２０６Ａを生成する。
【００６９】
ここで、時刻（ｋ）において算出されたＥＣＣ（ｋ）２２０Ａは、８個の１ビットデータ｛Ｅ（ｋ，０）、Ｅ（ｋ＋１，１）、…、Ｅ（ｋ＋６，６）、Ｅ（ｋ＋７，７）｝により構成され、時刻（ｋ−１）において算出されたＥＣＣ（ｋ−１）は、８個の１ビットデータ｛Ｅ（ｋ−１，０）、Ｅ（ｋ，１）、…、Ｅ（ｋ＋５，６）、Ｅ（ｋ＋６，７）｝により構成されたデータである。
【００７０】
従って、ＥＣＣ（ｋ）２２０Ａを構成する８個の１ビットデータ｛Ｅ（ｋ，０）、Ｅ（ｋ＋１，１）、…、Ｅ（ｋ＋６，６）、Ｅ（ｋ＋７，７）｝は、ＥＣＣフレーム（ｋ）〜ＥＣＣフレーム（ｋ＋７）に含まれる８個のＥＣＣ結合データに分散されて付加されている。
【００７１】
そして、ＥＣＣ付加部１２２Ａは、その生成したＥＣＣ結合データ（ｋ）２０６Ａを固定長フレームに付加し、ＥＣＣフレーム（ｋ）を形成する。
【００７２】
図９は、パケットが埋め込まれた複数のＥＣＣフレームの一例を示す図である。図９は、図８におけるＥＣＣフレームの各１ビットデータに対して、図３に例示するパケット構成に基づくパケットが実際に埋め込まれており、Ａ１〜Ａ４は、それぞれ１バイトのアドレスを表し、Ｄ１〜Ｄ２５６は、それぞれ１バイトのデータを表す。また、ＥＣＣフレーム（ｔ）は、時刻（ｔ）に生成されたＥＣＣフレームを表す。
【００７３】
ＥＣＣフレームには、ＥＣＣフレーム（ｔ）からＥＣＣフレーム（ｔ＋１）のように、１つのパケットの内容が２つのＥＣＣフレームに渡る場合もあり、ＥＣＣフレーム（ｔ＋１）のように、１つのＥＣＣフレームに複数のパケットの一部が含まれる場合もある。また、ＥＣＣフレーム（ｔ＋３）、ＥＣＣフレーム（ｔ＋ｋ）、及びＥＣＣフレーム（ｔ＋ｋ＋３５）のように、パケットが含まれない場合もある。また、ＥＣＣフレーム（ｔ＋ｋ＋１）〜ＥＣＣフレーム（ｔ＋ｋ＋３４）のように、１つのパケットが複数のＥＣＣフレームに渡る場合もある。
【００７４】
次に、ＥＣＣフレームエンコーダ１２Ａは、生成したＥＣＣフレームを、図５（ｄ）に例示する出力データ２０５のように、２０ビットずつ５回に分けてクロック毎にトランスミッタ１３に送る。
【００７５】
また、ＥＣＣフレームエンコーダ１２Ａは、上記で算出したＥＣＣ（ｋ）と生成したＥＣＣフレーム（ｋ）とを送信フレーム記憶部１２３に送り、送信フレーム記憶部１２３には、ＥＣＣ（ｋ）及びＥＣＣフレーム（ｋ）が時系列的に記憶される。なお、送信フレーム記憶部１２３に記憶されたＥＣＣ及びＥＣＣフレームのうち、ＥＣＣの算出やＥＣＣフレームの生成に不要となったデータは、順次消去してもよい。
【００７６】
そして、トランスミッタ１３は、ＥＣＣフレームエンコーダ１２Ａから送られた２０ビットのデータをパラレル／シリアル変換し、順次伝送路に出力する。
【００７７】
（２）受信側の処理動作
次に、シリアル伝送後のデータ伝送装置１Ａの受信側（データ受信装置１ｂ）における復号処理について説明する。
【００７８】
レシーバ１４は、伝送路から入力されたシリアルデータを、シリアル／パラレル変換し、２０ビットのパラレルデータとしてクロック毎にＥＣＣフレームデコーダ１５Ａに送る。
【００７９】
次に、ＥＣＣフレームデコーダ１５ＡのＥＣＣエラー検出／訂正部１５０Ａは、２０ビットのパラレルデータを受け取ると、それを５サイクル分まとめて１００ビットとし、これを１つのＥＣＣフレームとして受信する。
【００８０】
次に、ＥＣＣエラー検出／訂正部１５０Ａは、その受信したＥＣＣフレームに含まれるＥＣＣ結合データに基づいて、ＥＣＣフレームに対するエラー検出／訂正を行う。
【００８１】
具体的には、ＥＣＣエラー検出／訂正部１５０Ａは、時刻（ｋ＋７）に送信されたＥＣＣフレーム（ｋ＋７）の受信を完了すると、そのＥＣＣフレーム（ｋ＋７）を受信フレーム記憶部１５３に記憶する。
【００８２】
そして、ＥＣＣエラー検出／訂正部１５０Ａは、受信フレーム記憶部１５３から時刻（ｋ）から時刻（ｋ＋６）までの間に受信された７個のＥＣＣフレーム（ｋ）〜ＥＣＣフレーム（ｋ＋６）を取得し、それら取得したＥＣＣフレームと受信したＥＣＣフレーム（ｋ＋７）とに含まれる８個のＥＣＣ結合データのうち、｛Ｅ（ｋ，０）、Ｅ（ｋ＋１，１）、…、Ｅ（ｋ＋６，６）、Ｅ（ｋ＋７，７）｝からなるＥＣＣ（ｋ）を取得する。
【００８３】
次に、ＥＣＣエラー検出／訂正部１５０Ａは、受信フレーム記憶部１５３から時刻（ｋ−８０）から時刻（ｋ−１）までの間に受信された８０個のＥＣＣフレーム（ｋ−８０）〜ＥＣＣフレーム（ｋ−１）を取得し、それら８０個のＥＣＣフレームに含まれる固定長フレーム２０１のうち、ＥＣＣ（ｋ）のＥＣＣ（ｋ）算出元データ２１０Ａである８０個の１ビットデータ｛Ｄ（ｋ−８０，０）、Ｄ（ｋ−７９，１）、…、Ｄ（ｋ−２，７８）、Ｄ（ｋ−１，７９）に対して、上記で取得したＥＣＣ（ｋ）によりエラー検出／訂正を行う。
【００８４】
そして、ＥＣＣエラー検出／訂正部１５０Ａが、エラー検出／訂正を行った結果として検出したエラー検出ビット数が「０」、すなわち、エラーを検出しなかった場合には、ＥＣＣフレーム（ｋ−８０）をＥＣＣ除去部１５１に送る。
【００８５】
また、ＥＣＣエラー検出／訂正部１５０Ａによるエラー検出ビット数が「１」、すなわち、訂正可能なエラーを検出した場合には、その検出したエラーをＥＣＣ（ｋ）により訂正し、その訂正した後のＥＣＣフレーム（ｋ−８０）をＥＣＣ除去部１５１に送る。
【００８６】
一方、ＥＣＣエラー検出／訂正部１５０Ａによるエラー検出ビット数が「２以上」、すなわち、訂正不可能なエラーを検出した場合には、その旨を示すエラー検出信号をパケットデコーダ１６に送る。
【００８７】
その後、ＥＣＣ除去部１５１が、ＥＣＣエラー検出／訂正部１５０Ａによりエラーが検出されなかった、又はエラーが訂正された後のＥＣＣフレーム２０３を受け取ると、そのＥＣＣフレーム２０３からＥＣＣ結合データ２０６を除去し、ＥＣＣフレーム２０３は、８０ビットの固定長フレーム２０２となる。
【００８８】
次に、１０Ｂ８Ｂ復号化部１５２は、８０ビットの固定長フレーム２０２に対して、１０Ｂ８Ｂ変換によるデコード処理を施し、６４ビットの固定長フレーム２０１を復元する。
【００８９】
そして、ＥＣＣフレームデコーダ１５Ａは、復元された６４ビットの各８ビットのうちＮＯＰを示す８ビットを削除し、残りのデータをパケットデコーダ１６に送る。
【００９０】
パケットデコーダ１６は、ＥＣＣフレームデコーダ１５Ａからのデータを受け取り、そのデータに含まれるＳＯＰ及びＥＯＰを検出することにより、１つのパケットを抽出する。
【００９１】
そして、パケットデコーダ１６は、抽出したパケットのタイプに応じて、制御部２０を介してホストコンピュータ１０１に処理が終了したことを通知し、そのパケットに含まれるデータを返信する。また、パケットデコーダ１６が、ＥＣＣフレームデコーダ１５Ａからエラー検出信号を受信した場合には、ホストコンピュータ１０１にエラーが発生したことを通知する。
【００９２】
（ＥＣＣの算出方法及び付加方法の変形例）
図１０は、ＥＣＣの算出方法及び付加方法の変形例の変形例を示す図である。すなわち、ＥＣＣ付加部１２２Ａは、時刻（ｋ）において、時系列的に並列に配置した複数の固定長フレームのうち、垂直方向に配置された８０個の１ビットデータ｛Ｄ（ｋ−８０，０）、Ｄ（ｋ−７９，０）、…、Ｄ（ｋ−２，０）、Ｄ（ｋ−１，０）｝からＥＣＣ（ｋ）２２０Ａを算出するものである。
【００９３】
そして、ＥＣＣ付加部１２２Ａは、算出したＥＣＣ（ｋ）２２０Ａを構成する８個の１ビットデータ｛Ｅ（ｋ，０）、Ｅ（ｋ＋１，０）、…、Ｅ（ｋ＋６，０）、Ｅ（ｋ＋７，０）｝を、ＥＣＣフレーム（ｋ）〜ＥＣＣフレーム（ｋ＋７）における８個のＥＣＣ結合データの先頭のビットとして、それら８個のＥＣＣ結合データに分散して付加する。
【００９４】
また、時刻（ｋ＋１）においては、ＥＣＣ付加部１２２Ａは、同様に垂直方向に位置するＥＣＣ（ｋ＋１）算出元データ２１１に基づいてＥＣＣ（ｋ＋１）２１１を算出し、算出したＥＣＣ（ｋ＋１）２１１を構成する１ビットデータ｛Ｅ（ｋ＋１，１）、Ｅ（ｋ＋２，１）、…、Ｅ（ｋ＋７，１）、Ｅ（ｋ＋８，１）｝を、ＥＣＣフレーム（ｋ＋１）〜ＥＣＣフレーム（ｋ＋８）における８個のＥＣＣ結合データの２番目のビットとして、それら８個のＥＣＣ結合データに分散して付加する。
【００９５】
なお、図８及び図１０において、ＥＣＣ付加部１２２Ａが、所定の位置として斜め方向及び垂直方向に配置されたＥＣＣ（ｋ）算出元データ２１０ＡからＥＣＣ（ｋ）２２０Ａを算出する例をそれぞれ示したが、ＥＣＣ付加部１２２Ａは、所定の位置として一定の規則により定められたＥＣＣ算出元データからＥＣＣを算出すればよく、例えば、右上から左下への斜め方向でもよいし、これらに限られない。
【００９６】
また、ＥＣＣ付加部１２２Ａは、ＥＣＣを分割した複数の１ビットデータを複数のＥＣＣ結合データに分散して付加する際、ＥＣＣ算出元データとは異なる規則に基づいて、複数のＥＣＣ結合データに分散してもよい。例えば、ＥＣＣ算出元データを斜め方向に配置した場合に、ＥＣＣを垂直方向に配置された複数のＥＣＣ結合データに分散してもよいし、その逆に、ＥＣＣ算出元データを垂直方向に配置した場合に、ＥＣＣを斜め方向に配置された複数のＥＣＣ結合データに分散してもよい。
【００９７】
［第２の実施の形態］
本発明の第２の実施の形態に係るデータ伝送装置、データ送信装置、データ受信装置及びデータ伝送システムを適用したストレージシステムについて説明する。
【００９８】
第２の実施の形態に係るストレージシステムは、第１の実施の形態と同様に、ホストコンピュータ１０１と半導体ディスク装置１０２とから構成され、半導体ディスク装置１０２内に設けられたデータ伝送装置１Ｂにおいて、ＥＣＣフレームに付加するＥＣＣの算出方法が、第１の実施の形態に係るデータ伝送装置１Ａと異なるものである。
【００９９】
（データ伝送装置の構成）
図１１は、本実施の形態に係るデータ伝送装置１Ｂの概略構成の一例を示すブロック図である。このデータ伝送装置１Ｂは、データ送信装置１ａと、データ受信装置１ｂとから構成され、ＥＣＣフレームエンコーダ１２Ｂに設けられたＥＣＣ付加部１２２Ｂと、ＥＣＣフレームデコーダ１５Ｂに設けられたＥＣＣエラー検出／訂正部１５０Ｂとが第１の実施の形態と異なり、その他の構成は第１の実施の形態と同様であるため、それらの説明は省略する。
【０１００】
ＥＣＣ付加部１２２Ｂは、第１の実施の形態と同様に、時刻（ｋ）においてＥＣＣ（ｋ）を算出するが、その算出したＥＣＣ（ｋ）は、ＥＣＣ算出元データが含まれる複数のＥＣＣフレームがトランスミッタ１３により送信されてから所定の期間経過後に固定長フレーム形成部１２０により形成された複数の固定長フレームに付加されるものである。
【０１０１】
ここで、図１２は、ＥＣＣ付加部１２２Ｂにより生成されるＥＣＣフレームの一例を示す図である。すなわち、ＥＣＣ付加部１２２Ｂは、８０個のＥＣＣフレーム（ｋ−８８）〜ＥＣＣフレーム（ｋ−９）に含まれる複数の１ビットデータのうち、図１２に例示するＥＣＣ（ｋ）算出元データ２１０Ｂに含まれる８０個の１ビットデータ｛Ｄ（ｋ−８８，０）、Ｄ（ｋ−８７，１）、…、Ｄ（ｋ−１０，７８）、Ｄ（ｋ−９，７９）｝からＥＣＣ（ｋ）２２０Ｂを算出し、そのＥＣＣ（ｋ）２２０Ｂを、ＥＣＣフレーム（ｋ−９）が送信されてから８単位時間が経過した後に形成された複数の固定長フレームに付加してＥＣＣフレーム（ｋ）〜ＥＣＣ（ｋ＋７）を生成したものである。
【０１０２】
なお、上記の例では、所定の期間として８単位時間経過後に形成された固定長フレームにＥＣＣを付加したが、８単位時間に限られず、７単位時間前、又は９単位時間後の期間に形成された固定長フレームに付加してもよい。
【０１０３】
ＥＣＣエラー検出／訂正部１５０Ｂは、時刻（ｋ＋７）において、時刻（ｋ）から時刻（ｋ＋７）までの間に受信されたＥＣＣフレーム（ｋ）〜ＥＣＣフレーム（ｋ＋７）に含まれる８個のＥＣＣ結合データからＥＣＣ（ｋ）２２０Ｂを取得する。
【０１０４】
そして、ＥＣＣエラー検出／訂正部１５０Ｂは、取得したＥＣＣ（ｋ）２２０Ｂに基づいて、時刻（ｋ−８８）から時刻（ｋ−９）までの間に受信された８０個のＥＣＣフレーム（ｋ−８８）〜ＥＣＣフレーム（ｋ−９）のうちＥＣＣ（ｋ）に対応するＥＣＣ（ｋ）算出元データ２１０Ｂに対して、エラー検出／訂正を行う。
【０１０５】
［第３の実施の形態］
本発明の第３の実施の形態に係るデータ伝送装置、データ送信装置、データ受信装置及びデータ伝送システムを適用したストレージシステムについて説明する。
【０１０６】
第３の実施の形態に係るストレージシステムは、第１の実施の形態と同様に、ホストコンピュータ１０１と半導体ディスク装置１０２とから構成され、半導体ディスク装置１０２内に設けられたデータ伝送装置１Ｃにおいて、ＥＣＣフレームに付加するＥＣＣの算出方法が、第１の実施の形態に係るデータ伝送装置１Ａと異なるものである。
【０１０７】
（データ伝送装置の構成）
図１３は、本実施の形態に係るデータ伝送装置１Ｃの概略構成の一例を示すブロック図である。このデータ伝送装置１Ｃは、データ送信装置１ａと、データ受信装置１ｂとから構成され、ＥＣＣフレームエンコーダ１２Ｃに設けられたＥＣＣ付加部１２２Ｃと、ＥＣＣフレームデコーダ１５Ｃに設けられたＥＣＣエラー検出／訂正部１５０Ｃとが第１の実施の形態と異なり、その他の構成は第１の実施の形態と同様であるため、それらの説明は省略する。
【０１０８】
ＥＣＣ付加部１２２Ｃは、時刻（ｋ）において、ＥＣＣ算出元データが異なる複数のＥＣＣをそれぞれ算出し、その算出した複数のＥＣＣを複数の１ビットデータにそれぞれ分割して複数の固定長フレームに付加し、ＥＣＣフレームを生成する。
【０１０９】
ここで、図１４は、ＥＣＣ付加部１２２Ｃにより生成されるＥＣＣフレームの一例を示す図である。すなわち、ＥＣＣ付加部１２２Ｃは、時刻（ｋ）において、過去に送信されて送信フレーム記憶部１２３に記憶されている８０個のＥＣＣフレーム（ｋ−８０）〜ＥＣＣフレーム（ｋ−１）に含まれる複数の１ビットデータのうち、図１４に例示するように、第１のＥＣＣ（ｋ）算出元データ２１０Ｃに含まれる８０個の１ビットデータ｛Ｄ（ｋ−８０，０）、Ｄ（ｋ−７９，１）、…、Ｄ（ｋ−２，７８）、Ｄ（ｋ−１，７９）｝から第１のＥＣＣ（ｋ）２２０Ｃを算出し、第２のＥＣＣ（ｋ）算出元データ２１０Ｄに含まれる８０個の１ビットデータ｛Ｄ（ｋ−８０，７９）、Ｄ（ｋ−７９，７８）、…、Ｄ（ｋ−２，１）、Ｄ（ｋ−１，０）｝から第２のＥＣＣ（ｋ）２２０Ｄを算出するものである。
【０１１０】
そして、ＥＣＣ付加部１２２Ｃは、算出した第１及び第２のＥＣＣ（ｋ）を含む複数のＥＣＣからＥＣＣ結合データ（ｋ）２０６Ｃを生成し、そのＥＣＣ結合データ（ｋ）２０６Ｃを固定長フレーム２０２に付加することにより、ＥＣＣフレーム（ｋ）を生成する。
【０１１１】
ＥＣＣエラー検出／訂正部１５０Ｃは、時刻（ｋ＋７）において、時刻（ｋ）から時刻（ｋ＋７）までの間に受信されたＥＣＣフレーム（ｋ）〜ＥＣＣフレーム（ｋ＋７）に含まれる８個のＥＣＣ結合データから第１及び第２のＥＣＣ（ｋ）２２０Ｃ，２２０Ｄを取得する。
【０１１２】
そして、ＥＣＣエラー検出／訂正部１５０Ｃは、取得した第１及び第２のＥＣＣ（ｋ）２２０Ｃ，２２０Ｄに基づいて、時刻（ｋ−８０）から時刻（ｋ−１）までの間に受信された８０個のＥＣＣフレーム（ｋ−８０）〜ＥＣＣフレーム（ｋ−１）のうち第１及び第２のＥＣＣ（ｋ）２２０Ｃ，２２０Ｄにそれぞれ対応する第１及び第２のＥＣＣ（ｋ）算出元データ２１０Ｃ，２１０Ｄに対して、それぞれエラー検出／訂正を行う。その結果、ＥＣＣエラー検出／訂正部１５０Ｃが、第１及び第２のＥＣＣ（ｋ）２２０Ｃ，２２０Ｄのいずれかによりエラーを検出した場合には、その旨を示すエラー検出信号を制御部２０に送る。
【０１１３】
なお、図１４では、ＥＣＣ付加部１２２Ｃにより算出されるＥＣＣは、２つであるが、他のＥＣＣ算出元データに基づいて３つ以上のＥＣＣを算出してもよい。また、ＥＣＣ算出元データとして、斜め方向と垂直方向とを組み合わせてもよい。
【０１１４】
［第４の実施の形態］
本発明の第４の実施の形態に係るデータ伝送装置、データ送信装置、データ受信装置及びデータ伝送システムを適用したストレージシステムについて説明する。
【０１１５】
第４の実施の形態に係るストレージシステムは、第１の実施の形態と同様に、ホストコンピュータ１０１と半導体ディスク装置１０２とから構成され、半導体ディスク装置１０２内に設けられたデータ伝送装置１Ｄにおいて、ＥＣＣフレームに付加するＥＣＣの算出方法が、第１の実施の形態に係るデータ伝送装置１Ａと異なるものである。
【０１１６】
（データ伝送装置の構成）
図１５は、本実施の形態に係るデータ伝送装置１Ｄの概略構成の一例を示すブロック図である。このデータ伝送装置１Ｄは、データ送信装置１ａと、データ受信装置１ｂとから構成され、ＥＣＣフレームエンコーダ１２Ｄに設けられたＥＣＣ付加部１２２Ｄと、ＥＣＣフレームデコーダ１５Ｄに設けられたＥＣＣエラー検出／訂正部１５０Ｄとが第１の実施の形態と異なり、その他の構成は第１の実施の形態と同様であるため、それらの説明は省略する。
【０１１７】
ＥＣＣ付加部１２２Ｄは、第１の実施の形態と同様に、時刻（ｋ）においてＥＣＣ（ｋ）を算出するが、そのＥＣＣ（ｋ）のＥＣＣ算出元データは、所定の間隔ｉ（ただし、ｉ＝１，２，３，…）で配置されたＥＣＣフレーム（ｋ−８０ｉ）、ＥＣＣフレーム（ｋ−７９ｉ）、〜、ＥＣＣフレーム（ｋ−２ｉ）、ＥＣＣフレーム（ｋ−ｉ）に含まれる１ビットデータのうち、８０個の１ビットデータ｛Ｄ（ｋ−８０ｉ，０）、Ｄ（ｋ−７９ｉ，１）、…、Ｄ（ｋ−２ｉ，７８）、Ｄ（ｋ−i，７９）｝からＥＣＣ（ｋ）を算出するものである。
【０１１８】
ここで、図１６は、所定の間隔ｉを「２」として、ＥＣＣ付加部１２２Ｄにより生成されるＥＣＣフレームの一例を示す図である。すなわち、ＥＣＣ付加部１２２Ｄは、８０個のＥＣＣフレーム（ｋ−１６０）、ＥＣＣフレーム（ｋ−１５８）、〜、ＥＣＣフレーム（ｋ−４）、ＥＣＣフレーム（ｋ−２）に含まれる複数の１ビットデータのうち、図１２に例示するＥＣＣ（ｋ）算出元データ２１０Ｅに含まれる８０個の１ビットデータ｛Ｄ（ｋ−１６０，０）、Ｄ（ｋ−１５８，１）、…、Ｄ（ｋ−４，７８）、Ｄ（ｋ−２，７９）｝からＥＣＣ（ｋ）２２０Ｅを算出する。
【０１１９】
そして、ＥＣＣ付加部１２２Ｄは、算出したＥＣＣ（ｋ）２２０Ｅを分割した８個の１ビットデータ｛Ｅ（ｋ，０）、Ｅ（ｋ＋２，１）、…、Ｅ（ｋ＋１２，６）、Ｅ（ｋ＋１４，７）｝を、時刻（ｋ）から時刻（ｋ＋１４）の間に形成された固定長フレームのうち、所定の間隔（図１６の例では「２」）で配列された固定長フレームにそれぞれ付加することによりＥＣＣフレーム（ｋ）を生成する。
【０１２０】
ＥＣＣエラー検出／訂正部１５０Ｄは、時刻（ｋ＋１４）において、時刻（ｋ）から時刻（ｋ＋１４）までの間に受信されたＥＣＣフレーム（ｋ）〜ＥＣＣフレーム（ｋ＋１４）のうち、所定の間隔毎に配列された８個のＥＣＣ結合データからＥＣＣ（ｋ）２２０Ｅを取得する。
【０１２１】
そして、ＥＣＣエラー検出／訂正部１５０Ｄは、取得したＥＣＣ（ｋ）２２０Ｅに基づいて、時刻（ｋ−１６０）から時刻（ｋ−２）までの間に受信されたＥＣＣフレームのうち、ＥＣＣ（ｋ）２２０Ｅに対応するＥＣＣ（ｋ）算出元データ２１０Ｅに対して、エラー検出／訂正を行う。
【０１２２】
なお、図１６の例では、ＥＣＣ（ｋ）算出元データ２１０Ｅ及びＥＣＣ（ｋ）２２０Ｅともに所定の間隔を「２」として、1つおきに配置されたＥＣＣフレームに分散されているが、所定の間隔をそれぞれ別の値にしてもよいし、いずれか一方の所定の間隔を「１」、すなわち間隔を空けないものとし、他方の所定の間隔だけを「２」以上にしてもよい。
【０１２３】
［他の実施の形態］
なお、本発明は、上記各実施の形態に限定されず、本発明の趣旨を逸脱しない範囲内で種々な変形が可能である。例えば、送信データ及び分割データを構成するデータとして、１ビットのデータを用いたが、１ビットに限らず、２ビット以上のデータを用いてもよいし、複数ビットをまとめたデータとして、例えば、１バイトのデータを用いてもよい。
【０１２４】
また、本発明の趣旨を逸脱しない範囲内で上記各実施の形態の構成要素を任意に組み合わせることができる。
【図面の簡単な説明】
【０１２５】
【図１】図１は、本発明の第１の実施の形態に係るストレージシステムの概略構成の一例を示す全体図である。
【図２】図２は、本発明の第１の実施の形態に係るデータ伝送装置の概略構成の一例を示すブロック図である。
【図３】図３は、パケットエンコーダが生成するパケットの構成例を示す図である。
【図４】図４は、パケットのヘッダに含まれるタイプの意味と２進符号の割り当ての一例を示す図である。
【図５】図５は、シリアル伝送前のＥＣＣフレームエンコーダにおける符号化の流れの一例を示す図である。
【図６】図６は、特殊シンボルとＫキャラクタの対応の一例を示す図である。
【図７】図７は、ＥＣＣ付加部により付加されるＥＣＣ付加データの一例を示す図である。
【図８】図８は、ＥＣＣの算出方法及び付加方法の一例を示す図である。
【図９】図９は、パケットが埋め込まれた複数のＥＣＣフレームの一例を示す図である。
【図１０】図１０は、ＥＣＣの算出方法及び付加方法の変形例を示す図である。
【図１１】図１１は、本発明の第２の実施の形態に係るデータ伝送装置の概略構成の一例を示すブロック図である。
【図１２】図１２は、ＥＣＣの算出方法及び付加方法の一例を示す図である。
【図１３】図１３は、本発明の第３の実施の形態に係るデータ伝送装置の概略構成の一例を示すブロック図である。
【図１４】図１４は、複数のＥＣＣの算出方法及び付加方法の一例を示す図である。
【図１５】図１５は、本発明の第４の実施の形態に係るデータ伝送装置の概略構成の一例を示すブロック図である。
【図１６】図１６は、ＥＣＣの算出方法及び付加方法の一例を示す図である。
【符号の説明】
【０１２６】
１Ａ〜１Ｃ…データ伝送装置、１ａ…データ送信装置、１ｂ…データ受信装置、３…シリアル伝送路、４…メモリコントローラ、５…半導体メモリ、１０…データ伝送システム、１１…パケットエンコーダ、１２Ａ〜１２Ｃ…フレームエンコーダ、１３…トランスミッタ、１４…レシーバ、１５Ａ〜１５Ｃ…フレームデコーダ、１６…パケットデコーダ、２０…制御部、１００…ストレージシステム、１０１…ホストコンピュータ、１０２…半導体ディスク装置、１２０…固定長フレーム形成部、１２１…８Ｂ１０Ｂ符号化部、１２２Ａ〜１２２Ｃ…ＥＣＣ付加部、１２３…送信フレーム記憶部、１５０Ａ〜１５０Ｃ…ＥＣＣエラー検出／訂正部、１５１…ＥＣＣ除去部、１５２…１０Ｂ８Ｂ復号化部、１５３…受信フレーム記憶部、２００…パケット、２０１，２０２…固定長フレーム、２０３…ＥＣＣフレーム、２０４…ＥＣＣ付加データ、２０５…出力データ、２０６，２０６Ａ〜２０６Ｄ…ＥＣＣ結合データ、２１０Ａ〜２１０Ｅ…ＥＣＣ（ｋ）算出元データ、２１１Ａ…ＥＣＣ（ｋ＋１）算出元データ、２２０Ａ〜２１０Ｅ…ＥＣＣ（ｋ）、２２１…ＥＣＣ（ｋ＋１）
【図１】
0005194747.tif 000002
【図２】
0005194747.tif 000003
【図３】
0005194747.tif 000004
【図４】
0005194747.tif 000005
【図５】
0005194747.tif 000006
【図６】
0005194747.tif 000007
【図７】
0005194747.tif 000008
【図８】
0005194747.tif 000009
【図９】
0005194747.tif 000010
【図１０】
0005194747.tif 000011
【図１１】
0005194747.tif 000012
【図１２】
0005194747.tif 000013
【図１３】
0005194747.tif 000014
【図１４】
0005194747.tif 000015
【図１５】
0005194747.tif 000016
【図１６】
0005194747.tif 000017