(57)【要約】      （修正有）【課題】高速大容量の主信号データを扱う伝送装置等のデバイスにおいて、消費電力を低減するエンコーダを提供する。【解決手段】エンコーダ６５は、パラレルデータを順次入力し、前のパラレルデータと、次のパラレルデータとの各ビット同士を比較して、一致していないビット数を求め、一致していないビット数が、パラレルデータのビット数の半分よりも多ければ、次のパラレルデータの各ビットを反転し、反転したパラレルデータに対して、データが反転されていることを示すフラグを加えて、次のパラレルデータとして出力し、反転していないパラレルデータに対しては、データが反転されていないことを示すフラグを加えて、次のパラレルデータとして出力する。【選択図】図５
2015226143.tif 000002
【特許請求の範囲】
【請求項１】
パラレルデータを順次入力し、
前のパラレルデータと、次のパラレルデータの各ビット同士を比較して、一致していないビット数を求め、
一致していないビット数が、パラレルデータのビット数の半分よりも多ければ、次のパラレルデータの各ビットを反転し、反転したパラレルデータに対して、データが反転されていることを示すフラグを加えて、次のパラレルデータとして出力し、反転していないパラレルデータに対しては、データが反転されていないことを示すフラグを加えて、次のパラレルデータとして出力するエンコード方法。
【請求項２】
パラレルデータを順次入力し、
前のパラレルデータと、次のパラレルデータとの各ビット同士を比較して、一致していないビット数を求め、
一致していないビット数が、パラレルデータのビット数の半分よりも多ければ、次のパラレルデータの各ビットを反転し、反転したパラレルデータに対して、データが反転されていることを示すフラグを加えて、次のパラレルデータとして出力し、反転していないパラレルデータに対しては、データが反転されていないことを示すフラグを加えて、次のパラレルデータとして出力するエンコーダ。
【請求項３】
パラレルデータを順次入力して保持し、第１パラレルデータとして出力する第１記憶部と、
前記第１記憶部が出力する第１パラレルデータを入力し、各ビットを反転した第１パラレルデータを生成して出力する第１反転部と、
前記第１記憶部が出力する第１パラレルデータと、前記第１反転部が出力する反転した第１パラレルデータとを入力し、入力した選択信号に基づいて、第１パラレルデータ又は反転した第１パラレルデータの内の何れかを選択し、第２パラレルデータとして出力する第１選択部と、
前記第１選択部から入力した第２パラレルデータを保持して出力する第２記憶部と、
前記第１記憶部が出力する第１パラレルデータと、前記第２記憶部が出力する第２パラレルデータとを入力し、第１パラレルデータと第２パラレルデータとの各ビット同士を比較して、一致していないビット数を求め、
一致していないビット数が、パラレルデータのビット数の半分よりも多ければ、前記第１選択部に対して反転した第１パラレルデータを選択させる前記選択信号を生成して、前記第１選択部に出力し、
一致していないビット数が、パラレルデータのビット数の半分以下であれば、前記第１選択部に対して第１パラレルデータを選択させる前記選択信号を生成して、前記第１選択部に出力し、
前記選択信号をフラグとして出力する判断部と、
を備えるエンコーダ。
【請求項４】
前記判断部は、第１パラレルデータと第２パラレルデータの各ビット同士の排他的論理和の演算結果を加算して、第１パラレルデータと第２パラレルデータとの一致していないビット数を求める請求項３に記載のエンコーダ。
【請求項５】
パラレルデータを順次入力し、
前のパラレルデータと、次のパラレルデータとの各ビット同士を比較して、一致していないビット数を求め、
一致していないビット数が、パラレルデータのビット数の半分よりも多ければ、次のパラレルデータの各ビットを反転し、反転したパラレルデータに対して、データが反転されていることを示すフラグを加えて、次のパラレルデータとして出力し、反転していないパラレルデータに対しては、データが反転されていないことを示すフラグを加えて、次のパラレルデータとして出力するエンコーダと、
フラグを有するパラレルデータを順次入力し、
データが反転されていることを示すフラグを有するパラレルデータに対しては、データの各ビットを反転し、フラグを除いたパラレルデータを出力し、
データが反転されていないことを示すフラグを有するパラレルデータに対しては、フラグを除いたパラレルデータを出力するデコーダと、
を備える電子装置。
【請求項６】
前記エンコーダは、
パラレルデータを順次入力して保持し、次のパラレルデータとしての第１パラレルデータを出力する第１記憶部と、
前記第１記憶部が出力する第１パラレルデータを入力し、第１パラレルデータの各ビットを反転した第１パラレルデータを生成して出力する第１反転部と、
前記第１記憶部が出力する第１パラレルデータと、前記第１反転部が出力する反転した第１パラレルデータとを入力し、入力した選択信号に基づいて、第１パラレルデータ又は反転した第１パラレルデータの内の何れかを選択し、第２パラレルデータとして出力する第１選択部と、
前記第１選択部から入力した前のパラレルデータとしての第２パラレルデータを保持して出力する第２記憶部と、
前記第１記憶部が出力する第１パラレルデータと、前記第２記憶部が出力する第２パラレルデータとを入力し、第１パラレルデータと第２パラレルデータとの各ビット同士を比較して、一致していないビット数を求め、
一致していないビット数が、パラレルデータのビット数の半分よりも多ければ、前記選択部に対して反転した第１パラレルデータを選択させる前記選択信号を生成して、前記第１選択部に出力し、
一致していないビット数が、パラレルデータのビット数の半分以下であれば、前記第１選択部に対して第１パラレルデータを選択させる前記選択信号を生成して、前記第１選択部に出力し、
前記選択信号をフラグとして出力する判断部と、
を備える請求項５に記載の電子装置。
【請求項７】
前記デコーダは、
フラグを有するパラレルデータを順次入力し、パラレルデータの各ビットを反転したパラレルデータを生成して出力する第２反転部と、
フラグを有するパラレルデータと、前記第２反転部が出力する反転したパラレルデータとを入力し、入力したフラグに基づいて、パラレルデータ又は反転したパラレルデータの内の何れかを選択し、フラグを除いたパラレルデータを出力する第２選択部と、
前記第２選択部から入力したパラレルデータを保持して出力する第３記憶部と、
を有する請求項５又は６に記載の電子装置。
【請求項８】
前記エンコーダから出力されたフラグを有するパラレルデータを順次入力し、フラグを有するパラレルデータを処理し、処理したフラグを有するパラレルデータを、前記デコーダに対して出力する処理部を備える請求項５〜７の何れか一項に記載の電子装置。
【請求項９】
前記処理部は、
データが反転されていることを示すフラグを有するパラレルデータに対しては、フラグを除き、各ビットを反転したパラレルデータを用いて、データの処理を行った後、パラレルデータの各ビットを反転し、データが反転されていることを示すフラグを加えて反転したパラレルデータを出力し、
データが反転されていないことを示すフラグを有するパラレルデータに対しては、フラグを除いたパラレルデータを用いて、データの処理を行った後、データが反転されていないことを示すフラグを加えてパラレルデータを出力する請求項８に記載の電子装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、エンコーダ、電子装置及びエンコード方法に関する。
【背景技術】
【０００２】
近年では１００Ｇｂｐｓ（１０Ｇｂｐｓ×１０ｃｈ）などで伝送される高速大容量の主信号データを扱う伝送装置が多くなっている。これらの主信号データを扱う電子回路は、ＦＰＧＡ(Flexible Programmable Gate Array)／ＡＳＩＣなどで実現されるのが一般的である。このようなＦＰＧＡ／ＡＳＩＣでは、１００Ｇｂｐｓのような高速大容量データを処理するために、ＦＰＧＡ／ＡＳＩＣ内部で主信号データをパラレル化した上で処理を行う。例えば、１００Ｇｂｐｓのシリアルデータならば、３１２ＭＨｚ×３２０ビットのパラレルデータ、または１５６ＭＨｚ×６４０ビットのパラレルデータに変換した上で処理が行われる。
【０００３】
データ伝送では、各種の伝送方式が提案されているが、ＴＣＰ／ＩＰのパケット通信が広く使用されており、以下の説明ではパケット通信におけるルータを例として説明を行うが、本発明はこれに限定されるものではない。パケット通信において、各パケットは、データの制御情報を示すヘッダと、実データを示すペイロードを含む。パケット通信の伝送装置で行う処理としては、例えば、スイッチング処理、課金処理、シェーパー処理などがある。スイッチング処理では、別デバイスから送信されたパケットからヘッダに含まれる送信先アドレスを抽出し、送信先アドレスが当該伝送装置に該当するか判定し、該当する時にはアドレスに書き換える。また、課金処理では、パケット長を検出して課金を行う。シェーパー処理では、通信品質がベストエフォートになるように処理する。このような処理は、すべてヘッダに含まれるデータに対して行われる処理である。
【０００４】
伝送装置の回路は、３１２ＭＨｚ×３２０ビットのパラレルデータ、または１５６ＭＨｚ×６４０ビットのパラレルデータをフリップフロップ（以下、ＦＦ）等からなる複数段のバッファに保持した上で、上記の処理を実行する。そのため、伝送装置を形成するＦＰＧＡ／ＡＳＩＣなどのデバイスの消費電力が高くなる。特に、主信号データが過渡期の状態になると、デバイスの消費電力はほぼ最大にまで増加することが多い。
【０００５】
デバイスの消費電力が増大することで発熱量も増えるため、デバイスの温度上昇が大きな問題となっている。この問題を解決するため、デバイスに放熱フィンなどを搭載することにより、デバイスからの放熱効果を高めるなどの対策が行われる。しかし、このような対策は、コストの増加、装置としての放熱設計の困難さ、さらにはＦＰＧＡ／ＡＳＩＣそのもののデバイス寿命の短縮にまでつながる課題を発生する。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特表２０１１−５０１２７７号公報
【特許文献２】特開２００２−１４１８０８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
本明細書では、高速大容量の主信号データを扱う伝送装置等の電子装置において、消費電力を低減するエンコーダを提供することを課題とする。
【課題を解決するための手段】
【０００８】
本明細書に開示するエンコーダの一形態によれば、パラレルデータを順次入力し、前のパラレルデータと、次のパラレルデータとの各ビット同士を比較して、一致していないビット数を求め、一致していないビット数が、パラレルデータのビット数の半分よりも多ければ、次のパラレルデータの各ビットを反転し、反転したパラレルデータに対して、データが反転されていることを示すフラグを加えて、次のパラレルデータとして出力し、反転していないパラレルデータに対しては、データが反転されていないことを示すフラグを加えて、次のパラレルデータとして出力する。
【０００９】
本明細書に開示するエンコーダの他の一形態によれば、パラレルデータを順次入力して保持し、第１パラレルデータとして出力する第１記憶部と、上記第１記憶部が出力する第１パラレルデータを入力し、各ビットを反転した第１パラレルデータを生成して出力する第１反転部と、上記第１記憶部が出力する第１パラレルデータと、上記第１反転部が出力する反転した第１パラレルデータとを入力し、入力した選択信号に基づいて、第１パラレルデータ又は反転した第１パラレルデータの内の何れかを選択し、第２パラレルデータとして出力する第１選択部と、上記第１選択部から入力した第２パラレルデータを保持して出力する第２記憶部と、上記第１記憶部が出力する第１パラレルデータと、上記第２記憶部が出力する第２パラレルデータとを入力し、第１パラレルデータと第２パラレルデータとの各ビット同士を比較して、一致していないビット数を求め、一致していないビット数が、パラレルデータのビット数の半分よりも多ければ、上記第１選択部に対して反転した第１パラレルデータを選択させる上記選択信号を生成して、上記第１選択部に出力し、一致していないビット数が、パラレルデータのビット数の半分以下であれば、上記第１選択部に対して第１パラレルデータを選択させる上記選択信号を生成して、上記第１選択部に出力し、上記選択信号をフラグとして出力する判断部と、を備える。
【００１０】
本明細書に開示する電子装置の一形態によれば、パラレルデータを順次入力し、前のパラレルデータと、次のパラレルデータとの各ビット同士を比較して、一致していないビット数を求め、一致していないビット数が、パラレルデータのビット数の半分よりも多ければ、次のパラレルデータの各ビットを反転し、反転したパラレルデータに対して、データが反転されていることを示すフラグを加えて、次のパラレルデータとして出力し、反転していないパラレルデータに対しては、データが反転されていないことを示すフラグを加えて、次のパラレルデータとして出力するエンコーダと、フラグを有するパラレルデータを順次入力し、データが反転されていることを示すフラグを有するパラレルデータに対しては、データの各ビットを反転し、フラグを除いたパラレルデータを出力し、データが反転されていないことを示すフラグを有するパラレルデータに対しては、フラグを除いたパラレルデータを出力するデコーダと、を備える。
【００１１】
本明細書に開示するエンコード方法の一形態によれば、パラレルデータを順次入力し、前のパラレルデータと、次のパラレルデータの各ビット同士を比較して、一致していないビット数を求め、一致していないビット数が、パラレルデータのビット数の半分よりも多ければ、次のパラレルデータの各ビットを反転し、反転したパラレルデータに対して、データが反転されていることを示すフラグを加えて、次のパラレルデータとして出力し、反転していないパラレルデータに対しては、データが反転されていないことを示すフラグを加えて、次のパラレルデータとして出力する。
【発明の効果】
【００１２】
上述した本明細書に開示するエンコーダの一形態によれば、パラレルに伝送されるデータの各ビットのトグルレートを低減できる。
【００１３】
上述した本明細書に開示する電子装置の一形態によれば、パラレルに伝送されるデータの各ビットのトグルレートが低減されているため、処理のために伝送経路（複数段のバッファ）に保持する際のスイッチング回数が低減され、消費電力を減らすことができる。
【図面の簡単な説明】
【００１４】
【図１】図１は、ルータの概略構成およびパケットの構成を示す図である。
【図２】図２は、トグルレートと主信号データのクロックとデータの関係を示すタイムチャートである。
【図３】図３は、ＦＰＧＡの消費電力を下げる方法の例を説明する図である。
【図４】図４は、実施形態のルータの概略構成を示す図であり、（Ａ）は別デバイスとの接続を含めた構成を、（Ｂ）はルータの構成を示す。
【図５】図５は、トランシーバとエンコーダ／デコーダの部分の構成を示す図であり、（Ａ）がトランシーバの受信部(XCVR(R))およびエンコーダの部分を、（Ｂ）がデコーダおよびトランシーバの送信部(XCVR(T))の部分を、示す。
【図６】図６は、エンコーダの具体的な構成を示す図である。
【図７】図７は、デコーダの具体的な構成を示す図である。
【図８】図８は、実施形態における４ビットのパラレルデータのエンコードの結果を説明する図（その１）である。
【図９】図９は、実施形態における４ビットのパラレルデータのエンコードの結果を説明する図（その２）である。
【図１０】図１０は、実施形態における４ビットのパラレルデータのエンコードの結果を説明する図（その３）である。
【図１１】図１１は、実施形態のエンコーダの動作を説明する図である。
【発明を実施するための形態】
【００１５】
実施形態の電子回路は、例えば、ルータに適用される。実施形態を説明する前に、ルータにおける処理の概略を説明する。
ＴＣＰ(Transmission Control Protocol/Internet Protocol)によるパケット通信システムでは、高速大容量の主信号データが１００Ｇｂｐｓ（１０Ｇｂｐｓ×１０ｃｈ）などで伝送される。このような通信システムでは、ルータが、パケットの転送、課金などの各種の処理を行う。
【００１６】
図１は、ルータの概略構成およびパケットの構成を示す図である。
図１の（Ａ）に示すように、ルータ１０は、通信経路４を介して別デバイス２に、および通信経路５を介して別デバイス３に接続される。別デバイス２および３は、他のルータ、関係する通信局の別な装置などである。ここでは、ルータ１０は、２つの別デバイス２および３に接続するように示されているが、３つ以上のデバイスに接続される場合もある。通信経路４および５は、例えば１００Ｇｂｐｓのシリアル通信経路である。ここでは、通信経路４および５は、１本の通信経路として示しているが、このような通信経路を複数並列に有する場合もある。例えば、通信経路４および５は、１０Ｇｂｐｓ×１０パラレルの通信経路であってもよい。ルータ１０は、別デバイスから送信されたパケットのアドレスを検出し、アドレスに応じてパケットのデータを取り込み、パケットを別デバイスに再送する。
【００１７】
図１の（Ｂ）に示すように、各パケットは、データの制御情報を示すヘッダＨと、実データ（主信号データ）を示すペイロードＰを含む。ヘッダＨは、例えば、バージョン、パケット長、データプログラム長、送信元アドレス、宛先アドレス等を有する。パケットの構造は、例えば、パケットが２５６バイト長で、ヘッダＨが２０バイト長で、ペイロードＰが残りの２３６バイト長である。
【００１８】
ルータ１０は、ヘッダＨの情報を認識し、ヘッダＨのデータに対して必要な処理を施す。通常、ルータ１０は、ペイロードＰに含まれる実データについては何の処理も行わないが、ルータの業務に関係するヘッダＨの実データについては取り扱い、ルータ１０が最終端末を兼ねる場合には、当該最終端末への実データについては取り扱う。ここでは、ルータ１０は、最終端末を兼ねない場合を例として説明する。
【００１９】
ルータ１０において、主信号データを扱う電子回路は、１００Ｇｂｐｓなどの高速で伝送された信号を、そのまま処理することは難しいので、ルータ１０内部で主信号データをパラレル化した上で処理を行う。例えば、１００Ｇｂｐｓのシリアルデータならば、３１２ＭＨｚ×３２０ビットのパラレルデータ、または１５６ＭＨｚ×６４０ビットのパラレルデータに変換した上で処理が行われる。
【００２０】
図１の（Ａ）に示すように、ルータ１０は、トランシーバ１１、１２と、処理部２０と、を有する。トランシーバ１１、１２は、通信経路４、５を介して別デバイス２、３に接続され、別デバイス２，３との間で、１００Ｇｂｐｓのレートでシリアル通信を行うものとする。トランシーバ１１、１２は、別デバイスから受信した１００Ｇｂｐｓのシリアルデータを、例えば、３１２ＭＨｚ×３２０ビットのパラレルデータに変換して処理部２０に供給する。さらに、トランシーバ１１、１２は、処理部２０からの３１２ＭＨｚ×３２０のパラレルデータを、１００Ｇｂｐｓのシリアルデータに変換して、別デバイスに送信する。
【００２１】
処理部２０が行う処理は各種ある。例えば、スイッチング処理では、別デバイスから送信されたパケットからヘッダに含まれる送信先アドレスを抽出し、必要に応じて送信先アドレスを書き換える。また、課金処理では、パケット長を検出して課金を行い、シェーパー処理では、通信品質がベストエフォートになるように処理する。
【００２２】
図１の（Ａ）に示すように、処理部２０は、上記の処理を行うために、フリップフロップなどからなるバッファ２１−２４と、Ａ処理部２５と、Ｂ処理部２６と、を有する。Ａ処理部２５およびＢ処理部２６は、例えば、上記のスイッチング処理、課金処理およびシェーパー処理等の何れかである。バッファ２１−２４は、クロックに応じて保持しているパラレルデータを順次シフトする。Ａ処理部２５は、バッファ２１および２２に保持されたパラレルデータに対して処理を行う。Ｂ処理部２６は、バッファ２３および２４に保持されたパラレルデータに対して処理を行う。ここでは、バッファ２１および２２の２段のバッファの組が、Ａ処理部２５が処理を行うためのパラレルデータを保持し、バッファ２３および２４の２段のバッファの組が、Ｂ処理部２６が処理を行うためのパラレルデータを保持している。しかし、処理内容に応じては、バッファの組が１段のみの場合も、３段以上の場合もある。さらに、図１の（Ａ）では、行う処理は２つであるが、３つ以上の場合もある。行う処理が増加すれば、パラレルデータを保持するバッファの組も増加する。
【００２３】
上記のように、ルータ１０においては、基本的にヘッダＨのデータを取扱い、ペイロードＰのデータは取り扱わない。しかし、パケットは１つのまとまりであるため、ヘッダＨのデータに対して各種処理を行うためにデータを保持する場合には、ペイロードＰのデータを含めて保持する。そのため、バッファ２１−２４は、パケットのデータを順次保持する場合、ヘッダＨのデータを保持して次段に出力した後、ペイロードＰのデータを保持する。図１の（Ｂ）に示すように、ペイロードＰのデータ量はヘッダＨのデータ量に比べて多いため、バッファ２１−２４は、大部分の期間、処理対象でないペイロードＰのデータ量を順次保持することになる。
【００２４】
上記のように、３２０ビットのパラレルデータに対して処理を行うのであれば、１段のバッファで３２０個のＦＦが必要であり、２段の場合には６４０個のＦＦが必要であり、処理数が増加すれば、それに応じてＦＦの個数が大きくなる。ＦＦの消費電力は、ＦＦが保持しているデータ値が変化する時に主として発生し、データ値が変化しない時の消費電力は小さい。
【００２５】
ペイロードＰに含まれる実データである主信号データは、主にパーソナルコンピュータ、携帯電話・スマートホンなどのエンドユーザが扱うデータであるため、不規則なパターンのデータである。これをＦＰＧＡ／ＡＳＩＣの消費電力への影響という観点からみると、頻繁にデータ値が変化するトグルレートの高い主信号データは、ＦＦのスイッチング回数を増加させ、ＦＰＧＡ／ＡＳＩＣの消費電力を高くする。逆に、データ値の変化が少ないトグルレートの低い主信号データは、ＦＦのスイッチング回数が少ないため、ＦＰＧＡ／ＡＳＩＣの消費電力が低くなる。主信号データのトグルレートとエンドユーザが扱うデータには相関関係がない。そのため、一般的にＦＰＧＡ／ＡＳＩＣを設計する時には、トグルレートの高い（スイッチング回数が多い）主信号データを想定してＦＰＧＡ／ＡＳＩＣの消費電力を見積もる。そしてその見積もりに基づいて、ＦＰＧＡ／ＡＳＩＣが搭載される装置全体の放熱効果や熱引き設計を行っている。
【００２６】
主信号データのトグルレートは以下の計算式から求めることができる。
トグルレート（％）＝（データの周波数／クロックの周波数）×１００
【００２７】
図２は、トグルレートと主信号データのクロックとデータの関係を示すタイムチャートである。
データの周波数は、データの変化点 (データ０と１の交点＝スイッチング）から算出される周波数（データレート）である。一般的にクロックの周波数に対して、データの周波数は１／２が最大となる。つまり、トグルレート＝５０％の時が最大のデータの周波数となり、ＦＰＧＡ／ＡＳＩＣはこの時が過渡期となり論理回路の消費電力も最も高くなる。
【００２８】
図２の（Ａ）は、データレートが最大の５０％の場合で、２００ＭＨｚのクロックに対して、データ値がクロックの周期ごとに、１００ＭＨｚで変化する。図２の（Ｂ）は、データレートが２５％の場合で、２００ＭＨｚのクロックに対して、データ値がクロックの２周期ごとに、５０ＭＨｚで変化する。図２の（Ｃ）は、データレートが最大の１２．５％の場合で、２００ＭＨｚのクロックに対して、データ値がクロックの４周期ごとに、２５ＭＨｚで変化する。
【００２９】
論理回路（ＬＯＧＩＣ）の消費電力は、論理回路において意図的にトグルレートを下げるように設計すれば、自ずと消費電力も下げることができる。
【００３０】
ルータでは、主信号データに応じてスイッチングするＦＦの個数が多いため、ルータを形成するＦＰＧＡ／ＡＳＩＣなどのデバイスの消費電力が高くなる。特に、主信号データが過渡期の状態になると、デバイスの消費電力はほぼ最大にまで増加することが多い。
【００３１】
デバイスの消費電力が増大することで発熱量も増えるため、デバイスの温度上昇が大きな問題となっている。この問題を解決するため、デバイスに放熱フィンなどを搭載することにより、デバイスからの放熱効果を高めることなどの対策が行われる。しかし、このような対策は、コストの増加、装置としての放熱設計の困難さを発生する。また、デバイスの発熱量が増大することは、ＦＰＧＡ／ＡＳＩＣそのもののデバイス寿命の短縮にまでつながる課題を発生し得る。
【００３２】
そこで、ルータを形成するＦＰＧＡの消費電力を下げる方法がいくつか提案されている。
図３は、ＦＰＧＡの消費電力を下げる方法の例を説明する図である。
【００３３】
図３の（Ａ）は、２個のＦＰＧＡで形成される２個のサブルータ１０Ａおよび１０Ｂでルータ１０を形成し、主信号データ処理を複数のＦＰＧＡに分割して行うことにより消費電力を分散させる構成を示す。この構成により、１個のＦＰＧＡの消費電力を低減して温度上昇を抑えることができる。しかし、１００Ｇｂｐｓのシリアルデータを３１２ＭＨｚ×３２０ビットのパラレルデータに変換して処理を行い、その後再び１００Ｇｂｐｓのシリアルデータに変換して戻す処理を、２回行うことになる。そのため、ルータ１０全体の回路規模が大きくなり、高コストであると共に、全体としての消費電力が大きいという問題がある。
【００３４】
図３の（Ｂ）は、ルータ１０内で主信号データを処理する複数の処理のうち、処理実行の上で未使用となる処理部へのクロックをディセーブルにして回路を動作させないようにすることで消費電力を下げる場合の構成を示す。図３の（Ｂ）に示すように、クロック供給を制御するゲート１５をクロック源４からＡ処理部２５へのクロック供給経路に、ゲート１６をクロック源４からＢ処理部２６へのクロック供給経路に、それぞれ設ける。Ａ処理部２５が未使用の時にはゲート１５をディセーブルにし、Ｂ処理部２６が未使用の時にはゲート１５をディセーブルにする。これにより、無駄な回路動作を防止し低消費電力化が図れるが、未使用となる処理部が存在しない場合には、消費電力が増大して発熱量が増え、デバイスの温度上昇が大きくなる。そのため、設計はこのような最悪の場合を考慮して行う必要があり、上記の問題を解決できない。
【００３５】
以上、ルータにおける処理の概略を説明したが、多ビットのパラレルデータを順次処理する場合には、上記の問題が発生する。
以下に説明する実施形態では、処理部４０において順次伝送されるパラレルデータの変化点（データ０と１の交点）を少なくするようにエンコード/デコードすることで、主信号データのトグルレートを下げたルータが開示される。これにより、処理部４０における消費電力が低減され、回路規模の増大を抑制して消費電力を低減する。この技術は、多ビットのパラレルデータを順次処理する技術はルータに限定されず、他の多ビットのパラレルデータを順次処理する構成であれば適用可能である。
【００３６】
図４は、実施形態のルータの概略構成を示す図であり、（Ａ）は別デバイスとの接続を含めた構成を、（Ｂ）はルータの構成を示す。
【００３７】
図４の（Ａ）に示すように、ルータ３０は、通信経路４を介して別デバイス２に、および通信経路５を介して別デバイス３に接続される。これは図１の（Ａ）のルータ１０と同様であり、別デバイス、通信経路およびそれらとの接続形態についての説明は省略する。ルータ３０は、図１の（Ｂ）に示したようなパケットを取り扱う。これについての説明も省略する。
【００３８】
前述の通り、ルータ３０では、１００Ｇｂｐｓなどの高速で伝送された信号を３１２ＭＨｚ×３２０ビットのパラレルデータまたは１５６ＭＨｚ×６４０ビットのパラレルデータに変換した上で処理を行う。ここでは、３１２ＭＨｚ×３２０ビットのパラレルデータに変換し、さらに３１２ＭＨｚ×３２０ビットのパラレルデータを４ビットの変換単位に分割してトグルレートを低減する反転処理を行うか行わないかの処理を行う場合を説明する。
【００３９】
図４の（Ａ）に示すように、ルータ３０は、トランシーバ３１、３２と、処理部４０と、エンコーダ／デコーダ(Enc./Dec)６１と、エンコーダ／デコーダ(Enc./Dec)６２と、を有する。トランシーバ３１、３２は、図１の（Ａ）で説明したものと同様に、通信経路４、５を介して別デバイス２、３に接続され、別デバイス２、３との間で、１００Ｇｂｐｓのレートでシリアル通信を行う。トランシーバ１１、１２は、別デバイスから受信した１００Ｇｂｐｓのシリアルデータを、例えば、３１２ＭＨｚ×３２０ビットのパラレルデータに変換してエンコーダ／デコーダ６１、６２に供給する。さらに、トランシーバ１１、１２は、エンコーダ／デコーダ６１、６２からの３１２ＭＨｚ×３２０ビットのパラレルデータを、１００Ｇｂｐｓのシリアルデータに変換して、別デバイスに送信する。なお、トランシーバ１１、１２のシリアル／パラレルおよびパラレル／シリアルの変換処理の一部をエンコーダ／デコーダ６１、６２で行うようにしてもよい。
【００４０】
エンコーダ／デコーダ６１、６２は、トランシーバ３１、３２からの３１２ＭＨｚ×３２０ビットのパラレルデータを、クロックに同期して順次入力する。まず、エンコーダ／デコーダ６１、６２は、前のパラレルデータと、次のパラレルデータの各ビット同士を比較して、一致していないビット数を求める。次に、エンコーダ／デコーダ６１、６２は、一致していないビット数が、パラレルデータのビット数の半分よりも多ければ、次のパラレルデータの各ビットを反転し、反転したパラレルデータに対して、データが反転されていることを示すフラグを加えて、次のパラレルデータとして出力する。反転したパラレルデータは、反転する前よりも、トグルレートの低いデータに変換される。一方、エンコーダ／デコーダ６１、６２は、一致していないビット数が、パラレルデータのビット数の半分以下であれば、次のパラレルデータの反転は行わない。エンコーダ／デコーダ６１、６２は、反転していないパラレルデータに対しては、データが反転されていないことを示すフラグを加えて、次のパラレルデータとして出力する。
【００４１】
ここで、以下の説明では、エンコーダ／デコーダ６１、６２には、３１２ＭＨｚ×３２０ビットが４ビット毎に分割されて、クロックに同期して順次入力される。エンコーダ／デコーダ６１、６２は、４ビットのパラレルデータに対して、前のパラレルデータと、次のパラレルデータの各ビット同士を比較して、一致していないビット数を求める。次に、エンコーダ／デコーダ６１、６２は、一致していないビット数が、パラレルデータのビット数の半分よりも多ければ、即ち、一致していないビット数が３以上の場合、次のパラレルデータの各ビットを反転する。反転した４ビットのパラレルデータは、前のパラレルデータと一致しないビット数が１以下になる。即ち、反転する前よりも、トグルレートの低いデータに変換される。反転したパラレルデータに対しては、データが反転されていることを示すフラグとして１ビットのデータが、４ビットのパラレルデータに付加される。反転していないパラレルデータに対しても、データが反転されていないことを示すフラグとして１ビットのデータが、４ビットのパラレルデータに付加される。フラグを示す１ビットのデータとして、反転した場合には、”１”が、反転していない場合には、”０”が、パラレルデータに付加される。従って、エンコーダ／デコーダ６１、６２において、４ビットのパラレルデータは、フラグを示す１ビットのデータが付加されて、５ビットのパラレルデータに変換される。３１２ＭＨｚ×３２０ビットのパラレルデータは、エンコーダ／デコーダ６１、６２においてフラグを示す１ビットのデータが付加されることにより、３１２ＭＨｚ×４００ビットのパラレルデータに変換される。
【００４２】
さらに、エンコーダ／デコーダ６１、６２は、処理部４０からのフラグが付加された３１２ＭＨｚ×４００ビットのパラレルデータを、クロックに同期して順次入力する。そして、エンコーダ／デコーダ６１、６２は、データが反転されていることを示すフラグを有するパラレルデータに対しては、データの各ビットを反転して、データの状態を元に戻した後、フラグを除いたパラレルデータを出力する。一方、エンコーダ／デコーダ６１、６２は、データが反転されていないことを示すフラグを有するパラレルデータに対しては、フラグを除いたパラレルデータを出力する。このようにして、エンコーダ／デコーダ６１、６２は、フラグを示す１ビットのデータが除かれた３１２ＭＨｚ×３２０ビットのパラレルデータをトランシーバ３１、３２に出力する。
【００４３】
なお、図５の（Ａ）では、トランシーバ３１、３２およびエンコーダ／デコーダ６１、６２は、データが双方向に伝送（移動）するように示しているが、実際にはそれぞれ異なる一方向の処理を行う回路を組み合わせた回路で実現される。また、３１２ＭＨｚ×４００ビットのパラレルデータは、上述したように４ビット毎に分割して反転処理をしてもよいが、他のビット単位に分割して反転処理を行ってもよい。
【００４４】
前述のように、処理部４０が行う処理は、スイッチング処理、課金処理およびシェーパー処理など各種あり、それらの処理についての説明は省略する。
【００４５】
処理部４０は、クロックに応じて保持しているパラレルデータを順次シフトする複数のバッファ４１−４６と、３つの処理部（Ａ処理部、Ｂ処理部、Ｃ処理部）４７−４９と、変換テーブル／レジスタ５０と、を有する。Ａ処理部４７、Ｂ処理部４８、Ｃ処理部４９は、例えば、上記のスイッチング処理、課金処理およびシェーパー処理を行うが、それに限定されず、他の処理を行ってもよく、処理の数が４以上でもよい。
【００４６】
前述のように、フリップフロップなどからなるバッファ４１−４６は、各処理部がパラレルデータに対して処理を行えるように、クロックに応じてパラレルデータを順次シフト（伝送）し、クロック周期の間保持する。バッファの説明は省略するが、Ａ処理部４７、Ｂ処理部４８およびＣ処理部４９がそれぞれパケットのヘッダのデータのみを取り扱う場合でも、バッファ４１−４６は、ペイロードのデータを含めてシフトおよび保持を行う。そのため、バッファ４１−４６に含まれる多数のフリップフロップ（ＦＦ）の消費電力は大きい。
【００４７】
実施形態の処理部４０には、エンコーダ／デコーダ６１または６２で変換されたパラレルデータが供給される。この変換されたパラレルデータは、トグルレートの高いものはトグルレートの低いデータに変換されているため、全体として、変換しない場合に比べてトグルレートが低い。前述のように、ＦＦの電力消費は主として保持するデータ値が変化する時に発生し、バッファ４１−４６における消費電力はトグルレートに応じて変化するため、実施形態では、処理部４０のバッファ４１−４６における消費電力が低減される。
【００４８】
エンコーダ／デコーダ６１、６２における変換処理については後述するが、バッファ４１−４６は、データをそのままシフトして保持するだけなので、変換されたデータであってもそのまま取り扱うことができる。
【００４９】
一方、Ａ処理部４７、Ｂ処理部４８およびＣ処理部４９は、変換されたデータに対して論理演算を行うため、変換テーブル／レジスタ５０に保持された変換情報を利用して処理を行う。例えば、スイッチング処理や課金処理では、パケットのアドレスがレジスタに記憶された対象アドレスに一致するかを検出して、取り込むパケットであるかを判定する。対象アドレスは、変換テーブル／レジスタ５０に保持しておいて一致検出に使用する。データが反転されていることを示すフラグを有するパラレルデータ（アドレス）が伝送されてきた場合には、そのデータを反転した後、変換テーブル／レジスタ５０に保持された対象アドレスとの一致を検出する。
【００５０】
Ａ処理部４７、Ｂ処理部４８およびＣ処理部４９は、エンコーダから出力され、バッファに保持されているフラグを有するパラレルデータを順次入力し、フラグを有するパラレルデータを処理し、処理したフラグを有するパラレルデータを、デコーダに対して、順次出力する。
【００５１】
なお、Ａ処理部４７、Ｂ処理部４８およびＣ処理部４９の何れかにおける処理の結果、ヘッダのデータ（例えばアドレス）を書き換える場合には、変換無しで所望のデータに書き換えて、データが反転されていないことを示すフラグを加えてもよい。書き換えるデータはパケット量に対して小さな割合であり、たとえ書き換えるデータのトグルレートが高くても、消費電力の増加は無視できる。しかし、書き換えるデータのトグルレートを小さくするように、反転無しで所望のデータになる書き換えデータと、反転（デコード）した後に所望のデータになる書き換えデータのいずれを選択し、フラグを付加してもよい。
【００５２】
即ち、各処理部４７〜４９は、データが反転されていることを示すフラグを有するパラレルデータに対しては、フラグを除き、各ビットを反転したパラレルデータを用いて、データの処理を行う。その後、パラレルデータの各ビットを反転し、データが反転されていることを示すフラグを加えて反転したパラレルデータを、次のバッファに出力する。また、各処理部４７〜４９は、データが反転されていないことを示すフラグを有するパラレルデータに対しては、フラグを除いたパラレルデータを用いて、データの処理を行った後、データが反転されていないことを示すフラグを加えてパラレルデータを、次のバッファに出力してもよい。
【００５３】
図５は、トランシーバ３１とエンコーダ／デコーダ６１の部分の構成を示す図であり、（Ａ）がトランシーバの受信部(XCVR(R))３５およびエンコーダ６５の部分を、（Ｂ）がデコーダ６６およびトランシーバの送信部(XCVR(T))３６の部分を、示す。トランシーバ３１は受信部(XCVR(R))３５および送信部(XCVR(T))３６を有し、エンコーダ／デコーダ６１はエンコーダ６５およびデコーダ６６を有し、信号の伝送方向に応じて使用する系を切り換える。トランシーバ３２およびエンコーダ／デコーダ６２も同様の構成を有する。
【００５４】
トランシーバの受信部(XCVR(R))３５は、１００Ｇｂｐｓ（１０Ｇｂｐｓ×１０）シリアルデータを受信し、３１２．５ＭＨｚ×３２０（３１２．５ＭＨｚ×３２×１０）パラレルデータに変換してエンコーダ６５に出力する。エンコーダ６５は、３１２．５ＭＨｚ×３２０パラレルデータに対して、４ビット毎の反転処理を行うと共にフラグを付加することにより、すなわち４ビットから５ビットへの変換を行うので、３１２．５ＭＨｚ×４００パラレルデータを生成する。３１２．５ＭＨｚ×４００パラレルデータのうち、３１２．５ＭＨｚ×８０パラレルデータがフラグを示すデータであり、残りの３１２．５ＭＨｚ×３２０パラレルデータが、反転しないデータまたは反転したデータである。したがって、エンコーダ６５は、４ビットから５ビットへの変換を行うと同時に、パラレルデータのビット数を増加させるマルチプレクサとしても機能する。
【００５５】
デコーダ６６は、３１２．５ＭＨｚ×４００パラレルデータに対して、５ビット毎に反転したデータを元に戻すと共にフラグを除去し、すなわち５ビットから４ビットへの変換を行って、３１２．５ＭＨｚ×３２０パラレルデータを生成する。上記と同様に、３１２．５ＭＨｚ×４００パラレルデータのうち、３１２．５ＭＨｚ×８０パラレルデータがフラグを示すデータ信号であり、残りの３１２．５ＭＨｚ×３２０パラレルデータが、反転しないデータまたは反転したデータである。したがって、デコーダ６６は、５ビットから４ビットへの変換を行うと同時に、減少させるデマルチプレクサとしても機能する。トランシーバの送信部(XCVR(T))３６は、３１２．５ＭＨｚ×３２０パラレルデータを１００Ｇｂｐｓ（１０Ｇｂｐｓ×１０）シリアルデータに変換して出力する。
【００５６】
図６は、エンコーダ６５の具体的な構成を示す図である。
エンコーダ６５は、３１２．５ＭＨｚ×３２０パラレルデータのうちの分割された４ビットのパラレルデータに対して、反転処理を行うと共にフラグを付して、３１２．５ＭＨｚ×５のパラレルデータに変換する変換回路７１を、８０個分有する。図６では、８０個分の変換回路７１をまとめて参照番号７０で示している。
【００５７】
変換回路７１は、第１記憶部ＦＦ１と、反転部７１Ａと、選択部７１Ｂと、第２記憶部ＦＦ２と、判断部７１Ｃを有する。
【００５８】
第１記憶部ＦＦ１は、３１２．５ＭＨｚ×３２０パラレルデータのうちの分割された４ビットを、３１２．５ＭＨｚのクロックに同期して順次入力して保持し、保持したパラレルデータを、第１パラレルデータＰ１として出力する。
【００５９】
反転部７１Ａは、第１記憶部ＦＦ１が出力する第１パラレルデータＰ１を入力し、第１パラレルデータＰ１の各ビットを反転した第１パラレルデータＰ１を生成して出力する。
【００６０】
選択部７１Ｂは、第１記憶部ＦＦ１が出力する第１パラレルデータＰ１と、反転部７１Ａが出力する反転した第１パラレルデータＰ１とを入力する。選択部７１Ｂは、判断部７１Ｃから入力した選択信号Ｓに基づいて、反転していない第１パラレルデータＰ１又は反転した第１パラレルデータＰ１の内の何れかを選択し、第２パラレルデータＰ２として第２記憶部ＦＦ２に出力する。
【００６１】
第２記憶部ＦＦ２は、３１２．５ＭＨｚのクロックに同期して、選択部７１Ｂから入力した第２パラレルデータＰ２を保持して、判断部７１Ｃ及び処理部４０に出力する。実施形態では、第２記憶部ＦＦ２は、ビット０〜３の４ビットのパラレルデータを、判断部７１Ｃ及び処理部４０に出力する。
【００６２】
判断部７１Ｃは、まず、第１記憶部ＦＦ１が出力する第１パラレルデータＰ１と、第２記憶部ＦＦ２が出力する第２パラレルデータＰ２を入力し、第１パラレルデータＰ１と第２パラレルデータＰ２の各ビット同士を比較して、一致していないビット数を求める。次に、判断部７１Ｃは、一致していないビット数が、パラレルデータのビット数の半分よりも多ければ、即ち、一致していないビット数が３以上であれば、選択部７１Ｂに対して反転した第１パラレルデータＰ１を選択させる選択信号Ｓを生成して、選択部７１Ｂに出力する。一方、判断部７１Ｃは、一致していないビット数が、パラレルデータのビット数の半分以下であれば、即ち、一致していないビット数が２以下であれば、選択部７１Ｂに対して反転していない第１パラレルデータＰ１を選択させる選択信号Ｓを生成して、選択部７１Ｂに出力する。また、判断部７１Ｃは、選択信号Ｓを、フラグを示す１ビットのデータとして、選択部７１Ｂ及び処理部４０に出力する。
【００６３】
具体的には、判断部７１Ｃは、ＥｏＲ部７１Ｄ及び加算判定部７１Ｅを有する。
【００６４】
ＥｏＲ部７１Ｄは、第１パラレルデータＰ１と第２パラレルデータＰ２の各ビット同士の排他的論理和を演算して、各ビット同士の演算結果を加算判定部７１Ｅに出力する。
【００６５】
加算判定部７１Ｅは、まず、入力した各ビット同士の排他的論理和の演算結果を加算して、第１パラレルデータＰ１と第２パラレルデータＰ２との一致していないビット数を求める。次に、加算判定部７１Ｅは、一致していないビット数が、パラレルデータのビット数の半分よりも多ければ、反転した第１パラレルデータＰ１を選択させる選択信号Ｓを生成する。一方、加算判定部７１Ｅは、一致していないビット数が、パラレルデータのビット数の半分以下であれば、反転していない第１パラレルデータＰ１を選択させる選択信号Ｓを生成する。次に、加算判定部７１Ｅは、選択信号Ｓを生成して、第１選択部７１Ｂ及び処理部４０に出力する。実施形態の加算判定部７１Ｅは、反転した第１パラレルデータＰ１を選択させる場合には、選択信号Ｓとして”１”の値を有するデータ信号を生成し、反転していない第１パラレルデータＰ１を選択させる場合には、選択信号Ｓとして”０”の値を有するデータ信号を生成する。
【００６６】
このようにして、変換回路７１が出力する５ビット列のうち４列は、前の４列の対応するビットに対してトグルレートが小さくなるように変換されている。
【００６７】
以上のようにして、エンコーダ６５からは、３１２．５ＭＨｚ×４００のパラレルデータが出力される。上記のように、３１２．５ＭＨｚ×４００のパラレルデータの内の３１２ＭＨｚ×３２０のパラレルデータは、トグルレートが小さくなるように変換されているため、処理部４０のバッファ４１−４６を順にシフトしながら伝送される時の消費電力が低減される。
【００６８】
図７は、デコーダ６６の具体的な構成を示す図である。
デコーダ６６は、３１２．５ＭＨｚ×５のパラレルデータに対して、反転処理すると共にフラグを示すデータを除去して、３１２．５ＭＨｚ×４のパラレルデータに変換する逆変換回路８１を、８０個有する。図７では、１個の逆変換回路８１を示している。他の逆変換回路は、図７に示す逆変換回路８１と同様の構成を有する。
【００６９】
逆変換回路８１は、３１２．５ＭＨｚのクロックに同期して、フラグを示す１ビットのデータを含む５ビットのパラレルデータを順次入力する。逆変換回路８１は、データが反転されていることを示すフラグを有するパラレルデータに対しては、データの各ビットを反転して、フラグを除いた４ビットのパラレルデータを出力する。一方、逆変換回路８１は、データが反転されていないことを示すフラグを有するパラレルデータに対しては、フラグを除いた４ビットのパラレルデータを出力する。
【００７０】
具体的には、逆変換回路８１は、反転部８１Ａと、選択部８１Ｂと、記憶部ＦＦを有する。
【００７１】
反転部８１Ａは、３１２．５ＭＨｚのクロックに同期して、フラグを示す１ビットのデータを含む５ビットの内のビット０〜３の４ビットのパラレルデータを順次入力し、パラレルデータの各ビットを反転したパラレルデータを生成して、選択部８１Ｂに出力する。
【００７２】
選択部８１Ｂは、３１２．５ＭＨｚのクロックに同期して、５ビットのパラレルデータの内のビット４であるフラグを示す１ビットのデータと、ビット０〜３の４ビットのパラレルデータとを入力する。選択部８１Ｂは、入力したフラグに基づいて、反転していないパラレルデータ又は反転したパラレルデータの内の何れかを選択し、フラグを除いた４ビットのパラレルデータを記憶部ＦＦに出力する。
【００７３】
記憶部ＦＦは、３１２．５ＭＨｚのクロックに同期して、選択部８１Ｂから入力した４ビットのパラレルデータを入力し、保持して出力する。
【００７４】
したがって、デコーダ６６は、３１２．５ＭＨｚ×４００ビットのパラレルデータを入力して、５ビット毎に反転処理を行うと共にフラグを除去して、３１２．５ＭＨｚ×３２０ビットのパラレルデータを出力する。
【００７５】
このようにして、エンコーダ６５で反転されたパラレルデータは、デコーダ６６において再度反転されて、元のデータに戻された状態で伝送される。
【００７６】
図８〜図１０は、実施形態における４ビットのパラレルデータのエンコードの結果を説明する図である。
【００７７】
図８〜図１０は、４ビットのパラレルデータに対して、エンコーダ６５において比較され得る、前のパラレルデータと次のパラレルデータとのすべての比較パターンを示している。前のパラレルデータは図６の第１パラレルデータＰ１に相当し、次のパラレルデータは図６の第２パラレルデータＰ２に相当する。また、反転処理有り／無しは、有りが実施形態のエンコーダ６５の出力結果に相当し、無しが図１のルータのエンコーダ６５が存在しない場合の出力結果になる。
【００７８】
エンコーダ６５は、前のパラレルデータと、次のパラレルデータの各ビット同士を比較して、一致していないビット数が、パラレルデータのビット数の半分よりも多ければ、次のパラレルデータの各ビットを反転する。一致していないビット数は、トグルレートを増加する指標となるので、図中では変化点数と記載している。
【００７９】
従って、エンコーダ６５は、一致していないビット数（変化点数）が３又は４の場合に、次のパラレルデータの各ビットを反転する。図中、反転するケースに対して、太枠で示している。一方、エンコーダ６５は、一致していないビット数が０〜２の場合に、次のパラレルデータの各ビットを反転しない。
【００８０】
反転された次のパラレルデータと、前のパラレルデータとを比較すると、一致していないビット数は、図中の変化点数は０又は１となっている。すなわち、反転された次のパラレルデータと、前のパラレルデータとの間で一致するビット数が増加するので、トグルレートが低減される。
【００８１】
図１１は、実施形態のエンコーダの動作を説明する図である。
【００８２】
図１１は、あるシリアル入力のビット列を、４ビットパラレルデータに分割して伝送する場合の、図１の一般的な構成のルータおよび実施形態のルータおけるトグル動作を示す図であり、（Ａ）が図１のルータの場合を、（Ｂ）が実施形態のルータの場合を示す。
【００８３】
図１１に示す例では、１００Ｇｂｐｓのシリアル入力のビット列を、３１２．５ＭＨｚ×３２０パラレルデータに変換し、３１２．５ＭＨｚ×３２０パラレルデータを８０個に分割して４ビットパラレルデータに分けた。この例の場合には、ビット０のビット列のトグルレートは、３７．５％であり、ビット１のビット列のトグルレートは、３７．５％であり、ビット２のビット列のトグルレートは、３７．５％であり、ビット３のビット列のトグルレートは、２５％であった。平均のトグルレートは、３４．３７５％であった。図１の一般的な構成のルータが、このシリアル入力のビット列を処理する場合には、このトグルレートに対応した消費電力が発生する。
【００８４】
一方、実施形態のルータでは、エンコーダ６５が、上述したように動作する結果、反転処理された４ビットのパラレルデータは、トグルレートが低減する。具体的には、ビット０のビット列のトグルレートは、１８．７５％であり、ビット１のビット列のトグルレートは、１８．７５％であり、ビット２のビット列のトグルレートは、８．２５％であり、ビット３のビット列のトグルレートは、６．２５％であった。平均のトグルレートは、１２．４％であった。なお、ビット４は、フラグを示すデータ信号である。
【００８５】
このように、実施形態のルータは、図１のルータと比べて、トグルレートを大きく低減することが分かる。
【００８６】
次に、実施形態のルータのサンプル回路（ＦＰＧＡ）の消費電力を消費電力見積りツールにより見積もった一例を、従来のルータのサンプル回路（ＦＰＧＡ）の消費電力を消費電力見積りツールにより見積もった一例と比較して、以下に説明する。
【００８７】
見積もりの算出条件は、以下の通りである。
・従来のルータのFPGA使用率（トグルレート３４．３７５％）：ＦＦ約４０%、ロジック約７０％
・実施形態のルータのFPGA使用率（トグルレート１２．５％）：ＦＦ約５０%、ロジック約７２％
・FPGA動作周波数(クロック)：３１２．５ＭＨｚ
・FPGAトランシーバ：100Gbps (10Gbps x10ch) x2
・環境：Ta ２５℃、風量 ５００ＬＦＭM、ボード 20x20inch 16層
【００８８】
実施形態のルータのサンプル回路（ＦＰＧＡ）のロジックの消費電力は、３．２３０Ｗであるのに対して、従来のルータのサンプル回路（ＦＰＧＡ）のロジックの消費電力は、７．９１６Ｗであった。
【００８９】
実施形態のルータのロジックの消費電力は、実施形態のルータの処理部４０の消費電力を示している。実施形態のルータのロジックの消費電力３．２３０Ｗは、従来のルータのロジックの消費電力７．９１６Ｗの半分以下である。このように、実施形態のルータは、トグルレートを低減することにより、トータルの消費電力を減少できることが分かる。
【００９０】
ここで、実施形態のルータのFPGA使用率のＦＦは、実施形態のルータの方が従来のルータよりも約１０％増加しているが、これは、実施形態のルータは、図６及び図７に示すエンコーダ及びデコーダを有することによりＦＦが増加することによる。
【００９１】
以上説明したように、実施形態によれば、ＦＰＧＡ／ＡＳＩＣ内部において、データの変化点（データ０と１の交点）を少なくするエンコーダ/デコーダを追加して処理する。これにより、主信号データのトグルレートを下げ、データの変化パターンを平準化することで、ＦＰＧＡ／ＡＳＩＣデバイスのダイナミック消費電力を低くすることを可能とする。
【００９２】
また、消費電力を低くすることで発熱量も減るため、放熱効果を高めるための放熱フィンや放熱パイプや放熱ファンなどを安価なものに変更することが可能となり、装置としての熱引き設計の容易になるため、コスト的に有益となる。
【００９３】
以上、ルータを例として説明したが、実施形態は、ルータに限定されず、多ビットのパラレルデータをシフトレジスタ等で保持しながら順次処理する場合に適用できる。
【００９４】
以上、実施形態を説明したが、ここに記載したすべての例や条件は、発明および技術に適用する発明の概念の理解を助ける目的で記載されたものである。特に記載された例や条件は発明の範囲を制限することを意図するものではなく、明細書のそのような例の構成は発明の利点および欠点を示すものではない。発明の実施形態を詳細に記載したが、各種の変更、置き換え、変形が発明の精神および範囲を逸脱することなく行えることが理解されるべきである。
【符号の説明】
【００９５】
２、３    別デバイス
４、５    通信経路
３０    ルータ
３１、３２    トランシーバ
４０    処理部
４１−４６    バッファ
４７−４９    処理部
５０    変換テーブル／レジスタ
６１、６２    エンコーダ／デコーダ(Enc./Dec.)
７０    ７９個の変換回路
７１    変換回路
７１Ａ    反転部
７１Ｂ    選択部
７１Ｃ    判断部
７１Ｄ    ＥｏＲ部
７１Ｅ    加算判定部
ＦＦ１    第１記憶部
ＦＦ２    第２記憶部
８１    逆変換回路
８１Ａ    反転部
８１Ｂ    選択部
ＦＦ    記憶部
【図１】
2015226143.tif 000003
【図２】
2015226143.tif 000004
【図３】
2015226143.tif 000005
【図４】
2015226143.tif 000006
【図５】
2015226143.tif 000007
【図６】
2015226143.tif 000008
【図７】
2015226143.tif 000009
【図８】
2015226143.tif 000010
【図９】
2015226143.tif 000011
【図１０】
2015226143.tif 000012
【図１１】
2015226143.tif 000013