(57)【要約】  本発明のデータ処理装置は、複数の演算器及び複数のプログラマブル配線が設けられ、それらの演算器及びプログラマブル配線の動作内容を設定するための構成情報をクロック信号が入力される度に切り換え、構成情報にしたがってそれらの演算器及びプログラマブル配線を設定して演算処理を実行する再構成可能ハードウェア（１０）、及び構成情報に対応してマスタクロックによるクロック信号又はマスタクロックから任意のクロックパルスを間引いたクロック信号を再構成可能ハードウェア（１０）に入力するクロック間引部（５００）を含む複数のタイル（２０）と、複数のタイル（２０）の間に設けられ、隣接するタイルのプログラマブル配線同士を接続するタイル間配線（６００）と、を有する構成である。
2009157441.tif 000002
【特許請求の範囲】
【請求項１】
複数の演算器及び複数のプログラマブル配線が設けられ、前記複数の演算器及び複数のプログラマブル配線の動作内容を設定するための構成情報を複数保持し、クロック信号が入力される度に前記構成情報を切り換え、該構成情報にしたがって前記複数の演算器及び複数のプログラマブル配線を設定して演算処理を実行する再構成可能ハードウェア、及び前記構成情報に対応してマスタクロックによるクロック信号又は該マスタクロックから任意のクロックパルスを間引いたクロック信号を前記再構成可能ハードウェアに入力するクロック間引部を含む複数のタイルと、
前記複数のタイルの間に設けられ、隣接するタイルの前記プログラマブル配線同士を接続するタイル間配線と、
を有するデータ処理装置。
【請求項２】
前記複数のタイルのうち少なくとも１つのタイルについて、隣接する少なくとも２つのタイルのそれぞれと前記タイル間配線を介して接続されるプログラマブル配線の両端を等電位に設定するための情報が前記複数の構成情報の全てに記述されている、請求項１記載のデータ処理装置。
【請求項３】
前記少なくとも１つのタイルに相当する第１のタイルに隣接する第２及び第３のタイルが前記２つのタイルとして設けられ、
前記第２及び前記第３のタイルのそれぞれの前記クロック間引部から前記再構成可能ハードウェアに入力されるクロック信号の立ち上がりエッジが同一である、請求項２記載のデータ処理装置。
【請求項４】
前記複数のタイルのそれぞれに設けられ、前記再構成可能ハードウェアのスループットを定期的に検出するスループット検出部と、
前記複数のタイルのスループット検出部及びクロック間引部と接続され、複数の前記スループット検出部からスループット情報を受け取り、複数の該スループット情報に基づいて複数の前記再構成可能ハードウェアのスループットを均等にするためのクロック信号を前記クロック間引部に設定する動作周波数設定部と、
をさらに有する請求項１または２記載のデータ処理装置。
【請求項５】
複数の演算器及び複数のプログラマブル配線が設けられ、前記複数の演算器及び複数のプログラマブル配線の動作内容を設定するための構成情報を複数保持し、クロック信号が入力される度に前記構成情報を切り換え、該構成情報にしたがって前記複数の演算器及び複数のプログラマブル配線を設定して演算処理を実行する再構成可能ハードウェアを含む複数のタイルを有するデータ処理装置の前記複数の構成情報からなるオブジェクトコードを生成するための情報処理装置であって、
前記再構成可能ハードウェアで実行される演算処理の設定内容を含み、動作周波数の異なる第１及び第２のオリジナルネットリストが入力されると、該第１のオリジナルネットリストを第３及び第４のネットリスト並びに中継配線の設定内容を含むサブネットリストに分割するネットリスト分割部と、
前記サブネットリストと前記第２のオリジナルネットリストを統合して第５のネットリストを生成するネットリスト統合部と、
前記複数のタイルのうち、動作周波数が同一である第１及び第２のタイルと、これら２つのタイルに挟まれ、これら２つのタイルとは動作周波数の異なる第３のタイルとに対して、前記第３のネットリストを前記第１のタイルの構成情報に対応させ、前記第４のネットリストを前記第２のタイルの構成情報に対応させ、前記第５のネットリストを前記第３のタイルの構成情報に対応させる旨の情報を含む前記オブジェクトコードを生成する処理配置部と、
を有する情報処理装置。
【請求項６】
前記ネットリスト統合部は、
前記第５のネットリストを生成する際、前記第１及び前記第２のタイルのそれぞれと接続されるプログラマブル配線の両端を等電位にする前記中継配線を設定するための前記サブネットリストを前記第３のタイルの前記複数の構成情報の全てに記述する、請求項５記載の情報処理装置。
【請求項７】
複数の演算器及び複数のプログラマブル配線が設けられ、前記複数の演算器及び複数のプログラマブル配線の動作内容を設定するための構成情報を複数保持し、クロック信号が入力される度に前記構成情報を切り換え、該構成情報にしたがって前記複数の演算器及び複数のプログラマブル配線を設定して演算処理を実行する再構成可能ハードウェアを含む複数のタイルを有するデータ処理装置の前記複数の構成情報からなるオブジェクトコードを生成するための情報処理方法であって、
前記再構成可能ハードウェアで実行される演算処理の設定内容を含み、動作周波数の異なる第１及び第２のオリジナルネットリストが入力されると、該第１のオリジナルネットリストを第３及び第４のネットリスト並びに中継配線の設定内容を含むサブネットリストに分割し、
前記サブネットリストと前記第２のオリジナルネットリストを統合して第５のネットリストを生成し、
前記複数のタイルのうち、動作周波数が同一である第１及び第２のタイルと、これら２つのタイルに挟まれ、これら２つのタイルとは動作周波数の異なる第３のタイルとに対して、前記第３のネットリストを前記第１のタイルの構成情報に対応させ、前記第４のネットリストを前記第２のタイルの構成情報に対応させ、前記第５のネットリストを前記第３のタイルの構成情報に対応させる旨の情報を含む前記オブジェクトコードを生成する、情報処理方法。
【請求項８】
前記第５のネットリストを生成する際、前記第１及び前記第２のタイルのそれぞれと接続されるプログラマブル配線の両端を等電位にする前記中継配線を設定するための前記サブネットリストを前記第３のタイルの前記複数の構成情報の全てに記述する、請求項７記載の情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、クロックサイクル毎に構成情報(コンテキスト)が切り替わって所望の処理を行うコンテキスト遷移型再構成可能ハードウェアを有するデータ処理装置と、そのコンテキストを含むオブジェクトコードを生成する情報処理装置及び情報処理方法とに関する。
【背景技術】
【０００２】
所望の処理を実現するプロセッサユニットとしてＣＰＵ(Central  Processing  Unit)が知られている。特に、小型化・高性能化を目的として、このようなプロセッサをアレイ状に並べたアレイ型プロセッサが、特許第３５７６８３７号および特許第３６７４５１５号に記載されている。このアレイ型プロセッサは、状態管理部とデータパス部で構成されており、データパス部はプロセッサエレメントとプログラマブル配線で構成されている。そして、クロックサイクル毎にデータパス部で行う処理を切り替えながら動作する。【０００３】
また、複数の状態管理部を持つアレイ型プロセッサが、特許第３９８７７８２号、特許第３９８７７８３号、および特許第３９８７７８４号に記載されている。複数の状態管理部を持つアレイ型プロセッサでは、それぞれの状態管理部で管理しているデータパス部が同期して処理を行う場合には、同期して動作する状態管理部に同一の状態遷移情報を設定し、同期して動作する複数のデータパス部のいずれかから生成されるイベントデータをそれぞれの状態管理部が受け取り、状態遷移と回路切り替えを行ない、動作する。【０００４】
また、このアレイ型プロセッサ向けのプログラムであるオブジェクトコードを生成する技術が、特許第３９２１３６７号（以下では、ＪＰ３９２１３６７Ｂと表記する）に記載されている。【０００５】
複数の状態管理部を持つアレイ型プロセッサでは、状態管理部とそのデータパス毎に異なるクロックで動作させることができる。この場合、通常のＬＳＩのクロックドメインと同じ扱いになるため、一般には、異なるクロックドメイン間は、クロック乗せ換え回路、ＦＩＦＯおよび２ポートメモリ等の回路のうちいずれかを経由してデータ授受される。【０００６】
このような複数のクロックドメインへのクロックの供給としては、単一もしくは複数のマスタクロックから種々の周波数のクロックを生成するクロック生成回路が知られており、デューティ比を補整せずに適切なクロックパルスを間引くだけの単純なクロック間引き回路も知られている。【０００７】
このようなアレイ型プロセッサのように、クロックサイクル毎に回路を切り替えながら動作する再構成可能なハードウェアのことを、以下では、コンテキスト遷移型再構成可能ハードウェアと称する。また、１クロックサイクルで動作する処理内容のことをコンテキストと称する。ここで言う１クロックサイクルとは、マスタクロック信号の１クロックの場合に限らず、２以上のマスタクロック信号を１クロックとする場合も含む。【０００８】
図１は関連するコンテキスト遷移型再構成可能ハードウェアの一構成例を示すブロック図である。図１に示すように、コンテキスト遷移型再構成可能ハードウェア１５は、制御部１００と、演算部２００とを有する。【０００９】
制御部１００は、現在の状態を示す番号である現状態番号を記憶する状態番号保持メモリ１０２と、実行中のコンテキスト番号を記憶するコンテキスト番号保持メモリ１０３と、次の遷移状態の番号である次状態番号及び次のコンテキスト番号を出力する遷移テーブル１０１とを有する。コンテキスト番号保持メモリ１０３は、入力側が遷移テーブル１０１に接続され、出力側が演算部２００のコンテキスト選択部２１４に接続されている。【００１０】
遷移テーブル１０１は、状態番号保持メモリ１０２で保持されている現状態番号と演算部２００で生成されるイベント信号とが入力されると、現状態番号とイベント信号から次状態番号を求めて状態番号保持メモリ１０２に出力し、現状態番号とイベント信号から次のコンテキスト番号を求めてコンテキスト番号保持メモリ１０３に出力する。次のコンテキスト番号はコンテキスト番号保持メモリ１０３から演算部２００のコンテキスト選択部２１４に入力される。【００１１】
演算部２００は、多数の演算器及びプログラマブル配線を含む演算処理部２１２と、複数のコンテキスト２１１からなるオブジェクトコードが格納されたオブジェクトコード記憶部２１０と、複数のコンテキスト２１１から１つを選択するコンテキスト選択部２１４と、コンテキスト選択部２１４で選択されたコンテキスト２１１をデコードして演算処理部２１２の動作を指定する命令デコード２１３とを有する。【００１２】
コンテキストは、１周期で動作する処理内容のための、演算処理部２１２内の演算器に対する演算命令の情報及びプログラマブル配線の接続の仕方を示す配線情報を含む構成情報である。【００１３】
図１に示したコンテキスト遷移型再構成可能ハードウェア１５の動作について簡単に説明する。図２は、図１に示したコンテキスト遷移型再構成可能ハードウェアの動作を説明するための模式図である。【００１４】
制御部１００の状態番号保持メモリ１０２が次状態番号に状態遷移すると、遷移テーブル１０１から次のコンテキスト番号が演算部２００のコンテキスト選択部２１４に入力される。これにより、コンテキスト選択部２１４で選択されるコンテキスト番号が変化し、新しく選択されたコンテキスト番号が命令デコードされ、演算処理部２１２における処理内容が変化する。演算処理部２１２が新たなコンテキストによる演算動作が終了すると、イベント信号を制御部１００の遷移テーブル１０１に送信する。遷移テーブル１０１がイベント信号を受信すると、状態番号保持メモリ１０２が次状態番号に状態遷移し、上述の動作を繰り返す。このように、制御部１００における状態遷移は、状態番号保持メモリ１０２及びコンテキスト番号保持メモリ１０３のそれぞれに記憶された番号の更新タイミングで発生する。【００１５】
一方、上記コンテキスト遷移型再構成可能ハードウェア１５を複数有するようなデータ処理装置がある。【００１６】
データ処理装置には、通常、図３に示すように、クロック乗せ換え回路、ＦＩＦＯ及び２ポートメモリ等の回路のうちいずれかの回路を含むバッファ３００がコンテキスト遷移型再構成可能ハードウェア間に設けられている。このバッファ３００が、コンテキスト遷移型再構成可能ハードウェア間におけるデータ授受を行う。バッファ３００を設けるのは、それぞれ異なる制御で動作するコンテキスト遷移型再構成可能ハードウェア間のデータ授受を円滑に行うためである。【００１７】
ここでいう制御とは、複数のコンテキストからなるオブジェクトコードで実行される処理の状態遷移のことである。つまり、異なる制御で動作するコンテキスト遷移型再構成可能ハードウェアとは、コンテキストで実行する処理及びその状態遷移が異なる、ということを意味する。【００１８】
以下では、この同一の制御で動作するコンテキスト遷移型再構成可能ハードウェアを含む構成をタイルと称する。また、バッファをタイル間バッファと称する。図３では、タイル２７Ａとタイル２８Ｂの間にタイル間バッファ３００が設けられている。【００１９】
ここで、タイル２７Ａのクロック４００１Ａの動作周波数をＦａとし、タイル２７Ａのスループット（単位時間当たりの処理性能）をＰａとし、タイル２２Ｂのクロック４００２Ｂの動作周波数をＦｂとし、タイル２８ＢのスループットをＰｂとすると、Ｐａ及びＰｂは、Ｐａ＝Ｆａ×α及びＰｂ＝Ｆｂ×βで表される。【００２０】
このとき、Ｐａ＜Ｐｂである場合には、タイル２２Ｂはタイル２１Ａよりスループットが高いため、タイル２２Ｂでの処理にはアイドル時間が生じ、無駄な電力を消費する。これを解決するためには、Ｐａ＝Ｐｂになるように、タイル２２Ｂの動作周波数ＦｂをＦｂ＝Ｆａ×α／βとなるようにすればよい。
【発明の概要】
【００２１】
図３を参照してタイルが２つの場合を説明したが、タイルが３つの場合を考えてみる。図４は、タイルが３つの場合を示す図である。図４に示すように、タイル２７Ａとタイル２８Ｂの間にタイル間バッファ３０１が設けられ、タイル２８Ｂとタイル２９Ｃの間にタイル間バッファ３０２が設けられている。タイル２７Ａ及びタイル２９Ｃはクロック４００１Ａを基準に動作し、タイル２８Ｂはクロック４００２Ｂを基準に動作する。
【００２２】
図４に示す例では、同一の制御で動作するタイル２７Ａ及びタイル２９Ｃの間に別の制御で動作するタイル２８Ｂが存在し、タイル２８Ｂを介してタイル２７Ａとタイル２９Ｃとがデータを授受することになる。
【００２３】
この場合に、タイル毎に周波数を変更する手法を適用すると、タイル間バッファ３０１、３０２にてクロック乗せ換えが発生するため、タイル２７Ａとタイル２９Ｃとの間のデータ授受にレイテンシが発生してしまう。
【００２４】
この問題を解決するための構成として、次のような方法が考えられる。図５は、タイルが３つの場合の別の構成例を示す図である。図５に示すように、タイル２７Ａとタイル２９Ｃとを直接に接続する専用配線４００を設けられている。タイル２７Ａ及びタイル２９Ｃの間でデータを授受する際、タイル間バッファ３０１、３０２を経由せず、専用配線４００を介してデータを直接に授受することが可能となる。しかし、この場合、同一の制御で動作するタイル間を専用配線で接続する必要があり、設けられるタイルの数に比例して専用配線の数が増え、それらの専用配線の面積が増大することになる。その結果、データ処理装置全体の面積が大きくなってしまう。
【００２５】
本発明の目的の一例は、異なるクロック信号で動作するタイル間で良好なデータ授受が可能なデータ処理装置、並びにデータ処理装置に提供するためのオブジェクトコードを生成する情報処理装置及び情報処理方法を提供することである。
【００２６】
本発明の一側面のデータ処理装置は、複数の演算器及び複数のプログラマブル配線が設けられ、複数の演算器及び複数のプログラマブル配線の動作内容を設定するための構成情報を複数保持し、クロック信号が入力される度に構成情報を切り換え、構成情報にしたがって複数の演算器及び複数のプログラマブル配線を設定して演算処理を実行する再構成可能ハードウェア、及び構成情報に対応してマスタクロックによるクロック信号又はマスタクロックから任意のクロックパルスを間引いたクロック信号を再構成可能ハードウェアに入力するクロック間引部を含む複数のタイルと、複数のタイルの間に設けられ、隣接するタイルのプログラマブル配線同士を接続するタイル間配線とを有する構成である。
【００２７】
また、本発明の一側面の情報処理装置は、複数の演算器及び複数のプログラマブル配線が設けられ、複数の演算器及び複数のプログラマブル配線の動作内容を設定するための構成情報を複数保持し、クロック信号が入力される度に構成情報を切り換え、構成情報にしたがって複数の演算器及び複数のプログラマブル配線を設定して演算処理を実行する再構成可能ハードウェアを含む複数のタイルを有するデータ処理装置の複数の構成情報からなるオブジェクトコードを生成するための情報処理装置であって、再構成可能ハードウェアで実行される演算処理の設定内容を含み、動作周波数の異なる第１及び第２のオリジナルネットリストが入力されると、第１のオリジナルネットリストを第３及び第４のネットリスト並びに中継配線の設定内容を含むサブネットリストに分割するネットリスト分割部と、サブネットリストと第２のオリジナルネットリストを統合して第５のネットリストを生成するネットリスト統合部と、複数のタイルのうち、動作周波数が同一である第１及び第２のタイルと、これら２つのタイルに挟まれ、これら２つのタイルとは動作周波数の異なる第３のタイルとに対して、第３のネットリストを第１のタイルの構成情報に対応させ、第４のネットリストを第２のタイルの構成情報に対応させ、第５のネットリストを第３のタイルの構成情報に対応させる旨の情報を含むオブジェクトコードを生成する処理配置部とを有する構成である。
【００２８】
また、本発明の一側面の情報処理方法は、複数の演算器及び複数のプログラマブル配線が設けられ、複数の演算器及び複数のプログラマブル配線の動作内容を設定するための構成情報を複数保持し、クロック信号が入力される度に構成情報を切り換え、構成情報にしたがって複数の演算器及び複数のプログラマブル配線を設定して演算処理を実行する再構成可能ハードウェアを含む複数のタイルを有するデータ処理装置の複数の構成情報からなるオブジェクトコードを生成するための情報処理方法であって、再構成可能ハードウェアで実行される演算処理の設定内容を含み、動作周波数の異なる第１及び第２のオリジナルネットリストが入力されると、第１のオリジナルネットリストを第３及び第４のネットリスト並びに中継配線の設定内容を含むサブネットリストに分割し、サブネットリストと第２のオリジナルネットリストを統合して第５のネットリストを生成し、複数のタイルのうち、動作周波数が同一である第１及び第２のタイルと、これら２つのタイルに挟まれ、これら２つのタイルとは動作周波数の異なる第３のタイルとに対して、第３のネットリストを第１のタイルの構成情報に対応させ、第４のネットリストを第２のタイルの構成情報に対応させ、第５のネットリストを第３のタイルの構成情報に対応させる旨の情報を含むオブジェクトコードを生成するものである。
【図面の簡単な説明】
【００２９】
【図１】図１は関連するコンテキスト遷移型再構成可能ハードウェアの一構成例を示すブロック図である。
【図２】図２は図１に示したコンテキスト遷移型再構成可能ハードウェアの動作を説明するための模式図である。
【図３】図３はタイル間の接続の一例を示す図である。
【図４】図４はタイルが３つの場合を示す図である。
【図５】図５はタイルが３つの場合の別の構成例を示す図である。
【図６】図６は第１の実施形態のデータ処理装置の一構成例を示すブロック図である。
【図７】図７は図６に示したデータ処理装置内のタイルの一構成例を示すブロック図である。
【図８】図８は第１の実施形態のデータ処理装置の動作を説明するための図である。
【図９】図９は第１の実施形態のデータ処理装置の動作を説明するための図である。
【図１０】図１０は各タイルのクロック間引部でクロックを間引いて動作させた場合の、各タイルのコンテキスト遷移型再構成可能ハードウェアの状態遷移の一例を示す図である。
【図１１】図１１は図１０に示したＴ１０１、Ｔ１０２、Ｔ１０３及びＴ１０４のそれぞれのタイミングにおけるデータ処理装置の処理内容を模式的に示す図である。
【図１２Ａ】図１２Ａはネットリスト変換装置の一構成例を示すブロック図である。
【図１２Ｂ】図１２Ｂはネットリスト変換装置内のネットリスト生成部を説明するためのブロック図である。
【図１３】図１３は図１２Ａに示したネットリスト変換装置の具体的構成例を示すブロック図である。
【図１４】図１４はオブジェクトコードの生成手順を示す図である。
【図１５】図１５はオブジェクトコードに対応するネットリストを生成する手法を説明するための図である。
【図１６】図１６は第２の実施形態のデータ処理装置の一構成例を示すブロック図である。
【図１７】図１７は図１６に示したデータ処理装置内のタイルの一構成例を示すブロック図である。
【図１８】図１８はタイル間配線について他の構成例を示す図である。
【発明を実施するための形態】
【００３０】
本発明のデータ処理装置の実施形態を説明する。
【００３１】
（第１の実施形態）
本実施形態のデータ処理装置の構成を説明する。図６は本実施形態のデータ処理装置の一構成例を示すブロック図である。
【００３２】
図６に示すように、データ処理装置１は、外部からオブジェクトコードが入力されるＩ／Ｆ（interface）ユニット２と、複数のタイル２０が設けられたタイルアレイ５と、オブジェクトコードをタイル２０に分配するデータ分配部３と、クロック信号をタイル２０に供給するクロック信号生成部７と、データ入出力部９とを有する。
【００３３】
データ入出力部９は、ＦＤＤ（Floppy  Disk  Drive）又はＣＤドライブなどの入出力デバイスである。Ｉ／Ｆユニット２は、通信線（不図示）を介して外部から受け取るデータをデータ処理装置１が処理可能な形式に変換し、また、データ処理装置１から外部に送出されるデータを通信線（不図示）で伝送可能な形式に変換する。なお、Ｉ／Ｆユニット２の代わりに、ＦＤＤやＣＤドライブであってもよい。
【００３４】
図７は図６に示したデータ処理装置内のタイルの一構成例を示すブロック図である。図７は図６の破線部分を拡大したものである。タイル２０は、制御部１００及び演算部２００を含むコンテキスト遷移型構成可能ハードウェア１０と、クロック間引部５００とを有する。タイル間にはタイル間バッファ３００が設けられ、隣り合うタイルはタイル間バッファ３００を介して接続されている。また、タイル間には、隣り合うタイル同士を接続するためのタイル間配線６００も設けられている。
【００３５】
本実施形態における制御部１００及び演算部２００は、図１で説明したのと同様な構成である。そのため、ここではその詳細な説明を省略する。
【００３６】
コンテキスト番号保持メモリ１０３から出力されるコンテキスト番号の情報はコンテキスト選択部２１４に入力される。図２に示したように、制御部１００の状態遷移に対応して、演算部２００で実行されるコンテキスト２１１がクロックサイクル毎に切り替わる。
【００３７】
各タイル２０のクロック間引部５００はクロック信号生成部７と接続されている。クロック間引部５００に、コンテキスト遷移型構成可能ハードウェア１０に設定する動作周波数の情報がオブジェクトコードを介して入力される。データ処理装置１が演算処理を実行する際、各タイル２０のクロック間引部５００には、クロック信号生成部７からマスタクロック信号が供給される。クロック間引部５００は、クロック信号生成部７からマスタクロック信号４０００を受信すると、コンテキストに設定された動作周波数に対応してクロックパルスを間引き、間引いたクロック信号をコンテキスト遷移型再構成可能ハードウェア１０に送信する。
【００３８】
タイル間バッファ３００は、クロック乗せ換え回路、ＦＩＦＯ、及び２ポートメモリの回路のうち少なくともいずれかを有する。タイル間バッファ３００は、演算部２００の演算処理部２１２内のプログラマブル配線と接続され、隣り合うタイル間のデータ伝送を中継する。タイル間配線６００は、演算部２００の演算処理部２１２内のプログラマブル配線と接続され、隣り合うタイル２０のプログラマブル配線同士を直接接続する。
【００３９】
データ入出力部９から入力されるデータがタイルアレイ５内の各演算部２００で演算処理される。タイルアレイ５で演算処理された結果がデータ入出力部９を介して出力される。
【００４０】
なお、演算処理部２１２の設定の仕方が記述されたコンテキストの構成については、データ処理装置１の動作の説明の中で説明する。
【００４１】
次に、本実施形態のデータ処理装置の動作について図を参照して説明する。動作とは、オブジェクトコードがデータ処理装置１に登録された後の動作である。
【００４２】
図８及び図９は本実施形態のデータ処理装置の動作を説明するための図である。説明を簡単にするために、タイルアレイ５に設けられたタイルのうち、３つのタイル２１Ａ、２２Ｂ、２３Ｃについての場合とする。
【００４３】
図９の上側の図は、本実施形態のデータ処理装置１の各タイルにコンテキストにより設定される回路と配線とを模式的に示したものである。各コンテキストに示す楕円は所定の演算処理のための回路が演算処理部２１２に設定された状態を表す。各コンテキストに示す曲線及び矢印は演算処理部２１２に設定された配線を表す。各コンテキストに示す点は隣のタイルとタイル間配線６００を介して接続するための端子を表す。
【００４４】
ここでは、タイル２１Ａ及びタイル２３Ｃはそれぞれのタイル内のクロック間引部５００で生成されたクロック４００１Ａで動作しているものとする。タイル２２Ｂはタイル内のクロック間引部５００で生成されたクロック４００２Ｂで動作しているものとする。そのため、タイル２１Ａとタイル２３Ｃは、動作周波数が等しく、同一の制御で動作しており、互いにデータを授受している。タイル２２Ｂは他のタイル２１Ａ及びタイル２３Ｃとは異なる制御で動作している。
【００４５】
図９の上側模式図に示すように、オブジェクトコードＡ１のコンテキストＡ１−１及びコンテキストＡ１−２はタイル２１Ａのコンテキストである。オブジェクトコードＢ１のコンテキストＢ１−１、コンテキストＢ１−２及びコンテキストＢ１−３はタイル２２Ｂのコンテキストである。オブジェクトコードＡ２のコンテキストＡ２−１及びコンテキストＡ２−２はタイル２３Ｃのコンテキストである。
【００４６】
タイル２１Ａとタイル２３Ｃは同期して動作しているため、タイル２１ＡがコンテキストＡ１−１の処理を行うとき、タイル２３ＣはコンテキストＡ２−１の処理を行う。
【００４７】
タイル２２Ｂは他のタイルとは独立して動作するため、タイル２１Ａ及びタイル２３Ｃで選択されているコンテキストとは無関係にオブジェクトコードＢ１内の任意のコンテキストの処理を行っている。
【００４８】
タイル２２Ｂに登録されたコンテキストＢ１−1からＢ１−３のそれぞれには、タイル２２Ｂに実行させる演算処理を演算処理部２１２に設定するための回路の情報の他に、次のような情報が含まれている。その情報とは、タイル間配線６００を介してタイル２１Ａに接続される端子とタイル間配線６００を介してタイル２３Ｃに接続される端子とをタイル２２Ｂ内で接続し、それらの端子が等電位になるような中継配線を、演算処理部２１２のプログラマブル配線に設定するための情報である。
【００４９】
また、図９の上側模式図に示すように、コンテキストＢ１−1からＢ１−３のいずれの場合でも、タイル２２Ｂ内に設定される回路が変わっても、中継配線に接続するための端子の位置が同一である。タイル２２Ｂを挟むタイル２１Ａとタイル２３Ｃについても、コンテキストが変わっても、タイル２２Ｂの中継配線に接続するための端子の位置が変わらないように設定されている。
【００５０】
そのため、選択されるコンテキストによらず、タイル２１Ａとタイル２３Ｃは、タイル２２Ｂ内に設定される中継配線を利用することで、タイル２２Ｂを介してデータを授受することが可能となる。
【００５１】
図１０は、各タイルのクロック間引部でクロックを間引いて動作させた場合の、各タイルのコンテキスト遷移型再構成可能ハードウェアの状態遷移の一例を示す図である。Ｔ１０１からＴ１０３のタイミングの間で、タイル２２Ｂに入力されるクロック４００２Ｂは、マスタクロック４０００に対して１クロックパルスが間引かれている。Ｔ１０３とＴ１０４の間で、タイル２２ＢがコンテキストＢ１−３に設定されているとき、クロック４００２Ｂは、マスタクロック４０００に対して２クロックパルスが間引かれている。
【００５２】
図１１は、図１０に示したＴ１０１、Ｔ１０２、Ｔ１０３及びＴ１０４のそれぞれのタイミングにおけるデータ処理装置の処理内容を模式的に示す図である。図１１（ａ）はＴ１０１の時であり、図１１（ｂ）はＴ１０２の時であり、図１１（ｃ）はＴ１０３の時であり、図１１（ｄ）はＴ１０４の時である。図１１では、タイル間配線を図に示すことを省略している。
【００５３】
図１０のＴ１０１のタイミングでは、図１１（ａ）に示すように、タイル２１ＡはコンテキストＡ１−１を選択しており、タイル２２ＢはコンテキストＢ１−１を選択しており、タイル２３ＣはコンテキストＡ２−１を選択している。タイル２２Ｂ内に中継配線が設定され、タイル２１Ａは中継配線を介してタイル２３Ｃと接続される。そのため、タイル２１Ａとタイル２３Ｃはタイル２２Ｂを介してデータを授受することができる。
【００５４】
図１０のＴ１０２のタイミングでは、図１１（ｂ）に示すように、タイル２２ＢはコンテキストＢ１−１による設定のままであるが、タイル２１ＡはコンテキストＡ１−２による設定に切り替わり、タイル２３ＣはコンテキストＡ２−２による設定に切り替わる。タイル２２ＢがコンテキストＢ１−１による設定のままであるため、中継配線とその端子の位置も図１１（ａ）の場合と同じである。また、タイル２２Ｂに接続される、タイル２１Ａの端子の位置だけでなく、タイル２２Ｂに接続される、タイル２３Ｃの端子の位置も、図１１（ａ）の場合と同じである。そのため、タイル２１Ａとタイル２３Ｃはタイル２２Ｂを介してデータを授受することができる。
【００５５】
図１０のＴ１０３のタイミングでは、タイル２１Ａとタイル２３Ｃのそれぞれに設定される回路はＴ１０１のタイミングのときと同じだが、図１１（ｃ）に示すように、タイル２２ＢがコンテキストＢ１−２により設定される。タイル２２Ｂ内の設定が変わってしまうが、中継配線が別の経路で設定され、その端子の位置も変わらない。そのため、タイル２１Ａとタイル２３Ｃはタイル２２Ｂを介してデータを授受することができる。
【００５６】
図１０のＴ１０４のタイミングでは、図１１（ｄ）に示すように、Ｔ１０４のタイミングの前からタイル２１ＡはコンテキストＡ１−1による設定のまま、タイル２３ＣはコンテキストＡ２−１による設定のままであるが、タイル２２ＢはコンテキストＢ１−３による設定に切り替わる。タイル２２Ｂ内の設定が変わってしまうが、中継配線が別の経路で設定され、その端子の位置も変わらない。そのため、タイル２１Ａとタイル２３Ｃはタイル２２Ｂを介してデータを授受することができる。
【００５７】
以上のように、全てのタイミングでタイル２１Ａとタイル２３Ｃは、タイル２２Ｂを介してデータを授受することができる。
【００５８】
さらに、クロック間引部５００で任意にクロックを間引いても、各タイルに入力されるクロックの立ち上がりエッジはマスタクロック４０００と同期しているため、各タイルのコンテキスト切り替えのタイミングは全く同じになる。
【００５９】
つまり、各タイルのコンテキストがマスタクロック４０００の動作周波数で動作可能であれば、クロック間引部５００で任意にクロックを間引いても問題なく動作することができる。
【００６０】
次に、データ処理装置１にオブジェクトコードを供給する装置の一例として、ネットリスト変換装置を説明する。
【００６１】
図１２Ａはネットリスト変換装置の一構成例を示すブロック図であり、図１２Ｂはネットリスト変換装置内のネットリスト生成部を説明するためのブロック図である。
【００６２】
図１２Ａに示すように、ネットリスト変換装置１５０は、ソースコードが入力されるデータ入力部２０１と、データ処理装置１におけるタイル間配線端子等の制約条件を保持する記憶部２０３と、入力されたソースコードからオブジェクトコードを生成するオブジェクトコード生成部２２０と、生成したオブジェクトコードを出力するデータ出力部２０２とを有する。
【００６３】
図１２Ｂに示すように、オブジェクトコード生成部２２０は、ソースコードからネットリストを生成するリスト生成部１０１と、リスト生成部１０１から受け取るネットリストを記憶部２０３の情報に基づいて変換するネットリスト変換部２０４と、変換後のネットリストをオブジェクトコードにして各タイルに割り付ける処理配置部１０２とを有する。そして、ネットリスト変換部２０４は、ネットリスト分割部３０１及びネットリスト統合部３０２を有する。ネットリストには、コンテキスト遷移型再構成可能ハードウェア１０の演算処理部２１２で実行される演算処理の設定に関する情報が含まれている。
【００６４】
図１３は図１２Ａに示したネットリスト変換装置の具体的構成例を示すブロック図である。
【００６５】
図１３に示すように、ネットリスト変換装置１５０は、情報処理装置の一種であり、ＣＰＵ６０１と、バスライン６２０を介してＣＰＵ６０１と接続されるＲＡＭ６０２と、ＲＯＭ６０３と、ＨＤＤ（Hard  Disk  Drive）６０４と、ＦＤＤ６０６と、ＣＤドライブ６０７と、ディスプレイ６０８と、キーボード６０９と、マウス６１０と、Ｉ／Ｆユニット６０５とを有するコンピュータである。
【００６６】
ＦＤＤ６０６は、記録媒体のＦＤ（Floppy  Disk）６１１を脱着可能で、装着されたＦＤ６１１へのデータの書き込み、又は、ＦＤ６１１からのデータの読み出しを行う。ＣＤドライブ６０７は、記録媒体のＣＤ−ＲＯＭ６１２を脱着可能で、装着されたＣＤ−ＲＯＭ６１２へのデータの書き込み、又は、ＣＤ−ＲＯＭ６１２からのデータの読み出しを行う。
【００６７】
キーボード６０９及びマウス６１０はデータ入力部２０１に相当し、ディスプレイ６０８はデータ出力部２０２に相当する。Ｉ／Ｆユニット６０５、ＦＤＤ６０６及びＣＤドライブ６０７のそれぞれは、データ入力部２０１とデータ出力部２０２の両方の機能を備えている。
【００６８】
ＲＡＭ６０２、ＲＯＭ６０３及びＨＤＤ６０４が記憶部２０３に相当する。記憶部２０３のＲＯＭ６０３及びＨＤＤ６０４の少なくとも一方には、データ処理装置１におけるタイル間配線端子等の各種の制約条件が予め登録されている。また、ＣＰＵ６０１が処理を実行するためのプログラムや処理に必要な各種データが記憶部２０３に格納される。これらのプログラム及びデータは、記憶部２０３に予め格納されていてもよく、記録媒体から記憶部２０３に登録されてもよい。
【００６９】
例えば、ＣＰＵ６０１に各種処理を実行させるためのプログラムが、ＦＤ６１１やＣＤ−ＲＯＭ６１２に予め格納されている。このプログラムをＦＤＤ６０６又はＣＤドライブ６０７を介してＨＤＤ６０４に事前にインストールすることで、ネットリスト変換装置１５０の起動時にプログラムがＨＤＤ６０４からＲＡＭ６０２に複写され、ＲＡＭ６０２からＣＰＵ６０１に読み出される。
【００７０】
このようにＣＰＵ６０１が適正なプログラムを読み出して各種の処理を実行することにより、図１２Ｂに示したリスト生成部１０１、ネットリスト変換部２０４及び処理配置部１０２がネットリスト変換装置１５０に仮想的に構成される。なお、リスト生成部１０１及び処理配置部１０２の処理は、ＪＰ３９２１３６７Ｂの特許文献に開示された方法と同様なため、ここでは詳細な説明を省略する。
【００７１】
外部からネットリスト変換装置１５０へのソースコードの入力は、ＲＡＭ６０２に格納されたプログラムにしたがってＣＰＵ６０１がＦＤＤ６０６、ＣＤ−ＲＯＭ６１２又はＩ／Ｆユニット６０５を制御することで行われる。ＣＰＵ６０１は、ソースコードが記録されたＦＤ６１１がＦＤＤ６０６に装着されればＦＤＤ６０６を制御し、ソースコードが記録されたＣＤ−ＲＯＭ６１２がＣＤドライブ６０７に装着されればＣＤドライブ６０７を制御し、通信線（不図示）を介してＩ／Ｆユニット６０５がソースコードを受信すると、Ｉ／Ｆユニット６０５を制御する。
【００７２】
ネットリスト変換装置１５０からのオブジェクトコードの出力は、ＲＡＭ６０２に格納されたプログラムにしたがってＣＰＵ６０１がＦＤＤ６０６、ＣＤ−ＲＯＭ６１２又はＩ／Ｆユニット６０５を制御することで行われる。ＣＰＵ６０１は、オブジェクトコードをＦＤ６１１に保存する旨の指示が入力されると、ＦＤ６１１にオブジェクトコードを書き込むようにＦＤＤ６０６を制御する。ＣＰＵ６０１は、オブジェクトコードをＣＤ−ＲＯＭ６１２に保存する旨の指示が入力されると、ＣＤ−ＲＯＭ６１２にオブジェクトコードを書き込むようにＣＤドライブ６０７を制御する。
【００７３】
また、データ処理装置１のＩ／Ｆユニット２とネットリスト変換装置１５０のＩ／Ｆユニット６０５とが通信線（不図示）で接続され、オブジェクトコードを通信線（不図示）を介してデータ処理装置１に送信する旨の指示が入力されると、プログラムにしたがってＣＰＵ６０１が、オブジェクトコードをデータ処理装置１に送信するようにＩ／Ｆユニット６０５を制御する。このようにしてネットリスト変換装置１５０からデータ処理装置１へのオブジェクトコードの送信が通信線（不図示）を介して行われる。
【００７４】
次に、ネットリスト変換装置１５０によるオブジェクトコードの生成方法を説明する。
【００７５】
図１４はオブジェクトコードの生成手順を示す図である。図１５はオブジェクトコードに対応するネットリストを生成する手法を説明するための図である。図１５では、図９に示したオブジェクトコードＡ１、Ａ２、Ｂ１に対応するネットリスト７０１１Ａ、７０１２Ａ、７０２１Ｂを生成する手法を示す。なお、ソースコードからネットリストを生成する方法は、ＪＰ３９２１３６７Ｂの特許文献に開示されているため、ここではその詳細な説明を省略する。
【００７６】
ＪＰ３９２１３６７Ｂの特許文献に開示されたオブジェクトコード生成手法と比べると、本実施形態では、図１４に示すように、ネットリストを生成するリスト生成部１０１と各タイルにオブジェクトコードを割り付ける処理配置部１０２との間に、ネット分割部３０１及びネット統合部３０２を含むネットリスト変換部２０４が設けられている。
【００７７】
リスト生成部１０１は、ソースコードＡ０が入力されると、ＪＰ３９２１３６７Ｂの特許文献に開示された方法でネットリスト７０１Ａを生成してネットリスト分割部３０１に渡す。リスト生成部１０１は、ソースコードＢ０が入力されると、ＪＰ３９２１３６７Ｂの特許文献に開示された方法でネットリスト７０２Ｂを生成してネットリスト統合部３０２に渡す。
【００７８】
ネットリスト分割部３０１は、リスト生成部１０１からネットリスト７０１Ａを受け取ると、ネットリスト７０１Ａをネットリスト７０１１Ａ、ネットリスト７０１２Ａ、及びサブネットリスト７０１３Ａに分割する。サブネットリスト７０１３Ａは、図１５に示すタイル間配線端子９０１とタイル間配線端子９０２とをタイル２２Ｂ内で接続し、等電位とする回路である。そして、ネットリスト分割部３０１は、ネットリスト７０１１Ａ及びネットリスト７０１２Ａを処理配置部１０２に渡し、サブネットリスト７０１３Ａをネットリスト統合部３０２に渡す。
【００７９】
ネットリスト統合部３０２は、サブネットリスト７０１３Ａ及びネットリスト７０２Ｂを受け取ると、ネットリスト７０２Ｂに含まれる全てのコンテキストのそれぞれについて、その元になるネットリストにデータとしてサブネットリスト７０１３Ａを追加し、ネットリスト７０２１Ｂを生成する。そして、生成したネットリスト７０２１Ｂを処理配置部１０２に渡す。
【００８０】
処理配置部１０２は、ネットリスト７０１１Ａ、７０２１Ｂ、７０１２Ａを受け取ると、ＪＰ３９２１３６７Ｂの特許文献に開示された方法と同様にして、ネットリスト７０１１ＡからオブジェクトコードＡ１を生成し、ネットリスト７０２１ＢからオブジェクトコードＢ１を生成し、ネットリスト７０１２ＡからオブジェクトコードＡ２を生成する。
【００８１】
図１５を参照して、ネットリスト変換部２０４が実行するネットリスト変換方法を詳しく説明する。ネットリスト変換方法とは、ネットリスト生成部１０１で生成されたオリジナルのネットリストを、本実施形態のデータ処理装置で使用されるオブジェクトコードをデータ生成するためのネットリストに変換する方法である。
【００８２】
図１５に示すネットリスト７０１Ａは、オブジェクトコードＡ１、Ａ２の元になる配置配線前のネットリストであり、ネットリスト７０２Ｂは、オブジェクトコードＢ１の元になる配置配線前のネットリストである。各ネットリストには、複数のコンテキストが含まれている。
【００８３】
ネットリスト分割部３０１は、ネットリスト７０１Ａをタイル２１Ａ及びタイル２３Ｃに分割するために、ネットリスト７０１Ａの分割点８００を決める。その分割点８００を、タイル２１Ａ及びタイル２２Ｂを接続するためのタイル間配線端子９０１と、タイル２２Ｂ及びタイル２３Ｃを接続するためのタイル間配線端子９０２に対応させる。ネットリスト７０１Ａを分割点８００で２つに分割したときのネットリストを、上述のネットリスト７０１１Ａ及びネットリスト７０１２Ａとする。
【００８４】
そして、ネットリスト分割部３０１は、タイル２２Ｂ内のタイル間配線端子９０１及びタイル間配線端子９０２が等電位となるような中継配線の設定内容を含むサブネットリストを生成する。続いて、ネットリスト統合部３０２は、ネットリスト７０２Ｂに含まれる全てのコンテキストのそれぞれについて、その元になるネットリストにサブネットリストのデータを追加し、これをネットリスト７０２１Ｂとする。
【００８５】
その後、処理配置部１０２が、これらのネットリスト７０１１Ａ、７０２１Ｂ、７０１２Ａのそれぞれをタイル２１Ａ、２２Ｂ、２３Ｃのそれぞれに対応させてオブジェクトコードを生成することで、図９に示したオブジェクトコードＡ１、Ｂ１、Ａ２が得られる。
【００８６】
本実施形態のデータ処理装置では、複数のタイルのクロック信号が同一でなくても、クロック間引部がマスタクロックから任意のクロックパルスを間引いているので、どのタイル内のコンテキスト遷移型再構成可能ハードウェアでも、構成情報の切り替えに伴う状態遷移のタイミングがマスタクロックの立ち上がりに一致する。そのため、同一制御で動作するタイルが隣接していなくても、異なる制御で動作するタイルを介して、同一制御のタイル間でデータを授受することが可能となる。これにより、配線リソースを増やすことなく、また、アクセスレイテンシを増やすことなく、同一制御であって、隣接していないコンテキスト遷移型再構成可能ハードウェア間のデータ授受を行うことができる。
【００８７】
また、本実施形態のデータ処理装置は、スループットが異なる複数のコンテキスト遷移型再構成可能ハードウェアに入力されるクロックを、クロック間引部がコンテキストにしたがってマスタクロックからクロックパルスを間引いて設定している。そのため、スループットの高いコンテキスト遷移型再構成可能ハードウェアのアイドル時間を抑制し、各コンテキスト遷移型再構成可能ハードウェアのスループットを均等にすることができる。その結果、全体のスループットを落さずに、データ処理装置の動作電力を低下させることができる。
【００８８】
また、本実施形態におけるネットリスト変換装置は、所定の演算処理の内容を、同一制御で動作し、かつ、隣接していない２つのコンテキスト遷移型再構成可能ハードウェアのネットリストに分割するとともに、これら２つのコンテキスト遷移型再構成可能ハードウェアの間に位置する、異なる制御で動作するコンテキスト遷移型再構成可能ハードウェアのネットリストに、上記同一制御の２つのコンテキスト遷移型再構成可能ハードウェアを等電位に接続するための中継配線の設定内容を含むサブネットを統合している。これにより、同一制御で動作する、隣接していないコンテキスト遷移型再構成可能ハードウェア間のデータ授受の経路として、異なる制御で動作するコンテキスト遷移型再構成可能ハードウェアのプログラマブル配線を利用するためのネットリストを生成することができる。
【００８９】
なお、図１１に示したタイル２２Ｂのように隣接する２つのタイルを接続する配線が設定されるタイルでは、演算処理部２１２に演算器は最低１つあればよいが、プログラマブル配線は複数設けられていることが望ましい。それは、図１１に示すように、全てのコンテキストで、少なくとも１つのプログラマブル配線でその両端が等電位となる配線が設定されるからである。
【００９０】
（第２の実施形態）
本実施形態は、各タイルの演算処理のスループットを検出し、検出したスループットの情報に基づいて各タイルのスループットが均等になるようにタイルの動作周波数を設定し直すことを特徴とする。
【００９１】
本実施形態のデータ処理装置の構成を説明する。なお、第１の実施形態と同様な構成については同一の符号を付し、その詳細な説明を省略する。
【００９２】
図１６は本実施形態のデータ処理装置の一構成例を示すブロック図である。図１６に示すように、本実施形態のデータ処理装置１０５は、複数のタイル２５０を含むタイルアレイ５０と、動作周波数設定部５１０とを有する。動作周波数設定部５１０は、プログラムにしたがって所定の処理を実行するＣＰＵ（不図示）と、プログラムを格納するためのメモリ（不図示）とを有する。
【００９３】
図１７は図１６に示したデータ処理装置内のタイルの一構成例を示すブロック図である。図１７は図１６の破線部分を拡大したものである。図１７に示すように、タイル２５０は、スループット検出部５２０を有する。動作周波数設定部５１０は、各タイル２５０のスループット検出部５２０及びクロック間引部５００と接続されている。図１７では、説明のために、動作周波数設定部５１０が１つのタイル２５０のスループット検出部５２０及びクロック間引部５００と接続されている構成を示している。
【００９４】
各タイル２５０のスループット検出部５２０は、オブジェクトコードの登録が済んだデータ処理装置１が起動して動作を開始すると、コンテキスト遷移型再構成可能ハードウェア１０のスループットを定期的に検出し、検出したスループットを示す情報であるスループット情報を動作周波数設定部５１０に送信する。
【００９５】
動作周波数設定部５１０は、各タイル２５０のスループット検出部５２０からスループット情報を受信すると、スループット情報に基づいて各タイル２５０でのスループットが均等になるように各タイル２５０のクロック間引部５００に対して動作周波数を設定する。例えば、各タイル２５０から収集したスループット情報から、スループットが平均値より高いタイルを特定し、そのタイル２５０での動作周波数を変更する一連の手順がプログラムに記述されている。
【００９６】
次に、本実施形態のデータ処理装置の動作を説明する。
【００９７】
第１の実施形態で説明したようにして、各タイル２５０においてコンテキスト遷移型再構成可能ハードウェア１０とクロック間引部５００が設定されると、その後、データ処理装置１が動作を開始する。各タイル２５０のスループット検出部５２０は、コンテキスト遷移型再構成可能ハードウェア１０のスループットを定期的に検出し、スループット情報を動作周波数設定部５１０に送信する。動作周波数設定部５１０は、各タイル２５０のスループット検出部５２０からスループット情報を受信すると、各タイル２５０でのスループットが均等になるように各タイル２５０のクロック間引部５００に対して動作周波数を設定する。以下に、具体例を説明する。
【００９８】
あるタイル２５０ｃ（不図示）のクロック信号の動作周波数をＦｃとし、タイル２５０ｃのスループットをＰｃとする。動作周波数Ｆｃは、タイル２５０ｃに登録されたオブジェクトコードによりクロック間引部５００により設定された値である。また、動作周波数の平均値をＦａｖｅとし、スループットの平均値をＰａｖｅとする。そして、Ｐｃ及びＰａｖｅをそれぞれＰｃ＝Ｆｃ×Ｋ及びＰａｖｅ＝Ｆａｖｅ×Ｌと表す。このとき、Ｐｃ＞＞Ｐａｖｅであると、動作周波数設定部５１０は、Ｐｃ≒Ｐａｖｅになるようにタイル２５０ｃの動作周波数ＦｃをＦｃ＝Ｆａｖｅ×Ｌ／Ｋを求め、求めた動作周波数でタイル２５０ｃが動作するようにクロック間引部５００に設定する。
【００９９】
本実施形態によれば、オブジェクトコードにより各タイルの動作周波数が設定された後に、オブジェクトコードによる動作周波数の設定で各タイルのスループットの均等化が不十分であっても、各タイルのスループットが均等になるように動作周波数を設定し直すことが可能となる。なお、動作周波数設定部５１０は、ＣＰＵがプログラムを実行することで構成されるものとしたが、上述の処理を実行するための専用回路であってもよい。
【０１００】
上述の第１の実施形態及び第２の実施形態において、次のようにしてもよい。
【０１０１】
図１８はタイル間配線について他の構成例を示す図である。図１８に示すコンテキスト遷移型再構成可能ハードウェア１０において、タイル２４Ｄのプログラマブル配線リソースが不足する場合がある。この場合には、タイル２４Ｄとこれに隣接するタイル２５Ｅとの間のタイル間配線６００を用いて、タイル２４Ｄがタイル２５Ｅのプログラマブル配線を用いてもよい。タイル２４Ｄとタイル２５Ｅのそれぞれに登録されるオブジェクトコードに、タイル２４Ｄとタイル２５Ｅが協働して動作する回路を設定するための情報が書き込まれている。
【０１０２】
図１８を用いて説明した構成でも、これまでの説明と同様の手法で、タイル２４Ｄとタイル２５Ｅのそれぞれは異なる制御及び異なる間引きクロックで動作することができる。
【０１０３】
なお、本発明のデータ処理装置及びネットリスト変換装置が備える各種部は、その機能を実現するように形成されていればよく、例えば所定の機能を実現する専用のハードウェア、プログラムにしたがって処理を実行することで所定の機能を実現するデータ処理装置、プログラムによりデータ処理装置の内部で実現される所定の機能、及びこれらの組み合わせ等のうちいずれであってもよい。
【０１０４】
また、本発明のデータ処理装置及びネットリスト変換装置に備える各部は、個々に独立した存在である必要もなく、ある部が他の部の一部となる構成であってもよい。
【０１０５】
本発明の効果の一例として、配線リソースを増やすことなく、また、アクセスレイテンシを増やすことなく、異なるクロック信号で動作するタイル間でデータ授受を行うことができる。
【０１０６】
以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【０１０７】
なお、この出願は、２００８年６月２６日に出願された日本出願の特願２００８−１６７３３１の内容が全て取り込まれており、この日本出願を基礎として優先権を主張するものである。
【符号の説明】
【０１０８】
１    データ処理装置
１０    コンテキスト遷移型再構成可能ハードウェア
１００    制御部
２００    演算部
２１２    演算処理部
２０    タイル
３００    タイル間バッファ
６００    タイル間配線
５００    クロック間引部
４０００    マスタクロック
４００１Ａ、４００２Ｂ    クロック
１５０    ネットリスト変換装置
１０１    ネットリスト生成部
１０２    処理配置部
２０４    ネットリスト変換部
３０１    ネットリスト分割部
３０２    ネットリスト統合部
２２０    オブジェクトコード生成部
Ａ１、Ａ２、Ｂ１    オブジェクトコード
Ａ１−１、Ａ１−２    コンテキスト
Ｂ１−１、Ｂ１−２、Ｂ１−３    コンテキスト
Ａ２−１、Ａ２−２    コンテキスト
７０１Ａ、７０２Ｂ    ネットリスト
７０１１Ａ、７０１２Ａ、７０２１Ｂ    ネットリスト
７０１３Ａ    サブネットリスト
【図１】
2009157441.tif 000003
【図２】
2009157441.tif 000004
【図３】
2009157441.tif 000005
【図４】
2009157441.tif 000006
【図５】
2009157441.tif 000007
【図６】
2009157441.tif 000008
【図７】
2009157441.tif 000009
【図８】
2009157441.tif 000010
【図９】
2009157441.tif 000011
【図１０】
2009157441.tif 000012
【図１１】
2009157441.tif 000013
【図１２Ａ】
2009157441.tif 000014
【図１２Ｂ】
2009157441.tif 000015
【図１３】
2009157441.tif 000016
【図１４】
2009157441.tif 000017
【図１５】
2009157441.tif 000018
【図１６】
2009157441.tif 000019
【図１７】
2009157441.tif 000020
【図１８】
2009157441.tif 000021
【国際調査報告】
2009157441.tif 000022
2009157441.tif 000023
2009157441.tif 000024
2009157441.tif 000025