(57)【要約】    【課題】      バス化されたＡＬＵ処理部とビット処理部を組み合わせてデータ処理する際に、ＡＬＵ処理とビット処理とをそれぞれ効率よく実行し、高速・並列処理を実現すること。    【解決手段】  ＡＬＵ処理を行うＡセル１００とビット処理を行うＢセル１５０を多数配置し、各セルはｎビットの入出力ポートを有し、それぞれのセルをｎビットバスのネットワークで接続する。さらに、Ｂセル１５０において、出力ビット数がｎよりも少ない場合、出力に関係無い階位のビットを「０」または「１」に固定する。  【選択図】      図１
2005122546.tif 000002
【特許請求の範囲】
【請求項１】
ｎビット（ｎは自然数）の入出力ポートを有しＡＬＵ処理を行う複数の第１セルと、ｎビットの入出力ポートを有しビット処理を行う１又は複数の第２セルと、前記各セルをｎビットバスのネットワークで接続することを特徴とするデータ処理装置。
【請求項２】
前記第２セルは、出力ビット数がｎよりも少ない場合、出力に関係無い階位のビットを「０」または「１」に固定することを特徴とする請求項１記載のデータ処理装置。
【請求項３】
前記第２セルは、ｎビット入力１ビット出力の任意の論理関数を実現する回路と、その出力をｎビットに分配し、分配されたｎビット信号に任意のマスクをかける回路とを具備することを特徴とする請求項２記載のデータ処理装置。
【請求項４】
１つの第１セル内ＡＬＵのキャリーアウトと他の１つの第１セル内ＡＬＵのキャリーインを接続することを特徴とする請求項１から請求項３のいずれかに記載のデータ処理装置。
【請求項５】
第２セルの論理回路をｎ＋１ビット入力１ビット出力の任意の論理関数を実現する回路とし、１つの第１セル内ＡＬＵのキャリーアウトを前記第２セルの入力とし、前記第２セルの論理回路の出力を他のＡセル内キャリーインに接続することを特徴とする請求項４記載のデータ処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、再構成可能なデータ処理装置に関する。
【背景技術】
【０００２】
近年、ＤＳＰ（Digital Signal Processor）並の柔軟性（プログラマビリティ）とＡＳＩＣ（Application Specific Integrated）並の高速・並列処理を実現する再構成可能なデータ処理装置が望まれている。
【０００３】
これに対し、ＦＰＧＡ（Field Programmable Gate Array）により再構成可能なデータパスを実現すると、ＦＰＧＡは任意の論理関数を実現するために１ビットごとに再構成可能な演算器を備える必要があることから、再構成のために必要なデータ（コンフィギュレーションデータ）のデータ量が多く、再構成に長い時間がかかり、回路の動作速度も遅くなってしまう。
【０００４】
そこで、ＡＬＵ（Arithmetic and Logic Unit）をマトリクス状に配列したアレイ型プロセッサにより再構成可能なデータパスを実現することが考えられている。アレイ型プロセッサでは、データは４ビット、８ビット、１６ビット、３２ビットなどのバス単位で扱われるため、ＦＰＧＡにて実現する場合に比べて処理が高速で、ＡＬＵのコンフィギュレーションデータも少なくてすむという利点がある。
【０００５】
しかし、多くのアプリケーションは、ＡＬＵ向きの処理だけでなく、ビット単位の処理を必要とする部分を含むため、このようなアプリケーションをアレイ型プロセッサ上に実装した場合、ビット処理部分がボトルネックとなり処理速度の低下や必要リソース（ＡＬＵ数）の増大を招く。
【０００６】
そこで、この問題を解決するためには、ＡＬＵ処理部とビット処理部を組み合わせて用いることが有効であると考えられる。
【０００７】
従来のＡＬＵ処理部とビット処理部を組み合わせたデータ処理装置として、（１）バス化されたサブアレイとバス化されていないサブアレイを接続する構造（例えば、特許文献１）、あるいは、（２）アレイ型プロセッサの全ての構成要素（プロセッサエレメント）に処理ビット数が異なる複数の演算器を持たせ、または、複数の演算器に合わせて複数種類のビット幅を持つバスを持つ構造（例えば、特許文献２）が提案されている。
【特許文献１】特表２００２−５４４７００号公報
【特許文献２】特開２００３−０７６６６８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、従来の（１）の構造では、２つのサブアレイ間の通信がボトルネックとなり、全体の性能は低下してしまうという問題がある。
【０００９】
また、従来の（２）の構造では、複数種類のビット幅を持つバスをそれぞれ備えるため配線が増大しバスの利用率が低くなる、プロセッサエレメント内の演算器の利用率が低くなる、複数の演算器を設定してビット幅変換の処理も行う必要があるため必要なコンフィギュレーションデータ量が増大してしまうという問題がある。
【００１０】
本発明はかかる点に鑑みてなされたものであり、ＡＬＵ処理とビット処理とをそれぞれ効率よく実行し、高速・並列処理を実現することができる再構成可能なデータパスを備えるデータ処理装置を提供することを目的とする。
【課題を解決するための手段】
【００１１】
本発明のデータ処理装置は、ｎビット（ｎは自然数）の入出力ポートを有しＡＬＵ処理を行う複数の第１セルと、ｎビットの入出力ポートを有しビット処理を行う１又は複数の第２セルと、前記各セルをｎビットバスのネットワークで接続する構成を採る。
【００１２】
本発明のデータ処理装置は、前記第２セルは、出力ビット数がｎよりも少ない場合、出力に関係無い階位のビットを「０」または「１」に固定する構成を採る。
【００１３】
本発明のデータ処理装置は、前記第２セルは、ｎビット入力１ビット出力の任意の論理関数を実現する回路と、その出力をｎビットに分配し、分配されたｎビット信号に任意のマスクをかける回路とを具備する構成を採る。
【００１４】
これらの構成により、ビット処理を行う１つのセルで複数種類のビットの演算を行うことができ、ＡＬＵ処理とビット処理とをそれぞれ効率よく実行し、高速・並列処理を実現することができる。この結果、セル内部の構造とネットワークを単純化し、必要なコンフィギュレーションデータ量を小さくすることができるので、面積が小さく、高速に動作する再構成可能なデータパスを実現することができる。
【００１５】
本発明のデータ処理装置は、１つの第１セル内ＡＬＵのキャリーアウトと他の１つの第１セル内ＡＬＵのキャリーインを接続する構成を採る。
【００１６】
本発明のデータ処理装置は、第２セルの論理回路をｎ＋１ビット入力１ビット出力の任意の論理関数を実現する回路とし、１つの第１セル内ＡＬＵのキャリーアウトを前記第２セルの入力とし、前記第２セルの論理回路の出力を他のＡセル内キャリーインに接続する構成を採る。
【００１７】
これらの構成により、ｎビット以上の演算を実行可能とすることができる。また、ネットワークトポロジ（形状）の均一性が保たれる。
【発明の効果】
【００１８】
本発明によれば、ビット処理を行う１つのセルで複数種類のビットの演算を行うことができ、ＡＬＵ処理とビット処理とをそれぞれ効率よく実行し、高速・並列処理を実現することができる。この結果、セル内部の構造とネットワークを単純化し、必要なコンフィギュレーションデータ量を小さくすることができるので、面積が小さく、高速に動作する再構成可能なデータパスを実現することができる。
【発明を実施するための最良の形態】
【００１９】
本発明の骨子は、ＡＬＵ処理を行うセルとビット処理を行うセルを多数配置し、各セルはｎビットの入出力ポートを有し、それぞれのセルをｎビットバスのネットワークで接続し、さらに、ビット処理を行うセルにおいて、出力ビット数がｎよりも少ない場合、出力に関係無い階位のビットを「０」または「１」に固定することである。
【００２０】
以下、本発明の実施の形態について図面を参照して詳細に説明する。
【００２１】
（実施の形態）
本実施の形態では、図１に示すようにＡＬＵ処理を行うＡセル１００とビット処理を行うＢセル１５０を３：１の割合で配列してデータ処理装置を構成する。また、図１において、Ａセル１００とＢセル１５０はともに４ビットの入出力ポートを有し、バス幅は４ビットとする。
【００２２】
Ａセル１００は、図２に示すようにセレクタ２０１と、ＡＬＵ２０２と、レジスタファイル２０３と、バススイッチ２０４、２０５とから構成される。なお、Ａセル１００は、図示しないコンフィギュレーションメモリに、セル内の回路要素を制御するためのコンフィギュレーション情報、すなわち、ＡＬＵ２０２が実行する命令、セレクタ２０１の接続方法、バススイッチ２０４、２０５の接続方法を示す情報を保持する。コンフィギュレーションメモリの内容を書き換えることによって、セルの機能とセル間のネットワークを再構成することができる。
【００２３】
セレクタ２０１は、コンフィギュレーション情報に従い、バスからの入力またはレジスタファイル２０３に保持された値から、ＡＬＵ２０２へ入力する２つの値を選択する。ＡＬＵ２０２は、２つの入力データに対して、加算、減算、論理和、論理積、排他的論理和、１ビットシフトのうちコンフィギュレーション情報により指定された演算を行う。レジスタファイル２０３は、ＡＬＵ２０２の演算結果を保持する。バススイッチ２０４、２０５は、ＡＬＵ２０２およびレジスタファイル２０３からの出力をコンフィギュレーション情報に従い転送する。
【００２４】
Ｂセル１５０は、図３に示すように論理回路３０１と、セレクタ３０２と、ビットマスク回路３０３と、バススイッチ３０４、３０５とから構成される。なお、Ｂセル１５０は、図示しないコンフィギュレーションメモリに、セル内の回路要素を制御するためのコンフィギュレーション情報、すなわち、論理回路が実行する論理関数、セレクタの接続方法、バススイッチの接続方法、ビットマスク回路で使用するマスクの値を示す情報を保持する。
【００２５】
論理回路３０１は、４入力１出力の再構成可能な回路であって、コンフィギュレーション情報によって指定された論理演算を行う。セレクタ３０２は、コンフィギュレーション情報に従い、ビットマスク回路３０３への入力を選択する。ビットマスク回路３０３は、コンフィギュレーション情報に従い、マスク値とＡＮＤ演算またはＯＲ演算を行うことにより、出力の特定のビットを「０」または「１」に固定する。バススイッチ３０４、３０５は、ビットマスク回路からの出力をコンフィギュレーション情報に従い転送する。
【００２６】
以下、第１の例として、図４に示す畳み込み符号化回路を、図１のデータ処理装置にて構成する場合（図５、図６）について説明する。なお、図６は、図５と等価な回路を図１のアレイ上にマッピングした図である。
【００２７】
図５において、回路５０１は図４のパラレル-シリアル変換回路４０１を実現し、回路５０２は図４の８ビットシフトレジスタ４０２を実現し、回路５０３、５０４はそれぞれ図４の８ビット入力パリティツリー４０３を実現する。
【００２８】
また、図５において、４ビットのパラレルデータが４クロックに一度入力（input）され、４ビットバスのうち下位２ビットに符号化されたデータが出力（output）される。
【００２９】
図７、８、９は、図５におけるＢ１セル１５１、Ｂ２セル１５２、Ｂ３セル１５３の内部で実行される演算を示す図である。図７のＢ１セル１５１は、論理回路３０１により４ビット入力パリティ計算を行い、さらに４ビットに分配された信号に対しビットマスク回路３０３にて「０００１」とＡＮＤ演算を行うことにより、演算結果１ビットを最下位ビットに出力し、他のビットに「０」を出力する。図８のＢ２セル１５２は、論理回路３０１により４ビット入力パリティ計算を行い、さらに４ビットに分配された信号に対しビットマスク回路３０３にて「００１０」とＡＮＤ演算を行うことにより、演算結果１ビットを第２位ビットに出力し、他のビットに「０」を出力する。図９のＢ３セル１５３は、論理回路３０１により入力の最上位ビットを取り出して４ビットに分配したのち、ビットマスク回路３０３にて「００１１」とＡＮＤ演算を行うことにより、入力の最上位ビットと同じ値を最下位ビット及び第２位ビットに出力し、他のビットに「０」を出力する。
【００３０】
ここで、Ｂ１セル１５１と同様の機能をＡセル１００で実現するためには５個のＡセル１００が必要となる。また、Ｂ２セル１５２と同様の機能をＡセル１００で実現するためには５個のＡセル１００が必要となる。また、Ｂ３セル１５３と同様の機能をＡセル１００で実現するためには２個のＡセル１００が必要となる。
【００３１】
また、上記従来の（１）の構造で畳み込み符号化回路を実装すると、構造化アレイ（バス化アレイ）と非構造化アレイ（ビット処理アレイ）とのアレイ間の通信が多くなるため、これら２つのアレイをうまく連携させて使うことが難しく、結局、非構造化アレイ上にすべての回路をマッピングすることになってしまうと考えられる。この結果、コンフィギュレーションデータ量が多く、回路の動作可能速度が遅くなってしまい、ＦＰＧＡに対する利点がなくなってしまう。
【００３２】
また、上記従来の（２）の構造で畳み込み符号化回路を実装した場合、本発明と同等のセル数（ＰＥ数）が必要となり、本発明と比較して各セルが複雑になり、２種類のバスを持つため配線量が多くなり、面積が大きく、コンフィギュレーションデータ量が多くなってしまう。
【００３３】
このように、本発明のデータ処理回路は、ＡＬＵ処理を行うセルとビット処理を行うセルを多数配置し、各セルはｎビットの入出力ポートを有し、それぞれのセルをｎビットバスのネットワークで接続する。
【００３４】
これにより、ビット処理を行う１つのセルで複数種類のビットの演算を行うことができ、ＡＬＵ処理とビット処理とをそれぞれ効率よく実行し、高速・並列処理を実現することができ、少ないセル数で畳み込み符号化回路を実現することができる。また、ｎビットで統一されたネットワークを使うことができるため、配線を少なくすることができ、セル内部の構造とネットワークを単純化し、面積を小さくし、必要なコンフィギュレーションデータ量を小さくすることができる。
【００３５】
さらに、ビット処理セル、ＡＬＵ処理セルを分散して配置することにより、通信を分散させることができ、グローバルな配線を少なくすることができる。
【００３６】
次に、第２の例として、図１０に示すＣＲＣ演算回路を、図１のデータ処理装置にて構成する場合（図１１、図１２）について説明する。なお、図１２は、図１１と等価な回路を図１のアレイ上にマッピングした図である。ここで、回路１１０４の３つのＡセル１００と同等の機能を３つのＢセル１５０（Ｂ２セル１５２、Ｂ３セル１５３、Ｂ４セル１５４）で実現することにより図１のアレイ上へのマッピングを実現している。
【００３７】
図１１において、回路１１０１は図１０のパラレル-シリアル変換回路１００１を実現し、回路１１０２は図１０の２４ビットシフトレジスタから成るＣＲＣ演算回路１００２を実現し、回路１１０３は生成多項式を作る回路１００３を実現する。なお、Ｂ２セル１５２、Ｂ３セル１５３、Ｂ４セル１５４には生成多項式のビット表現がマスクとして保持されており、回路１１０３は、シフトレジスタの最上位ビットが「１」のとき生成多項式を出力し、最上位ビットが「０」のとき「０」を出力する。
【００３８】
図１３、１４、１５、１６は、図１１におけるＢ１セル１５１、Ｂ２セル１５２、Ｂ３セル１５３、Ｂ４セル１５４の内部で実行される演算を示す図である。図１３のＢ１セル１５１は、入力の最上位ビットを取り出して各階位のビットに出力する。図１４のＢ２セル１５２は、最下位ビット、第２位ビットの入力をそのまま出力し、他のビットに「０」を出力する。図１５のＢ３セル１５３は、第２位ビット、第３位ビットの入力をそのまま出力し、他のビットに「０」を出力する。図１６のＢ４セル１５４は、最下位ビット、第２位ビット、第３位ビットの入力をそのまま出力し、最上位ビットに「０」を出力する。
【００３９】
なお、Ｂ２セル１５２、Ｂ３セル１５３、Ｂ４セル１５４は、定数とのＡＮＤであるのでＡセル１００でも実現可能である。
【００４０】
なお、本実施の形態では、Ａセル１００、Ｂセル１５０を格子状に配列する場合について説明したが、本願発明はセルの配置状態については限定がなく、木構造等、規則的に配列されていればよい。
【００４１】
また、本願発明は、図１７に示すように、１つのＡセル１００内ＡＬＵのキャリーアウトと他の１つのＡセル１００内ＡＬＵのキャリーインを接続することができる。これにより、ｎビット以上の演算を実行可能とすることができる。
【００４２】
また、本願発明は、Ｂセル１５０の論理回路３０１を１ビット増やしてｎ＋１ビット入力１ビット出力の任意の論理関数を実現する回路とし、図１８に示すように、１つのＡセル１００内ＡＬＵのキャリーアウトをＢセル１５０の入力とし、Ｂセル１５０の論理回路３０１の出力を他のＡセル１００内キャリーインに接続することができる。この結果、Ｂセル１５０の論理回路３０１において増えた１ビットの部分にはＡセル１００のキャリーアウトが入力される。これにより、図１７のＡセル１００と整合性が良くなり、ネットワークトポロジ（形状）の均一性が保たれる。
【００４３】
また、本願発明は、Ｂセル１５０において、論理関数をルックアップテーブルにより実現することができる。
【産業上の利用可能性】
【００４４】
本発明は、バス化されたＡＬＵ処理部とビット処理部を組み合わせ、再構成可能なデータパスを備えるデータ処理装置に用いるに好適である。
【図面の簡単な説明】
【００４５】
【図１】本発明の一実施の形態に係るデータ処理装置のセルの配置構成の例を示す図
【図２】上記実施の形態に係るデータ処理装置のＡセルの内部の論理回路を示す図
【図３】上記実施の形態に係るデータ処理装置のＢセルの内部の論理回路を示す図
【図４】畳み込み符号化回路の回路構成を示す図
【図５】図１のデータ処理装置にて図４に示す畳み込み符号化回路を構成する場合の回路構成を示す図
【図６】図１のデータ処理装置にて図４に示す畳み込み符号化回路を構成する場合の回路構成を示す図
【図７】図５及び図６におけるＢ１セルの内部の論理回路を示す図
【図８】図５におけるＢ２セルの内部の論理回路を示す図
【図９】図５におけるＢ３セルの内部の論理回路を示す図
【図１０】ＣＲＣ演算回路の回路構成を示す図
【図１１】図１のデータ処理装置にて図１０に示すＣＲＣ演算回路を構成する場合の回路構成を示す図
【図１２】図１のデータ処理装置にて図１０に示すＣＲＣ演算回路を構成する場合の回路構成を示す図
【図１３】図１１におけるＢ１セルの内部の論理回路を示す図
【図１４】図１１におけるＢ２セルの内部の論理回路を示す図
【図１５】図１１におけるＢ３セルの内部の論理回路を示す図
【図１６】図１１におけるＢ４セルの内部の論理回路を示す図
【図１７】上記実施の形態に係るデータ処理装置のＡセルの内部の論理回路を示す図
【図１８】上記実施の形態に係るデータ処理装置のＢセルの内部の論理回路を示す図
【符号の説明】
【００４６】
１００  Ａセル
１５０  Ｂセル
２０１、３０２  セレクタ
２０２  ＡＬＵ
２０３  レジスタファイル
２０４、２０５、３０４、３０５  バススイッチ
３０１  論理回路
３０３  ビットマスク回路
【図１】
2005122546.tif 000003
【図２】
2005122546.tif 000004
【図３】
2005122546.tif 000005
【図４】
2005122546.tif 000006
【図５】
2005122546.tif 000007
【図６】
2005122546.tif 000008
【図７】
2005122546.tif 000009
【図８】
2005122546.tif 000010
【図９】
2005122546.tif 000011
【図１０】
2005122546.tif 000012
【図１１】
2005122546.tif 000013
【図１２】
2005122546.tif 000014
【図１３】
2005122546.tif 000015
【図１４】
2005122546.tif 000016
【図１５】
2005122546.tif 000017
【図１６】
2005122546.tif 000018
【図１７】
2005122546.tif 000019
【図１８】
2005122546.tif 000020