(57)【要約】  【課題】  演算の対象となるデータ長が変化するパラレルデータから、並列演算によるＣＲＣ符号演算を行ってＦＣＳ符号を生成するＭＡＣ回路などを提供する。  【解決手段】  バッファ回路９は送信データ７のデータ長を検定してＦＣＳ符号を生成する演算対象となるデータ長を検出し、ＦＣＳ生成回路８はパラレルで入力される送信データを均等に分割した任意のビット幅で並列演算を行えるＣＲＣ符号演算回路を複数個有しており、バッファ回路から通知される演算対象となる送信データのビット幅を示すデータ長に従って、ＦＣＳ生成回路はデータ長が変化する送信データのＦＣＳ符号を生成する。【選択図】  図１
2005086272.tif 000002
【特許請求の範囲】
【請求項１】
所定のビット幅を持つパラレルデータからＣＲＣ符号を演算するＣＲＣ符号演算回路であって、
前記パラレルデータのＣＲＣ符号演算を行う範囲を示すデータ長情報と、前記パラレルデータが入力され、前記パラレルデータよりも少ないビット幅の演算データから並列演算によってＣＲＣ符号演算を行うことができる複数の演算回路と、前記複数の演算回路の出力信号から所望の信号を選択するセレクタと、前記セレクタの出力信号に応答して初期化時に初期値をロードできるラッチ回路を備え、
前記演算回路に入力されるビット幅と等しいビット幅で前記パラレルデータを均等に分割し、前記演算回路は分割数と等しい個数を持っているものとし、第１の演算回路には直前のＣＲＣ符号演算結果と、分割した前記パラレルデータの最上位にあるデータが入力され、第２の演算回路には前記第１の演算回路の出力と最上位より１つ下位に位置するデータが入力されるという動作が繰り返されて、分割した前記パラレルデータの最下位までのデータがすべての演算回路に入力され、
前記セレクタは前記データ長情報の値に従って複数個ある演算回路から出力されるいずれか１つのＣＲＣ符号演算結果を選択し、前記ラッチ回路は前記セレクタから出力されるＣＲＣ符号演算結果を保持するとともに、前記ラッチ回路の保持するＣＲＣ符号演算結果が前記直前のＣＲＣ符号演算結果となるよう構成されているＣＲＣ符号演算回路。
【請求項２】
Ethernet(R)パケットの誤り検出符号であるＦＣＳの生成回路であって、請求項１に記載のＣＲＣ符号演算回路を用いた構成においてEthernet(R)パケットのペイロード領域のデータが前記パラレルデータとして入力され、前記ラッチ回路は初期化信号の入力時にａｌｌ"１"をロードし、前記ラッチ回路が出力するＣＲＣ符号演算結果を論理反転するインバータを備え、前記インバータの出力がEthernet(R)パケットのＦＣＳとなるよう構成されているＦＣＳ生成回路。
【請求項３】
ＭＡＣ送信回路と、ＭＡＣ受信回路と、ＭＩＩ終端回路を備えるＭＡＣ回路であって、
前記ＭＡＣ送信回路には送信データが所定のビット幅のパラレルで入力され、
前記送信データの先頭と後縁とデータ長情報を検出するとともにプリアンブルと同期ワードを付加するのに要する時間だけ前記送信データを遅延させるバッファ回路と、前記バッファ回路が検出する前記送信データの先頭と後縁のタイミングから、前記プリアンブルと前記同期ワードとフレーム検査シーケンスをEthernet(R)パケットに付加するタイミングとＦＣＳ生成回路の初期化タイミングを生成するタイミング制御回路と、前記送信データと前記プリアンブルと前記同期ワードとＦＣＳからなる前記Ethernet(R)パケットを組み立てるマルチプレクサと、前記バッファ回路が出力する前記送信データと前記データ長情報に従ってＦＣＳを生成する請求項２に記載のＦＣＳ生成回路を備えるＭＡＣ回路。
【請求項４】
ＣＲＣ符号演算を行う複数個のデータ列が時分割多重されている、所定のビット幅を持つ時分割多重データからＣＲＣ符号を演算するＣＲＣ符号演算回路であって、
前記時分割多重データのＣＲＣ符号演算を行う範囲を示すデータ長情報と、パラレルデータと、時分割多重されているデータ列のスロット位置を特定するスロット番号が入力され、前記時分割多重データよりも少ないビット幅の演算データから並列演算によってＣＲＣ符号演算を行うことができる演算回路と、第１のセレクタと、第２のセレクタと、データ列の多重数と等しい個数のラッチ回路を備え、
前記演算回路に入力されるビット幅と等しいビット幅で前記時分割多重データを均等に分割し、前記演算回路は分割数と等しい個数を持っているものとし、第１の演算回路には直前のＣＲＣ符号演算結果と、分割した前記時分割多重データの最上位にあるデータが入力され、第２の演算回路には前記第１の演算回路の出力と最上位の１つ下位に位置するデータが入力されるという構成が繰り返されて、分割した前記時分割多重データの最下位の演算データがすべて演算回路に入力され、
前記第１のセレクタは前記スロット番号に従って前記ラッチ回路に保持されているＣＲＣ符号演算結果の中から該当するスロット番号の直前のＣＲＣ符号演算結果を選択し、前記第２のセレクタは前記データ長情報の値に従って複数個ある演算回路から出力されるいずれか１つのＣＲＣ符号演算結果を選択し、前記ラッチ回路は前記第２のセレクタから出力される該当するスロット番号のデータ列のＣＲＣ符号演算結果を前記スロット番号に従って保持するとともに初期化時に初期値をロードできるよう構成されているＣＲＣ符号演算回路。
【請求項５】
Ethernet(R)パケットの誤り検出符号であるＦＣＳの生成回路であって、請求項４に記載のＣＲＣ符号演算回路を用いた構成において、複数ポートに対応したEthernet(R)パケットのデータが時分割多重されて前記時分割多重データとして入力され、前記スロット番号は複数あるポートのいずれかの送信データであることを示し、前記ラッチ回路は初期化信号の入力時にａｌｌ"１"をロードし、前記ラッチ回路が出力するＣＲＣ符号演算結果を論理反転するインバータをそれぞれ備え、
前記インバータの出力がそれぞれのポートに対応したEthernet(R)パケットのＦＣＳとなるよう構成されているＦＣＳ生成回路。
【請求項６】
ＭＡＣ送信回路と、ＭＡＣ受信回路と、ＭＩＩ終端回路を備え、複数ポートに接続できるＭＡＣ回路であって、
前記ＭＡＣ送信回路には複数ポートの送信データが時分割多重されて所定のビット幅の時分割多重データで入力され、各ポートごとに前記送信データの先頭と後縁とデータ長情報を検出するとともにプリアンブルと同期ワードを付加するのに要する時間だけ前記送信データを遅延させるバッファ回路と、前記バッファ回路が検出する前記送信データの先頭と後縁のタイミングから、前記各ポートごとに前記プリアンブルと前記同期ワードとＦＣＳをEthernet(R)パケットへ付加するタイミングとＦＣＳ生成回路の初期化タイミングを生成するタイミング制御回路と、複数のポートごとに前記送信データと前記プリアンブルと前記同期ワードとＦＣＳからなるEthernet(R)パケットを組み立てるマルチプレクサと、前記バッファ回路が出力する前記送信データと前記データ長情報に従って前記ＦＣＳを生成する請求項５に記載のＦＣＳ生成回路を備えるＭＡＣ回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ディジタル通信の誤り検出技術の１つであるＣＲＣ技術と、ＣＲＣ技術を利用したEthernet(R)通信技術に関し、特にＣＲＣ符号演算回路及びＦＣＳ生成回路並びにＭＡＣ回路にする。
【背景技術】
【０００２】
ＣＲＣ(巡回冗長検査)はディジタル通信の誤り検出手段として広く用いられている技術である。またディジタル通信では扱うデータ速度が高速化する一方、送受信回路の動作速度は低速にし、容易な設計で安定した回路動作を得る手段として、送受信回路の内部では高速のシリアルデータを低速のパラレルデータに変換する手法が用いられている。一般的にはＣＲＣ符号演算回路もパラレルのデータ列から並列演算で求める手法が用いられる。
【０００３】
パラレルデータからＣＲＣ符号を演算する回路としては、下記の特許文献１に記載されたものが知られている。図９は従来のＣＲＣ符号演算回路を示している。このＣＲＣ符号演算回路は、４バイトパラレルＣＲＣ符号演算回路９２、バイトパラレル→バイトシリアル変換回路９３、１バイトシリアルＣＲＣ符号演算回路９４、セレクタ（ＳＥＬ）９５、制御部９６によって構成される。
【特許文献１】特開２００１−２８５０７６号公報
【０００４】
４バイトパラレルＣＲＣ符号演算回路９２は制御部９６から入力される制御タイミング信号に基づいて、外部から入力される４バイトパラレルデータの最終段の余り部分以外のデータからＣＲＣ符号をパラレルで演算し、演算結果をラッチ９７ＡでラッチしてＳＥＬ９５に出力するとともに、１バイトシリアルＣＲＣ符号演算回路９４にも出力する。バイトパラレル→バイトシリアル変換回路９３は制御部９６から入力されるタイミング制御信号に基づいて、外部から入力される４バイトパラレルデータの最終段の余り部分を１バイトシリアルデータに変換して、１バイトシリアルＣＲＣ符号演算回路９４に出力する。１バイトシリアルＣＲＣ符号演算回路９４は、４バイトパラレルＣＲＣ符号演算回路９２から入力される演算結果を初期値として、バイトパラレル→バイトシリアル変換回路９３から入力される最終段のデータをシリアルで演算し、演算結果であるＣＲＣ符号をラッチ９７Ｂ〜９７ＤでそれぞれラッチしてＳＥＬ９５に出力する。以上のようにして、可変長の４バイトパラレルデータが入力されたときは、最終段の余り部分をシリアルデータに変換してＣＲＣ符号演算を行い、ＣＲＣ符号を出力するものである。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら上記従来のＣＲＣ符号演算回路では、データの最終段において１バイトシリアルＣＲＣ符号演算を行うとき、バイトパラレル→バイトシリアル変換に時間を要するため、４バイトパラレルＣＲＣ符号演算と同等の一定の時間内に演算を完了させようとした場合は、１バイトシリアルＣＲＣ符号演算の速度を高速化させる必要がある。したがって容易な設計で安定した回路動作を得ることを目的とした場合、データの最終段では充分な低速化が図れなくなるという問題が発生する。
【０００６】
本発明は上記従来の問題を解決するもので、高速のシリアルデータを低速のパラレルデータに変換して扱う送受信回路において、データ列の後縁まで一定の時間内に低速で演算を行い、安定した回路動作を得られるＣＲＣ符号演算回路及びＦＣＳ（フレーム検査シーケンス）生成回路並びに、上記ＦＣＳ生成回路を備えたＭＡＣ(媒体アクセス制御)回路を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成するために本発明は、有効なデータの領域の範囲を示すデータ長情報と、パラレルデータが入力されるＣＲＣ符号演算回路であって、並列演算によってＣＲＣ符号演算を行うことができる演算回路と、セレクタと、初期化時に初期値をロードできるラッチ回路を備え、前記パラレルデータを任意のビット幅に均等に分割し、分割したデータについてそれぞれＣＲＣ符号演算を行うことで、任意のデータ長の前記パラレルデータのＣＲＣ符号演算結果を、分割したビット単位で得ることができるＣＲＣ符号演算回路を構成したものである。
以上により、高速のシリアルデータを低速のパラレルデータに変換して扱う送受信回路において、データ列の後縁まで一定の時間内に低速で演算を行い安定した回路動作を得られるＣＲＣ符号演算回路と、ＣＲＣ符号演算回路を用いて構成したＦＣＳ生成回路と、かかるＦＣＳ生成回路を備えたＭＡＣ回路が得られる。
【０００８】
請求項１に記載の発明は、所定のビット幅を持つパラレルデータからＣＲＣ符号を演算するＣＲＣ符号演算回路であって、
前記パラレルデータのＣＲＣ符号演算を行う範囲を示すデータ長情報と、前記パラレルデータが入力され、前記パラレルデータよりも少ないビット幅の演算データから並列演算によってＣＲＣ符号演算を行うことができる複数の演算回路と、前記複数の演算回路の出力信号から所望の信号を選択するセレクタと、前記セレクタの出力信号に応答して初期化時に初期値をロードできるラッチ回路を備え、
前記演算回路に入力されるビット幅と等しいビット幅で前記パラレルデータを均等に分割し、前記演算回路は分割数と等しい個数を持っているものとし、第１の演算回路には直前のＣＲＣ符号演算結果と、分割した前記パラレルデータの最上位にあるデータが入力され、第２の演算回路には前記第１の演算回路の出力と最上位より１つ下位に位置するデータが入力されるという構成が繰り返されて、分割した前記パラレルデータの最下位までのデータがすべての演算回路に入力され、
前記セレクタは前記データ長情報の値に従って複数個ある演算回路から出力されるいずれか１つのＣＲＣ符号演算結果を選択し、前記ラッチ回路は前記セレクタから出力されるＣＲＣ符号演算結果を保持するとともに、前記ラッチ回路の保持するＣＲＣ符号演算結果が前記直前のＣＲＣ符号演算結果となるものであり、
データ長情報に従って分割したビット幅単位に任意のデータ長のパラレルデータをＣＲＣ符号演算することができるという作用を有する。
【０００９】
また、請求項２に記載の発明は、Ethernet(R)パケットの誤り検出符号であるＦＣＳの生成回路であって、請求項１に記載のＣＲＣ符号演算回路を用いた構成においてEthernet(R)パケットのペイロード領域のデータが前記パラレルデータとして入力され、前記ラッチ回路は初期化信号の入力時にａｌｌ"１"をロードし、前記ラッチ回路が出力するＣＲＣ符号演算結果を論理反転するインバータを備え、前記インバータの出力がEthernet(R)パケットのＦＣＳとなるものであり、
データ長情報に従って分割したビット幅単位にパラレルデータのＭＳＢ側から任意のデータ長のＣＲＣ符号演算を行うことで、任意のデータ長を持つEthernet(R)パケットのＦＣＳ生成を行うことができる作用を有する。
【００１０】
また、請求項３に記載の発明は、ＭＡＣ送信回路と、ＭＡＣ受信回路と、ＭＩＩ終端回路を備えるＭＡＣ回路であって、前記ＭＡＣ送信回路には送信データが所定のビット幅のパラレルで入力され、
前記送信データの先頭と後縁とデータ長情報を検出するとともにプリアンブルと同期ワードを付加するのに要する時間だけ前記送信データを遅延させるバッファ回路と、前記バッファ回路が検出する前記送信データの先頭と後縁のタイミングから、前記プリアンブルと前記同期ワードとフレーム検査シーケンス(ＦＣＳ)をEthernet(R)パケットに付加するタイミングとＦＣＳ生成回路の初期化タイミングを生成するタイミング制御回路と、前記送信データと前記プリアンブルと前記同期ワードとＦＣＳからなる前記Ethernet(R)パケットを組み立てるマルチプレクサと、前記バッファ回路が出力する前記送信データと前記データ長情報に従ってＦＣＳを生成する請求項２に記載のＦＣＳ生成回路を備えるものであり、
データ長情報に従って分割したビット幅単位に任意のデータ長のＣＲＣ符号演算を行うことで、任意のデータ長を持つEthernet(R)のパケットデータからＦＣＳを生成し、プリアンブル、同期ワード、送信データ、ＦＣＳからなるEthernet(R)パケットを生成、出力するという作用を有する。
【００１１】
また、請求項４に記載の発明は、ＣＲＣ符号演算を行う複数個のデータ列が時分割多重されている、所定のビット幅を持つ時分割多重データからＣＲＣ符号を演算するＣＲＣ符号演算回路であって、
前記時分割多重データのＣＲＣ符号演算を行う範囲を示すデータ長情報と、パラレルデータと、時分割多重されているデータ列のスロット位置を特定するスロット番号が入力され、前記時分割多重データよりも少ないビット幅の演算データから並列演算によってＣＲＣ符号演算を行うことができる演算回路と、第１のセレクタと、第２のセレクタと、データ列の多重数と等しい個数のラッチ回路を備え、
前記演算回路に入力されるビット幅と等しいビット幅で前記時分割多重データを均等に分割し、前記演算回路は分割数と等しい個数を持っているものとし、第１の演算回路には直前のＣＲＣ符号演算結果と、分割した前記時分割多重データの最上位にあるデータが入力され、第２の演算回路には前記第１の演算回路の出力と最上位の１つ下位に位置するデータが入力されるという構成が繰り返されて、分割した前記時分割多重データの最下位の演算データがすべて演算回路に入力され、
前記第１のセレクタは前記スロット番号に従って前記ラッチ回路に保持されているＣＲＣ符号演算結果の中から該当するスロット番号の直前のＣＲＣ符号演算結果を選択し、前記第２のセレクタは前記データ長情報の値に従って複数個ある演算回路から出力されるいずれか１つのＣＲＣ符号演算結果を選択し、前記ラッチ回路は前記第２のセレクタから出力される該当するスロット番号のデータ列のＣＲＣ符号演算結果を前記スロット番号に従って保持するとともに初期化時に初期値をロードできるものであり、
スロット番号とデータ長情報に従い、時分割多重されているそれぞれのデータ列について、分割したビット幅単位に任意のデータ長のＣＲＣ符号演算を行うことができるという作用を有する。
【００１２】
また、請求項５に記載の発明は、Ethernet(R)パケットの誤り検出符号であるＦＣＳの生成回路であって、請求項４に記載のＣＲＣ符号演算回路を用いた構成において、複数ポートに対応したEthernet(R)パケットのデータが時分割多重されて前記時分割多重データとして入力され、前記スロット番号は複数あるポートのいずれかの送信データであることを示し、前記ラッチ回路は初期化信号の入力時にａｌｌ"１"をロードし、前記ラッチ回路が出力するＣＲＣ符号演算結果を論理反転するインバータをそれぞれ備え、
前記インバータの出力がそれぞれのポートに対応したEthernet(R)パケットのＦＣＳとなるものであり、
スロット番号とデータ長情報に従い、時分割多重されている複数のポートのデータ列について、分割したビット幅単位に任意のデータ長のＣＲＣ符号演算を行うことで、任意のデータ長を持つEthernet(R)のパケットデータのＦＣＳを複数あるポートごとに生成できるという作用を有する。
【００１３】
また、請求項６に記載の発明は、ＭＡＣ送信回路と、ＭＡＣ受信回路と、ＭＩＩ終端回路を備え、複数ポートに接続できるＭＡＣ回路であって、
前記ＭＡＣ送信回路には複数ポートの送信データが時分割多重されて所定のビット幅の時分割多重データで入力され、各ポートごとに前記送信データの先頭と後縁とデータ長情報を検出するとともにプリアンブルと同期ワードを付加するのに要する時間だけ前記送信データを遅延させるバッファ回路と、前記バッファ回路が検出する前記送信データの先頭と後縁のタイミングから、前記各ポートごとに前記プリアンブルと前記同期ワードとＦＣＳをEthernet(R)パケットへ付加するタイミングとＦＣＳ生成回路の初期化タイミングを生成するタイミング制御回路と、複数のポートごとに前記送信データと前記プリアンブルと前記同期ワードとＦＣＳからなるEthernet(R)パケットを組み立てるマルチプレクサと、前記バッファ回路が出力する前記送信データと前記データ長情報に従って前記ＦＣＳを生成する請求項５に記載のＦＣＳ生成回路を備えるものであり、
スロット番号とデータ長情報に従い、時分割多重されている複数ポートのデータ列について、分割したビット幅単位に任意のデータ長のＣＲＣ符号演算を行うことで、任意のデータ長を持つEthernet(R)のパケットデータから複数あるポートごとにＦＣＳを生成し、プリアンブル、同期ワード、送信データ、ＦＣＳからなる全ポートのEthernet(R)パケットを生成、出力するという作用を有する。
【発明の効果】
【００１４】
本発明は、有効なデータの領域の範囲を示すデータ長情報と、パラレルデータが入力されるＣＲＣ符号演算回路であって、並列演算によってＣＲＣ符号演算を行うことができる演算回路と、セレクタと、初期化時に初期値をロードできるラッチ回路を備え、前記パラレルデータを任意のビット幅に均等に分割し、分割したデータについてそれぞれＣＲＣ符号演算を行うことで、任意のデータ長の前記パラレルデータのＣＲＣ符号演算結果を、分割したビット単位で得ることができるＣＲＣ符号演算回路を設けることにより、動作速度を低速化させるため回路内部の処理をパラレルデータで行うＭＡＣ回路において、任意のデータ長に変化するパケットデータのＦＣＳ（Ethernet(R)パケットの誤り検出符号）生成を行うことができるという効果が得られる。
【発明を実施するための最良の形態】
【００１５】
＜実施の形態１＞
以下、本発明の実施の形態１について、図１から図４を用いて説明する。図１は本発明の実施の形態１にかかるＭＡＣ回路を示すブロック図である。図１においてＭＡＣ回路１は、ＭＡＣ送信回路２とＭＡＣ受信回路３とＭＩＩ（メディア・インデペンデント・インターフェイス）終端回路４から構成される。ＭＩＩ５から入力されるデータはＭＩＩ終端回路４とＭＡＣ受信回路３を経て受信データ６に出力され、所定のビット幅を持つ送信データ７はＭＡＣ送信回路２とＭＩＩ終端回路４を経てＭＩＩ５に出力される。
【００１６】
ＭＡＣ送信回路２はＦＣＳ生成回路８とバッファ回路９とタイミング制御回路１０とマルチプレクサ（ＭＵＸ）１１から構成される。ＦＣＳ生成回路８は、Ethernet(R)パケットの誤り検出符号であるフレーム検査シーケンス（ＦＣＳ）を生成する回路である。バッファ回路９は、送信データ７の先頭と後縁とデータ長情報を検出するとともにプリアンブル（ＰＲ）と同期ワード(ＳＦＤ)を付加するのに要する時間だけ送信データ７を遅延させて、遅延された送信データを出力する（図４参照）。タイミング制御回路１０は、バッファ回路９が検出する送信データ７の先頭と後縁のタイミングから、ＰＲとＳＦＤとフレーム検査シーケンス(ＦＣＳ)をEthernet(R)パケットに付加するタイミングとＦＣＳ生成回路８の初期化タイミングを生成する。バッファ回路９に送信データ７が入力されたとき、データの先頭を検出したことをタイミング制御回路１０に通知し、タイミング制御回路１０はＦＣＳ生成回路８を初期化するとともにＭＵＸ１１から（ＰＲ＋ＳＦＤ）１２を出力させる。送信データ７はＰＲとＳＦＤを出力するのに要する時間だけ遅延された後、入力されたときのビット幅でバッファ回路９から出力される。遅延された送信データ（単に送信データとも言う）はＭＵＸ１１からＳＦＤに続けて出力されると同時に、ＦＣＳ生成回路８に入力されＦＣＳ生成の演算が行われる。このときバッファ回路９からは送信データの有効範囲を示すデータ長も出力され、通常は送信データの後縁部を除いて所定のビット幅の送信データすべてがＦＣＳ生成の演算範囲となる。送信データ７の入力が完了したとき、バッファ回路９はデータ後縁であることを検出しタイミング制御回路１０に通知するとともに、ＦＣＳ生成回路８にはデータ後縁部におけるデータ長を通知する。ＦＣＳ生成回路８は入力される送信データの中から、バッファ回路９から通知されたデータ長に示される有効な範囲のデータのみを演算対象としてＦＣＳを生成する。タイミング制御回路１０は入力された送信データの出力後、ＦＣＳ生成回路８で生成されたＦＣＳをＭＵＸ１１から出力させ、Ethernet(R)パケットの生成、出力を完了する。
【００１７】
図１中のＦＣＳ生成回路８の構成について説明する前に、ＦＣＳ生成回路８における演算方法について、図２を用いて説明する。図２はＣＲＣ符号演算回路を示すブロック図である。このＣＲＣ符号演算回路は、ｍビットのパラレルデータ２１が入力されたときｘビットのＣＲＣを生成し演算結果２３を出力するものである。ｍビットのパラレルデータ２１ D[m-1:0] はｎビットごとに均等に D[m-1:m-n],D[m-n-1:m-2n],…,D[n-1:0] に分割され、それぞれ演算回路２４-a〜２４-cに入力される。演算回路２４-a〜２４-cはｎビットのデータの並列演算を行ってｘビットのＣＲＣ符号を生成するＣＲＣ符号演算回路であり、パラレルデータ２１の分割数と同数のｍ／ｎ個が存在する。演算回路２４-aではラッチ回路２６の出力値 CRC[x-1:0] と D[m-1:m-n] について演算が行われ、演算回路２４-bでは演算回路２４-aの出力値 CRC(0)[x-1:0] と D[m-n-1:m-2n] について演算が行われ、このようなｎビットごとのＣＲＣ符号演算を繰り返して、演算回路２４-cでは演算回路２４-cの１つ上位に位置する演算回路の出力値とパラレルデータ２１の最下位 D[n-1:0] について演算が行われる。
【００１８】
すなわち演算回路２４-aからはパラレルデータ２１の上位ｎビット D[m-1:m-n] についてＣＲＣ符号演算を行った結果が得られ、演算回路２４-bからはパラレルデータ２１の上位２ｎビット D[m-1:m-2n] についてＣＲＣ符号演算を行った結果が得られ、演算回路２４-cからはパラレルデータ２１の全ビット D[m-1:0] についてＣＲＣ符号演算を行った結果が得られることとなる。
【００１９】
ＣＲＣ符号演算対象となる有効なデータがパラレルデータ２１のＭＳＢからｎビットごとに格納されているとき、データ長情報２２は演算対象となる範囲を示し、セレクタ２５はデータ長情報２２に従って演算対象となっているデータ長分の演算結果を演算回路２４-a〜２４-cの出力値 CRC(0)[x-1:0]〜CRC(m/n)[x-1:0] の中から選択し、ラッチ回路２６はセレクタ２５の出力値を保持して演算結果２３を出力する。
【００２０】
このようにして図２に示すＣＲＣ符号演算回路では、データ長情報２２に従ってパラレルデータ２１を分割したビット幅単位で任意のデータ長のＣＲＣ符号演算を行った演算結果２３が得られる。
【００２１】
上述の図１のＦＣＳ生成回路８の構成を図３に示す。ここではEthernet(R)パケットにおいて扱うデータの単位が１オクテット(８ビット)、ＦＣＳは３２ビットであるので、入力されるパラレルデータを３２ビット、分割するビット幅を８ビットとする。
【００２２】
３２ビットのパラレルデータ３１ D[31:0] は８ビットごとに分割され、上位からそれぞれ演算回路３５-a〜３５-dに入力される。演算回路３５-a〜３５-dは、生成多項式 Ｘ32+Ｘ26+Ｘ23+Ｘ22+Ｘ16+Ｘ12+Ｘ11+Ｘ10+Ｘ8+Ｘ7+Ｘ5+Ｘ4+Ｘ2+Ｘ+1 で表されるＣＲＣ符号を１オクテットごとに並列演算で求めるもので、一方の入力端子には直前のＣＲＣ符号演算結果であるCRC[31:0]及び上位データの演算結果であるCRC(0)[31:0]〜CRC(2)[31:0]がそれぞれ入力されている。データ長情報３２は０〜３の値でパラレルデータ３１の演算対象となるオクテット範囲を示し、セレクタ３６はデータ長情報３２が０、１、２、３と変化するとき、それぞれCRC(0)[31:0],CRC(1)[31:0],CRC(2)[31:0],CRC(3)[31:0]を出力する。ラッチ回路３７はセレクタ３６が出力する値を保持し、初期化信号３３が入力されたときはａｌｌ"１"をロードする。インバータ回路３８はラッチ回路３７に保持されるＣＲＣ符号演算結果をビットごとに論理反転し３２ビットのＦＣＳ演算結果３４を出力する。
【００２３】
図１に示したＭＡＣ回路において、一例として６７オクテット長のデータを送信するときの動作を図４に示す。図３と同様に送信データ７は３２ビット幅、ＦＣＳ生成回路８において送信データを分割するときのビット幅は８ビットとする。
本発明の実施の形態１によれば、パラレルデータを均等に分割したビット幅の単位で並列演算を行う複数個の演算回路を備え、任意のデータ長のＣＲＣ符号演算が可能なＣＲＣ符号演算回路を用いたＦＣＳ生成回路を設けることにより、Ethernet(R)のパケットデータをパラレルで入力しても、オクテット単位で任意の長さに変化するパケットデータのＦＣＳを正しく求められるＭＡＣ回路を構成することができる。
【００２４】
＜実施の形態２＞
図５は本発明の実施の形態２にかかるＭＡＣ回路を示すブロック図である。第２の実施の形態のＭＡＣ回路は複数のポートに接続できる。一例としてＭＡＣ回路の接続できるポート数を４ポートとする。図５においてＭＡＣ回路４１は、ＭＡＣ送信回路４２とＭＡＣ受信回路４３とＭＩＩ終端回路４４-a〜４４-dから構成され、ＭＩＩ０〜３（４５-a〜４５-d）から入力されるデータはＭＩＩ終端回路４４-a〜４４-dとＭＡＣ受信回路４３を経てポート０〜３の受信データ４６-a〜４６-dにそれぞれ出力され、ポート０〜３の送信データ４７-a〜４７-dは時分割多重回路４８で多重化されて所定のビット幅を持つ多重データとなってＭＡＣ送信回路４２に入力され、ＭＡＣ送信回路４２を経て、ＭＩＩ終端回路４４-a〜４４-dで多重化時に圧縮された時間軸を伸長してからＭＩＩ０〜３（４５-a〜４５-d）にそれぞれ出力される。
【００２５】
ＭＡＣ送信回路４２はＦＣＳ生成回路４９とバッファ回路５０とタイミング制御回路５１とＭＵＸ５２から構成される。時分割多重回路４８から、ポート０〜３の送信データ４７-a〜４７-dが時分割多重された多重データと、多重データにおける各ポートのスロット位置を示すポート番号が出力されており、バッファ回路５０はポート番号に従って各ポートごとにデータ先頭とデータ後縁を検出する。任意のポートの送信データが入力されたときバッファ回路５０はデータ先頭を検出したことをタイミング制御回路５１に通知し、タイミング制御回路５１は任意のポートに該当するＦＣＳ生成回路４９に初期値をロードするとともにＭＵＸ５２の任意のポートに対応する出力端子から（ＰＲ＋ＳＦＤ）５３を出力させる。多重データは、ＰＲとＳＦＤを出力するのに要する時間だけ遅延された後、入力されたときのビット幅でバッファ回路５０から出力される。タイミング制御回路５１はポート番号に従い、任意のポートに対応する多重データのスロットデータをＭＵＸ５２からＳＦＤに続けて出力させると同時に、ＦＣＳ生成回路４９において当該ポートにおけるＦＣＳ生成の演算を行わせる。このときバッファ回路５０からは当該ポートのデータの有効範囲を示すデータ長も出力され、通常は送信データの後縁部を除いて所定のビット幅のデータすべてがＦＣＳ生成の演算範囲となる。任意のポートの送信データの入力が完了したとき、バッファ回路５０はデータ後縁であることを検出しタイミング制御回路５１に通知するとともに、ＦＣＳ生成回路４９にはデータ後縁部におけるデータ長を通知する。ＦＣＳ生成回路４９は入力されるデータの中から、バッファ回路５０から通知されたデータ長に示される有効な範囲のデータのみを演算対象としてＦＣＳを生成する。タイミング制御回路５１は入力された送信データの出力後、ＦＣＳ生成回路４９で生成された当該ポートのＦＣＳをＭＵＸ５２から出力させ、任意のポートにおけるEthernet(R)パケットの生成、出力を完了する。
【００２６】
上記ＦＣＳ生成回路４９における演算方法について、図６を用いて説明する。図６は時分割多重されたｐスロットのデータのＣＲＣ符号演算回路であって、ｍビットの時分割多重データ６１が入力されたとき、多重されているスロットごとにｘビットのＣＲＣ符号を生成し演算結果０〜ｐ−１ ６４-a〜６４-cに出力する。スロット番号６２は時分割多重データ６１におけるスロット位置を示している。ｍビットの時分割多重データ６１ D[m-1:0] はｎビットごとに均等に D[m-1:m-n],D[m-n-1:m-2n],…,D[n-1:0] に分割され、演算回路６６-a〜６６-cに入力される。演算回路６６-a〜６６-cはｎビットのデータの並列演算を行ってｘビットのＣＲＣ符号を生成するＣＲＣ符号演算回路であり、時分割多重データ６１の分割数と同数のｍ／ｎ個が存在する。第１のセレクタ６５は、当該スロットにおける直前のＣＲＣ符号演算結果を、ラッチ回路６８-a〜６８-cに保持されている演算結果からスロット番号６２に従って選択し出力する。
【００２７】
演算回路６６-aでは第１のセレクタ６５の出力値 CRC[x-1:0] と D[m-1:m-n] について演算が行われ、演算回路６６-bでは演算回路６６-aの出力値 CRC(0)[x-1:0] と D[m-n-1:m-2n] について演算が行われ、このようなｎビットごとのＣＲＣ符号演算を繰り返して、演算回路６６-cでは演算回路６６-cの１つ上位に位置する演算回路の出力値と時分割多重データ６１の最下位 D[n-1:0] について演算が行われる。
【００２８】
すなわち演算回路６６-aからは時分割多重データ６１の上位ｎビット D[m-1:m-n] についてＣＲＣ符号演算を行った結果が得られ、演算回路６６-bからは時分割多重データ６１の上位２ｎビット D[m-1:m-2n] についてＣＲＣ符号演算を行った結果が得られ、演算回路６６-cからは時分割多重データ６１の全ビット D[m-1:0] についてＣＲＣ符号演算を行った結果が得られることとなる。ＣＲＣ符号演算対象となる有効なデータが時分割多重データ６１のＭＳＢからｎビットごとに格納されているとき、データ長情報６３が演算対象となる範囲を示し、第２のセレクタ６７はデータ長情報６３に従って演算対象となっているデータ長分の演算結果を演算回路６６-a〜６６-cの出力値 CRC(0)[x-1:0]〜CRC(m/n)[x-1:0] の中から選択し、ラッチ回路６８-ａ〜６８-ｃはスロット番号６２に従って所定の１回路に第２のセレクタ６７の出力値を保持してスロット０〜ｐ−１の演算結果６４-ａ〜６４-ｃを出力する。
【００２９】
このようにして図６に示すＣＲＣ符号演算回路からは、スロット番号６２とデータ長情報６３に従って、時分割多重データ６１に多重されているスロットごとに任意のデータ長のＣＲＣ符号演算を行った演算結果６４-ａ〜６４-ｃが得られることとなる。
【００３０】
図５のＦＣＳ生成回路４９の構成を図７に示す。ここでは入力されるパラレルデータを３２ビット、分割するビット幅を８ビットとする。３２ビットの時分割多重データ７１にはポート０〜３のデータが多重されており、ポート番号７２は時分割多重データ７１におけるポート０〜３のデータのスロット位置を示している。ここでポート番号７２は、前記図５においてタイミング制御回路５１から出力されているものとする。時分割多重データ７１ D[31:0] は８ビットごとに分割され、上位からそれぞれ演算回路７７-a〜７７-dに入力される。演算回路７７-a〜７７-dは、生成多項式 Ｘ32+Ｘ26+Ｘ23+Ｘ22+Ｘ16+Ｘ12+Ｘ11+Ｘ10+Ｘ8+Ｘ7+Ｘ5+Ｘ4+Ｘ2+Ｘ+1 で表されるＣＲＣ符号を１オクテットごとに並列演算で求める回路で、一方の入力端子には直前のＣＲＣ符号演算結果であるCRC[31:0]及び上位データの演算結果であるCRC(0)[31:0]〜CRC(2)[31:0]がそれぞれ入力されている。第１のセレクタ７６は、当該ポートにおける直前のＣＲＣ符号演算結果を、ポートごとにラッチ回路７９-a〜７９-dに保持されている演算結果からポート番号７２に従って選択し出力する。
【００３１】
データ長情報７３は０〜３の値で時分割多重データ７１の演算対象となるオクテット範囲を示し、第２のセレクタ７８はデータ長情報７３が０、１、２、３と変化するとき、それぞれCRC(0)[31:0],CRC(1)[31:0],CRC(2)[31:0],CRC(3)[31:0]を出力する。ラッチ回路７９-a〜７９-dは、ポート番号７２に従って第２のセレクタ７８が出力する当該ポートのデータの演算結果を保持し、ポート０〜３の初期化信号７５-a〜７５-dが入力されたときはそれぞれａｌｌ"１"をロードする。インバータ回路８０-a〜８０-dはラッチ回路７９-a〜７９〜dに保持されるＣＲＣ符号演算結果をビットごとに論理反転し、３２ビットのポート０〜３のＦＣＳ７４-a〜７４-dをそれぞれ出力する。
【００３２】
前記の図５に示したＭＡＣ回路４１において、一例としてポート０から６７オクテット長のデータ、ポート１から６５オクテット長のデータを送信するときの動作を図８に示す。図７と同様にポート０〜３の送信データ４７-a〜４７-dは３２ビット幅、ＦＣＳ生成回路４９において送信データを分割するときのビット幅は８ビットとする。
【００３３】
本発明の実施の形態２によれば、パラレルデータを均等に分割したビット幅の単位で並列演算を行う複数個の演算回路を備え任意のデータ長のＣＲＣ符号演算が可能なＣＲＣ符号演算回路を用いたＦＣＳ生成回路を設けることにより、複数ポートのデータを時分割多重し所定のビット幅で入力しても、多重されたポートごとにオクテット単位で任意の長さに変化するEthernet(R)パケットのＦＣＳを正しく求められるＭＡＣ回路を構成することができる。
【００３４】
なお、説明に用いた各種データのビット幅を示す数値、Ethernet(R)のポート数を示す数値は一例であって、本発明で用いることのできる数値を限定するものではない。
【産業上の利用可能性】
【００３５】
以上のように本発明は、動作速度を低速化させるため回路内部の処理をパラレルデータで行うＭＡＣ回路において、任意のデータ長に変化するパケットデータのＦＣＳ生成を行うことができるので、デジタル通信における誤り検出の１つであるＣＲＣ技術を利用したEthernet(R)通信に利用することができる。
【図面の簡単な説明】
【００３６】
【図１】本発明の実施の形態１にかかるＭＡＣ回路を示すブロック図
【図２】本発明の実施の形態１におけるＣＲＣ符号演算回路を示すブロック図
【図３】本発明の実施の形態１におけるＦＣＳ生成回路のブロック図
【図４】本発明の実施の形態１にかかるＭＡＣ回路の動作説明のためのタイミングチャート
【図５】本発明の実施の形態２にかかるＭＡＣ回路を示すブロック図
【図６】本発明の実施の形態２におけるＣＲＣ符号演算回路のブロック図
【図７】本発明の実施の形態２におけるＦＣＳ生成回路のブロック図
【図８】本発明の実施の形態２にかかるＭＡＣ回路の動作説明のためのタイミングチャート
【図９】従来のＣＲＣ符号演算回路のブロック図
【符号の説明】
【００３７】
１、４１  ＭＡＣ回路
２、４２  ＭＡＣ送信回路
３、４３  ＭＡＣ受信回路
４  ＭＩＩ終端回路
５  ＭＩＩ（メディア・インデペンデント・インターフェイス）
６  受信データ
７  送信データ
８、４９  ＦＣＳ生成回路
９、５０  バッファ回路
１０、５１  タイミング制御回路
１１、５２  ＭＵＸ（マルチプレクサ）
１２、５３  ＰＲ＋ＳＦＤ
２１、３１  パラレルデータ
２２、３２  データ長情報
２３  演算結果
２４-a〜２４-c、６６-a〜６６-c  並列演算を行うＣＲＣ符号演算回路
２５、３６  セレクタ
２６、３７  ラッチ回路
３３  ラッチ回路の初期化信号
３４  ＦＣＳ演算結果
３５-a〜３５-d、７７-a〜７７〜d  並列演算を行う３２ビットＣＲＣ符号演算回路
３８  インバータ回路
４４-a〜４４-d  ポート０〜３のＭＩＩ終端回路
４５-a〜４５-d  ポート０〜３のＭＩＩ
４６-a〜４６-d  ポート０〜３の受信データ
４７-a〜４７〜d  ポート０〜３の送信データ
４８  時分割多重回路
６１、７１  時分割多重データ
６２  スロット番号
６３  データ長情報
６４-a〜６４-c  スロット０〜ｐ-1 の演算結果
６５、７６  第１のセレクタ
６７、７８  第２のセレクタ
６８-a〜６８-c  スロット０〜ｐ-1 のラッチ回路
７２  ポート番号
７３  データ長情報
７４-a〜７４-d  ポート０〜３のＦＣＳ
７５-a〜７５-d  ポート０〜３のラッチ回路の初期化信号
７９-a〜７９-d  ポート０〜３のラッチ回路
８０-a〜８０-d  ポート０〜３のインバータ回路
９１  従来のＣＲＣ符号演算回路
９２  従来のＣＲＣ符号演算回路の４バイトパラレルＣＲＣ符号演算回路
９３  従来のＣＲＣ符号演算回路のバイトパラレル→バイトシリアル変換回路
９４  従来のＣＲＣ符号演算回路の１バイトシリアルＣＲＣ符号演算回路
９５  従来のＣＲＣ符号演算回路のセレクタ（ＳＥＬ）
９６  従来のＣＲＣ符号演算回路の制御部
【図１】
2005086272.tif 000003
【図２】
2005086272.tif 000004
【図３】
2005086272.tif 000005
【図４】
2005086272.tif 000006
【図５】
2005086272.tif 000007
【図６】
2005086272.tif 000008
【図７】
2005086272.tif 000009
【図８】
2005086272.tif 000010
【図９】
2005086272.tif 000011