(57)【要約】【課題】回路構成を再構成可能であって、パイプライン処理と逐次処理を同時に且つ効率良く実行可能な半導体集積回路を提供する。【解決手段】外部プログラムのデコード結果に応じて回路構成を再構成可能な複数の処理部を備えた半導体集積回路にて、内部プログラムを記憶する第１処理部、内部プログラムの命令をデコードして制御信号を生成する第２処理部、制御信号を受けて処理を行う第３処理部、第１の記憶領域と第２の記憶領域を有する第４処理部を備え、第１動作モードでは、第４処理部の一方の記憶領域は第１〜第４処理部からなる第１のネットワーク構成に接続されて第３処理部の処理結果を保持し、他方の記憶領域は第２のネットワーク構成に接続されるようにして、第１及び第２のネットワーク構成により逐次処理及びパイプライン処理をそれぞれ実行でき、かつ第４処理部を同時にアクセスできるようにする。【選択図】図２
2010087880.tif 000002
【特許請求の範囲】
【請求項１】
外部プログラムのデコード結果に応じて、回路構成を再構成可能な複数の処理部を備え、
前記複数の処理部は、
内部プログラムを記憶する第１処理部と、
前記第１処理部から供給される前記内部プログラムの命令をデコードして制御信号を生成する第２処理部と、
前記第２処理部からの前記制御信号を受け、当該制御信号に応じた処理を実行する第３処理部と、
第１の記憶領域と第２の記憶領域とを有する第４処理部とを含み、
第１動作モードにて、前記第１〜第４処理部を有する特定の第１のネットワーク構成が構築され、
前記第１の記憶領域及び前記第２の記憶領域の一方の記憶領域は、前記第１のネットワーク構成に接続され前記第３処理部の処理結果を保持し、
前記第１の記憶領域及び前記第２の記憶領域の他方の記憶領域は、前記第１のネットワークとは別の第２のネットワーク構成に接続されることを特徴とする半導体集積回路。
【請求項２】
前記第１動作モードにて、前記第１〜第４処理部は、１つのプロセッサを構成し前記内部プログラムに従い処理を行うことを特徴とする請求項１記載の半導体集積回路。
【請求項３】
第２動作モードにて、前記第１〜第４処理部及び他の処理部を有する第３のネットワーク構成が構成され、
前記外部プログラムのデコード結果に応じた処理を実行することを特徴とする請求項１又は２記載の半導体集積回路。
【請求項４】
前記第１の記憶領域と前記第２の記憶領域は、前記第１のネットワーク構成及び前記第２のネットワーク構成から独立して同時にアクセスされることを特徴とする請求項１〜３の何れか１項に記載の半導体集積回路。
【請求項５】
前記第４処理部は、
前記第１の記憶領域及び前記第２の記憶領域を前記第１のネットワーク構成又は前記第２のネットワーク構成に接続するための選択部を有することを特徴とする請求項１〜３の何れか１項に記載の半導体集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路に関し、詳しくは回路構成を再構成可能な半導体集積回路に関する。
【背景技術】
【０００２】
従来、ＬＳＩ等の半導体集積回路は、一般に要求仕様として予め決められた処理を実行するようにＡＮＤゲートやＯＲゲート等の配置及びそれらに係る配線を設計工程で決定し、要求仕様に応じた処理を実行可能な半導体集積回路を製造している。つまり、従来の半導体集積回路において所望の機能を実現しようとする場合には、回路構成（論理構成）についての設計がゲート単位（ゲートレベル）で行われ、その機能を実現する半導体集積回路が製造されている。
【０００３】
しかし、上述のような半導体集積回路は、その回路構成が設計工程にて固定されるため、仕様変更等により異なる要求仕様に応じた処理を実行しようとすると、その都度設計及び製造のすべてを行う必要がある。したがって、多大な労力及び時間を要するとともに、開発コストも高い。
【０００４】
この問題を解決する１つの方法として、製造後であっても、論理を再構成し実行する処理を変更可能にしたリコンフィギュラブルＬＳＩと呼ばれる動的に再構成可能な半導体集積回路がある（例えば、特許文献１〜３参照。）
【０００５】
図８は、従来のリコンフィギュラブルＬＳＩの構成を示す図である。
図８において、ＣＰＵ８１は、図示しないＲＯＭ等の記憶装置から供給されるプログラムを実行し、リコンフィギュラブルＬＳＩ内の各構成部を総括的に制御する。例えば、ＣＰＵ８１は、リコンフィギュラブル回路部８６内のプロセッシングエレメント（ＰＥ：Processing Element）８７やセレクタ８８を制御するためのコンフィグレーションデータをリコンフィギュラブル回路部８６に供給する。
【０００６】
ＲＡＭ８２は、例えばＣＰＵ８１の主メモリ又はワークエリア等として機能するメモリである。リコンフィグインタフェース部８３は、リコンフィギュラブル回路部８６内のネットワークＮＷに対するデータの入出力を行う。
ＣＰＵ８１、ＲＡＭ８２、及びリコンフィグインタフェース部８３は、アドレスバス８４及びデータバス８５に接続され、互いに通信可能に構成されている。
【０００７】
リコンフィギュラブル回路部８６は、複数のＰＥ８７とそれに対応するセレクタ８８を有する。また、リコンフィギュラブル回路部８６は、データを入出力するためのネットワークＮＷを有しており、任意のＰＥ８７からのデータや外部からのデータを各ＰＥ８７に対して入力可能である。
【０００８】
ＰＥ８７及びセレクタ８８は、供給されるコンフィグレーションデータによって制御される。ＰＥ８７は、コンフィグレーションデータに応じて、ＡＬＵ（算術論理演算装置）、ＲＡＭ（メモリ）、ディレイ回路（遅延回路）、カウンタ等の機能を実現する。
【０００９】
また、セレクタ８８は、コンフィグレーションデータに応じて、ネットワークＮＷを介して供給される各ＰＥ８７等からのデータの中から、対応するＰＥ８７に入力するデータを選択する。言い換えれば、セレクタ８８は、コンフィグレーションデータに応じて、対応するＰＥ８７に接続するネットワークを選択する。
【００１０】
【特許文献１】特開２００４−２２１９９６号公報
【特許文献２】特開２００４−２２１９９７号公報
【特許文献３】特開２００２−２０８６３８号公報
【発明の開示】
【発明が解決しようとする課題】
【００１１】
リコンフィギュラブルＬＳＩは、外部からのコンフィグレーション設定により実行する動作が変更可能であり、パイプライン構成により良好なパフォーマンスを得やすい、またそのネットワーク構成に基づきパラレル処理を実行しやすいといった特徴がある。しかしながら、リコンフィギュラブルＬＳＩは、実行する動作を変更する場合には、一部分だけを変更したい場合であっても、全体に対して変更に係る設定動作を行わなければならず効率が悪い、また逐次処理には適していないといった問題があった。
【００１２】
本発明は、回路構成を再構成可能であって、パイプライン処理と逐次処理とを同時に且つ効率良く実行可能な半導体集積回路を提供することを目的とする。
【課題を解決するための手段】
【００１３】
本発明の一観点によれば、外部プログラムのデコード結果に応じて回路構成を再構成可能な複数の処理部を備え、複数の処理部は、第１処理部、第２処理部、第３処理部、及び第４処理部を含む半導体集積回路が提供される。第１処理部は内部プログラムを記憶し、第２処理部は供給される内部プログラムの命令をデコードして制御信号を生成し、第３処理部は制御信号を受けてそれに応じた処理を実行し、第４処理部は第１の記憶領域と第２の記憶領域を有する。第１動作モードにて、第１〜第４処理部を有する特定の第１のネットワーク構成が構築され、第１の記憶領域及び第２の記憶領域の一方の記憶領域は第１のネットワーク構成に接続されて第３処理部の処理結果を保持し、他方の記憶領域は第２のネットワーク構成に接続される。
【発明の効果】
【００１４】
本発明によれば、第１動作モードでは、複数の処理部のうちの第１〜第４処理部を有する第１のネットワーク構成により逐次処理を実行し、第１のネットワーク構成とは別の第２のネットワーク構成によりパイプライン処理を実行することが可能になる。また、第４処理部が有する第１の記憶領域及び第２の記憶領域の一方の記憶領域を第１のネットワーク構成からアクセスし、他方の記憶領域を第２のネットワーク構成からアクセスすることが可能になる。したがって、パイプライン処理と逐次処理とを同時に且つ効率良く実行することができる。
【発明を実施するための最良の形態】
【００１５】
以下、本発明の実施形態を図面に基づいて説明する。
【００１６】
図１は、本発明の一実施形態に係る半導体集積回路の構成例を示す図である。本実施形態に係る半導体集積回路は、いわゆるリコンフィギュラブルＬＳＩであり、プログラムのデコード結果に応じて動的に回路構成が再構成可能である。
【００１７】
図１において、ＣＰＵ１は、図示しないＲＯＭ等の記憶装置から供給されるプログラム（外部プログラム）を実行し、半導体集積回路内の各構成部を統括的に制御する。例えば、ＣＰＵ１は、回路構成を制御するためのコンフィグレーションデータをリコンフィギュラブル回路部１０に供給する。
【００１８】
ＲＡＭ２は、例えばＣＰＵ１の主メモリ又はワークエリア等として機能するメモリである。リコンフィグインタフェース部３は、リコンフィギュラブル回路部１０内のネットワークＮＷに対するデータの入出力を行う。
ＣＰＵ１、ＲＡＭ２、及びリコンフィグインタフェース部３は、アドレスバス４及びデータバス５に接続され、互いに通信可能に構成されている。
【００１９】
リコンフィギュラブル回路部１０は、回路構成を再構成可能な複数の処理部を有し、各処理部は、ＣＰＵ１からのコンフィグレーションデータに応じた処理を実行するプロセッシングエレメント（ＰＥ：Processing Element）１１及びセレクタ１２を有する。ＰＥ１１は、コンフィグレーションデータに応じて、例えばＡＬＵ（算術論理演算装置）、ＲＡＭ（メモリ）、ディレイ回路（遅延回路）、カウンタ等の機能を実現する。
【００２０】
また、本実施形態では、ＰＥ１１に換えて、シーケンスＰＥ２１、ＲＡＭ（ＰＥ）２２、ＡＬＵ（ＰＥ）２３、及びＲＡＭ（ＰＥ）２４を有する処理部もある。
ここで、シーケンスＰＥ２１は、特定の動作モード（第１動作モード）での動作時に、ＲＩＳＣのようなプロセッサ動作を実現させるためのＰＥである。同様に、第１動作モードでの動作時に、ＲＡＭ（ＰＥ）２２は内部プログラムを記憶するプログラムメモリとして機能し、ＡＬＵ（ＰＥ）２３はシーケンスＰＥ２１からの指示に基づいて動作するＡＬＵ（算術論理演算装置）として機能する。また、第１動作モードでの動作時に、ＲＡＭ（ＰＥ）２４は内部プログラムの実行処理に係るデータを記憶するデータメモリとして機能する。
【００２１】
これにより、第１動作モードでの動作時には、シーケンスＰＥ２１、ＲＡＭ（ＰＥ）２２、ＡＬＵ（ＰＥ）２３、及びＲＡＭ（ＰＥ）２４を有する処理部により、極小的なプロセッサに相当する回路（第１のネットワーク構成）が構築される。このシーケンスＰＥ２１、ＲＡＭ（ＰＥ）２２、ＡＬＵ（ＰＥ）２３、及びＲＡＭ（ＰＥ）２４を有する処理部により、内部プログラムに基づく逐次処理（ＲＩＳＣのようなプロセッサ動作）が実行可能である。なお、図１には図示していないが、第１動作モードでの動作時には、上述した動作を実現させるために、シーケンスＰＥ２１、ＲＡＭ（ＰＥ）２２、ＡＬＵ（ＰＥ）２３、及びＲＡＭ（ＰＥ）２４を有する処理部からなる特別のネットワークを形成するようにしても良い。
【００２２】
なお、通常の動作モード（第２動作モード）での通常動作時には、シーケンスＰＥ２１、ＲＡＭ（ＰＥ）２２、ＡＬＵ（ＰＥ）２３、及びＲＡＭ（ＰＥ）２４は、ＰＥ１１と同様にコンフィグレーションデータに応じて、例えばＡＬＵ、ＲＡＭ、ディレイ回路、カウンタ等の機能を実現する。
【００２３】
また、リコンフィギュラブル回路部１０は、データを入出力するためのネットワークＮＷを有しており、任意のＰＥ（シーケンスＰＥ等を含む。）からのデータや外部からのデータを各ＰＥ（シーケンスＰＥ等を含む。）に対して入力可能である。
【００２４】
セレクタ１２は、コンフィグレーションデータに応じて制御され、ネットワークＮＷを介して供給される各ＰＥ等（シーケンスＰＥ等を含む。）からのデータの中から、対応するＰＥに入力するデータを選択する。言い換えれば、セレクタ１２は、コンフィグレーションデータに応じて、対応するＰＥに接続するネットワークを選択する。
【００２５】
図２は、シーケンスＰＥ２１の構成例を示す図である。
シーケンスＰＥ２１は、カウンタ・アドレス生成部３１、命令解析・制御信号生成部３２、セレクタ３３、及びレジスタ３４を有する。
【００２６】
カウンタ・アドレス生成部３１は、カウンタ機能を有する。カウンタ・アドレス生成部３１は、制御信号ＳＣＩに基づき、第１動作モードでの動作時にはプログラムカウンタとして動作し、第２動作モードでの動作時にはカウンタ回路等として使用される。すなわち、カウンタ・アドレス生成部３１は、第１動作モードでの動作時には、ＲＡＭ（ＰＥ）２２内の内部プログラムの保存先を指定し、ＲＡＭ（ＰＥ）２２に記憶された内部プログラムを読み出すためのカウンタとして機能する。
【００２７】
命令解析・制御信号生成部３２は、ＲＡＭ（ＰＥ）２２から供給される（ＲＡＭ（ＰＥ）２２から取り出した）内部プログラムの命令をデコードして制御信号（ＳＣＯ）を生成して出力する。命令解析・制御信号生成部３２から出力される制御信号（ＳＣＯ）は、ＲＡＭ（ＰＥ）２２、ＡＬＵ（ＰＥ）２３、ＲＡＭ（ＰＥ）２４、カウンタ・アドレス生成部３１、セレクタ３３、及びレジスタ３４に適宜入力される。
【００２８】
セレクタ３３は、命令解析・制御信号生成部３２からの制御信号（ＳＣＩ）に基づいて、ＡＬＵ（ＰＥ）２３での演算対象（データ）を選択する。
【００２９】
レジスタ３４は、命令解析・制御信号生成部３２からの制御信号（ＳＣＩ）に応じてＡＬＵ（ＰＥ）２３での演算結果等を格納する汎用レジスタである。なお、レジスタ３４の数及び格納容量は任意である。
【００３０】
ここで、カウンタ・アドレス生成部３１、ＲＡＭ（ＰＥ）２２、ＡＬＵ（ＰＥ）２３及びＲＡＭ（ＰＥ）２４には、セレクタＳＥＬ１、ＳＥＬ２、ＳＥＬ３、ＳＥＬ４が対応して設けられている。セレクタＳＥＬ１、ＳＥＬ２、ＳＥＬ３、ＳＥＬ４は、ＣＰＵ１からのコンフィグレーションデータ又は命令解析・制御信号生成部３２からの制御信号（ＳＣＩ）の一方を選択し出力する。セレクタＳＥＬ１、ＳＥＬ２、ＳＥＬ３、ＳＥＬ４は、外部からの設定等に応じて、第１動作モード時には命令解析・制御信号生成部３２からの制御信号（ＳＣＩ）を出力し、第２動作モード時にはＣＰＵ１からのコンフィグレーションデータを出力する。
【００３１】
図３は、ＲＡＭ（ＰＥ）２４の構成例を示す図である。
ＲＡＭ（ＰＥ）２４は、ＲＡＭ選択制御部４１、データ記憶領域（ＲＡＭ−Ａ、ＲＡＭ−Ｂ）４２、４３、及びセレクタＳＥＬ５〜ＳＥＬ１０を有する。
【００３２】
図３において、ＡＤＳは、シーケンスＰＥ２１を有する処理部等が内部プログラムに従い処理を行う場合にシーケンスＰＥ２１からＲＡＭ（ＰＥ）２４に入力されるアドレスである。ＤＩＳ及びＤＯＳは、シーケンスＰＥ２１を有する処理部等が内部プログラムに従い処理を行う場合にシーケンスＰＥ２１とＲＡＭ（ＰＥ）２４との間で入出力される入力データ及び出力データである。ＡＤＮは、ＲＡＭ（ＰＥ）２４が通常のＲＡＭとして使用される場合のＲＡＭ（ＰＥ）２４に入力されるアドレスであり、ＤＩＮ及びＤＯＳは、ＲＡＭ（ＰＥ）２４が通常のＲＡＭとして使用される場合のＲＡＭ（ＰＥ）２４に対する入力データ及び出力データである。
【００３３】
ＲＡＭ選択制御部４１は、第１動作モードでの動作時に、何れのデータ記憶領域（ＲＡＭ−Ａ、ＲＡＭ−Ｂ）４２、４３を、シーケンスＰＥ２１を有する処理部等によって実行される内部プログラムの処理に係るデータメモリとして使用するかを選択制御する。ＲＡＭ選択制御部４１は、切替選択レジスタ４０に設定された設定値及びアドレスＡＤＮに基づいて、データメモリとして使用するデータ記憶領域を選択する。
【００３４】
本実施形態では、ＲＡＭ選択制御部４１は、内部プログラムの処理に係るデータメモリとして、データ記憶領域（ＲＡＭ−Ａ、ＲＡＭ−Ｂ）４２、４３の両方の記憶領域を使用するか一方の記憶領域を使用するかを、切替選択レジスタ４０の設定値に応じて選択する。さらに、ＲＡＭ選択制御部４１は、データ記憶領域（ＲＡＭ−Ａ、ＲＡＭ−Ｂ）４２、４３における一方の記憶領域を内部プログラムの処理に係るデータメモリとして使用する場合には、アドレスＡＤＮに基づいてデータメモリとして使用する記憶領域を選択する。
【００３５】
例えば、ＲＡＭ選択制御部４１は、図４に示すようにインバータ５１、５２、５３、ＡＮＤ（論理積演算）回路５４、５５、ＯＲ（論理和演算）回路５６、５７により構成される。インバータ５１、５２は切替選択レジスタ４０の出力（設定値）が入力され、インバータ５３はアドレスＡＤＮの最上位ビット（ＭＳＢ）が入力される。ＡＮＤ回路５４は、インバータ５１の出力及びアドレスＡＤＮの最上位ビット（ＭＳＢ）が入力され、ＡＮＤ回路５５は、インバータ５２の出力及びインバータ５３の出力が入力される。
【００３６】
ＯＲ回路５６は、切替選択レジスタ４０の出力（設定値）及びＡＮＤ回路５４の出力が入力され、ＯＲ回路５７は、切替選択レジスタ４０の出力（設定値）及びＡＮＤ回路５５の出力が入力される。ＯＲ回路５６の出力が“１”であるとき、データ記憶領域（ＲＡＭ−Ａ）４２は、内部プログラムの処理に係るデータメモリとして選択される。また、ＯＲ回路５７の出力が“１”であるとき、データ記憶領域（ＲＡＭ−Ｂ）４３は、内部プログラムの処理に係るデータメモリとして選択される。
【００３７】
すなわち、切替選択レジスタ４０の設定値が“１”である場合には、アドレスＡＤＮの最上位ビット（ＭＳＢ）にはかかわらず、データ記憶領域（ＲＡＭ−Ａ、ＲＡＭ−Ｂ）４２、４３が内部プログラムの処理に係るデータメモリとして選択される。一方、切替選択レジスタ４０の設定値が“０”であり、かつアドレスＡＤＮの最上位ビット（ＭＳＢ）が“１”である場合には、データ記憶領域（ＲＡＭ−Ａ）４２が内部プログラムの処理に係るデータメモリとして選択される。また、切替選択レジスタ４０の設定値が“０”であり、かつアドレスＡＤＮの最上位ビット（ＭＳＢ）が“０”である場合には、データ記憶領域（ＲＡＭ−Ｂ）４３が内部プログラムの処理に係るデータメモリとして選択される。なお、図４に示したＲＡＭ選択制御部４１は、一例でありこれに限定されるものではない。
【００３８】
図３に戻り、セレクタＳＥＬ５は、ＲＡＭ選択制御部４１の制御に応じてアドレスＡＤＮ又はアドレスＡＤＳの一方を選択し、データ記憶領域（ＲＡＭ−Ａ）４２に出力する。セレクタＳＥＬ６は、ＲＡＭ選択制御部４１の制御に応じて入力データＤＩＮ又は入力データＤＩＳの一方を選択し、データ記憶領域（ＲＡＭ−Ａ）４２に出力する。
【００３９】
同様に、セレクタＳＥＬ７は、ＲＡＭ選択制御部４１の制御に応じてアドレスＡＤＮ又はアドレスＡＤＳの一方を選択し、データ記憶領域（ＲＡＭ−Ｂ）４３に出力する。セレクタＳＥＬ８は、ＲＡＭ選択制御部４１の制御に応じて入力データＤＩＮ又は入力データＤＩＳの一方を選択し、データ記憶領域（ＲＡＭ−Ｂ）４３に出力する。
【００４０】
また、セレクタＳＥＬ９は、ＲＡＭ選択制御部４１の制御に応じてデータ記憶領域（ＲＡＭ−Ａ、ＲＡＭ−Ｂ）４２、４３の出力の一方を選択し、出力データＤＯＮとして出力する。セレクタＳＥＬ１０は、ＲＡＭ選択制御部４１の制御に応じてデータ記憶領域（ＲＡＭ−Ａ、ＲＡＭ−Ｂ）４２、４３の出力の一方を選択し、出力データＤＯＳとして出力する。
【００４１】
このように、本実施形態におけるＲＡＭ（ＰＥ）２４は、内部のメモリ空間を２つのメモリ空間、すなわちデータ記憶領域（ＲＡＭ−Ａ、ＲＡＭ−Ｂ）４２、４３に分割して構成される。そして、切替選択レジスタ４０の設定値等に応じて、シーケンスＰＥ２１を有する処理部等によって実行される内部プログラムの処理に係るデータメモリとして使用するデータ記憶領域を切り替えることが可能となっている。なお、切替選択レジスタ４０の設定値は、例えばＣＰＵ１により書き込むことが可能なように構成されている。
【００４２】
例えば、切替選択レジスタ４０の設定値が“１”である場合には、データ記憶領域（ＲＡＭ−Ａ、ＲＡＭ−Ｂ）４２、４３の両方が内部プログラムの処理に係るデータメモリとして選択される。一方、切替選択レジスタ４０の設定値が“０”であり、かつアドレスＡＤＮのＭＳＢが“１”である場合には、データ記憶領域（ＲＡＭ−Ａ）４２が内部プログラムの処理に係るデータメモリとして選択される。また、切替選択レジスタ４０の設定値が“０”であり、かつアドレスＡＤＮのＭＳＢが“０”である場合には、データ記憶領域（ＲＡＭ−Ｂ）４３が内部プログラムの処理に係るデータメモリとして選択される。
【００４３】
ここで、切替選択レジスタ４０の設定値が“０”である場合には、データ記憶領域（ＲＡＭ−Ａ、ＲＡＭ−Ｂ）４２、４３のうち内部プログラムの処理に係るデータメモリとして選択されたデータ記憶領域とは別のデータ記憶領域は、通常のＲＡＭとして機能する。つまり、第１動作モードにおいて、内部プログラムの処理に係るデータメモリとして選択されたデータ記憶領域とは別のデータ記憶領域は、ＣＰＵ１からのコンフィグレーションデータに応じて所定の機能を実現するＰＥ１１（第２のネットワーク構成）からアクセス可能である。すなわち、データ記憶領域（ＲＡＭ−Ａ、ＲＡＭ−Ｂ）４２、４３は、第１のネットワーク構成及び第２のネットワーク構成から独立して同時にアクセスすることができる。
【００４４】
したがって、第１動作モードでの動作時に、シーケンスＰＥ２１を有する処理部等で行われる逐次処理と、ＰＥ１１を有する他の処理部で行われるパイプライン処理との間で、ＲＡＭ（ＰＥ）２４を介してデータの授受を行う場合のオーバーヘッドを軽減することができる。すなわち、逐次処理にてアクセスするデータ記憶領域とパイプライン処理にてアクセスするデータ記憶領域とを適宜交換し、一方のデータ記憶領域から逐次処理の結果を読み出してパイプライン処理を実行するとともに、他方のデータ記憶領域に逐次処理の実行結果を書き込むことを同時に行うことができる。
【００４５】
次に、図１に示した半導体集積回路の動作について説明する。
【００４６】
まず、通常動作時である第２動作モードでの動作について説明する。
図５は、図１に示した半導体集積回路の第２動作モード時の動作を説明するための図である。この図５において、図１に示した構成要素と同一の構成要素には同一の符号を付し、重複する説明は省略する。
【００４７】
図５において、ＣＲはＣＰＵ１からのコンフィグレーションデータを記憶するコンフィグレーションレジスタである。ＳＥＬ１１、ＳＥＬ２１、ＳＥＬ３１、ＳＥＬ４１は、コンフィグレーションレジスタＣＲより出力されるコンフィグレーションデータ又はシーケンスＰＥ２１からの制御信号の一方を選択するセレクタである。セレクタＳＥＬ１１、ＳＥＬ２１、ＳＥＬ３１、ＳＥＬ４１は、第２動作モード時にはコンフィグレーションレジスタＣＲより出力されるコンフィグレーションデータを選択して出力する。
【００４８】
また、ＳＥＬ１２、ＳＥＬ１３、ＳＥＬ２２、ＳＥＬ２３、ＳＥＬ３２、ＳＥＬ３３、ＳＥＬ４２、ＳＥＬ４３は、入力データを選択するためのセレクタである。セレクタＳＥＬ１２、ＳＥＬ１３、ＳＥＬ２２、ＳＥＬ２３、ＳＥＬ３２、ＳＥＬ３３、ＳＥＬ４２、ＳＥＬ４３は、第２動作モード時にはセレクタ１２を介して供給されるネットワークＮＷからのデータを選択し出力する。
【００４９】
すなわち、第２動作モード時においては、ＰＥ１１にはＣＰＵ１からのコンフィグレーションデータが供給されるとともに、セレクタ１２を介してネットワークＮＷからのデータが入力される。また、ＰＥ１１と同様に、シーケンスＰＥ２１、ＲＡＭ（ＰＥ）２２、ＡＬＵ（ＰＥ）２３、及びＲＡＭ（ＰＥ）２４には、対応するセレクタを介してＣＰＵ１からのコンフィグレーションデータがそれぞれ供給される。また、シーケンスＰＥ２１、ＲＡＭ（ＰＥ）２２、ＡＬＵ（ＰＥ）２３、及びＲＡＭ（ＰＥ）２４には、セレクタ１２及び対応するセレクタを介してネットワークＮＷからのデータが入力される。これにより、第２動作モード時においては、各ＰＥ（シーケンスＰＥ等を含む。）では、ＣＰＵ１からのコンフィグレーションデータに応じて回路構成が再構成されてネットワークＮＷからの入力データに対する処理（パイプライン処理等）が実行される。
【００５０】
次に、シーケンスＰＥ２１、ＲＡＭ（ＰＥ）２２、ＡＬＵ（ＰＥ）２３、及びＲＡＭ（ＰＥ）２４の処理部によりプロセッサ動作を実現する第１動作モードでの動作について説明する。
【００５１】
図６は、図１に示した半導体集積回路の第１動作モード時の動作を説明するための図である。この図６において、図１及び図５に示した構成要素と同一の構成要素には同一の符号を付し、重複する説明は省略する。
【００５２】
第１動作モード時においては、ＰＥ１１にはＣＰＵ１からのコンフィグレーションデータが供給されるとともに、セレクタ１２を介してネットワークＮＷからのデータが入力される。
【００５３】
また、シーケンスＰＥ２１、ＲＡＭ（ＰＥ）２２、ＡＬＵ（ＰＥ）２３、及びＲＡＭ（ＰＥ）２４には、セレクタＳＥＬ１１、ＳＥＬ２１、ＳＥＬ３１、ＳＥＬ４１を介してシーケンスＰＥ２１からの制御信号が入力される。したがって、シーケンスＰＥ２１、ＲＡＭ（ＰＥ）２２、ＡＬＵ（ＰＥ）２３、及びＲＡＭ（ＰＥ）２４は、プロセッサ動作において各処理部が担う機能を実現するように制御される。
【００５４】
シーケンスＰＥ２１は、内部のカウンタ・アドレス生成部３１のカウンタ値等に基づいて、フェッチアドレスｆａｄをＲＡＭ（ＰＥ）２２に対して出力する。シーケンスＰＥ２１からのフェッチアドレスｆａｄは、セレクタＳＥＬ２３を介してＲＡＭ（ＰＥ）２２に入力され、それに応じた命令ｉｎｓがＲＡＭ（ＰＥ）２２からセレクタＳＥＬ１２を介してシーケンスＰＥ２１に供給される。
【００５５】
シーケンスＰＥ２１は、供給される命令ｉｎｓを内部の命令解析・制御信号生成部３２でデコードし、デコード結果に応じた制御信号をＲＡＭ（ＰＥ）２２、ＡＬＵ（ＰＥ）２３、及びＲＡＭ（ＰＥ）２４に供給する。
【００５６】
ＡＬＵ２３には、シーケンスＰＥ２１からセレクタＳＥＬ３２、ＳＥＬ３３を介して入力データｄｉｎ１、ｄｉｎ２が入力される。ＡＬＵ２３は、入力されたデータｄｉｎ１、ｄｉｎ２を用いて、シーケンスＰＥ２１からの制御信号に応じた演算処理を実行し、演算結果を出力データｄｏｕｔとしてシーケンスＰＥ２１に出力する。
【００５７】
また、ＲＡＭ２４には、シーケンスＰＥ２１からセレクタＳＥＬ４３を介してアドレスａｄｄが入力される。ＲＡＭ２４は、シーケンスＰＥ２１からの制御信号に応じて、入力されるアドレスａｄｄにセレクタＳＥＬ４２を介して入力されるデータｄｔｉを書き込んだり、アドレスａｄｄから読み出したデータを出力データｄｔｏとしてシーケンスＰＥ２１に出力したりする。
【００５８】
以上のような制御により、シーケンスＰＥ２１、ＲＡＭ（ＰＥ）２２、ＡＬＵ（ＰＥ）２３、及びＲＡＭ（ＰＥ）２４により、ＲＩＳＣのようなプロセッサ動作が実現され、内部プログラムに応じた逐次処理が実行される。
【００５９】
本実施形態によれば、第２動作モード（通常動作）時には、シーケンスＰＥ２１等を含む各ＰＥが、ＣＰＵ１からのコンフィグレーションデータに応じて回路構成を再構成して所望の処理を実行する。第１動作モード時には、シーケンスＰＥ２１、ＲＡＭ（ＰＥ）２２、ＡＬＵ（ＰＥ）２３、及びＲＡＭ（ＰＥ）２４により極小的にプロセッサに相当する構成（第１のネットワーク構成）を構築して内部プログラムに応じたプロセッサ動作（逐次処理）を実行する。また、第１動作モード時には、各ＰＥ１１が、ＣＰＵ１からのコンフィグレーションデータに応じて回路構成を再構成して所望の処理を実行する。
【００６０】
これにより、動的に回路構成を再構成可能なリコンフィギュラブルＬＳＩにて、パイプライン処理と逐次処理とを同時に実行することができ動作効率を向上させることができる。また、実行する動作の一部分だけを変更するような場合には、その変更させる動作を含む処理を、シーケンスＰＥ２１、ＲＡＭ（ＰＥ）２２、ＡＬＵ（ＰＥ）２３、及びＲＡＭ（ＰＥ）２４によるプロセッサ動作で実現することにより、変更に係る全体での設定動作を行う必要がなくなり効率を高めることができる。
【００６１】
また、ＲＡＭ（ＰＥ）２４内のデータ記憶領域を２つのデータ記憶領域（ＲＡＭ−Ａ，ＲＡＭ−Ｂ）４２、４３に分割する。そして、一方のデータ記憶領域にシーケンスＰＥ２１、ＲＡＭ（ＰＥ）２２、ＡＬＵ（ＰＥ）２３、及びＲＡＭ（ＰＥ）２４からなる第１のネットワーク構成が接続でき、他方のデータ記憶領域に他の複数のＰＥ１１からなる第２のネットワーク構成に接続できるようにする。
【００６２】
これにより、図７に示すようにＲＡＭ（ＰＥ）２４内の一方のデータ記憶領域を第１のネットワーク構成７１からアクセスし、他方のデータ記憶領域を第２のネットワーク構成７２からアクセスすることが可能になる。したがって、第１のネットワーク構成及び第２のネットワーク構成からＲＡＭ（ＰＥ）２４に同時にアクセスすることができ、オーバーヘッドを軽減することができる。
【００６３】
なお、上述した説明では、ＲＡＭ（ＰＥ）２２、ＡＬＵ（ＰＥ）２３、及びＲＡＭ（ＰＥ）２４をそれぞれ１つずつ設けた場合を一例として示したが、本発明はこれに限定されるものではない。第１動作モードでの動作により実現するプロセッサ動作に応じて、必要な数のＲＡＭ（ＰＥ）２２、ＡＬＵ（ＰＥ）２３、及びＲＡＭ（ＰＥ）２４を複数設けるようにしても良い。
【００６４】
また、前記実施形態は、何れも本発明を実施するにあたっての具体化のほんの一例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
本発明の諸態様を付記として以下に示す。
【００６５】
（付記１）
外部プログラムのデコード結果に応じて、回路構成を再構成可能な複数の処理部を備え、
前記複数の処理部は、
内部プログラムを記憶する第１処理部と、
前記第１処理部から供給される前記内部プログラムの命令をデコードして制御信号を生成する第２処理部と、
前記第２処理部からの前記制御信号を受け、当該制御信号に応じた処理を実行する第３処理部と、
第１の記憶領域と第２の記憶領域とを有する第４処理部とを含み、
第１動作モードにて、前記第１〜第４処理部を有する特定の第１のネットワーク構成が構築され、
前記第１の記憶領域及び前記第２の記憶領域の一方の記憶領域は、前記第１のネットワーク構成に接続され前記第３処理部の処理結果を保持し、
前記第１の記憶領域及び前記第２の記憶領域の他方の記憶領域は、前記第１のネットワークとは別の第２のネットワーク構成に接続されることを特徴とする半導体集積回路。
（付記２）
前記第１動作モードにて、前記第１〜第４処理部は、１つのプロセッサを構成し前記内部プログラムに従い処理を行うことを特徴とする付記１記載の半導体集積回路。
（付記３）
第２動作モードにて、前記第１〜第４処理部及び他の処理部を有する第３のネットワーク構成が構成され、
前記外部プログラムのデコード結果に応じた処理を実行することを特徴とする付記１又は２記載の半導体集積回路。
（付記４）
前記第２のネットワーク構成は、複数の再構成可能な処理部及び再構成可能なネットワークを有し、前記第１のネットワーク構成とは独立して動作することを特徴とする付記１〜３の何れか１項に記載の半導体集積回路。
（付記５）
前記第１の記憶領域と前記第２の記憶領域は、前記第１のネットワーク構成及び前記第２のネットワーク構成から独立して同時にアクセスされることを特徴とする付記１〜３の何れか１項に記載の半導体集積回路。
（付記６）
前記第４処理部は、
前記第１の記憶領域及び前記第２の記憶領域を前記第１のネットワーク構成又は前記第２のネットワーク構成に接続するための選択部を有することを特徴とする付記１〜３の何れか１項に記載の半導体集積回路。
（付記７）
前記第２処理部は、
前記内部プログラムの前記第１処理部内の保存先を指定するカウンタ部と、
前記カウンタ部にて指定された保存先から前記内部プログラムを取り出しデコードし、デコード結果に応じて制御信号を生成する命令解析部とを有することを特徴とする付記１〜３の何れか１項に記載の半導体集積回路。
（付記８）
前記第１の動作モードにて、前記第１の記憶領域及び前記第２の記憶領域の前記他方の記憶領域を、前記第２のネットワーク構成に接続するか否かを設定するためのレジスタ部を有することを特徴とする付記１〜３の何れか１項に記載の半導体集積回路。
【図面の簡単な説明】
【００６６】
【図１】本発明の実施形態に係る半導体集積回路の構成例を示す図である。
【図２】本実施形態におけるシーケンスＰＥの構成例を示す図である。
【図３】本実施形態におけるＲＡＭ（ＰＥ）の構成例を示す図である。
【図４】本実施形態におけるＲＡＭ選択制御部の構成例を示す図である。
【図５】本実施形態に係る半導体集積回路の第２動作モード（通常動作モード）時の動作を説明するための図である。
【図６】本実施形態に係る半導体集積回路の第１動作モード（特定モード）時の動作を説明するための図である。
【図７】本実施形態に係る半導体集積回路の第１動作モード時の構成を説明するための図である。
【図８】従来のリコンフィギュラブルＬＳＩの構成を示す図である。
【符号の説明】
【００６７】
１  ＣＰＵ
２  ＲＡＭ
３  リコンフィグインタフェース部
４  アドレスバス
５  データバス
１０  リコンフィギュラブル回路部
１１  プロセッシングエレメント（ＰＥ）
１２  セレクタ
２１  シーケンスＰＥ
２２、２４  ＲＡＭ（ＰＥ）
２３  ＡＬＵ（ＰＥ）
３１  カウンタ・アドレス生成部
３２  命令解析・制御信号生成部
３３  セレクタ
３４  レジスタ
４０  切替選択レジスタ
４１  ＲＡＭ選択制御部
４２、４３  データ記憶領域
ＮＷ  ネットワーク
【図１】
2010087880.tif 000003
【図２】
2010087880.tif 000004
【図３】
2010087880.tif 000005
【図４】
2010087880.tif 000006
【図５】
2010087880.tif 000007
【図６】
2010087880.tif 000008
【図７】
2010087880.tif 000009
【図８】
2010087880.tif 000010