(57)【特許請求の範囲】
【請求項１】
データブロックの入力シーケンスから、文字の直流平衡シーケンスを生成するための方法であって、
データブロックの入力シーケンスから複数のデータブロックを受け取るステップと、
一連の疑似ランダム２進値からなり、受け取った前記データブロックの各々について擬似ランダム２進値を与える、疑似ランダム２進シーケンスを発生するステップと、
受け取った前記データブロックの各々について、該データブロックの擬似ランダム２進値に基づいて反転条件値を決定するステップと、
受け取った各データブロックの前記擬似ランダム２進値に基づく反転条件値に従って、選択された受信データブロックの全ビットを反転させ、文字の直流平衡シーケンスを生成するステップと、
を含む方法。
【請求項２】
前記データブロックのうちの現在のデータブロックの論理内容を表す値を決定するステップと、
前記値に基づいて制御信号を発生するステップと、
前記値に基づいて前記疑似ランダム２進値の１つを選択的に反転させるステップと、
をさらに含む、請求項１の方法。
【請求項３】
前記現在のデータブロックにおける事前定義された種類の論理値の数が閾値を越えた場合、前記制御信号が反転を指示する、請求項２の方法。
【請求項４】
データブロックの入力シーケンスから、文字の直流平衡シーケンスを生成するための装置であって、
前記データブロックの入力シーケンスから１つのデータブロックを受け取る手段と、
一連の疑似ランダム２進値からなり、受け取った前記データブロックの各々について擬似ランダム２進値を与える、疑似ランダム２進シーケンスを発生する手段と、
受け取った前記データブロックの各々について、該データブロックの疑似ランダム２進値に基づいて反転条件値を決定する手段と、
受け取った各データブロックの前記擬似ランダム２進値に基づく反転条件値に従って、選択された受信データブロックの全ビットを反転させ、文字の直流平衡シーケンスを生成する手段と、
からなる装置。
【請求項５】
前記データブロックのうちの現在のデータブロックの論理内容を表す値を決定する手段と、
前記値に基づいて制御信号を発生する手段と、
前記値に基づいて前記疑似ランダム２進値の１つを選択的に反転させる手段と、
をさらに含む、請求項４の装置。
【請求項６】
前記データブロックにおける事前定義された種類の論理値の数が閾値を越えた場合、前記制御信号が反転を指示する、請求項５の装置。
【請求項７】
前記受け取る手段がバッファを含み、
前記発生する手段がシフトレジスタを含み、
前記決定する手段が前記シフトレジスタに接続されたXORゲートを含み、
前記反転させる手段が前記バッファおよび前記XORゲートに接続されたインバータロジックを含む、請求項４の装置。
【請求項８】
前記現在のデータブロックの論理内容を表す値を決定するカウンタと、
前記値に基づいて制御信号を発生するXORゲートと、
前記値に基づいて前記疑似ランダム２進値の１つを選択的に反転させるインバータと、
をさらに含む、請求項７の装置。
【請求項９】
前記現在のデータブロックにおける論理値「１」の数が閾値を越えた場合、前記制御信号が反転を指示する、請求項８の装置。
【請求項１０】
前記受け取る手段がバッファを含み、受け取られる各データブロックがＮを正の整数としてＮビットからなり、
前記発生する手段がシフトレジスタを含み、
前記決定する手段が反転条件値ロジックを含み、
前記反転させる手段が、最大でＮビットからなるデータブロックをそれぞれ受け取るインバータロジックを含む、請求項４の装置。
【請求項１１】
前記Ｎが８である、請求項10の装置。
【請求項１２】
前記Ｎが９である、請求項11の装置。
【発明の詳細な説明】
関連出願に対するクロスリファレンス
本出願は1995年10月５日に出願された同時係属中の米国特許出願第08/539,816号の一部継続出願であり、この一部継続出願の開示内容はここでの参照により本書に取り込まれる。
発明の背景
I.  発明の分野
本発明は、デジタル伝送システムのためのコード体系に関する。より特定的には、本発明は、非平衡データストリームが直流平衡されたストリームに変換されて伝送が容易にされる、直流平衡され、遷移制御されたコーディングシステムに関するものである。
II.  関連技術の記述
電子技術及びコンピュータ技術が発展し続けるにつれて、手近に位置していようと或いは遠くにあろうと、異なる装置の間で情報を通信することの重要性はますます重要になっている。例えば今や、回路基板上の異なるチップの間、システム中の異なる回路基板の間、そして異なるシステム相互の間での、高速通信に対して備えることは、これまでにも増して望ましいことである。また特に、グラフィック又はビデオ情報、多重の入出力チャンネル、ローカルエリアネットワーク、及びこれらに類するものを用いた、集約的データ消費システムにおいては、データ通信のために大量のデータが必要とされることを考慮すれば、こうした通信を非常な高速で行うことも、ますます望ましくなっている。
特に望ましいのは、個々のパーソナルコンピュータ、ワークステーション、或いはその他の計算機装置といった、通常はデータがパラレルデータバスを用いて内部転送されるものが、比較的単純な伝送ラインを介して相互に通信できるようにすることである。現在一般的に入手可能な計算機システムの内部の、64ビット及びより幅広いデータ経路とは対照的に、こうした伝送ラインは典型的には、一つ又は二つだけの導体を含んでなる。コンピュータディスプレイへのビデオデータの転送の場合、並びにデジタルカメラからコンピュータシステムへの高速ビデオ入力の場合にも、既存の相互接続インタフェースは通常、かかるパラレルデータ経路を用いている。最近、ディスプレイの解像度が向上した結果として、このような相互接続システムの所要帯域幅は増大した。このことは、電磁妨害雑音（EMI）並びに伝送路ノイズを増大させ、それによって安全性と信頼性に関する懸念を生じさせている。加えて、液晶ディスプレイパネルの進化によって必要とされる、多数の信号及びデータラインが、相互干渉の可能性を増大させている。
パラレルデータをシリアル形式に高速変換し、シリアルリンクを介して伝送するのに備えようとする、多数の製品が市販されている。こうした製品の一つに、ヒューレット・パッカード社製のＧ−リンクチップセットがある。このチップセットは送信セットを含み、21ビット幅のパラレルデータを扱うことができる。しかしながら、必要とされる速度を得るために、このチップセットはバイポーラプロセスを用いて製造されており、また受信機と送信機に別々のチップを必要とする。こうした解決策は、非常に電力消費型であり、高価につく。
別の商業的な解決策が、フランスのブル社により提供されている。このブル社の技術は、パラレルからシリアルへのデータ変換のために、周波数逓倍器を採用している。こうしたデバイスは通常、シリコン基板に対してノイズを導入し、チップ上の他の逓倍器に干渉する。加えて、このブル社の技術は、パラレルからシリアルへの変換のために、排他的ORツリーを使用する。排他的ORツリーの使用は周知であり、かかるデバイスの全ての経路を介しての遅延を等化することが困難であることも、よく知られている。加えて、このブル社の技術は、論理の完全な振れを有する出力信号を用いている。このことは、より遅い性能に帰着する。
シリアルリンクを介しての伝送特性を改良するための、種々の技術が存在している。例えば、クロックの回復を促進し、交流結合を可能にすべく、伝送されるシリアルデータの周波数スペクトルを変えるために、伝送コードを採用することができる。伝送コードの各々はまた通常、文字同期、フレーム区切り、及び恐らくは診断目的で使用される、データアルファベット中には含まれていない特殊文字をも提供する。コーディングはまた、伝送媒体を通じての伝播中に生ずる信号歪みを制限する手段として、伝送帯域幅を低減するためにも用いられ得る。ワイヤリンクの場合には、ドライバ及び受信回路を伝送ラインから分離することを可能にし、またライン上での信号歪みを低減させるために、直流成分を含まず、また低周波数成分が殆どないコードを用いることが望ましい。効率的なコーディングシステムはまた、デコーディングに際してロック情報を取り出すことができるような仕方でもって、エンコードされたデータでクロック情報をエンコードする性質のものであるべきである。このことは、専用クロックラインを介して別個のクロック信号を提供する必要性を回避させる。というのは、デコーティングに際して回復されるクロック情報を代わりに、受信回路により用いることができるからである。
ローカルエリアネットワーク（LAN）の内部では、伝送コード体系は、種々の長さのワードをより長い文字（キャラクタ）に変換するために存在する。例えば、３ビットのワードは４ビットの文字に変換することができ（3B/4B）、４ビットのワードは５ビットの文字に変換できる（4B/5B）といった具合である。典型的には、コーディングとデコーディングは、「キー」を用いて達成され、そこにおいて各ワードは対応する文字にマッピングされる。残念なことに、この型式のマッピング体系は複雑であり、それによって一般に、ランダム論理の使用が排除され、またルックアップテーブルその他を包含する具現化形態がしばしば必要とされる。ROMを用いて実現されるルックアップテーブルはかかりのチップ面積を消費し、しかも回路動作を遅くする傾向があることから、このことは不具合である。
米国特許第4,486,739号には、特別な8B/10Bコード体系が記載されている。具体的には、２進直流平衡コードとこれに関連するエンコーダ回路が、８ビットバイトの情報を伝送用に10個の２進数に翻訳するよう動作可能であるとして記載されている。この8B/10Bコーダは、5B/6B足す3B/4Bのコーダに区分されている。このシステムは、表向きは直流平衡コーディングを容易にするものの、相対的に長い符号化及び復号化間隔を必要とする傾向がある。
シリアルデータ伝送を容易にするように用いられる、コーディング技術の開発は進歩を遂げているが、非常に高速なシリアルデータ伝送を効率的に支援することのできるコード体系に対するニーズが残存している。こうしたコード体系はまた、交流結合とクロック回復を容易にするために、直流平衡されていなければならない。加えて、デコーディングの際の高速同期を可能にすることにより、リアルタイムデータ伝送を容易にすることが可能なコード体系を提供することも望ましい。加えて、特定のブロックが平衡エンコード体系によって修正されたか否かを示す付加ビットを備える必要性なしに、直流平衡されたデータストリームを生成することの可能なコーディング体系を提供することも望ましい。
発明の概要
本発明は一つの側面において、データバイトの入力シーケンスから、遷移制御された直流平衡文字シーケンスを生成するための方法及び装置を指向している。各々のデータバイト内のビットは、各データバイトにおける論理「１」信号の数に従って選択的に補数を取られ、かくして選択的に補数の取られたデータブロックが生成される。次いで、先に文字へとエンコードされた、選択的に補数の取られたデータブロックの論理値の中に含まれる、異なる種類の論理値の間における、累積的ディスパリティが決定される。加えて、選択的に補数の取られたデータブロックの現在エンコードされつつあるブロックと関連する、候補文字における現在のディスパリティも決定される。現在のディスパリティが、累積的ディスパリティの第一の極性と反対の極性である場合、候補文字は、選択的に補数の取られたデータブロックの現在のブロックに割り当てられる。或いは、現在のディスパリティが第一の極性である場合は、この候補文字の補数が、選択的に補数の取られたデータブロックの現在のブロックに割り当てられる。
高遷移動作モードにおいては、最小数未満の論理「１」信号を含むデータブロック内のビットは選択的に補数を取られて、かかる選択的に補数の取られたデータブロックの各々が、最大数を越える論理「１」信号を含むようにされる。低遷移動作モードにおいては、事前定義数を越える論理遷移を有するデータブロック内のビットは選択的に補数を取られて、かかる選択的に補数の取られたデータブロックの各々が、最大数未満の論理遷移を含むようにされる。高遷移動作モード及び低遷移動作モードの何れにおける、かかる選択的に補数の取られたデータブロックの各々の符号化文字へのエンコードに際しても、事前定義ビットがセットされて、選択的な補数化が実行されたことが示される。
別の側面において、本発明は、高速デジタル信号伝送システムからなる。このシステムは、デジタル入力データをデータ文字にエンコードし、また制御データを制御文字にエンコードするエンコーダを含む。データ文字の各々は、第一の範囲内に第一の複数の論理遷移を有し、制御文字の各々は、第一の範囲とは異なる第二の範囲内において、第二の複数の論理遷移を有する。データ文字及び制御文字はシリアルデータストリームに変換され、通信リンクを介して伝送される。
この高速デジタル信号伝送システムはさらに、通信リンクからシリアルデータストリームを受信し、受信したデータ文字と制御文字をそこから回復するための、非直列化器を含んでいる。受信した制御文字は、その内部で検出される論理遷移の数に基づいて、受信したデータ文字と識別される。非直列化器と結合されるデコーダが、受信したデータ文字及び受信した制御文字をデコードするように動作する。
別の側面では、一つの実施形態においては、９ビットのデータブロックの入力シーケンスは平衡されて、直流平衡された文字シーケンスを生成する。シフトレジスタ発生器が、疑似ランダム２進シーケンスを発生する。この疑似ランダム２進シーケンスの２つのビットは論理的に組み合わせられて、疑似ランダム２進シーケンス中にある別のビットを反転するか否かを決定し、それによって疑似ランダム２進シーケンスを循環させる。またこの疑似ランダム２進シーケンス中の１つのビットは、入力されてくる９ビットのデータブロックにある全てのビットを選択的に反転させる規準として用いられ、それによって、いずれは直流平衡されるに至る出力ストリーム中に、９ビットのデータブロックを生成する。
【図面の簡単な説明】
本発明の付加的な目的及び特徴は、添付図面に関連して参酌した場合に、以下の詳細な説明及び添付の請求の範囲から、より容易に明らかとなるものである。
図１は、高速デジタル伝送システム内に具現化された、本発明の直流平衡エンコードシステムを示すブロック図である。
図２は、データのフローチャートの形における、本発明の直流平衡エンコーダの全体的な機能的編成を示す。
図３は、図１の伝送システム内部に含まれるデコーダのブロック図表示を提供している。
図４は、図３のデコーダの、交互バイト反転デコーダモジュールのランダム論理実施形態を示す。
図５は、図３のデコーダと関連して動作する、デコーダ同期モジュールにより実行される同期化プロセスを示すフローチャートである。
図６は、高遷移モード動作に際して、デコーダ同期モジュールにより実行される同期化プロセスを示すフローチャートである。
図7A及び図7Bは、エンコーダの例示的な実施形態の概略表示を提供している。
図8A及び図8Bは、デコーダ同期モジュールの好ましい実施形態の概略表示を提供している。
図9A及び図9Bは、遷移最適化器の代替的な実施形態のフローチャート表示を提供している。
図10は、図9A及び図9Bの遷移最適化器を具現化する論理回路を示す。
図11は、フレーム同期スクランブリングを用いて遷移最適化フレームを直流平衡するための平衡エンコード回路を示す。
図12は、図11の平衡エンコード回路でエンコードされた直流平衡フレームをデコードするための、平衡デコード回路を示す。
図13は、自己同期スクランブリングを用いて遷移最適化フレームを直流平衡するための平衡エンコード回路を示す。
図14は、図13の平衡エンコード回路でエンコードされた直流平衡フレームをデコードするための、平衡デコード回路を示す。
好ましい実施例の説明
I.  システムの概観
図１は、高速デジタル伝送システム10内に具現化された、本発明の遷移制御された直流平衡エンコードシステムを示すブロック図である。図１のシステム10においては、８ビットバイトのパラレルデータ14が、本発明に従って遷移制御された直流平衡8B/10Bコーディングを実行するよう動作する、直流平衡エンコーダ18に供給されている。結果として生じる10B符号化文字22は、10ビットの文字をシリアルデータストリームに変換して、シリアルデータリンク30（例えば光ファイバケーブル又はツイストペア銅線）を介して伝送するよう配置された、直列化器26に供給される。本明細書で記載されるところでは、エンコーダ18によって実行される符号化アルゴリズムの比較的簡単な数学的特性により、ランダム論理での経済的な高速実施形態が可能となる。
シリアルデータストリームは、シリアルデータリンク30から非直列化器34によって受信され、10ビットの文字データ38に変換される。この10ビットの文字データ38は次いで、デコーダ44によって８ビットのデータバイト42へとデコードされる。後述するように、エンコーダ18とデコーダ44は両方とも、リアムタイムのデータ処理が可能な、単純なデジタル論理回路を用いて、経済的に実現することができる。
II.  直流平衡遷移制御符号化及び復号化システム
以下では、エンコーダ18の内部で実行される、8B/10Bの遷移制御コード体系について、詳細な説明を行う。ここで開示される遷移制御コードは、「帯域内」コード文字の高遷移セット又は低遷移セットの何れかを使用することを考慮している。高遷移帯域内コード文字の各々は、入力データバイトから導かれ、この入力データバイトにおいては、その８つのビットの間に４以上の論理遷移が存在している。同様にして、低遷移帯域内コード文字の各々は、入力データバイトから導かれ、この入力データバイトにおいては、その８つのビットの間に４未満の論理遷移が存在している。この体系は、258個の８ビットASC IIコードの128個が４以上の論理遷移を含んでおり、また残りの128個のASC IIコードが４未満の論理遷移を含んでいるという事実を利用するものである。
４未満の論理遷移を含んでいる128個の８ビットコードの各々は、４以上の論理遷移を含んでいる対応する８ビットコードにマッピング可能であり、また逆も同じであることが見出された。本明細書で記載するように、このマッピングは、マッピングされる８ビットコードの各々において、事前定義されたビットの補数を取ることによって達成できる。高遷移モードの符号化に際しては、４未満の論理遷移を有する入力バイト内のビットが選択的に補数を取られ、それによって４以上の論理遷移を有するバイトにマッピングされる。代わって、低遷移モードの符号化に際しては、４以上の論理遷移を有する入力バイト内のビットもまた選択的に補数を取られ、それによって４未満の論理遷移を有するバイトにマッピングされる。何れの符号化モードに際しても、対応する10ビットの符号化文字の生成に先立って、中間の９ビット符号化記号を生成するために、選択的に補数の取られたバイトに対して、事前定義された値のビットが追加される。入力バイトが、現在の符号化モード（即ち高遷移モード又は低遷移モード）により指示された数の論理遷移を含む場合には、９ビットの中間記号のどれが選択的に補数を取られたバイトを含むかを識別するために、追加ビットは事前定義された値の補数にセットされる。これにより結局、低遷移モードと高遷移モードの動作の両方において、10ビットの文字に符号化するために、256個の８ビットコードの全部のセットが利用可能となる。
従って次のことが理解されよう。即ち高遷移モードでの動作中に10ビットの符号化文字へと変換された８ビットコードの各々は、４以上の論理遷移を含むものである。同様に、低遷移モードでの動作中に10ビットの符号化文字へと変換された８ビットコードの各々は、４未満の論理遷移を含むものである。高遷移モード及び低遷移モードでの動作の間に生成可能な、これらの10ビット符号化文字のセットは、それぞれ、「帯域内」符号化文字の高遷移セット、及び帯域内符号化文字の低遷移セットとして特徴付けられる。高遷移セット内部の256個の帯域内文字と、低遷移セット内部の256個の帯域内文字を越えたところには、帯域外の256個の10ビット文字の高遷移セットと、10ビット文字の低遷移セットとが存在する。本発明の別の側面によれば、帯域外文字の高遷移セットと低遷移セットを用いて、種々の同期及びその他の特殊文字が定義される。高遷移セットに関連するこれらの「帯域外」文字の一つに対応する文字の各々は、４未満の論理遷移を含み、コード文字の低遷移セットに関連する帯域外文字の各々は、４以上の論理遷移を含む。帯域内文字と帯域外文字の間での遷移数の差は、選択された帯域外文字が制御文字として役立つことを許容し、また伝送されたデータストリーム内の帯域内文字から容易に識別可能なものとする。
高遷移セットの帯域内文字の各々の中の遷移数が比較的高いことを考慮すると、文字の高遷移セットは、タイミング回復を促進するために有利に用いることができる。他方、低遷移セットのコード文字内の低い数の遷移は、この文字セットを、電力消費及び／又は電磁妨害雑音（EMI）を最小限にすることが望ましい用途に用いるについて、最適なものとする。
本発明の一つの側面によれば、コード文字の低遷移セット及び高遷移セットの両者に関連する同期文字は、データ回復に際しての迅速な同期を容易にするために選択される。コード文字の低遷移セットが用いられている場合、同期に際しては特殊な帯域外文字のグループが用いられる。各々の特殊同期文字は、２進文字値の間の４より多い事前定義された数（例えば７）の論理遷移と、また文字値の間の事前定義された数（例えば２）の「非遷移」とを含む。以下で述べるように、特殊同期文字は、低遷移セットの帯域内文字から特殊同期文字の各々を識別するために、ランダム論理を使用することができるように選択される。次のものは、コード文字の低遷移セットと共に用いるための、帯域外同期文字の例示的なセットを構成する。
1100101010
1101001010
1101010010
1101010100
上記した帯域外同期文字の一つがプリアンブル期間内に３回又はより多くの連続回数にわたって伝送された場合でも、関連するデータ回復プロセスの間に同期文字が確実に検出されるということが、本発明の一つの特徴である。これに関して、「プリアンブル」シーケンスは、符号化文字の伝送の各々に先行するプリアンブル期間の間に送られるものである。プリアンブルシーケンスの伝送は、システムの初期化の一部としてのみではなく、符号化プロセスと復号化プロセスの間で同期が維持されるのを確実にするために、種々の他の時点においても生ずるものである。
本発明のコード体系は、256個の異なる８ビット２進コード値に特有の性質に基づくものである。表１を参照すると、256個の異なる８ビット２進コードは８つのグループG0−G7に分割されており、そこにおいて各々のグループG0−G7内にある２進コードは、同じ数の遷移を含んでいる。グループG0内部の２進コードの各々は、グループG0のコード内の一つ置きのビットを反転させることにより、グループG7内の対応する２進コードに変換可能であることが観察される。同様にして、グループG1,G2及びG3内の２進コードの各々は、一つ置きのビットを反転させることを通じて、グループG6,G5及びG4のそれぞれの中の２進コードの一つへと変換することができる。本明細書で記載するように、10ビット文字の高遷移セットは、グループG0−G3の８ビット２進コードを符号化することによって得られ、低遷移セットはグループG4−G7を符号化することによって得られる。
0003542809.tif 000002
高遷移符号化モードにおけるエンコーダ18の動作の間に、それに対して供給されるバイトグループG0−G3内の８ビット２進コードの各々は、一つ置きのビットを反転させることを通じて、バイトグループG4−G7内の対応する２進コードに変換される。逆に、低遷移符号化モードにおける動作に際しては、エンコーダ18に対して提供されるグループG4−G7内の８ビット２進コードの各々は、グループG0−G3内の対応する２進コードにマッピングされる。ここでの例示的な実施例では、一つ置きのビットの反転は、８ビット２進コードの偶数ビットを反転させることを通じて行われる。所与の８ビットコードの一つ置きのビットがこのようにして反転されたならば、この所与の８ビットコードから結果的に導かれた10ビットの符号化文字内の事前定義されたビットがセットされて、バイトグループの間でマッピングが行われたことが示される。
さて図２を参照すると、本発明の遷移制御直流平衡エンコーダ18の全体的な機能的編成が、データフローチャートの形で示されている。図２において、エンコードすべき８ビットのパラレルデータ14は、例えば８つのＤフリップフロップからなる入力ラッチ70にラッチされる。ラッチ70内のパラレルデータ14の各バイトの隣接するビットの間での論理値の遷移（Ｔ）の数をカウントするために、遷移カウンタ74が動作可能である。D7,D6,...D0（即ちＤ［7:0］）が、入力ラッチ70内にラッチされたデータの８つのビットからなるとすれば、遷移カウンタ74は次のようにしてＴを求めることができる。
0003542809.tif 000003
ラッチされたバイトのビット間に、４以上の論理遷移がカウントされたならば（Ｔ＞３）、カウンタ74によってCOUNTライン78は事前定義された論理値にセットされ、そうでない場合には（Ｔ≦３）この事前定義値の補数にセットされる。以下では、カウンタ74によって４以上の論理遷移がカウントされたならば（Ｔ＞３）COUNT＝０であり、他の場合には（Ｔ≦３）COUNT＝１であるとする。
図２に示されているように、遷移カウンタ82はCOUNTライン78とモード選択ライン86に応答する。モード選択ライン86は、コード文字の高遷移セット又は低遷移セットの何れを用いて符号化を実行するかを決定する。高遷移符号化が有効であることがモード選択ライン86によって示され、またラッチ70内に格納されているバイト内に４未満の論理遷移が存在することがCOUNTライン78によって記録されたならば、遷移コントローラ82は条件付き交互ビット反転（CABI）ロジック90に命名して、ラッチ70内に格納されたバイトの偶数ビットを反転させる。結果的に生ずる条件付き反転バイトは、４以上の論理遷移を有し、中間ラッチ94内に格納される。反対に、高遷移符号化が有効であり、入力ラッチ70に格納されたバイト内でカウントされる論理遷移が４以上である場合には、遷移コントローラ82はCABIロジック90に、そのバイトをラッチ70から（ビット反転なしに）中間ラッチ94へと単に転送させる。従って高遷移符号化モードに際しては、
Ｔ＜４ならば、
0003542809.tif 000004
そうではなくＴ≧ならば、
Ｅ［8:0］＝‘0'D7D6D5D4D3D2D1D0である。
ここで、Ｅ［7:0］は中間ラッチ94内に格納された８つのビットからなり、Ｅ［８］はCOUNTラッチ95内に格納されたCOUNTの値からなる。
低遷移符号化が選択されていることがモード選択ライン86によって示され、またラッチ70内に格納されているバイト内に４以上の論理遷移が存在することがCOUNTライン78によって記録されたならば、遷移コントローラ82は条件付き交互ビット反転（CABI）ロジック90に命令して、ラッチ70内に格納されたバイトの偶数ビットを反転させる。他の場合、つまり低遷移符号化が実行されており、入力ラッチ70に格納されたバイト内でカウントされる論理遷移が４以上である場合には、格納されたバイトはビット反転なしに、中間ラッチ94へと単に転送される。従って低遷移符号化モードに際しては、
Ｔ＞３ならば、
0003542809.tif 000005
であり、
そうでなければ、Ｅ［8:0］＝‘0'D7D6D5D4D3D2D1D0である。
CABIロジック90がラッチ94に対して、適切な範囲内に幾つかの論理遷移を有するバイトを提供した後に、直流平衡プロセスが実行される。このプロセスでは、10ビットの符号化文字ストリーム内部の相補的論理値の間における累積的ディスパリティが、エンコーダ18によって生成される。本明細書で使用する「累積的ディスパリティ」（Dcum）という用語は、以下に述べるような仕方でデコーダ44により達成される同期化に続いて、エンコーダ18によって生成される、０ビットに対する１ビットの過剰さを示すものである。「現在のディスパリティ」（Dcur）という用語は、ラッチ94内に現在格納されているバイト内部における、０ビットに対する１ビットの過剰さを参照するものであり、ディスパリティチェッカー96によって決定される。直流平衡モジュール98は、現在のディスパリティをラッチ99内に格納された累積的ディスパリティに対して比較するよう動作する。この比較結果は次いで、ラッチ94内に格納されたバイトを、出力レジスタ104への伝送の間に、条件付きバイト反転（CTBI）ロジック100により反転するか否かを決定するために使用される。このようにしCIBIロジック100は、エンコーダ18により生成されるシリアルストリームに関連する累積的ディスパリティを最小限にするように働く。以下に示すものは、エンコーダにより生成される直流平衡文字ストリームにおける10ビット文字Ｔ［9:0］の各々が、中間ラッチ94内に格納されたバイトＥ［7:0］とCOUNTラッチ95内のビットＥ［８］から導かれる仕方についての論理の記述である。
現在のディスパリティ（Dcur）は、ディスパリティチェッカー96によって次のようにして計算される。
0003542809.tif 000006
高遷移モードにおける動作中には、−２≦Dcum≦２であり、これに対して低遷移モードでの動作中には、−４≦DP≦４であることが注目される。直流平衡モジュール98の内部では、Dcur＝０又はDcum＝０であると判定されたならば、そのとき
E8＝‘0'ならば、
0003542809.tif 000007
D'cum＝Dcum−Dcurであり、
そうではなくE8がゼロに等くなければ、
Ｔ［9:0］＝‘0'E8E7E6E5E4E3E2E2E0、そして
D'cum＝Dcum＋Dcurである。
ここでD'cumは、ディスパリティ変更器108によって計算され、それによってラッチ99に格納された、更新された累積的ディスパリティである。
代わりに、Dcurの最上位ビット（MSB）とDcumのMSBが等しくないことが、直流平衡モジュールによって判定されたならば、そのとき
Ｔ［9:0］＝‘0'E8E7E6E5E4E3E2E1E0、そして
D'cum＝Dcum＋Dcur−E8である。
最後に、他の全ての場合について、DcurのMSBとDcumのMSBが等しいのであれば、そのとき、
0003542809.tif 000008
そして
D'cum＝Dcum−Dcur＋E8である。
このようにして、出力ラッチ104をＴ［7:0］として充填する過程において、CBIロジック100によりバイトＥ［7:0］を選択的に反転させることを通じて、累積的ディスパリティは低減され、直流平衡が達成される。Ｔ［８］の論理値は、入力ラッチ70で受け取ったバイトＤ［7:0］の偶数ビットが、バイトＥ［8:0］の生成に際して補数を取られているか否かを示すものであることが看取される。同様に、Ｔ［９］の論理値は、バイトＥ［7:0］がラッチ104への伝送の間に反転されたか否かを示すものである。
III.  復号化
図１を参照すると、非直列化器34はエンコーダにより生成された10ビット文字Ｔ［9:0］を受信し、ビットラインRX9,RX8,...,RX0（即ちRX［9:0］）上に、10ビットのパラレル受信データを生成する。この10ビットのパラレル受信データはビットラインRX［9:0］を介してデコーダ44へ、またデコーダ同期化モジュール114へと提供される。後にセクションIVで記述するように、この同期化モジュール114は、伝送データのフレーム境界（即ちＴ［9:0］）に対応して、10ビットのパラレル受信データ内に境界を確定するように動作する。具体的には、同期化モジュール114は、非直列化器34がどのビットラインRX［9:0］に対して、伝送バイトＴ［9:0］の各々の最初のビットＴ［０］に対応する受信ビットを提供しているのかを判定する。この判定を行った後に、同期化モジュール114はデコーダ44に対しフレーム境界ポインタ118を提供して、伝送された10ビット文字Ｔ［9:0］の最初のビットＴ［０］に対応するビットラインRX［9:0］の一つを識別する。この同期情報を受信したならば、デコーダ44は以下のようにして受信データRX［9:0］をデコードするように作用する。
図３は、デコーダ44のブロック図による表示を提供している。非直列化器によって生成される10ビットのパラレルデータが、ビットラインRX［9:0］を介してデコーダスイッチ150により受信されることが看取される。このデコーダスイッチ150は、ビットラインRX［9:0］を介して受信した10ビットのデータを、同期化モジュール114により提供されるフレーム境界ポインタ118の値に従って、交換ビットラインＳ［9:0］に切り替えるように作用する。具体的には、最初の伝送ビットＴ［０］に対応する受信ビットRX［9:0］の一つがビットラインＳ［０］に切り替えられ、二番目の伝送ビットＴ［１］に対応する受信ビットRX［9:0］の一つがビットラインＳ［１］に切り替えられる、といった具合である。伝送データバイトＴ［7:0］に対応して、ビットラインＳ［7:0］上に印加された交換データは、８ビットのラッチ154内に格納される。同様に、伝送ビットＴ［８］に対応する交換データビットＳ［８］は、１ビットラッチ158に提供される。ビットラインＳ［８］の論理値は、Ｔ［８］の論理値に追従するものであるから、ビットラインＳ［８］は交互ビット反転（ABI）デコーダ160に対して、入力データＤ［7:0］の偶数ビットが符号化プロセスの間に、CABIロジック90（図２）によって補数を取られたか否かを通知することになる。同様にビットラインＳ［９］（Ｔ［９］の論理値に追従する）は、符号化プロセスの直流平衡段階において、ラッチ104内に格納されたバイトがCTBIロジック100により補数を取られたか否かを、ABIデコーダ160に対して通知する。このようにしてデコーダ160は、符号化プロセスの間に８ビットラッチ154内に格納されたバイトＳ［7:0］に対して行われた論理演算について通知され、それによってランダム論理を用いた簡単な復号化が促進される。
さて図４に移ると、そこにはランダム論理によるABIデコーダ160の実施例が示されている。このABIデコーダは、８ビットの復号バイトDE［7:0］を生成するべく、10ビットのフレーム整列データＳ［9:0］を復号化するための、９個の排他的論理和（XOR）ゲートN1−N9のセットを含んでいる。図４の実施形態では、これらのXORゲートN1−N9は、次のようにして復号バイトDE［7:0］を生成する。
DE［７］：＝Ｓ［７］xor S［９］
DE［６］：＝Ｓ［６］xorβ
DE［５］：＝Ｓ［５］xor S［９］
DE［４］：＝Ｓ［４］xorβ
DE［３］：＝Ｓ［３］xor S［９］
DE［２］：＝Ｓ［２］xorβ
DE［１］：＝Ｓ［１］xor S［９］
DE［０］：＝Ｓ［０］xorβ
ここで、β：＝Ｓ［９］xor S［８］である。
IV.  同期化
上述したように、デコーダ同期化モジュール114はデコーダ44に対し、伝送された10ビット文字Ｔ［9:0］の各々のフレーム境界についての指示をもたらす。デコーダモジュール114はデコーダスイッチ150（図３）と共に、バレルシフタとして効果的に機能し、非直列化器からのパラレルデータRX［9:0］を、フレーム整列データＳ［9:0］へとシャッフルする。本発明によれば、同期化モジュール114によるフレーム境界の検出を容易にするために、プリアンブルシーケンスがエンコーダ18によって、種々の時点（例えばシステムのパワーアップ時）で生成される。例示的な実施形態においては、このプリアンブルシーケンスは、帯域内文字から容易に識別可能な、選択された帯域外文字の数回の繰り返しを含む。この場合にも、高遷移モード動作に際しては、帯域外文字の各々は４未満の論理遷移を含み、低遷移モード動作に際しては、帯域外文字の各々は４以上の論理遷移を含む。以下で論ずるように、各モードでの動作の間、デコーダ同期化モジュール114内での迅速なフレーム境界の識別を確保するための手段として、プリアンブル期間の間にエンコーダ18によって、特別に選択された帯域外文字の数回の繰り返しが生成される。プリアンブル期間の終結時には、モジュール114は、ビットラインRX［9:0］のどれが10ビットの伝送文字の最初のビットＴ［０］に対応するかを「知って」おり、フレーム境界ポインタ118を介してデコーダに対する通知を行う。
プリアンブル期間の間に伝送するための帯域外文字の適切なサブセットを選択することにより、同期化の達成のために必要とされる最悪の場合の時間を、在来の同期化体系により必要とされる時間に対して、短縮することができる。特に、低遷移モード動作の間は、以下の帯域外文字が「同期文字」として用いられる。
1100101010
1101001010
1101010010
1101010100
高遷移モード動作の間は、以下の帯域外文字が同期文字として用いられる。
1000001011
1000011111
1000111111
1001111111
1011111111
各プリアンブル期間の間、同じ同期文字の３回の繰り返しが、エンコーダ18によって生成される。本明細書で記述するように、エンコーダ18によって最も新しく生成された21ビットを処理することにより、同期化モジュール114は、所与のプリアンブル期間の間に伝送された同期文字の３回の繰り返しの内の、少なくとも１回を検出することできる。このことは、比較的短いプリアンブル期間の間に、同期化を達成することを可能にする利点を有する。
今度は図５に転ずると、低遷移モード動作の間にデコーダ同期化モジュール114によって実行される、同期化プロセスのフローチャートが提示されている。モジュール114の各クロックサイクルの間に、10ビットのブロックが非直列化器34から、第一の10ビットラッチ150にロードされる。またやはり各クロックサイクルの間に、10ビットのブロックが第一の10ビットラッチ150から、第二の10ビットラッチ154へと転送される。同様に、この第二の10ビットラッチ154内に現在格納されている10ビットのブロックは、各クロックサイクルの間に第三の10ビットラッチ158へと転送される。
図５により示されているように、排他的否定論理和（XNOR）演算（ステップ162）が、ラッチ150,154,158により保持されたデータの21ビット「ウィンドウ」の中に含まれる、隣接するビットの間で実行される。具体的には、この21ビットのウィンドウは、第三のラッチ158からの10ビットのブロックL3［9:0］と、第二のラッチ154からの10ビットのブロックL2［9:0］と、第一のラッチ150からのビットL1［９］とを含んでいる。この点につき、ビットL1［９］は、第二のラッチ154に転送された際に、ビットL2［９］となるビットである。低遷移モードの間の動作の例として、以下のパラレルビットシーケンスからなる21ビットのウィンドウ（即ちL3［9:0］,L2［9:0］,L1［９］）を考える。
101101001010110100101
隣接するビットの各対の間でXNOR演算が実行されたならば、次の結果が得られる。
00100010000009001000
図５により示されているように、このXNOR演算（ステップ160）の結果物でる20ビットは、４つの５ビットグループに分割される（即ちグループA,グループB,グループC,グループＤ）。現在の例では、これら４つの５ビットグループは、次のように定義される。
0003542809.tif 000009
上に列挙した高遷移モード及び低遷移モードの両方についての同期文字は、プリアンブル期間の間にグループA,B,C及びＤの間に特別な関係が生ずるように選択されている。即ち、プリアンブルの間にエンコーダ18によって生成された、同じ同期文字の３回の連続的生成が非直列化器34によって受信された場合に、同期化モジュール114に10ビットのパラレルデータとして提供するものである。
例示的な実施形態では、プリアンブル期間の間には、以下の二つの関係（条件Ｉ及び条件II）が、グループA,B,C及びＤの間に生じてくる。
条件I.  グループA,B,C及びＤに集合的に存在している論理"1"の数がちょうど４であり、以下の三つの事例の内の一つに相当する。
0003542809.tif 000010
図５により示されているように、グループA,B,C及びＤの各々における１の数は、"1"カウンタモジュール172,174,176及び178のそれぞれによって判定される。各グループA,B,C及びＤの中の"1"の数は、21ビットウィンドウ（ステップ160）における隣接ビットの間でのXNOR演算の結果により決定されるのであるから、各グループ内の"1"の数は、グループA,B,C及びＤに関連する21ビットウィンドウの４つのセグメントの各々における、隣接するビット間での論理値の「非遷移」の数を示すことになる。現在の例では、グループA,B,C及びＤの各々が、ただ一つの"1"を含んでいることが看取される。従って、現在の例は、事例＃１に相当する。
条件II.  グループＡを構成しているビットのシーケンスはグループＣのビットシーケンスに等しく、グループＢを構成しているビットのシーケンスはグループＤのビットシーケンスに等しい。即ち、グループＡ＝グループＣ、そしてグループＢ＝グループＤである。
本発明によれば、第一、第二、及び第三のラッチ150,154及び158の中に同じ同期文字が格納されている場合に、そしてその場合にのみ、条件Ｉと条件IIが両方とも満足される。即ち条件Ｉと条件IIの両者は、エンコーダ18により同じ同期文字が３回繰り返して発生された場合に、プリアンブル期間の間においてのみ満足される。本発明のこの側面については、低遷移モード動作に関して以下で説明する。
上記したように、ラッチ150,154及び158により提供された21ビットウィンドウの内部の隣接するビットは、ステップ160（図５）の間に排他的否定論理和を取られる。エンコーダ18によって生成される帯域内文字又は帯域外文字の各々は、長さがちょうど10ビットであるから、21ビットウィンドウには、一番目、二番目、及び三番目の10ビット文字の全部又は一部が含まれることになる。21ビットのウィンドウが、これらの一番目、二番目、及び三番目の10ビット文字からのビットを含む種々の形を以下に示す。
ビットの数
一番目の文字 二番目の文字 三番目の文字
１            10            10
２            10            19
３            10            ８
４            10            ７
５            10            ６
６            10            ５
７            10            ４
８            10            ３
９            10            ２
10            10            １
各々の文字は帯域内（例えばDATA）文字、又は帯域外コマンド又は同期（即ちSYNC）文字の何れかであるから、以下のものは、21ビットウィンドウに寄与する一番目、二番目、及び三番目の10ビット文字の間における、DATAとSYNCの可能な組み合わせを示すものである。
0003542809.tif 000011
例えば、21ビットのウィンドウは、一番目のSYNC文字の２ビットと、二番目のDATA文字の10ビットと、そして三番目のDATA文字の９ビットからなることができる（即ち組み合わせＣ）。
低遷移モード動作の間、全ての帯域内（例えばDATA）文字は、帯域内文字の隣接する10ビットの間の論理値に、最大で３つの論理遷移、或いは同義として、４以上の「非遷移」を含む。従って、低遷移モード動作に際して、二番目の文字がDATA文字である場合には、それは４以上の論理非遷移を含むことになる。条件Ｉの示すところによれば、21ビットのウィンドウ全体の中での論理非遷移の数は、その中に３つの同じSYNC文字が存在している場合、ちょうど４であるから、二番目の文字がDATA文字である場合には条件Ｉは満たされない。なぜなら、それは４以上の論理非遷移を含むからである。従って、条件Ｉが満たされるとするならば、そのとき21ビットウィンドウは組み合わせC,D及びＥ（即ち二番目の文字がDATA文字である）によって特定される文字の組からなることはできない。
本発明によれば、上に列挙した同期文字は、何れかのプリアンブル期間の間に伝送された一番目と三番目の文字が同一である場合に、条件IIが満たされるように選ばれている。従って組み合わせＢとＦは、条件IIを満足しない。それゆえ、組み合わせＡ（即ち３つの連続するSYNC文字）のみが、条件ＩとIIの両者を満足することになる。
図５を参照すると、条件Ｉと条件IIの両方が満足された場合（ステップ190）には、21ビットウィンドウ内で検出されたSYNC文字のフレーム境界を識別するために、以下に記載するようにして、グループＡとＢの内部の選択された隣接ビットが論理積を取られる（ステップ196）。21ビットウィンドウ内のSYNC文字の各々は、非直列化器34によってラッチ150にロードされるものであるから、各々のSYNC文字のフレーム境界は、かかるSYNC文字の各々の最初のビットが印加される、非直列化器34からのビットラインＲ［9:0］の一つに関して識別することができる。この識別が達成されたなら、フレーム境界ポインタ118によって、デコーダに対してこのビットラインＲ［9:0］の識別が通知される。
ステップ196の論理積演算は、第三のラッチ158（即ちL3［9:0］）にある全ての隣接ビットの間、及びL3［０］とL2［９］の間でも実行される。ステップ190の結果、条件Ｉと条件IIの両者が満たされたことが示されたならば、ステップ196の論理積演算の結果は、フレーム境界ポインタ118の値を示す、ただ一つの論理１のみを生成する。現在の例では、L3［9:0］：＝｛1011010010｝及びL2［９］：＝［１］であり、従ってステップ196の論理積演算の結果は、｛0010000000｝である。即ち、21ビットウィンドウの三番目の位置が、同期文字の第一のビットに対応している。従って現在の例では、フレーム境界ポインタ118は、非直列化器34により生成される各10ビット文字の最初のビットを運ぶものとして、10ビットラインRX［9:0］の三番目（RX［７］）を識別するようにセットされる。
ここでの例示的な実施例では、プリアンブルシーケンス（即ち同じ帯域外SYNC文字の３回の繰り返し）は、システムのパワーアップに際して、及びシリアルリンク30を介してのデータ伝送の隔たりの間にも送られる。このことは、エンコーダ18とデコーダ44の間でのタイミング同期を、長期にわたってデータ伝送がない場合であっても、維持できるようにする。
図６は、高遷移モード動作に際してデコーダ同期化モジュール114によって実行される、同期化プロセスを示すフローチャートである。図６によって示されている如く、高遷移モードの同期化プロセスは、低遷移モード動作（図５）の間に実行されるものと実質的に似通っている。特に、高遷移モードの同期化プロセスは、低遷移モードの同期化プロセスと、基本的には次の点で異なっている。
（ｉ）  ステップ160'において、ラッチ150',154'及び158'内の隣接するビットに対して、排他的否定論理和（XNOR）演算ではなく、排他的論理和（XOR）が実行される。
（ii）  ステップ196'において、各ビットとそのビットの直ぐ右側のビットの補数の間に、論理積演算が実行される（例えば
0003542809.tif 000012
といった具合）。このようにして、このANDゲートは論理"1"を生成し、"10"又はフレーム境界に対応する「立ち下がりエッジ」を識別する。
V.  エンコーダ及びデコーダ同期化モジュールのハードウェア実施形態
この項においては、エンコーダ18の具体的なハードウェア実施形態と、低遷移モード動作に際して使用するのに適したデコーダ同期化モジュール114の実施形態についての説明が提示される。ランダム論理でのデコーダ44の例示的なハードウェア実現形態の説明は、先に項IIIにおいて行った。
図7A及び7Bは、エンコーダ18の例示的な実施形態の概略表示を提供している。ラッチ70からのエンコードされる８ビットパラレルデータＤ［7:0］が、遷移カウンタ74の７個の排他的ORゲート240に提供されることが看取される。排他的ORゲート240の出力は、全加算器242,244,246及び248の組に提供される。全加算器248のキャリー出力（Ｃ）は、COUNTライン78に対応し、データＤ［7:0］のビットの間に４未満の論理遷移が存在したか否かを示す。ラッチ70から帯域外コマンドを受信している場合には、NORゲート260に繋がるコマンドライン（TX_CMD）が立ち上げられて、COUNTライン78によってCABIロジック90の内部でＤ［7:0］の偶数ビットが反転されるのを阻止するようになっている。そうでない場合には、ラッチからのデータＤ［7:0］が本発明に従ってエンコードされているときに、NORゲート260の出力78'は、COUNTライン78の論理値に追従する。
図7Aに示されているように、この例示的な実施例においては、CABIロジック90は、複数のNORゲート270からなっている。各々のNORゲート270は、COUNTライン78'に結合された一つの入力と、Ｄ［7:0］の偶数ビットの一つに接続された別の入力とを含む。CABIロジック90の出力は、ディスパリティチェッカー96（図7B）の入力に結合された、中間ラッチ94に提供される。
図7Bに転じると、ディスパリティチェッカー96は、条件によりビット反転されたバイトＥ［7:0］の中における"11"の出現を判定するための、４個のANDゲート290−293を含んでいる。同様に、Ｅ［7:0］内部での"00"の出現を検出するために、４個のNORゲート296−299が備えられている。Ｅ［7:0］内部での"01"及び"10"のパターンは、１と０を等しい数含んでいるという意味において、既に「直流平衡」されているから、図7Bの回路により実行される直流平衡プロセスに際して、こうしたパターンを検出する必要は存在しない。ANDゲート290−293により検出された"11"の出現をカウントするために、第一の全加算器302と第一の半加算器306が配置されている。同様の仕方で、NORゲート296−299により検出された"00"の出現をカウントするために、第二の全加算器308と第二の半加算器312が配置されている。全加算器316と318の第一の対は、カウントされた"11"と"00"の出現回数の差を判定する。
直流平衡モジュール98は、３個の入力NORゲート330と、第一の排他的ORゲート332と、ラッチ336と、第二の排他的ORゲート338とを含んでいる。全加算器316と318によって、"11"と"00"の出現回数が等しいと判定された場合、Ｅ［８］の補数がＴ［９］の値を決定し、従ってバイトＥ［7:0］がCTBIロジック100により反転されたか否かを決定する。カウントされた"00"と"11"の出現回数が等しくない場合には、T9［９］の値はXORゲート332の出力からなる。この点について、XORゲート332の第一の入力342は全加算器316及び318の対によって生成された最上位ビット（MSB）からなり、これは現在のディスパリティDcur（即ちＥ［7:0］における"1"と"0"の数の差）のMSBに等しい。XORゲート332に対する第二の入力344は、累積的ディスパリティDcumのMSBに対応する。図7Bにより示されているように、累積的ディスパリティを格納するためのラッチ99は、３個のレジスタ350−352からなっている。累積的ディスパリティは、全加算器356と358の逆向きの連鎖、３個の排他的ORゲート360−362の組、及び対応する３個の全加算器365−367の組からなる、ディスパリティ更新器108によって更新される。最後に、CTBIロジック100が、８個の排他的ORゲート374の組を含んでいる。
図8A及び8Bは、デコーダ同期化モジュール114の好ましい実施形態の概略的な表示を提供している。図8Aにおいて、L3［9:0］,L2［9:0］及びL1［9:0］のそれぞれを格納するために、10ビットのラッチ150,154及び158の各々は、10個のＤフリップフロップのアレイを用いて実現することができる。L3［9:0］,L2［9:0］及びL1［９］に対応する21ビットのウィンドウの中に含まれる隣接ビットの排他的否定論理和を取るために、複数のXORゲート402が備えられている。次にXNORゲート402のグループＡ、グループＢ、グループＣ、及びグループＤの出力はそれぞれ、"1"カウンタ172,174,176及び178に提供されている。図8Aに示されているように、条件Ｉの存在は、４個のNANDゲート410−413からなるランダム論理190aによって検出される。
次に図8Bに転じると、条件IIの存在が、参照番号190bにより識別されたランダム論理構成によって識別される。ランダム論理190bは、10個のXORゲート422の組を含み、これらの出力は図示のように、NANDゲート426及び428に提供される。NANDゲート426及び428の出力は、NORゲート430の入力に結合され、その出力は条件IIが満たされる場合に論理"1"に駆動される。最後に、ANDゲート440の出力（SYNC_SIG）の論理状態が、条件Ｉ及び条件IIが満足されたか否か（即ち同期が達成されたかどうか）を示すことになる。そうであれば、L3［9:0］とL2［９］の中の隣接するビットが、ANDゲート450の組によって論理積を取られる（図５のステップ196）。その出力PTR［9:0］はフレーム境界ポインタ118からなり、これはデコーダ44に対し、伝送された10ビット文字Ｔ［9:0］の各々の最初のビットＴ［０］に対して、ビットラインRX［9:0］のどれが対応するのかを通知する。
VI.  代替的な実施形態
１ビットカウントに基づく遷移最適化
図9A及び図9Bは、遷移最適化された信号ストリームを生成するための、代替的なエンコード技術を示すフローチャートである。
図9Aのフローチャートを参照すると、遷移最小化ステップ501aの間に、８ビットのフレームＤ［0:7］503aのような入力データフレームが、以下のようにして処理される。即ちステップ510aにおいて、フレーム503a内で「１」にセットされたビットの数がカウントされる。このカウント値はこのフローチャートでは「Ｓ」として示されている。ステップ515aにおいて、このカウントは、フレームサイズの２分の１を表す所定の閾値と比較される。従って８ビットフレームについては、カウントは値４に対して比較されることになる。
カウント値が４を越える場合、８ビットのフレームＤ［0:7］についてNRZI0エンコード操作を行い、遷移最小化フレームＥ［0:8］504aを形成するため「０」ビットを先に付加することにより、ステップ520aにおいて９ビットの遷移最小化フレームが形成される。このNRZI0エンコード操作の一部は、フレーム504aの低次ビットＥ［０］をフレーム503aの高次Ｄ［０］ビットの値にセットすることからなる。加えて、フレーム504aのビットＥ［１］からＥ［７］の各々は、フレーム503aのＤ［１］からＤ［７］にある対応するビットと次の高次ビットを用いてXNOR操作を行い、最後に２進「０」を先に付加することによって得られる。即ちエンコードされていない８ビットのフレームからNRZI0エンコードされた９ビットのフレームを生成するには：
0003542809.tif 000013
ステップ510aにおいて導かれたカウント値が４未満の場合には、ステップ521aにおいて９ビットの遷移最小化フレームが、８ビットのフレームＤ［0:7］503aについてNRZI1エンコード操作を行い、遷移最小化フレームＥ［0:8］504aを形成するため「１」ビットを先に付加することにより生成される。NRZI1エンコード操作は、フレーム504aの低次ビットＥ［０］をフレーム503aの高次Ｄ［０］ビットの値にセットすることからなる。さらに、各ビットＥ［１］からＥ［７］は、フレーム503aの対応するビットＤ［１］からＤ［７］と次の高次ビットを用いてXOR操作を行うことにより決定される値にセットされ、最後に２進「１」が先に付加される。即ちエンコードされていない８ビットのフレームからNRZI1エンコードされた９ビットのフレームを生成するには：
0003542809.tif 000014
ステップ510aにおいて導かれたカウント値が４に等しい場合は、ステップ517aにおいてＤ［０］の値が用いられて、遷移最小化フレーム504aをNRZI0エンコードにより形成するか、NRZI1エンコードにより形成するかが選択される。Ｄ［０］が「１」に等しい場合は、遷移最小化フレーム504aは、ステップ520aにおいてフレーム503aをNRZI0エンコードすることにより形成される。Ｄ［０］が「０」に等しい場合は、遷移最小化フレーム504aは、ステップ521aにおいてフレーム503aをNRZI1エンコードすることにより形成される。
図9Bは、遷移最大化信号ストリームを生成するためのエンコード処理のフローチャートを示している。図9Bのこの遷移最大化プロエス501bは、NRZI0エンコードブロックとNRZI1エンコードブロックの位置が交換されている点を除き、図9Aの遷移最小化プロセスに類似のものである。
ステップ510bにおいて、８ビットのフレームＤ［0:7］内で「１」にセットされたビットの数がカウントされる。このカウント値は図9Bのフローチャートでは「Ｓ」として示されている。ステップ515bにおいて、このカウントは、フレームサイズの２分の１を表す所定の閾値と比較される。従って８ビットフレームについては、カウントは値４に対して比較される。
カウント値が４を越える場合、８ビットのフレームＤ［0:7］503bについてNRZI1エンコード操作を行い、「１」ビットを先に付加し、それによって遷移最大化フレームＥ［0:8］504bを形成することにより、ステップ521bにおいて９ビットの遷移最大化フレームが作成される。このNRZI1エンコードは、フレーム504bの低次ビットＥ［０］をフレーム503bの高次Ｄ［０］ビットの値にセットし、各ビットＥ［１］からＥ［７］を、フレーム501bのビットＤ［0:7］と次の高次ビットをXORすることにより決定される値にセットすることからなる。次いで、２進「１」が得られたビットの組の先に付加される。
ステップ510bにおいて導かれたカウント値が４未満の場合には、ステップ520bにおいて９ビットの遷移最大化フレームが、８ビットのフレームＤ［0:7］についてNRZI0エンコード操作を行い、遷移最大化フレームＥ［0:8］504bを形成するため「０」ビットを先に付加することにより形成される。このNRZI0エンコードは、フレーム504bの低次ビットＥ［０］をフレーム503bの高次Ｄ［０］ビットの値にセットし、各ビットＥ［１］からＥ［７］を、フレーム501bの対応するビットＤ［0:7］と次の高次ビットをXORすることにより決定される値にセットすることからなる。次いで２進「０」が、得られたビットの組の先に付加される。
ステップ501bにおいて導かれたカウント値が４に等しい場合は、ステップ517bはＤ［０］の値に基づいて、遷移最大化フレーム504bをNRZI0エンコードにより形成するか、NRZI1エンコードにより形成するかを選択する。Ｄ［０］が「１」に等しい場合は、遷移最大化フレーム504bは、ステップ521bにおいてフレーム503bをNRZI1エンコードすることにより形成される。Ｄ［０］が「０」に等しい場合は、遷移最大化フレーム504bは、ステップ520bにおいてフレーム503bをNRZI0エンコードすることにより形成される。
図10は、図9A及び図9Bの遷移最適化動作を実行するための論理回路530を示している。図10に示されているように、８ビットのフレーム503がカウンタ532に対して提示されている。カウンタ532は、フレーム503における「１」ビットの数（N1）及び「０」ビットの数（N0）（図示せず）を計数し、これらのカウントをモードセレクタ534に提示する。モードセレクタ534は、２つの論理値を計算する。第１の論理値は、遷移最大化器501bのNRZI0エンコードステップ520bの選択に用いられる条件515b,516b及び517bを表し、論理値
0003542809.tif 000015
によって表される。
第２の論理値は、遷移最小化器501aのNRZI0エンコードステップ520aの選択に用いられる条件515a,516a及び517aを表し、論理値
0003542809.tif 000016
によって表される。
モード選択信号536（「MAX」と表示）は選択的に、遷移最小化された最適化を選択するため「０」にセットされ、又は遷移最大化された最適化を選択するため「１」にセットされる。モードセレクタ534はMAXを用いて２つの計算された論理値の１つを選択し、これを結果として、NRZI0エンコードとNRZI1エンコードの間での選択を行う制御信号535（「CONT」と表示）を生ずる。
８ビットのフレーム503は入力とし、538−１から538−７までのXNORゲートのアレイと、また539−１から539−７までのXORゲートのアレイに対して提示される。XNORゲート538−１から538−７はフレーム503に対してNRZI0エンコードを行い、その結果得られる信号を「１」ビット541と共に、セレクタ542に対して入力として提示する。XORゲート539−１から539−７はフレーム503に対してNRZI1エンコードを行い、その結果得られる信号を「０」ビット540と共に、セレクタ542に対して入力として提示する。セレクタ542は、制御信号535に従い、NRZI0エンコードされた信号とNRZI1エンコードされた信号の間で選択を行い、出力として９ビットの遷移最適化信号504 E［0:8］を生成する。こうして形成された遷移最適化信号は、先に図３及び図４に関連して議論したのと同じ、一般的な方法と装置を用いてデコードすることができる。
8B/9Bコーディングのためのフレーム同期スクランブラを用いたフレームについての直流平衡化
図11は、フレーム同期スクランブリングを用いて９ビットの遷移最適化フレームを直流平衡するための、平衡エンコード回路550を示している。平衡エンコード回路550は入力として９ビットの遷移最適化フレーム504を取り、出力として９ビットの直流平衡フレーム505を生成する。図11は９ビットの遷移最適化フレームを直流平衡することを示す例示的な実施形態を示しているが、開示された本発明は、入力されるフレームが９ビット長であることも、また入力されるフレームが遷移最適化されていることも必要とはしない。
平衡エンコード回路550はシフトレジスタ発生器（SRG）552を用いており、これは複数の１ビットシフトレジスタ554−１から554−７と、XORゲート556を含んでいる。シフトレジスタ554−１から554−７は、SYNC信号560の制御の下に、任意の所定の非ゼロ値で初期化される。SRGは、シフトレジスタ554−１から554−７のシーケンスが、スクランブリングに用いられる疑似ランダム２進シーケンス（PRBS）を作り上げるように構成されている。動作時には、PRBSの２つの所定のビットがXORされ、得られた値が用いられて平衡されていない９ビットのフレームが直流平衡される。
PRBSは、一連の値を繰り返して循環するように配置される。このサイクルの周期は、SRGに用いられるシフトレジスタの数に依存している。用いられるシフトレジスタの数がＮであるとすれば、この周期は2N−１に等しい。図11に示されている例示的な実施形態では、７個のシフトレジスタが用いられており、その結果周期は27−１＝127である。
SRGがクロックされると、各々のシフトレジスタの内容は（高次のシフトレジスタ554−７を除き）、次に高次のシフトレジスタへとロードされる。つまり、シフトレジスタ554−６の内容がシフトレジスタ554−７にロードされるまで、低次のシフトレジスタ554−１の内容は次に高次のシフトレジスタ554−２にロードされ、シフトレジスタ554−２の内容はシフトレジスタ554−３にロードされる、といった具合である。これらのシフトと同時発生的に、２つの最高次シフトレジスタ554−６と554−７の内容は、XORゲート556に対して入力として提示される。結果として得られる値は、XORゲート556から低次のシフトレジスタ554−１に送られる。加えて、高次のシフトレジスタ554−７の内容は制御信号562として提示され、平衡未エンコードフレーム504の選択的反転を制御するために用いられて、平衡エンコードされたフレーム505が生成される。
平衡未エンコードフレーム504はインバータ564に提示され、得られる９ビットの反転フレームは、セレクタ566に対して入力として提示される。加えて、平衡未エンドフレーム504は反転なしに、第２の入力としてセレクタ566に提示される。セレクタ566は、SRG552からの制御信号562の制御の下に動作する。この制御信号562が「１」である場合には反転フレームが選択されて、平衡エンコードフレーム505として提示される。他の場合には、非反転フレームが選択されて、平衡エンコードフレーム505として提示される。
図12は、フレーム同期スクランブリングを用いて９ビットの直流平衡エンコードフレームをデコードするための、平衡デコード回路570を示している。平衡デコード回路570は入力として９ビットの平衡エンコードフレーム505を取り、出力として平衡デコードされた９ビットの遷移最適化フレーム506を生成する。
平衡デコード回路570はシフトレジスタ発生器572を用いている。SRG572はSRG552と同一のオーダのものであり、同じ初期状態にセットされる。すなわちSRG572はSRG552と同じ数のシフトレジスタを有し、SYNC信号580に応じて、同じ任意の所定の非ゼロ値に初期化される。SRG572はSRG552と同様に動作し、動作時には同じPRBSを発生する。従って、受信される直流平衡フレーム505の各々について、制御信号582の値は、平衡未エンコードフレーム504を選択的に反転させるのに用いられる制御信号562の値と同一であることが確保されている。よって制御信号582は、平衡デコードフレーム506を生成するために、平衡エンコードフレーム505を選択的に反転させるよう使用されることができるが、この平衡デコードフレームの値は、平衡エンコード回路550に提供される平衡未エンコードフレーム504に等しいことが確保されている。
平衡エンコードフレーム505はインバー584に提示され、得られる９ビットの反転フレームはセレクタ586に対する１つの入力として提供されることが看取される。加えて、平衡エンコードフレーム505は非反転で、セレクタ586の第２の入力に提示される。セレクタ586は、SRG572からの制御信号582の制御の下に動作する。この制御信号582が「１」である場合には反転フレームが選択されて、平衡デコードフレーム506として提示される。他の場合には、非反転フレームが選択されて、平衡デコードフレーム506として提示される。
8B/9Bコーディングのための自己同期スクランブラを用いたフレームについての直流平衡化
図13は、自己同期スクランブリング（SSS）を用いて９ビットの遷移最適化フレームを直流平衡するための、平衡エンコード回路600を示している。平衡エンコード回路600は入力として９ビットの未平衡遷移最適化フレーム504を取り、出力として９ビットの直流平衡フレーム505を生成する。図13は９ビットの遷移最適化フレームを直流平衡することを示す例示的な実施形態を示しているが、開示された本発明は、入力されるフレームが９ビット長であることも、また入力されるフレームが遷移最適化されていることも必要とはしない。
平衡エンコード回路600は、複数の１ビットシフトレジスタ604−１から604−７と、XORゲート605からなるシフトレジスタ発生器（SRG）602を含んでいる。シフトレジスタ604−１から604−７は、任意の所定値で初期化される。SRGは、シフトレジスタ604−１から604−７のシーケンスが、スクランブリングに用いられる疑似ランダム２進シーケンス（PRBS）を作り上げるように構成されている。動作時には、PRBSの所定のビット（例えばビット604−７）が、SRGに入力として供給された信号とXORされ、得られた値が用いられて平衡されていない９ビットのフレームが直流平衡される。
SRGが動作時にクロックされると、各々のシフトレジスタの内容は（高次のシフトレジスタ604−７を除き）、次に高次のシフトレジスタへとロードされる。つまり、シフトレジスタ604−６の内容がシフトレジスタ604−７にロードされるまで、低次のシフトレジスタ604−１の内容は次に高次のシフトレジスタ604−２にロードされ、シフトレジスタ604−２の内容はシフトレジスタ604−３にロードされる、といった具合である。これらのシフトと同時発生的に、最高次のシフトレジスタ604−７の内容と入力信号611が、XORゲート605に対して入力として提示される。結果として得られる値は、XORゲート605から低次のシフトレジスタ604−１に送られる。加えて、XORゲート605からの値は出力信号612として提示され、これは制御信号626の導出に用いられる。制御信号626は、平衡未エンコードフレーム504の選択的反転を制御して、平衡エンコードされたフレーム505が生成される。
平衡未エンコードフレーム504はカウンタ622に提示されるのが看取され、このカウンタは平衡未エンコードフレーム504にある１ビットの数をカウントするように配置されており、カウント（Ｎ）をロジック624に送る。ロジック624は、Ｎが５より大きいか等しい場合に信号Nuを論理「１」にセットし、他の場合にはNuを論理「０」にセットする。図13により示されているように、この信号NuはSRG602に対して入力信号611として提示され、またXORゲート620にも提供される。
XORゲート620は、ロジック624から送られた値及びSRG出力信号612に対して排他的論理和動作を実行し、制御信号626を生成する。制御信号626は、平衡未エンコードフレーム504の選択的反転を制御するために用いられて、平衡エンコードフレーム505を生成する。
平衡未エンコードフレーム504はさらに、インバータ614に提示される。得られる９ビットの反転フレームは、セレクタ618に対する１つの入力として提示される。加えて、平衡未エンコードフレーム504は反転なしに、第２の入力としてセレクタ618に提示される。セレクタ618は、XORゲート620からの制御信号626の制御の下に動作する。この制御信号626が「１」である場合には反転フレームが選択されて、平衡エンコードフレーム505として提示される。他の場合には、非反転フレームが選択されて、平衡エンコードフレーム505として提示される。
図14は、自己同期スクランブリングを用いて９ビットの直流平衡エンコードフレームをデコードするための、平衡デコード回路630を示している。平衡デコード回路630は入力として９ビットの平衡エンコードフレーム505を取り、出力として、「Ｔ」と表された平衡デコードされた９ビットの遷移最適化フレーム506を生成する。
平衡デコード回路630はシフトレジスタ発生器632を用いている。SRG632はSRG602と同一のオーダのものであり、同じ初期状態にセットされる。すなわちSRG632はSRG602と同じ数のシフトレジスタを有し、同じ任意の所定値に初期化される。動作時には、PRBSの所定のビット（例えばビット634−７）がSRGに入力として供給された信号とXORされ、得られた値が用いられて未平衡の９ビットフレームが直流平衡される。
SRGが動作時にクロックされると、各々のシフトレジスタの内容は（高次のシフトレジスタ634−７を除き）、次に高次のシフトレジスタへとロードされる。つまり、シフトレジスタ634−６の内容がシフトレジスタ634−７にロードされるまで、低次のシフトレジスタ634−１の内容は次に高次のシフトレジスタ634−２にロードされ、シフトレジスタ634−２の内容はシフトレジスタ634−３にロードされる、といった具合である。これらのシフトと同時発生的に、入力信号641が低次のシフトレジスタ634−１に送られる。加えて、最高次のシフトレジスタ634−７の内容と入力信号641が、XORゲート635に対して入力として提示される。結果として得られる値は出力信号642として提示され、これは制御信号636の導出に用いられる。
従って、受信される直流平衡フレーム505の各々について、制御信号636の値は、平衡未エンコードフレーム504を選択的に反転させるのに用いられた制御信号626の値と同一であることが確保されている。よって制御信号636は、平衡デコードフレーム506を生成するために、平衡エンコードフレーム505を選択的に反転させるよう使用されるが、この平衡デコードフレームの値は、平衡エンコード回路600に提供される平衡未エンコードフレーム504に等しいことが確保されている。
平衡エンコードフレーム505はインバータ644に提示され、得られる９ビットの反転フレームはセレクタ646に対する１つの入力として提供されることが看取される。加えて、平衡エンコードフレーム505は非反転で、セレクタ646に第２の入力として提示される。セレクタ646は、制御信号636の制御の下に動作し、これはSRG出力信号642と論理654の出力のXOR動作を実行することによって導出される。この制御信号636が「１」である場合には反転フレームが選択されて、平衡デコードフレーム506として提示される。他の場合には、非反転フレームが選択されて、平衡デコードフレーム506として提示される。
好ましい実施例についての以上の説明は、当業者が本発明の製造又は使用をすることができるように提示されたものである。当業者には、これらの実施例の種々の変形が容易に想起可能であり、本明細書に定義した一般的な原理は、発明力を用いることなしに、他の実施形態に適応することができる。従って本発明はここに示した実施例に限定されることを意図するものではなく、本明細書に開示した原理及び新規な特徴と矛盾しない、最も広い範囲を与えられるべきものである。
【図５】
0003542809.tif 000017
【図７Ｂ】
0003542809.tif 000018
【図１】
0003542809.tif 000019
【図２】
0003542809.tif 000020
【図３】
0003542809.tif 000021
【図４】
0003542809.tif 000022
【図６】
0003542809.tif 000023
【図７Ａ】
0003542809.tif 000024
【図７Ｂ−１】
0003542809.tif 000025
【図７Ｂ−２】
0003542809.tif 000026
【図８Ａ】
0003542809.tif 000027
【図８Ｂ】
0003542809.tif 000028
【図９Ａ】
0003542809.tif 000029
【図９Ｂ】
0003542809.tif 000030
【図１０】
0003542809.tif 000031
【図１１】
0003542809.tif 000032
【図１２】
0003542809.tif 000033
【図１３】
0003542809.tif 000034
【図１４】
0003542809.tif 000035