(57)【特許請求の範囲】
【請求項１】
光学自由空間媒体を介して送信ペイロードデータビットストリームを送信する装置であって、
リード−ソロモン符号化を用いて光送信ペイロードデータビットストリームをコードワードへ符号化する手段と、
前記コードワードをセグメントのシーケンスに分割する手段と、
物理ページを蓄積する、ＳＤＲＡＭデバイスからなるバッファストアとを含み、
前記ＳＤＲＡＭデバイスの各々は、メモリセルのマトリクスと、読み出しレートと書き込みレートとを含むサイクルレートとを有し、前記ＳＤＲＡＭデバイスは前記サイクルレートで読み出し可能且つ書き込み可能であり、そして、
前記ＳＤＲＡＭデバイスのメモリセルのマトリクスの各々は、前記物理ページのうちの単一ページをその各々が包含する、定義されたメモリセルのｘ−ｙ行列サブマトリクスを有し、前記装置はさらに、
第１のページ変更オーバヘッド動作を有する書き込み動作において、コードワードセグメントの連続するブロックを前記メモリセルのｘ−ｙサブマトリクスへインタリーブする手段と、
符号化されインタリーブされたデータビットストリームを生成するために、第２のページ変更オーバヘッド動作を有する読み出し動作において、コードワードセグメントを前記メモリセルのｘ−ｙサブマトリクスから読み出す手段と、
前記第１のページ変更オーバヘッド動作を前記第２のページ変更オーバヘッド動作へ実質的に再分配して前記書き込み動作と前記読み出し動作とのレートを等しくするために、前記メモリセルのサブマトリクスへの書き込み動作と前記メモリセルのサブマトリクスからの読み出し動作とを取り扱う手段と、
前記符号化されインタリーブされたデータビットストリームを前記光学自由空間媒体へ送信する手段とを含むことを特徴とする装置。
【請求項２】
コードワードセグメントの前記ブロックのＫ個連続するエントリを前記メモリセルのサブマトリクスの各々へ書き込む手段と、
前記連続するエントリ数Ｋによって決定されたレートで前記読み出し動作においてページを変更する手段とをさらに含むことを特徴とする請求項１に記載の装置。
【請求項３】
前記書き込み動作と読み出し動作とを取り扱う手段は、
前記メモリセルのサブマトリクスの連続する列に、ＳＤＲＡＭページからなる連続する前記コードワードの対応するセグメントを書き込む手段と、
前記ページの１つで保持する前記列の数を、前記読み出しレートと前記書き込みレートとを実質的に等しくする間隔において物理ＳＤＲＡＭページ変更を保証する数に維持するために、読み出しに対する前記メモリセルのサブマトリクスのアドレスを再マッピングする手段とを含むことを特徴とする請求項２に記載の装置。
【請求項４】
列による前記メモリセルのサブマトリクスへのエントリのために前記コードワードセグメントを受信する手段と、
前記第１と第２のページ変更オーバヘッド動作を等しくする行による前記エントリ数の完了に続き、前記物理ＳＤＲＡＭページ変更を生じさせる手段とをさらに含むことを特徴とする請求項２に記載の装置。
【請求項５】
前記メモリセルのサブマトリクスの各々は正方であり、前記正方の各側の大きさは、前記物理ページの各々からなる前記コードワードの数の平方根に等しいことを特徴とする請求項３に記載の装置。
【請求項６】
シンチレーション効果を引き起こす前記媒体の状態を検出する手段と、
前記状態が検出されたときに前記符号化と前記インタリーブとを活動させる手段とをさらに含むことを特徴とする請求項４に記載の装置。
【請求項７】
遠隔に位置するレシーバをさらに含み、前記レシーバは前記符号化されインタリーブされたデータビットストリームをデインタリーブしデコードする手段を含むことを特徴とする請求項６に記載の装置。
【請求項８】
前記ＳＤＲＡＭデバイスは、２０００万ビットのオーダーのエラーバーストを修正するのに充分な大きさのメモリセルのストレージ容量を有することを特徴とする請求項７に記載の装置。
【請求項９】
前記リードソロモン符号は（２５５、２２３）フォーマットであることを特徴とする請求項８に記載の装置。
【請求項１０】
光学自由空間媒体を介して送信ペイロードデータビットストリームを送信する装置であって、
リード−ソロモン符号化を用いて光送信ペイロードデータビットストリームをコードワードへ符号化する手段と、
前記コードワードの各々をセグメントに分割する手段と、
メモリセルのマトリクスからなる、エントリ受信レートとエントリ送信レートとを有するＳＤＲＡＭバッファストアとを含み、
前記メモリセルのマトリクスはｘ−ｙサブマトリクスを含み、そして前記サブマトリクスの各々は、単一のＳＤＲＡＭ物理ページを含む前記複数のセグメントを受信するよう構成されており、前記装置はさらに、
連続する前記コードワードの対応するセグメントを前記メモリセルの前記ｘ−ｙサブマトリクスの各々へインタリーブするために、書き込み動作を生じさせる手段を含み、
前記書き込み動作は関連する第１のページ変更オーバヘッド動作を有するものであり、前記装置はさらに、
前記メモリセルの前記ｘ−ｙサブマトリクスの各々から読み出すために読み出し動作を生じさせる手段を含み、
前記読み出し動作は関連する第２のページ変更オーバヘッド動作を有し、そして、
前記メモリセルの前記ｘ−ｙサブマトリクスの各々へ書き込み動作及び前記ｘ−ｙサブマトリクスの各々からの読み出し動作は、前記書き込み動作からのページ変更オーバヘッド動作を前記読み込み動作に実質的に再分配し、これにより前記書き込み動作と前記読み込み動作のレートが等しくなるよう行われるものであり、前記装置はさらに、
前記インタリーブされたセグメントを前記光学自由空間媒体へ送信する手段を含むことを特徴とする装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は光通信に関し、特に、自由空間を伝播する際のシンチレーション効果に起因する劣化を回復する方法及びその装置に関する。
【０００２】
【従来の技術】
自由空間光伝送は、伝送媒体におけるシンチレーション効果に起因する劣化を受けやすい。自由空間光信号は、数ミリ秒のオーダーの時間に亘るシンチレーション起因のフェージングを受ける。よって、数ギガビット／秒の信号は、この時間の間に、数千万ビットを失うことになる。例えば、２．５ギガビット／秒のデータストリームにおける８ミリ秒のフェージングは、２千万ビットの喪失に対応する。
【０００３】
データストリームが光ファイバを介して伝播させられる場合には、ブロック指向前方エラー修正（ＦＥＣ）が広く用いられている。しかしながら、自由空間光伝送におけるシンチレーション効果に起因する劣化は、光ファイバ媒体における一般的に遙かに短いエラーバースト持続時間と比較して、数百万ビットに対応する長さで継続しうる。従って、シングルブロックＦＥＣエラー修正プロセスは、自由空間光伝送において発生する長さのエラーを修正するためには極めて非現実的である。シンチレーション効果に起因するこの問題を、影響を受けたブロックを選択的に再送信することによって対処しようとすることも、ビデオ映像などの通信プロセスの特性故に、上述されているような長時間に亘るエラーバーストに関しては実際的ではない。
【０００４】
多くの通信応用例においては、エラーに対してさらに堅固であること及びさらなる雑音低減の実現を目的として、データストリームのインターリーブ、すなわちシャッフリング、が利用される。W.Peterson及びE.J.Weldenによる“エラー修正符号”（MIT Press(1972)、第３７１頁）という出版物（本発明の参照文献である）に述べられているように、その一般的な原理は、度数ｉにインターリーブされたｔエラー修正符号は、ｉ＊ｔ以下の長さを有する全ての単一バーストを修正することが可能である。インターリーブによって、データがバースト持続長よりも長い時間に対応するスパンに亘ってインターリーブされている場合には、バーストエラーが複数の孤立エラーとしての効果を有するようになる。
【０００５】
それゆえ、インターリーブは、自由空間光伝送におけるシンチレーション効果のエラー修正に関する候補である。なぜなら、理論的には、連続する数千万ビットに及ぶエラーバーストを修正することが可能であるからである。しかしながら、シングルコードブロック内のバーストエラーにおける数千万ビットを修正するためには、現行の端末設計コンセプトの下では、通信端末が極めて大きなエンコーダ／デコーダ及びバッファストレージを必要としてしまう。コスト、サイズ、及びシンチレーション効果エラー修正装置によって必要とされる電力に関する考察は、商業的に現実的な通信端末の実現に限定されていなければならない。
【０００６】
シンクロナスダイナミックランダムアクセスメモリ（ＳＤＲＡＭ）デバイスは、インターリーブに関して必要とされる大規模な置換行列容量を実現する現実的な手段を提供するものとして利用可能である。しかしながら、ＳＤＲＡＭのロウ、すなわち“ページ”は、通常、ロウアドレスを変更する、すなわち“ページ”を変更することが必要になった場合には、常に、有為な、数サイクルにも及ぶオーバーヘッドコストを被ってしまう。カラムアドレスフィールドは、通常、ＳＤＲＡＭの物理的アドレスにおける下位の数に等置されているため、連続したあるいはひとまとまりのデータの組をアドレスする際には、最小のページ変更しか負わない。ＳＤＲＡＭデバイスが直接的にアドレスされる、すなわち、連続したアドレスにブロックＦＥＣコードワードセグメントがストアされる、と仮定すると、インターリーブを実現する目的でコードワードシーケンスを置換した順序で読み出すことは、メモリが参照される毎にページアドレスを変更することを必要とする。なぜなら、大きなアドレス増分が必要とされるからである。同様なプロセスは、列要素を連続したアドレスにストアするように行列をストアして、その行列を行毎に読み出すことである。転置行列を読み出すためには、列長に等しいアドレス増分が必要となる。
【０００７】
【発明が解決しようとする課題】
より詳細に述べれば、インターリーブ及びデインターリーブに必要とされる大規模な置換行列に関するバッファストレージを実現するように設定された適切なＳＤＲＡＭデバイスグルーピングにおいては、ページアドレスを変更するために大きなサイクル数（例えば７サイクル）が必要とされる。結果として、直接的なアドレシングは、実効メモリ速度を７分の１に低下させることになる。光通信は高ビットレートであるため、このインターリーブプロセスを実行する目的で、入手可能な最高速のＳＤＲＡＭデバイスを用いることを要求している。それゆえ、前述されたような速度低下は、自由空間光伝送におけるシンチレーション効果を克服するプロセスを実現する目的でＳＤＲＡＭデバイスを用いることの現実性を損なうことになる。
【０００８】
【課題を解決するための手段】
本発明は、シンチレーション効果に起因する伝送劣化を克服する目的で光データストリームをエンコード−インターリーブ及びデインターリーブ−デコードする方法及びその装置を実現する。連続した２千万ビット程度の大きさを有するバーストエラーが、コンポーネントに関して実現可能な程度の費用増及び追加レイテンシーに関して無視しうる程度のコストで修正される。
【０００９】
（２５５，２２３）リード−ソロモン（Reed-Solomon）符号化を用いることにより、ペイロードビットストリームがコードワードにエンコードされ、そのようにして得られたコードワードが分割されて置換バッファに分配される。この際、コードワードは、持続期間がＥビットであるバーストエラーがあらゆるコードワードにおいて最大でもｂビットだけ影響を与えるだけのものであるように（例えば、Ｅ／ｂ＝１５６，２５０）、充分に大きなスパンに亘って他のコードワードとインターリーブされる。
【００１０】
本発明は、その一実施例においては、置換バッファにＳＤＲＡＭデバイスを利用する。しかしながら、本発明は、通常のＳＤＲＡＭデバイスが大規模な行列転置を実現する目的で用いられた場合の限界を、読み出しレートと書き込みレートとを本質的に等置するアドレス再マッピングを用いることによって克服する。本発明のこの側面に従って、現行のＳＤＲＡＭデバイスの特性から、ページ（すなわち、ロウ）内においてデバイスサイクルレートでデバイスを読み出し及び書き込みすることが可能であるという独自の利点が得られる。
【００１１】
送信端でのインターリーブプロセス及び受信端でのデインターリーブプロセスにおけるＳＤＲＡＭバッファのローディングの際に用いられる行列の転置に関しては、１ページにストアされうるカラム数が余りにも小さく、すなわち、ＳＤＲＡＭデバイスのオーバーヘッドサイクルが（ロウが読み出される場合に）ページ変更の前に発生しうるメモリ参照の回数に亘って償還されてしまって、実効的なメモリサイクルレートがシステム要求を充足しない場合に、アドレス再マッピングが適用される。
【００１２】
本発明に従ったアドレス再マッピングは、オーバーヘッド操作を書き込みから読み出しに再分配し、このことによって、最小限のメモリを用いて実質的にリアルタイムの操作が可能になる。よって、行列要素がロウ毎に受信されると、ＳＤＲＡＭページの物理的な変更が、例えば５１２要素毎ではなく１５要素毎に発生する。その結果、ロウアドレス変更に係るオーバーヘッドが、書き込み（すなわち、転置バッファへの入力）と読み出し（転置バッファの読み出し）の双方においてほぼ等しくなる。このように、オーバーヘッドサイクルが読み出し及び書き込みの双方のプロセスに関する多数のメモリ参照に亘って償還され、結果として、実効メモリサイクルレートが物理的なバーストサイクルレートに漸近することになる。
【００１３】
よって、本発明は、自由空間光通信における２千万ビットのオーダーのエラーバースト、例えば、２．５ギガビット／秒の伝送において発生した８ミリ秒のフェージング、を克服するために必要とされる、非常に大規模なインターリーブすなわち転置スパンを経済的に処理する問題を解決する。
【００１４】
以下、本明細書においては、本発明は自由空間光伝送に関連した実施例を利用して記述されるが、本発明は、例えばＲＦ無線通信システム（例えば、ミリメートル波）に対しても適用可能である。この種のシステムがより高いデータレートで動作している場合には、発生しうるフェージングによって数百万ビットが失われることになる。本発明に従った方法及び装置を用いることにより、ＲＦ無線通信システムにおけるフェージングによって失われていた数百万ビットが回復されうる。
【００１５】
【発明の実施の形態】
以下に記述される実施例においては、中庸のサイズを有するバーストエラー修正コードブロックをインターリーブするという原理が用いられるが、巨視的に見れば、従来技術に係る方法よりも遙かに大きなサイズが用いられ、その結果、以下に例示されているインターリーブ例は、数千万ビットのオーダーを有するバーストエラーの回復をサポートすることを目的とした、数億ビットに亘るものとなっている。シンクロナスダイナミックランダムアクセスメモリ（ＳＤＲＡＭ）デバイステクノロジーが、この種のプロセスを実現するために必要とされる極めて大規模なメモリアレイをサポートするための現実的かつ経済的な例として用いられる。ＳＤＲＡＭテクノロジーにおいては普遍的である、大きなロウ−カラムランダムアクセスオーバーヘッドが、物理的アドレスのアドレス再マッピングを行なうことによって実質的に低減される。アドレス再マッピングの効果は、オーバーヘッドサイクルバーストが、メモリアドレス空間の通常の単純な利用の場合に一般的であるような連続したメモリ参照の際に発生するのではなく、分散されることである。このことは、本発明に係る高速メモリ参照レートが、データフローの弾力性を最小にしつつ確保されることを可能にする。
【００１６】
本発明に係るプロセスは、まず、従来技術に従ってデータストリームをコードワードにエンコードする段階を有している。コードワードとは、ｋ個のペイロードビットと（ｎ−ｋ）個のエラー修正コードビットとを含むｎビットよりなるブロックである。その後、当該プロセスは、コードワード内で修正されうるエラーの最大数をｂとして規定する。この際、あらゆる線型コードによって修正されうる最大ビット数が
（式１）  ｂ＝０．５＊（ｎ−ｋ）
である、及び、この制限が、以下に述べられるリード−ソロモン符号化に関して得られるものであることを考慮する。
【００１７】
例として、（２５５，２２３）リード−ソロモン符号を仮定すると、これは、コードワードのシンボル長が２５５、そのうち、２２３個がペイロードシンボル、２５５−２２３＝３２がチェックシンボルであって、各シンボルは８ビットオクテットである。式１によって示される修正可能なシンボルの制限は、この例の場合には、０．５＊（２５５−２２３）＝１６シンボルとなる。この例では、ビット数で表わしたコードワードのサイズが８＊２５５＝２０４０ビットであり、１コードワード内に発生したエラーバーストの個数が最大でｂ＝１６＊８＝１２８ビットまでなら修正可能である。
【００１８】
目的が、持続長Ｅビットのエラーバーストをマスクすることである場合には、インターリーブされなければならないコードワードの個数Ｍは、
（式２）  Ｍ＝Ｅ／ｂ
となる。よって、２千万ビットのオーダーのエラーバーストにを修正するためには、Ｍ＝２０×１０６／１２８＝１５６，２５０個のコードワードをインターリーブする必要がある。インターリーブのスパン（すなわち、置換行列の次元、つまり、本発明に係るプロセスによって必要とされるバッファのサイズＳ及び追加されるレイテンシーの持続時間）は、
（式３）  Ｓ＝Ｍ＊ｎ
となる。
【００１９】
上述された例の場合には、Ｍ＝１５６，２５０であり、ｎは（ビット表示で）２０４０であるため、バッファストアはＭ＊ｎ＝３．１８７５×１０８ビット分が必要になる。
【００２０】
自由空間光伝送におけるシンチレーション劣化の影響は、多くの周囲状況の関数として変化しうる。例えば、４．４ｋｍという距離を有するポイント−ツー−ポイント光通信に関して、横風が毎時１０マイルの場合には、シンチレーションの時間的相関が１５ミリ秒のオーダーである。１ｋｍの距離、及び毎時１０マイルの横風の場合には、時間スケールは７−８ミリ秒のオーダーである。横風が毎時２０マイルのオーダーであって距離が１ｋｍの場合には、時間的相関はおよそ４ミリ秒になる。シンチレーション効果の程度も、例えば、空気の温度、排出物質、相対湿度などを含む他の大気状況の関数として変化しうる。シンチレーション状況の開始は、自由空間光リンクの逆経路における受信された信号のモニタリングによって決定される。
【００２１】
図１は、本発明を、自由空間光伝送システムの一部として模式的に表わしたものである。当該システムは、入力端において、データストリームペイロード１０を受信する。ペイロードは、連続的なデータストリームの形態を有するか、あるいは、ペイロードのビット長がバースト毎に変化するようなデータバーストよりなる。
【００２２】
バーストエラー修正プロセスは、送信される全てのデータに対して無条件かつ連続的に適用されるか、あるいは、例えばセンサ１９などによって前述されたようなある種の自由空間条件が検出された場合に選択的に適用されるかのいずれかである。センサ１９は、コンピュータコントローラ２６に接続されており、自由空間シンチレーション条件が存在するか否かを決定するスレッショルド値を当該コンピュータコントローラ２６内のインストラクションが有している。自由空間媒体条件が発生した場合には、データストリームペイロード１０は信号コンディショナ１１を通じてルーティングされる。ここでは、以下に記述されるように、データがエンコードされてバッファストアにインターリーブされる。信号コンディショナ１１の出力は、トランスミッタ１２によって自由空間媒体１３を介してレシーバ１４宛に送出される。受信された信号は、シンチレーション条件向けの対応をなされている場合には、例えばビデオあるいは高速データアプリケーションなどの最終目的において用いられるようにルーティングされる前に、信号エクストラクタ１５に供給されてデインターリーブ及びデコードされる。
【００２３】
図２に示されているように、信号コンディショナ１１はエンコーダ２０を有しているが、これは、（２５５，２２３）リード−ソロモンタイプのものであることが望ましい。２．５Ｇｂｉｔのデータペイロード１０が、リード−ソロモンエンコーダ２０に供給され、この実施例の場合には、２．８６Ｇｂｉｔのストリームを出力する。この際、リード−ソロモン符号化が、８ビットシンボルのガロワ（Galois）フィールドと（２５５，２２３）コード配置を有するように用いられることが望ましい。リード−ソロモン符号化は、前述された出版物である“エラー修正符号”（W.Peterson及びE.J.Welden、１９９２）に包括的に記述されている。エンコーダ２０は、データストリーム１０を、図３に示されているように各々ｎの長さを有するコードワードにエンコードする。このコードワード例３０は、所望の個数（例えば３０）のコードワード断片に分割されるが、ここでは、簡単のためにそのうちの６つの断片３０ａ−３０ｆのみが示されている。その後、次のコードワードが同様に３４個の断片に分割され、これら後者の断片がそれ以前の３４個の断片とインターリーブされる。コードワードのインターリーブは、充分に大きなスパンに亘って実行され、その結果、長さＥビットのバーストエラーが与えられた全てのコードワードにおいて最大でもｂビットしか影響を与えないようになる。インターリーブを実現する方法論は公知であり、その一例は米国特許５，８９９，７９１号に記載されている（これは、本発明の参照文献である）。
【００２４】
図４は、各コードワードが２つの要素からなる集合として記述された場合の処理方法を示している。ここで、ｎはコードワードの個数であり、ｍは表示されたコードワード内での６０ビットセグメントである。ラベルが付された後、１５６，２５０コードワードのうちの最初のブロックが、バッファ２２のセルにインターリーブされる。１５６，２５０コードワードの最初のブロックをインターリーブした後に、コードワードシーケンスは括弧付き番号シーケンスとして表示されており、後にロウとしての読み出しに対応する“カラムエントリ”の書き込みを表わしている。同様に、コードワードの第二ブロック以降がインターリーブされる。同一のコードワードからの連続したエントリは、６０×１５６，２５０＝９．３７５メガビット分分離される。よって、括弧付きシーケンスのうちのあらゆる２つ（それぞれ９．３７５メガビット長）の消失あるいは損失は、あらゆるコードワードにおいて１２０ビットを越えないエラーのみを生成する。
【００２５】
図２において、６０ビット入力のシフトレジスタ２１は、エンコーダ２０の出力を受信する。コードワードの６０ビットセグメントが選択された理由は、６０が２０４０の因数であり、６０ビット×１５６，２５０×２＝１８．７５メガビットが公称２０メガビットのバーストエラー長に近いからである。１８．７５メガビット長のバーストエラーは、インターリーブされた１５６，２５０コードワードの各々における２つの６０ビットセグメント（すなわち１２０ビット）を破壊する可能性があるが、全てのコードワードは１２８ビットのエラー修正を行なう能力があるために、この例の場合には全てのデータが回復される。
【００２６】
入力シフトレジスタ２１は、エンコーダ２０において生成された断片を、４つのグループに編成された８個のＳＤＲＡＭ２２ａ．．．．２２ｈのバンクより構成されるバッファストア２２に分配する。ＳＤＲＡＭは、１６ビット×８メガワードストアである。ＳＤＲＡＭデバイスは、アドレスジェネレータ２３、２４として設定されたフィールドプログラマブルゲートアレイ（ＦＰＧＡ）によって供給されるアドレスに従ってロードされる。バッファストア２２、及びＦＰＧＡアドレスジェネレータ２３、２４の動作は、コンピュータコントローラ２６によって指示される。ＳＤＲＡＭデバイスからは、出力シフトレジスタ２５へ出力され、この出力シフトレジスタ２５は、エンコードされてインターリーブされたビットストリームをトランスミッタ１２に供給する。レシーバにおける実質的に同一のバッファストア５２が、後に図５に関して記述されているように、デインターリーブ目的で用いられる。
【００２７】
エンコーダ２０の符号化プロセス、アドレスジェネレータ２３、２４のアドレシング機能、ＳＤＲＡＭ２２ａ．．ｈのストレージ機能、及び、入出力シフトレジスタ２１、２５の機能は、図２に示されているように、コンピュータコントローラ２６において実行される命令コードによって調整された機能を有する個別のハードウエアコンポーネントによって実行される。ハードウエアがより好まれる場合には、適切な市販のコンポーネントは、シフトレジスタ２１、２５としてはVitesse Semiconductor社のＶＳＣ７１４６デバイスアドレスジェネレータ２３、２４としてはLucent Technology社のＯＲＣＡ  ＦＰＧＡ  ＯＲＴ８８５０コンポーネントである。アドレスジェネレータ２３、２４及びシフトレジスタ２１、２５、及び、エンコーダ２０の機能は、コンピュータコントローラ２６の制御下における命令コードとして実現されることも可能である。
【００２８】
この実施例においては、リード−ソロモンコードは、８ビットシンボルよりなるガロワフィールド及び（２５５−２２３）コードを用いる。よって、コードワードは２５５オクテット（バイト）長であり、そのうちの２２３がペイロード、残りの３２がチェックシンボルである。コードは、３２／２すなわち１６バイトのエラーを修正する能力を有している。このことは、１６個までの孤立したエラー（すなわち、個々のエラーが相異なったオクテット内に存在する）は、修正されうることを意味している。しかしながら、全てのエラーがある１６バイトに収まっている場合には、あらゆるブロックにおける１６×８すなわち１２８ビットのエラーまでが修正されうることをも意味している。
【００２９】
１０ｋｍ範囲に亘る自由空間光伝送の現実のフィールド実験例では、およそ９０％までのフェージングが８ミリ秒未満の持続時間を有していた。毎秒２．５×１０９のビットレートを有するデータストリームにおいては、８ミリ秒の持続時間を有するフェージングのうちにＥ＝２０×１０６ビットが失われることになる。バーストエラーによって最大１２８ビットのコードワードが失われる可能性があって、しかも、そのバーストエラーがマスクされなければならないとすると、この例においてはインターリーブされなければならないコードワードの個数は、
（式４）  Ｅ／ｂ＝２×１０７／１２８＝１５６，２５０
となる。
【００３０】
コードワードは２５５×８＝２０４０ビット長であるため、インターリーブバッファストア２２の大きさは、
（式５）  （Ｅ／ｂ）＊ｎ＝１５６，２５０＊２０４０＝３１８，７５０，０００ビット
となる。
【００３１】
このサイズのバッファストアは、容量１２８メガビットあるいは２５６メガビットのＳＤＲＡＭを用いて実現されうる。
【００３２】
バッファストア２２におけるＳＤＲＡＭデバイスへの書き込みプロセスは、２０．８ナノ秒（毎秒２．８×１０９ビットでエンコードされたデータストリームのビット期間の６０倍）のうちに６０ビットワードを生成することを要求する。単純な方法でインターリーブを実現するためには、１５６，２５０というアドレス増分（すなわち、行列のカラムエントリ）でエントリを書き込むこと、及び、その後に、インターリーブされたコードワードを送出する目的で、連続したアドレス（ロウ）を読み出すこと、が必要となる。現行のＳＤＲＡＭデバイスに係るパラメータを考えると、このことは困難である。なぜなら、孤立した読み出しあるいは書き込み動作に係るレイテンシー効果が存在するためである。ＣＡＳレイテンシーが２のＳＤＲＡＭデバイスに関しては、ＳＤＲＡＭの別個のロウ（ページ）への書き込みに係る最大レートは７サイクル毎である。これは、Micron Technologies社製のＭＴ４８ＬＣ８Ｍ１６Ａ２の場合の例である。Micron Technologies社製のこのＳＤＲＡＭデバイス及び同様のものに係るさらなる情報は、同社のウェブサイトである http://www.micron.com より得られる。他のメーカーもＳＤＲＡＭデバイスを製造しており、それらの同様のデバイスが本発明を実施する際に適用されうることは当業者には明らかである。
【００３３】
ＳＤＲＡＭデバイスにおけるオーバーヘッド動作を最小にする性能を実現する目的では、１３３ＭＨｚの最大クロックレート、すなわち、７．５ナノ秒のサイクルタイムを有するＣＡＳ＝２のＳＤＲＡＭを用いることが望ましい。しかしながら、バッファストア２２のＳＤＲＡＭデバイスに関係している７サイクルの書き込み期間は、新たな６０ビットコードワードセグメントが生成されるために必要とされる２０．８ナノ秒の読み出しレートを実現することはできない。
【００３４】
この問題を克服するために、本発明は現行の技術に係るＳＤＲＡＭデバイスの特徴、すなわち、ページ（すなわちロウ）内であればデバイスサイクルレートでＳＤＲＡＭデバイスを読み出しあるいは書き込み可能である、という特徴をうまく利用する。このことを例示するために、例えば、前掲されたMicron Technologies社製のＭＴ４８ＬＣ８Ｍ１６Ａ２という型番を有するＳＤＲＡＭデバイス（１６ビット×２Ｍ×４バンク）を考えると、そのページサイズは５１２×１６ビットワードであり、クロックレートは１３３ＭＨｚ（７．５ナノ秒）である。これらのデバイスが旧来の方式でアドレシングされると、書き込み当たりに７×７．５＝５２．５ナノ秒が必要となる。なぜなら、書き込みアドレス増分がページサイズを遙かに超過するからである。しかしながら、連続してアドレシングされた読み出し動作は、漸近的に７．５ナノ秒で実行されることが可能であり、これは、実際の送信に必要とされる２０．７ナノ秒よりも充分に小さい。
【００３５】
それゆえ、一般的な再マッピングストラテジーは、“読み出し”レートと“書き込み”レートとを等化することである。原理的には、この考え方は、ＳＤＲＡＭメモリの各ページを多数の“仮想”ページと見なすことであり、置換操作における読み出し動作の間になされるページ変更をより頻繁に必要とするようにする代わりに（物理的に）同一のページでの高速書き込みレートを勝つようとしようとするものである。図６は、Ｋ個の連続したエントリを単一の物理ページの書き込むための一般的な方法が示されており、その結果として、読み出しプロセスの際に、連続したアドレスの単一読み出しシーケンスにおいてＳＤＲＡＭのＰ個の各ページエントリを単に読み出す場合と比較して、Ｋ倍多くのページ変更を必要とする（ここで、Ｐはページサイズである）。
【００３６】
前述されている例の場合では、５１２ワードよりなるＳＤＲＡＭの各物理ページは、各々１５ワードずつよりなる３４ページから構成されるものとして定義されている（２ワードは無駄になっている）。置換行列は３４×１５０２５０という大きさであるため、インデックス化を系統的にするために３４という数が選ばれている。
【００３７】
次に、デインターリーブ−デコードを実行するハードウエアコントローラ、及び、バッファストア２２及び５２のアドレス再マッピングをいつ実行するのかについての決定、が記述される。
【００３８】
図５において、レシーバ側の信号抽出器１５は、コンピュータコントローラ５０、及び、トランスミッタ側のバッファストア２２と実質的に同一となるように構成されたＳＤＲＡＭバッファストア５２を有している。しかしながら、図５においては、バッファストアは、セル５１のようなメモリセルより構成されたマトリックスとして記されており、各々のセルがロウ１，２，．．．，Ｒ及びカラム１，２，．．．，Ｃの交点によって規定されている。コンピュータコントローラ５０は、トランスミッタ１２によって送信されたエンコード及びインターリーブ済みの信号９を自由空間媒体１３を介して受信する。コンピュータコントローラ５０によって制御されたアドレスデコーダ５３が、図３のセグメント３０ｆのような受信された各インターリーブ済みコードワードセグメントに係るアドレス情報を獲得し、バッファストア５２内のセルアドレスを規定して、そこにシーケンシャルに受信されたコードワードセグメントがストアされることになる。
【００３９】
バッファストア５２のセルの各ロウは、書き込みイネーブルドライバ５４によって制御されており、バッファストア５２のセルの各カラムは書き込みデータドライバ５５によって制御されている。インターリーブされたセグメントを送り込む宛先のアドレスは、アドレスデコーダ５３によって書き込みイネーブルドライバ５４に供給される。受信されたインターリーブ済みコードワードセグメントは、入力シフトレジスタ５６において集積され、書き込みデータドライバ５５に転送される。書き込みイネーブルドライバ５４の制御下で、書き込みデータドライバ５５は、コードワードセグメントを、ＳＤＲＡＭバッファストア５２のメモリセルマトリックスに転送する。
【００４０】
読み出しに関しては、読み出しイネーブルドライバ５７がＳＤＲＡＭバッファストア５２のセルの各ロウに接続されており、読み出しデータドライバ５８がＳＤＲＡＭバッファストア５２のセルの各カラムに接続されている。ＳＤＲＡＭバッファストア５２からの読み出しに際しては、コンピュータコントローラ５０において、仮に単純な方式でマッピングされた場合にＳＤＲＡＭバッファストア５２よりなるマトリックスが読み出しの際に処理速度を低下させないか否か、あるいは、読み出しレートと書き込みレートとを等化するようにデインターリーブを実行する目的で行列を再マッピングする必要があるか否か、に関する決定が先になされる。バッファストア５２から読み出されたデータは出力シフトレジスタ５９に集積され、その後、デインターリーブされた出力データストリーム６０がリード−ソロモンデコーダ６１に供給されて、デインターリーブ済みデータストリームがデコードされる。デインターリーブ及びデコードされたデータストリーム６２は、リード−ソロモンデコーダ６１から出力されて、最終目的であるビデオあるいはデータアプリケーションに供給される。簡単のために全て５１という符号が付された制御信号経路は、コンピュータコントローラ５０から、機能ブロック５３，５４，５５，５６，５７，５８及び５９に対して供給される。
【００４１】
デインターリーブに関しては、バッファストア５２は、読み出しイネーブルドライバ５７をアクティベートすることによって、読み出しデータドライバ５８によってアクセスされたマトリックスからデータが読み出される。必要とされる場合には、物理的なアドレスの再マッピングが以下の基準に従って実行される。一般に、トランスミッタあるいはレシーバにおいて、アドレス再マッピングは、ＳＤＲＡＭバッファストア５２の１ページにストアされうるマトリックスのから無数が余りにも小さい場合、すなわち、オーバーヘッドサイクルがページ変更前に（ロウが読まれる場合に）発生するメモリ参照回数に亘って償還されなければならず、結果として、システム要求を満たさない実効メモリサイクルレートとなってしまう場合に実行される。本明細書に記されている具体的なデバイス速度パラメータに関しては、１ページに保持されなければならないカラム数は４以上でなければならない。ページ変更の際に７サイクルのオーバーヘッドが発生するのに対してシステムサイクルレートが２０．８ナノ秒であるため、４エントリのＦＩＦＯエラスティックメモリ（先入れ先出しメモリ）が、ページ変更に関する橋渡しとなる手段を提供する。ページ変更によって負わされる５２．５ナノ秒の中断は、当該エラスティックメモリの３エントリ分のバックログで実効的にマスクされうる。
【００４２】
バッファストア５２のアドレスの再マッピングに係る方法が、図６から図８に示されている。（バッファストア２２におけるアドレス再マッピングも、以下に記述されているものと同一の方式で実現されうる。）図６において、書き込み動作の間、エントリ１，１、１，２．．．．１，３４は、第一ＳＤＲＡＭページの物理アドレス０、１５、．．．、４９５にストアされる。しかしながら、これらは、それぞれ、アドレス０、１５６，２５０、３３×１５６，２５０の読み出し動作の際に処理される。アドレスマップの分割によってロウ長が１ファクタとなっているため、この例においては３４エントリ中の正確に１５ロウが１物理ページにフィットすることになる。図６に示された“仮想”アドレスは、置換を完了させるために実行される読み出しのシーケンスを指し示している。
【００４３】
以下に、再マッピング方法が、行列転置操作に関連して記述される。インターリーブ目的で３４個の６０ビットエントリに分割された２０４０ビット長のコードワードに係る前述のパラメータに関して、第一コードワード中の６０ビットエントリが
１，１  １，２  １，３  ．．．．  １，３４
として指し示されており、一般に、コードワードｍ中のｎ番目のエントリがｍ，ｎで指し示されると仮定する。
【００４４】
１５６，２５０コードワードの各々からの対応するエントリのインターリーブを要求する前述の例においては、マトリックスの次元は３４ロウ×１５６，２５０カラムとなる。マトリックスが図７に示されているように書き表わされる場合には、この例の場合では、トランスミッタ側においてカラム順に読み出される。なぜなら、カラムの次元が小さいために、トランスミッタ側においてアドレス再マッピングを適用する必要がないからである。このマトリックスの１５カラムは、５１２アドレスＳＤＲＡＭの１ページを専有する（１５×３４＝５１０であって２つのアドレスはスキップされる）。それゆえ、図７において２７で示されているように、これら最初の５１０エントリを第一ページに書き込み動作の間にストアすることは、読み出し動作の間（すなわち、転置が実行されつつある間）のアドレスパターンを実現する。このアドレスパターンにおいては、ＳＤＲＡＭの物理ページ変更が、当該マトリックスがロウによって読み出されている間に１５回のメモリ参照毎にのみ発生することになる。すなわち、マトリックスの一部である２７の読み出しに引き続く連続した一部の読み出しにおいて、１５回のメモリ参照毎にのみＳＤＲＡＭ物理ページの変更が必要になる。このページ変更オーバーヘッドの償還は、前述されたパラメータ例に係るリアルタイム動作を維持するためには充分である。
【００４５】
しかしながら、レシーバ側では、同一のマトリックスがロウで受信されてＳＤＲＡＭバッファストア５２よりなるマトリックスに書き込まれる。このマトリックスは、デインターリーブを実現するために転置されなければならない。図８に示されているように、受信されたエントリがＳＤＲＡＭバッファストア５２にシーケンシャルに書き込まれるとすると、結果として、書き込みの間に５１２メモリ参照毎にページ変更がなされることになるが、その後にマトリックスをカラム毎に読み出す際に各メモリ参照毎にＳＤＲＡＭページ変更が必要になる。このため、ここで考えているパラメータ例に関しては、リアルタイム動作は維持できない。
【００４６】
この問題は、本発明に従ったアドレス再マッピングによって克服される。図７に例示されているものと同一の３４×１５のマトリックスの一部が、レシーバ側で、オーバーヘッド動作を書き込みから読み出しへ再分配し、最小量のエラスティックメモリでリアルタイム動作を可能にする目的で、複製される。このことは、エントリがロウで受信される際に、ＳＤＲＡＭの物理ページ変更が、５１２エントリ毎ではなく１５エントリ毎に発生することを意味している。マトリックスのあるロウ全体にストアする目的で１０４１６ページの各々に１５エントリをステップ書き込みした後（ここで考えている例では、最終ページは、１５エントリではなく１０エントリのみを保持している）、次の１５エントリが最初のＳＤＲＡＭ物理ページに書き込まれ、マトリックスの第二ロウの各々のエントリが対応する第一ロウと同一の物理ページに現われるようになる。
【００４７】
読み出し及び書き込みオーバーヘッドの正確な等化のためには、ページサイズの平方根に等しい次元を有する正方サブマトリックスを選択することが必要である。本明細書において述べられている例（５１２ワードというページサイズ）の場合には、これは整数ではない。（ページ変更前に発生する連続したメモリ参照数を表わす）マトリックスの最小次元がページ変更に係るＳＤＲＡＭオーバーヘッドを償還するために充分である場合には、どのような次元のサブマトリックス（サブマトリックスは、単一の物理ページに書き込まれるエントリの組を表わしている）でも充分である。この償還は、メモリの最大バーストレートと新たなエントリが読み出しあるいは書き込みされる際の転送レートとの関係に依存している。バーストレートは、オーバーヘッドサイクルをカバーするために、転送レートよりも充分大きくなければならない。よって、２０．８ナノ秒でのエントリ受信あるいは送信レート、１ページに対する７．５ナノ秒のＳＤＲＡＭレート、及び、５２．５ナノ秒のページ変更オーバーヘッドの場合には、オーバーヘッドを１５回のメモリ参照に対して償還することは、４ワードのエラスティックストアを用いてリアルタイム動作を維持するのに充分である。
【００４８】
一般に、どのような場合に再マッピングが実装されるかという質問は、使用するＳＤＲＡＭデバイスのスピード、１ページに保持されなければならないカラム数（前記実施例の場合は４以上）、データレートその他のファクタに依存する。
【００４９】
例えば、前記実施例のパラメータは、データストリームの高速性及びクロックレートを容易に入手可能なメモリ及びデジタルロジックデバイスにおいて実現可能な値に低減することの必要性のために、（６０ビットという））大きなデータ断片、すなわちワードサイズを選択することを必要としている。ワードサイズが大きいため、２０４０ビットのリード−ソロモンコードワードをインターリーブ目的で分割する際に必要となるワード数はわずかに３４である。このことは、入力ワードが連続したアドレスにストアされる場合には、７サイクルオーバーヘッドを償還するためのページ変更間の連続したメモリ参照数としては充分ではなく、従ってアドレス再マッピングが適用される。
【００５０】
図９に示された流れ図は、トランスミッタ側においてＳＤＲＡＭ読み出し動作と書き込み動作とのバランスを実現するための前述された重要なプロセス段階をまとめたものである。図１０は、レシーバ側において、送信側の装置及びプロセスによって生成された符号化及びインターリーブ済み信号をデインターリーブするための重要なプロセス段階を例示している。
【００５１】
以上の説明は、本発明の一実施例に関するもので，この技術分野の当業者であれば、本発明の種々の変形例が考え得るが、それらはいずれも本発明の技術的範囲に包含される。
【００５２】
【発明の効果】
以上述べたごとく、本発明によれば、連続した２千万ビット程度の大きさを有するバーストエラーが、コンポーネントに関して実現可能な程度の費用増及び追加レイテンシーに関して無視しうる程度のコストで修正されるような装置及びその実現方法が提供される。
【図面の簡単な説明】
【図１】  自由空間光通信システムを模式的に示すブロック図。
【図２】  本発明を実行する送信端システム及びそのコンポーネントを模式的に示すブロック図。
【図３】  インターリーブを行なうための準備としてのコードワード分割例を模式的に示す図。
【図４】  分割されたコードワードブロックをインターリーブするためのプロトコルを示す流れ図。
【図５】  本発明を実行する受信端システム及びそのコンポーネントを模式的に示すブロック図。
【図６】  ＳＤＲＡＭページ変更に関して“読み出し”と“書き込み”のオーバーヘッドをバランスする目的でＳＤＲＡＭマトリックスのアドレスを再マッピングする方法を模式的に示す図。
【図７】  “読み出し”と“書き込み”のオーバーヘッドをバランスする目的でＳＤＲＡＭマトリックスのアドレスを再マッピングする別の方法を模式的に示す図。
【図８】  レシーバがエントリをシーケンシャルにストアするばあいに、５１２アドレスよりなる一ページに受信したマトリックスを保持する方式を模式的に示す図。
【図９】  送信端におけるアドレス再マッピングを含むプロセスを示す流れ図。
【図１０】  受信端におけるアドレス再マッピングを含むプロセスを示す流れ図。
【符号の説明】
１０  データストリームペイロード
１１  シグナルコンディショナー
１２  トランスミッタ
１３  自由空間媒体
１４  レシーバ
１５  シグナルエクストラクタ
１９  媒体状態センサ
２０  リード−ソロモンエンコーダ
２１  入力シフトレジスタ
２２  バッファストア
２３、２４  アドレスジェネレータ
２５  出力シフトレジスタ
２６  コンピュータコントローラ
３０  コードワード例
【図１】
0004108359.tif 000002
【図２】
0004108359.tif 000003
【図３】
0004108359.tif 000004
【図４】
0004108359.tif 000005
【図５】
0004108359.tif 000006
【図６】
0004108359.tif 000007
【図７】
0004108359.tif 000008
【図８】
0004108359.tif 000009
【図９】
0004108359.tif 000010
【図１０】
0004108359.tif 000011