(57)【要約】単一のファンクションのための複数の構成が記憶されている、再構成可能チップのためのスケジューラが説明されている。スケジューラは、構成のいずれか１つを選択するオプションを有する。本システムは、再構成チップ・オペレーションの効率性を向上させる。
2005505030.tif 000002
【特許請求の範囲】
【請求項１】
再構成可能チップでファンクションを実施するための、異なる時間およびリソースの要件を有する複数の可能な構成を供給するステップ；
スケジューラにおいて、再構成可能チップでファンクションを実施するための構成を選択するために前記構成の前記時間ならびにリソースの要件を用いるステップ；および
この構成を前記再構成可能チップにロードするステップ
を含む方法。
【請求項２】
前記異なる構成は構成のライブラリに記憶されることを特徴とする請求項１に記載の方法。
【請求項３】
前記構成は、アルゴリズムの全体の演算の速度を上げるように選択されることを特徴とする請求項１に記載の方法。
【請求項４】
前記リソースはスライスであることを特徴とする請求項１に記載の方法。
【請求項５】
前記時間およびリソースの要件の前記指示は、各構成に関して記憶されることを特徴とする請求項１に記載の方法。
【請求項６】
前記スケジューラは動的スケジューラであることを特徴とする請求項１に記載の方法。
【請求項７】
前記スケジューラは静的スケジューラであることを特徴とする請求項１に記載の方法。
【請求項８】
スケジュールは、前記再構成可能チップに関して利用可能な時間の期間およびリソースを決定するために使用されることを特徴とする請求項１に記載の方法。
【請求項９】
前記スケジューラは、前記スケジュールにおける前記利用可能なリソースおよび時間の期間を調べることを特徴とする請求項１に記載の方法。
【請求項１０】
前記再構成可能チップは、再構成可能ファブリックを含むことを特徴とする請求項１に記載の方法。
【請求項１１】
前記再構成可能チップは多くのスライスを含むことを特徴とする請求項１に記載の方法。
【請求項１２】
前記再構成可能チップはプロセッサを含むことを特徴とする請求項１に記載の方法。
【請求項１３】
前記プロセッサは、動的スケジューラを実行することを特徴とする請求項１２に記載の方法。
【請求項１４】
再構成可能チップのためのスケジューラであって、異なる時間およびリソースの要件を有し、その各々が再構成可能チップで同じファンクションを実施するように適応した１つ以上の構成の群から１つの構成を選択するように適応したスケジューラであり、前記再構成可能チップにロードされるべき構成を選択するために、前記構成の利用可能なリソース、並びに時間及びリソースの要件のスケジュールの指示を使用する前記スケジューラ。
【請求項１５】
前記スケジューラは、単一のファンクションに関する複数の構成を含むライブラリへのアクセスを有することを特徴とする請求項１４に記載のスケジューラ。
【請求項１６】
前記スケジューラは、前記再構成可能チップの全体の演算の速度を上げることを特徴とする請求項１４に記載のスケジューラ。
【請求項１７】
前記リソースは、前記再構成可能チップ上のスライスであることを特徴とする請求項１４に記載のスケジューラ。
【請求項１８】
前記構成の時間およびリソースの要件の指示が記憶されることを特徴とする、請求項１４に記載のスケジューラ。
【請求項１９】
前記スケジューラは、動的スケジューラであることを特徴とする請求項１４に記載のスケジューラ。
【請求項２０】
前記スケジューラは、静的スケジューラであることを特徴とする請求項１４に記載のスケジューラ。
【請求項２１】
前記スケジューラは、このスケジュールから利用可能な時間の期間ならびにリソースを決定し、および前記利用可能なリソースならびに時間の期間を調べることを特徴とする請求項１４に記載のスケジューラ。
【請求項２２】
前記スケジューラは、前記再構成可能チップのプロセッサ上の動的スケジューラとして実行されることを特徴とする請求項１４に記載のスケジューラ。
【発明の詳細な説明】
【０００１】
（技術分野）
本発明は、アルゴリズムを実施するために使用されうる再構成可能なチップに関する。
【０００２】
（背景技術）
再構成可能チップに有用な１つのソフトウェア・エレメントは、スケジューラである。スケジューラは、プログラムのセクションを解釈し、および再構成可能チップの様々なリソースにロードされるべきファンクションをスケジュールする。１つの実施態様において、ファンクションは、再構成可能チップ使用法に最適化され、およびスケジューラは、このファンクションの構成をどこにロードするべきかを決定する。
【０００３】
再構成可能チップとの使用のための改良されたスケジューラを有することが望まれる。
【０００４】
（発明の開示）
本発明の１つの実施態様は、再構成可能チップで特定のファンクションを実施するための複数の可能な構成を使用することを含む。単一の最適化されたファンクションの実施よりも、それぞれが異なる時間およびリソース要件を有する複数の構成が決定される。スケジューラは、構成の時間ならびにリソース要件、および再構成可能チップで利用可能な時間の期間ならびにリソースに基づいて、再構成可能チップへロードされるべきこれらの構成の１つを選択することができる。
【０００５】
再構成可能チップのいつでも利用可能なリソースは変化する。例えば、ある場合には、大量のリソースを使うが、比較的長い時間ではこれらのリソースを使用しない構成を使用することが望ましい。別の場合では、より少ないリソースを使うが、より長い時間がかかる構成を採用することがより有用である。
【０００６】
これら複数の構成へのアクセスを有することによって、スケジューラは、より効率的な方法で再構成可能チップにファンクションを割り当てることができ、どのようなときでも、使われないままのリソースがほとんどなくなるため、チップのオペレーションの速度を上げることができる。
【０００７】
本発明のシステムは、構成の時間ならびにリソースの要件および時間の期間ならびにリソースのスケジュールに関する情報を与える指示を好適には使用する。スケジュールは、構成の時間およびリソースの要件の指示に基づいて、スケジュールに構成の１つを適合させる。
【０００８】
スケジューラは、プログラムのオペレーションに基づいて変化する、ランタイムに動作する動的スケジューラになるか、またはコンパイル中に作られる静的スケジューラになりうる。
【０００９】
１つの実施態様において、本発明は、再構成可能チップのためのスケジューラを具備する。スケジューラは、１つ以上の構成の群から１つの構成を選択するように適応している。異なる時間およびリソース要件を有する構成の各々は、再構成可能チップで同じファンクションを実施するように適応させられており、スケジューラは、再構成可能チップにロードされるべき構成を選択するために、利用可能なリソースのスケジュール、並びにその構成の時間及びリソースの要件の指示を用いる。
【００１０】
（発明を実施するための最良の形態）
図１は、再構成可能チップ２０の図である。再構成可能チップ２０は、再構成可能ロジックおよびメモリ装置を含む多くのスライス３２，３４，３６，３８を含む。再構成可能ロジックは好ましくは、多くの様々なファンクションを実施することができる再構成可能ロジック・ブロックに分割される。再構成可能ロジック・ブロックは好ましくは演算ロジック装置（ＡＬＵ ａｒｉｔｈｍｅｔｉｃ ｌｏｇｉｃ ｕｎｉｔ）を含む。スライスは、関連する構成メモリを有する。構成メモリは、スライスに関する様々な構成を記憶する。
【００１１】
“構成（ｃｏｎｆｉｇｕｒａｔｉｏｎ）”という用語は、本発明に関して２つの異なる可能性のある意味を有する。それは、いつでも再構成可能ロジックの構成を意味しうるが、所定のファンクションに関しては、ファンクションを実施するために必要とされる時間に亘る構成のセットも意味しうる。
【００１２】
１つの実施態様において、構成は、構成バッファおよびインターフェースを通して、システム・データ・バスおよびシステム・アドレス・バスへとロードされる。構成は、外部メモリに記憶され、およびメモリ・コントローラを通してロードされる。再構成可能チップは、ＡＲＣプロセッサなどのＣＰＵも含む。ＣＰＵは、再構成可能ファブリックで効率的に実行されることができないアルゴリズムのセクションを実行する。動的スケジューリング環境にもあるＣＰＵは、好ましくはスケジューラを実行する。
【００１３】
図２Ａは、特定のファンクションに関して作られうる１つの構成の１つの実施例を示す。この実施例は、３つのリソースを使用するが、１つの時間ブロックがかかる。図２Ｂは、別の構成を示している。この構成は、１つのリソースを使用するが４つの時間ブロックがかかる。前記リソースは、例えば、再構成可能スライス全体となりえ、または再構成可能チップでの、いくらかより詳細なレベルのリソースにもなりうる。リソース時間ブロックの数は、異なる実施態様に関しては異なりうることが注記されるべきである。例えば、図２Ｂに記載の実施態様は、図２Ａに記載の実施態様よりも多くのリソース時間ブロックを使用する。従来技術は、最適な構成として、図２Ａに記載の構成のスケジューラを選択しがちであった。
【００１４】
図３Ａは、５つの図２Ａに記載の構成が、再構成可能チップにロードされるシステムを示す。これは、５つの時間の期間がかかり、およびリソースに、４とラベルを付けられたリソースを未使用のまま残す。
【００１５】
図３Ｂは、図２Ｂの構成が排他的に使用されるシステムを示す。この実施例においては、最後のファンクションが完了するのに８つの時間の期間がかかる。
【００１６】
図４は、スケジューラが、再構成可能チップをスケジュールするための２つの異なる構成、すなわち図２Ａおよび図２Ｂに記載の構成の中から選択することができるシステムを示す。この実施例において、ファンクション１，２，３，４は、図２Ａに記載の構成を用いて実施され、および構成５は、図２Ｂに記載の実施例によって実施される。これは４つの時間の期間の中で５つのすべてのファンクションを終わらせる。図４に記載のスケジュールは、図３Ａまたは図３Ｂに記載のスケジュールのいずれよりも効果的である。図２Ｂに記載の構成が図２Ａに記載の構成よりも多くのリソース時間ブロックを使用するとしても、この実施例においては、図２Ｂに記載の構成を使用できることは、再構成可能チップの効率性を向上させる。
【００１７】
図５は、本発明の方法を示す。この実施例において、アルゴリズムのセクションは、再構成可能ファブリック上に配置されるために割り当てられる。１つの実施態様において、Ｃ言語などの高いレベルの言語で書かれたプログラムなどのコンピュータ・プログラムは、再構成可能チップにロードされるべきセクションに分割される。これは、手動で、またはコンピュータ・プログラムを使用して行うことができる。ステップ６２において、アルゴリズムのセクションを実施するための、時間およびリソース使用に関して異なっている複数の構成が決定される。１つの実施態様において、アルゴリズムのセクションの、ハードウェア・ベース記述が作られる。ハードウェア・ベース記述は、再構成可能チップに関する構成へとマッピングされる。構成は好ましくは構成ライブラリに記憶される。
【００１８】
本発明のシステムを使用することができる、２つの異なる主要な種類のスケジューラがある。静的スケジューラは、アルゴリズムが実行される前に動作し、およびアルゴリズムによって生成されるデータを考慮に入れることができない。動的スケジューラは、ランタイム（実行時）に動作し、およびアルゴリズムによって生成されるデータを考慮に入れることができる。ステップ６４の静的スケジューラにおいて、再構成可能ファブリックがスケジュールされ、利用可能なリソースおよび時間に関する最善の構成を選択する。ステップ６６において、アルゴリズムは再構成可能チップで実行される。動的スケジューラに関しては、ステップ６８において、アルゴリズムが再構成可能チップで実行され、およびスケジューラは、リソース利用可能性に基づいて、構成の群から最善の構成を選択する。
【００１９】
図６および７は、本発明のシステムのさらなる実施態様を示す。図７は、図６に記載の実施例に関するスケジュールを示す。この実施例において、ファンクション１、２および３が実施される必要がある。これらのファンクションの各々は、異なる時間およびリソースの値を有する複数の構成と関連している。ファンクション１は１スライス、３時間単位の構成、または３スライス、２時間単位の構成を用いて実施されうる。ファンクション２は、２スライス、５時間単位の構成、または１スライス１０時間単位の構成を用いて実施されうる。ファンクション３は、２スライス、２時間単位の構成、または１スライス、６時間単位の構成を用いて実施されうる。
【００２０】
この実施例において、ファンクション１は、１スライス、３時間単位の構成を用いて実施され；およびファンクション２は、２スライス、５時間単位の構成を用いて実施される。これは、ファンクション３に、２スライス、２時間単位の構成；または１スライス、６時間単位の構成の中からの選択肢を残す。
【００２１】
図７を見ると、ファンクション１はブロック７０において実施される。ファンクション２は、ブロック７２において実施される。次に１スライス、６時間単位を選択することは、それがより多くのスライス時間単位を有しているとしても、実際には２スライス、２時間単位よりも、ファンクションを実施するためにより良好に稼動することが注記されるべきである。図７に記載の通り、ファンクション３は、ブロック７６ではなくブロック７４において実施される。
【００２２】
スケジューラは、好ましくは、２つの構成のうちの１つをリソース・スケジュールに適合させるために、リソースおよび時間の指示を用いるソフトウェアである。図６および７に記載の構成の実施例のそれは、リソースのすべてが時間単位の各々において使用されるという点で長方形であることが注記されるべきである。これは必ずしもそうではない。
【００２３】
スケジューラは、動作するために、システム全体の効率性に関する問題を考慮する。効率性を管理する１つの方法は、特定のアルゴリズムによって使用される時間単位の数を減らすことである。異なる構成を異なるスケジュールに供給することによって、システムは、より効率的に再構成可能チップのオペレーションの時間の速度を上げることができる。スケジューラに関与する他の問題は、依存性を含む。他のファンクションが完了する前に、特定のファンクションが終了する必要がある場合、当然、より少ないリソース時間ブロックを使用する構成とは対照的であるが、より速い構成が選択されることもある。
【００２４】
通常の当業者は、本発明が、その精神または特徴から逸脱することなく、他の特定の形式で実施されうることを理解するだろう。ここに開示された実施態様は、そのため、すべての点において説明的であり、制約的ではないと考えられる。本発明の範囲は、前述の説明よりもむしろ添付の特許請求の範囲によって説明され、およびその同等のものの意味ならびに範囲内に入るすべての変更は、ここに含まれることを意図する。
【図面の簡単な説明】
【図１】
図１は、再構成可能チップの図である。
【図２Ａ】
図２Ａは、再構成可能チップで実施されるべきファンクションに関する２つの異なる構成によって必要とされるリソースおよび時間を示している。
【図２Ｂ】
図２Ｂは、再構成可能チップで実施されるべきファンクションに関する２つの異なる構成によって必要とされるリソースおよび時間を示している。
【図３Ａ】
図３Ａは、それぞれ図２Ａまたは図２Ｂのファンクションの５つの実行を実施するスケジュールを示す。
【図３Ｂ】
図３Ｂは、それぞれ図２Ａまたは図２Ｂのファンクションの５つの実行を実施するスケジュールを示す。
【図４】
図４は、図２Ａに記載の構成または図２Ｂに記載の構成の使用を可能にするスケジュールを示す。
【図５】
図５は、本発明の１つの実施態様の１つの方法を示す流れ図である。
【図６】
図６は、本発明のスケジューラの１つの実施態様のオペレーションを示す図である。
【図７】
図７は、図６に記載の実施例に関するスケジュールの図である。
【図１】
2005505030.tif 000003
【図２Ａ】
2005505030.tif 000004
【図２Ｂ】
2005505030.tif 000005
【図３Ａ】
2005505030.tif 000006
【図３Ｂ】
2005505030.tif 000007
【図４】
2005505030.tif 000008
【図５】
2005505030.tif 000009
【図６】
2005505030.tif 000010
【図７】
2005505030.tif 000011
【国際公開パンフレット】
2005505030.tif 000012
2005505030.tif 000013
2005505030.tif 000014
2005505030.tif 000015
2005505030.tif 000016
2005505030.tif 000017
2005505030.tif 000018
2005505030.tif 000019
2005505030.tif 000020
2005505030.tif 000021
2005505030.tif 000022
2005505030.tif 000023
2005505030.tif 000024
2005505030.tif 000025
2005505030.tif 000026
2005505030.tif 000027
【国際公開パンフレット（コレクトバージョン）】
2005505030.tif 000028
2005505030.tif 000029
【国際調査報告】
2005505030.tif 000030
2005505030.tif 000031
2005505030.tif 000032