(57)【要約】【課題】ビット変換の変換テーブルを小さいゲート規模で実装したビット変換回路、転送ユニット、通信システム、ビット変換方法及びプログラムを提供する。【解決手段】例えば、８ｂ／１０ｂエンコーダ１１によれば、変換後のデータが有する‘０’と‘１’の数が一致するか否かに応じて、８ｂ／１０ｂ変換の際に利用するエンコードテーブルのパターン分けを行う。そして、入力データがデータを示すＤコードであるとき、‘０’と‘１’の数が同じである場合には、入力データの数が同じであることを利用して算出し、そうでない場合には、エンコードテーブルに従って片方の極性の変換を行った後、インバータにより他方の極性の変換を行う。【選択図】図４
2011244212.tif 000002
【特許請求の範囲】
【請求項１】
ｍビットの入力データを、ビット変換テーブルを参照して変換してｎビットの出力データを生成するビット変換回路であって（ｍ及びｎは正の整数、かつ、ｎ＞ｍ）、
入力データを、データを示すＤコードの出力データに変換するとき、前記ビット変換テーブルから、入力データに対する出力データが０値の数と１値の数が異なるシンボルを抽出した第１の変換テーブルと、前記ビット変換テーブルから、出力データが、０値の数と１値の数が等しいシンボルを抽出した第２の変換テーブルと、を参照して前記ビット変換を行う
ビット変換回路。
【請求項２】
ｍ＝８かつｎ＝１０である
請求項１に記載のビット変換回路。
【請求項３】
８ビットの入力データを、５ビットのデータと３ビットのデータとに分割する分割回路と、
前記分割回路が分割した５ビットのデータを、５ｂ／６ｂ変換により６ビットのデータに変換して出力する５ｂ／６ｂ変換回路と、
前記分割回路が分割した３ビットのデータを、３ｂ／４ｂ変換により４ビットのデータに変換して出力する３ｂ／４ｂ変換回路と、
現在の出力データのランニング・ディスパリティ（ＲＤ）の極性を基に、次の出力データのＲＤの極性を決定するＲＤ制御回路と、
前記５ｂ／６ｂ変換回路が変換した６ビットのデータと、前記３ｂ／４ｂ変換回路が変換した４ビットのデータと、を合成して１０ビットの出力データを生成する合成回路と、
を有する請求項２に記載のビット変換回路。
【請求項４】
入力されたＫコードの制御信号を、８ｂ／１０ｂ変換により１０ビットのデータに変換して出力する制御信号変換回路
を有する請求項３に記載のビット変換回路。
【請求項５】
前記５ｂ／６ｂ変換回路は、入力データに対する出力データが、０値の数と１値の数が異なる出力データである第３の変換テーブルと、出力データが、０値の数と１値の数が等しい出力データである第４の変換テーブルと、を参照し、
前記第３の変換テーブルを参照して変換を行う場合には、入力データを基に、いずれか片方のＲＤの極性の出力データの変換を行った後、変換した出力データを基に、インバータにより他方のＲＤの極性の出力データを生成し、前記ＲＤ制御回路により通知された次の出力データの極性に応じて出力する出力データの極性を決定し、
前記第４の変換テーブルを参照して変換を行う場合には、出力データの０値の数と１値の数が同じになるように、前記入力データの０値の数と１値の数を基に１ビットの拡張ビットを生成し、入力データの各値と同値のデータと合成して出力データを生成する
請求項３に記載のビット変換回路。
【請求項６】
前記５ｂ／６ｂ変換回路は、前記第４の変換テーブルを参照して変換を行う場合に、出力データの０値の数と１値の数が等しいにもかかわらず、入力データと拡張ビットを除く出力データの値が異なる場合に、例外処理として、入力データを基に、いずれか片方のＲＤの極性の出力データの変換を行った後、変換した出力データを基に、インバータにより他方のＲＤの極性の出力データを生成し、前記ＲＤ制御回路により通知された次の出力データの極性に応じて出力する出力データの極性を決定する
請求項５に記載のビット変換回路。
【請求項７】
前記３ｂ／４ｂ変換回路は、入力データに対する出力データが、０値の数と１値の数が異なる出力データである第５の変換テーブルと、出力データが、０値の数と１値の数が等しい出力データである第６の変換テーブルと、を参照し、
前記第５の変換テーブルを参照して変換を行う場合には、入力データを基に、いずれか片方のＲＤの極性の出力データの変換を行った後、変換した出力データを基に、インバータにより他方のＲＤの極性の出力データを生成し、前記ＲＤ制御回路により通知された次の出力データの極性に応じて出力する出力データの極性を決定し、
前記第６の変換テーブルを参照して変換を行う場合には、出力データの０値の数と１値の数が同じになるように、前記入力データの０値の数と１値の数を基に１ビットの拡張ビットを生成し、入力データの各値と同値のデータと合成して出力データを生成する
請求項３に記載のビット変換回路。
【請求項８】
前記３ｂ／４ｂ変換回路は、前記第６の変換テーブルを参照して変換を行う場合に、出力データの０値の数と１値の数が等しいにもかかわらず、入力データと拡張ビットを除く出力データの値が異なる場合に、例外処理として、入力データを基に、いずれか片方のＲＤの極性の出力データの変換を行った後、変換した出力データを基に、インバータにより他方のＲＤの極性の出力データを生成し、前記ＲＤ制御回路により通知された次の出力データの極性に応じて出力する出力データの極性を決定する
請求項７に記載のビット変換回路。
【請求項９】
ｍビットの入力データをビット変換してｎビットの出力データを生成するビット符号化回路と、ｎビットの入力データをビット変換して、ｍビットの出力データを生成する第２のビット復号化回路と、を有する転送ユニットであって（ｍ及びｎは正の整数、かつ、ｎ＞ｍ）、
前記ビット符号化回路は、入力データを、データを示すＤコードの出力データに変換するとき、前記ビット変換テーブルから、入力データに対する出力データが０値の数と１値の数が異なるシンボルを抽出した第１の変換テーブルと、前記ビット変換テーブルから、出力データが、０値の数と１値の数が等しいシンボルを抽出した第２の変換テーブルと、を参照して前記ビット変換を行う
転送ユニット。
【請求項１０】
ｍビットの入力データをビット変換してｎビットの出力データを生成するビット符号化回路と、ｎビットの入力データをビット変換して、ｍビットの出力データを生成する第２のビット復号化回路と、を有する転送ユニットを複数有する通信システムであって（ｍ及びｎは正の整数、かつ、ｎ＞ｍ）、
前記ビット符号化回路は、入力データを、データを示すＤコードの出力データに変換するとき、前記ビット変換テーブルから、入力データに対する出力データが０値の数と１値の数が異なるシンボルを抽出した第１の変換テーブルと、前記ビット変換テーブルから、出力データが、０値の数と１値の数が等しいシンボルを抽出した第２の変換テーブルと、を参照して前記ビット変換を行う
通信システム。
【請求項１１】
ｍビットの入力データをビット変換してｎビットの出力データを生成するビット変換回路のビット変換方法であって（ｍ及びｎは正の整数、かつ、ｎ＞ｍ）、
入力データを、データを示すＤコードの出力データに変換するとき、前記ビット変換テーブルから、入力データに対する出力データが０値の数と１値の数が異なるシンボルを抽出した第１の変換テーブルと、前記ビット変換テーブルから、出力データが、０値の数と１値の数が等しいシンボルを抽出した第２の変換テーブルと、を参照して前記ビット変換を行う
ビット変換方法。
【請求項１２】
ｍビットの入力データをビット変換してｎビットの出力データを生成するビット変換回路を有するコンピュータが実行するプログラムであって（ｍ及びｎは正の整数、かつ、ｎ＞ｍ）、
入力データを、データを示すＤコードの出力データに変換するとき、前記ビット変換テーブルから、入力データに対する出力データが０値の数と１値の数が異なるシンボルを抽出した第１の変換テーブルと、前記ビット変換テーブルから、出力データが、０値の数と１値の数が等しいシンボルを抽出した第２の変換テーブルと、を参照して前記ビット変換を行う手順
を前記コンピュータに実行させるプログラム。
【請求項１３】
分割回路と、５ｂ／６ｂ変換回路と、３ｂ／４ｂ変換回路と、ＲＤ制御回路と、合成回路と、を有する８ｂ／１０ｂ変換回路のビット変換方法であって、
前記分割回路が、８ビットの入力データを、５ビットのデータと３ビットのデータとに分割する第１の工程と、
前記第１の工程において分割された５ビットのデータを、前記５ｂ／６ｂ変換回路が、５ｂ／６ｂ変換により６ビットのデータに変換して出力する第２の工程と、
前記第１の工程において分割された３ビットのデータを、前記３ｂ／４ｂ変換回路が、３ｂ／４ｂ変換により４ビットのデータに変換して出力する第３の工程と、
前記ＲＤ制御回路が、現在の出力データのＲＤの極性を基に、次の出力データのランニング・ディスパリティ（ＲＤ）の極性を決定する第４の工程と、
前記合成回路が、前記第２の工程においてが変換された６ビットのデータと、前記第３の工程において変換された４ビットのデータと、を合成して１０ビットの出力データを生成する第５の工程と、
を有し、
前記第２の工程は、
前記５ｂ／６ｂ変換回路が、入力データに対する出力データが、０値の数と１値の数が異なる出力データであるか、出力データが、０値の数と１値の数が等しい出力データであるか、を判断する第６の工程と、
前記第６の工程において、０値の数と１値の数が異なる出力データであると判断された場合に、前記５ｂ／６ｂ変換回路が、０値の数と１値の数が異なる出力データである場合に対応する第１の変換テーブルを参照して、入力データを基に、いずれか片方のＲＤの極性の出力データの変換を行う第７の工程と、
前記第７の工程において変換された出力データを基に、インバータにより他方のＲＤの極性の出力データを生成する第８の工程と、
前記第４の工程において決定された次の出力データの極性に応じて出力する出力データの極性を決定する第９の工程と、
前記第６の工程において、０値の数と１値の数が等しい出力データであると判断された場合に、０値の数と１値の数が等しい出力データである場合に対応する第２の変換テーブルを参照して、出力データの０値の数と１値の数が同じになるように、前記入力データの０値の数と１値の数を基に１ビットの拡張ビットを生成する第１０の工程と、
前記第１０の工程において生成された前記拡張ビットを、入力データの各値と同値のデータと合成して出力データを生成する第１１の工程と、
を有し、
前記第３の工程は、
前記３ｂ／４ｂ変換回路が、入力データに対する出力データが、０値の数と１値の数が異なる出力データであるか、出力データが、０値の数と１値の数が等しい出力データであるか、を判断する第１２の工程と、
前記第１２の工程において、０値の数と１値の数が異なる出力データであると判断された場合に、前記３ｂ／４ｂ変換回路が、０値の数と１値の数が異なる出力データである場合に対応する第３の変換テーブルを参照して、入力データを基に、いずれか片方のＲＤの極性の出力データの変換を行う第１３の工程と、
前記第１２の工程において変換された出力データを基に、インバータにより他方のＲＤの極性の出力データを生成する第１４の工程と、
前記第４の工程において決定された次の出力データの極性に応じて出力する出力データの極性を決定する第１５の工程と、
前記第１２の工程において、０値の数と１値の数が等しい出力データであると判断された場合に、０値の数と１値の数が等しい出力データである場合に対応する第４の変換テーブルを参照して、出力データの０値の数と１値の数が同じになるように、前記入力データの０値の数と１値の数を基に１ビットの拡張ビットを生成する第１６の工程と、
前記第１６の工程において生成された前記拡張ビットを、入力データの各値と同値のデータと合成して出力データを生成する第１７の工程と、
を有するビット変換方法。
【請求項１４】
前記第１の変換テーブルは、表１に示す変換テーブルである
請求項１３に記載のビット変換方法。
【表１】
2011244212.tif 000003
input：入力データ
Data byte name：データバイト名
Bits：入力ビット
output：出力データ
RD=-：ランニング・ディスパリティの極性が−
RD=+：ランニング・ディスパリティの極性が＋
【請求項１５】
前記第２の変換テーブルは、表２に示す変換テーブルである
請求項１３に記載のビット変換方法。
【表２】
2011244212.tif 000004
input：入力データ
Data byte name：データバイト名
Bits：入力ビット
output：出力データ
RD=-：ランニング・ディスパリティの極性が−
RD=+：ランニング・ディスパリティの極性が＋
【請求項１６】
前記第３の変換テーブルは、表３に示す変換テーブルである
請求項１３に記載のビット変換方法。
【表３】
2011244212.tif 000005
input：入力データ
Data byte name：データバイト名
Bits：入力ビット
output：出力データ
RD=-：ランニング・ディスパリティの極性が−
RD=+：ランニング・ディスパリティの極性が＋
【請求項１７】
前記第４の変換テーブルは、表４に示す変換テーブルである
請求項１３に記載のビット変換方法。
【表４】
2011244212.tif 000006
input：入力データ
Data byte name：データバイト名
Bits：入力ビット
output：出力データ
RD=-：ランニング・ディスパリティの極性が−
RD=+：ランニング・ディスパリティの極性が＋
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、高速シリアル転送に用いられるビット変換を行うビット変換回路、転送ユニット、通信システム、ビット変換方法及びプログラムに関する。
【背景技術】
【０００２】
データの送受信を行う通信方式として、複数のデータ信号を同時並行的にそれぞれの通信リンクで送るパラレル通信と、単一の通信リンクで伝送が行われるシリアル通信とがある。
一般的に、コンピュータネットワークの分野では、同期やコストの問題から、シリアル通信が使用される。
【０００３】
高速にデータの伝送を行うシリアル通信の方式の１つに、８ｂ／１０ｂ通信方式がある。
８ｂ／１０ｂ通信方式は、８ビットのデータを１０ビットのデータに変換して伝送する方式である。
図１は、８ｂ／１０ｂ変換テーブルの一部を示す図である。
８ｂ／１０ｂ変換では、入力されたデータを上位ビットと下位ビットに分割し、連続する‘０’または‘１’を制限するランレングス制限（ＲＬＬ：Run Length limited）を考慮して変換を行う。また、８ビットの入力データを１０ビットに拡張変換することにより、エラー訂正を図っている。
図１に示すように、バイトデータ‘００’〜‘ＦＦ’に対応する８ビットのデータを上位ビット‘ＨＧＦ’と下位ビット‘ＥＤＣＢＡ’に分け、それぞれに１ビット‘ｉ’、‘ｊ’を付加して６ビットの‘ａｂｃｄｅｉ’と４ビットの‘ｆｇｈｊ’に変換している。
【０００４】
８ｂ／１０ｂ変換によって変換された１０ビットのデータは、シンボルと呼ばれ、Ｄｘ．ｙのように表記される。
６ビットデータは３２個のビットパターンを有し、４ビットデータは８個のビットパターンを有する。従って、８ビットのデータは、Ｄ００．０〜Ｄ３１．７の２５６個のシンボルのいずれかで表現される。
【０００５】
そして、各シンボルは、‘０’と‘１’とを反転させた＋と−の２種類のパターンをそれぞれ有する。この＋と−をランニング・ディスパリティ（ＲＤ）と呼ぶ。図１において、ＣｕｒｒｅｎｔＲＤ−の欄がＲＤの極性が−を示す欄であり、ＣｕｒｒｅｎｔＲＤ＋の欄がＲＤの極性が＋を示す欄である。
ＲＤ極性＋／−を考慮すると、８ビットの入力データは、８ｂ／１０ｂ変換により５１２通りのシンボルに変換される。これら５１２個のシンボルは、Ｄコードと呼ばれる。
５１２個のＤコードは、データを示すシンボルであるが、これとは別に制御信号を示すＫコードと呼ばれるシンボルが２４個存在する。
従って、８ｂ／１０ｂ変換では、合計５３６通りもの組み合わせが存在する。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
上述したように、８ｂ／１０ｂ変換では、合計５３６通りもの組み合わせが存在する変換テーブルが使用される。従って、この変換テーブルを半導体回路に実装しようとした場合、非常に多くの組み合わせ回路が必要となる。これにより、半導体回路のゲート規模が大きくなるだけでなく、動作速度が制限される。これを改善するためには、パイプライン処理等の回路追加が必要となり、さらにゲート規模が増大してしまう。
なお、以上では８ｂ／１０ｂ変換について説明したが、その他のビット変換、例えば８ｂ／１４ｂ変換等でもこれらの不利益は同様に発生する。
【０００７】
本発明は、ビット変換の変換テーブルを小さいゲート規模で実装したビット変換回路を提供することを目的とする。
また、本発明は、このようなビット変換回路を使用した、転送ユニット、通信システムを提供することを目的とする。
また、本発明は、このようなビット変換回路において使用されるビット変換方法及びプログラムを提供することを目的とする。
本願発明は、例えば、８ｂ／１０ｂ変換における入力データを出力データに変換する変換テーブルに規則性を見出し、その規則性を活用してゲート数を少なくした回路を構成することを見出した。本発明は、この知見に基づくものである。
【課題を解決するための手段】
【０００８】
本発明のビット変換回路は、ｍビットの入力データを、ビット変換テーブルを参照して変換してｎビットの出力データを生成するビット変換回路であって（ｍ及びｎは正の整数、かつ、ｎ＞ｍ）、入力データを、データを示すＤコードの出力データに変換するとき、前記ビット変換テーブルから、入力データに対する出力データが０値の数と１値の数が異なるシンボルを抽出した第１の変換テーブルと、前記ビット変換テーブルから、出力データが、０値の数と１値の数が等しいシンボルを抽出した第２の変換テーブルと、を参照して前記ビット変換を行う。
【０００９】
本発明の転送ユニットは、ｍビットの入力データをビット変換してｎビットの出力データを生成するビット符号化回路と、ｎビットの入力データをビット変換して、ｍビットの出力データを生成する第２のビット復号化回路と、を有する転送ユニットであって（ｍ及びｎは正の整数、かつ、ｎ＞ｍ）、前記ビット符号化回路は、入力データを、データを示すＤコードの出力データに変換するとき、前記ビット変換テーブルから、入力データに対する出力データが０値の数と１値の数が異なるシンボルを抽出した第１の変換テーブルと、前記ビット変換テーブルから、出力データが、０値の数と１値の数が等しいシンボルを抽出した第２の変換テーブルと、を参照して前記ビット変換を行う。
【００１０】
本発明の通信システムは、ｍビットの入力データをビット変換してｎビットの出力データを生成するビット符号化回路と、ｎビットの入力データをビット変換して、ｍビットの出力データを生成する第２のビット復号化回路と、を有する転送ユニットを複数有する通信システムであって（ｍ及びｎは正の整数、かつ、ｎ＞ｍ）、前記ビット符号化回路は、入力データを、データを示すＤコードの出力データに変換するとき、前記ビット変換テーブルから、入力データに対する出力データが０値の数と１値の数が異なるシンボルを抽出した第１の変換テーブルと、前記ビット変換テーブルから、出力データが、０値の数と１値の数が等しいシンボルを抽出した第２の変換テーブルと、を参照して前記ビット変換を行う。
【００１１】
本発明の通信方法は、ｍビットの入力データをビット変換してｎビットの出力データを生成するビット変換回路のビット変換方法であって（ｍ及びｎは正の整数、かつ、ｎ＞ｍ）、入力データを、データを示すＤコードの出力データに変換するとき、前記ビット変換テーブルから、入力データに対する出力データが０値の数と１値の数が異なるシンボルを抽出した第１の変換テーブルと、前記ビット変換テーブルから、出力データが、０値の数と１値の数が等しいシンボルを抽出した第２の変換テーブルと、を参照して前記ビット変換を行う。
【００１２】
本発明のプログラムは、ｍビットの入力データをビット変換してｎビットの出力データを生成するビット変換回路を有するコンピュータが実行するプログラムであって（ｍ及びｎは正の整数、かつ、ｎ＞ｍ）、入力データを、データを示すＤコードの出力データに変換するとき、前記ビット変換テーブルから、入力データに対する出力データが０値の数と１値の数が異なるシンボルを抽出した第１の変換テーブルと、前記ビット変換テーブルから、出力データが、０値の数と１値の数が等しいシンボルを抽出した第２の変換テーブルと、を参照して前記ビット変換を行う手順を前記コンピュータに実行させる。
【００１３】
本発明のビット変換方法は、分割回路と、５ｂ／６ｂ変換回路と、３ｂ／４ｂ変換回路と、ＲＤ制御回路と、合成回路と、を有する８ｂ／１０ｂ変換回路のビット変換方法であって、
前記分割回路が、８ビットの入力データを、５ビットのデータと３ビットのデータとに分割する第１の工程と、
前記第１の工程において分割された５ビットのデータを、前記５ｂ／６ｂ変換回路が、５ｂ／６ｂ変換により６ビットのデータに変換して出力する第２の工程と、
前記第１の工程において分割された３ビットのデータを、前記３ｂ／４ｂ変換回路が、３ｂ／４ｂ変換により４ビットのデータに変換して出力する第３の工程と、
前記ＲＤ制御回路が、現在の出力データのＲＤの極性を基に、次の出力データのランニング・ディスパリティ（ＲＤ）の極性を決定する第４の工程と、
前記合成回路が、前記第２の工程においてが変換された６ビットのデータと、前記第３の工程において変換された４ビットのデータと、を合成して１０ビットの出力データを生成する第５の工程と、
を有し、
前記第２の工程は、
前記５ｂ／６ｂ変換回路が、入力データに対する出力データが、０値の数と１値の数が異なる出力データであるか、出力データが、０値の数と１値の数が等しい出力データであるか、を判断する第６の工程と、
前記第６の工程において、０値の数と１値の数が異なる出力データであると判断された場合に、前記５ｂ／６ｂ変換回路が、０値の数と１値の数が異なる出力データである場合に対応する第１の変換テーブルを参照して、入力データを基に、いずれか片方のＲＤの極性の出力データの変換を行う第７の工程と、
前記第７の工程において変換された出力データを基に、インバータにより他方のＲＤの極性の出力データを生成する第８の工程と、
前記第４の工程において決定された次の出力データの極性に応じて出力する出力データの極性を決定する第９の工程と、
前記第６の工程において、０値の数と１値の数が等しい出力データであると判断された場合に、０値の数と１値の数が等しい出力データである場合に対応する第２の変換テーブルを参照して、出力データの０値の数と１値の数が同じになるように、前記入力データの０値の数と１値の数を基に１ビットの拡張ビットを生成する第１０の工程と、
前記第１０の工程において生成された前記拡張ビットを、入力データの各値と同値のデータと合成して出力データを生成する第１１の工程と、
を有し、
前記第３の工程は、
前記３ｂ／４ｂ変換回路が、入力データに対する出力データが、０値の数と１値の数が異なる出力データであるか、出力データが、０値の数と１値の数が等しい出力データであるか、を判断する第１２の工程と、
前記第１２の工程において、０値の数と１値の数が異なる出力データであると判断された場合に、前記３ｂ／４ｂ変換回路が、０値の数と１値の数が異なる出力データである場合に対応する第３の変換テーブルを参照して、入力データを基に、いずれか片方のＲＤの極性の出力データの変換を行う第１３の工程と、
前記第１２の工程において変換された出力データを基に、インバータにより他方のＲＤの極性の出力データを生成する第１４の工程と、
前記第４の工程において決定された次の出力データの極性に応じて出力する出力データの極性を決定する第１５の工程と、
前記第１２の工程において、０値の数と１値の数が等しい出力データであると判断された場合に、０値の数と１値の数が等しい出力データである場合に対応する第４の変換テーブルを参照して、出力データの０値の数と１値の数が同じになるように、前記入力データの０値の数と１値の数を基に１ビットの拡張ビットを生成する第１６の工程と、
前記第１６の工程において生成された前記拡張ビットを、入力データの各値と同値のデータと合成して出力データを生成する第１７の工程と、
を有する。
【発明の効果】
【００１４】
本発明は、ビット変換の変換テーブルを小さいゲート規模で実装することができる。また、本発明は、ビット変換を高速かつ省電力で行うことができる。
【図面の簡単な説明】
【００１５】
【図１】図１は、８ｂ／１０ｂ変換テーブルの一部の一例を示す図である。
【図２】図２は、８ｂ／１０ｂエンコーダ及び８ｂ／１０ｂデコーダを有するシリアル通信ユニットの一例を示す図である。
【図３】図３は、８ｂ／１０ｂエンコーダと１０ｂ／８ｂデコーダを複数使用した、複数の伝送路を有するシリアル通信システムの一例を示す図である。
【図４】図４は、８ｂ／１０ｂエンコーダのブロック図の一例を示す図である。
【図５】図５は、本実施形態の５ｂ／６ｂ変換テーブルを示す図である。
【図６】図６は、本実施形態の３ｂ／４ｂ変換テーブルを示す図である。
【図７】図７は、本実施形態の制御信号変換テーブルを示す図である。
【図８】図８は、８ｂ／１０ｂエンコーダのエンコードアルゴリズムのフローチャートである。
【図９】図９は、５ｂ／６ｂ変換回路による５ビットデータ変換処理の一例を示すフローチャートである。
【図１０】図１０は、３ｂ／４ｂ変換回路による３ビットデータ変換処理の一例を示すフローチャートである。
【図１１】図１１は、制御信号変換回路によるＫコード変換処理の一例を示すフローチャートである。
【発明を実施するための形態】
【００１６】
以下、本発明の実施形態について説明する。
まず、本発明におけるビット変換の１実施形態である、８ｂ／１０ｂ変換について説明する。
【００１７】
８ｂ／１０ｂ変換は、８ビットのデータを１０ビットのデータに変換する方式である。
８ｂ／１０ｂ変換は、例えばシリアルデータ通信に利用される。
シリアルデータの転送には、データと、そのデータを抽出するタイミングを作るクロックの存在が必要である。
８ｂ／１０ｂ方式では、シリアルデータの中にクロックを埋め込むことで、データとクロックの転送を同じ配線で行うことが特徴である。この方式は、エンベデッド・クロック方式と呼ばれる。
【００１８】
シリアルデータでは、Ｌｏｗ（‘０’）やＨｉｇｈ（‘１’）どちらかの状態が長期間に亘って続く可能性や、‘０’と‘１’の状態が不定期に変動する可能性がある。
データを受信する側は、受信したデータのトグルからクロックを再生させるため、‘０’或いは‘１’の状態が長期間に及んだ場合、そこからクロックを取り出す事が出来ない。また、従って８ｂ／１０ｂ方式では、どのようなデータであっても６ビット以上同じレベルが連続しないように変換を行うように決められている。
これによって、帯域の約２０％をロスしてしまうが、データとクロックとを同じ配線で同時に伝送する事ができるようになる。また、信号のビット変化が多くなり、雑音などに起因する転送エラーの発生を低減できる。
【００１９】
次に、図１を参照して、８ｂ／１０ｂ変換の具体例について説明する。
８ビットのデータ‘ＨＧＦ  ＥＤＣＢＡ’について考える。
図１に示すように、８ｂ／１０ｂ変換では、下位ビット‘ＥＤＣＢＡ’（５ビット）のデータブロックｘ（１０進表記）と上位ビット‘ＨＧＦ’（３ビット）のデータブロックｙ（１０進表記）に分離する。そして、分離したデータブロックを、Ｄコードと呼ばれるキャラクタコード（シンボル）に置き換えて考える。Ｄコードは、Ｄｘ．ｙのように表記する。
‘ＥＤＣＢＡ’のブロックには５ｂ／６ｂ変換を行い、‘ａｂｃｄｅｉ’（６ビット）に変換する。
同様に、‘ＨＧＦ’のブロックには３ｂ／４ｂ変換を行い、‘ｆｇｈｊ’（４ビット）に変換する。
そして‘ａｂｃｄｅｉ’と‘ｆｇｈｊ’をまとめる事により、１０ビットの符号化されたデータを得る。
このビット変換は、例えば図１に例示するようなテーブルにより行われる。
【００２０】
８ｂ／１０ｂ変換により、８ビットの２５６種類のデータが１０ビットの２５６種類のデータに符号化される。
すなわち、ビット幅が８ビットから１０ビットに拡張されるため、データ以外の特殊コードを埋め込むことが可能になる。本実施形態では、このような特殊コードとして、制御信号Ｋ（Ｋコード）を埋め込んでいる。また、ビット幅が８ビットから１０ビットに拡張されることにより、エラー訂正が可能となる、という効果もある。
【００２１】
ところで、８ｂ／１０ｂ変換では、送信中の符号列の‘０’と‘１’の数を揃えてＤＣバランスをとり、情報の欠落が生じにくくするために、各データブロックが、‘０’と‘１’とを反転させた２種類のパターンを有する。
これらの２種類のパターンを、プラスコード（ポジティブシンボルのコード）とマイナスコード（ネガティブシンボルのコード）と称する。マイナスコードはプラスコードの各ビットをビット反転したコードである。この２種類のパターンを符号＋（プラスコード）／−（マイナスコード）で示す。
【００２２】
この＋／−は、ランニング・ディスパリティ（ＲＤ）と呼ばれる。ＲＤ＋に対し、ＲＤ−はビットを反転したものに等しい。そして、データ伝送時には、直前がＲＤ＋なら次はＲＤ−を、直前がＲＤ−ならば次はＲＤ＋を、というように交互に送信することで、‘０’の数の抑制を行なっている。
ただし、データブロック内で‘０’の数と‘１’の数が同じであれば、原則として反転パターンを持たず、ＲＤの符号（極性）は継続される。
このような仕組みにより、‘０’または‘１’が６個以上連続して伝送されないように定められている。
【００２３】
上述したように、ＲＤにより、各シンボルは２つずつの極性（＋と−）を有する。
このため、８ｂ／１０ｂ変換では、５１２個のシンボル（Ｄコード）が用意される。また、制御信号Ｋ（Ｋコード）と呼ばれる制御用のシンボルを、２４個用意する。
本願発明では、図１に示す８ｂ／１０ｂ変換テーブルの規則性を見出すことにより、より小規模な変換テーブルにより８ｂ／１０ｂ変換を行うことを可能としている。
以下、本願発明の実施形態の構成について、詳細に説明する。
【００２４】
図２は、本発明の実施形態の８ｂ／１０ｂエンコーダ及び８ｂ／１０ｂデコーダを有するシリアル通信ユニット１００を示す図である。
図２に示すように、シリアル通信ユニット１００は、送信回路１０と、受信回路２０と、シリアル伝送路３０とを有する。
図２に示すように、８ビットのデータブロック‘ＨＧＦ  ＥＤＣＢＡ’が送信回路１０に入力され、１０ビットのデータブロック‘ａｂｃｄｅｉ  ｆｇｈｊ’に変換されてシリアル伝送路３０を介して受信回路２０に伝送される。そして、受信回路２０において１０ビットのデータブロック‘ａｂｃｄｅｉ  ｆｇｈｊ’が復号され、８ビットの出力データブロック‘ＨＧＦ  ＥＤＣＢＡ’が出力される。
【００２５】
送信回路１０は、８ｂ／１０ｂエンコーダ１１と、パラレル／シリアル変換器１２とを有する。
８ビットの入力データは、８ｂ／１０ｂエンコーダ１１によって１０ビットのデータに変換され、パラレル／シリアル変換器１２によってシリアルデータに変換される。そして変換されたデータはシリアル伝送路３０により１ビットずつ逐次的に伝送され、受信回路２０に受信される。
受信回路２０は、シリアル／パラレル変換器２１と１０ｂ／８ｂデコーダ２２とを有する。
シリアル伝送路３０を介して伝送されたシリアルデータは、シリアル／パラレル変換器２１によってパラレルの１０ビットのデータに変換される。そして、１０ビットのデータは１０ｂ／８ｂデコーダ２２により８ビットのデータに変換され、出力データとして出力される。
【００２６】
図３は、８ｂ／１０ｂエンコーダと１０ｂ／８ｂデコーダを複数使用した、複数の伝送路を有するシリアル通信システム２００の一例を示す図である。
図３に示すように、シリアル通信システム２００は、送信回路インタフェース１０１と、受信回路インタフェース２０１と、シリアル伝送路３０−１〜３０−ｎ（ｎは正の整数）を有する。
送信回路インタフェース１０１は、ｎ個の８ｂ／１０ｂエンコーダ１１−１〜１１−ｎとパラレル／シリアル変換器１２−１〜１２−ｎとを有する。
受信回路インタフェース２０１は、ｎ個のシリアル／パラレル変換器２１−１〜２１−ｎと、１０ｂ／８ｂデコーダ２２−１〜２２−ｎとを有する。
シリアル伝送路３０−１〜３０−ｎは、これらの間のデータ伝送を行う。
【００２７】
次に、本願発明の実施形態の８ｂ／１０ｂエンコーダの詳細について説明する。
図４は、本願発明の実施形態の８ｂ／１０ｂエンコーダ１１のブロック図の一例を示す図である。
８ｂ／１０ｂエンコーダ１１が、本発明のビット変換回路に対応している。
図４に示すように、８ｂ／１０ｂエンコーダ１１は、分割回路１１１、５ｂ／６ｂ変換回路１１２、３ｂ／４ｂ変換回路１１３、制御信号変換回路１１４、ＲＤ制御回路１１５、合成回路１１６、セレクタ・ＦＦ（フリップフロップ）１１７を有する。また、８ｂ／１０ｂエンコーダ１１は、データの入力／出力端子として、データ入力端子１１８、制御信号入力端子１１９、クロック信号入力端子１２０、及びデータ出力端子１２１を有する。
【００２８】
まず、図４に示す８ｂ／１０ｂエンコーダ１１における、データの流れについて簡単に説明する。
図４に示すように、分割回路１１１は、データ入力端子１１８から入力された８ビットデータ‘ＨＧＦ  ＥＤＣＢＡ’を、５ビットの‘ＥＤＣＢＡ’と３ビットの‘ＨＧＦ’に分割する。
そして、５ビットのデータ‘ＥＤＣＢＡ’は５ｂ／６ｂ変換回路１１２に、３ビットのデータ‘ＨＧＦ’は３ｂ／４ｂ変換回路１１３に、それぞれ入力される。また、８ビットデータ‘ＨＧＦ  ＥＤＣＢＡ’が、制御信号変換回路１１４に入力される。
【００２９】
５ｂ／６ｂ変換回路１１２は、入力された５ビットのデータ‘ＥＤＣＢＡ’を、後述する変換テーブルに従って変換し、１ビット加えた６ビットのデータ‘ａｂｃｄｅｉ＿ｄ’を生成する。なお、ここで‘＿ｄ’はデータを意味する。
そして、現在のデータ‘ＥＤＣＢＡ’のＲＤ極性（符号）を示す信号ｃｕｒｒｅｎｔＲＤ＿５ｂ６ｂをＲＤ制御回路１１５に出力する。
【００３０】
一方、３ｂ／４ｂ変換回路１１３は、入力された３ビットのデータ‘ＨＧＦ’を、後述する変換テーブルに従って変換し、１ビット加えた４ビットのデータ‘ｆｇｈｊ＿ｄ’を生成する。
そして、現在のデータ‘ｆｇｈｊ＿ｄ’のＲＤ極性（符号）を示す信号ｃｕｒｒｅｎｔＲＤ＿３ｂ４ｂをＲＤ制御回路１１５に出力する。
【００３１】
そして、合成回路１１６は、５ｂ／６ｂ変換回路１１２から出力された６ビットのデータ‘ａｂｃｄｅｉ＿ｄ’と３ｂ／４ｂ変換回路１１３から出力された４ビットのデータ‘ｆｇｈｊ＿ｄ’とを合成し、１０ビットのデータ‘ａｂｃｄｅｉｆｇｈｊ＿ｄ’とする。
【００３２】
一方、制御信号入力端子１１９から入力された制御信号Ｋは、制御信号変換回路１１４、ＲＤ制御回路１１５、セレクタ・ＦＦ１１６に入力される。
制御信号変換回路１１４は、入力された８ビットデータ‘ＨＧＦ  ＥＤＣＢＡ’と、制御信号Ｋを基に、後述する変換テーブルに従って変換し、１０ビットのデータ‘ａｂｃｄｅｆｉｆｇｈｊ＿ｋ’を生成する。なお、ここで‘＿ｋ’は制御信号Ｋを意味している。
そして、現在のデータ‘ａｂｃｄｅｉｆｇｈｊ＿ｋ’のＲＤ極性（符号）を示す信号ｃｕｒｒｅｎｔＲＤ＿ｋをＲＤ制御回路１１５に出力する。
【００３３】
ＲＤ制御回路１１５には、５ｂ／６ｂ変換回路１１２からｃｕｒｒｅｎｔＲＤ＿５ｂ６ｂ、３ｂ／４ｂ変換回路１１３からｃｕｒｒｅｎｔＲＤ＿３ｂ４ｂが、制御信号変換回路１１４からｃｕｒｒｅｎｔＲＤ＿ｋがそれぞれ入力される。次の入力データブロックのＲＤ極性は、現在のＲＤ極性から反転されるように定められている。従って、ＲＤ制御回路１１５は、現在のＲＤ極性を反転した極性を示す信号ｎｅｘｔＲＤを５ｂ／６ｂ変換回路１１２、３ｂ／４ｂ変換回路１１３、及び制御信号変換回路１１４に出力する。
【００３４】
セレクタ・ＦＦ（フリップフロップ）１１６は、入力された‘ａｂｃｄｅｉｆｇｈｊ＿ｄ’と、‘ａｂｃｄｅｉｆｇｈｊ＿ｋ’と、を基に１０ビットのデータ‘ａｂｃｄｅｉｆｇｈｊ’を生成してデータ出力端子１２１から出力する。
また、クロック信号入力端子１２０から入力されたクロック信号ＣＬＫがＲＤ制御回路１１５及びセレクタ・ＦＦ１１６に入力される。ＲＤ制御回路１１５及びセレクタ・ＦＦ１１６は、クロック信号ＣＬＫにより同期をとって動作する。
【００３５】
［５ｂ／６ｂ変換テーブル］
以下では、５ｂ／６ｂ変換回路１１２において入力された５ビットのデータ‘ＥＤＣＢＡ’を変換するための変換テーブルについて説明する。
図５は、本実施形態の５ｂ／６ｂ変換テーブルを示す図である。
図５に示すように、本実施形態の５ｂ／６ｂ変換回路１１２において使用する５ｂ／６ｂ変換テーブルは、図５（ａ）に示すパターン１と、図５（ｂ）に示すパターン２の２つのテーブルに分けられる。
この２つのテーブルは、変換後の出力データがＲＤ極性に応じてビット反転の関係になっている場合のテーブルと、変換後の出力データがＲＤ極性によらず入力データと同じ出力データとなっている場合のテーブルである。
上記説明したように、出力データブロック内の‘０’と‘１’の数が異なるときは、ＲＤ＋に対してＲＤ−なる反転パターンが存在するが、データブロック内の‘０’と‘１’の数が等しいときは、反転パターンが存在しない。
すなわち、換言すれば、図５（ａ）に示すパターン１のテーブルは、出力データブロック内の‘０’と‘１’の数が異なる場合のテーブルであり、図５（ｂ）に示すパターン２のテーブルは、出力データブロック内の‘０’と‘１’の数が等しい場合のテーブルである。
【００３６】
以下、図５に示す５ｂ／６ｂ変換テーブルを使用して５ｂ／６ｂ変換回路１１２が変換処理を行う際の具体例について説明する。
上述したように、５ｂ／６ｂ変換回路１１２には、入力された５ビットのデータブロック‘ＥＤＣＢＡ’と、次に出力データのＲＤ極性を示す信号であるｎｅｘｔＲＤとを基に、変換処理を行う。
【００３７】
まず、５ｂ／６ｂ変換回路１１２は、図５に示す５ｂ／６ｂ変換テーブルを参照して、入力された５ビットのデータブロック‘ＥＤＣＢＡ’が、パターン１のテーブルに該当するか、パターン２のテーブルに該当するかを判断する。
【００３８】
図５（ａ）に示すパターン１のテーブルに該当すると判断した場合は、５ｂ／６ｂ変換回路１１２は、どちらかの極性の変換のみを行い、もう片方の極性はインバータにより求める。
そして、上述したＲＤ制御回路１１５から入力されたｎｅｘｔＲＤが示す次の出力データのＲＤ極性に応じた極性のデータを出力データとして出力する。
【００３９】
一方、パターン２のテーブルでは、図５（ｂ）を参照すれば分かるように、入力データブロック‘ＥＤＣＢＡ’と出力データブロックのうち５桁目までの‘ｅｄｃｂａ’は、例外を除いて同じ出力である。
例えば、Ｄ０３．ｘでは、入力データブロック‘ＥＤＣＢＡ’＝‘０００１１’、出力データブロック‘ａｂｃｄｅｉ’＝‘１１０００１’である。すなわち、‘Ｅ’＝‘ｅ’＝０、‘Ｄ’＝‘ｄ’＝０、‘Ｃ’＝‘ｃ’＝０、‘Ｂ’＝‘ｂ’＝１、‘Ａ’＝‘ａ’＝１となっている。図５（ｂ）に示すパターン２のテーブルでは、例外であるＤ０７．ｘを除いて、入力データと出力データの関係は全てこのようになっている。
【００４０】
従って、図５（ｂ）に示すパターン２のテーブルに該当すると判断した場合は、５ｂ／６ｂ変換回路１１２は、出力データブロック‘ａｂｃｄｅｉ’の拡張ビットである‘ｉ’を除いて、各値を入力データブロック‘ＥＤＣＢＡ’と同じ値とする。
パターン２のテーブルでは、出力データブロック内の‘０’と‘１’の数が同じでなければならないことを利用して、拡張ビット‘ｉ’を算出する。
例えば、図５（ｂ）に示すＤ０３．ｘでは、入力データブロック内の‘０’の数＝出力データブロック内の‘０’の数＝３個であり、入力データブロック内の‘１’の数＝出力データブロック内の‘１’の数＝２個である。従って、拡張ビットの値は‘１’である必要がある。
このようにして、変換後の出力データがＲＤ極性によらず入力データと同じ出力データとなっている場合の変換を行う。
ただし、例外であるＤ０７．ｘだけは別途、図５（ｂ）に示す変換テーブルを参照して変換する。
ここで、例外であるＤ０７．ｘは、出力データの‘０’と‘１’の数が同じであるにもかかわらず、＋と−の極性を有するシンボルである。従って、例外であるＤ０７．ｘを変換するときは、５ｂ／６ｂ変換回路１１２は、ＲＤ制御回路から通知された次の出力データのＲＤ極性を基に出力する極性を決定する。
【００４１】
このように、５ｂ／６ｂ変換回路１１２は、変換後の出力データがＲＤ極性に応じてビット反転の関係になっている場合と、変換後の出力データがＲＤ極性によらず同じ出力データとなっている場合とで異なる２つのテーブルを参照する。
変換後の出力データがＲＤ極性に応じてビット反転の関係になっている場合は、テーブルを参照していずれかの極性の出力データを生成した後、インバータにより別の極性の出力データを生成する。
そして、変換後の出力データがＲＤ極性によらず同じ出力データとなっている場合は、入力データの各値と同じ値を変換後の出力データの各値に与えた後、‘０’と‘１’の値の数が同じであることを利用して、拡張ビットの値を算出する。
すなわち、５ｂ／６ｂ変換回路１１２が参照する５ｂ／６ｂ変換テーブルは、本願発明者が、例えば図１に示す８ｂ／１０ｂ変換テーブルの規則性を見出したことにより、その規則性を用いた小規模なテーブルとなっている。
【００４２】
［３ｂ／４ｂ変換テーブル］
次に、３ｂ／４ｂ変換回路１１３において入力された３ビットのデータ‘ＨＧＦ’を変換するための変換テーブルについて説明する。
図６は、本実施形態の３ｂ／４ｂ変換テーブルを示す図である。
図６に示すように、本実施形態の３ｂ／４ｂ変換回路１１３において使用する３ｂ／４ｂ変換テーブルは、図６（ａ）に示すパターン１と、図６（ｂ）に示すパターン２の２つのテーブルに分けられる。
この２つのテーブルは、図５で説明した５ｂ／６ｂ変換テーブルと同様に、変換後の出力データがＲＤ極性に応じてビット反転の関係になっている場合と、変換後の出力データがＲＤ極性によらず入力データと同じ出力データとなっている場合のテーブルである。
【００４３】
以下、図６に示す３ｂ／４ｂ変換テーブルを使用して３ｂ／４ｂ変換回路１１３が変換処理を行う際の具体例について説明する。
上述したように、３ｂ／４ｂ変換回路１１３には、入力された３ビットのデータブロック‘ＨＧＦ’と、次に出力データのＲＤ極性を示す信号であるｎｅｘｔＲＤとを基に、変換処理を行う。
【００４４】
まず、３ｂ／４ｂ変換回路１１３は、図６に示す３ｂ／４ｂ変換テーブルを参照して、入力された３ビットのデータブロック‘ＨＧＦ’が、パターン１のテーブルに該当するか、パターン２のテーブルに該当するかを判断する。
【００４５】
図６（ａ）に示すパターン１のテーブルに該当すると判断した場合は、３ｂ／４ｂ変換回路１１３は、どちらかの極性の変換のみを行い、もう片方の極性はインバータにより求める。
そして、上述したＲＤ制御回路１１５から入力されたｎｅｘｔＲＤが示す次の出力データのＲＤ極性に応じた極性のデータを出力データとして出力する。
【００４６】
一方、パターン２のテーブルでは、図６（ｂ）を参照すれば分かるように、入力データブロック‘ＨＧＦ’と出力データブロックのうち３桁目までの‘ｈｇｆ’は、例外を除いて同じ出力である。
例えば、Ｄｘ．１では、入力データブロック‘ＨＧＦ’＝‘００１’、出力データブロック‘ｆｇｈｊ’＝‘１００１’である。すなわち、‘Ｈ’＝‘ｈ’＝０、‘Ｇ’＝‘ｇ’＝０、‘Ｆ’＝‘ｆ’＝１となっている。図６（ｂ）に示すパターン２のテーブルでは、例外であるＤｘ．３を除いて、入力データと出力データの関係は全てこのようになっている。
【００４７】
従って、図６（ｂ）に示すパターン２のテーブルに該当すると判断した場合は、３ｂ／４ｂ変換回路１１３は、出力データブロック‘ｆｇｈｊ’の拡張ビットである‘ｊ’を除いて、各値を入力データブロック‘ＨＧＦ’と同じ値とする。
パターン２のテーブルでは、出力データブロック内の‘０’と‘１’の数が同じでなければならないことを利用して、拡張ビット‘ｊ’を算出する。
例えば、図６（ｂ）に示すＤｘ．１では、入力データブロック内の‘０’の数＝出力データブロック内の‘０’の数＝２個であり、入力データブロック内の‘１’の数＝出力データブロック内の‘１’の数＝１個である。従って、拡張ビットの値は‘１’である必要がある。
このようにして、変換後の出力データがＲＤ極性によらず入力データと同じ出力データとなっている場合の変換を行う。
ただし、例外であるＤｘ．３だけは別途テーブルを参照して変換する。
ここで、例外であるＤｘ．３は、出力データの‘０’と‘１’の数が同じであるにもかかわらず、＋と−の極性を有するシンボルである。従って、例外であるＤ．３を変換するときは、３ｂ／４ｂ変換回路１１３は、ＲＤ制御回路から通知された次の出力データのＲＤ極性を基に出力する極性を決定する。
【００４８】
このように、３ｂ／４ｂ変換回路１１３は、入力データに応じて、変換後の出力データがＲＤ極性に応じてビット反転の関係になっている場合と、変換後の出力データがＲＤ極性によらず同じ出力データとなっている場合とで異なる２つのテーブルを参照する。
変換後の出力データがＲＤ極性に応じてビット反転の関係になっている場合は、テーブルを参照していずれかの極性の出力データを生成した後、インバータにより別の極性の出力データを生成する。
そして、変換後の出力データがＲＤ極性によらず同じ出力データとなっている場合は、入力データの各値と同じ値を変換後の出力データの各値に与えた後、‘０’と‘１’の値の数が同じであることを利用して、拡張ビットの値を算出する。
すなわち、３ｂ／４ｂ変換回路１１３が参照する３ｂ／４ｂ変換テーブルは、本願発明者が、例えば図１に示す８ｂ／１０ｂ変換テーブルの規則性を見出したことにより、その規則性を用いた小規模なテーブルとなっている。
【００４９】
［制御信号変換テーブル］
次に、制御信号変換回路１１４において入力された８ビットの制御信号Ｋ（Ｋコード）‘ＨＧＦ  ＥＤＣＢＡ’を変換するための変換テーブルについて説明する。
図７は、本実施形態の制御信号変換テーブルを示す図である。
制御信号Ｋとして、上述したように２４個のシンボルが存在する。図７に示すように、制御信号Ｋを、Ｋｘ．ｙと記載する。制御信号Ｋとして、Ｋ２８．０〜Ｋ２８．７、Ｋ２３．７、Ｋ２７．７，Ｋ２９．７、Ｋ３０．７の＋／−の２４個が存在する。
【００５０】
図７に示すように、制御信号Ｋの場合は、全て変換後の出力データがＲＤ極性に応じてビット反転の関係になっている。従って、５ｂ／６ｂ変換回路１１２のパターン１の場合のアルゴリズムと同様のアルゴリズムを使用することができる。
このため、制御信号変換回路１１４は、入力データに応じて、どちらかの極性の変換のみを行い、もう片方の極性はインバータにより求める。
そして、上述したＲＤ制御回路１１５から入力されたｎｅｘｔＲＤが示す次の出力データのＲＤ極性に応じた極性のデータを出力データとして出力する。
【００５１】
［８ｂ／１０ｂエンコーダ１１のエンコードアルゴリズム］
以下、８ｂ／１０ｂエンコーダ１１のエンコードアルゴリズムの具体的なプロセスの一例について説明する。
図８は、８ｂ／１０ｂエンコーダ１１のエンコードアルゴリズムのフローチャートである。
【００５２】
ステップＳＴ１：
入力データが、Ｄコードであるか、それともＫコード（制御信号Ｋ）であるかの判別を行う。
入力データがＤコードである場合は、ステップＳＴ２に進み、入力データがＫコードである場合は、ステップＳＴ５に進む。
ステップＳＴ２：
分割回路１１１は、入力されたＤコードの８ビットデータを、５ビットのデータブロックと３ビットのデータブロックに分割する。
そして、５ビットデータブロックの場合はステップＳＴ３の処理に進み、３ビットデータブロックの場合はステップＳＴ４の処理に進む。
【００５３】
ステップＳＴ３：
分割された５ビットデータブロックは、後述する図９に示す５ビットデータ変換処理に進む。
ステップＳＴ４：
分割された３ビットデータブロックは、後述する図１０に示す３ビットデータ変換処理に進む。
ステップＳＴ５：
Ｋコード（制御信号Ｋ）のデータブロックは、後述する図１１に示すＫコード変換処理に進む。
【００５４】
［５ビットデータ変換処理のフローチャート］
図９は、５ｂ／６ｂ変換回路１１２による５ビットデータ変換処理の一例を示すフローチャートである。
ステップＳＴ１１：
５ｂ／６ｂ変換回路１１２は、上記説明した５ｂ／６ｂ変換テーブルを参照して、入力された５ビットデータが、パターン１に該当するか、パターン２に該当するかのいずれであるかを判断する。
上記説明したように、パターン１は、変換後の出力データがＲＤ極性に応じてビット反転の関係になっている場合のテーブルであり、パターン２は、変換後の出力データがＲＤ極性によらず同じ出力データとなっている場合のテーブルである。
５ｂ／６ｂ変換回路１１２がパターン１であると判断した場合は、ステップＳＴ１２に進み、パターン２であると判断した場合は、ステップＳＴ１３に進む。
【００５５】
ステップＳＴ１２：
５ｂ／６ｂ変換回路１１２は、入力された５ビットデータブロックを基に、パターン１の５ｂ／６ｂ変換テーブルを参照して、いずれかの極性（＋か−か）の変換を行う。
ステップＳＴ１３：
５ｂ／６ｂ変換回路１１２は、ステップＳＴ１２において生成したいずれかの極性の変換後の６ビットのデータブロックを基に、インバータにより他方の極性の６ビットのデータブロックを生成する。
ステップＳＴ１４：
５ｂ／６ｂ変換回路１１２は、ＲＤ制御回路１１５から入力されたｎｅｘｔＲＤが示す次の出力データのＲＤ極性に応じた極性のデータを出力データとして決定する。
【００５６】
ステップＳＴ１５：
５ｂ／６ｂ変換回路１１２は、パターン２の５ｂ／６ｂ変換テーブルを参照して、入力された５ビットデータブロックが例外処理に該当するデータであるか否かを判断する。
例外処理に該当しない場合はステップＳＴ１６に進み、例外処理に該当する（図５（ｂ）に示した例ではＤ０７．ｘ）場合はステップＳＴ１９に進む。
ステップＳＴ１６：
５ｂ／６ｂ変換回路１１２は、各値を入力データブロック‘ＥＤＣＢＡ’と同じ値としたデータブロック‘ａｂｃｄｅ’を生成する。
【００５７】
ステップＳＴ１７：
５ｂ／６ｂ変換回路１１２は、パターン２のテーブルでは、出力データブロック内の‘０’と‘１’の数が同じでなければならないことを利用して、拡張ビット‘ｉ’を算出する。
ステップＳＴ１８：
５ｂ／６ｂ変換回路１１２は、ステップＳＴ１６において生成したデータブロック‘ａｂｃｄｅ’と、ステップＳＴ１７において生成したデータブロック‘ｉ’とを基に、出力データブロック‘ａｂｃｄｅｉ’を生成する。
【００５８】
ステップＳＴ１９：
５ｂ／６ｂ変換回路１１２は、パターン２の５ｂ／６ｂ変換テーブルを参照して、例外処理を行う。
ステップＳＴ２０：
５ｂ／６ｂ変換回路１１２は、生成した出力データブロックを出力する。
【００５９】
［３ビットデータ変換処理のフローチャート］
図１０は、３ｂ／４ｂ変換回路１１３による３ビットデータ変換処理の一例を示すフローチャートである。
ステップＳＴ２１：
３ｂ／４ｂ変換回路１１３は、上記説明した３ｂ／４ｂ変換テーブルを参照して、入力された３ビットデータが、パターン１に該当するか、パターン２に該当するかのいずれであるかを判断する。
上記説明したように、パターン１は、変換後の出力データがＲＤ極性に応じてビット反転の関係になっている場合のテーブルであり、パターン２は、変換後の出力データがＲＤ極性によらず同じ出力データとなっている場合のテーブルである。
３ｂ／４ｂ変換回路１１３がパターン１であると判断した場合は、ステップＳＴ２２に進み、パターン２であると判断した場合は、ステップＳＴ２５に進む。
【００６０】
ステップＳＴ２２：
３ｂ／４ｂ変換回路１１３は、入力された３ビットデータブロックを基に、パターン１の３ｂ／４ｂ変換テーブルを参照して、いずれかの極性（＋か−か）の変換を行う。
ステップＳＴ２３：
３ｂ／４ｂ変換回路１１３は、ステップＳＴ２２において生成したいずれかの極性の変換後の４ビットのデータブロックを基に、インバータにより他方の極性の４ビットのデータブロックを生成する。
ステップＳＴ２４：
３ｂ／４ｂ変換回路１１３は、ＲＤ制御回路１１５から入力されたｎｅｘｔＲＤが示す次の出力データのＲＤ極性に応じた極性のデータを出力データとして決定する。
【００６１】
ステップＳＴ２５：
３ｂ／４ｂ変換回路１１３は、パターン２の３ｂ／４ｂ変換テーブルを参照して、入力された３ビットデータブロックが例外処理に該当するデータであるか否かを判断する。
例外処理に該当しない場合はステップＳＴ２６に進み、例外処理に該当する（図６（ｂ）に示した例ではＤｘ．Ｐ７、Ｄｘ．Ａ７）場合はステップＳＴ２９に進む。
ステップＳＴ２６：
３ｂ／４ｂ変換回路１１３は、各値を入力データブロック‘ＨＧＦ’と同じ値としたデータブロック‘ｆｇｈ’を生成する。
【００６２】
ステップＳＴ２７：
３ｂ／４ｂ変換回路１１３は、パターン２のテーブルでは、出力データブロック内の‘０’と‘１’の数が同じでなければならないことを利用して、拡張ビット‘ｊ’を算出する。
ステップＳＴ２８：
３ｂ／４ｂ変換回路１１３は、ステップＳＴ２６において生成したデータブロック‘ｆｇｈ’と、ステップＳＴ２７において生成したデータブロック‘ｊ’とを基に、出力データブロック‘ｆｇｈｊ’を生成する。
【００６３】
ステップＳＴ２９：
３ｂ／４ｂ変換回路１１３は、パターン２の３ｂ／４ｂ変換テーブルを参照して、例外処理を行う。
ステップＳＴ３０：
３ｂ／４ｂ変換回路１１３は、生成した出力データブロックを出力する。
【００６４】
［Ｋコード変換処理のフローチャート］
図１１は、制御信号変換回路１１４によるＫコード変換処理の一例を示すフローチャートである。
ステップＳＴ５１：
制御信号変換回路１１４は、入力されたデータブロックを基に、上述したＫコード変換テーブルを参照して、いずれかの極性（＋か−か）の変換を行う。
ステップＳＴ５２：
制御信号変換回路１１４は、ステップＳＴ５１において生成したいずれかの極性の変換後のデータブロックを基に、インバータにより他方の極性のデータブロックを生成する。
ステップＳＴ５３：
制御信号変換回路１１４は、ＲＤ制御回路１１５から入力されたｎｅｘｔＲＤが示す次の出力データのＲＤ極性に応じた極性のデータを出力データとして決定する。
ステップＳＴ５４：
制御信号変換回路１１４は、生成した出力データを出力する。
【００６５】
以上説明したように、本実施形態の８ｂ／１０ｂエンコーダ１１によれば、８ビットの入力データがＤコードである場合には、５ビットデータと３ビットデータとに分割し、テーブルを参照して以降の処理を行う。
すなわち、５ビットデータの場合と３ビットデータの場合でそれぞれ、入力データに対する変換後の出力データの‘０’の値と‘１’の値の数が異なるか、出力データの‘０’の値と‘１’の値の数が同じであるか、を判断する。
【００６６】
入力データに対する変換後の出力データの‘０’の値と‘１’の値の数が異なる場合には、５ｂ／６ｂ変換回路１１２により、５ｂ／６ｂ変換回路１１２は、どちらかの極性の変換のみを行い、もう片方の極性はインバータにより求める。
そして、５ｂ／６ｂ変換回路１１２は、上述したＲＤ制御回路１１５から入力されたｎｅｘｔＲＤが示す次の出力データのＲＤ極性に応じた極性のデータを出力データとして出力する。
出力データの‘０’の値と‘１’の値の数が同じである場合は、５ｂ／６ｂ変換回路１１２は、入力データの各値と同じ値を変換後の出力データの各値に与えた後、‘０’と‘１’の数が同じであることを利用して、拡張ビットの値を算出する。
３ビットデータの場合も、３ｂ／４ｂ変換回路１１３により、同様の処理が行われる。
【００６７】
また、Ｋコード（制御信号Ｋ）の場合は、制御信号変換回路１１４は、入力されたデータブロックを基に、Ｋコード変換テーブルを参照して、いずれかの極性（＋か−か）の変換を行う。そして、制御信号変換回路１１４は、生成したいずれかの極性の変換後のデータブロックを基に、インバータにより他方の極性のデータブロックを生成する。制御信号変換回路１１４は、ＲＤ制御回路１１５から入力されたｎｅｘｔＲＤが示す次の出力データのＲＤ極性に応じた極性のデータを出力データとして決定する。
【００６８】
本実施形態の８ｂ／１０ｂエンコーダ１１によれば、上記説明したように、変換後のデータが有する‘０’と‘１’の数が一致するか否かに応じて、８ｂ／１０ｂ変換の際に利用するエンコードテーブルのパターン分けを行っている。そして、入力データがデータを示すＤコードであるとき、‘０’と‘１’の数が同じである場合には、入力データの数が同じであることを利用して算出し、そうでない場合には、エンコードテーブルに従って片方の極性の変換を行った後、インバータにより他方の極性の変換を行うことにより、変換工程の圧縮を行っている。
このように、本発明において参照される変換テーブルは、８ｂ／１０ｂ変換テーブルの規則性を見出すことにより、その規則性を利用して、より小さい規模の変換テーブルで同様の変換を行うことができるように構成されている。
従って、本発明では、圧縮したエンコードテーブルをハードウェア上で実装する際に、テーブルが圧縮され、組み合わせパターンや演算回数が縮小されているため、ゲート規模を小さくすることができる。
また、組み合わせパターンが少なくなっていることにより、動作速度が早くなり、タイミング制御も容易となる。このため、タイミング調整用のフリップフロップ回路の数を削減することができるので、回路全体の消費電力を少なくすることができる。
さらに、８ｂ／１０ｂエンコーダ１１において使用される変換テーブルでは、重複する論理回路を削減することができるので、エンコーダ全体の論理段数、ディレイを少なくすることができる。
さらに、８ｂ／１０ｂエンコーダ１１のソフトウェア実装上、コード量を大幅に削減することができる。
【００６９】
なお、本発明は上述した実施形態には限定されない。
すなわち、本発明の実施に際しては、本発明の技術的範囲またはその均等の範囲内において、上述した実施形態の構成要素に関し様々な変更、コンビネーション、サブコンビネーション、並びに代替を行ってもよい。
上述した実施形態では、８ｂ／１０ｂ変換を行う８ｂ／１０ｂエンコーダ、及び８ｂ／１０ｂエンコーダにおいて使用される５ｂ／６ｂ変換テーブル、３ｂ／４ｂ変換テーブルについて説明したが、本発明はこれには限定されない。
すなわち、例えばｍビットの入力データをｎビットの出力データに変換する変換回路（ｍ、ｎは正の整数、ｎ＞ｍ）においても、入力データを上位ビットと下位ビットに分割し、それぞれを出力データの‘０’の値と‘１’の値の数で場合分けする。このようにすることで、ｍビットの入力データをｎビットの出力データに変換する場合でも、上記説明した本願発明と同様の効果を得ることができる。
【符号の説明】
【００７０】
１０…送信回路、１００…シリアル通信ユニット、１０１…送信回路インタフェース、１１…８ｂ／１０ｂエンコーダ、１１１…分割回路、１１２…５ｂ／６ｂ変換回路、１１３…３ｂ／４ｂ変換回路、１１４…制御信号変換回路、１１５…ＲＤ制御回路、１１６…合成回路、１１７…セレクタ・ＦＦ、１１８…データ入力端子、１１９…制御信号入力端子、１２０…クロック信号入力端子、１２１…データ出力端子、１２…パラレル／シリアル変換器、２０…受信回路、２０１…受信回路インタフェース、２１…シリアル／パラレル変換器、２２…１０ｂ／８ｂデコーダ、３０…シリアル伝送路、２００…シリアル通信システム
【図１】
2011244212.tif 000007
【図２】
2011244212.tif 000008
【図３】
2011244212.tif 000009
【図４】
2011244212.tif 000010
【図５】
2011244212.tif 000011
【図６】
2011244212.tif 000012
【図７】
2011244212.tif 000013
【図８】
2011244212.tif 000014
【図９】
2011244212.tif 000015
【図１０】
2011244212.tif 000016
【図１１】
2011244212.tif 000017