(57)【要約】【課題】従来のリコンフィギュラブル回路においては、たとえ１ビットのイネーブル信号を生成する際にも多ビットのＡＬＵを占有してしまうため、多くのＡＬＵを必要とし、結果として回路規模が大きくなってしまう。【解決手段】Ｋ入力１出力の第１選択手段１および第２選択手段２と、第１選択手段および第２選択手段の出力をＮビットで入力し指定の算術論理演算を実行するＡＬＵ４と、第１選択手段および第２選択手段での選択を指定する選択制御信号Ｓｓを出力する選択制御手段３と、ＡＬＵで行う演算を指定するＡＬＵ制御信号Ｓａを出力するＡＬＵ制御手段５とを有する複数のセル１０と、各セルをバスのネットワークで接続する接続手段２１，２２とを有する。第１選択手段と第２選択手段とＡＬＵとを再構成可能で、第１選択手段と第２選択手段とが、選択制御信号により第ｉ番目の入力の所定のＭ［i］ビットを所定の並びに配置して出力する。【選択図】図２
2008235992.tif 000002
【特許請求の範囲】
【請求項１】
Ｋ入力１出力（Ｋは２以上の自然数）の第１選択手段と、Ｋ入力１出力の第２選択手段と、前記第１選択手段の出力と前記第２選択手段の出力とをＮビット（Ｎは２以上の自然数）で入力し、指定の算術論理演算を実行するＡＬＵと、前記第１選択手段での選択と前記第２選択手段での選択とを指定する選択制御信号を前記第１選択手段と前記第２選択手段とに出力する選択制御手段と、前記ＡＬＵで行う演算を指定するＡＬＵ制御信号を前記ＡＬＵに出力するＡＬＵ制御手段とを有する複数のセルと、
前記各セルをバスのネットワークで接続する接続手段とを有し、
前記選択制御信号と前記ＡＬＵ制御信号とを変更することで前記第１選択手段と前記第２選択手段と前記ＡＬＵとを再構成することが可能な回路であって、
前記第１選択手段と前記第２選択手段とが、前記選択制御信号により第ｉ番目（ｉは、ｉ≦Ｋを満たす自然数）の入力の所定のＭ［i］ビット（Ｍ［i］は、Σi=1KＭ［i］≦Ｎを満たす整数）を所定の並びに配置して出力するように構成されているリコンフィギュラブル回路。
【請求項２】
前記ＡＬＵは、前記ＡＬＵ制御信号により指定された少なくとも１種類の論理演算を実行するように構成されている請求項１に記載のリコンフィギュラブル回路。
【請求項３】
前記ＡＬＵは、ビット毎にそれぞれ互いに異なる複数種類の論理演算の実行が可能に構成されている請求項１に記載のリコンフィギュラブル回路。
【請求項４】
１入力Ｋ′出力（Ｋ′は２以上の自然数）の第３の選択手段をさらに備え、
前記選択制御信号によって前記第３の選択手段を再構成することが可能な回路であって、
前記第３の選択手段が前記ＡＬＵの出力の所定のビットを含んだ複数の出力形式の組み合わせの中から前記選択制御信号により１つの組み合わせを選択する請求項１から請求項３までのいずれかに記載のリコンフィギュラブル回路。
【請求項５】
請求項１から請求項４までのいずれかに記載のリコンフィギュラブル回路と、
前記選択制御信号と前記ＡＬＵ制御信号の値を格納する記憶手段と、
所定のアプリケーションを処理するために再構成する前記選択制御信号と前記ＡＬＵ制御信号を前記記憶手段から選択し前記複数のセルを再構成するシステム制御手段とを備えたリコンフィギュラブル回路システム。
【請求項６】
ユーザの指示を入力しユーザ指示信号を出力するユーザインタフェース手段をさらに備え、
前記システム制御手段は、前記ユーザ指示信号の値に基づいたアプリケーションを処理するために再構成する請求項５に記載のリコンフィギュラブル回路システム。
【請求項７】
記録媒体から記録データを読み出し媒体指示信号を出力する記録媒体読み出し手段をさらに備え、
前記システム制御手段は、前記媒体指示信号の値に基づいたアプリケーションを処理するために再構成する請求項５に記載のリコンフィギュラブル回路システム。
【請求項８】
ソースコードを入力し、前記ソースコードに記載された各算術論理演算をリコンフィギュラブル回路の各ＡＬＵへの配置と配線を決定する方法であって、
前記ソースコードの中から論理演算を抽出する第１ステップと、
抽出した論理演算がＰビット（Ｐは自然数）以下またはＱビット（Ｑは自然数）以下であるか判定する第２ステップと、
Ｐビット以下の論理演算と、Ｑビット以下の論理演算とが同じ論理演算であるか判断する第３ステップと、
同じ論理演算の場合に、前記Ｐビット以下の論理演算と、前記Ｑビット以下の論理演算とを、Ｒビット幅（Ｒは、Ｒ≧Ｐ＋Ｑを満たす自然数）の入力を有する１つのＡＬＵで実行するように配置と配線を決定する第４ステップとを有するリコンフィギュラブル回路の配置配線方法。
【請求項９】
前記第４ステップは、前記Ｐビット以下の論理演算と、前記Ｑビット以下の論理演算とが互いに別種の論理演算の場合に、上位側Ｑビットと下位側Ｐビットに互いに別種の論理演算を実行することを指定するように前記ＡＬＵ制御信号の値を決定する請求項８に記載のリコンフィギュラブル回路の配置配線方法。
【請求項１０】
Ｎビット（Ｎは２以上の自然数）の入力ポートを有し指定の算術論理演算を実行するＡＬＵと、
前記ＡＬＵで行う演算を指定するＡＬＵ制御信号を前記ＡＬＵに出力するＡＬＵ制御手段とを有する複数のセルと、
前記各セルをバスのネットワークで接続する接続手段と、
前記接続手段に接続を指定する接続制御信号を前記接続手段に出力する接続制御手段とを有し、
前記ＡＬＵ制御信号と前記接続制御信号を変更することで前記ＡＬＵを再構成することが可能な回路であって、
前記接続手段が前記接続制御信号に基づいてＫ本（Ｋは２以上の自然数）のバスに対して、第ｉ番目（ｉは、ｉ≦Ｋを満たす自然数）のバスの所定のＭ［i］ビット（Ｍ［i］は、Σi=1KＭ［i］≦Ｎを満たす整数）を所定の並びに配置して前記ＡＬＵの入力ポートに接続するように構成されているリコンフィギュラブル回路。
【請求項１１】
前記ＡＬＵが前記ＡＬＵ制御信号により指定された少なくとも１種類の論理演算を実行する請求項１０に記載のリコンフィギュラブル回路。
【請求項１２】
前記ＡＬＵは、ビット毎にそれぞれ互いに異なる複数種類の論理演算の実行が可能な機能を備えている請求項１０に記載のリコンフィギュラブル回路。
【請求項１３】
１入力Ｋ′出力（Ｋ′は２以上の自然数）の選択手段をさらに備え、
選択制御信号によって前記選択手段を再構成することが可能な回路であって、
前記選択手段が前記ＡＬＵの出力の所定のビットを含んだ複数の出力形式の組み合わせの中から選択制御信号により１つの組み合わせを選択する請求項１０から請求項１２までのいずれかに記載のリコンフィギュラブル回路。
【請求項１４】
請求項１０から請求項１３までのいずれかに記載のリコンフィギュラブル回路と、
前記ＡＬＵ制御信号と前記接続制御信号の値を格納する記憶手段と、
所定のアプリケーションを処理するために再構成する前記ＡＬＵ制御信号と前記接続制御信号を前記記憶手段から選択し前記複数のセルを再構成するシステム制御手段とを備えたリコンフィギュラブル回路システム。
【請求項１５】
ユーザの指示を入力しユーザ指示信号を出力するユーザインタフェース手段をさらに備え、
前記システム制御手段は、前記ユーザ指示信号の値に基づいたアプリケーションを処理するために再構成する請求項１４に記載のリコンフィギュラブル回路システム。
【請求項１６】
記録媒体から記録データを読み出し媒体指示信号を出力する記録媒体読み出し手段をさらに備え、
前記システム制御手段は、前記媒体指示信号の値に基づいたアプリケーションを処理するために再構成する請求項１４に記載のリコンフィギュラブル回路システム。
【請求項１７】
ソースコードを入力し前記ソースコードに記載された各算術論理演算をリコンフィギュラブル回路の各セルへの配置と配線を決定する方法であって、
前記ソースコードの中から論理演算を抽出する第１ステップと、
抽出した論理演算がＰビット（Ｐは自然数）以下またはＱビット（Ｑは自然数）以下であるか判定する第２ステップと、
Ｐビット以下の論理演算と、Ｑビット以下の論理演算とが同じ論理演算であるか判断する第３ステップと、
同じ論理演算の場合に前記Ｐビット以下の論理演算と、前記Ｑビット以下の論理演算とを、１つのＡＬＵで実行するように配置と配線を決定する第４ステップとを有するリコンフィギュラブル回路の配置配線方法。
【請求項１８】
前記第４ステップは、前記Ｐビット以下の論理演算と、前記Ｑビット以下の論理演算とが互いに別種の論理演算の場合に、上位側Ｑビットと下位側Ｐビットに互いに別種の論理演算を実行することを指定するように前記ＡＬＵ制御信号の値を決定する請求項１７に記載のリコンフィギュラブル回路の配置配線方法。
【請求項１９】
外部情報を入力してソースコード変更情報に変換する外部情報入力ステップと、
前記ソースコード変更情報に基づいてソースコードの所定の位置に変更をかけて、新たなソースコードとして出力するソースコード変更ステップとをさらに備える請求項８または請求項１７に記載のリコンフィギュラブル回路の配置配線方法。
【請求項２０】
リコンフィギュラブル回路の故障しているセル位置を示す故障セル位置情報を入力し、故障したセルには配置配線をしない故障判定ステップをさらに備える請求項８または請求項１７に記載のリコンフィギュラブル回路の配置配線方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、再構成可能なリコンフィギュラブル（Re-configurable）回路、リコンフィギュラブル回路システムおよびリコンフィギュラブル回路の配置配線方法にかかわり、特にはＡＬＵ（Arithmetic and Logic Unit：算術論理回路）等で構成された基本セルをアレイ状に配置したプロセッサに関する。
【背景技術】
【０００２】
現在、ＰＤＣ（Personal Digital Cellular）、ＧＳＭ（Global System for Mobile-communication）などのいわゆる第２世代無線通信システムや、Ｗ−ＣＤＭＡ（Wideband Code Division Multiple Access）などの第３世代無線通信システム、さらに、ＰＨＳ（Personal Handy System）や無線ＬＡＮ（Local Area Network）など、さまざまな無線通信システム（以下「無線通信方式」という）が存在する。これら複数の無線通信方式を１台の無線装置で対応させる技術として、ソフトウェア（プログラミングデータ）の書き換えによって機能を変更するソフトウェア無線がある。また、ＪＰＥＧ、ＭＰＥＧ、Ｈ．２６４ＡＶＣといった各種画像圧縮方式、ＡＡＣ（Advanced Audio Coding）、ＷＭＡ（Windows Media Audio）、ＭＰ３（MPEG1 audio layer 3）、ＳＤ−ＡｕｄｉｏやＡＴＲＡＣ３（Ｐｌｕｓ）といった音声圧縮方式、Ｄｏｌｂｙ  Ｄｉｇｉｔａｌをはじめとする５．１チャンネルサラウンド方式が存在し、かつ、それぞれの方式の種類は今後も増加していくことが予想される。また、上記複数の圧縮方式やサラウンド方式を１台のプレーヤで対応させるマルチメディア端末もある。
【０００３】
従来のソフトウェア無線装置またはマルチメディア端末は、方式を切り替える（無線通信方式間のハンドオーバや圧縮形式の異なるコンテンツの再生などを行う）際、マイクロプロセッサ（ＭＰＵ）などに代表される中央制御部が各方式に対応するプログラムの実行を行うか、または不足している性能を補うために各方式専用回路（カスタムＡＳＩＣやＤＳＰ）を搭載している。最近では、ＭＰＵ（Micro Processing Unit）やＡＳＩＣ（Application Specific Integrated Circuit）やＤＳＰ（Digital Signal Processor）を１つのチップに搭載したシステムＬＳＩなどのいわゆるＳｏＣ（System on a Chip）で提供されることが主流となっている。
【０００４】
ＳｏＣの場合、設計段階であらかじめ決められた方式に対応した回路のみを搭載するため、製造後または出荷後に新たに方式を加えることは、処理能力と処理方式の観点から不可能であることが多い。これを解決するために、あらかじめＳｏＣに再構成可能（リコンフィギュラブル）な回路を搭載しておくことで、これらの問題を解決する取り組みがなされている（例えば特許文献１参照）。
【０００５】
リコンフィギュラブル回路は、ＰＬＤ（Programmable Logic Device）やＦＰＧＡ（Field Programmable Gate Array）よりは、実装面積、消費電力、回路の再構成に要する時間の観点で優れている。また、ＶＬＩＷ（Very Long Instruction Word）技術に代表されるマイクロプロセッサに比べると、複数のオブジェクトや関数を同時に実行する点で優れている（例えば特許文献２参照）。
【０００６】
従来のリコンフィギュラブル回路は、ＡＬＵ（算術論理回路）などで構成された基本セルをアレイ状に配置し、各セルの入出力をネットワークで連携し合いながら処理を実行するという構成である。リコンフィギュラブル回路をＳｏＣに組み込んで、ある方式（アプリケーション）を実行させると、例えばフィルタ演算などの純粋なデータパス部にはＡＬＵのネットワークにより効率的に実行できる。しかし、実際はデータパス部の他に、データパス部の動作開始やレジスタへのイネーブル信号生成などを担う制御部が必要である。制御部は、一般にカウンタロジックなどで構成される場合が多い。制御部では、例えば１ビット幅のイネーブル信号を生成する際にも、多ビットのＡＬＵを占有してしまうため、回路が非常に冗長となり、回路規模が大きくなってしまう。
【０００７】
例として、４ビット幅のリコンフィギュラブル回路で説明する。図２５のリコンフィギュラブル回路Ｘ′中の各セル１０は、ＡＬＵ４で構成されている。従来のリコンフィギュラブル回路Ｘ′では、例えば、以下の２つの論理演算を実現するのに、互いに別のＡＬＵ（別のセル）を必要としていた。結果として、少なくとも、セル１０が６つ、スイッチ２０が４つ必要となる。
【０００８】
ｃ＝ａ＆ｂ  …（ａとｂの論理積演算）
ｆ＝ｄ＆ｅ  …（ｄとｅの論理積演算）
アルゴリズムとして、信号ａ，ｂ，ｃ，ｄ，ｅ，ｆがたとえ１ビットであっても、従来のリコンフィギュラブル回路では、その構成上の問題から、４ビットのＡＬＵ４がそれぞれに割り当てられていた。したがって、残り３ビット分はまったく冗長であり、これが回路規模の増大を引き起こす一要因となっていた。
【０００９】
一方、これを解決するために１ビットロジック専用の回路を別途搭載する、いわゆるヘテロジニアス（異種）なリコンフィギュラブル回路というアプローチも考えられてきている。しかし、ヘテロジニアスなリコンフィギュラブル回路は、いかなる方式にも対応するのに最適なＡＬＵ数と１ビットロジック数との比率を決定することが困難であり、結局は多くのセルを搭載するということになりかねない。また、リコンフィギュラブル回路の配置配線にも制約を与えてしまい、配置配線が収束しなくなるおそれがある。
【特許文献１】特開２００４−２２１９９７号公報（第４−６頁、第１−９図）
【特許文献２】特開２００４−１０２９８８号公報（第１１−１５頁、第１３−１４図）
【発明の開示】
【発明が解決しようとする課題】
【００１０】
このように、従来のリコンフィギュラブル回路においては、たとえ１ビットのイネーブル信号を生成する際にも多ビットのＡＬＵを占有してしまうために、多くのＡＬＵを必要とし、結果として回路規模が大きくなってしまうという問題がある。ＡＬＵと１ビットロジックとのヘテロジニアスなリコンフィギュラブル回路でも、結局は回路規模増大を招くおそれがあり、配置配線が収束しないという問題もある。
【００１１】
本発明はかかる点に鑑みてなされたものであり、複数箇所の論理演算をＡＬＵベースのセルアレイ上で効率良く実行するリコンフィギュラブル回路、リコンフィギュラブル回路システムおよびリコンフィギュラブル回路の配置配線方法を提供することを目的とする。
【課題を解決するための手段】
【００１２】
本発明のリコンフィギュラブル回路は、
Ｋ入力１出力（Ｋは２以上の自然数）の第１選択手段と、Ｋ入力１出力の第２選択手段と、前記第１選択手段の出力と前記第２選択手段の出力とをＮビット（Ｎは２以上の自然数）で入力し、指定の算術論理演算を実行するＡＬＵと、前記第１選択手段での選択と前記第２選択手段での選択とを指定する選択制御信号を前記第１選択手段と前記第２選択手段とに出力する選択制御手段と、前記ＡＬＵで行う演算を指定するＡＬＵ制御信号を前記ＡＬＵに出力するＡＬＵ制御手段とを有する複数のセルと、
前記各セルをバスのネットワークで接続する接続手段とを有し、
前記選択制御信号と前記ＡＬＵ制御信号とを変更することで前記第１選択手段と前記第２選択手段と前記ＡＬＵとを再構成することが可能な回路であって、
前記第１選択手段と前記第２選択手段とが、前記選択制御信号により第ｉ番目（ｉは、ｉ≦Ｋを満たす自然数）の入力の所定のＭ［i］ビット（Ｍ［i］は、Σi=1KＭ［i］≦Ｎを満たす整数）を所定の並びに配置して出力するように構成されているものである。
【００１３】
この構成によれば、ＡＬＵの入力ビット幅のＮについて、ＮをＫ個に分割する。そのＫ個についてそれぞれのビット幅をＭ［1］…Ｍ［K］とすると、Ｍ［1］＋…＋Ｍ［K］≦Ｎである。すなわち、Σi=1KＭ［i］≦Ｎである。例えば、Ｋ＝３、Ｎ＝８とすると、Ｍ［1］＋Ｍ［2］＋Ｍ［3］≦８が条件式となり、例えば、１ビットと２ビットと５ビットの組み合わせ、１ビットと３ビットと４ビットの組み合わせ、２ビットと２ビットと４ビットの組み合わせ、２ビットと２ビットと３ビットの組み合わせ、２ビットと３ビットと３ビットの組み合わせなどがある（より詳細には実施の形態で説明する）。
【００１４】
第１選択手段および第２選択手段のそれぞれは、所望のビット数の組み合わせのＫ個の入力データを取り込み、ＡＬＵに送り込む。Ｎビット幅の入力を有する１つのＡＬＵは、最大で、Ｍ［1］ビットからＭ［K］ビットまでのＫ個の論理演算の入力データを入力し、これらＫ個の互いに独立した論理演算の入力データのそれぞれにつき１つのＡＬＵを用いて論理演算を実行することが可能となる。これにより、ＡＬＵの個数を削減し、回路面積を小さくすることが可能となる。
【００１５】
上記構成のリコンフィギュラブル回路において、前記ＡＬＵは、前記ＡＬＵ制御信号により指定された少なくとも１種類の論理演算を実行するように構成されているという態様がある。これは、１つのＡＬＵが実行するＫ個の論理演算が共通している場合を含めるものであり、上記のように、ＡＬＵの個数を削減し、回路面積を小さくすることが可能となる。
【００１６】
また上記構成のリコンフィギュラブル回路において、前記ＡＬＵは、ビット毎にそれぞれ互いに異なる複数種類の論理演算の実行が可能に構成されているという態様がある。この構成によれば、ビット毎に論理演算が互いに異なる場合でも、それぞれの論理演算を同じＡＬＵで実行することが可能となる。これにより、ＡＬＵの個数をさらに削減し、回路面積を小さくすることが可能となる。
【００１７】
また上記構成のリコンフィギュラブル回路において、１入力Ｋ′出力（Ｋ′は２以上の自然数）の第３の選択手段をさらに備え、前記選択制御信号によって前記第３の選択手段を再構成することが可能な回路であって、前記第３の選択手段が前記ＡＬＵの出力の所定のビットを含んだ複数の出力形式の組み合わせの中から前記選択制御信号により１つの組み合わせを選択するように構成されているという態様がある。この構成によれば、ＡＬＵの出力をＫ′個の出力先に柔軟な形式で出力することが可能となる。これにより、より効率的に基本セル間を接続することができるため、回路面積を小さくすることが可能となる。
【００１８】
本発明のリコンフィギュラブル回路システムは、上記のいずれかのリコンフィギュラブル回路と、前記選択制御信号と前記ＡＬＵ制御信号の値を格納する記憶手段と、所定のアプリケーションを処理するために再構成する前記選択制御信号と前記ＡＬＵ制御信号を前記記憶手段から選択し前記複数のセルを再構成するシステム制御手段とを備えたものである。この構成によれば、システム制御手段によりリコンフィギュラブル回路への再構成を行うことが可能となる。これにより、リコンフィギュラブル回路のコンフィギュレーションを効率良く制御することが可能となる。
【００１９】
上記構成のリコンフィギュラブル回路システムにおいて、ユーザの指示を入力しユーザ指示信号を出力するユーザインタフェース手段をさらに備え、前記システム制御手段は、前記ユーザ指示信号の値に基づいたアプリケーションを処理するために再構成するように構成されているという態様がある。
【００２０】
また上記構成のリコンフィギュラブル回路システムにおいて、記録媒体から記録データを読み出し媒体指示信号を出力する記録媒体読み出し手段をさらに備え、前記システム制御手段は、前記媒体指示信号の値に基づいたアプリケーションを処理するために再構成するように構成されているという態様がある。
【００２１】
これらの構成によれば、所望のアプリケーションに基づいたリコンフィギュラブル回路を小面積な回路で提供することが可能となる。
【００２２】
本発明のリコンフィギュラブル回路の配置配線方法は、
ソースコードを入力し、前記ソースコードに記載された各算術論理演算をリコンフィギュラブル回路の各ＡＬＵへの配置と配線を決定する方法であって、
前記ソースコードの中から論理演算を抽出する第１ステップと、
抽出した論理演算がＰビット（Ｐは自然数）以下またはＱビット（Ｑは自然数）以下であるか判定する第２ステップと、
Ｐビット以下の論理演算と、Ｑビット以下の論理演算とが同じ論理演算であるか判断する第３ステップと、
同じ論理演算の場合に、前記Ｐビット以下の論理演算と、前記Ｑビット以下の論理演算とを、Ｒビット幅（Ｒは、Ｒ≧Ｐ＋Ｑを満たす自然数）の入力を有する１つのＡＬＵで実行するように配置と配線を決定する第４ステップとを有するものである。
【００２３】
この方法によれば、Ｒビット幅の入力を有する１つのＡＬＵに、ＰビットとＱビットの論理演算を配置配線を決定することが可能となる。これにより、ＡＬＵの個数を削減し、回路面積を小さくすることが可能となる。
【００２４】
上記構成のリコンフィギュラブル回路の配置配線方法において、前記第４ステップは、前記Ｐビット以下の論理演算と、前記Ｑビット以下の論理演算とが互いに別種の論理演算の場合に、上位側Ｑビットと下位側Ｐビットに互いに別種の論理演算を実行することを指定するように前記ＡＬＵ制御信号の値を決定するという態様がある。この方法によれば、Ｐビット以下の論理演算とＱビット以下の論理演算とが互いに別種の論理演算の場合にも、同じＡＬＵで実行するように配置配線を決定することが可能となる。これにより、より一層ＡＬＵの個数を削減し、回路面積を小さくすることが可能となる。
【００２５】
本発明のリコンフィギュラブル回路は、Ｎビット（Ｎは２以上の自然数）の入力ポートを有し指定の算術論理演算を実行するＡＬＵと、前記ＡＬＵで行う演算を指定するＡＬＵ制御信号を前記ＡＬＵに出力するＡＬＵ制御手段とを有する複数のセルと、前記各セルをバスのネットワークで接続する接続手段と、前記接続手段に接続を指定する接続制御信号を前記接続手段に出力する接続制御手段とを有し、前記ＡＬＵ制御信号と前記接続制御信号を変更することで前記ＡＬＵを再構成することが可能な回路であって、前記接続手段が前記接続制御信号に基づいてＫ本（Ｋは２以上の自然数）のバスに対して、第ｉ番目（ｉは、ｉ≦Ｋを満たす自然数）のバスの所定のＭ［i］ビット（Ｍ［i］は、Σi=1KＭ［i］≦Ｎを満たす整数）を所定の並びに配置して前記ＡＬＵの入力ポートに接続するように構成されている。
【００２６】
この場合、接続手段自体で、所望のビット数の組み合わせの複数の入力データの取り込みを行う。先に説明した構成の場合の第１選択手段、第２選択手段は必要ではない。Ｎビット幅の入力を有する１つのＡＬＵに、各Ｍ［i］ビットの論理演算の入力データをＮビットの中に詰め込んで、１つのＡＬＵの入力データとして供給することが可能となる。これにより、ＡＬＵの個数を削減し、回路面積をさらに小さくすることが可能となる。
【００２７】
上記構成のリコンフィギュラブル回路において、前記ＡＬＵが前記ＡＬＵ制御信号により指定された少なくとも１種類の論理演算を実行するように構成されているという態様がある。この構成によれば、Ｎビット幅の入力を有する１つのＡＬＵで、複数箇所の論理演算でも合計Ｎビット以下の論理演算であれば１つのＡＬＵで実行することが可能となるため、ＡＬＵの個数を削減し、回路面積を小さくすることが可能となる。
【００２８】
また上記構成のリコンフィギュラブル回路において、前記ＡＬＵが、ビット毎にそれぞれ互いに異なる複数種類の論理演算の実行が可能な機能を備えているように構成されているという態様がある。この構成によれば、ＡＬＵがビット毎に論理演算が互いに異なる場合でも、同じＡＬＵで実行することが可能となる。これにより、ＡＬＵの個数をさらに削減し、回路面積を小さくすることが可能となる。
【００２９】
また上記構成のリコンフィギュラブル回路において、１入力Ｋ′出力（Ｋ′は２以上の自然数）の選択手段をさらに備え、選択制御信号によって前記選択手段を再構成することが可能な回路であって、前記選択手段が前記ＡＬＵの出力の所定のビットを含んだ複数の出力形式の組み合わせの中から選択制御信号により１つの組み合わせを選択するように構成されているという態様がある。この構成によれば、ＡＬＵの出力を複数の出力先に柔軟な形式で接続することが可能となる。これにより、より効率的に基本セル間を接続することができるため、回路面積を小さくすることが可能となる。
【００３０】
本発明のリコンフィギュラブル回路システムは、前記ＡＬＵ制御信号と前記接続制御信号の値を格納する記憶手段をさらに備え、所定のアプリケーションを処理するために再構成する前記ＡＬＵ制御信号と前記接続制御信号を前記記憶手段から選択し前記複数のセルを再構成するシステム制御手段とを備えたものである。
【００３１】
この構成によれば、システム制御手段によりリコンフィギュラブル回路への再構成を行うことが可能となる。これにより、リコンフィギュラブル回路のコンフィギュレーションを効率良く制御することが可能となる。
【００３２】
上記構成のリコンフィギュラブル回路システムにおいて、ユーザの指示を入力しユーザ指示信号を出力するユーザインタフェース手段をさらに備え、前記システム制御手段が前記ユーザ指示信号の値に基づいたアプリケーションを処理するために再構成するように構成されているという態様がある。
【００３３】
また上記構成のリコンフィギュラブル回路システムにおいて、記録媒体から記録データを読み出し媒体指示信号を出力する記録媒体読み出し手段をさらに備え、前記システム制御手段は、前記媒体指示信号の値に基づいたアプリケーションを処理するために再構成するように構成されているという態様がある。
【００３４】
これら構成によれば、所望のアプリケーションに基づいたリコンフィギュラブル回路システムを小面積な回路で提供することが可能となる。
【００３５】
本発明のリコンフィギュラブル回路の配置配線方法は、ソースコードを入力し前記ソースコードに記載された各算術論理演算をリコンフィギュラブル回路の各セルへの配置と配線を決定する方法であって、前記ソースコードの中から論理演算を抽出する第１ステップと、抽出した論理演算がＰビット（Ｐは自然数）以下またはＱビット（Ｑは自然数）以下であるか判定する第２ステップと、Ｐビット以下の論理演算と、Ｑビット以下の論理演算とが同じ論理演算であるか判断する第３ステップと、同じ論理演算の場合に前記Ｐビット以下の論理演算と、前記Ｑビット以下の論理演算とを、１つのＡＬＵで実行するように配置と配線を決定する第４ステップと、を処理するようにしたものである。
【００３６】
この方法によれば、１つのＡＬＵに、ＰビットとＱビットの論理演算の配置配線を決定することが可能となる。これにより、ＡＬＵの個数を削減し、回路面積を小さくすることが可能となる。
【００３７】
上記構成のリコンフィギュラブル回路の配置配線方法において、前記第４ステップは、前記Ｐビット以下の論理演算と、前記Ｑビット以下の論理演算とが互いに別種の論理演算の場合に、上位側Ｑビットと下位側Ｐビットに互いに別種の論理演算を実行することを指定するように前記ＡＬＵ制御信号の値を決定するという態様がある。この方法によれば、Ｐビット以下の論理演算とＱビット以下の論理演算とが互いに別種の論理演算の場合にも、同じＡＬＵで実行するように配置配線を決定することが可能となる。これにより、より一層ＡＬＵの個数を削減し、回路面積を小さくすることが可能となる。
【００３８】
また上記構成のリコンフィギュラブル回路の配置配線方法において、外部情報を入力してソースコード変更情報に変換する外部情報入力ステップと、前記ソースコード変更情報に基づいてソースコードの所定の位置に変更をかけて、新たなソースコードとして出力するソースコード変更ステップとをさらに備えるという態様がある。この方法によれば、製品出荷後も外部情報に基づいてアプリケーションのソースコードを変更しても、小面積なリコンフィギュラブル回路の配置配線を決定することが可能となる。これにより、安価でありながら、システムに柔軟に対応することが可能となる。
【００３９】
また上記構成のリコンフィギュラブル回路の配置配線方法において、リコンフィギュラブル回路の故障しているセル位置を示す故障セル位置情報を入力し、故障したセルには配置配線をしない故障判定ステップをさらに備え、故障セルには配置配線をしないようにしたという態様がある。この方法によれば、故障したセルが存在しても、配置配線をしないように回避しても、小面積なリコンフィギュラブル回路で配置配線を決定することが可能となる。これにより、歩留まりの向上を図ることができ、チップ単価を安価にすることが可能となる。
【発明の効果】
【００４０】
本発明によれば、複数の論理演算をまとめて１つのＡＬＵで処理できるように配置配線することで、所望のアプリケーション全体で必要なＡＬＵの個数を減らし、小面積化を実現できる。この結果、安価なシステムＬＳＩを提供することが可能となる。
【発明を実施するための最良の形態】
【００４１】
本発明の骨子は、ＡＬＵを含む基本セルを配線ネットワークで接続したリコンフィギュラブル回路において、複数の論理演算をまとめて１つのＡＬＵで処理できるように配置配線することで、所望のアプリケーション全体で必要なＡＬＵの個数を減らし、小面積化を実現することである。以下、本発明の実施の形態について図面を参照して詳細に説明する。
【００４２】
（実施の形態１）
図１は本発明の実施の形態１におけるリコンフィギュラブル回路Ｘの構成を示すブロック図、図２はリコンフィギュラブル回路Ｘの要部の構成を示すブロック図、図３はリコンフィギュラブル回路のセル１０に接続するスイッチ２０の構成を示すブロック図、図４はリコンフィギュラブル回路のセル１０の構成を示すブロック図である。図４に示すリコンフィギュラブル回路のセル１０は、図１に示すリコンフィギュラブル回路Ｘにおいてマトリクス状に配列されるものである。また、図３に示すスイッチ２０は、図１に示すリコンフィギュラブル回路Ｘにおいて、隣接するセル１０間にマトリクス状に配列されるものである。
【００４３】
図１に示すリコンフィギュラブル回路Ｘは、複数のセル１０と複数のスイッチ２０とが縦横方向で交互となる状態でマトリックス状に配列されている。各セル１０は、基本的要素として第１選択手段１と第２選択手段２とＡＬＵ（算術論理回路）４を有している。例えば、信号ａを出力するセル１０と信号ｄを出力するセル１０とがスイッチ２０を介して、注目セル１０の第１選択手段１に入力されている。また、信号ｂを出力するセル１０と信号ｅを出力するセル１０とが別のスイッチ２０を介して、注目セル１０の第２選択手段２に入力されている。注目セル１０において、ＡＬＵ４は、第１選択手段１から入力した信号ａと第２選択手段２から入力した信号ｂとの論理演算を行い演算結果ｃを出力するとともに、第１選択手段１から入力した信号ｄと第２選択手段２から入力した信号ｅとの論理演算を行い演算結果ｆを出力する。このとき、信号ａと信号ｂとの論理演算と、信号ｄと信号ｅとの論理演算とを１つのＡＬＵ４で共通に行うように構成してある。この複数の論理演算を１つのＡＬＵ４で共通に行うことが、本発明の技術的特徴である。以下、図２〜図６を用いて順次具体的に説明する。
【００４４】
スイッチ２０は、第１接続手段２１と、第２接続手段２２と、接続制御手段２３とで構成されている。
【００４５】
第１接続手段２１における一方の切替部は、バスＢ１１とバスＢ２１との接続・分離を行うものであり、他方の切替部は、バスＢ１３とバスＢ２３との接続・分離を行うものである。その切り替え制御は、接続制御手段２３からの接続制御信号Ｓｃによって行われる。バスＢ２１はセル１０の第１選択手段１に対する一方の入力となり、バスＢ２３は第１選択手段１に対する他方の入力となる。例えば、接続制御信号Ｓｃ［１］が１のときは、Ａ［３：０］をバスＢ２１に入力し、接続制御信号Ｓｃ［０］が１のときは、Ｃ［３：０］をバスＢ２３に入力する。なお、Ｓｃ［１］は１ビット目を表し、Ｓｃ［０］は０ビット目を表す。バスＢ２１は、第１接続手段２１によって出力されたＥ［３：０］を第１選択手段１の入力ＩＮ１１［３：０］として伝送する。バスＢ２３も同様に、第１接続手段２１によって出力されたＧ［３：０］を第１選択手段１の入力ＩＮ１２［３：０］として伝送する。
【００４６】
一方、第２接続手段２２における一方の切替部は、バスＢ１２とバスＢ２２との接続・分離を行うものであり、他方の切替部は、バスＢ１４とバスＢ２４との接続・分離を行うものである。その切り替え制御は、接続制御手段２３からの接続制御信号Ｓｃによって行われる。バスＢ２２はセル１０の第２選択手段２に対する一方の入力となり、バスＢ２４は第２選択手段２に対する他方の入力となる。例えば、接続制御信号Ｓｃ［１］が１のときは、Ｂ［３：０］をバスＢ２２に入力し、接続制御信号Ｓｃ［０］が１のときは、Ｄ［３：０］をバスＢ２４に入力する。バスＢ２２は、第２接続手段２２によって出力されたＦ［３：０］を第２選択手段２の入力ＩＮ２１［３：０］として伝送する。バスＢ２４も同様に、第２接続手段２２によって出力されたＨ［３：０］を第２選択手段２の入力ＩＮ２２［３：０］として伝送する。
【００４７】
リコンフィギュラブル回路のセル１０は、第１選択手段１と、第２選択手段２と、選択制御手段３と、ＡＬＵ４と、ＡＬＵ制御手段５とで構成されている。バスＢ２１、バスＢ２２、バスＢ２３、バスＢ２４は、それぞれ他のセルからの信号をスイッチ２０を介して入力として伝送する。第１選択手段１は、選択制御手段３からの選択制御信号Ｓｓによって、バスＢ２１の所定のビットとバスＢ２３の所定のビットとを選択および合成し、選択結果ＳＥ１としてＡＬＵ４の一方の入力に出力するように構成されている。また、第２選択手段２も同様に、選択制御手段３からの選択制御信号Ｓｓによって、バスＢ２２の所定のビットとバスＢ２４の所定のビットとを選択および合成し、選択結果ＳＥ２としてＡＬＵ４の他の入力に出力するように構成されている。選択制御信号Ｓｓは、第１選択手段１、第２選択手段２に出力の形態を指示する２ビットの信号である。
【００４８】
第１選択手段１は、バスＢ２１からの信号である入力ＩＮ１１［３：０］と、バスＢ２３からの信号である入力ＩＮ１２［３：０］と、選択制御信号Ｓｓとを入力し、選択制御信号Ｓｓの値に基づいて所定の出力形態に加工した後、選択結果ＳＥ１［３：０］を出力する。なお、［３：０］は、０ビット目から３ビット目までの４ビット構成であることを意味している。具体的には、図５に示すように、第１選択手段１は、２ビットの選択制御信号Ｓｓが「００」の場合は、バスＢ２１からの４ビットの入力ＩＮ１１［３：０］を選択結果ＳＥ１としてそのまま出力し、選択制御信号Ｓｓが「０１」の場合は、バスＢ２１からの下位２ビットの入力ＩＮ１１［１：０］とバスＢ２３からの下位２ビットの入力ＩＮ１２［１：０］とを４ビットに詰め込んだものを出力し、選択制御信号Ｓｓが「１０」の場合は、バスＢ２１からの上位２ビットの入力ＩＮ１１［３：２］とバスＢ２３からの上位２ビットの入力ＩＮ１２［３：２］とを４ビットに詰め込んだものを出力し、選択制御信号Ｓｓが「１１」の場合は、バスＢ２３からの４ビットの入力ＩＮ１２［３：０］をそのまま出力する。
【００４９】
同様に、第２選択手段２は、バスＢ２２からの信号である入力ＩＮ２１［３：０］と、バスＢ２４からの信号である入力ＩＮ２２［３：０］と、選択制御信号Ｓｓとを入力し、選択制御信号Ｓｓの値に基づいて所定の出力形態に加工した後、選択結果ＳＥ２［３：０］を出力する。具体的には、第２選択手段２は、選択制御信号Ｓｓが「００」の場合は、バスＢ２２からの４ビットの入力ＩＮ２１［３：０］を選択結果ＳＥ２としてそのまま出力し、選択制御信号Ｓｓが「０１」の場合は、バスＢ２２からの下位２ビットの入力ＩＮ２１［１：０］とバスＢ２４からの下位２ビットの入力ＩＮ２２［１：０］とを４ビットに詰め込んだものを出力し、選択制御信号Ｓｓが「１０」の場合は、バスＢ２２からの上位２ビットの入力ＩＮ２１［３：２］とバスＢ２４からの上位２ビットの入力ＩＮ２２［３：２］とを４ビットに詰め込んだものを出力し、選択制御信号Ｓｓが「１１」の場合は、バスＢ２４からの４ビットの入力ＩＮ２２［３：０］をそのまま出力する。
【００５０】
ＡＬＵ制御手段５は、ＡＬＵ４で実行する算術論理演算命令を指示する３ビットのＡＬＵ制御信号Ｓａを出力する。
【００５１】
ＡＬＵ４は、第１選択手段１からの選択結果ＳＥ１［３：０］と、第２選択手段２からの選択結果ＳＥ２［３：０］と、ＡＬＵ制御手段５からの３ビットのＡＬＵ制御信号Ｓａとを入力し、ＡＬＵ制御信号Ｓａの値に基づいて、図６の表に対応した算術論理演算を実行し、その演算結果を出力ＯＵＴ［３：０］として出力バスＢ３０に出力するように構成されている。
【００５２】
具体的には、図６に示すように、ＡＬＵ４は、３ビットのＡＬＵ制御信号Ｓａが「００１」のときはＡＮＤ回路として再構築され、第１選択手段１からの選択結果ＳＥ１と第２選択手段２からの選択結果ＳＥ２とのＡＮＤ演算を実行する。また、ＡＬＵ制御信号Ｓａが「０１０」のときは「ＯＲ」回路として再構築され、第１選択手段１からの選択結果ＳＥ１と第２選択手段２からの選択結果ＳＥ２とのＯＲ演算を実行する。出力バスＢ３０は、出力ＯＵＴ［３：０］をリコンフィギュラブル回路のセル１０の外部へ伝送する。
【００５３】
次に、上記のように構成された本実施の形態のリコンフィギュラブル回路Ｘの動作を説明する。以下では、演算のビット幅として４ビットで構成されたリコンフィギュラブル回路として説明する。ただし、その他のビット幅でも適宜変更を加えることで同様に実施可能である。ここでは、以下の２つの論理演算を実現する場合について説明する。
【００５４】
ｃ＝ａ＆ｂ  …（ａとｂの論理積演算）
ｆ＝ｄ＆ｅ  …（ｄとｅの論理積演算）
簡単のため、ａとｂとｃとｄとｅとｆは、すべて１ビットとする。
【００５５】
アプリケーション中の複数の論理演算の中から、共通の論理演算を行っている箇所を見つけ出し、それらの演算ビット幅が２ビット以下のもの同士を１つに詰め込んで４ビットの新たなデータとし、その詰め込まれた４ビットのデータに対して、１つのＡＬＵ４で論理演算を実行する。
【００５６】
ＡＬＵ制御手段５は、ＡＬＵ制御信号ＳａとしてＡＮＤ回路を指定するための「００１」を出力する。「００１」のＡＬＵ制御信号Ｓａを入力したＡＬＵ４は、ＡＮＤ回路として再構築される（図６参照）。
【００５７】
あるセル１０から信号ａを第１選択手段１の第１入力に取り込み、別のセル１０から信号ｄを第１選択手段１の第２入力に取り込むために、スイッチ２０において、接続制御手段２３は第１接続手段２１および第２接続手段２２に対する接続制御信号Ｓｃとして「１０」を出力する。その結果、バスＢ１１におけるＡ［３：０］がバスＢ２１におけるＥ［３：０］に伝送されるとともに、バスＢ１２におけるＢ［３：０］がバスＢ２２におけるＦ［３：０］に伝送される。
【００５８】
さらに、接続制御手段２３は第１接続手段２１および第２接続手段２２に対する接続制御信号Ｓｃとして「０１」を出力する。その結果、バスＢ１３におけるＣ［３：０］がバスＢ２３におけるＧ［３：０］に伝送されるとともに、バスＢ１４におけるＤ［３：０］がバスＢ２４におけるＨ［３：０］に伝送される。
【００５９】
また、選択制御手段３は、選択制御信号Ｓｓとして「０１」を第１選択手段１と第２選択手段２に対して出力する。この選択制御信号Ｓｓを入力した第１選択手段１および第２選択手段２は、選択制御信号Ｓｓが指示する回路内容に再構成される。
【００６０】
すなわち、選択制御信号Ｓｓとして「０１」を入力した第１選択手段１は、入力ＩＮ１１［１：０］と入力ＩＮ１２［１：０］とを４ビットに詰め込んだものを出力する。つまり、図４のＡＬＵ４の内部で※１で示すように、選択結果ＳＥ１のビット２には信号ａが出力され、選択結果ＳＥ１のビット０には信号ｄが出力される。つまり、信号ａをバスＢ２１から入力ＩＮ１１［０］に、信号ｄをバスＢ２３から入力ＩＮ１２［０］に配置配線する。
【００６１】
同様に、選択制御信号Ｓｓとして「０１」を入力した第２選択手段２は、入力ＩＮ２１［１：０］と入力ＩＮ２２［１：０］とを４ビットに詰め込んだものを出力する。つまり、※１で示すように、選択結果ＳＥ２のビット２には信号ｂが出力され、選択結果ＳＥ２のビット０には信号ｅが出力される。つまり、信号ｂをバスＢ２２から入力ＩＮ２１［０］に、信号ｅをバスＢ２４から入力ＩＮ２２［０］に配置配線する。
【００６２】
ＡＬＵ制御信号Ｓａとして「００１」を入力したＡＬＵ４は、回路構成がＡＮＤ回路に再構成され、選択結果ＳＥ１［３：２］と選択結果ＳＥ２［３：２］とのＡＮＤ演算を実行したのち、選択結果ＳＥ１［１：０］と選択結果ＳＥ２［１：０］とのＡＮＤ演算を実行し、出力ＯＵＴ［３：０］を出力バスＢ３０に出力する。つまり、出力のビット２には演算結果ｃが出力され、出力のビット０には演算結果ｆが出力される。
【００６３】
以上のように、本実施の形態のリコンフィギュラブル回路Ｘにおいて、１つのＡＬＵ４がｃ＝ａ＆ｂのＡＮＤ演算とｆ＝ｄ＆ｅのＡＮＤ演算の２つの演算に共用されている。このようにして、２箇所の論理演算を１つのＡＬＵ４で実行することができるため、リコンフィギュラブル回路Ｘにおいて、従来の図２５で少なくとも６つ必要であったリコンフィギュラブル回路のセル１０が５つで済み、また同時に、従来４つ必要であったスイッチ２０が２つで済む。さらに、従来２つ必要であったＡＬＵ４を１つに削減できるため、このような操作をアプリケーション全体に適用することで回路面積の削減を実現する。また、２つの論理演算を効率良く実行することができる。
【００６４】
なお、本説明では、簡単のために、ａとｂとｃとｄとｅとｆは、すべて１ビットとしたが、これに限定されることはなく、ａとｂとｃとが１ビット、ｄとｅとｆとが２ビットでもよい。また、反対にａとｂとｃとが２ビット、ｄとｅとｆとが１ビットでもよい。さらに、ａとｂとｃとｄとｅとｆとがすべて２ビットでもよい。
【００６５】
なお、選択制御信号Ｓｓと、その出力形態も図５に限定されることはなく、例えば、入力ＩＮ１１［２：０］と入力ＩＮ１２［０］とを４ビットに詰め込んだものを出力してもよいし、その反対に、入力ＩＮ１１［０］と入力ＩＮ１２［２：０］とを４ビットに詰め込んだものを出力してもよい。また、選択制御信号Ｓｓのビット幅も２ビットに限定されることはなく、所要の出力形態の数に合わせて、選択制御信号Ｓｓのビット幅を決定してもよい。
【００６６】
なお、本説明では、簡単のために、第１選択手段１と第２選択手段２への入力数を２つとしたが、これに限定されることはない。３つ以上の入力の場合においても、それぞれの入力から抽出するビット数の総和がＡＬＵ４のビット幅以下であれば、任意の入力の数と出力形態（ビットの並び）の組み合わせを決定してよい。
【００６７】
ここで、一般論として展開する。第１選択手段１および第２選択手段２をＫ入力１出力（Ｋは２以上の自然数）とする。また、ＡＬＵ４の取り扱いビット数をＮビット（Ｎは２以上の自然数）とする。第１選択手段１と第２選択手段２は、選択制御信号Ｓｓにより第ｉ番目（ｉは、ｉ≦Ｋを満たす自然数）の入力の所定のＭ［i］ビット（Ｍ［i］は、Σi=1KＭ［i］≦Ｎを満たす整数）を所定の並びに配置して出力する。ＡＬＵ４の入力ビット幅のＮについて、ＮをＫ個に分割する。そのＫ個についてそれぞれのビット幅をＭ［1］，Ｍ［2］…Ｍ［K］とすると、Ｍ［1］＋Ｍ［2］＋…＋Ｍ［K］≦Ｎである。すなわち、Σi=1KＭ［i］≦Ｎである。
【００６８】
例えば、上記のように、Ｋ＝２、Ｎ＝４とすると、Ｍ［1］＋Ｍ［2］≦４が条件式となり、具体的には、
１＋３≦４より、１ビットと３ビットの組み合わせ（順不同）、
１＋２≦４より、１ビットと２ビットの組み合わせ（順不同）、
１＋１≦４より、１ビットと１ビットの組み合わせ（順不同）、
２＋２≦４より、２ビットと２ビットの組み合わせ（順不同）、
がある。
【００６９】
また、例えば、Ｋ＝３、Ｎ＝８とすると、Ｍ［1］＋Ｍ［2］＋Ｍ［3］≦８が条件式となり、具体的には、
１＋１＋６≦８より、１ビットと１ビットと６ビットの組み合わせ（順不同）、
１＋１＋５≦８より、１ビットと１ビットと５ビットの組み合わせ（順不同）、
１＋１＋４≦８より、１ビットと１ビットと４ビットの組み合わせ（順不同）、
１＋１＋３≦８より、１ビットと１ビットと３ビットの組み合わせ（順不同）、
１＋１＋２≦８より、１ビットと１ビットと２ビットの組み合わせ（順不同）、
１＋１＋１≦８より、１ビットと１ビットと１ビットの組み合わせ（順不同）、
１＋２＋５≦８より、１ビットと２ビットと５ビットの組み合わせ（順不同）、
１＋２＋４≦８より、１ビットと２ビットと４ビットの組み合わせ（順不同）、
１＋２＋３≦８より、１ビットと２ビットと３ビットの組み合わせ（順不同）、
１＋２＋２≦８より、１ビットと２ビットと２ビットの組み合わせ（順不同）、
１＋３＋４≦８より、１ビットと３ビットと４ビットの組み合わせ（順不同）、
１＋３＋３≦８より、１ビットと３ビットと３ビットの組み合わせ（順不同）、
２＋２＋４≦８より、２ビットと２ビットと４ビットの組み合わせ（順不同）、
２＋２＋３≦８より、２ビットと２ビットと３ビットの組み合わせ（順不同）、
２＋２＋２≦８より、２ビットと２ビットと２ビットの組み合わせ（順不同）、
２＋３＋３≦８より、２ビットと３ビットと３ビットの組み合わせ（順不同）、
がある。
【００７０】
第１選択手段１および第２選択手段２のそれぞれは、所望のビット数の組み合わせのＫ個の入力データを取り込み、ＡＬＵ４に送り込む。Ｎビット幅の入力を有する１つのＡＬＵ４は、最大で、Ｍ［1］ビットからＭ［K］ビットまでのＫ個の論理演算の入力データを入力する。これらＫ個の互いに独立した論理演算の入力データのそれぞれにつき１つのＡＬＵ４を用いて論理演算を実行することが可能となる。これにより、ＡＬＵの個数を削減し、回路面積を小さくすることが可能となる。
【００７１】
（実施の形態２）
本発明の実施の形態２におけるリコンフィギュラブル回路が実施の形態１におけるリコンフィギュラブル回路と異なる点は、ＡＬＵ４の機能として、図７に示すように、上位側のビットと下位側のビットで行う論理演算が互いに異なる複数種類の論理演算の命令を新たに備えている点であり、それ以外の構成および動作は実施の形態１の場合と同様である。
【００７２】
以下簡単のため、ＡＬＵ４の幅を４ビットとして、上半分すなわち上位２ビットと、下半分すなわち下位２ビットとが互いに異なる複数種類の論理演算の実行が可能として説明する。ただし、その他の組み合わせ、例えば、上位３ビットと下位１ビット、または上位１ビットと下位３ビットでも適宜変更を加えることで同様に実施可能である。
【００７３】
図７に示すとおり、本実施の形態のＡＬＵ４は、３ビットのＡＬＵ制御信号Ｓａが「１１０」の場合、ＡＮＤ／ＯＲ命令、すなわち上位２ビットはＡＮＤ演算を実行し、下位２ビットはＯＲ演算を実行するように再構成される。また、ＡＬＵ制御信号Ｓａが「１１１」の場合、ＯＲ／ＡＮＤ命令、すなわち上位２ビットはＯＲ演算を実行し、下位２ビットはＡＮＤ演算を実行するように再構成される。
【００７４】
この機能により、例えば、下記の２式を１つのＡＬＵ４で実現するように配置配線することができる。簡単のため、ａ′とｂ′とｃ′とｄ′とｅ′とｆ′は、すべて１ビットとする。
【００７５】
ｃ′＝ａ′＆ｂ′  …（ａ′とｂ′の論理積演算）
ｆ′＝ｄ′｜ｅ′  …（ｄ′とｅ′の論理和演算）
この場合、実施の形態１のａをａ′に、ｂをｂ′に、ｃをｃ′に、ｄをｄ′に置き換えて、選択制御手段３が選択制御信号Ｓｓとして「０１」を出力するところは同じである。一方、ＡＬＵ制御手段５は、ＡＬＵ制御信号Ｓａとして「１１０」を出力する。
【００７６】
ＡＬＵ制御信号Ｓａとして「１１０」を入力したＡＬＵ４は、「ＡＮＤ／ＯＲ」回路として再構築され、選択結果ＳＥ１［３：２］と選択結果ＳＥ２［３：２］とのＡＮＤ演算と、選択結果ＳＥ１［１：０］と選択結果ＳＥ２［１：０］とのＯＲ演算とを実行したのち、出力ＯＵＴ［３：０］を出力バスＢ３０に出力する。つまり、出力のビット２には演算結果ｃ′が出力され、出力のビット０には演算結果ｆ′が出力される。
【００７７】
このようにして、２箇所の論理演算が互いに異なる複数種類の論理演算であっても、１つのＡＬＵ４で実行することができる。
【００７８】
なお、本実施の形態では、ＡＬＵ４の新命令としてＡＮＤ／ＯＲ命令と、ＯＲ／ＡＮＤ命令で説明を行ったが、その他の論理演算命令の組み合わせでも同様に実施可能である。また、ビット毎に互いに異なる複数種類の論理演算を実施してもよい。
【００７９】
（実施の形態３）
図８は、本発明の実施の形態３におけるリコンフィギュラブル回路のセルの構成を示すブロック図である。図８のリコンフィギュラブル回路のセル１０の構成が実施の形態１の図４と異なる点は、ＡＬＵ４の出力段に第３選択手段６を備え、図４の出力バスＢ３０が２本になり、第１出力バスＢ３１と第２出力バスＢ３２を備えている点であり、それ以外の構成および動作は実施の形態１の場合と同様である。
【００８０】
第３選択手段６は、ＡＬＵ４の出力ＯＵＴ［３：０］と選択制御信号Ｓｓとを入力し、選択制御信号Ｓｓの値に基づいて、図９に示すような出力形式で第１出力ＯＵＴ１および第２出力ＯＵＴ２を生成する。
【００８１】
例えば、第１出力ＯＵＴ１［３：０］の場合、選択制御信号Ｓｓが「００」の場合は、出力ＯＵＴ［３：０］をそのまま出力し、選択制御信号Ｓｓが「０１」の場合は、上位半分すなわち上位２ビットにゼロ「００」と、下位半分すなわち下位２ビットに出力ＯＵＴ［３：２］とを４ビットに詰め込んだものを出力し、選択制御信号Ｓｓが「１０」の場合は、上位半分すなわち上位２ビットに出力ＯＵＴ［３：２］と、下位半分すなわち下位２ビットにゼロ「００」とを４ビットに詰め込んだものを出力し、選択制御信号Ｓｓが「１１」の場合は、４ビットすべてゼロ「００００」を出力する。
【００８２】
一方、第２出力ＯＵＴ２［３：０］の場合、選択制御信号Ｓｓが「００」の場合は、４ビットすべてゼロ「００００」を出力し、選択制御信号Ｓｓが「０１」の場合は、上位半分すなわち上位２ビットにゼロ「００」と、下位半分すなわち下位２ビットに出力ＯＵＴ［１：０］とを４ビットに詰め込んだものを出力し、選択制御信号Ｓｓが「１０」の場合は、上位半分すなわち上位２ビットに出力ＯＵＴ［１：０］と、下位半分すなわち下位２ビットにゼロ「００」とを４ビットに詰め込んだものを出力し、選択制御信号Ｓｓが「１１」の場合は、出力ＯＵＴ［３：０］をそのまま出力する。
【００８３】
第１出力ＯＵＴ１［３：０］は第１出力バスＢ３１により、第２出力ＯＵＴ２［３：０］は、第２出力バスＢ３２により、それぞれリコンフィギュラブル回路のセル１０の外部へと出力される。
【００８４】
上記動作により、２箇所の論理演算を１つのＡＬＵ４で実施しても、そのセルの入出力ではビット位置が変わることがない。これにより、演算後にビット位置が変わることによる複雑さがなくなるため、回路をより簡略化でき、回路面積を削減することができる。
【００８５】
なお、本説明では、簡単のために、第３選択手段６の出力を第１出力バスＢ３１と第２出力バスＢ３２の２つとしたが、これに限定されることはない。任意の出力の数と出力形態（ビットの並び）の組み合わせを決定してよい。
【００８６】
（実施の形態４）
図１０は、本発明の実施の形態４におけるリコンフィギュラブル回路システムの構成を示すブロック図である。図１０のリコンフィギュラブル回路システムＹ１は、記憶手段３１とシステム制御手段３２とリコンフィギュラブル回路Ｘとを備えている。リコンフィギュラブル回路Ｘとしては、実施の形態１〜３のものが適用可能である。図１０の点線はリコンフィギュラブル回路Ｘを再構築する信号、いわゆる再構築情報（コンフィギュレーションコード）の流れを示し、実線はアプリケーションで処理するデータの流れを示す。再構築情報は、前述の選択制御信号ＳｓとＡＬＵ制御信号Ｓａとである。
【００８７】
記憶手段３１にはあらかじめ、所定のアプリケーションをリコンフィギュラブル回路Ｘに実装するときの再構成情報が格納されおり、システム制御手段３２が記憶手段３１の所定の場所から再構成情報を読み出して、リコンフィギュラブル回路Ｘを再構築することで、アプリケーションの実行が可能となる。
【００８８】
次に、システム制御手段３２は記憶手段３１に蓄積されているデータを読み出してリコンフィギュラブル回路Ｘへ入力する。リコンフィギュラブル回路Ｘは、入力したデータに対して所定の処理を施した後、システム制御手段３２へ出力するか、外部へ出力する。
【００８９】
本実施の形態によれば、リコンフィギュラブル回路システムＹ１を実施の形態１〜３のリコンフィギュラブル回路Ｘで構成しており、アプリケーションを再構築するのに必要なＡＬＵ４の数を少なくできるため、全体として回路面積の小さい安価なリコンフィギュラブル回路システムが実現できる。
【００９０】
なお、記憶手段３１の望ましい形態は、ＲＯＭ（Read Only Memory）、ＲＡＭ（Random Access Memory）、ＦＬＡＳＨメモリなどである。
【００９１】
また、システム制御手段３２の望ましい形態は、マイクロプロセッサなどである。
【００９２】
（実施の形態５）
図１１は、本発明の実施の形態５におけるリコンフィギュラブル回路システムの構成を示すブロック図である。本実施の形態のリコンフィギュラブル回路システムＹ２が実施の形態４（図１０）と異なるところは、ユーザインタフェース手段３３を設けた点であり、それ以外の構成および動作は実施の形態４の場合と同様である。
【００９３】
ユーザインタフェース手段３３は、ユーザによって直接操作されることによりユーザ指示信号を取得するか、または間接的にユーザ指示信号を取得して、ユーザ指示信号をシステム制御手段３２に入力する。
【００９４】
次に、システム制御手段３２はユーザ指示信号に基づいて所定の処理を施し、最適なアプリケーションを選択して、そのアプリケーションに対応した再構築情報を記憶手段３１から読み出してリコンフィギュラブル回路Ｘを再構築する。
【００９５】
例えば、図１２のように、記憶手段３１にはあらかじめ、第１アプリケーションから第Ｍアプリケーション（Ｍは自然数）といった複数のアプリケーションに対応する再構築情報が蓄積されているものとする。システム制御手段３２はユーザ指示信号が「Ｍ」を示すと、第Ｍアプリケーションを再構築するものとして、Ｍ０００番地から再構築情報を読み出してリコンフィギュラブル回路Ｘを再構築する。
【００９６】
このようにして、本実施の形態におけるリコンフィギュラブル回路システムＹ２は、ユーザインタフェース手段３３を設けることで、ユーザ指示信号に基づいて最適なアプリケーションの選択をすることができる。
【００９７】
なお、本実施の形態では複数のアプリケーションの中から１つを選ぶ説明を行ったが、これに限らず、同じアプリケーション上の複数のアルゴリズムやモジュールとしてもよい。
【００９８】
なお、ユーザインタフェース手段３３の望ましい形態は、ユーザが直接操作することができるキーボード、テンキー、タッチセンサ、各種ボタン、各種スイッチなどのほか、ユーザが間接的に操作するＣＣＤ（Charge Coupled Devices）、ＣＭＯＳセンサ、赤外線センサ、顔検出センサ、気温センサなどの各種センシングデバイスで構成されたものである。
【００９９】
（実施の形態６）
図１３は、本発明の実施の形態６におけるリコンフィギュラブル回路システムの構成を示すブロック図である。本実施の形態のリコンフィギュラブル回路システムＹ３が実施の形態４（図１０）と異なるところは、記録媒体３４と、記録媒体読み出し手段３５を設けた点であり、それ以外の構成および動作は実施の形態４の場合と同様である。
【０１００】
記録媒体３４は、音楽情報や映像情報といった各種コンテンツ情報と、コンテンツ情報を処理するのに最適なアプリケーションの再構築情報とが蓄積されている。再構築情報は、前述の選択制御信号ＳｓとＡＬＵ制御信号Ｓａとである。
【０１０１】
記録媒体読み出し手段３５は、記録媒体３４からコンテンツ情報と再構築情報とを読み出し、システム制御手段３２に入力する。
【０１０２】
次に、システム制御手段３２は少なくともコンテンツ情報をデータとして記憶手段３１へ格納し、再構築情報でリコンフィギュラブル回路Ｘを再構築する。
【０１０３】
このようにして、本実施の形態におけるリコンフィギュラブル回路システムＹ３は、記録媒体３４と記録媒体読み出し手段３５を設けることで、コンテンツ情報を処理するのに最適なアプリケーションを実現することができる。
【０１０４】
なお、記録媒体３４の望ましい形態は、ＣＤ（Compact Disc）、ＤＶＤ（Digital Versatile Disc）、ＢＤ（Blue-ray Disc）、ＨＤ−ＤＶＤ（High Definition DVD）、ＳＤメモリカード（Secure Digital memory card）などであり、記録媒体読み出し手段３５の望ましい形態は、ＣＤドライブ、ＤＶＤドライブ、ＢＤドライブ、ＨＤ−ＤＶＤドライブ、ＳＤメモリカードドライブなどの記録媒体３４に対応する各種ドライブや、複数種類の記録媒体に対応するマルチドライブで構成されたものである。
【０１０５】
（実施の形態７）
図１４は、本発明の実施の形態７におけるリコンフィギュラブル回路の配置配線方法を示すフローチャートである。図１４のリコンフィギュラブル回路の配置配線方法は、４つのステップからなる。
【０１０６】
第１ステップは、アプリケーションの回路情報を含むソースコードを入力し、ソースコード中の論理演算箇所を抽出する。
【０１０７】
第２ステップは、抽出した複数の論理演算箇所から、Ｐビット（Ｐは自然数）以下の論理演算を行っている箇所と、Ｑビット（Ｑは自然数）以下の論理演算を行っている箇所を探索する。探索した結果、該当する箇所が存在しないか、１つしか存在しない場合は、第４ステップの「通常の配置配線」処理へジャンプする。
【０１０８】
第３ステップは、探索したＰビット以下の論理演算を行っている箇所における論理演算命令とＱビット以下の論理演算を行っている箇所における論理演算とが同じ論理演算であるかを判定する。判定した結果、互いに異なる複数種類の論理演算であれば、第４ステップの「通常の配置配線」処理へジャンプする。
【０１０９】
第４ステップは、探索および判定したＰビット以下の論理演算を行っている箇所における論理演算命令とＱビット以下の論理演算を行っている箇所における論理演算とを、「１つのＡＬＵに配置配線」を行う。また、第２ステップまたは第３ステップで条件を満たさなかった論理演算部分に対して、「通常の配置配線」を行う。以上のようにして得られた配置配線情報を出力する。ここで、ＡＬＵ４は、Ｒビット幅（Ｒは、Ｒ≧Ｐ＋Ｑを満たす自然数）の入力を有するものとする。
【０１１０】
本実施の形態によれば、１つのＡＬＵに、ＰビットとＱビットの論理演算の配置配線を決定することができる。これにより、ＡＬＵの個数を削減し、回路面積を小さくすることができる。
【０１１１】
なお、本実施の形態では、一般的な説明を行うために、ＰとＱをあえて区別しているが、ＰとＱとは同じであってもよく、ＰとＱを合わせた総和がＡＬＵのビット幅以下であればよい。
【０１１２】
（実施の形態８）
図１５は、本発明の実施の形態８におけるリコンフィギュラブル回路の配置配線方法を示すフローチャートである。本実施の形態のリコンフィギュラブル回路の配置配線方法が実施の形態７（図１４）と異なるところは、第４ステップに第３ステップの判定で条件が非成立の場合の処理を追加した点であり、それ以外の構成および動作は実施の形態７の場合と同様である。
【０１１３】
第４ステップは、探索および判定したＰビット以下の論理演算を行っている箇所における論理演算命令とＱビット以下の論理演算を行っている箇所における論理演算とを、１つのＡＬＵで実行できるように配置配線処理を行う。さらに、第３ステップで条件が成立した場合は、該当するＡＬＵで実行する命令として１種類の論理演算を行う命令を指定する。一方、条件が非成立の場合は、ＡＬＵの上位と下位で互いに異なる複数種類の論理演算を行う命令を指定する。
【０１１４】
このようにして、本実施の形態におけるリコンフィギュラブル回路の配置配線方法は、第４ステップに第３ステップの判定で条件が非成立の場合の処理を追加することで、より効率の良い配置配線を決定することができる。これにより、より一層ＡＬＵの個数を削減し、回路面積を小さくすることができる。
【０１１５】
なお、本実施の形態では、簡単のため第２ステップから第４ステップに至るまで、２箇所の論理演算を１つのＡＬＵに配置配線することについての説明を行ったが、３つ以上であっても適宜変更を加えることで同様に実施可能である。
【０１１６】
（実施の形態９）
図１６は、本発明の実施の形態９におけるリコンフィギュラブル回路の配置配線方法を示すフローチャートである。本実施の形態のリコンフィギュラブル回路の配置配線方法が実施の形態７（図１４）と異なるところは、第１ステップの前段に、外部情報入力ステップとソースコード変更ステップを設けた点であり、それ以外の構成および動作は実施の形態７の場合と同様である。
【０１１７】
例えば、ソースコードとして図１７に示すような初期状態で４ビットの加算器として設計された「Adder」モジュールを、上位モジュールがパラメータを「 #(.WL (8),」とすることで、８ビットの加算器として「Adder」モジュールをインスタンス化している場合を考える。この状態ではリコンフィギュラブル回路には８ビットの加算器として配置配線が決定される。
【０１１８】
外部情報入力ステップは、ユーザインタフェース手段３３などで取得した外部情報を入力し、外部情報に基づいてアプリケーションをより最適化するために、ソースコードの所定の箇所に対して、ソースコード変更情報を生成する。
【０１１９】
例えば、外部情報から本加算器のビット精度として４ビット精度で十分と判断した場合、当該行を「 #(.WL (4),」に置き換えるように、ソースコード変更情報を生成する。例えば、当該行が１０行目ならば、ソースコード変更情報として「10： #(.WL (4),」とする。
【０１２０】
ソースコード変更ステップは、前記ソースコード変更情報に基づいてソースコードの所定の位置を変更し、最適化コードを生成し、これを新たなソースコードとして第１ステップ以降が実行される。
【０１２１】
例えば、ソースコード変更情報として「10： #(.WL (4),」を入力した場合、ソースコード変更ステップは、ソースコードの当該行である１０行目を「#(.WL (4),」に置き換える。
【０１２２】
このようにして、本実施の形態におけるリコンフィギュラブル回路の配置配線方法は、外部情報入力ステップとソースコード変更ステップを追加することで、外部情報に最適なアプリケーション回路を、効率の良い配置配線で実現することができる。
【０１２３】
なお、本実施の形態では、簡単のためパラメータのビット数を変更対象とした場合について説明を行ったが、これに限らずアルゴリズム全体を変更対象としてもよい。
【０１２４】
（実施の形態１０）
図１８は、本発明の実施の形態１０におけるリコンフィギュラブル回路の配置配線方法を示すフローチャートである。本実施の形態のリコンフィギュラブル回路の配置配線方法が実施の形態７（図１４）と異なるところは、第４ステップの後段に故障判定ステップを設けた点であり、それ以外の構成および動作は実施の形態７の場合と同様である。
【０１２５】
故障判定ステップは、あらかじめリコンフィギュラブル回路の故障したセルの位置を示す故障セル位置情報を入力し、その故障セル位置情報と第４ステップの結果から得られた配置配線されたセルの位置情報とを照らし合わせ、一致した場合は、故障セルに配置配線したとして、第４ステップを再度行うようにエラー（Ｅｒｒｏｒ）をフィードバックする。一致しない場合は、故障セルに配置配線しなかったとして、最終的な配置配線情報として出力する。
【０１２６】
故障セル位置情報の一例として、図１９のようにｘ軸、ｙ軸の２次元で示す。ｘ＝４、ｙ＝２の位置のセルが故障している場合、「（４，２）」とする。この状態で、第４ステップの結果、（４，２）のセルに配置配線されたとき、故障判定ステップは、第４ステップにＥｒｒｏｒを返す。
【０１２７】
Ｅｒｒｏｒを受けた第４ステップでは、（４，２）のセル以外のセルで同様に配置配線を決定する。本例では、（３，３）のセルが代わりに選択された場合を示す。
【０１２８】
故障判定ステップは、（３，３）のセルは故障したセルではないため、最終的な配置配線情報として許可する。
【０１２９】
このようにして、本実施の形態におけるリコンフィギュラブル回路の配置配線方法は、故障判定ステップで故障セルの配置配線を除外することで、歩留まりを向上させることができるため、リコンフィギュラブル回路をより安価に提供することができる。
【０１３０】
（実施の形態１１）
図２０は本発明の実施の形態１１におけるリコンフィギュラブル回路Ｘ１の構成を示すブロック図、図２１はリコンフィギュラブル回路Ｘ１の要部の構成を示すブロック図、図２２はリコンフィギュラブル回路のセル１０ａに接続するスイッチ２０ａの構成を示すブロック図、図２３はリコンフィギュラブル回路のセル１０ａの構成を示すブロック図である。図２３に示すリコンフィギュラブル回路のセル１０ａは、図２０に示すリコンフィギュラブル回路Ｘ１においてマトリクス状に配列されるものである。また、図２２に示すスイッチ２０ａは、図２０に示すリコンフィギュラブル回路Ｘ１において、隣接するセル１０ａ間にマトリクス状に配列されるものである。
【０１３１】
図２０に示すリコンフィギュラブル回路Ｘ１は、複数のセル１０ａと複数のスイッチ２０ａとが縦横方向で交互となる状態でマトリックス状に配列されている。各セル１０ａは、基本的要素としてＡＬＵ４を有している。また、各スイッチ２０ａは、基本的要素として第１接続手段２１ａと第２接続手段２２ａを有している。例えば、信号ａを出力するセル１０ａと信号ｄを出力するセル１０ａとが第１接続手段２１ａを介して、注目セル１０ａのＡＬＵ４の一方の入力に入力されている。また、信号ｂを出力するセル１０ａと信号ｅを出力するセル１０ａとが第２接続手段２２ａを介して、ＡＬＵ４の他の入力に入力されている。注目セル１０ａにおいて、ＡＬＵ４は、第１接続手段２１ａから入力した信号ａと第２接続手段２２ａから入力した信号ｂとの論理演算を行い演算結果ｃを出力するとともに、第１接続手段２１ａから入力した信号ｄと第２接続手段２２ａから入力した信号ｅとの論理演算を行い演算結果ｆを出力する。このとき、信号ａと信号ｂとの論理演算と、信号ｄと信号ｅとの論理演算とを１つのＡＬＵ４で共通に行うように構成してある。この複数の論理演算を１つのＡＬＵ４で共通に行うことが、本発明の技術的特徴である。また、本実施の形態においては、実施の形態１の場合の図４に見られたセル１０における第１選択手段１、第２選択手段２および選択制御手段３はなく、代わりに、スイッチ２０ａにおいて、第１接続手段２１ａと第２接続手段２２ａとで、ビットの詰め込みを行っている。以下、図２１〜図２４を用いて順次具体的に説明する。
【０１３２】
スイッチ２０ａは、第１接続手段２１ａと、第２接続手段２２ａと、接続制御手段２３とで構成されている。バスＢ１１、バスＢ１３は、それぞれ他のセルからの信号を入力として伝送する。第１接続手段２１ａは、バスＢ１１からの信号であるＡ［３：０］と、バスＢ１３からの信号であるＣ［３：０］と、接続制御手段２３からの２ビットの接続制御信号Ｓｃとを入力し、所定のビット位置から信号を抜き出して４ビットのデータに詰め込んだ複数の出力形態の中から、接続制御信号Ｓｃの値に基づいて、１つの出力形態に接続し、Ｅ［３：０］を出力する。
【０１３３】
より詳しくは、第１接続手段２１ａは、４つの状態の切り替えを接続制御手段２３からの接続制御信号Ｓｃによって制御するようになっている。第１接続手段２１ａの第１の切替部はバスＢ１１の［３：０］の４ビットとバスＢ２１との接続・分離を行うものであり、第２の切替部はバスＢ１１の［１：０］の２ビットおよびバスＢ１３の［１：０］の２ビットとバスＢ２１との接続・分離を行うものであり、第３の切替部はバスＢ１１の［３：２］の２ビットおよびバスＢ１３の［３：２］の２ビットとバスＢ２１との接続・分離を行うものであり、第４の切替部はバスＢ１３の［３：０］の４ビットとバスＢ２１との接続・分離を行うものである。バスＢ２１は、第１接続手段２１ａの出力Ｅ［３：０］を、外部のセルへ出力する。
【０１３４】
例えば、第１接続手段２１ａの機能として、図２４に示すように、接続制御信号Ｓｃが「００」の場合は、Ａ［３：０］をそのまま出力し、選択制御信号Ｓｓが「０１」の場合は、Ａ［１：０］とＣ［１：０］とを４ビットに詰め込んだものを出力し、選択制御信号Ｓｓが「１０」の場合は、入力Ａ［３：２］と入力Ｃ［３：２］とを４ビットに詰め込んだものを出力し、選択制御信号Ｓｓが「１１」の場合は、入力Ｃ［３：０］をそのまま出力する。
【０１３５】
スイッチ２０ａにおけるバスＢ２１は、第１接続手段２１ａによって出力されたＥ［３：０］をＡＬＵ４の入力ＩＮ１［３：０］として伝送する。
【０１３６】
第２接続手段２２ａも、第１接続手段２１ａと同様の構成となっている。第２接続手段２２ａに対応したバスＢ２３は、第２接続手段２２ａによって出力されたＧ［３：０］をＡＬＵ４の入力ＩＮ２［３：０］として伝送する。
【０１３７】
リコンフィギュラブル回路のセル１０ａは、ＡＬＵ４と、ＡＬＵ制御手段５とで構成されている。ＡＬＵ制御手段５は、ＡＬＵ４で実行する算術論理演算命令を指示する３ビットのＡＬＵ制御信号Ｓａを出力する。
【０１３８】
ＡＬＵ４は、第１接続手段２１ａからバスＢ２１を介しての入力ＩＮ１［３：０］と、第２接続手段２２ａからのバスＢ２３を介しての入力ＩＮ２［３：０］と、ＡＬＵ制御手段５からのＡＬＵ制御信号Ｓａとを入力し、ＡＬＵ制御信号Ｓａの値に基づいて、図７の表に対応した算術論理演算を実行し、その演算結果を出力ＯＵＴ［３：０］として出力バスＢ３０に出力するように構成されている。出力バスＢ３０は、出力ＯＵＴ［３：０］をリコンフィギュラブル回路のセル１０ａ外部へ伝送する。
【０１３９】
次に、上記のように構成された本実施の形態のリコンフィギュラブル回路Ｘ１の動作を説明する。以下では、演算のビット幅として４ビットで構成されたリコンフィギュラブル回路として説明する。ただし、その他のビット幅でも適宜変更を加えることで同様に実施可能である。ここでは、以下の２つの論理演算を実現する場合について説明する。
【０１４０】
ｃ＝ａ＆ｂ  …（ａとｂの論理積演算）
ｆ＝ｄ｜ｅ  …（ｄとｅの論理和演算）
簡単のため、ａとｂとｃとｄとｅとｆは、すべて１ビットとする。
【０１４１】
アプリケーション中の複数の論理演算の中から、共通の論理演算を行っている箇所を見つけ出し、それらの演算ビット幅が２ビット以下のもの同士を１つに詰め込んで４ビットの新たなデータとし、その詰め込まれた４ビットのデータに対して、１つのＡＬＵ４で論理演算を実行する。
【０１４２】
接続制御手段２３は、出力の形態を指示する２ビットの接続制御信号Ｓｃとして「０１」を第１接続手段２１ａおよび第２接続手段２２ａに出力する。接続制御信号Ｓｃとして「０１」を入力した第１接続手段２１ａは、バスＢ１１からのＡ［１：０］とバスＢ１３からのＣ［１：０］とを４ビットに詰め込んだものを出力する。つまり、Ｅ［３：０］のビット２には信号ａが出力され、Ｅ［３：０］のビット０には信号ｄが出力される。
【０１４３】
同様にして、接続制御信号Ｓｃとして「０１」を入力した第２接続手段２２ａは、バスＢ１２からのＢ［１：０］とバスＢ１４からのＤ［１：０］とを４ビットに詰め込んだものを出力する。つまり、Ｇ［３：０］のビット２には信号ｂが出力され、Ｇ［３：０］のビット０には信号ｅが出力される。
【０１４４】
このようにして、２箇所の論理演算を１つのＡＬＵ４で実行することができるため、図２０のように、従来２つ必要であったＡＬＵを１つに削減でき、このような操作をアプリケーション全体に適用することで回路面積の削減を実現する。また、従来少なくとも６つ必要であったセルが５つで済み、また同時に、４つ必要であったスイッチが２つで済む。また、複数の論理演算を効率良く実行することができる。
【０１４５】
なお、本説明では、簡単のために、ａとｂとｃとｄとｅとｆは、すべて１ビットとしたが、これに限定されることはなく、ａとｂとｃとが１ビット、ｄとｅとｆとが２ビットでもよい。また、反対にａとｂとｃとが２ビット、ｄとｅとｆとが１ビットでもよい。さらに、ａとｂとｃとｄとｅとｆとがすべて２ビットでもよい。
【０１４６】
なお、接続制御信号Ｓｃと、その出力形態も図２４に限定されることはなく、例えば、Ａ［２：０］とＣ［０］とを４ビットに詰め込んだものを出力してもよいし、その反対に、Ａ［０］とＣ［２：０］とを４ビットに詰め込んだものを出力してもよい。また、接続制御信号のビット幅も２ビットに限定されることはなく、所要の出力形態の数に合わせて、接続制御信号Ｓｃのビット幅を決定してもよい。
【０１４７】
なお、本説明では、簡単のために、第１接続手段２１ａへの入力として、バスＢ１１とバスＢ１３の２つのバスからのデータを入力としたが、これに限定されることはない。３つ以上のバスからのデータを入力する場合においても、それぞれの入力から抽出するビット数の総和がＡＬＵ４のビット幅以下であれば、任意の入力の数と出力形態（ビットの並び）の組み合わせを決定してよい。
【０１４８】
なお、本説明では、簡単のために、リコンフィギュラブル回路のセル１０ａを図２３に示す構成としたが、図８に示す第３選択手段６と第１出力バスＢ３１と第２出力バスＢ３２と選択制御手段３相当を設けて、ＡＬＵ出力のビット位置の調整を行ってもよい。
【産業上の利用可能性】
【０１４９】
本発明の技術は、複数の論理演算をまとめて１つのＡＬＵで処理できるように配置配線を行う再構成可能なリコンフィギュラブル回路を備えるマルチメディア端末等として有用である。また、ソフトウェア無線装置等の用途にも応用できる。この結果、安価なシステムＬＳＩを提供することが可能となる。
【図面の簡単な説明】
【０１５０】
【図１】本発明の実施の形態１におけるリコンフィギュラブル回路の構成を示すブロック図
【図２】本発明の実施の形態１におけるリコンフィギュラブル回路の要部の構成を示すブロック図
【図３】本発明の実施の形態１におけるリコンフィギュラブル回路のスイッチの構成を示すブロック図
【図４】本発明の実施の形態１におけるリコンフィギュラブル回路のセルの構成を示すブロック図
【図５】本発明の実施の形態１の選択手段の動作を示す図
【図６】本発明の実施の形態１のＡＬＵで実行可能な算術論理演算命令
【図７】本発明の実施の形態２のＡＬＵで実行可能な算術論理演算命令
【図８】本発明の実施の形態３におけるリコンフィギュラブル回路のセルの構成を示すブロック図
【図９】本発明の実施の形態３の選択手段の動作を示す図
【図１０】本発明の実施の形態４におけるリコンフィギュラブル回路システムの構成を示すブロック図
【図１１】本発明の実施の形態５におけるリコンフィギュラブル回路システムの構成を示すブロック図
【図１２】本発明の実施の形態５の記憶手段の内容の一例を示す図
【図１３】本発明の実施の形態６におけるリコンフィギュラブル回路システムの構成を示すブロック図
【図１４】本発明の実施の形態７におけるリコンフィギュラブル回路の配置配線方法の処理の手順を示すフローチャート
【図１５】本発明の実施の形態８におけるリコンフィギュラブル回路の配置配線方法の処理の手順を示すフローチャート
【図１６】本発明の実施の形態９におけるリコンフィギュラブル回路の配置配線方法の処理の手順を示すフローチャート
【図１７】本発明の実施の形態９のソースコードの変更ステップにおいてソースコードが変更される一例を示した図
【図１８】本発明の実施の形態１０におけるリコンフィギュラブル回路の配置配線方法の処理の手順を示すフローチャート
【図１９】本発明の実施の形態１０の故障セルを回避して配置配線が決定される一例を示した図
【図２０】本発明の実施の形態１１におけるリコンフィギュラブル回路の構成を示すブロック図
【図２１】本発明の実施の形態１１におけるリコンフィギュラブル回路の要部の構成を示すブロック図
【図２２】本発明の実施の形態１１におけるリコンフィギュラブル回路のスイッチの構成を示すブロック図
【図２３】本発明の実施の形態１１におけるリコンフィギュラブル回路のセルの構成を示すブロック図
【図２４】本発明の実施の形態１１の接続手段の動作を示す図
【図２５】従来のリコンフィギュラブル回路と配置配線の一例を示すブロック図
【符号の説明】
【０１５１】
１  第１選択手段
２  第２選択手段
３  選択制御手段
４  ＡＬＵ（算術論理回路）
５  ＡＬＵ制御手段
６  第３選択手段
１０，１０ａ  リコンフィギュラブル回路のセル
２０，２０ａ  スイッチ
２１，２１ａ  第１接続手段
２２，２２ａ  第２接続手段
２３  接続制御手段
３１  記憶手段
３２  システム制御手段
３３  ユーザインタフェース手段
３４  記録媒体
３５  記録媒体読み出し手段
Ｓａ  ＡＬＵ制御信号
Ｓｃ  接続制御信号
Ｓｓ  選択制御信号
Ｘ，Ｘ１  リコンフィギュラブル回路
Ｙ１〜Ｙ３  リコンフィギュラブル回路システム
【図１】
2008235992.tif 000003
【図２】
2008235992.tif 000004
【図３】
2008235992.tif 000005
【図４】
2008235992.tif 000006
【図５】
2008235992.tif 000007
【図６】
2008235992.tif 000008
【図７】
2008235992.tif 000009
【図８】
2008235992.tif 000010
【図９】
2008235992.tif 000011
【図１０】
2008235992.tif 000012
【図１１】
2008235992.tif 000013
【図１２】
2008235992.tif 000014
【図１３】
2008235992.tif 000015
【図１４】
2008235992.tif 000016
【図１５】
2008235992.tif 000017
【図１６】
2008235992.tif 000018
【図１７】
2008235992.tif 000019
【図１８】
2008235992.tif 000020
【図１９】
2008235992.tif 000021
【図２０】
2008235992.tif 000022
【図２１】
2008235992.tif 000023
【図２２】
2008235992.tif 000024
【図２３】
2008235992.tif 000025
【図２４】
2008235992.tif 000026
【図２５】
2008235992.tif 000027