富士通株式会社 (〒88 神奈川県川崎市中原区上小田中4丁目1番1号 Kanagawa, 2118588, JP)
| プロセッサを有する半導体集積回路に搭載されたDMAコントローラにおいて、 回路構成を指定する構成情報を記憶する構成情報記憶回路と、 前記構成情報記憶回路の前記構成情報に基づいて回路構成が変更可能な再構成可能な回路とを備えるDMAコントローラ。 |
| 入力データと前記再構成可能な回路の出力データの一方を選択して前記再構成可能な回路に出力する入力選択回路を有し、 前記再構成可能な回路は、前記構成情報記憶回路に記憶されている第1の構成情報により定まる回路構成に基づいて前記入力データに対して第1の処理を行い、前記第1の処理が施された中間データを前記入力選択回路を介して前記再構成可能な回路に帰還して、前記構成情報記憶回路に記憶されている第2の構成情報により定まる回路構成に基づいて前記中間データに対して第2の処理を行う請求項1記載のDMAコントローラ。 |
| 前記構成情報記憶回路から前記再構成可能な回路に出力する前記構成情報を変更して前記再構成可能な回路の回路構成を変更する制御回路を有する請求項1または2記載のDMAコントローラ。 |
| 前記再構成可能な回路は、縦続接続された複数の再構成可能な組み合わせ回路からなり、 前記構成情報記憶回路は、前記複数の再構成可能な組み合わせ回路に対応する複数の構成情報記憶回路からなり、 前記複数の再構成可能な組み合わせ回路の出力の内の1つを選択して出力する出力選択回路を有する請求項1記載のDMAコントローラ。 |
| 前記再構成可能な回路は、縦続接続された複数の再構成可能な組み合わせ回路からなり、 入力データと最終ステージの再構成可能な組み合わせ回路の出力データの内の1つを選択して先頭のステージの再構成可能な回路に出力する入力選択回路と、 前記複数の再構成可能な組み合わせ回路の出力の1つを選択して出力する出力選択回路とを備える請求項1記載のDMAコントローラ。 |
| 前記再構成可能な回路は、縦続接続された複数の再構成可能な組み合わせ回路からなり、 最終ステージの前記再構成可能な組み合わせ回路から出力される複数の中間データを保持する中間バッファと、 入力データと前記中間バッファの出力と前記最終ステージの再構成可能な組み合わせ回路の出力の内の1つを選択して先頭のステージの前記再構成可能な組み合わせ回路に出力する入力選択回路と、 前記複数の再構成可能な組み合わせ回路の出力の1つを選択して出力する出力選択回路とを備える請求項1記載のDMAコントローラ。 |
| 前記再構成可能な回路は、縦続接続された複数の再構成可能な組み合わせ回路からなり、 前記構成情報記憶回路は、前記複数の再構成可能な組み合わせ回路に対応する複数の構成情報記憶回路からなり、 最終ステージの前記再構成可能な組み合わせ回路の出力を先頭のステージの前記再構成可能な組み合わせ回路の入力側に帰還して処理を行う場合に、前記複数の再構成可能な組み合わせ回路の回路構成を処理サイクル単位で順に変更する制御を行う制御回路を有する請求項1記載のDMAコントローラ。 |
| 入力データと前記最終ステージの再構成可能な組み合わせ回路の出力データの内の1つを選択して前記先頭のステージの再構成可能な回路に出力する入力選択回路と、 前記複数の再構成可能な組み合わせ回路の出力の1つを選択して出力する出力選択回路とを備える請求項7記載のDMAコントローラ。 |
| 2段目以降の各ステージの前記構成情報記憶回路の入力側に設けられ、前記構成情報記憶回路の前記構成情報を指定する制御信号を保持する複数の保持回路を有し、 各ステージの再構成可能な組み合わせ回路の回路構成を変更するときに、前記制御回路から出力される前記構成情報を指定する制御信号を処理サイクル単位で前記保持回路に順に保持することで各ステージの回路構成を順に変更する請求項7または8記載のDMAコントローラ。 |
| 前記制御回路は、前記複数の構成情報記憶回路に対して前記構成情報の変更を指示する制御信号を個別に出力し、データバスを介して入力する前記構成情報を前記構成情報記憶回路に個別に書き込み、各ステージの回路構成を個別に変更する請求項7または8記載のDMAコントローラ。 |
| 前記再構成可能な回路は、縦続接続された複数の再構成可能な組み合わせ回路からなり、 入力データと最終ステージの前記再構成可能な組み合わせ回路の出力の一方を選択して先頭のステージの前記再構成可能な組み合わせ回路に出力する入力選択回路を有する請求項1記載のDMAコントローラ。 |
| 前記構成情報記憶回路は、複数の構成情報を記憶し、前記制御回路から出力される制御信号により指定される構成情報を前記再構成可能な回路に出力して該再構成可能な回路の回路構成を決定する請求項3記載のDMAコントローラ。 |
本発明は、半導体集積回路に実装されるD MAコントローラに関する。
ユーザのアプリケーションに適したシス ムLSIを開発する方法としてプロセッサで全 の処理を実行させる方法と、アプリケーシ ンが要求する処理を実行する回路をプロセ サと別に設ける方法とがある。何れの方法 もシステムLSI内部でのデータ転送はDMA(Direct Memory Access)コントローラが行うことでプロ ッサの処理負担を軽減している。
図24A、図24Bは、従来のシステムLSIのブロ ク図である。図24Aは、プロセッサで全ての 理を実行する場合のシステムLSIのブロック であり、図24Bはアプリケーションの処理の 部を行う専用のハードウェアを設けたシス ムLSIのブロック図である。
図24AのシステムLSI11は、プロセッサコア12 と、内部メモリ13と、メモリコントローラ14 、DMAコントローラ15とを有する。このシステ ムLSI11は、プロセッサコア12がアプリケーシ ンの要求する処理を全て実行する。メモリ ントローラ14は、外部メモリ16へのデータの き込み及び読み出しの制御を行う。
図24BのシステムLSI21は、プロセッサコア12 とメモリ13とメモリコントローラ14とDMAコン ローラ15と、複数のハードウェア回路17a~17n を有する。このシステムLSI21は、アプリケー ションの要求する処理の一部を専用のハード ウェア17a~17nが分担して実行する。
特許文献1には、複数の演算器を変更可能 に接続する接続経路と、パラメータ設定によ り処理仕様を変更できる専用ハードウェアと プロセッサとからなる集積回路について記載 されている。
特許文献2には、再構成可能な論理デバイス
へのデータ転送を汎用コントローラの命令セ
ットを用いて行えるようにすることが記載さ
れている。
図24Bに示すハードウェア回路17a~17nの代わり
に再構成可能な論理回路を用いることも行わ
れている。しかしながら、再構成可能な論理
回路にデータ処理を行わせるためには、DMAコ
ントローラ15がデータを再構成可能な回路に
送し、再構成可能な論理回路で処理された
ータをDMAコントローラ15がプロセッサコア12
に転送する必要がありデータ転送に時間を要
してしまう。
本発明の課題は、半導体集積回路に実装さ
るDMAコントローラのデータ転送効率を高め
ことである。
本発明のDMAコントローラは、プロセッサを
する半導体集積回路に搭載されたDMAコント
ーラにおいて、回路構成を指定する構成情
を記憶する構成情報記憶回路と、前記構成
報記憶回路の前記構成情報に基づいて回路
成が変更可能な再構成可能な回路とを備え
。
この発明によれば、DMAコントローラの内 に再構成可能な回路を設けることで、入力 ータに対してDMAコントローラの外部の回路 処理を行うためにデータをDMA転送する処理 あるいは処理結果のデータをDMA転送する処 が不要となりDMA転送の効率を高めることが きる。
上記の発明において、入力データと前記 構成可能な回路の出力データの一方を選択 て前記再構成可能な回路に出力する入力選 回路を有し、前記再構成可能な回路は、前 構成情報記憶回路に記憶されている第1の構 成情報により定まる回路構成に基づいて前記 入力データに対して第1の処理を行い、前記 1の処理が施された中間データを前記入力選 回路を介して前記再構成可能な回路に入力 せ、前記構成情報記憶回路に記憶されてい 第2の構成情報により定まる回路構成に基づ いて前記中間データに対して第2の処理を行 。
このように構成することで、回路構成の異
る複数のハードウェア回路を設ける必要が
くなるので再構成可能な回路の回路規模を
さくできる。
上記の発明において、前記構成情報記憶回
から前記再構成可能な回路に出力させる前
構成情報を変更して前記再構成可能な回路
回路構成を変更する制御回路を有する。
このように構成することで制御回路が、構
情報記憶回路から出力される構成情報を変
することで再構成可能な回路の回路構成を
意に変更できる。
上記の発明において、前記再構成可能な回
は、縦続接続された複数の再構成可能な組
合わせ回路からなり、前記構成情報記憶回
は、前記複数の再構成可能な組み合わせ回
に対応する複数の構成情報記憶回路からな
、前記複数の再構成可能な組み合わせ回路
出力の内の1つを選択して出力する出力選択
回路を有する。
このように構成することで複数ステージ 再構成可能な組み合わせ回路のどのステー の出力データを外部に出力するかを任意に 択することができる。これにより入力デー に応じて必要なステージ数の処理を施すこ ができる。
上記の発明において、前記再構成可能な 路は、縦続接続された複数の再構成可能な み合わせ回路からなり、入力データと最終 テージの再構成可能な組み合わせ回路の出 データの内の1つを選択して先頭の再構成可 能な回路に出力する入力選択回路と、前記複 数の再構成可能な組み合わせ回路の出力の1 を選択して出力する出力選択回路とを備え 。
このように構成することで複数ステージ 再構成可能な組み合わせ回路のどのステー の出力データを外部に出力するかを任意に 択することができる。また、最終ステージ 再構成可能な組み合わせ回路の出力を先頭 ステージに帰還して処理を繰り返すことで 再構成可能な回路の回路規模を大きくせず 複数の処理サイクルの処理を実現できる。
上記の発明において、前記再構成可能な 路は、縦続接続された複数の再構成可能な み合わせ回路からなり、最終ステージの再 成可能な組み合わせ回路から出力される複 の中間データを保持する中間バッファと、 力データと前記中間バッファの出力と前記 終ステージの再構成可能な組み合わせ回路 出力データの内の1つを選択して先頭のステ ージの再構成可能な回路に出力する入力選択 回路と、前記複数の再構成可能な組み合わせ 回路の出力の1つを選択して出力する出力選 回路とを備える。
このように構成することで中間データを 間バッファに保存した後、再構成可能な組 合わせ回路の回路構成を変更して中間デー に対して所望の処理を施すことができる。 れにより再構成可能な回路の回路規模を大 くせずに複数の処理サイクルの処理を実現 きる。
上記の発明において、前記再構成可能な 路は、縦続接続された複数の再構成可能な み合わせ回路からなり、前記構成情報記憶 路は、前記複数の再構成可能な組み合わせ 路に対応する複数の構成情報記憶回路から り、最終ステージの前記再構成可能な組み わせ回路の出力データを入力側に帰還して 理を行う場合に、前記複数の再構成可能な み合わせ回路の回路構成を処理サイクル単 で順に変更する制御を行う制御回路を有す 。
このように構成することで再構成可能な み合わせ回路からデータ出力されない空き サイクルが発生しないので再構成可能な回 のデータの処理効率を高めることができる
以下、本発明の好適な実施の形態を図面を
照して説明する。図1は、実施の形態のシス
テムLSI31の構成を示す図である。
システムLSI31は、プロセッサコア32と、内部
メモリ33と、外部メモリ36のアクセスを制御
るメモリコントローラ34と、再構成可能な回
路を有するDMAコントローラ(DMAC)35とを有する
プロセッサコア32、内部メモリ33、メモリコ
ントローラ34及びDMAコントローラ35はバス37に
より接続されている。
図2は、DMAコントローラ35の構成を示す図 ある。DMAコントローラ35は、バスインター ェース回路41と制御レジスタ群42と制御回路4 3と複数のバッファ44a~44nと再構成可能回路45 からなる。再構成可能な回路45は、例えば、 複数の演算回路、あるいは論理回路とそれら の回路の接続を変更する切り換え回路等から なり、回路の組み合わせを変更することで入 力データに対して異なる処理を実行すること ができる。
制御レジスタ群42は、DMA転送に必要な情 を記憶するレジスタであり、チャネル毎のDM Aの転送元アドレス、転送先アドレス、デー の転送サイズ、後述する構成情報メモリの ドレスを更新する周期、出力選択回路の選 信号等を記憶する複数のレジスタからなる
バッファ44a~44nは、DMA転送を行う入力データ
を保存するメモリであり、チャネル毎に設け
ても良いし、チャネル間で共用するようにし
ても良い。
制御回路43は、制御レジスタ群42に格納され
ている情報に基づいて再構成可能な回路45の
成を変更する各種の制御信号を出力する。
図3は、DMAコントローラ35内に設けられる、
1の実施の形態の再構成可能な回路51のブロ
ク図である。
再構成可能な回路51は、再構成可能な組み
わせ回路52と、再構成可能な組み合わせ回路
52の回路構成を決める構成情報を記憶する構
情報メモリ(CM:コンフィギュレーションメモ
リ)53と、再構成可能な組み合わせ回路52から
力されるデータを保存する出力バッファ54
を有する。
再構成可能な組み合わせ回路52は、出力 にフリップフロップ(FF)52aを有しており、処 結果のデータはフリップフロップ52aに保持 れる。構成情報メモリ53は、制御回路43から 構成情報を指定するCM制御信号(アドレス情報 )が与えられ、そのCM制御信号で指定される構 成情報を再構成可能な組み合わせ回路52に出 する。クロック信号clkは、処理サイクルに 期した信号であり、このクロック信号clkの ち上がりのタイミングで再構成可能な組み わせ回路52は入力データをラッチする。
次に、上記の第1の実施の形態の再構成可能
な回路51の動作を、図4のタイミングチャート
を参照して説明する。
構成情報メモリ53には再構成可能な組み合
せ回路52の回路構成を決める構成情報が予め
複数記憶されており、その構成情報に基づい
て再構成可能な組み合わせ回路52の回路構成
一義的に決められる。
図4のタイミングチャートを参照して、バス
インターフェース回路41から入力データ2と入
力データ3が連続して入力する場合の回路動
を説明する。
バッファ44a(図4のバッファ1)から入力データ
2が出力されると、再構成可能な組み合わせ
路52においてその入力データ2に対して所定
回路構成の処理が行われる。処理結果のデ
タ(処理データ2)はフリップフロップ52aに保
され、出力バッファ54に出力される。
同様に、バッファ44aから入力データ3が出 力されると、再構成可能な組み合わせ回路52 おいてその入力データ3に対して所定の回路 構成の処理が行われる。処理結果のデータ( 理データ3)はフリップフロップ52aに保持され 、出力バッファ54に出力される。出力バッフ 54に保存された処理データ2と処理データ3は 、バスインターフェース回路41を介してプロ ッサコア32等に出力される。
この第1の実施の形態は、DMAコントローラ 51の内部に再構成可能な回路51を設けている で、データ処理のためにDMAコントローラ35の 外部の回路にデータを転送するDMA転送処理、 あるいは外部の回路で処理したデータをプロ セッサコア32に転送するDMA転送処理が不要と りデータの転送時間を短縮してDMA転送の転 効率を高めることができる。
次に、図5は、第2の実施の形態の再構成 能な回路61のブロック図である。第2の実施 形態の特徴は、再構成可能な回路61の入力側 に入力選択回路62を設けた点である。以下の 明では、図3の再構成可能な回路51と同じブ ックには同じ符号を付けてそれらの説明は 略する。
入力選択回路62は、入力データと再構成 能な組み合わせ回路52の出力の一方を選択し て再構成可能な組み合わせ回路52に出力する この選択動作は制御回路43から出力されるse l制御信号に従って行われる。
入力選択回路62を設けることで、ある回 構成の再構成可能な組み合わせ回路52の処理 結果を入力側に帰還し、その後、再構成可能 な組み合わせ回路52の回路構成を変更して処 途中のデータに対して別の処理を施すこと できる。すなわち、再構成可能な組み合わ 回路52の構成を変更することで1つのデータ 対して異なるハードウェア構成の回路の処 を実行することができるので、それぞれの の構成の回路を設ける場合に比べて再構成 能な回路61の回路規模を小さくできる。
次に、上記の第2の実施の形態の再構成可能
な回路61の動作を、図6のタイミングチャート
を参照して説明する。
以下、1つの入力データに対する処理が2サ
クルかかる場合(処理レーテンシが2)につい
説明する。
制御回路43は、「構成1」を指定するCM制 信号(メモリのアドレスを指定する情報)を構 成情報メモリ53に出力する。最初のサイクル( 第1サイクル)では、再構成可能な組み合わせ 路52の回路構成は「構成1」の状態に設定さ ており、再構成可能な組み合わせ回路52は 入力データ1に対して「構成1」の回路による 処理を実行する。
制御回路43は、次のサイクル(第2サイクル )で構成情報メモリ53に「構成2」を指定するCM 制御信号を出力すると共に、sel制御信号をイ ネーブルにする。sel制御信号がイネーブルに なると、入力選択回路62は、再構成可能な組 合わせ回路52の出力データ(中間データ1)を 択して再構成可能な組み合わせ回路52に出力 する。従って、第2サイクルにおいて、再構 可能な組み合わせ回路52は、中間データ1に して「構成2」の回路による処理を実行する
このように再構成可能な組み合わせ回路5 2で処理を施した中間データを入力側に帰還 、回路構成を変更することで1つの入力デー に対して異なる回路構成の処理を実行する とができる。
入力データ2と入力データ3が連続して入 する場合も同様である。入力データ2と入力 ータ3に対して再構成可能な組み合わせ回路 52の構成を、それぞれ「構成1」と「構成2」 2つの状態に変化させる。具体的には、入力 ータ2に対して「構成1」の再構成可能な組 合わせ回路52で処理を行った後、再構成可能 な組み合わせ回路52の回路構成を「構成2」に 変更し、1回目の処理結果のデータ(中間デー 2)に対して「構成2」の処理を行う。入力デ タ3についても同様の処理を行う。この結果 、入力データ2,3をそれぞれ「構成1」の回路 「構成2」の回路で処理したデータが得られ 。
上述した第2の実施の形態によれば、入力 データに対して複数の処理を施す必要がある 場合に、再構成可能な組み合わせ回路52の回 構成を変更することで、入力データの必要 処理回数より少ない数の再構成可能な組み わせ回路52で処理を実現できる。これによ 、入力データに対して要求される処理を実 するための再構成可能な組み合わせ回路52の 回路規模を少なくして集積回路上のデバイス 面積を小さくできる。
また、DMAコントローラ35の内部に再構成 能な回路61を設けることで、入力データに対 して外部の回路で処理を行うためにデータを DMA転送する処理、あるいは外部の回路の処理 結果のデータをDMA転送する処理が不要となり 、DMAコントローラ35におけるデータのDMA転送 率を高めることができる。
次に、図7は、第3の実施の形態の再構成 能な回路71のブロック図である。第3の実施 形態は、再構成可能な組み合わせ回路をn段( 図7では3段)縦続に接続して入力データを連続 して処理できるようにしたものである。
図7に示すように再構成可能な回路71は、 続接続されたステージ1の再構成可能な組み 合わせ回路72と、ステージ2の再構成可能な組 み合わせ回路73と、ステージ3の再構成可能な 組み合わせ回路74と、それぞれの再構成可能 組み合わせ回路72~74の構成情報を記憶する 成情報メモリ75~77と、出力選択回路78とから る。
出力選択回路78は、ステージ1の再構成可 な組み合わせ回路72の出力と、ステージ2の 構成可能な組み合わせ回路73の出力と、ス ージ3の再構成可能な組み合わせ回路74の出 の内の1つを選択して出力する。出力選択回 78の選択動作は、制御回路43から出力される sel2制御信号に従って行われる。
第2の実施の形態のように1つの再構成可 な組み合わせ回路52の構成を変更して入力デ ータに対する処理を行うようにした場合、入 力データの処理レーテンシが大きいと、1つ 入力データに対する処理が終了するまで次 入力データを再構成可能な組み合わせ回路52 に入力させることができなくなる。例えば、 処理レーテンシが2(2サイクルの処理時間がか かるデータ)の処理を実行する場合、図5の再 成可能な回路61は、2サイクルに1回しか処理 結果のデータを出力できないのでスループッ トが0.5になる。
これに対して第3の実施の形態の再構成可 能な回路71は、処理レーテンシが2の処理を実 行する場合、ステージ2の再構成可能な組み わせ回路73で最初の入力データに対して2サ クル目の処理を実行しているときに、同時 ステージ1の再構成可能な組み合わせ回路72 次の入力データの処理を実行することがで る。従って処理レーテンシが2以上の処理に いても再構成可能な回路71から毎サイクル 理結果のデータを出力することができるの スループットは1となる。
以下、処理レーテンシが「2」の処理を施す
入力データ1~4が連続して入力する場合の再構
成可能な回路71の動作を、図8のタイミングチ
ャートを参照して説明する。
ステージ1の再構成可能な組み合わせ回路72
回路構成として、例えば「構成1」が指定さ
れ、ステージ2の再構成可能な組み合わせ回
73の回路構成として「構成2」が指定されて
るものとする。
最初のサイクル(第1サイクル)で、入力デ タ1がステージ1の再構成可能な組み合わせ 路72に入力すると、再構成可能な組み合わせ 回路72は、入力データ1に対して「構成1」の ードウェア回路の処理を実行する。このと の処理結果のデータ(中間データ1)は、次の イクル(第2サイクル)の期間フリップフロッ 72aに保持される。
第2サイクルに、入力データ2がステージ1 再構成可能な組み合わせ回路72に入力する 、再構成可能な組み合わせ回路72は、入力デ ータ2に対して「構成1」のハードウェア回路 処理を実行する。このときの処理結果のデ タ(中間データ2)は、次のサイクル(第3サイ ル)の期間フリップフロップ72aに保持される
第2サイクルに、ステージ2の再構成可能 組み合わせ回路73は、そのときフリップフロ ップ72aに保持されている中間データ1に対し 「構成2」のハードウェア回路の処理を実行 る。このときの処理結果のデータ(処理デー タ1)は、次のサイクル(第3サイクル)の期間フ ップフロップ73aに保持される。
第3サイクルに、入力データ3がステージ1 再構成可能な組み合わせ回路72に入力する 、再構成可能な組み合わせ回路72は、入力デ ータ3に対して「構成1」のハードウェア回路 処理を実行する。このときの処理結果のデ タ(中間データ3)は、次のサイクル(第4サイ ル)の期間フリップフロップ74aに保持される
第3サイクルに、ステージ2の再構成可能 組み合わせ回路73は、そのときフリップフロ ップ72aに保持されている中間データ2に対し 「構成2」のハードウェア回路の処理を実行 る。このときの処理結果のデータ(処理デー タ2)は、次のサイクル(第4サイクル)の期間フ ップフロップ73aに保持される。
この場合、出力選択回路78には、ステー 2の再構成可能な組み合わせ回路73の出力を 択するsel2制御信号が与えられているので、 力選択回路78は、フリップフロップ73aに保 される処理データ1を選択して出力する。そ て、次のサイクル(第4サイクル)に、バスイ ターフェース回路41から処理データ1がデー バス37に出力される。
第4サイクルに、入力データ4がステージ1 再構成可能な組み合わせ回路72に入力する 、再構成可能な組み合わせ回路72は、入力デ ータ4に対して「構成1」のハードウェア回路 処理を実行する。このときの処理結果のデ タ(中間データ4)は、次のサイクル(第5サイ ル)の期間フリップフロップ72aに保持される
第4サイクルに、ステージ2の再構成可能 組み合わせ回路73sは、そのときフリップフ ップ72aに保持されている中間データ3に対し 「構成2」のハードウェア回路の処理を実行 する。このときの処理結果のデータ(処理デ タ3)は、次のサイクル(第5サイクル)の期間フ リップフロップ73aに保持される。
第4サイクルに、出力選択回路78は、その きステージ2のフリップフロップ73aに保持さ れている処理データ2を選択して出力する。 して、次のサイクルに、バスインターフェ ス回路41からその処理データ2がデータバス37 に出力される。以下同様に、第5サイクルに 理データ3が出力選択回路78から出力され、 6サイクルに処理データ4が出力選択回路78か 出力される。
上述した第3の実施の形態によれば、再構 成可能な組み合わせ回路72~73を複数段縦続に 続して処理を並行して行うことで、処理レ テンシが2サイクル以上のデータに対しても データを毎サイクル入出力することができる 。これにより再構成可能な回路71の処理のス ープットを向上させることができる。
また、DMAコントローラ35の内部に再構成 能な回路71を設けることで、入力データを集 積回路内部の他の回路で処理するためにDMA転 送する処理、あるいは処理結果のデータをDMA 転送する処理が不要となり、DMAコントローラ 35のデータのDMA転送の転送効率を高めること できる。
次に、図9は、第4の実施の形態の再構成 能な回路81のブロック図である。この第4の 施の形態は、再構成可能な組み合わせ回路82 、83を縦続接続し(図9では2段)、最終ステージ の再構成可能な組み合わせ回路83の出力を入 側に帰還し、同時に回路構成を変更するこ で、1つのデータに対して処理ループ毎に異 なる回路構成の処理を実行できるようにした ものである。
図9に示す再構成可能な回路81は、縦続接 されたステージ1の再構成可能な組み合わせ 回路82と、ステージ2の再構成可能な組み合わ せ回路83と、それぞれの再構成可能な組み合 せ回路82、83の構成情報を記憶する構成情報 メモリ84、85と、入力選択回路86と、出力選択 回路87と、中間バッファ88とからなる。ステ ジ2の再構成可能な組み合わせ回路83の出力 、直接または中間バッファ88を介して入力選 択回路86に帰還されている。
入力選択回路86は、入力データと中間バ ファ88の出力とステージ2の再構成可能な組 合わせ回路83の出力の内の1つを選択してス ージ1の再構成可能な組み合わせ回路82に出 する。入力選択回路86は、制御回路43から出 されるsel制御信号に基づいて選択動作を行 。
中間バッファ88は、ステージ2の再構成可 な組み合わせ回路83で処理された複数の中 データを記憶するメモリであり、記憶した 間データを入力選択回路86に出力する。
出力選択回路87は、ステージ1の再構成可 な組み合わせ回路82の出力と、ステージ2の 構成可能な組み合わせ回路83の出力の一方 選択して出力する。出力選択回路87の選択動 作は、制御回路43から出力されるsel2制御信号 に従って行われる。
次に、第4の実施の形態の再構成可能な回路
81の動作を、図10のタイミングチャートを参
して説明する。
図10のタイミングチャートは、処理レーテ
シが「4」の入力データ1~4が連続して入力す
場合のバスインターフェース回路41の出力
、バッファ44a~44dの出力と、ステージ1及びス
テージ2のフリップフロップ82a、83aの出力と
中間バッファ88の出力を示している。
初期状態では、先頭のステージ1と最終ステ
ージ2の再構成可能な組み合わせ回路82、83は
構成1」の回路構成が選択されているものと
する。
第1サイクルに、入力データ1がステージ1の
構成可能な組み合わせ回路82に入力すると
再構成可能な組み合わせ回路82は、入力デー
タ1に対して「構成1」のハードウェア回路の
理を実行する。このときの処理結果のデー
(中間データ1)は、次のサイクル(第2サイク
)の期間フリップフロップ82aに保持される。
次の第2サイクルに、入力データ2がステ ジ1の再構成可能な組み合わせ回路82に入力 ると、再構成可能な組み合わせ回路82は、入 力データ2に対して「構成1」のハードウェア 路の処理を実行する。このときの処理結果 データ(中間データ2)は、次のサイクル(第3 イクル)の期間フリップフロップ82aに保持さ る。
第2サイクルに、ステージ2の再構成可能 組み合わせ回路83は、そのとき前段のフリッ プフロップ82aに保持されている中間データ1 対して「構成1」のハードウェア回路の処理 実行する。このときの処理結果のデータ(中 間データ1’)は、次のサイクル(第3サイクル) 期間フリップフロップ83aに保持される。
第3サイクルに、入力データ3がステージ1 再構成可能な組み合わせ回路82に入力する 、再構成可能な組み合わせ回路82は、入力デ ータ3に対して「構成1」のハードウェア回路 処理を実行する。このときの処理結果のデ タ(中間データ3)は、次のサイクル(第4サイ ル)の期間フリップフロップ82aに保持される
第3サイクルに、ステージ2の再構成可能 組み合わせ回路83は、そのとき前段のフリッ プフロップ82aに保持されている中間データ2 対して「構成1」のハードウェア回路の処理 実行する。このときの処理結果のデータ(中 間データ2’)は、次のサイクル(第4サイクル) 期間フリップフロップ82aに保持される。
第4サイクルに、入力データ4がステージ1 再構成可能な組み合わせ回路82に入力する 、再構成可能な組み合わせ回路82は、入力デ ータ4に対して「構成1」のハードウェア回路 処理を実行する。このときの処理結果のデ タ(中間データ4)は、次のサイクル(第5サイ ル)の期間フリップフロップ82aに保持される
第4サイクルに、ステージ2の再構成可能 組み合わせ回路83は、そのとき前段のフリッ プフロップ82aに保持されている中間データ3 対して「構成1」のハードウェア回路の処理 実行する。このときの処理結果のデータ(中 間データ3’)は、次のサイクル(第5サイクル) 期間フリップフロップ83aに保持される。
第5サイクルには、ステージ1の再構成可 な組み合わせ回路82にはデータが入力されな い。ステージ2の再構成可能な組み合わせ回 83は、そのとき前段のフリップフロップ82aに 保持されている中間データ4に対して「構成1 のハードウェア回路の処理を実行する。こ ときの処理結果のデータ(中間データ4’)は 次のサイクル(第6サイクル)の期間フリップ ロップ83aに保持される。
なお、ステージ2の再構成可能な組み合わ せ回路83の出力データである中間データ1’、 中間データ2’、中間データ3’、中間データ4 ’は順に中間バッファ88に保存される。
入力データ4に対するステージ2での処理 終了した後、すなわち、第6サイクルの先頭 時刻t1に再構成可能な組み合わせ回路82,83の 回路構成を「構成1」から「構成2」に同時に 更する。このとき、制御回路43は、入力選 回路86に中間バッファ88の出力を選択させるs el制御信号を出力する。従って、第6サイクル 以降は、入力選択回路86で中間バッファ88に 存されている中間データが選択され、選択 れた中間データがステージ1の再構成可能な み合わせ回路82に入力する。
第6サイクルに、ステージ1の再構成可能 組み合わせ回路82は、中間バッファ88から出 される中間データ1’に対して「構成2」の ードウェア回路の処理を実行する。このと 、ステージ1の再構成可能な組み合わせ回路8 2からデータは出力されず、この期間はステ ジ1の出力データの空きの期間となる。
第7サイクルに、ステージ1の再構成可能 組み合わせ回路82は、中間バッファ88から出 される中間データ2’に対して「構成2」の ードウェア回路の処理を実行する。このと の処理結果のデータ(中間データ2'')は、次の サイクル(第8サイクル)の期間ステージ1のフ ップフロップ82aに保持される。
第6サイクルにおいてステージ1の出力デ タが存在しなかったことから、同じ第6サイ ルにおいてステージ2の再構成可能な組み合 わせ回路83は何も処理を実行しないことにな 。従って、次の第7サイクルの期間、ステー ジ2の再構成可能な組み合わせ回路83からはデ ータが出力されず空き期間となる。
第8サイクル、第9サイクルに、中間バッ ァ88からステージ1の再構成可能な組み合わ 回路82に中間データ3’、中間データ4’が出 され、それらの中間データに対して「構成2 」のハードウェア回路の処理が実行される。 さらに、ステージ2の再構成可能な組み合わ 回路83において、ステージ1の処理結果のデ タに対して「構成2」のハードウェア回路の 理が実行される。
以上のような回路動作により処理レーテン
4の入力データ1~4に対する処理を2個の再構
可能な組み合わせ回路82、83を用いて実現す
ことができる。
上述した第4の実施の形態によれば、再構成
可能な回路81を複数のステージで構成し、最
ステージのデータを先頭のステージに帰還
せることで処理レーテンシの大きい処理を
ないハードウェア構成の回路で処理するこ
ができる。これにより、半導体集積回路上
形成する再構成可能な回路81のデバイス面
を小さくできる。また、1回目と2回目で各ス
テージの回路構成を変更することで同一のデ
ータに対して異なるハードウェア回路の処理
を少ない回路規模で実現できる。
また、DMAコントローラ35の内部に再構成 能な組み合わせ回路81を設けることで、入力 データを集積回路内部の別の回路で処理する ためにデータをDMA転送し、あるいは処理結果 のデータをDMA転送する必要が無くなるので、 データのDMA転送の転送効率を高めることがで きる。
第4の実施の形態では、最終ステージの出 力を先頭のステージに戻しているが、出力選 択回路の出力を先頭のステージに帰還させる 経路を設け、ステージ数と入力データの処理 レーテンシに応じて出力選択回路87で選択さ た途中のステージの出力データを先頭のス ージに戻すようにしても良い。
ところで、上記の第4の実施の形態では、 最後の入力データに対する最終ステージでの 処理が終了した後、各ステージのハードウェ ア構成を同時に変更した後、中間バッファ88 保存した処理途中のデータ(中間データ)を 頭のステージに再度入力している。そのた データが出力されない空きのサイクルが発 している。この空きのサイクルは中間デー を先頭のステージに再入力するたびに発生 、ステージ数が多くなるほど空きのサイク 数も大きくなる。再構成可能な回路81がn段 ステージで構成されているとすると、(n-1)サ イクル分の空きサイクルが発生する。
この空きサイクルの問題は、再構成可能 回路でチャネル毎に異なる処理を実行させ 場合にも発生する。例えば、複数のステー からなる再構成可能な回路において、チャ ル1のデータに対して「構成1」の処理を実 し、チャネル2のデータに対して「構成2」の 処理を実行する場合、チャネル1のデータと ャネル2のデータが連続して入力する場合で 、チャネル1のデータに対する最終ステージ の処理が終了しないと、ステージ全体のハー ドウェア構成を変更できない。従って、この 場合も、ステージ数をnとすると、(n-1)サイク ル分の空きが発生してしまう。
図11は、上記の空きサイクルの問題を解決
る本発明の第5の実施の形態の再構成可能な
路91のブロック図である。
この第5の実施の形態は、再構成可能な回路
91の各ステージの回路構成を順に変更するこ
で空きサイクルの発生を防止している。
図11に示す再構成可能な回路91は、パイプ ライン構成の4ステージの再構成可能な組み わせ回路92、93、94、95と、構成情報を記憶す る4個の構成情報メモリ96、97、98、99と、3個 フリップフロップ100,101,102と、入力選択回路 103と、出力選択回路104とからなる。フリップ フロップ100、101、102は、CM制御信号を1サイク ル(処理サイクル)の周期に同期したタイミン で順にラッチする。再構成可能な組み合わ 回路92~95は、処理結果のデータを保持する リップフロップ92a~95aを有する。
次に、第5の実施の形態の再構成可能な回路
91の動作を、図12のタイミングチャートを参
して説明する。
図12のタイミングチャートは、処理レーテ
シが「4」のチャネル1の入力データ1~4とチャ
ネル2の入力データ1~4が連続して入力する場
に、チャネル1の入力データ1~4に対してステ
ジ1~4で「構成1」の処理を行い、チャネル2
入力データ1~4に対してステージ1~4で「構成2
の処理を行う場合の動作タイミングを示し
いる。
図9に示す第4の実施の形態の再構成可能 回路81で上記の2チャネルの入力データに対 る処理を行うと、チャネル1の4番目のデータ に対する最終ステージでの処理が終わるまで 各ステージの回路構成を変更することができ ない。そのためチャネル2の入力データを再 成可能な回路81に入力するまで3サイクル待 され、その分空きサイクルが発生する。
これに対してこの第5の実施の形態におい ては、チャネル1の最後の入力データ4がステ ジ1に入力して、その入力データ4に対する テージ1における処理が終了して次のサイク が始まる時刻t1(図12に示す時刻t1)に、ステ ジ1の再構成可能な組み合わせ回路92の回路 成を「構成1」から「構成2」に変更する。こ のとき、他のステージ2~4の回路構成は変更し ない。そして、次の第2サイクルの開始時刻t2 に、ステージ2の再構成可能な組み合わせ回 93の回路構成を「構成2」に変更する。さら 、次の第3サイクルの開始時刻t3にステージ3 再構成可能な組み合わせ回路94の回路構成 「構成2」に変更する。最後に、第4サイクル の開始時刻t4に、ステージ4の再構成可能な組 み合わせ回路95の回路構成を「構成2」に変更 する。各ステージの回路構成の変更は、構成 情報を指定するCM制御信号を、図11のフリッ フロップ100、101、102に順にシフトさせるこ で実現している。
時刻t1に制御回路43から「構成2」を指定 るCM制御信号(アドレス)が出力されると、構 情報メモリ96からそのCM制御信号で指定され るアドレスの構成情報がステージ1の再構成 能な組み合わせ回路92に出力される。その結 果、ステージ1の再構成可能な組み合わせ回 92の回路構成は「構成2」に変更される。
時刻t1を開始時刻とする第1サイクルに、 テージ1の再構成可能な組み合わせ回路92は バッファ44i(バッファ44a~44nの中の特定のバ ファを指すものとする)から出力されるチャ ル2の1番目の入力データ1に対して「構成2」 のハードウェア回路の処理を実行する。この ときの処理結果のデータ(図12に斜線で示すデ ータD1)は、次のサイクル(第2サイクル)の期間 ステージ1のフリップフロップ92aに保持され 。
次の第2サイクルの開始時刻t2にフリップ ロップ100にCM制御信号がラッチされ、「構 2」を指定するCM制御信号がステージ2の構成 報メモリ97に出力される。その結果、構成 報メモリ97から「構成2」の構成情報が出力 れ、ステージ2の再構成可能な組み合わせ回 93の回路構成が「構成2」に変更される。
従って、第2サイクルにおいては、ステー ジ1の再構成可能な組み合わせ回路92は、チャ ネル2の2番目の入力データ2に対して「構成2 のハードウェア回路の処理を実行し、ステ ジ2の再構成可能な組み合わせ回路93は、そ ときステージ1のフリップフロップ92aに保持 れているデータD1に対して「構成2」のハー ウェア回路の処理を実行する。ステージ1の 処理結果のデータD2とステージ2の処理結果の データD1は、それぞれ次のサイクル(第3サイ ル)の期間、ステージ1のフリップフロップ92a とステージ2のフリップフロップ93aに保持さ る。
なお、同じ入力データであっても各ステ ジの出力データは異なる値となるが、説明 簡単にするために図12においては、各ステ ジの出力データを全てD1、D2、D3、D4で表して ある。
次の第3サイクルの開始時刻t3にフリップ ロップ101にCM制御信号がラッチされ、「構 2」を指定するアドレスがステージ2の構成情 報メモリ98に出力される。その結果、構成情 メモリ98から「構成2」の構成情報が出力さ 、ステージ3の再構成可能な組み合わせ回路 94の回路構成が「構成2」に変更される。
従って、第3サイクルにおいては、ステー ジ1の再構成可能な組み合わせ回路92は、チャ ネル2の3番目の入力データ3に対して「構成2 のハードウェア回路の処理を実行し、ステ ジ2の再構成可能な組み合わせ回路93は、そ ときステージ1のフリップフロップ92aに保持 れているデータD2に対して「構成2」のハー ウェア回路の処理を実行する。さらに、ス ージ3の再構成可能な組み合わせ回路94は、 のときステージ2のフリップフロップ93aに保 持されているデータD1に対して「構成2」のハ ードウェア回路の処理を実行する。
次の第4サイクルの開始時刻t4にフリップ ロップ102にCM制御信号がラッチされ、「構 2」を指定するアドレスがステージ4の構成情 報メモリ99に出力される。その結果、構成情 メモリ99から「構成2」の構成情報が出力さ 、ステージ4の再構成可能な組み合わせ回路 95の回路構成が「構成2」に変更される。
従って、第4サイクルにおいては、ステー ジ1の再構成可能な組み合わせ回路92は、チャ ネル2の4番目の入力データ4に対して「構成2 のハードウェア回路の処理を実行し、ステ ジ2の再構成可能な組み合わせ回路93は、そ ときステージ1のフリップフロップ92aに保持 れているデータD3に対して「構成2」のハー ウェア回路の処理を実行する。また、ステ ジ3の再構成可能な組み合わせ回路94は、そ ときステージ2のフリップフロップ93aに保持 されているデータD2に対して「構成2」のハー ドウェア回路の処理を実行する。さらに、ス テージ4の再構成可能な組み合わせ回路95は、 そのときステージ3のフリップフロップ94aに 持されているデータD1に対して「構成2」の ードウェア回路の処理を実行する。
上述した第5の実施の形態によれば、再構 成可能な組み合わせ回路92~95の回路構成を順 変更することで、各ステージの再構成可能 組み合わせ回路92~95の出力に空きサイクル 発生するのを防止できる。これにより再構 可能な回路91の処理効率を高めることができ る。
また、DMAコントローラ35の内部に再構成 能な回路91を設けることで、入力データを集 積回路上の別の回路にDMA転送し、また処理結 果のデータをDMA転送する必要が無くなるので データ転送時間を減らすことができる。
次に、図13は、本発明の第6の実施の形態の
構成可能な回路201のブロック図である。
この第6の実施の形態と第5の実施の形態の
なる点は、構成情報メモリ202~205の構成情報
プロセッサコア32から設定できるようにし
点である。
再構成可能な回路201の回路構成を変更す ときには、プロセッサコア32がデータバス37 に変更したい構成情報を出力し、制御回路43 構成情報の書き込みを指示する。制御回路4 3は、書き込み対象の構成情報メモリ202~205の き込みアドレスをCM制御信号として出力す 。最初の書き込みサイクルでは、このCM制御 信号で指定される構成情報メモリ202のアドレ スにデータバス37に出力された構成情報が書 込まれる。その結果、ステージ1の再構成可 能な組み合わせ回路92の回路構成が、そのと 書き込まれた構成情報に対応する構成に変 される。
次のクロック信号clk(サイクルに同期した 信号)の立ち上がりのタイミングでCM制御信号 がフリップフロップ100にラッチされる。そし て、このCM制御信号で指定されるステージ2の 構成情報メモリ203の該当するアドレスにプロ セッサコア32から出力された構成情報が書き まれる。その結果、ステージ2の再構成可能 な組み合わせ回路93の回路構成が、そのとき 成情報メモリ203に書き込まれた構成情報に づいて変更される。なお、このときプロセ サコア32からデータバス37に出力する構成情 報を変更すれば、ステージ2の回路構成をス ージ1の回路構成と異ならせることができる
次のサイクルの立ち上がりタイミングでC M制御信号がフリップフロップ101にラッチさ る。そして、このCM制御信号で指定されるス テージ3の構成情報メモリ204の該当するアド スにそのときデータバス37に出力されている 構成情報が書き込まれる。その結果、ステー ジ3の再構成可能な組み合わせ回路204の回路 成が、そのとき構成情報メモリ204に書き込 れた構成情報に基づいて変更される。
次のサイクルの立ち上がりタイミングでC M制御信号がフリップフロップ102にラッチさ る。そして、このCM制御信号で指定されるス テージ4の構成情報メモリ205の該当するアド スにそのときデータバス37に出力されている 構成情報が書き込まれる。その結果、ステー ジ4の再構成可能な組み合わせ回路95の回路構 成がそのとき構成情報メモリ205に書き込まれ た構成情報に基づいて変更される。
上述した第6の実施の形態によれば、プロ セッサコア32が各ステージの構成情報メモリ2 02~205の構成情報を個別に設定することができ るので、再構成可能な回路201の各ステージの 回路構成を個別に変更することができる。こ れにより、再構成可能な回路201の出力に空き サイクルが生じるのを防止でき、再構成可能 な回路201のデータ処理効率を高めることがで きる。
また、DMAコントローラ35の内部に再構成 能な回路91を設けることで、入力データに対 して特定のハードウェアの処理を実行する集 積回路の他の回路にデータをDMA転送し、処理 結果のデータをDMA転送する必要が無くなるの でデータ転送時間を減らすことができる。
次に、図14は、本発明の第7の実施の形態の
構成可能な回路301のブロック図である。
この第7の実施の形態と第6の実施の形態の
なる点は、構成情報メモリ302~305への構成情
の書き込みをDMA転送の一部として行うよう
した点である。
構成情報メモリ302~305の構成情報を書き換 える場合には、プロセッサコア34は、特定の ャネル(構成情報メモリへの書き込みだけを 行う特定のチャネル)、あるいは一般のデー 転送用のチャネルを用いてデータバス37上に 構成情報を出力する。プロセッサコア34は、 時に制御回路43に特定の構成情報メモリへ 構成情報の書き込みを指示する。
この第7の実施の形態では、制御回路43か 各構成情報メモリ302~305に専用のCM制御信号 出力され、セレクタ103で選択された入力デ タが各構成情報メモリ302~305に入力している 。従って、任意の構成情報メモリ302~305の書 込みアドレスを指定するCM制御信号を出力し 、プロセッサコア32が入力データとして構成 報を出力することで各構成情報メモリ302~305 に個別に任意の構成情報を書き込むことがで きる。
例えば、プロセッサコア32が、入力デー として特定の構成情報を出力し、制御回路43 が、ステージ1の構成情報メモリ302の書き込 アドレスを指定するCM制御信号を出力するこ とで、ステージ1の構成情報メモリ302に所望 構成情報を書き込むことができる。構成情 メモリ302に書き込まれた構成情報は、ステ ジ1の再構成可能な組み合わせ回路92に出力 れ、ステージ1の回路構成がその構成情報に づいて変更される。他のステージの構成情 メモリ303~305についても同様にして構成情報 の書き込みを行うことができる。
上述した第7の実施の形態によれば、プロ セッサコア32がDMA転送を利用して各ステージ 構成情報メモリ302~305に構成情報を個別に書 き込むことができる。これにより、各ステー ジの再構成可能な組み合わせ回路92~95の構成 順に変更して各ステージで連続してデータ 処理することが可能となるので、再構成可 な組み合わせ回路92~95の出力に空きサイク が発生するのを防止でき、データ処理効率 高めることができる。
また、DMAコントローラ35の内部に再構成 能な回路301を設けることで、入力データを 積回路の別の回路にDMA転送し、処理結果の ータをDMA転送する必要が無くなるのでデー 転送時間を減らすことができる。
ここで制御回路43の回路構成の一例を、図15
と図16~図20を参照して説明する。
図15は、制御回路43の構成を示す図である。
制御回路43は、構成情報メモリの書き込みア
レスを指定するCM制御信号を生成するCM制御
信号生成回路401と、入力選択回路103等の選択
信号であるsel制御信号を生成するsel制御信号
生成回路402と、出力選択回路104等の選択信号
であるsel2制御信号を生成するsel2制御信号生
回路403を有する。
また、制御回路43は、再構成可能な回路 利用可能となったことを示すstart信号を生成 するstart信号生成回路404と、チャネルCh選択 号を生成するチャネル選択信号生成回路405 、構成情報メモリ84等のアドレスの更新周期 を示すupdate信号を生成するupdate信号生成回路 406と、update_timing信号を生成するupdateタイミ グ信号生成回路407と、その他の制御信号生 回路408とを有する。
最初に、図2の制御レジスタ群42について説
する。図2には示していないが制御レジスタ
群42には、以下の5種類のレジスタが設けられ
ている。
CMアドレスレジスタCM-ADRS-1~nには、構成情報
メモリ84等の先頭アドレスが保持される。
リピートレジスタRPT-1~nには、入力データ に対して要求された処理を完了するために、 再構成可能な回路81等のパイプライン(ステー ジ)の先頭に処理途中のデータを繰り返し入 するリピート回数が保持される。
出力選択レジスタOUTSEL-1~nには、出力選択回
路87等の選択信号が保持される。
アップデータレジスタUPDATE-1~nには、構成情
報メモリ84等のアドレスを更新する周期が保
される。
転送バースト長レジスタBST-1~nには、入力 データの転送バースト長から「1」を減算し 値が保持される。例えば、データのバース 長が「4」であれば、該当する転送バースト レジスタBST1~nには「3」が格納される。
以上のことを前提にして制御回路43の個々
回路について説明する。図16は、CM制御信号
成回路401の回路図である。
CM生後信号生成回路401は、セレクタ501と、
リップフロップ502と、加算器503とを有する
セレクタ501は、start信号がイネーブルのとき
、チャネル選択信号で指定されるCMアドレス
ジスタCM-ADRS-1~nの値を選択してCMアドレスカ
ウンタ502に出力する。また、セレクタ501は、
start信号をインバータINV1で反転した信号がイ
ネーブルのとき、つまりstart信号がディセー
ルのとき、フリップフロップ502の出力を加
器503で「+1」した値を選択してフリップフ
ップ502に出力する。
フリップフロップ502は、ORゲートOR1に入 するstart信号またはupdate信号がイネーブルの とき、サイクルに同期したタイミングでセレ クタ501の出力をラッチする。フリップフロッ プ502は、CMアドレスカウンタとして機能し、s tart信号がイネーブルになったとき、CMアドレ スレジスタCM-ADRS-1~nの内の特定のCMアドレス ジスタの値を初期値としてロードしてその ドレスをCM制御信号として出力する。そして 、update信号が入力する毎に「+1」したアドレ をCM制御信号として出力する。
図17は、sel制御信号生成回路402の回路図 ある。sel制御信号生成回路402は、初期値「1 と、減算回路513の出力の一方を選択して出 するセレクタ511と、セレクタ511の出力をsel 御信号の上位ビット(1ビット目)の値として 力するフリップフロップ512と、フリップフ ップ512の値が「0」でないか否かを判定する 判定回路514と、判定回路514の出力とupdate_timin g信号の論理積を取るANDゲートAND1とを有する また、sel制御信号生成回路402は、転送バー ト長レジスタBST-1~nの中の指定されたレジス タの値を保持するフリップフロップ515と、フ リップフロップ515の出力が「0」でないか否 を判定し、判定結果をsel制御信号の下位ビ ト(0ビット目)の値として出力する判定回路51 6とを有する。
セレクタ511は、start信号がイネーブルと ったとき「1」を出力し、start信号をインバ タINV2で反転した信号がイネーブルとなった き、つまりstart信号がディセーブルのとき selフラグの値を「-1」した値を出力する。
フリップフロップ512は、ORゲートOR2を介 て入力するstart信号がイネーブルとなったと き初期値「1」をロードしてsel制御信号の上 ビットの値として出力する。初期値「1」を ードした後、update信号がイネーブルになっ とき、初期値「1」から「1」を減算した値 0」をsel制御信号の上位ビットの値として出 する。
判定回路516は、フリップフロップ515にラ チされた転送バースト長レジスタBST-1-nの値 が「0」以外のとき、つまり転送バースト長 「2」以上のとき、sel制御信号の下位ビット 値として「1」を出力し、転送バースト長が 「1」のとき、sel制御信号の下位ビットの値 して「0」を出力する。
図18は、sel2制御信号生成回路403の回路図 ある。sel2制御信号生成回路403は、チャネル 選択信号により指定される出力選択レジスタ OUTSEL-1~nの値を保持してsel2制御信号として出 するフリップフロップ521からなる。出力選 レジスタOUTSEL-1~nには、例えば、図9の出力 択レジスタ87のどの入力を選択するかを決め る選択信号が記憶されている。
図19は、update信号生成回路406の回路図で る。update信号生成回路406は、チャネル選択 号により指定されるリピートレジスタRPT-1~n 値と、減算器533でデクリメントされた値の 方を選択して出力するセレクタ531と、セレ タ531の出力をラッチするリピートカウンタ5 32と、リピートカウンタ532の出力が「0」以外 か否かを判定する判定回路534と、判定回路534 の出力とupdate_timing信号の論理積を取った信 をupdate信号として出力するANDゲートAND2とか なる。
セレクタ531は、start信号がイネーブルの き、リピートレジスタRPT-i(RPT1~nの中の1つ)の 値を選択し、start信号をインバータINV3で反転 した信号がイネーブルのとき、つまりstart信 がディセーブルのとき、リピートカウンタ5 32の値をデクリメントした値を選択してリピ トカウンタ532に出力する。
リピートカウンタ532は、start信号がイネ ブルとなったとき、リピートレジスタRPT-iの 値を初期値としてロードする、また、update信 号がイネーブルになったとき、減算器533でデ クリメントされた値をラッチして出力する。 例えば、リピートレジスタRPT-iの値が「1」の ときには、start信号がイネーブルとなったと 、リピートカウンタ532に「1」がロードされ る。判定回路534は、リピートカウンタ532の値 が「0」でないことからハイレベルの信号を 力する。このときupdateタイミング信号がイ ーブルとなると、ANDゲートAND2から出力され update信号がイネーブルとなる。
図20は、updateタイミング信号生成回路407 回路図である。updateタイミング信号生成回 407は、アップデートレジスタUPDATE-1~nの値と 減算器543の出力の一方を選択して出力する レクタ541と、セレクタ541の出力をラッチす アップデートカウンタ542と、アップデータ ウンタ542の出力が「0」でないか否かを判定 する判定回路544とを有する。判定回路544は、 アップデートカウンタ542の値が「0」でない きハイレベルの信号をORゲートOR4に出力し、 アップデートカウンタ542の値が「0」のとき ーレベルの信号をORゲートOR4に出力する。
また、updateタイミング信号生成回路407は アップデートカウンタ542の出力をラッチす フリップフロップ545と、アップデートカウ タ542の出力が「0」か否かを判定する判定回 路546と、フリップフロップ545の出力が「1」 否かを判定する判定回路547と、判定回路546 判定回路547の出力の論理積を取り、その結 をupdate timing 信号として出力するANDゲートA ND3とを有する。
アップデートカウンタ542のイネーブル端 には、start信号とupdate信号のORを取った信号 と、判定回路544の出力とがORゲートOR4を介し 入力している。従って、アップデートカウ タ542は、start信号またはupdate信号がイネー ルのとき、アップデートレジスタUPDATE-i(UPDAT E-1~nの内の1つ)の値を初期値としてロードす 。また、判定回路544からはアップデートカ ンタ542のカウント値が「0」となるまでハイ ベルの信号が出力されるので、アップデー カウンタ542の値は毎サイクルデクリメント れ、アップデートカウンタ542の値が「0」と なったとき、ANDゲートAND3から出力されるupdat e_timing信号がイネーブルになる。
ここで、制御回路43の動作を、図21のタイ ミングチャートを参照して説明する。図21の イミングチャートは、図9に示す再構成可能 な回路81にバースト長が「4」、処理レーテン シが「4」の入力データが入力する場合の動 タイミングを示している。
この場合、処理レーテンシが「4」で、再 構成可能な回路81のパイプラインの段数(ステ ージ数)が「2」であるので、再構成可能な回 81のステージの先頭に処理結果のデータを り返し入力するリピート回数は「1」となる 従って、この場合のリピートレジスタRPT-i 値は「1」となる。
また、構成情報メモリ84,85のアドレスを 新する周期は、バースト長が「4」でステー 数が「2」であるので、更新周期を保持する アップデートレジスタUPDATE-iの値は「4+2-2」 「4」となる。また、処理レーテンシが「4」 であるので、転送バースト長レジスタBST-iの は「3」となる。
図20に示すupdateタイミング信号生成回路40 7のアップデートカウンタ542は、start信号がイ ネーブルとなったとき、アップデートレジス タUPDATE-iから初期値として「4」をロードし、 ロードした値が「0」になるまで毎サイクル クリメントする。
上記のupdateタイミング信号生成回路407の 作を、図21のタイミングチャートを参照し 説明すると、start信号がイネーブルとなった とき、アップデートカウンタ542に初期値「4 がラッチされ、その値がサイクル毎にデク メントされ、5サイクル目にカウント値が「0 」となる。カウント値が「0」になると、判 回路546の出力がハイレベルとなり、このと フリップフロップ545には1サイクル前のアッ デートカウンタ542の値「1」がラッチされて いるので、判定回路547の出力はハイレベルと なる。よって、アップデートカウンタ542の値 が「0」となったとき、ANDゲートAND3から出力 れるupdate timing信号がハイレベル(イネーブ )になる。
図19に示すupdate信号生成回路406のリピー カウンタ532は、start信号がイネーブルになっ たとき、チャネル選択信号で指定されるリピ ートレジスタRPT-iから初期値として「1」をロ ードする。判定回路534は、リピートカウンタ 532の値が「0」でないと判定するとハイレベ の信号を出力するので、このときupdate_timing 号がハイレベル(イネーブル)となると、AND ートAND2からハイレベル(イネーブル)のupdate 号が出力される。この結果、図21に示すよう に第5サイクルにupdate timing信号とupdate信号が イネーブルになる。
update信号がイネーブルになると、リピー カウンタ532のイネーブル端子がイネーブル なり、リピートカウンタ532の値がサイクル 同期したタイミングでデクリメントされ、 ピートカウンタ532の値が「0」に変化する。 リピートカウンタ532の値が「0」となると、 定回路534の出力はローレベルになるので、 れ以降はupdate_timing信号がイネーブルとなっ もupdate信号はディセーブルのままとなる。
図17のsel制御信号生成回路402は、start信号 がイネーブルになったとき、初期値「1」が リップフロップ(selフラグ)512にラッチされ、 selフラグの値は「1」となる。そして、第5サ クルにupdate_timing信号がイネーブルとなった とき、selフラグの値がデクリメントされselフ ラグの値は「0」になる(図21参照)。このとき 転送バースト長レジスタBST-iの値は「3」で 判定回路516の出力は「1」となっているので 、sel制御信号の下位ビットの値は「1」とな 。
従って、図21に示すように、start信号がイ ネーブルになった後、前半の5サイクルの期 は、sel制御信号の上位ビットは「1」となり 位ビットも「1」となる。また、update_timing 号とupdate信号がイネーブルになった後、後 の5サイクルの期間は、sel制御信号の上位ビ トは「0」となり下位ビットは「1」となる
この結果、図9の入力選択回路86は、前半 5サイクルは入力データ1~4を選択してステー ジ1の再構成可能な組み合わせ回路82に出力す る。また、後半の5サイクルは、中間バッフ 88に保存されている処理途中のデータ1~4を選 択してステージ1の再構成可能な組み合わせ 路82に出力する。
次に、実施の形態の再構成可能な回路を有
るDMAコントローラを搭載した半導体集積回
の一例を説明する。
図22は、画像処理用LSI601のブロック図であ
。画像処理用LSI601は、CCD(電荷結合素子)から
の入力信号の前処理をする前処理回路602、画
質向上のための処理を行う画質処理回路603,
像度を変換するための解像度変換回路604、
空間を変換するための色空間変換回路605等
必要であり、これらの回路をLSI内部に設け
必要がある。
本実施の形態では、図23に示すように画 処理用LSI701のDMAコントローラ702の内部に設 た再構成可能な回路703で種々のハードウェ 回路を実現できるので回路面積を削減する とができる。また、DMAコントローラ702上の 成情報メモリの構成情報を書き換えるだけ 、再構成可能な回路703の回路構成を変更す ことができるので、ハードウェア回路を設 する場合に比べてLSIの開発期間を短縮する とも可能である。さらに、構成情報を変更 ることでLSIが完成した後でも、バグの修正 性能向上をはかることもできる。
本発明は上述した実施の形態に限らず、例
ば、以下のように構成しても良い。
(1)DMAコントローラの内部に設ける再構成可能
な回路の構成は、実施の形態に示したステー
ジ数に限らない。必要な処理サイクル数に応
じて任意に決めることができる。
(2)制御回路43のsel制御信号生成回路402,update_ti
ming信号生成回路407等の回路構成も実施の形
に示したものに限らず他の構成の回路でも
い。
