(57)【要約】  本発明の課題は、半導体集積回路に実装されるＤＭＡコントローラのデータ転送効率を高めることである。ＤＭＡコントローラの内部に設けられる再構成可能な回路５１は、再構成可能な組み合わせ回路５２と、回路の構成情報を記憶する構成情報メモリ５３とを有する。構成情報メモリ５３には、構成情報を指定するＣＭ制御信号が制御回路から与えられる。ＤＭＡコントローラは、プロセッサから転送された入力データを内部の再構成可能な組み合わせ回路５２で処理し、処理結果のデータをプロセッサに転送する。
2008026273.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサを有する半導体集積回路に搭載されたＤＭＡコントローラにおいて、
回路構成を指定する構成情報を記憶する構成情報記憶回路と、
前記構成情報記憶回路の前記構成情報に基づいて回路構成が変更可能な再構成可能な回路とを備えるＤＭＡコントローラ。
【請求項２】
入力データと前記再構成可能な回路の出力データの一方を選択して前記再構成可能な回路に出力する入力選択回路を有し、
前記再構成可能な回路は、前記構成情報記憶回路に記憶されている第1の構成情報により定まる回路構成に基づいて前記入力データに対して第1の処理を行い、前記第1の処理が施された中間データを前記入力選択回路を介して前記再構成可能な回路に帰還して、前記構成情報記憶回路に記憶されている第２の構成情報により定まる回路構成に基づいて前記中間データに対して第２の処理を行う請求項１記載のＤＭＡコントローラ。
【請求項３】
前記構成情報記憶回路から前記再構成可能な回路に出力する前記構成情報を変更して前記再構成可能な回路の回路構成を変更する制御回路を有する請求項１または２記載のＤＭＡコントローラ。
【請求項４】
前記再構成可能な回路は、縦続接続された複数の再構成可能な組み合わせ回路からなり、
前記構成情報記憶回路は、前記複数の再構成可能な組み合わせ回路に対応する複数の構成情報記憶回路からなり、
前記複数の再構成可能な組み合わせ回路の出力の内の１つを選択して出力する出力選択回路を有する請求項１記載のＤＭＡコントローラ。
【請求項５】
前記再構成可能な回路は、縦続接続された複数の再構成可能な組み合わせ回路からなり、
入力データと最終ステージの再構成可能な組み合わせ回路の出力データの内の１つを選択して先頭のステージの再構成可能な回路に出力する入力選択回路と、
前記複数の再構成可能な組み合わせ回路の出力の１つを選択して出力する出力選択回路とを備える請求項１記載のＤＭＡコントローラ。
【請求項６】
前記再構成可能な回路は、縦続接続された複数の再構成可能な組み合わせ回路からなり、
最終ステージの前記再構成可能な組み合わせ回路から出力される複数の中間データを保持する中間バッファと、
入力データと前記中間バッファの出力と前記最終ステージの再構成可能な組み合わせ回路の出力の内の１つを選択して先頭のステージの前記再構成可能な組み合わせ回路に出力する入力選択回路と、
前記複数の再構成可能な組み合わせ回路の出力の１つを選択して出力する出力選択回路とを備える請求項１記載のＤＭＡコントローラ。
【請求項７】
前記再構成可能な回路は、縦続接続された複数の再構成可能な組み合わせ回路からなり、
前記構成情報記憶回路は、前記複数の再構成可能な組み合わせ回路に対応する複数の構成情報記憶回路からなり、
最終ステージの前記再構成可能な組み合わせ回路の出力を先頭のステージの前記再構成可能な組み合わせ回路の入力側に帰還して処理を行う場合に、前記複数の再構成可能な組み合わせ回路の回路構成を処理サイクル単位で順に変更する制御を行う制御回路を有する請求項１記載のＤＭＡコントローラ。
【請求項８】
入力データと前記最終ステージの再構成可能な組み合わせ回路の出力データの内の１つを選択して前記先頭のステージの再構成可能な回路に出力する入力選択回路と、
前記複数の再構成可能な組み合わせ回路の出力の１つを選択して出力する出力選択回路とを備える請求項７記載のＤＭＡコントローラ。
【請求項９】
２段目以降の各ステージの前記構成情報記憶回路の入力側に設けられ、前記構成情報記憶回路の前記構成情報を指定する制御信号を保持する複数の保持回路を有し、
各ステージの再構成可能な組み合わせ回路の回路構成を変更するときに、前記制御回路から出力される前記構成情報を指定する制御信号を処理サイクル単位で前記保持回路に順に保持することで各ステージの回路構成を順に変更する請求項７または８記載のＤＭＡコントローラ。
【請求項１０】
前記制御回路は、前記複数の構成情報記憶回路に対して前記構成情報の変更を指示する制御信号を個別に出力し、データバスを介して入力する前記構成情報を前記構成情報記憶回路に個別に書き込み、各ステージの回路構成を個別に変更する請求項７または８記載のＤＭＡコントローラ。
【請求項１１】
前記再構成可能な回路は、縦続接続された複数の再構成可能な組み合わせ回路からなり、
入力データと最終ステージの前記再構成可能な組み合わせ回路の出力の一方を選択して先頭のステージの前記再構成可能な組み合わせ回路に出力する入力選択回路を有する請求項１記載のＤＭＡコントローラ。
【請求項１２】
前記構成情報記憶回路は、複数の構成情報を記憶し、前記制御回路から出力される制御信号により指定される構成情報を前記再構成可能な回路に出力して該再構成可能な回路の回路構成を決定する請求項３記載のＤＭＡコントローラ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路に実装されるＤＭＡコントローラに関する。
【背景技術】
【０００２】
ユーザのアプリケーションに適したシステムＬＳＩを開発する方法としてプロセッサで全ての処理を実行させる方法と、アプリケーションが要求する処理を実行する回路をプロセッサと別に設ける方法とがある。何れの方法でもシステムＬＳＩ内部でのデータ転送はＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）コントローラが行うことでプロセッサの処理負担を軽減している。【０００３】
図２４Ａ、図２４Ｂは、従来のシステムＬＳＩのブロック図である。図２４Ａは、プロセッサで全ての処理を実行する場合のシステムＬＳＩのブロック図であり、図２４Ｂはアプリケーションの処理の一部を行う専用のハードウェアを設けたシステムＬＳＩのブロック図である。【０００４】
図２４ＡのシステムＬＳＩ１１は、プロセッサコア１２と、内部メモリ１３と、メモリコントローラ１４と、ＤＭＡコントローラ１５とを有する。このシステムＬＳＩ１１は、プロセッサコア１２がアプリケーションの要求する処理を全て実行する。メモリコントローラ１４は、外部メモリ１６へのデータの書き込み及び読み出しの制御を行う。【０００５】
図２４ＢのシステムＬＳＩ２１は、プロセッサコア１２とメモリ１３とメモリコントローラ１４とＤＭＡコントローラ１５と、複数のハードウェア回路１７ａ〜１７ｎとを有する。このシステムＬＳＩ２１は、アプリケーションの要求する処理の一部を専用のハードウェア１７ａ〜１７ｎが分担して実行する。【０００６】
特許文献１には、複数の演算器を変更可能に接続する接続経路と、パラメータ設定により処理仕様を変更できる専用ハードウェアとプロセッサとからなる集積回路について記載されている。【０００７】
特許文献２には、再構成可能な論理デバイスへのデータ転送を汎用コントローラの命令セットを用いて行えるようにすることが記載されている。
図２４Ｂに示すハードウェア回路１７ａ〜１７ｎの代わりに再構成可能な論理回路を用いることも行われている。しかしながら、再構成可能な論理回路にデータ処理を行わせるためには、ＤＭＡコントローラ１５がデータを再構成可能な回路に転送し、再構成可能な論理回路で処理されたデータをＤＭＡコントローラ１５がプロセッサコア１２に転送する必要がありデータ転送に時間を要してしまう。
【特許文献１】特開２００４−４０１８８号公報
【特許文献２】特開平１１−３０７７２５号公報
【発明の開示】
【０００８】
本発明の課題は、半導体集積回路に実装されるＤＭＡコントローラのデータ転送効率を高めることである。
本発明のＤＭＡコントローラは、プロセッサを有する半導体集積回路に搭載されたＤＭＡコントローラにおいて、回路構成を指定する構成情報を記憶する構成情報記憶回路と、前記構成情報記憶回路の前記構成情報に基づいて回路構成が変更可能な再構成可能な回路とを備える。
【０００９】
この発明によれば、ＤＭＡコントローラの内部に再構成可能な回路を設けることで、入力データに対してＤＭＡコントローラの外部の回路で処理を行うためにデータをＤＭＡ転送する処理、あるいは処理結果のデータをＤＭＡ転送する処理が不要となりＤＭＡ転送の効率を高めることができる。
【００１０】
上記の発明において、入力データと前記再構成可能な回路の出力データの一方を選択して前記再構成可能な回路に出力する入力選択回路を有し、前記再構成可能な回路は、前記構成情報記憶回路に記憶されている第1の構成情報により定まる回路構成に基づいて前記入力データに対して第1の処理を行い、前記第1の処理が施された中間データを前記入力選択回路を介して前記再構成可能な回路に入力させ、前記構成情報記憶回路に記憶されている第２の構成情報により定まる回路構成に基づいて前記中間データに対して第２の処理を行う。
【００１１】
このように構成することで、回路構成の異なる複数のハードウェア回路を設ける必要が無くなるので再構成可能な回路の回路規模を小さくできる。
上記の発明において、前記構成情報記憶回路から前記再構成可能な回路に出力させる前記構成情報を変更して前記再構成可能な回路の回路構成を変更する制御回路を有する。
【００１２】
このように構成することで制御回路が、構成情報記憶回路から出力される構成情報を変更することで再構成可能な回路の回路構成を任意に変更できる。
上記の発明において、前記再構成可能な回路は、縦続接続された複数の再構成可能な組み合わせ回路からなり、前記構成情報記憶回路は、前記複数の再構成可能な組み合わせ回路に対応する複数の構成情報記憶回路からなり、前記複数の再構成可能な組み合わせ回路の出力の内の１つを選択して出力する出力選択回路を有する。
【００１３】
このように構成することで複数ステージの再構成可能な組み合わせ回路のどのステージの出力データを外部に出力するかを任意に選択することができる。これにより入力データに応じて必要なステージ数の処理を施すことができる。
【００１４】
上記の発明において、前記再構成可能な回路は、縦続接続された複数の再構成可能な組み合わせ回路からなり、入力データと最終ステージの再構成可能な組み合わせ回路の出力データの内の１つを選択して先頭の再構成可能な回路に出力する入力選択回路と、前記複数の再構成可能な組み合わせ回路の出力の１つを選択して出力する出力選択回路とを備える。
【００１５】
このように構成することで複数ステージの再構成可能な組み合わせ回路のどのステージの出力データを外部に出力するかを任意に選択することができる。また、最終ステージの再構成可能な組み合わせ回路の出力を先頭のステージに帰還して処理を繰り返すことで、再構成可能な回路の回路規模を大きくせずに複数の処理サイクルの処理を実現できる。
【００１６】
上記の発明において、前記再構成可能な回路は、縦続接続された複数の再構成可能な組み合わせ回路からなり、最終ステージの再構成可能な組み合わせ回路から出力される複数の中間データを保持する中間バッファと、入力データと前記中間バッファの出力と前記最終ステージの再構成可能な組み合わせ回路の出力データの内の１つを選択して先頭のステージの再構成可能な回路に出力する入力選択回路と、前記複数の再構成可能な組み合わせ回路の出力の１つを選択して出力する出力選択回路とを備える。
【００１７】
このように構成することで中間データを中間バッファに保存した後、再構成可能な組み合わせ回路の回路構成を変更して中間データに対して所望の処理を施すことができる。これにより再構成可能な回路の回路規模を大きくせずに複数の処理サイクルの処理を実現できる。
【００１８】
上記の発明において、前記再構成可能な回路は、縦続接続された複数の再構成可能な組み合わせ回路からなり、前記構成情報記憶回路は、前記複数の再構成可能な組み合わせ回路に対応する複数の構成情報記憶回路からなり、最終ステージの前記再構成可能な組み合わせ回路の出力データを入力側に帰還して処理を行う場合に、前記複数の再構成可能な組み合わせ回路の回路構成を処理サイクル単位で順に変更する制御を行う制御回路を有する。
【００１９】
このように構成することで再構成可能な組み合わせ回路からデータ出力されない空きのサイクルが発生しないので再構成可能な回路のデータの処理効率を高めることができる。
【図面の簡単な説明】
【００２０】
【図１】実施の形態のシステムＬＳＩの構成を示す図である。
【図２】実施の形態のＤＭＡコントローラの構成を示す図である。
【図３】第１の実施の形態の再構成可能な回路のブロック図である。
【図４】第１の実施の形態のタイミングチャートである。
【図５】第２の実施の形態の再構成可能な回路のブロック図である。
【図６】第２の実施の形態のタイミングチャートである。
【図７】第３の実施の形態の再構成可能な回路のブロック図である。
【図８】第３の実施の形態のタイミングチャートである。
【図９】第４の実施の形態の再構成可能な回路のブロック図である。
【図１０】第４の実施の形態のタイミングチャートである。
【図１１】第５の実施の形態の再構成可能な回路のブロック図である。
【図１２】第５の実施の形態のタイミングチャートである。
【図１３】第６の実施の形態の再構成可能な回路のブロック図である。
【図１４】第７の実施の形態の再構成可能な回路のブロック図である。
【図１５】制御回路の構成を示す図である。
【図１６】ＣＭ制御信号生成回路の回路図である。
【図１７】ｓｅｌ制御信号生成回路の回路図である。
【図１８】ｓｅｌ２制御信号生成回路の回路図である。
【図１９】update信号生成回路の回路図である。
【図２０】updateタイミング信号生成回路の回路図である。
【図２１】制御回路のタイミングチャートである。
【図２２】画像処理用ＬＳＩのブロック図である。
【図２３】実施の形態の画像処理用ＬＳＩのブロック図である。
【図２４Ａ】従来のシステムＬＳＩのブロック図である。
【図２４Ｂ】従来のシステムＬＳＩのブロック図である。
【発明を実施するための最良の形態】
【００２１】
以下、本発明の好適な実施の形態を図面を参照して説明する。図１は、実施の形態のシステムＬＳＩ３１の構成を示す図である。
システムＬＳＩ３１は、プロセッサコア３２と、内部メモリ３３と、外部メモリ３６のアクセスを制御するメモリコントローラ３４と、再構成可能な回路を有するＤＭＡコントローラ（ＤＭＡＣ）３５とを有する。プロセッサコア３２、内部メモリ３３、メモリコントローラ３４及びＤＭＡコントローラ３５はバス３７により接続されている。【００２２】
図２は、ＤＭＡコントローラ３５の構成を示す図である。ＤＭＡコントローラ３５は、バスインターフェース回路４１と制御レジスタ群４２と制御回路４３と複数のバッファ４４ａ〜４４ｎと再構成可能回路４５とからなる。再構成可能な回路４５は、例えば、複数の演算回路、あるいは論理回路とそれらの回路の接続を変更する切り換え回路等からなり、回路の組み合わせを変更することで入力データに対して異なる処理を実行することができる。【００２３】
制御レジスタ群４２は、ＤＭＡ転送に必要な情報を記憶するレジスタであり、チャネル毎のＤＭＡの転送元アドレス、転送先アドレス、データの転送サイズ、後述する構成情報メモリのアドレスを更新する周期、出力選択回路の選択信号等を記憶する複数のレジスタからなる。【００２４】
バッファ４４ａ〜４４ｎは、ＤＭＡ転送を行う入力データを保存するメモリであり、チャネル毎に設けても良いし、チャネル間で共用するようにしても良い。
制御回路４３は、制御レジスタ群４２に格納されている情報に基づいて再構成可能な回路４５の構成を変更する各種の制御信号を出力する。【００２５】
図３は、ＤＭＡコントローラ３５内に設けられる、第１の実施の形態の再構成可能な回路５１のブロック図である。
再構成可能な回路５１は、再構成可能な組み合わせ回路５２と、再構成可能な組み合わせ回路５２の回路構成を決める構成情報を記憶する構成情報メモリ（ＣＭ：コンフィギュレーションメモリ）５３と、再構成可能な組み合わせ回路５２から出力されるデータを保存する出力バッファ５４とを有する。【００２６】
再構成可能な組み合わせ回路５２は、出力段にフリップフロップ（ＦＦ）５２ａを有しており、処理結果のデータはフリップフロップ５２ａに保持される。構成情報メモリ５３は、制御回路４３から構成情報を指定するＣＭ制御信号（アドレス情報）が与えられ、そのＣＭ制御信号で指定される構成情報を再構成可能な組み合わせ回路５２に出力する。クロック信号ｃｌｋは、処理サイクルに同期した信号であり、このクロック信号ｃｌｋの立ち上がりのタイミングで再構成可能な組み合わせ回路５２は入力データをラッチする。【００２７】
次に、上記の第１の実施の形態の再構成可能な回路５１の動作を、図４のタイミングチャートを参照して説明する。
構成情報メモリ５３には再構成可能な組み合わせ回路５２の回路構成を決める構成情報が予め複数記憶されており、その構成情報に基づいて再構成可能な組み合わせ回路５２の回路構成が一義的に決められる。【００２８】
図４のタイミングチャートを参照して、バスインターフェース回路４１から入力データ２と入力データ３が連続して入力する場合の回路動作を説明する。
バッファ４４ａ（図４のバッファ１）から入力データ２が出力されると、再構成可能な組み合わせ回路５２においてその入力データ２に対して所定の回路構成の処理が行われる。処理結果のデータ（処理データ２）はフリップフロップ５２ａに保持され、出力バッファ５４に出力される。【００２９】
同様に、バッファ４４ａから入力データ３が出力されると、再構成可能な組み合わせ回路５２においてその入力データ３に対して所定の回路構成の処理が行われる。処理結果のデータ（処理データ３）はフリップフロップ５２ａに保持され、出力バッファ５４に出力される。出力バッファ５４に保存された処理データ２と処理データ３は、バスインターフェース回路４１を介してプロセッサコア３２等に出力される。【００３０】
この第１の実施の形態は、ＤＭＡコントローラ５１の内部に再構成可能な回路５１を設けているので、データ処理のためにＤＭＡコントローラ３５の外部の回路にデータを転送するＤＭＡ転送処理、あるいは外部の回路で処理したデータをプロセッサコア３２に転送するＤＭＡ転送処理が不要となりデータの転送時間を短縮してＤＭＡ転送の転送効率を高めることができる。【００３１】
次に、図５は、第２の実施の形態の再構成可能な回路６１のブロック図である。第２の実施の形態の特徴は、再構成可能な回路６１の入力側に入力選択回路６２を設けた点である。以下の説明では、図３の再構成可能な回路５１と同じブロックには同じ符号を付けてそれらの説明は省略する。【００３２】
入力選択回路６２は、入力データと再構成可能な組み合わせ回路５２の出力の一方を選択して再構成可能な組み合わせ回路５２に出力する。この選択動作は制御回路４３から出力されるｓｅｌ制御信号に従って行われる。【００３３】
入力選択回路６２を設けることで、ある回路構成の再構成可能な組み合わせ回路５２の処理結果を入力側に帰還し、その後、再構成可能な組み合わせ回路５２の回路構成を変更して処理途中のデータに対して別の処理を施すことができる。すなわち、再構成可能な組み合わせ回路５２の構成を変更することで１つのデータに対して異なるハードウェア構成の回路の処理を実行することができるので、それぞれの別の構成の回路を設ける場合に比べて再構成可能な回路６１の回路規模を小さくできる。【００３４】
次に、上記の第２の実施の形態の再構成可能な回路６１の動作を、図６のタイミングチャートを参照して説明する。
以下、１つの入力データに対する処理が２サイクルかかる場合（処理レーテンシが２）について説明する。【００３５】
制御回路４３は、「構成１」を指定するＣＭ制御信号（メモリのアドレスを指定する情報）を構成情報メモリ５３に出力する。最初のサイクル（第１サイクル）では、再構成可能な組み合わせ回路５２の回路構成は「構成１」の状態に設定されており、再構成可能な組み合わせ回路５２は、入力データ１に対して「構成１」の回路による処理を実行する。【００３６】
制御回路４３は、次のサイクル（第２サイクル）で構成情報メモリ５３に「構成２」を指定するＣＭ制御信号を出力すると共に、ｓｅｌ制御信号をイネーブルにする。ｓｅｌ制御信号がイネーブルになると、入力選択回路６２は、再構成可能な組み合わせ回路５２の出力データ（中間データ１）を選択して再構成可能な組み合わせ回路５２に出力する。従って、第２サイクルにおいて、再構成可能な組み合わせ回路５２は、中間データ１に対して「構成２」の回路による処理を実行する。【００３７】
このように再構成可能な組み合わせ回路５２で処理を施した中間データを入力側に帰還し、回路構成を変更することで１つの入力データに対して異なる回路構成の処理を実行することができる。【００３８】
入力データ２と入力データ３が連続して入力する場合も同様である。入力データ２と入力データ３に対して再構成可能な組み合わせ回路５２の構成を、それぞれ「構成１」と「構成２」の２つの状態に変化させる。具体的には、入力データ２に対して「構成１」の再構成可能な組み合わせ回路５２で処理を行った後、再構成可能な組み合わせ回路５２の回路構成を「構成２」に変更し、１回目の処理結果のデータ（中間データ２）に対して「構成２」の処理を行う。入力データ３についても同様の処理を行う。この結果、入力データ２，３をそれぞれ「構成１」の回路と「構成２」の回路で処理したデータが得られる。【００３９】
上述した第２の実施の形態によれば、入力データに対して複数の処理を施す必要がある場合に、再構成可能な組み合わせ回路５２の回路構成を変更することで、入力データの必要な処理回数より少ない数の再構成可能な組み合わせ回路５２で処理を実現できる。これにより、入力データに対して要求される処理を実現するための再構成可能な組み合わせ回路５２の回路規模を少なくして集積回路上のデバイス面積を小さくできる。【００４０】
また、ＤＭＡコントローラ３５の内部に再構成可能な回路６１を設けることで、入力データに対して外部の回路で処理を行うためにデータをＤＭＡ転送する処理、あるいは外部の回路の処理結果のデータをＤＭＡ転送する処理が不要となり、ＤＭＡコントローラ３５におけるデータのＤＭＡ転送効率を高めることができる。【００４１】
次に、図７は、第３の実施の形態の再構成可能な回路７１のブロック図である。第３の実施の形態は、再構成可能な組み合わせ回路をｎ段（図７では３段）縦続に接続して入力データを連続して処理できるようにしたものである。【００４２】
図７に示すように再構成可能な回路７１は、縦続接続されたステージ１の再構成可能な組み合わせ回路７２と、ステージ２の再構成可能な組み合わせ回路７３と、ステージ３の再構成可能な組み合わせ回路７４と、それぞれの再構成可能な組み合わせ回路７２〜７４の構成情報を記憶する構成情報メモリ７５〜７７と、出力選択回路７８とからなる。【００４３】
出力選択回路７８は、ステージ１の再構成可能な組み合わせ回路７２の出力と、ステージ２の再構成可能な組み合わせ回路７３の出力と、ステージ３の再構成可能な組み合わせ回路７４の出力の内の１つを選択して出力する。出力選択回路７８の選択動作は、制御回路４３から出力されるｓｅｌ２制御信号に従って行われる。【００４４】
第２の実施の形態のように１つの再構成可能な組み合わせ回路５２の構成を変更して入力データに対する処理を行うようにした場合、入力データの処理レーテンシが大きいと、１つの入力データに対する処理が終了するまで次の入力データを再構成可能な組み合わせ回路５２に入力させることができなくなる。例えば、処理レーテンシが２（２サイクルの処理時間がかかるデータ）の処理を実行する場合、図５の再構成可能な回路６１は、２サイクルに１回しか処理結果のデータを出力できないのでスループットが０．５になる。【００４５】
これに対して第３の実施の形態の再構成可能な回路７１は、処理レーテンシが２の処理を実行する場合、ステージ２の再構成可能な組み合わせ回路７３で最初の入力データに対して２サイクル目の処理を実行しているときに、同時にステージ１の再構成可能な組み合わせ回路７２で次の入力データの処理を実行することができる。従って処理レーテンシが２以上の処理についても再構成可能な回路７１から毎サイクル処理結果のデータを出力することができるのでスループットは１となる。【００４６】
以下、処理レーテンシが「２」の処理を施す入力データ１〜４が連続して入力する場合の再構成可能な回路７１の動作を、図８のタイミングチャートを参照して説明する。
ステージ１の再構成可能な組み合わせ回路７２の回路構成として、例えば「構成１」が指定され、ステージ２の再構成可能な組み合わせ回路７３の回路構成として「構成２」が指定されているものとする。【００４７】
最初のサイクル（第１サイクル）で、入力データ１がステージ１の再構成可能な組み合わせ回路７２に入力すると、再構成可能な組み合わせ回路７２は、入力データ１に対して「構成１」のハードウェア回路の処理を実行する。このときの処理結果のデータ（中間データ１）は、次のサイクル（第２サイクル）の期間フリップフロップ７２ａに保持される。【００４８】
第２サイクルに、入力データ２がステージ１の再構成可能な組み合わせ回路７２に入力すると、再構成可能な組み合わせ回路７２は、入力データ２に対して「構成１」のハードウェア回路の処理を実行する。このときの処理結果のデータ（中間データ２）は、次のサイクル（第３サイクル）の期間フリップフロップ７２ａに保持される。【００４９】
第２サイクルに、ステージ２の再構成可能な組み合わせ回路７３は、そのときフリップフロップ７２ａに保持されている中間データ１に対して「構成２」のハードウェア回路の処理を実行する。このときの処理結果のデータ（処理データ１）は、次のサイクル（第３サイクル）の期間フリップフロップ７３ａに保持される。【００５０】
第３サイクルに、入力データ３がステージ１の再構成可能な組み合わせ回路７２に入力すると、再構成可能な組み合わせ回路７２は、入力データ３に対して「構成１」のハードウェア回路の処理を実行する。このときの処理結果のデータ（中間データ３）は、次のサイクル（第４サイクル）の期間フリップフロップ７４ａに保持される。【００５１】
第３サイクルに、ステージ２の再構成可能な組み合わせ回路７３は、そのときフリップフロップ７２ａに保持されている中間データ２に対して「構成２」のハードウェア回路の処理を実行する。このときの処理結果のデータ（処理データ２）は、次のサイクル（第４サイクル）の期間フリップフロップ７３ａに保持される。【００５２】
この場合、出力選択回路７８には、ステージ２の再構成可能な組み合わせ回路７３の出力を選択するｓｅｌ２制御信号が与えられているので、出力選択回路７８は、フリップフロップ７３ａに保持される処理データ１を選択して出力する。そして、次のサイクル（第４サイクル）に、バスインターフェース回路４１から処理データ１がデータバス３７に出力される。【００５３】
第４サイクルに、入力データ４がステージ１の再構成可能な組み合わせ回路７２に入力すると、再構成可能な組み合わせ回路７２は、入力データ４に対して「構成１」のハードウェア回路の処理を実行する。このときの処理結果のデータ（中間データ４）は、次のサイクル（第５サイクル）の期間フリップフロップ７２ａに保持される。【００５４】
第４サイクルに、ステージ２の再構成可能な組み合わせ回路７３ｓは、そのときフリップフロップ７２ａに保持されている中間データ３に対して「構成２」のハードウェア回路の処理を実行する。このときの処理結果のデータ（処理データ３）は、次のサイクル（第５サイクル）の期間フリップフロップ７３ａに保持される。【００５５】
第４サイクルに、出力選択回路７８は、そのときステージ２のフリップフロップ７３ａに保持されている処理データ２を選択して出力する。そして、次のサイクルに、バスインターフェース回路４１からその処理データ２がデータバス３７に出力される。以下同様に、第５サイクルに処理データ３が出力選択回路７８から出力され、第６サイクルに処理データ４が出力選択回路７８から出力される。【００５６】
上述した第３の実施の形態によれば、再構成可能な組み合わせ回路７２〜７３を複数段縦続に接続して処理を並行して行うことで、処理レーテンシが２サイクル以上のデータに対してもデータを毎サイクル入出力することができる。これにより再構成可能な回路７１の処理のスループットを向上させることができる。【００５７】
また、ＤＭＡコントローラ３５の内部に再構成可能な回路７１を設けることで、入力データを集積回路内部の他の回路で処理するためにＤＭＡ転送する処理、あるいは処理結果のデータをＤＭＡ転送する処理が不要となり、ＤＭＡコントローラ３５のデータのＤＭＡ転送の転送効率を高めることができる。【００５８】
次に、図９は、第４の実施の形態の再構成可能な回路８１のブロック図である。この第４の実施の形態は、再構成可能な組み合わせ回路８２、８３を縦続接続し（図９では２段）、最終ステージの再構成可能な組み合わせ回路８３の出力を入力側に帰還し、同時に回路構成を変更することで、１つのデータに対して処理ループ毎に異なる回路構成の処理を実行できるようにしたものである。【００５９】
図９に示す再構成可能な回路８１は、縦続接続されたステージ１の再構成可能な組み合わせ回路８２と、ステージ２の再構成可能な組み合わせ回路８３と、それぞれの再構成可能な組み合わせ回路８２、８３の構成情報を記憶する構成情報メモリ８４、８５と、入力選択回路８６と、出力選択回路８７と、中間バッファ８８とからなる。ステージ２の再構成可能な組み合わせ回路８３の出力は、直接または中間バッファ８８を介して入力選択回路８６に帰還されている。【００６０】
入力選択回路８６は、入力データと中間バッファ８８の出力とステージ２の再構成可能な組み合わせ回路８３の出力の内の１つを選択してステージ１の再構成可能な組み合わせ回路８２に出力する。入力選択回路８６は、制御回路４３から出力されるｓｅｌ制御信号に基づいて選択動作を行う。【００６１】
中間バッファ８８は、ステージ２の再構成可能な組み合わせ回路８３で処理された複数の中間データを記憶するメモリであり、記憶した中間データを入力選択回路８６に出力する。【００６２】
出力選択回路８７は、ステージ１の再構成可能な組み合わせ回路８２の出力と、ステージ２の再構成可能な組み合わせ回路８３の出力の一方を選択して出力する。出力選択回路８７の選択動作は、制御回路４３から出力されるｓｅｌ２制御信号に従って行われる。【００６３】
次に、第４の実施の形態の再構成可能な回路８１の動作を、図１０のタイミングチャートを参照して説明する。
図１０のタイミングチャートは、処理レーテンシが「４」の入力データ１〜４が連続して入力する場合のバスインターフェース回路４１の出力と、バッファ４４ａ〜４４ｄの出力と、ステージ１及びステージ２のフリップフロップ８２ａ、８３ａの出力と、中間バッファ８８の出力を示している。【００６４】
初期状態では、先頭のステージ１と最終ステージ２の再構成可能な組み合わせ回路８２、８３は「構成１」の回路構成が選択されているものとする。
第１サイクルに、入力データ１がステージ１の再構成可能な組み合わせ回路８２に入力すると、再構成可能な組み合わせ回路８２は、入力データ１に対して「構成１」のハードウェア回路の処理を実行する。このときの処理結果のデータ（中間データ１）は、次のサイクル（第２サイクル）の期間フリップフロップ８２ａに保持される。【００６５】
次の第２サイクルに、入力データ２がステージ１の再構成可能な組み合わせ回路８２に入力すると、再構成可能な組み合わせ回路８２は、入力データ２に対して「構成１」のハードウェア回路の処理を実行する。このときの処理結果のデータ（中間データ２）は、次のサイクル（第３サイクル）の期間フリップフロップ８２ａに保持される。【００６６】
第２サイクルに、ステージ２の再構成可能な組み合わせ回路８３は、そのとき前段のフリップフロップ８２ａに保持されている中間データ１に対して「構成１」のハードウェア回路の処理を実行する。このときの処理結果のデータ（中間データ１’）は、次のサイクル（第３サイクル）の期間フリップフロップ８３ａに保持される。【００６７】
第３サイクルに、入力データ３がステージ１の再構成可能な組み合わせ回路８２に入力すると、再構成可能な組み合わせ回路８２は、入力データ３に対して「構成１」のハードウェア回路の処理を実行する。このときの処理結果のデータ（中間データ３）は、次のサイクル（第４サイクル）の期間フリップフロップ８２ａに保持される。【００６８】
第３サイクルに、ステージ２の再構成可能な組み合わせ回路８３は、そのとき前段のフリップフロップ８２ａに保持されている中間データ２に対して「構成１」のハードウェア回路の処理を実行する。このときの処理結果のデータ（中間データ２’）は、次のサイクル（第４サイクル）の期間フリップフロップ８２ａに保持される。【００６９】
第４サイクルに、入力データ４がステージ１の再構成可能な組み合わせ回路８２に入力すると、再構成可能な組み合わせ回路８２は、入力データ４に対して「構成１」のハードウェア回路の処理を実行する。このときの処理結果のデータ（中間データ４）は、次のサイクル（第５サイクル）の期間フリップフロップ８２ａに保持される。【００７０】
第４サイクルに、ステージ２の再構成可能な組み合わせ回路８３は、そのとき前段のフリップフロップ８２ａに保持されている中間データ３に対して「構成１」のハードウェア回路の処理を実行する。このときの処理結果のデータ（中間データ３’）は、次のサイクル（第５サイクル）の期間フリップフロップ８３ａに保持される。【００７１】
第５サイクルには、ステージ１の再構成可能な組み合わせ回路８２にはデータが入力されない。ステージ２の再構成可能な組み合わせ回路８３は、そのとき前段のフリップフロップ８２ａに保持されている中間データ４に対して「構成１」のハードウェア回路の処理を実行する。このときの処理結果のデータ（中間データ４’）は、次のサイクル（第６サイクル）の期間フリップフロップ８３ａに保持される。【００７２】
なお、ステージ２の再構成可能な組み合わせ回路８３の出力データである中間データ１’、中間データ２’、中間データ３’、中間データ４’は順に中間バッファ８８に保存される。【００７３】
入力データ４に対するステージ２での処理が終了した後、すなわち、第６サイクルの先頭の時刻ｔ１に再構成可能な組み合わせ回路８２，８３の回路構成を「構成１」から「構成２」に同時に変更する。このとき、制御回路４３は、入力選択回路８６に中間バッファ８８の出力を選択させるｓｅｌ制御信号を出力する。従って、第６サイクル以降は、入力選択回路８６で中間バッファ８８に保存されている中間データが選択され、選択された中間データがステージ１の再構成可能な組み合わせ回路８２に入力する。【００７４】
第６サイクルに、ステージ１の再構成可能な組み合わせ回路８２は、中間バッファ８８から出力される中間データ１’に対して「構成２」のハードウェア回路の処理を実行する。このとき、ステージ１の再構成可能な組み合わせ回路８２からデータは出力されず、この期間はステージ１の出力データの空きの期間となる。【００７５】
第７サイクルに、ステージ１の再構成可能な組み合わせ回路８２は、中間バッファ８８から出力される中間データ２’に対して「構成２」のハードウェア回路の処理を実行する。このときの処理結果のデータ（中間データ２''）は、次のサイクル（第８サイクル）の期間ステージ１のフリップフロップ８２ａに保持される。【００７６】
第６サイクルにおいてステージ１の出力データが存在しなかったことから、同じ第６サイクルにおいてステージ２の再構成可能な組み合わせ回路８３は何も処理を実行しないことになる。従って、次の第７サイクルの期間、ステージ２の再構成可能な組み合わせ回路８３からはデータが出力されず空き期間となる。【００７７】
第８サイクル、第９サイクルに、中間バッファ８８からステージ１の再構成可能な組み合わせ回路８２に中間データ３’、中間データ４’が出力され、それらの中間データに対して「構成２」のハードウェア回路の処理が実行される。さらに、ステージ２の再構成可能な組み合わせ回路８３において、ステージ１の処理結果のデータに対して「構成２」のハードウェア回路の処理が実行される。【００７８】
以上のような回路動作により処理レーテンシ４の入力データ１〜４に対する処理を２個の再構成可能な組み合わせ回路８２、８３を用いて実現することができる。
上述した第４の実施の形態によれば、再構成可能な回路８１を複数のステージで構成し、最終ステージのデータを先頭のステージに帰還させることで処理レーテンシの大きい処理を少ないハードウェア構成の回路で処理することができる。これにより、半導体集積回路上に形成する再構成可能な回路８１のデバイス面積を小さくできる。また、１回目と２回目で各ステージの回路構成を変更することで同一のデータに対して異なるハードウェア回路の処理を少ない回路規模で実現できる。【００７９】
また、ＤＭＡコントローラ３５の内部に再構成可能な組み合わせ回路８１を設けることで、入力データを集積回路内部の別の回路で処理するためにデータをＤＭＡ転送し、あるいは処理結果のデータをＤＭＡ転送する必要が無くなるので、データのＤＭＡ転送の転送効率を高めることができる。【００８０】
第４の実施の形態では、最終ステージの出力を先頭のステージに戻しているが、出力選択回路の出力を先頭のステージに帰還させる経路を設け、ステージ数と入力データの処理レーテンシに応じて出力選択回路８７で選択された途中のステージの出力データを先頭のステージに戻すようにしても良い。【００８１】
ところで、上記の第４の実施の形態では、最後の入力データに対する最終ステージでの処理が終了した後、各ステージのハードウェア構成を同時に変更した後、中間バッファ８８に保存した処理途中のデータ（中間データ）を先頭のステージに再度入力している。そのためデータが出力されない空きのサイクルが発生している。この空きのサイクルは中間データを先頭のステージに再入力するたびに発生し、ステージ数が多くなるほど空きのサイクル数も大きくなる。再構成可能な回路８１がｎ段のステージで構成されているとすると、（ｎ−１）サイクル分の空きサイクルが発生する。【００８２】
この空きサイクルの問題は、再構成可能な回路でチャネル毎に異なる処理を実行させる場合にも発生する。例えば、複数のステージからなる再構成可能な回路において、チャネル１のデータに対して「構成１」の処理を実行し、チャネル２のデータに対して「構成２」の処理を実行する場合、チャネル１のデータとチャネル２のデータが連続して入力する場合でも、チャネル１のデータに対する最終ステージの処理が終了しないと、ステージ全体のハードウェア構成を変更できない。従って、この場合も、ステージ数をｎとすると、（ｎ−１）サイクル分の空きが発生してしまう。【００８３】
図１１は、上記の空きサイクルの問題を解決する本発明の第５の実施の形態の再構成可能な回路９１のブロック図である。
この第５の実施の形態は、再構成可能な回路９１の各ステージの回路構成を順に変更することで空きサイクルの発生を防止している。【００８４】
図１１に示す再構成可能な回路９１は、パイプライン構成の４ステージの再構成可能な組み合わせ回路９２、９３、９４、９５と、構成情報を記憶する４個の構成情報メモリ９６、９７、９８、９９と、３個のフリップフロップ１００，１０１，１０２と、入力選択回路１０３と、出力選択回路１０４とからなる。フリップフロップ１００、１０１、１０２は、ＣＭ制御信号を１サイクル（処理サイクル）の周期に同期したタイミングで順にラッチする。再構成可能な組み合わせ回路９２〜９５は、処理結果のデータを保持するフリップフロップ９２ａ〜９５ａを有する。【００８５】
次に、第５の実施の形態の再構成可能な回路９１の動作を、図１２のタイミングチャートを参照して説明する。
図１２のタイミングチャートは、処理レーテンシが「４」のチャネル１の入力データ１〜４とチャネル２の入力データ１〜４が連続して入力する場合に、チャネル１の入力データ１〜４に対してステージ１〜４で「構成１」の処理を行い、チャネル２の入力データ１〜４に対してステージ１〜４で「構成２」の処理を行う場合の動作タイミングを示している。【００８６】
図９に示す第４の実施の形態の再構成可能な回路８１で上記の２チャネルの入力データに対する処理を行うと、チャネル１の４番目のデータに対する最終ステージでの処理が終わるまで各ステージの回路構成を変更することができない。そのためチャネル２の入力データを再構成可能な回路８１に入力するまで３サイクル待たされ、その分空きサイクルが発生する。【００８７】
これに対してこの第５の実施の形態においては、チャネル１の最後の入力データ４がステージ１に入力して、その入力データ４に対するステージ１における処理が終了して次のサイクルが始まる時刻ｔ１（図１２に示す時刻ｔ１）に、ステージ１の再構成可能な組み合わせ回路９２の回路構成を「構成１」から「構成２」に変更する。このとき、他のステージ２〜４の回路構成は変更しない。そして、次の第２サイクルの開始時刻ｔ２に、ステージ２の再構成可能な組み合わせ回路９３の回路構成を「構成２」に変更する。さらに、次の第３サイクルの開始時刻ｔ３にステージ３の再構成可能な組み合わせ回路９４の回路構成を「構成２」に変更する。最後に、第４サイクルの開始時刻ｔ４に、ステージ４の再構成可能な組み合わせ回路９５の回路構成を「構成２」に変更する。各ステージの回路構成の変更は、構成情報を指定するＣＭ制御信号を、図１１のフリップフロップ１００、１０１、１０２に順にシフトさせることで実現している。【００８８】
時刻ｔ１に制御回路４３から「構成２」を指定するＣＭ制御信号（アドレス）が出力されると、構成情報メモリ９６からそのＣＭ制御信号で指定されるアドレスの構成情報がステージ１の再構成可能な組み合わせ回路９２に出力される。その結果、ステージ１の再構成可能な組み合わせ回路９２の回路構成は「構成２」に変更される。【００８９】
時刻ｔ１を開始時刻とする第１サイクルに、ステージ１の再構成可能な組み合わせ回路９２は、バッファ４４ｉ（バッファ４４ａ〜４４ｎの中の特定のバッファを指すものとする）から出力されるチャネル２の１番目の入力データ１に対して「構成２」のハードウェア回路の処理を実行する。このときの処理結果のデータ（図１２に斜線で示すデータＤ１）は、次のサイクル（第２サイクル）の期間ステージ１のフリップフロップ９２ａに保持される。【００９０】
次の第２サイクルの開始時刻ｔ２にフリップフロップ１００にＣＭ制御信号がラッチされ、「構成２」を指定するＣＭ制御信号がステージ２の構成情報メモリ９７に出力される。その結果、構成情報メモリ９７から「構成２」の構成情報が出力され、ステージ２の再構成可能な組み合わせ回路９３の回路構成が「構成２」に変更される。【００９１】
従って、第２サイクルにおいては、ステージ１の再構成可能な組み合わせ回路９２は、チャネル２の２番目の入力データ２に対して「構成２」のハードウェア回路の処理を実行し、ステージ２の再構成可能な組み合わせ回路９３は、そのときステージ１のフリップフロップ９２ａに保持されているデータＤ１に対して「構成２」のハードウェア回路の処理を実行する。ステージ１の処理結果のデータＤ２とステージ２の処理結果のデータＤ１は、それぞれ次のサイクル（第３サイクル）の期間、ステージ１のフリップフロップ９２ａとステージ２のフリップフロップ９３ａに保持される。【００９２】
なお、同じ入力データであっても各ステージの出力データは異なる値となるが、説明を簡単にするために図１２においては、各ステージの出力データを全てＤ１、Ｄ２、Ｄ３、Ｄ４で表してある。【００９３】
次の第３サイクルの開始時刻ｔ３にフリップフロップ１０１にＣＭ制御信号がラッチされ、「構成２」を指定するアドレスがステージ２の構成情報メモリ９８に出力される。その結果、構成情報メモリ９８から「構成２」の構成情報が出力され、ステージ３の再構成可能な組み合わせ回路９４の回路構成が「構成２」に変更される。【００９４】
従って、第３サイクルにおいては、ステージ１の再構成可能な組み合わせ回路９２は、チャネル２の３番目の入力データ３に対して「構成２」のハードウェア回路の処理を実行し、ステージ２の再構成可能な組み合わせ回路９３は、そのときステージ１のフリップフロップ９２ａに保持されているデータＤ２に対して「構成２」のハードウェア回路の処理を実行する。さらに、ステージ３の再構成可能な組み合わせ回路９４は、そのときステージ２のフリップフロップ９３ａに保持されているデータＤ１に対して「構成２」のハードウェア回路の処理を実行する。【００９５】
次の第４サイクルの開始時刻ｔ４にフリップフロップ１０２にＣＭ制御信号がラッチされ、「構成２」を指定するアドレスがステージ４の構成情報メモリ９９に出力される。その結果、構成情報メモリ９９から「構成２」の構成情報が出力され、ステージ４の再構成可能な組み合わせ回路９５の回路構成が「構成２」に変更される。【００９６】
従って、第４サイクルにおいては、ステージ１の再構成可能な組み合わせ回路９２は、チャネル２の４番目の入力データ４に対して「構成２」のハードウェア回路の処理を実行し、ステージ２の再構成可能な組み合わせ回路９３は、そのときステージ１のフリップフロップ９２ａに保持されているデータＤ３に対して「構成２」のハードウェア回路の処理を実行する。また、ステージ３の再構成可能な組み合わせ回路９４は、そのときステージ２のフリップフロップ９３ａに保持されているデータＤ２に対して「構成２」のハードウェア回路の処理を実行する。さらに、ステージ４の再構成可能な組み合わせ回路９５は、そのときステージ３のフリップフロップ９４ａに保持されているデータＤ１に対して「構成２」のハードウェア回路の処理を実行する。【００９７】
上述した第５の実施の形態によれば、再構成可能な組み合わせ回路９２〜９５の回路構成を順に変更することで、各ステージの再構成可能な組み合わせ回路９２〜９５の出力に空きサイクルが発生するのを防止できる。これにより再構成可能な回路９１の処理効率を高めることができる。【００９８】
また、ＤＭＡコントローラ３５の内部に再構成可能な回路９１を設けることで、入力データを集積回路上の別の回路にＤＭＡ転送し、また処理結果のデータをＤＭＡ転送する必要が無くなるのでデータ転送時間を減らすことができる。【００９９】
次に、図１３は、本発明の第６の実施の形態の再構成可能な回路２０１のブロック図である。
この第６の実施の形態と第５の実施の形態の異なる点は、構成情報メモリ２０２〜２０５の構成情報をプロセッサコア３２から設定できるようにした点である。【０１００】
再構成可能な回路２０１の回路構成を変更するときには、プロセッサコア３２がデータバス３７に変更したい構成情報を出力し、制御回路４３に構成情報の書き込みを指示する。制御回路４３は、書き込み対象の構成情報メモリ２０２〜２０５の書き込みアドレスをＣＭ制御信号として出力する。最初の書き込みサイクルでは、このＣＭ制御信号で指定される構成情報メモリ２０２のアドレスにデータバス３７に出力された構成情報が書き込まれる。その結果、ステージ１の再構成可能な組み合わせ回路９２の回路構成が、そのとき書き込まれた構成情報に対応する構成に変更される。【０１０１】
次のクロック信号ｃｌｋ（サイクルに同期した信号）の立ち上がりのタイミングでＣＭ制御信号がフリップフロップ１００にラッチされる。そして、このＣＭ制御信号で指定されるステージ２の構成情報メモリ２０３の該当するアドレスにプロセッサコア３２から出力された構成情報が書き込まれる。その結果、ステージ２の再構成可能な組み合わせ回路９３の回路構成が、そのとき構成情報メモリ２０３に書き込まれた構成情報に基づいて変更される。なお、このときプロセッサコア３２からデータバス３７に出力する構成情報を変更すれば、ステージ２の回路構成をステージ１の回路構成と異ならせることができる。【０１０２】
次のサイクルの立ち上がりタイミングでＣＭ制御信号がフリップフロップ１０１にラッチされる。そして、このＣＭ制御信号で指定されるステージ３の構成情報メモリ２０４の該当するアドレスにそのときデータバス３７に出力されている構成情報が書き込まれる。その結果、ステージ３の再構成可能な組み合わせ回路２０４の回路構成が、そのとき構成情報メモリ２０４に書き込まれた構成情報に基づいて変更される。【０１０３】
次のサイクルの立ち上がりタイミングでＣＭ制御信号がフリップフロップ１０２にラッチされる。そして、このＣＭ制御信号で指定されるステージ４の構成情報メモリ２０５の該当するアドレスにそのときデータバス３７に出力されている構成情報が書き込まれる。その結果、ステージ４の再構成可能な組み合わせ回路９５の回路構成がそのとき構成情報メモリ２０５に書き込まれた構成情報に基づいて変更される。【０１０４】
上述した第６の実施の形態によれば、プロセッサコア３２が各ステージの構成情報メモリ２０２〜２０５の構成情報を個別に設定することができるので、再構成可能な回路２０１の各ステージの回路構成を個別に変更することができる。これにより、再構成可能な回路２０１の出力に空きサイクルが生じるのを防止でき、再構成可能な回路２０１のデータ処理効率を高めることができる。【０１０５】
また、ＤＭＡコントローラ３５の内部に再構成可能な回路９１を設けることで、入力データに対して特定のハードウェアの処理を実行する集積回路の他の回路にデータをＤＭＡ転送し、処理結果のデータをＤＭＡ転送する必要が無くなるのでデータ転送時間を減らすことができる。【０１０６】
次に、図１４は、本発明の第７の実施の形態の再構成可能な回路３０１のブロック図である。
この第７の実施の形態と第６の実施の形態の異なる点は、構成情報メモリ３０２〜３０５への構成情報の書き込みをＤＭＡ転送の一部として行うようにした点である。【０１０７】
構成情報メモリ３０２〜３０５の構成情報を書き換える場合には、プロセッサコア３４は、特定のチャネル（構成情報メモリへの書き込みだけを行う特定のチャネル）、あるいは一般のデータ転送用のチャネルを用いてデータバス３７上に構成情報を出力する。プロセッサコア３４は、同時に制御回路４３に特定の構成情報メモリへの構成情報の書き込みを指示する。【０１０８】
この第７の実施の形態では、制御回路４３から各構成情報メモリ３０２〜３０５に専用のＣＭ制御信号が出力され、セレクタ１０３で選択された入力データが各構成情報メモリ３０２〜３０５に入力している。従って、任意の構成情報メモリ３０２〜３０５の書き込みアドレスを指定するＣＭ制御信号を出力し、プロセッサコア３２が入力データとして構成情報を出力することで各構成情報メモリ３０２〜３０５に個別に任意の構成情報を書き込むことができる。【０１０９】
例えば、プロセッサコア３２が、入力データとして特定の構成情報を出力し、制御回路４３が、ステージ１の構成情報メモリ３０２の書き込みアドレスを指定するＣＭ制御信号を出力することで、ステージ１の構成情報メモリ３０２に所望の構成情報を書き込むことができる。構成情報メモリ３０２に書き込まれた構成情報は、ステージ１の再構成可能な組み合わせ回路９２に出力され、ステージ１の回路構成がその構成情報に基づいて変更される。他のステージの構成情報メモリ３０３〜３０５についても同様にして構成情報の書き込みを行うことができる。【０１１０】
上述した第７の実施の形態によれば、プロセッサコア３２がＤＭＡ転送を利用して各ステージの構成情報メモリ３０２〜３０５に構成情報を個別に書き込むことができる。これにより、各ステージの再構成可能な組み合わせ回路９２〜９５の構成を順に変更して各ステージで連続してデータを処理することが可能となるので、再構成可能な組み合わせ回路９２〜９５の出力に空きサイクルが発生するのを防止でき、データ処理効率を高めることができる。【０１１１】
また、ＤＭＡコントローラ３５の内部に再構成可能な回路３０１を設けることで、入力データを集積回路の別の回路にＤＭＡ転送し、処理結果のデータをＤＭＡ転送する必要が無くなるのでデータ転送時間を減らすことができる。【０１１２】
ここで制御回路４３の回路構成の一例を、図１５と図１６〜図２０を参照して説明する。
図１５は、制御回路４３の構成を示す図である。制御回路４３は、構成情報メモリの書き込みアドレスを指定するＣＭ制御信号を生成するＣＭ制御信号生成回路４０１と、入力選択回路１０３等の選択信号であるｓｅｌ制御信号を生成するｓｅｌ制御信号生成回路４０２と、出力選択回路１０４等の選択信号であるｓｅｌ２制御信号を生成するｓｅｌ２制御信号生成回路４０３を有する。【０１１３】
また、制御回路４３は、再構成可能な回路が利用可能となったことを示すstart信号を生成するstart信号生成回路４０４と、チャネルCh選択信号を生成するチャネル選択信号生成回路４０５と、構成情報メモリ８４等のアドレスの更新周期を示すupdate信号を生成するupdate信号生成回路４０６と、update_timing信号を生成するupdateタイミング信号生成回路４０７と、その他の制御信号生成回路４０８とを有する。【０１１４】
最初に、図２の制御レジスタ群４２について説明する。図２には示していないが制御レジスタ群４２には、以下の５種類のレジスタが設けられている。
ＣＭアドレスレジスタＣＭ−ＡＤＲＳ−１〜ｎには、構成情報メモリ８４等の先頭アドレスが保持される。【０１１５】
リピートレジスタＲＰＴ−１〜ｎには、入力データに対して要求された処理を完了するために、再構成可能な回路８１等のパイプライン（ステージ）の先頭に処理途中のデータを繰り返し入力するリピート回数が保持される。【０１１６】
出力選択レジスタＯＵＴＳＥＬ−１〜ｎには、出力選択回路８７等の選択信号が保持される。
アップデータレジスタＵＰＤＡＴＥ−１〜ｎには、構成情報メモリ８４等のアドレスを更新する周期が保持される。【０１１７】
転送バースト長レジスタＢＳＴ−１〜ｎには、入力データの転送バースト長から「１」を減算した値が保持される。例えば、データのバースト長が「４」であれば、該当する転送バースト長レジスタＢＳＴ１〜ｎには「３」が格納される。【０１１８】
以上のことを前提にして制御回路４３の個々の回路について説明する。図１６は、ＣＭ制御信号生成回路４０１の回路図である。
ＣＭ生後信号生成回路４０１は、セレクタ５０１と、フリップフロップ５０２と、加算器５０３とを有する。セレクタ５０１は、start信号がイネーブルのとき、チャネル選択信号で指定されるＣＭアドレスレジスタＣＭ−ＡＤＲＳ−１〜ｎの値を選択してＣＭアドレスカウンタ５０２に出力する。また、セレクタ５０１は、start信号をインバータＩＮＶ１で反転した信号がイネーブルのとき、つまりstart信号がディセーブルのとき、フリップフロップ５０２の出力を加算器５０３で「+１」した値を選択してフリップフロップ５０２に出力する。【０１１９】
フリップフロップ５０２は、ＯＲゲートＯＲ１に入力するstart信号またはupdate信号がイネーブルのとき、サイクルに同期したタイミングでセレクタ５０１の出力をラッチする。フリップフロップ５０２は、ＣＭアドレスカウンタとして機能し、start信号がイネーブルになったとき、ＣＭアドレスレジスタＣＭ−ＡＤＲＳ−１〜ｎの内の特定のＣＭアドレスレジスタの値を初期値としてロードしてそのアドレスをＣＭ制御信号として出力する。そして、update信号が入力する毎に「+１」したアドレスをＣＭ制御信号として出力する。【０１２０】
図１７は、ｓｅｌ制御信号生成回路４０２の回路図である。ｓｅｌ制御信号生成回路４０２は、初期値「１」と、減算回路５１３の出力の一方を選択して出力するセレクタ５１１と、セレクタ５１１の出力をｓｅｌ制御信号の上位ビット（１ビット目）の値として出力するフリップフロップ５１２と、フリップフロップ５１２の値が「０」でないか否かを判定する判定回路５１４と、判定回路５１４の出力とupdate_timing信号の論理積を取るＡＮＤゲートＡＮＤ１とを有する。また、ｓｅｌ制御信号生成回路４０２は、転送バースト長レジスタＢＳＴ−１〜ｎの中の指定されたレジスタの値を保持するフリップフロップ５１５と、フリップフロップ５１５の出力が「０」でないか否かを判定し、判定結果をｓｅｌ制御信号の下位ビット（０ビット目）の値として出力する判定回路５１６とを有する。【０１２１】
セレクタ５１１は、start信号がイネーブルとなったとき「１」を出力し、start信号をインバータＩＮＶ２で反転した信号がイネーブルとなったとき、つまりstart信号がディセーブルのとき、ｓｅｌフラグの値を「−１」した値を出力する。【０１２２】
フリップフロップ５１２は、ＯＲゲートＯＲ２を介して入力するstart信号がイネーブルとなったとき初期値「１」をロードしてｓｅｌ制御信号の上位ビットの値として出力する。初期値「１」をロードした後、update信号がイネーブルになったとき、初期値「１」から「１」を減算した値「０」をｓｅｌ制御信号の上位ビットの値として出力する。【０１２３】
判定回路５１６は、フリップフロップ５１５にラッチされた転送バースト長レジスタＢＳＴ−１−ｎの値が「０」以外のとき、つまり転送バースト長が「２」以上のとき、ｓｅｌ制御信号の下位ビットの値として「１」を出力し、転送バースト長が「１」のとき、ｓｅｌ制御信号の下位ビットの値として「０」を出力する。【０１２４】
図１８は、ｓｅｌ２制御信号生成回路４０３の回路図である。ｓｅｌ２制御信号生成回路４０３は、チャネル選択信号により指定される出力選択レジスタＯＵＴＳＥＬ−１〜ｎの値を保持してｓｅｌ２制御信号として出力するフリップフロップ５２１からなる。出力選択レジスタＯＵＴＳＥＬ−１〜ｎには、例えば、図９の出力選択レジスタ８７のどの入力を選択するかを決める選択信号が記憶されている。【０１２５】
図１９は、update信号生成回路４０６の回路図である。update信号生成回路４０６は、チャネル選択信号により指定されるリピートレジスタＲＰＴ−１〜ｎの値と、減算器５３３でデクリメントされた値の一方を選択して出力するセレクタ５３１と、セレクタ５３１の出力をラッチするリピートカウンタ５３２と、リピートカウンタ５３２の出力が「０」以外か否かを判定する判定回路５３４と、判定回路５３４の出力とupdate_timing信号の論理積を取った信号をupdate信号として出力するＡＮＤゲートＡＮＤ２とからなる。【０１２６】
セレクタ５３１は、start信号がイネーブルのとき、リピートレジスタＲＰＴ−ｉ（ＲＰＴ１〜ｎの中の１つ）の値を選択し、start信号をインバータＩＮＶ３で反転した信号がイネーブルのとき、つまりstart信号がディセーブルのとき、リピートカウンタ５３２の値をデクリメントした値を選択してリピートカウンタ５３２に出力する。【０１２７】
リピートカウンタ５３２は、start信号がイネーブルとなったとき、リピートレジスタＲＰＴ−ｉの値を初期値としてロードする、また、update信号がイネーブルになったとき、減算器５３３でデクリメントされた値をラッチして出力する。例えば、リピートレジスタＲＰＴ−ｉの値が「１」のときには、start信号がイネーブルとなったとき、リピートカウンタ５３２に「１」がロードされる。判定回路５３４は、リピートカウンタ５３２の値が「０」でないことからハイレベルの信号を出力する。このときupdateタイミング信号がイネーブルとなると、ＡＮＤゲートＡＮＤ２から出力されるupdate信号がイネーブルとなる。【０１２８】
図２０は、updateタイミング信号生成回路４０７の回路図である。updateタイミング信号生成回路４０７は、アップデートレジスタＵＰＤＡＴＥ−１〜ｎの値と、減算器５４３の出力の一方を選択して出力するセレクタ５４１と、セレクタ５４１の出力をラッチするアップデートカウンタ５４２と、アップデータカウンタ５４２の出力が「０」でないか否かを判定する判定回路５４４とを有する。判定回路５４４は、アップデートカウンタ５４２の値が「０」でないときハイレベルの信号をＯＲゲートＯＲ４に出力し、アップデートカウンタ５４２の値が「０」のときローレベルの信号をＯＲゲートＯＲ４に出力する。【０１２９】
また、updateタイミング信号生成回路４０７は、アップデートカウンタ５４２の出力をラッチするフリップフロップ５４５と、アップデートカウンタ５４２の出力が「０」か否かを判定する判定回路５４６と、フリップフロップ５４５の出力が「１」か否かを判定する判定回路５４７と、判定回路５４６と判定回路５４７の出力の論理積を取り、その結果をupdate timing 信号として出力するＡＮＤゲートＡＮＤ３とを有する。【０１３０】
アップデートカウンタ５４２のイネーブル端子には、start信号とupdate信号のＯＲを取った信号と、判定回路５４４の出力とがＯＲゲートＯＲ４を介して入力している。従って、アップデートカウンタ５４２は、start信号またはupdate信号がイネーブルのとき、アップデートレジスタＵＰＤＡＴＥ−ｉ（ＵＰＤＡＴＥ−１〜ｎの内の１つ）の値を初期値としてロードする。また、判定回路５４４からはアップデートカウンタ５４２のカウント値が「０」となるまでハイレベルの信号が出力されるので、アップデートカウンタ５４２の値は毎サイクルデクリメントされ、アップデートカウンタ５４２の値が「０」となったとき、ＡＮＤゲートＡＮＤ３から出力されるupdate_timing信号がイネーブルになる。【０１３１】
ここで、制御回路４３の動作を、図２１のタイミングチャートを参照して説明する。図２１のタイミングチャートは、図９に示す再構成可能な回路８１にバースト長が「４」、処理レーテンシが「４」の入力データが入力する場合の動作タイミングを示している。【０１３２】
この場合、処理レーテンシが「４」で、再構成可能な回路８１のパイプラインの段数（ステージ数）が「２」であるので、再構成可能な回路８１のステージの先頭に処理結果のデータを繰り返し入力するリピート回数は「１」となる。従って、この場合のリピートレジスタＲＰＴ−ｉの値は「１」となる。【０１３３】
また、構成情報メモリ８４，８５のアドレスを更新する周期は、バースト長が「４」でステージ数が「２」であるので、更新周期を保持するアップデートレジスタＵＰＤＡＴＥ−ｉの値は「４＋２−２」で「４」となる。また、処理レーテンシが「４」であるので、転送バースト長レジスタＢＳＴ−ｉの値は「３」となる。【０１３４】
図２０に示すupdateタイミング信号生成回路４０７のアップデートカウンタ５４２は、start信号がイネーブルとなったとき、アップデートレジスタＵＰＤＡＴＥ−ｉから初期値として「４」をロードし、ロードした値が「０」になるまで毎サイクルデクリメントする。【０１３５】
上記のupdateタイミング信号生成回路４０７の動作を、図２１のタイミングチャートを参照して説明すると、start信号がイネーブルとなったとき、アップデートカウンタ５４２に初期値「４」がラッチされ、その値がサイクル毎にデクリメントされ、５サイクル目にカウント値が「０」となる。カウント値が「０」になると、判定回路５４６の出力がハイレベルとなり、このときフリップフロップ５４５には１サイクル前のアップデートカウンタ５４２の値「１」がラッチされているので、判定回路５４７の出力はハイレベルとなる。よって、アップデートカウンタ５４２の値が「０」となったとき、ＡＮＤゲートＡＮＤ３から出力されるupdate timing信号がハイレベル（イネーブル）になる。【０１３６】
図１９に示すupdate信号生成回路４０６のリピートカウンタ５３２は、start信号がイネーブルになったとき、チャネル選択信号で指定されるリピートレジスタＲＰＴ−ｉから初期値として「１」をロードする。判定回路５３４は、リピートカウンタ５３２の値が「０」でないと判定するとハイレベルの信号を出力するので、このときupdate_timing信号がハイレベル（イネーブル）となると、ＡＮＤゲートＡＮＤ２からハイレベル（イネーブル）のupdate信号が出力される。この結果、図２１に示すように第５サイクルにupdate timing信号とupdate信号がイネーブルになる。【０１３７】
update信号がイネーブルになると、リピートカウンタ５３２のイネーブル端子がイネーブルとなり、リピートカウンタ５３２の値がサイクルに同期したタイミングでデクリメントされ、リピートカウンタ５３２の値が「０」に変化する。リピートカウンタ５３２の値が「０」となると、判定回路５３４の出力はローレベルになるので、それ以降はupdate_timing信号がイネーブルとなってもupdate信号はディセーブルのままとなる。【０１３８】
図１７のｓｅｌ制御信号生成回路４０２は、start信号がイネーブルになったとき、初期値「１」がフリップフロップ（ｓｅｌフラグ）５１２にラッチされ、ｓｅｌフラグの値は「１」となる。そして、第５サイクルにupdate_timing信号がイネーブルとなったとき、ｓｅｌフラグの値がデクリメントされｓｅｌフラグの値は「０」になる（図２１参照）。このとき、転送バースト長レジスタＢＳＴ−ｉの値は「３」で、判定回路５１６の出力は「１」となっているので、ｓｅｌ制御信号の下位ビットの値は「１」となる。【０１３９】
従って、図２１に示すように、start信号がイネーブルになった後、前半の５サイクルの期間は、ｓｅｌ制御信号の上位ビットは「１」となり下位ビットも「１」となる。また、update_timing信号とupdate信号がイネーブルになった後、後半の５サイクルの期間は、ｓｅｌ制御信号の上位ビットは「０」となり下位ビットは「１」となる。【０１４０】
この結果、図９の入力選択回路８６は、前半の５サイクルは入力データ１〜４を選択してステージ１の再構成可能な組み合わせ回路８２に出力する。また、後半の５サイクルは、中間バッファ８８に保存されている処理途中のデータ１〜４を選択してステージ１の再構成可能な組み合わせ回路８２に出力する。【０１４１】
次に、実施の形態の再構成可能な回路を有するＤＭＡコントローラを搭載した半導体集積回路の一例を説明する。
図２２は、画像処理用ＬＳＩ６０１のブロック図である。画像処理用ＬＳＩ６０１は、ＣＣＤ（電荷結合素子）からの入力信号の前処理をする前処理回路６０２、画質向上のための処理を行う画質処理回路６０３，解像度を変換するための解像度変換回路６０４、色空間を変換するための色空間変換回路６０５等が必要であり、これらの回路をＬＳＩ内部に設ける必要がある。【０１４２】
本実施の形態では、図２３に示すように画像処理用ＬＳＩ７０１のＤＭＡコントローラ７０２の内部に設けた再構成可能な回路７０３で種々のハードウェア回路を実現できるので回路面積を削減することができる。また、ＤＭＡコントローラ７０２上の構成情報メモリの構成情報を書き換えるだけで、再構成可能な回路７０３の回路構成を変更することができるので、ハードウェア回路を設計する場合に比べてＬＳＩの開発期間を短縮することも可能である。さらに、構成情報を変更することでＬＳＩが完成した後でも、バグの修正や性能向上をはかることもできる。【０１４３】
本発明は上述した実施の形態に限らず、例えば、以下のように構成しても良い。
（１）ＤＭＡコントローラの内部に設ける再構成可能な回路の構成は、実施の形態に示したステージ数に限らない。必要な処理サイクル数に応じて任意に決めることができる。
（２）制御回路４３のｓｅｌ制御信号生成回路４０２，update_timing信号生成回路４０７等の回路構成も実施の形態に示したものに限らず他の構成の回路でも良い。
【図１】
2008026273.tif 000003
【図２】
2008026273.tif 000004
【図３】
2008026273.tif 000005
【図４】
2008026273.tif 000006
【図５】
2008026273.tif 000007
【図６】
2008026273.tif 000008
【図７】
2008026273.tif 000009
【図８】
2008026273.tif 000010
【図９】
2008026273.tif 000011
【図１０】
2008026273.tif 000012
【図１１】
2008026273.tif 000013
【図１３】
2008026273.tif 000014
【図１４】
2008026273.tif 000015
【図１５】
2008026273.tif 000016
【図１６】
2008026273.tif 000017
【図１７】
2008026273.tif 000018
【図１８】
2008026273.tif 000019
【図１９】
2008026273.tif 000020
【図２０】
2008026273.tif 000021
【図２１】
2008026273.tif 000022
【図２２】
2008026273.tif 000023
【図２３】
2008026273.tif 000024
【図２４Ａ】
2008026273.tif 000025
【図２４Ｂ】
2008026273.tif 000026
【図１２】
2008026273.tif 000027
【手続補正書】
【提出日】平成20年10月21日(2008.10.21)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
プロセッサを有する半導体集積回路に搭載されたＤＭＡコントローラにおいて、
回路構成を指定する構成情報を記憶する構成情報記憶回路と、
前記構成情報記憶回路の前記構成情報に基づいて回路構成が変更可能な再構成可能な回路とを備えるＤＭＡコントローラ。
【請求項２】
入力データと前記再構成可能な回路の出力データの一方を選択して前記再構成可能な回路に出力する入力選択回路を有し、
前記再構成可能な回路は、前記構成情報記憶回路に記憶されている第1の構成情報により定まる回路構成に基づいて前記入力データに対して第1の処理を行い、前記第1の処理が施された中間データを前記入力選択回路を介して前記再構成可能な回路に帰還して、前記構成情報記憶回路に記憶されている第２の構成情報により定まる回路構成に基づいて前記中間データに対して第２の処理を行う請求項１記載のＤＭＡコントローラ。
【請求項３】
前記構成情報記憶回路から前記再構成可能な回路に出力する前記構成情報を変更して前記再構成可能な回路の回路構成を変更する制御回路を有する請求項１または２記載のＤＭＡコントローラ。
【請求項４】
前記再構成可能な回路は、縦続接続された複数の再構成可能な組み合わせ回路からなり、
前記構成情報記憶回路は、前記複数の再構成可能な組み合わせ回路に対応する複数の構成情報記憶回路からなり、
前記複数の再構成可能な組み合わせ回路の出力の内の１つを選択して出力する出力選択回路を有する請求項１記載のＤＭＡコントローラ。
【請求項５】
前記再構成可能な回路は、縦続接続された複数の再構成可能な組み合わせ回路からなり、
入力データと最終ステージの再構成可能な組み合わせ回路の出力データの内の１つを選択して先頭のステージの再構成可能な回路に出力する入力選択回路と、
前記複数の再構成可能な組み合わせ回路の出力の１つを選択して出力する出力選択回路とを備える請求項１記載のＤＭＡコントローラ。
【請求項６】
前記再構成可能な回路は、縦続接続された複数の再構成可能な組み合わせ回路からなり、
最終ステージの前記再構成可能な組み合わせ回路から出力される複数の中間データを保持する中間バッファと、
入力データと前記中間バッファの出力と前記最終ステージの再構成可能な組み合わせ回路の出力の内の１つを選択して先頭のステージの前記再構成可能な組み合わせ回路に出力する入力選択回路と、
前記複数の再構成可能な組み合わせ回路の出力の１つを選択して出力する出力選択回路とを備える請求項１記載のＤＭＡコントローラ。
【請求項７】
前記再構成可能な回路は、縦続接続された複数の再構成可能な組み合わせ回路からなり、
前記構成情報記憶回路は、前記複数の再構成可能な組み合わせ回路に対応する複数の構成情報記憶回路からなり、
最終ステージの前記再構成可能な組み合わせ回路の出力を先頭のステージの前記再構成可能な組み合わせ回路の入力側に帰還して処理を行う場合に、前記複数の再構成可能な組み合わせ回路の回路構成を処理サイクル単位で順に変更する制御を行う制御回路を有する請求項１記載のＤＭＡコントローラ。
【請求項８】
入力データと前記最終ステージの再構成可能な組み合わせ回路の出力データの内の１つを選択して前記先頭のステージの再構成可能な回路に出力する入力選択回路と、
前記複数の再構成可能な組み合わせ回路の出力の１つを選択して出力する出力選択回路とを備える請求項７記載のＤＭＡコントローラ。
【請求項９】
２段目以降の各ステージの前記構成情報記憶回路の入力側に設けられ、前記構成情報記憶回路の前記構成情報を指定する制御信号を保持する複数の保持回路を有し、
各ステージの再構成可能な組み合わせ回路の回路構成を変更するときに、前記制御回路から出力される前記構成情報を指定する制御信号を処理サイクル単位で前記保持回路に順に保持することで各ステージの回路構成を順に変更する請求項７または８記載のＤＭＡコントローラ。
【請求項１０】
前記制御回路は、前記複数の構成情報記憶回路に対して前記構成情報の変更を指示する制御信号を個別に出力し、データバスを介して入力する前記構成情報を前記構成情報記憶回路に個別に書き込み、各ステージの回路構成を個別に変更する請求項７または８記載のＤＭＡコントローラ。
【国際調査報告】
2008026273.tif 000028
2008026273.tif 000029
2008026273.tif 000030