(57)【要約】【課題】パイプライン処理の終了時刻を正確に判定でき、コンフィギュレーションの切り替えを効率的に行う。【解決手段】再構成型プロセッサ１００は、ハードウェアコンフィギュレーションの情報により、パイプライン処理を行うためのコンフィギュレーションの実行時間を算出し、処理が終了するまでのクロックサイクルを確定する。確定したクロックサイクルと実際の経過クロック数をカウンタ１０８によって比較し、経過クロック数がクロックサイクルと等しくなると、パイプライン処理の終了を判定し、構成制御部１０６へ通知する。【選択図】        図１
2006018413.tif 000002
【特許請求の範囲】
【請求項１】
複数のＡＬＵ（Ａｒｉｔｈｍｅｔｉｃ  ａｎｄ  Ｌｏｇｉｃ  Ｕｎｉｔ）を有するＡＬＵモジュールを複数接続する接続構成を切り替えながら所定の演算処理を実行するプロセッサにおいて、
前記ＡＬＵモジュールの接続構成毎の実行時間を算出する実行時間算出手段と、
前記演算処理の実行サイクルをクロックカウントするクロックカウンタと、
前記クロックカウンタによりカウントされたクロック数が、前記実行時間算出手段によって算出された実行時間に達したときに前記ＡＬＵモジュールの接続構成を切り替える構成制御手段と、
を備えたことを特徴とするプロセッサ。
【請求項２】
前記実行時間算出手段によって算出された前記ＡＬＵモジュールの接続構成毎の実行時間に関する情報を格納する格納手段を備え、
前記構成制御手段は、前記格納手段に格納された複数の情報から次の接続構成に対応する情報を読み出して、前記ＡＬＵモジュールの接続構成を切り替えることを特徴とする請求項１に記載のプロセッサ。
【請求項３】
前記実行時間算出手段は、複数の前記ＡＬＵモジュールを用いてパイプライン処理を行う際のパイプライン処理時間と、前記接続構成を切り替える前後の待ち時間とを加算した時間を前記実行時間として算出することを特徴とする請求項１または２に記載のプロセッサ。
【請求項４】
前記実行時間算出手段は、前記ＡＬＵモジュールのある一つの接続構成における実行時間を、前記演算処理に含まれるループ処理の実行命令数に基づいて算出することを特徴とする請求項３に記載のプロセッサ。
【請求項５】
複数のＡＬＵ（Ａｒｉｔｈｍｅｔｉｃ  ａｎｄ  Ｌｏｇｉｃ  Ｕｎｉｔ）を有するＡＬＵモジュールを複数接続する接続構成を切り替えながら所定の演算処理を実行するプロセッサにおいて、
前記ＡＬＵモジュールの接続構成毎の処理データ数を設定する設定手段と、
前記ＡＬＵモジュールの接続構成毎の処理データ数をカウントするカウンタと、
前記カウンタによりカウントされた処理データ数が、前記設定手段に設定された処理データ数に達したときに前記ＡＬＵモジュールの接続構成を切り替える構成制御手段と、
を備えたことを特徴とするプロセッサ。
【請求項６】
前記設定手段によって設定されたＡＬＵモジュールの接続構成毎の処理データ数に関する情報を格納する格納手段を備え、
前記構成制御手段は、前記格納手段に格納された複数の情報から次の接続構成に対応する情報を読み出して前記ＡＬＵモジュールの接続構成を切り替えることを特徴とする請求項５に記載のプロセッサ。
【請求項７】
前記カウンタは、
前記ＡＬＵモジュールの外部から入力される外部入力データ、
前記ＡＬＵモジュールから出力される外部出力データ、
前記ＡＬＵモジュールに設けられるメモリに書き込むデータ、または
前記ＡＬＵモジュールに設けられるメモリから読み出すデータ
のいずれか一つをカウント対象とすることを特徴とする請求項５に記載のプロセッサ。
【請求項８】
前記格納手段は、前記カウンタがカウント対象とする処理データの種別を格納することを特徴とする請求項７に記載のプロセッサ。
【請求項９】
複数のＡＬＵ（Ａｒｉｔｈｍｅｔｉｃ  ａｎｄ  Ｌｏｇｉｃ  Ｕｎｉｔ）を有するＡＬＵモジュールをパイプライン接続し、当該パイプライン接続構成を切り替えながら所定の演算処理を実行するプロセッサを用いたパイプライン再構成制御方法であって、
前記ＡＬＵモジュールの接続構成毎の実行時間を算出する実行時間算出工程と、
前記演算処理の実行サイクルをクロックカウントするクロックカウント工程と、
前記クロックカウント工程によりカウントされたクロック数が、前記実行時間算出工程によって算出された実行時間に達したときに前記ＡＬＵモジュールの接続構成を切り替える構成制御工程と、
を含むことを特徴とするパイプライン再構成制御方法。
【請求項１０】
複数のＡＬＵ（Ａｒｉｔｈｍｅｔｉｃ  ａｎｄ  Ｌｏｇｉｃ  Ｕｎｉｔ）を有するＡＬＵモジュールを複数パイプライン接続し、当該パイプライン接続構成を切り替えながら所定の演算処理を実行するプロセッサを用いたパイプライン再構成制御方法であって、
前記ＡＬＵモジュールの接続構成毎の処理データ数を設定する設定工程と、
前記ＡＬＵモジュールの接続構成毎の処理データ数をカウントするカウント工程と、
前記カウント工程によりカウントされた処理データ数が、前記設定工程によって設定された処理データ数に達したときに前記ＡＬＵモジュールの接続構成を切り替える構成制御工程と、
を含むことを特徴とするパイプライン再構成制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、再構成可能なハードウェアにおけるプロセッサおよびパイプライン再構成制御方法に関する。
【背景技術】
【０００２】
従来、アプリケーションに合わせ、動的にハードウェアの再構成を行う技術（ダイナミックリコンフィギュアラブル技術）があり、再構成可能なハードウェアを用いることで、実際の処理を行いながら、柔軟にアプリケーションに対応できる。再構成可能なハードウェア例としては、四則演算や論理演算等の処理を行う回路であるＡＬＵ（Ａｒｉｔｈｍｅｔｉｃ  ａｎｄ  Ｌｏｇｉｃ  Ｕｎｉｔ）モジュールを用いるものがある。このＡＬＵモジュールを再構成が可能なネットワークを用いて複数個接続し、各ＡＬＵモジュールによる演算処理を同時並行させるパイプライン処理を行うことにより、性能向上を図ることができる。
【０００３】
特に、ループ命令の実行の際にパイプライン処理を用いることで、効果的に実行サイクル数の削減を行える。更に、パイプライン処理でループ命令を行う際に、ループアドレス開始レジスタ、ループアドレス終了レジスタ、比較器、ループカウンタからなるループ制御装置により、ループ初期化命令の配置の最適化を行い、ループ開始に伴うオーバーヘッドの削減を行う装置が開示されている（例えば、特許文献１参照。）。
【０００４】
【特許文献１】特開平９−２３７１８６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、パイプライン処理を行わせた場合、再構成可能なハードウェア部分の配置（以下、「コンフィギュレーション」という）を切り替える契機の判定、つまり一連の処理が終了した時刻の判定が重要であり、一連の処理が終了してから再構成を行うと、切り替え時間が全体処理のオーバーヘッドとなり、性能劣化の原因となる。
【０００６】
この発明は、上述した従来技術による問題点を解消するため、パイプライン処理の終了時刻を正確に判定でき、コンフィギュレーションの切り替えを効率的に行えるプロセッサおよびパイプライン再構成制御方法の提供を目的とする。
【課題を解決するための手段】
【０００７】
上述した課題を解決し、目的を達成するため、この発明にかかるプロセッサは、複数のＡＬＵ（Ａｒｉｔｈｍｅｔｉｃ  ａｎｄ  Ｌｏｇｉｃ  Ｕｎｉｔ）を有するＡＬＵモジュールを複数接続する接続構成を切り替えながら所定の演算処理を実行するプロセッサにおいて、前記ＡＬＵモジュールの接続構成毎の実行時間を算出する実行時間算出手段と、前記演算処理の実行サイクルをクロックカウントするクロックカウンタと、前記クロックカウンタによりカウントされたクロック数が、前記実行時間算出手段によって算出された実行時間に達したときに前記ＡＬＵモジュールの接続構成を切り替える構成制御手段と、を備えたことを特徴とする。
【０００８】
この発明によれば、クロックサイクルを用いて一つのコンフィギュレーションによる演算実行の実行時間を算出することができ、ＡＬＵブロックによる実際のデータ処理状態を監視することなくパイプライン処理の終了の時期を判定できるようになる。
【０００９】
また、この発明にかかるプロセッサは、複数のＡＬＵ（Ａｒｉｔｈｍｅｔｉｃ  ａｎｄ  Ｌｏｇｉｃ  Ｕｎｉｔ）を有するＡＬＵモジュールを複数接続する接続構成を切り替えながら所定の演算処理を実行するプロセッサにおいて、前記ＡＬＵモジュールの接続構成毎の処理データ数を設定する設定手段と、前記ＡＬＵモジュールの接続構成毎の処理データ数をカウントするカウンタと、前記カウンタによりカウントされた処理データ数が、前記設定手段に設定された処理データ数に達したときに前記ＡＬＵモジュールの接続構成を切り替える構成制御手段と、を備えたことを特徴とする。
【００１０】
この発明によれば、ＡＬＵブロックが処理対象とするデータの監視を行うため、メモリのリードあるいはライトに限らず、外部からの入力、あるいは処理結果を外部出力する場合等の各状態に柔軟に対応してパイプライン処理の終了時期の判定を行うことができる。
【発明の効果】
【００１１】
本発明にかかるプロセッサおよびパイプライン再構成制御方法によれば、パイプライン処理の終了時期を性格に判定することができ、コンフィギュレーション切り替え時間の短縮を図ることができるという効果を奏する。
【発明を実施するための最良の形態】
【００１２】
以下に添付図面を参照して、この発明にかかるプロセッサおよびパイプライン再構成制御方法の好適な実施の形態を詳細に説明する。
【００１３】
再構成可能なハードウェアが一つのコンフィギュレーションを実行開始してからパイプライン処理終了を判定する構成について、以下の各実施の形態を用いて説明する。
【００１４】
（実施の形態１）
まず、クロックサイクルカウントを利用してパイプライン処理の終了判定を行う構成について説明する。図１は、実施の形態１にかかる再構成型プロセッサを示すブロック図である。
【００１５】
再構成型プロセッサ１００は、再構成可能なハードウェア部であるＡＬＵブロック１０１と、ＡＬＵブロック１０１のコンフィギュレーションの状態管理を行うシーケンサ部１０２とで構成されている。
【００１６】
（ＡＬＵブロックについて）
ＡＬＵブロック１０１は、ＡＬＵ１０３と、ＡＬＵブロック１０１で行う演算データを格納しているメモリ１０４を、それぞれ複数個装備している。ＡＬＵ１０３とメモリ１０４は、ネットワーク１０５に接続されている。メモリ１０４では、シーケンサ部１０２からの指示によりデータが読み出され、ネットワーク１０５を介してＡＬＵブロック１０１へ入力される。ＡＬＵブロック１０１では、コンフィギュレーションの情報により指定された演算を行い、演算結果をネットワーク１０５を介してメモリ１０４へ格納する。ネットワーク１０５は、ＡＬＵ１０３とメモリ１０４の接続を変更することができ、これらＡＬＵ１０３とメモリ１０４の接続は、シーケンサ部１０２から供給されるコンフィギュレーションの情報に基づいて変更（再構成）される。
【００１７】
（シーケンサ部について）
シーケンサ部１０２は、構成制御部１０６と、コンフィギュレーションメモリ１０７と、カウンタ１０８により構成されている。コンフィギュレーションメモリ１０７には、ＡＬＵブロック１０１の配置と処理内容を定めたハードウェアコンフィギュレーションと、各コンフィギュレーションが完了するまでに要するクロックサイクルの情報が格納されている。ハードウェアコンフィギュレーションは、あらかじめ設定されているものであり、クロックサイクルは、ハードウェアコンフィギュレーションの情報をコンパイルする際に確定される。
【００１８】
ハードウェアコンフィギュレーションの情報は、ＡＬＵブロック１０１へ送られ、その情報に基づきハードウェアの再構成が行われる。クロックサイクルの情報は、カウンタ１０８へ送られる。カウンタ１０８では、コンフィギュレーションメモリ１０７から送られてきたクロックサイクルの情報と、実際のクロック数の比較によりパイプライン処理終了の判定を行い、構成制御部１０６へパイプライン終了を通知する。構成制御部１０６は、パイプライン処理終了の通知を受け取り、コンフィギュレーションメモリ１０７へコンフィギュレーションの切り替え命令を行う。
【００１９】
（クロックサイクルの確定方法について）
コンフィギュレーションメモリ１０７において、ハードウェアコンフィギュレーションの情報からクロックサイクルを確定する手順について、図２および３を用いて説明する。
【００２０】
図２は、一つのコンフィギュレーションの実行時間を説明するためのタイミングチャートである。一つのデータの処理には、Ａ〜Ｄの４段の演算が必要であり、１段の演算は１クロックで行われるとする。プログラムのループ命令を行う際、パイプライン処理は１段ずつ演算ブロックをずらしながら複数のデータを同時に処理する。従って、Ｎ段の演算を行うデータがＭ個存在する場合は、パイプライン処理時間＝Ｎ＋Ｍ−１となる。実際には、コンフィギュレーション起動からパイプライン処理が開始するまでの処理時間（Ｔ１）と次のコンフィギュレーションへの切れ替えができるまでの処理時間（Ｔ２）が必ず生じるので、一つのコンフィギュレーションの実行時間＝Ｎ＋Ｍ−１＋Ｔ１＋Ｔ２となる。
【００２１】
以上のようなパイプライン処理の特徴を用いた、コンパイル時にコンフィギュレーションメモリ１０７で行われるクロックサイクルの確定の流れを図３を用いて説明する。図３は、一つのコンフィギュレーションをクロック数を用いて確定する処理を示すフローチャートである。
【００２２】
まず、これから行われる処理がループ命令であるか、例えば、プログラムがｆｏｒ文であるか、否かを判定する（ステップＳ３０１）。ループ命令であった場合（ステップＳ３０１：Ｙｅｓ）、プログラム中のループ変数の初期値および終了条件からループ回数Ｍを算出する（ステップＳ３０２）。ループ命令ではない場合（ステップＳ３０１：Ｎｏ）、処理は、ステップＳ３０１に戻り、次のプログラムのループ命令判定に移る。この値Ｍは、処理を行うデータ数を表す。
【００２３】
次に、プログラム中の一つのループ命令内の実行命令数からパイプライン段数Ｎを算出する（ステップＳ３０３）。算出された値を用い、Ｍ＋Ｎ−１の式によりパイプライン処理時間を算出する（ステップＳ３０４）。パイプライン処理時間に、前後のコンフィギュレーションの切り替えに要する時間（図２中のＴ１およびＴ２）を加算する（ステップＳ３０５）。こうして算出されたコンフィギュレーションの実行時間を単位クロック時間で割ることでクロック数が確定され（ステップＳ３０６）、作業は終了する。ある一つのコンフィギュレーションは、一つのループ処理の実行期間に対応している。
【００２４】
（パイプライン処理終了判定について）
コンフィギュレーションメモリ１０７により確定されたクロックサイクルを用いてパイプライン処理の終了判定を行う構成について説明する。図４は、クロックカウントによるパイプライン終了判定処理を示すフローチャートである。
【００２５】
まず、カウンタ１０８がコンフィギュレーションメモリ１０７から受け取ったクロックサイクルの情報から、コンフィギュレーションの完了を確認し、終了判定作業を開始する（ステップＳ４０１）。１クロック経過したか、否かの判定を行い（ステップＳ４０２）、１クロック経過した場合（ステップＳ４０２：Ｙｅｓ）、シーケンサ部１０２より設定されているレジスタ値（クロックサイクル数）とカウント値を比較する（ステップＳ４０３）。
【００２６】
１クロック経過していない場合（ステップＳ４０２：Ｎｏ）、再度経過判定を行う。レジスタ値とカウンタ値が一致すれば（ステップＳ４０４：Ｙｅｓ）、パイプライン処理終了となり、パイプライン終了通知を構成制御部１０６へ通知し（ステップＳ４０５）、作業は終了する。一致していなければ（ステップＳ４０４：Ｎｏ）、再度クロック経過判定に戻り次のクロック値とレジスタ値の比較を行う。
【００２７】
実施の形態１によれば、クロックサイクルを用いて一つのコンフィギュレーションによる演算実行の実行時間を算出することができ、ＡＬＵブロックによる実際のデータ処理状態を監視することなくパイプライン終了の時期を判定できる。これにより、ＡＬＵブロックの再構成をオーバーヘッドがない状態で効率的に実行できるようになる。
【００２８】
（実施の形態２）
次に、処理データ数のカウントを利用したパイプライン処理の終了判定について説明する。図５は、実施の形態２にかかる再構成型プロセッサを示すブロック図である。
【００２９】
再構成型プロセッサ５００は、再構成可能なハードウェア部であるＡＬＵブロック５０１と、ＡＬＵブロック５０１のコンフィギュレーションの状態管理を行うシーケンサ部５０２とで構成されている。
【００３０】
（ＡＬＵブロックについて）
ＡＬＵブロック５０１は、実施の形態１における再構成型プロセッサ１００と同じ機能と構成をもつＡＬＵ５０３、メモリ５０４、ネットワーク５０５に加え、処理データ数のカウントを行うためのレジスタ５０６、カウンタ５０７、比較器（ＣＯＭ）５０８および外部入出力を備えている。
【００３１】
レジスタ５０６には、シーケンサ部５０２からハードウェアコンフィギュレーションの情報が送られ、その情報に基づいてレジスタ値が設定される。カウンタ５０７は、図中のａ（外部入力データ）、ｂ（外部出力データ）、ｃ（メモリリードデータ）、ｄ（メモリライトデータ）の４種類のデータ数のカウントを行う。どのデータのカウントを行うかは、ハードウェアコンフィギュレーションにより指定される。比較器５０８では、レジスタ５０６とカウンタ５０７の値の比較を行い、シーケンサ部５０２へパイプライン終了を通知する。
【００３２】
（シーケンサ部について）
シーケンサ部５０２は、構成制御部５０９と、コンフィギュレーションメモリ５１０により構成される。コンフィギュレーションメモリ５１０には、各コンフィギュレーションのハードウェアコンフィギュレーションが格納されている。ハードウェアコンフィギュレーションの情報は、ＡＬＵブロック５０１へ送られその情報に基づきハードウェアの再構成が行われる。構成制御部５０９は、ＡＬＵブロック５０１から処理終了の通知を受け取り、コンフィギュレーションメモリ５１０へコンフィギュレーションの切り替え命令を行う。
【００３３】
（パイプライン処理終了判定について）
一つのコンフィギュレーションにおいて、処理すべきデータ数は決まっている。従って、この処理対象数のカウントを行い、定められたデータ数に達したときを、パイプライン処理の終了と判定する。カウント対象データは、先に述べたａ〜ｄの４種類である。各データについては、そのデータを用いた演算処理が有効であることを示すバリッド（Ｖａｌｉｄ）の情報（トークン・ビットとも呼称される）が付与されているものとする。実際に、カウンタ５０７において、カウントおよび蓄積されているのは、４種類の対象データに付与されている有効バリッドの数である。
【００３４】
以上に述べた特徴を利用し、実際にＡＬＵブロック５０１で行われているパイプライン処理終了判定作業について説明する。図６は、処理データ数のカウントによるパイプライン処理終了判定処理を示すフローチャートである。
【００３５】
まず、シーケンサ部５０２のコンフィギュレーションメモリ５１０から受け取ったハードウェアコンフィギュレーション情報より、コンフィギュレーションの完了を確認し、終了判定作業を開始する（ステップＳ６０１）。コンフィギュレーションの設定に基づき、カウント対象の有効バリッドを選択する（ステップＳ６０２）。そして、ステップＳ６０２で選択した有効バリッドの情報がカウンタ５０７に到着したか否かを判定する（ステップＳ６０３）。
【００３６】
選択した有効バリッドが到着すると（ステップＳ６０３：Ｙｅｓ）、カウンタ５０７の値をインクリメントし、比較器５０８はハードウェアコンフィギュレーションの情報により既に設定されたレジスタ５０６の値と比較する（ステップＳ６０４）。有効バリッドが到着しなければ（ステップＳ６０３：Ｎｏ）、再度、有効バリッドの到着判定を行う。カウンタ５０７の値とレジスタ５０６の値が一致すれば（ステップＳ６０５：Ｙｅｓ）、パイプライン処理は終了したこととなり、パイプライン終了通知をシーケンサ部５０２の構成制御部５０９へ通知し（ステップＳ６０６）、作業を終了する。カウンタ５０７の値とレジスタ５０６の値が一致しなければ（ステップＳ６０５：Ｎｏ）、再度、有効バリッドの到着判定に戻る。
【００３７】
上述したように、有効バリッドをカウントする構成によれば、終了時刻が予想できないような入力形態への対応が可能となる。また、コンフィギュレーション切り替えを高速化できるようになる。例えば、パイプライン段数が４段であった場合、すなわち、実施の形態１同様に、Ａ，Ｂ，Ｃ，Ｄという４種の処理を行うことで一つの入力に対する一連の処理が終了するものと仮定する。この場合、入力データの有効バリッドをカウントしておくことにより、最終データに対してＢ，Ｃ，Ｄの処理を実行している間に、シーケンサ部５０２に対して終了通知を通知することができるため、コンフィギュレーション切り替え処理の起動を早く実行開始することができるようになる。
【００３８】
実施の形態２によれば、ＡＬＵブロックが処理対象とするデータの監視を行うため、メモリのリードあるいはライトに限らず、外部からの入力、あるいは処理結果を外部出力する場合等の各状態に柔軟に対応してパイプライン処理の終了時間の判定を行うことができるようになる。
【００３９】
なお、本実施の形態で説明したパイプライン再構成契機制御の方法は、あらかじめ用意されたプログラムをコンピュータのプロセッサが実行することにより実現することができる。このプログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。またこのプログラムは、インターネット等のネットワークを介して配布することが可能な伝送媒体であってもよい。
【００４０】
（付記１）複数のＡＬＵ（Ａｒｉｔｈｍｅｔｉｃ  ａｎｄ  Ｌｏｇｉｃ  Ｕｎｉｔ）を有するＡＬＵモジュールを複数接続する接続構成を切り替えながら所定の演算処理を実行するプロセッサにおいて、
前記ＡＬＵモジュールの接続構成毎の実行時間を算出する実行時間算出手段と、
前記演算処理の実行サイクルをクロックカウントするクロックカウンタと、
前記クロックカウンタによりカウントされたクロック数が、前記実行時間算出手段によって算出された実行時間に達したときに前記ＡＬＵモジュールの接続構成を切り替える構成制御手段と、
を備えたことを特徴とするプロセッサ。
【００４１】
（付記２）前記実行時間算出手段によって算出された前記ＡＬＵモジュールの接続構成毎の実行時間に関する情報を格納する格納手段を備え、
前記構成制御手段は、前記格納手段に格納された複数の情報から次の接続構成に対応する情報を読み出して、前記ＡＬＵモジュールの接続構成を切り替えることを特徴とする付記１に記載のプロセッサ。
【００４２】
（付記３）前記実行時間算出手段は、複数の前記ＡＬＵモジュールを用いてパイプライン処理を行う際のパイプライン処理時間と、前記接続構成を切り替える前後の待ち時間とを加算した時間を前記実行時間として算出することを特徴とする付記１または２に記載のプロセッサ。
【００４３】
（付記４）前記実行時間算出手段は、前記ＡＬＵモジュールのある一つの接続構成における実行時間を、前記演算処理に含まれるループ処理の実行命令数に基づいて算出することを特徴とする付記３に記載のプロセッサ。
【００４４】
（付記５）複数のＡＬＵ（Ａｒｉｔｈｍｅｔｉｃ  ａｎｄ  Ｌｏｇｉｃ  Ｕｎｉｔ）を有するＡＬＵモジュールを複数接続する接続構成を切り替えながら所定の演算処理を実行するプロセッサにおいて、
前記ＡＬＵモジュールの接続構成毎の処理データ数を設定する設定手段と、
前記ＡＬＵモジュールの接続構成毎の処理データ数をカウントするカウンタと、
前記カウンタによりカウントされた処理データ数が、前記設定手段に設定された処理データ数に達したときに前記ＡＬＵモジュールの接続構成を切り替える構成制御手段と、
を備えたことを特徴とするプロセッサ。
【００４５】
（付記６）前記設定手段によって設定されたＡＬＵモジュールの接続構成毎の処理データ数に関する情報を格納する格納手段を備え、
前記構成制御手段は、前記格納手段に格納された複数の情報から次の接続構成に対応する情報を読み出して前記ＡＬＵモジュールの接続構成を切り替えることを特徴とする付記５に記載のプロセッサ。
【００４６】
（付記７）前記カウンタは、
前記ＡＬＵモジュールの外部から入力される外部入力データ、
前記ＡＬＵモジュールから出力される外部出力データ、
前記ＡＬＵモジュールに設けられるメモリに書き込むデータ、または
前記ＡＬＵモジュールに設けられるメモリから読み出すデータ
のいずれか一つをカウント対象とすることを特徴とする付記５に記載の再構成型プロセッサ。
【００４７】
（付記８）前記格納手段は、前記カウンタがカウント対象とする処理データの種別を格納することを特徴とする付記７に記載のプロセッサ。
【００４８】
（付記９）前記カウンタは、前記処理データに対する演算が有効であることを示す有効バリッドが付与されているデータをカウントすることを特徴とする付記５〜８のいずれか一つに記載のプロセッサ。
【００４９】
（付記１０）複数のＡＬＵ（Ａｒｉｔｈｍｅｔｉｃ  ａｎｄ  Ｌｏｇｉｃ  Ｕｎｉｔ）を有するＡＬＵモジュールをパイプライン接続し、当該パイプライン接続構成を切り替えながら所定の演算処理を実行するプロセッサを用いたパイプライン再構成制御方法であって、
前記ＡＬＵモジュールの接続構成毎の実行時間を算出する実行時間算出工程と、
前記演算処理の実行サイクルをクロックカウントするクロックカウント工程と、
前記クロックカウント工程によりカウントされたクロック数が、前記実行時間算出工程によって算出された実行時間に達したときに前記ＡＬＵモジュールの接続構成を切り替える構成制御工程と、
を含むことを特徴とするパイプライン再構成制御方法。
【００５０】
（付記１１）前記実行時間算出工程は、複数の前記ＡＬＵモジュールを用いてパイプライン処理を行う際のパイプライン処理時間と、前記接続構成を切り替える前後の待ち時間とを加算した時間を前記実行時間として算出することを特徴とする付記１０に記載のパイプライン再構成制御方法。
【００５１】
（付記１２）複数のＡＬＵ（Ａｒｉｔｈｍｅｔｉｃ  ａｎｄ  Ｌｏｇｉｃ  Ｕｎｉｔ）を有するＡＬＵモジュールを複数パイプライン接続し、当該パイプライン接続構成を切り替えながら所定の演算処理を実行するプロセッサを用いたパイプライン再構成制御方法であって、
前記ＡＬＵモジュールの接続構成毎の処理データ数を設定する設定工程と、
前記ＡＬＵモジュールの接続構成毎の処理データ数をカウントするカウント工程と、
前記カウント工程によりカウントされた処理データ数が、前記設定工程によって設定された処理データ数に達したときに前記ＡＬＵモジュールの接続構成を切り替える構成制御工程と、
を含むことを特徴とするパイプライン再構成制御方法。
【００５２】
（付記１３）前記カウント工程は、
前記ＡＬＵモジュールの外部から入力される外部入力データ、
前記ＡＬＵモジュールから出力される外部出力データ、
前記ＡＬＵモジュールに設けられるメモリに書き込むデータ、または
前記ＡＬＵモジュールに設けられるメモリから読み出すデータ、
のいずれか一つをカウント対象とすることを特徴とする付記１２に記載のパイプライン再構成制御方法。
【産業上の利用可能性】
【００５３】
以上のように、本発明にかかるプロセッサおよびパイプライン再構成制御方法は、ハードウェアの構成を切り替える再構成型のプロセッサに有用であり、特に、コンピュータ処理の高効率化、高速化を行うためにＡＬＵブロックの組み合わせを切り替えて用いるクラスタの再構成の用途に適している。
【図面の簡単な説明】
【００５４】
【図１】実施の形態１にかかる再構成型プロセッサを示すブロック図である。
【図２】一つのコンフィギュレーションの実行時間を説明するためのタイミングチャートである。
【図３】一つのコンフィギュレーションをクロック数を用いて確定する処理を示すフローチャートである。
【図４】クロックカウントによるパイプライン終了判定処理を示すフローチャートである。
【図５】実施の形態２にかかる再構成型プロセッサを示すブロック図である。
【図６】処理データ数のカウントによるパイプライン処理終了判定処理を示すフローチャートである。
【符号の説明】
【００５５】
１００，５００  再構成型プロセッサ
１０１，５０１  ＡＬＵブロック
１０２，５０２  シーケンサ部
１０３  ＡＬＵ
１０４  メモリ
１０５，５０５  ネットワーク
１０６，５０９  構成制御部
１０７，５１０  コンフィギュレーションメモリ
１０８，５０７  カウンタ
５０６  レジスタ
５０８  比較器
【図１】
2006018413.tif 000003
【図２】
2006018413.tif 000004
【図３】
2006018413.tif 000005
【図４】
2006018413.tif 000006
【図５】
2006018413.tif 000007
【図６】
2006018413.tif 000008