(57)【要約】【課題】ＡＬＵに供給するコマンドのビット数を削減する。【解決手段】ＡＬＵ１０は、３つのセレクタＳＥＬＡ、ＳＥＬＢ及びＳＥＬＣの夫々にて選択された３つの信号Ａ、Ｂ及びＣを入力信号として受け、デコーダ２５からの機能制御信号に従った複数の演算処理を行う。複数の演算処理には、信号Ｂ（信号Ｃ）に依存しない特定の処理も含まれている。ＡＬＵ１０に該特定の処理を実行させる場合は、主コマンド信号αとセレクタＳＥＬＢ（ＳＥＬＣ）への選択信号ＩＮＢ（ＩＮＣ）とに前記特定の処理を実行させるための信号を割り当て、これによってデコーダ２５から必要な機能制御信号を出力させて前記特定の処理を実行させる。【選択図】図２
2007316824.tif 000002
【特許請求の範囲】
【請求項１】
入力された複数の第１入力信号の中から第１選択信号に従って選択した信号を出力する第１選択手段と、
入力された複数の第２入力信号の中から第２選択信号に従って選択した信号を出力する第２選択手段と、
前記第１選択手段の出力信号と前記第２選択手段の出力信号を参照し、複数の機能を実現可能に構成された可変機能実現手段と、
与えられた命令信号に基づき、前記可変機能実現手段にて実際に実現される機能を前記複数の機能の中から選択する機能選択手段と、を備え、
前記複数の機能には、前記第２選択手段の出力信号を用いることなく実現される特定の機能が含まれ、
前記機能選択手段は、前記可変機能実現手段に前記特定の機能を実現させる場合、前記命令信号だけでなく前記第２選択信号にも基づいて機能の選択を行い、これによって前記可変機能実現手段に前記特定の機能を実現させる
ことを特徴とする可変機能実現装置。
【請求項２】
前記第２選択信号及び前記命令信号を生成する制御手段を更に備え、
前記可変機能実現手段に前記特定の機能を実現させる場合、前記制御手段は、それを実現させるための信号を前記命令信号と前記第２選択信号に割り当てる
ことを特徴とする請求項１に記載の可変機能実現装置。
【請求項３】
入力された複数の第１入力信号の中から第１選択信号に従って選択した信号と、入力された複数の第２入力信号の中から第２選択信号に従って選択した信号とを参照して、複数の機能を実現可能に構成された可変機能実現手段に対し、
実際に実現する機能を命令信号を用いて指定する可変機能指定方法において、
前記複数の機能には、前記第２選択手段の出力信号を用いることなく実現される特定の機能が含まれ、
前記可変機能実現手段に前記特定の機能を実現させる場合、それを実現させるための信号を前記命令信号と前記第２選択信号に割り当て、これによって前記可変機能実現手段に前記特定の機能を実現させる
ことを特徴とする可変機能実現方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、四則演算や論理演算等の複数の機能を実現可能な可変機能実現装置及び可変機能実現方法に関する。
【背景技術】
【０００２】
近年、ハードウェアを固定的に用いるのではなく、与えられたデータに従い、或る程度の動作変更が可能となるように構成されたリコンフィギャラブル回路が注目されている。このようなリコンフィギャラブル回路では、多くのＡＬＵ（Arithmetic and Logic Unit）を並列動作させる構成をとることが多い。各ＡＬＵは、与えられたコマンドに従って演算処理を行う。
【０００３】
この種の回路では、演算処理を行うべき各タイミングにおいて、全てのＡＬＵにコマンドを同時に供給する必要がある。例えば、４×６＝２４個のＡＬＵを用いる場合、１つのＡＬＵに与えるコマンドが４ビットのデジタル信号で表現されていたとしても、１回のコマンド供給あたり、合計９６ビットのコマンドデータが必要となる。
【０００４】
このコマンドデータは、通常、リコンフィギャラブル回路に内蔵されたコマンドＲＡＭ（Random Access Memory）に格納され、コマンドデータの増大は、リコンフィギャラブル回路の回路規模増大を招く。このため、この種の回路においては、コマンドのデータ量を如何に減らすかが重要な課題となっている。
【０００５】
コマンドのデータ量を削減することを目的とした手法が下記特許文献１に開示されている。下記特許文献１では、ＡＬＵが絶えず稼動している訳ではなく、稼動しない場合は無効コマンド（ＮＯＰ）がＡＬＵに供給される、ということを利用している。具体的には、無効コマンドを除き有効コマンドのみを詰めて記載したデータを形成すると共に、各コマンドの有効／無効を示すインデックスのようなデータを形成する。
【０００６】
【特許文献１】特開平７−１７５６４８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
上記特許文献１に記載されている手法は、コマンドＲＡＭの必要メモリ領域の削減に貢献するものであり、或る局面においては、有効に機能しうる。しかし、無効コマンドの出現頻度はアプリケーションによって大きく異なり、コマンドＲＡＭとしては、最も使用メモリの大きなアプリケーションにあわせたものを準備しておく必要があるため、常に十分なコマンド圧縮効果を得ることができるとは言えない。
【０００８】
また、インデックスを格納するためのメモリが必要であることから、元のコマンドのビット数が少ない場合は、全データに対するインデックスのデータ量の割合が大きくなり、圧縮効果が下がってしまう。また、デコードの際、詰めて記載したデータを伸張する必要があり、伸張回路が大きくなって消費電力が増大してしまう。
【０００９】
そこで本発明は、ＡＬＵ等の可変機能実現手段に対して供給が必要なデータの量の削減に寄与する可変機能実現装置及び可変機能実現方法を提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記目的を達成するために本発明に係る可変機能実現装置は、入力された複数の第１入力信号の中から第１選択信号に従って選択した信号を出力する第１選択手段と、入力された複数の第２入力信号の中から第２選択信号に従って選択した信号を出力する第２選択手段と、前記第１選択手段の出力信号と前記第２選択手段の出力信号を参照し、複数の機能を実現可能に構成された可変機能実現手段と、与えられた命令信号に基づき、前記可変機能実現手段にて実際に実現される機能を前記複数の機能の中から選択する機能選択手段と、を備え、前記複数の機能には、前記第２選択手段の出力信号を用いることなく実現される特定の機能が含まれ、前記機能選択手段は、前記可変機能実現手段に前記特定の機能を実現させる場合、前記命令信号だけでなく前記第２選択信号にも基づいて機能の選択を行い、これによって前記可変機能実現手段に前記特定の機能を実現させることを特徴とする。
【００１１】
機能の選択用信号として第２選択信号を併用することにより、例えば、命令信号のビット数を減らすことが可能となる。この結果、命令信号を格納しておくべきメモリの容量の縮小化が可能となる。従って、例えば、本発明を利用して集積回路を形成した場合は、チップ面積の小型化及び低消費電力化が期待できる。
【００１２】
尚、後述する実施形態において、前記第１選択手段は、セレクタＳＥＬＡに対応しており、前記第２選択手段は、セレクタＳＥＬＢ又は（及び）セレクタＳＥＬＣに対応している。
【００１３】
また具体的には例えば、前記可変機能実現装置は、前記第２選択信号及び前記命令信号を生成する制御手段を更に備え、前記可変機能実現手段に前記特定の機能を実現させる場合、前記制御手段は、それを実現させるための信号を前記命令信号と前記第２選択信号に割り当てる。
【００１４】
また、上記目的を達成するために本発明に係る可変機能実現方法は、入力された複数の第１入力信号の中から第１選択信号に従って選択した信号と、入力された複数の第２入力信号の中から第２選択信号に従って選択した信号とを参照して、複数の機能を実現可能に構成された可変機能実現手段に対し、実際に実現する機能を命令信号を用いて指定する可変機能指定方法において、前記複数の機能には、前記第２選択手段の出力信号を用いることなく実現される特定の機能が含まれ、前記可変機能実現手段に前記特定の機能を実現させる場合、それを実現させるための信号を前記命令信号と前記第２選択信号に割り当て、これによって前記可変機能実現手段に前記特定の機能を実現させることを特徴とする。
【発明の効果】
【００１５】
本発明は、ＡＬＵ等の可変機能実現手段に対して供給が必要なデータの量の削減に寄与する。
【発明を実施するための最良の形態】
【００１６】
以下、本発明の実施の形態につき、図面を参照して具体的に説明する。参照される各図において、同一の部分には同一の符号を付す。図１は、本発明の実施の形態に係る集積回路１の概略構成ブロック図である。
【００１７】
集積回路１は、ＡＬＵ（Arithmetic and Logic Unit）１０、セレクタＳＥＬＡ、ＳＥＬＢ及びＳＥＬＣ、ＡＬＵ１１、１２及び１３、並びに、ＲＡＭ（Random Access Memory）１４、１５及び１６及び１７を有して構成される。
【００１８】
集積回路１は、例えば、論理回路の再構成を可能とする機能を備えたリコンフィギャラブル回路であり、内部に四則演算や論理演算などを行うＡＬＵを複数個、備えている。例えば、並列処理を行う数１０〜数１００個程度のＡＬＵ（不図示）が集積回路１に組み込まれており、各ＡＬＵに対して同時にコマンドが供給される。
【００１９】
図１は、その複数個のＡＬＵの内の１つのＡＬＵ１０に着目した部分のみを図示している。セレクタＳＥＬＡ、ＳＥＬＢ及びＳＥＬＣは、ＡＬＵ１０に付随して設けられており、ＡＬＵ１０、セレクタＳＥＬＡ、ＳＥＬＢ及びＳＥＬＣから成る部位と同様或いは類似する部位が、多数、集積回路１に設けられる。
【００２０】
図２は、ＡＬＵ１０の周辺回路の構成ブロック図である。図１の集積回路１には、更に、図２に示す選択信号生成部２１、２２及び２３、主コマンド信号生成部２４並びにデコーダ２５が設けられている。選択信号生成部２２及び２３並びに主コマンド信号生成部２４は、ＡＬＵ制御部（制御手段）２６を形成する。
【００２１】
セレクタＳＥＬＡは、ＡＬＵ１１、１２及び１３の夫々からの出力信号と、ＲＡＭ１４及びＲＡＭ１５の夫々からの出力信号と、の合計５つの信号を入力信号として受ける。そして、図２の選択信号生成部２１にて生成された選択信号ＩＮＡに基づいて、その５つの入力信号の中から１つの入力信号を選択し、選択した信号をＡＬＵ１０に対して出力する。セレクタＳＥＬＡは、自身への５つの入力信号の何れをも選択可能に構成されており、それ故に、上記の選択信号ＩＮＡは、３ビットのデジタル信号から形成される。
【００２２】
セレクタＳＥＬＢは、ＡＬＵ１１、１２及び１３の夫々からの出力信号と、ＲＡＭ１６及びＲＡＭ１７の夫々からの出力信号と、の合計５つの信号を入力信号として受ける。そして、図２の選択信号生成部２２にて生成された選択信号ＩＮＢに基づいて、その５つの入力信号の中から１つの入力信号を選択し、選択した信号をＡＬＵ１０に対して出力する。セレクタＳＥＬＢは、自身への５つの入力信号の何れをも選択可能に構成されており、それ故に、上記の選択信号ＩＮＢは、３ビットのデジタル信号から形成される。
【００２３】
セレクタＳＥＬＣは、ＡＬＵ１１、１２及び１３の夫々からの合計３つの出力信号を入力信号として受ける。そして、図２の選択信号生成部２３にて生成された選択信号ＩＮＣに基づいて、その３つの入力信号の中から１つの入力信号を選択し、選択した信号をＡＬＵ１０に対して出力する。セレクタＳＥＬＣは、自身への３つの入力信号の何れをも選択可能に構成されており、それ故に、上記の選択信号ＩＮＣは、２ビットのデジタル信号から形成される。
【００２４】
ＡＬＵ１０は、セレクタＳＥＬＡ、ＳＥＬＢ及びＳＥＬＣの出力信号を自身への入力信号として受ける。セレクタＳＥＬＡ、ＳＥＬＢ及びＳＥＬＣからＡＬＵ１０に与えられた信号を、夫々、信号Ａ、信号Ｂ及び信号Ｃと呼ぶ。セレクタＳＥＬＡ、ＳＥＬＢ及びＳＥＬＣへの各入力信号はデジタル信号であり、信号Ａ、Ｂ及びＣもデジタル信号である。従って、信号Ａ、Ｂ及びＣは、夫々、離散的な値を有する。
【００２５】
ＡＬＵ１０は、複数の機能を実現可能に構成されており、可変機能実現手段として機能する。ＡＬＵ１０は、クロック信号などに同期しつつ次々と必要な処理を実行するが、処理を実行する各タイミングにおいて実際に実行される処理の種類（内容）は、デコーダ２５から与えられる機能制御信号にて決定される。
【００２６】
主コマンド信号生成部２４は、ＡＬＵ１０にて実現される機能を指定するための主コマンド信号α（命令信号）を出力する。この主コマンド信号αは、２ビットのデジタル信号から形成される。
【００２７】
デコーダ２５は、主コマンド信号α、選択信号ＩＮＢ及びＩＮＣに基づいて、上記の機能制御信号を生成し、これをＡＬＵ１０に与える。
【００２８】
尚、選択信号ＩＮＡ、ＩＮＢ及びＩＮＣは、ＡＬＵ１０への入力信号を特定するためのものであるため、選択信号ＩＮＡ、ＩＮＢ及びＩＮＣも、ＡＬＵ１０に対するコマンド信号と解釈することもできる。
【００２９】
図３を参照して、ＡＬＵ１０が実行可能な処理の種類（内容）を例示する。デコーダ２５からの機能制御信号は、ＡＬＵ１０に所望の処理を指示するためのコマンドとして機能するものであり、その機能制御信号の種類（即ち、コマンドの種類）は、１１種類となっている。
【００３０】
この１１種類の機能から所望の機能を択一的に選択するためには、通常、４ビット分の信号が必要となる。しかしながら、本実施形態では、主コマンド信号αが２ビットで表現されている。これを実現するための手法の説明を継続する。
【００３１】
上記の１１種類のコマンドは、コマンドＣＯＭ０、ＣＯＭ１、ＣＯＭ２、ＣＯＭ３、ＣＯＭ４、ＣＯＭ５、ＣＯＭ６、ＣＯＭ７、ＣＯＭ８、ＣＯＭ９及びＣＯＭ１０から構成される。図３において、ＡＬＵ１０のデジタルの出力信号をＹにて表す。
【００３２】
コマンドＣＯＭ０〜ＣＯＭ２に対応する処理は、１つの入力信号にのみ依存する１入力処理である。コマンドＣＯＭ０及びＣＯＭ１は、所謂スルーコマンドである。コマンドＣＯＭ０に対応する機能制御信号を受けたとき、ＡＬＵ１０は、信号Ａをそのまま出力する。コマンドＣＯＭ１に対応する機能制御信号を受けたとき、ＡＬＵ１０は、信号Ｂをそのまま出力する。コマンドＣＯＭ２は否定に対応するコマンドである。コマンドＣＯＭ２に対応する機能制御信号を受けたとき、ＡＬＵ１０は、信号Ａの否定（信号Ａを反転させた値）を出力する。
【００３３】
コマンドＣＯＭ３〜ＣＯＭ８に対応する処理は、２つの入力信号にのみ依存する２入力処理である。コマンドＣＯＭ３〜ＣＯＭ８に対応する機能制御信号を受けたとき、ＡＬＵ１０は、信号ＡとＢを用いた演算の演算結果を出力する。
【００３４】
具体的には、コマンドＣＯＭ３、ＣＯＭ４に対応する機能制御信号を受けたとき、ＡＬＵ１０は、夫々、信号Ａと信号Ｂの和（Ａ＋Ｂ）、信号Ａと信号Ｂの差（Ａ−Ｂ）を出力する。コマンドＣＯＭ５、ＣＯＭ６に対応する機能制御信号を受けたとき、ＡＬＵ１０は、夫々、信号Ａと信号Ｂの論理積、信号Ａと信号Ｂの論理和を出力する。コマンドＣＯＭ７に対応する機能制御信号を受けたとき、ＡＬＵ１０は、信号Ａの値と信号Ｂの値を比較し、信号Ｂの値の方が大きい場合に「１」を出力し、そうでない場合に「０」を出力する。コマンドＣＯＭ８に対応する機能制御信号を受けたとき、ＡＬＵ１０は、信号Ａの値と信号Ｂの値を比較し、信号Ａの値の方が大きい場合に「１」を出力し、そうでない場合に「０」を出力する。
【００３５】
コマンドＣＯＭ９及びＣＯＭ１０に対応する処理は、３つの入力信号の全てに依存する３入力処理である。具体的には、コマンドＣＯＭ９に対応する機能制御信号を受けたとき、ＡＬＵ１０は、信号Ｃの値を参照し、信号Ｃの値が「１」ならば信号Ａを出力する一方、信号Ｃの値が「０」ならば信号Ｂを出力する。コマンドＣＯＭ１０に対応する機能制御信号を受けたとき、ＡＬＵ１０は、信号Ｃの値を参照し、信号Ｃの値が「１」ならば信号Ｂを出力する一方、信号Ｃの値が「０」ならば信号Ａを出力する。
【００３６】
このように、ＡＬＵ１０の処理には、１つの入力信号にのみ依存する１入力処理、２つの入力信号にのみ依存する２入力処理、３つの入力信号の全てに依存する３入力処理がある。ところで、１入力処理を実行する場合には、残りの２入力に対する選択信号（コマンド）は不要であり、２入力処理を実行する場合には、残りの１入力に対する選択信号（コマンド）は不要である。
【００３７】
本実施形態は、ここに着目して、不要となる選択信号（コマンド）を、上記の１１種類の機能の選択のために用いる。
【００３８】
図３に示す表の右欄に、信号の具体的な割り当て方を示す。また、図４に、デコーダ２５の内部ブロック図を示す。
【００３９】
主コマンド信号αを形成する２ビットのデジタル値を、α＝（ｉ，ｊ）にて表現する。選択信号ＩＮＣを形成する２ビットのデジタル値を、ＩＮＣ＝（ｉ，ｊ）にて表現する。選択信号ＩＮＢを形成する３ビットのデジタル値を、ＩＮＢ＝（ｉ，ｊ，ｋ）にて表現する。ここで、ｉ、ｊ及びｋは、それぞれ独立に１又は０の値をとる。尚、図３等において“，”の表記は省略している。
【００４０】
コマンドＣＯＭ０及びＣＯＭ２に対応する処理は、信号Ａにのみ依存する１入力処理であるので、これらを実行させる際、ＡＬＵ制御部２６は、主コマンド信号αに加えて選択信号ＩＮＣ及びＩＮＢを、ＡＬＵ１０の機能の選択用信号として使用する。
【００４１】
ＡＬＵ制御部２６から、“α＝（１，１）、ＩＮＣ＝（１，１）且つＩＮＢ＝（０，Ｘ，Ｘ）の信号”を受けたとき、“α＝（１，１）、ＩＮＣ＝（１，１）且つＩＮＢ＝（１，Ｘ，Ｘ）の信号”を受けたとき、デコーダ２５は、夫々、コマンドＣＯＭ０、ＣＯＭ２を表す機能制御信号をＡＬＵ１０に供給する。ここで、選択信号ＩＮＢの内容を表す表記における“Ｘ”は、そのデジタル値が任意である（即ち、１と０のどちらでも良い）ことを表す。
【００４２】
コマンドＣＯＭ１に対応する処理は、１入力処理ではあるが信号Ｂに依存する。このため、コマンドＣＯＭ１に対応する処理を実行させる際、ＡＬＵ制御部２６は、主コマンド信号αと選択信号ＩＮＣをＡＬＵ１０の機能の選択用信号として使用し、選択信号ＩＮＢを該選択用信号としては使用しない。
【００４３】
また、ＣＯＭ３〜８に対応する処理は、信号Ａ及び信号Ｂにのみ依存する２入力処理であるので、これらを実行する際、ＡＬＵ制御部２６は、主コマンド信号αに加えて選択信号ＩＮＣを、ＡＬＵ１０の機能の選択用信号として使用する。
【００４４】
具体体には、ＡＬＵ制御部２６から、
“α＝（１，１）且つＩＮＣ＝（１，０）の信号”を受けたとき、
“α＝（０，１）且つＩＮＣ＝（０，０）の信号”を受けたとき、
“α＝（０，１）且つＩＮＣ＝（０，１）の信号”を受けたとき、
“α＝（０，１）且つＩＮＣ＝（１，０）の信号”を受けたとき、
“α＝（０，１）且つＩＮＣ＝（１，１）の信号”を受けたとき、
“α＝（１，１）且つＩＮＣ＝（０，０）の信号”を受けたとき、
“α＝（１，１）且つＩＮＣ＝（０，１）の信号”を受けたとき、
デコーダ２５は、夫々、コマンドＣＯＭ１、ＣＯＭ３、ＣＯＭ４、ＣＯＭ５、ＣＯＭ６、ＣＯＭ７、ＣＯＭ８を表す機能制御信号をＡＬＵ１０に供給する。
【００４５】
コマンドＣＯＭ９及び１０に対応する処理は、３つの入力信号の全てに依存する３入力処理であるので、ＡＬＵ制御部２６は、主コマンド信号αのみを、ＡＬＵ１０の機能の選択用信号として使用する。
【００４６】
ＡＬＵ制御部２６から、“α＝（０，０）の信号”を受けたとき、“α＝（１，０）の信号”を受けたとき、デコーダ２５は、夫々、コマンドＣＯＭ９、ＣＯＭ１０を表す機能制御信号をＡＬＵ１０に供給する。
【００４７】
ＡＬＵ１０に指定されるべきコマンドを表すデータは、集積回路１に内蔵されたコマンドＲＡＭ（不図示）に格納されることになるが、上記のように構成することにより、通常は４ビット必要になるコマンド信号（本実施形態においては、主コマンド信号α）が２ビットに削減される。この結果、コマンドを格納するために必要なメモリ領域が縮小され、集積回路のチップ面積の小型化及び低消費電力化が図られる。例えば、集積回路１内にＡＬＵ１０と同様のＡＬＵが全部で２４個存在するなら、１回分のコマンド供給に対応して４８ビットのメモリ領域が削減され、一連の処理の全体で考えれば、膨大なメモリ領域が削減されることになる。
【００４８】
図５に、図３の表に示すような信号の割り当ての手順を示す。まず、ステップＳ１において、３入力処理に対応するコマンドＣＯＭ９及び１０に対して、主コマンド信号αを割り当てる。次に、２入力処理に対応するコマンドＣＯＭ３〜ＣＯＭ８に対して、ステップＳ１で用いていない主コマンド信号αと、選択信号ＩＮＣと、を割り当てる（ステップＳ２）。そして、最後に、１入力処理に対応するコマンドＣＯＭ０〜ＣＯＭ２に対して、ステップＳ１とＳ２で用いていない“主コマンド信号αと選択信号ＩＮＣの組み合わせ”を割り当てると共に、コマンドＣＯＭ０及びＣＯＭ２に対しては、更に、選択信号ＩＮＢを割り当てる（ステップＳ３）。
【００４９】
＜＜変形等＞＞
上述した集積回路１の機能は、ハードウェアによって、ソフトウェアによって、或いは、それらの組み合わせによって、実現することが可能である。
【００５０】
尚、上述の実施形態において、可変機能実現装置は、可変機能実現手段としてのＡＬＵ１０と、機能選択手段（機能指定手段）としてのデコーダ２５と、を含んで構成される。デコーダ２５とＡＬＵ制御部２６とで機能選択手段（機能指定手段）が形成される、と考えることもできる。
【図面の簡単な説明】
【００５１】
【図１】本発明の実施の形態に係る集積回路の概略構成ブロック図である。
【図２】図１のＡＬＵの周辺回路の構成ブロック図である。
【図３】図２のＡＬＵが実行可能な複数の処理と、各処理に対応する信号と、を表す表である。
【図４】図２のデコーダの内部ブロック図である。
【図５】図３の表に示すような信号の割り当て方の手順を示すフローチャートである。
【符号の説明】
【００５２】
１  集積回路
１０  ＡＬＵ
２１、２２、２３  選択信号生成部
２４  主コマンド信号生成部
２５  デコーダ
２６  ＡＬＵ制御部
ＳＥＬＡ、ＳＥＬＢ、ＳＥＬＣ  セレクタ
【図１】
2007316824.tif 000003
【図２】
2007316824.tif 000004
【図３】
2007316824.tif 000005
【図４】
2007316824.tif 000006
【図５】
2007316824.tif 000007