【手続補正書】
【提出日】令和3年7月29日(2021.7.29)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
少なくとも１つの計算装置によって、プログラムコードの複数の部分を含むソフトウェアプログラムを実行するためのシステムであって、
少なくとも１つの計算デバイスに接続された計算グリッドであって、データ入力メッシュネットワーク、複数の論理要素、および複数のマルチプレクサ、を有し、前記複数の論理要素および前記複数のマルチプレクサは、複数の計算グループを形成し、前記論理要素の少なくとも１つおよび複数のマルチプレクサの少なくとも１つは、複数の計算グループのそれぞれを形成する、前記計算グリッドと、
複数の構成反復のそれぞれにおいて、
プログラムコードの前記複数の部分のうち、プログラムコードの２つ以上の部分を含むプログラムコードパターンであって、各パターンは、前記ソフトウェアプログラムを実行するときにプログラムコードの前記２つ以上の部分のそれぞれの出現における関連性を示している少なくとも１つの前記プログラムコードパターンにアクセスし、
前記少なくとも１つのプログラムコードパターンのそれぞれに対し、前記少なくとも１つのプログラムコードに従って、プログラムコードの前記２つ以上の部分のそれぞれのうち、１つの少なくとも一部をそれぞれ実行するように、前記複数の計算グループの少なくともいくつかを構成し、
少なくとも１つの計算装置の代わりに、前記計算グリッドによって少なくとも１つのプログラムコードパターンを計算する、
ことにより、前記プログラムコードの複数の部分の少なくともいくつかを実行するように前記計算グリッドを構成するために適合された少なくとも１つの処理回路と、
を備える、システム。
【請求項２】
前記少なくとも１つの計算装置によって前記ソフトウェアプログラムを実行することは、前記計算グリッドがプログラムコードの前記複数の部分から選択されたプログラムコードの部分の第２のセットを実行する間に前記プログラムコードの複数の部分から選択されたプログラムコードの部分の第１のセットをそれによって実行することを含む、
請求項１に記載のシステム。
【請求項３】
前記少なくとも１つの処理回路は、
前記複数の構成反復の少なくとも１つにおいて、少なくとも１つの他の処理回路から前記少なくとも１つのプログラムコードパターンを受信すること、および、
前記複数の構成反復の他の少なくとも１つにおいて、
プログラムコードの前記複数の部分のうちの１つをそれぞれが実行するための複数の呼び出しを受信し、
前記複数の呼び出しにおいて、前記少なくとも１つのプログラムコードパターンを識別する、
ことにより、前記少なくとも１つのプログラムコードパターンを計算すること、
の少なくとも１つのためにさらに適合されている、
請求項１に記載のシステム。
【請求項４】
前記少なくとも１つのプログラムコードパターンは、
プログラムコードの前記２つ以上の部分のそれぞれのうちのコードの第１の部分およびコードの２つ以上の部分のそれぞれのうちのコードの第２の部分であって、前記複数の呼出しにおいて、プログラムコードの前記第１の部分およびプログラムコードの前記第２の部分が次々に出現する第１の頻度が所定のしきい値頻度を越えているような、前記第１の部分および前記第２部分を有している、第１のプログラムコードパターンと、
プログラムコードの前記２つ以上の部分のそれぞれのうちのコードの第３の部分およびコードの前記２つ以上の部分のそれぞれのうちのコードの第４の部分であって、前記複数の呼出しにおいて、コードの前記第３の部分がコードの前記第４の部分を呼び出す第２の頻度が所定のしきい値頻度を越えているような、前記第３の部分および前記第４の部分を有している、第２のプログラムコードパターンと、
プログラムコードの前記２つ以上の部分のそれぞれのうちのコードの第５の部分をそれぞれ有している、第３のコードパターンおよび第４のコードパターンと、
の少なくとも１つを備える、
請求項３に記載のシステム。
【請求項５】
前記複数の計算グループの少なくともいくつかを構成することは、前記第１のプログラムコードパターンのために、プログラムコードの前記第１の部分を実行するように、前記複数の計算グループのうちの少なくとも１つの第１の計算グループを構成することを含んでおり、
前記少なくとも１つの第１の計算グループは、プログラムコードの前記第２の部分を実行するように構成された前記少なくとも１つの第２の計算グループに位相的に近接している前記少なくとも１つの計算グリッド内に配置されている、
請求項４に記載のシステム。
【請求項６】
前記複数の計算グループの少なくともいくつかを構成することは、前記第２のプログラムコードパターンのために、プログラムコードの前記第３の部分を実行するように、前記複数の計算グループのうちの少なくとも１つの第３の計算グループを構成することを含んでおり、
前記少なくとも１つの第３の計算グループは、プログラムコードの前記第４の部分を実行するように構成された前記少なくとも１つの第４の計算グループに位相的に近接している前記少なくとも１つの計算グリッド内に配置されている、
請求項４に記載のシステム。
【請求項７】
前記複数の計算グループの少なくともいくつかを構成することは、プログラムコードの前記第５の部分を実行するように、前記複数の計算グループのうちの少なくとも２つの計算グループを構成することを含む、
請求項４のシステム。
【請求項８】
前記複数の計算グループの少なくともいくつかを構成することは、前記少なくとも１つのプログラムコードパターンの少なくとも１つに対して、
プログラムコードの前記２つ以上の部分のそれぞれのうちの１つの少なくとも一部を実行するようにそれぞれ構成された前記複数の計算グループの少なくとも２つを識別すること、
少なくとも２つの他の計算グループが互いに位相的に近接した状態で前記計算グリッド内に配置されるように、前記複数の計算グループの少なくとも２つの他の計算グループを選択すること、および、
前記少なくとも２つの計算グループが実行されたプログラムコードの前記２つ以上の部分のそれぞれのうちの１つの少なくとも一部を実行するように、前記少なくとも２つの他の計算グループのそれぞれを構成すること、
を含む、請求項１に記載のシステム。
【請求項９】
前記複数の計算グループの少なくともいくつかを構成することは、前記少なくとも１つのプログラムコードパターンの少なくとも１つのために、
プログラムコードの前記２つ以上の部分のそれぞれのプログラムコードの第１の部分を実行するように構成された前記複数の計算グループのうちの少なくとも１つの第１の計算グループを識別すること、および、
プログラムコードの前記２つ以上の部分のそれぞれのプログラムコードの第２の部分を実行するように、前記複数の計算グループのうちの少なくとも１つの第２の計算グループであって、前記少なくとも１つの計算グループに位相的に近接している前記計算グループ内に配置されている前記第２の計算グループを構成すること、
を含む、請求項１に記載のシステム。
【請求項１０】
前記複数の計算グループの少なくともいくつかを構成することは、
前記複数の計算グループのいずれにもアクセスされておらず、かつ前記計算装置にもアクセスされていない前記複数の計算グループのうちの少なくとも１つの計算グループを解放すること、
をさらに含む、請求項１に記載のシステム。
【請求項１１】
前記少なくとも１つの処理回路は、前記ソフトウェアプログラムが前記少なくとも１つの計算装置および前記計算グリッドによって実行されている間、前記計算グリッドを構成するために適合される、
請求項１に記載のシステム。
【請求項１２】
前記少なくとも１つの計算装置は、
マルチコア中央処理装置（ＣＰＵ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、グラフィック処理装置（ＧＰＵ）、粗粒度再構成可能アーキテクチャ（ＣＧＲＡ）、ニューラルネットワークアクセラレータ、インテリジェンス処理ユニット（ＩＰＵ）、特定用途向け集積回路（ＡＳＩＣ）、量子コンピュータ、
のいずれか１つである、
請求項１に記載のシステム。
【請求項１３】
少なくとも１つの計算装置によって、プログラムコードの複数の部分を含むソフトウェアプログラムを実行するための方法であって、
プログラムコードの前記複数の部分のうちの少なくともいくつかを実行するように、データ入力メッシュネットワーク、複数の論理要素、および複数のマルチプレクサを有する計算グリッドの少なくとも一部分を構成するステップを備え、
前記複数の論理要素および前記複数のマルチプレクサは、複数の計算グループを形成しており、
前記論理要素の少なくとも１つおよび複数のマルチプレクサの少なくとも１つは、複数の計算グループのそれぞれを形成しており、
前記計算グリッドの前記少なくとも一部分を構成するステップは、複数の構成反復のそれぞれにおいて、
プログラムコードの前記複数の部分のうち、２つ以上を有するプログラムコードパターンであって、各パターンは、前記ソフトウェアプログラムを実行するときにプログラムコードの前記２つ以上の部分のそれぞれの出現における関連性を示している少なくとも１つの前記プログラムコードパターンにアクセスするステップと、
前記少なくとも１つのプログラムコードパターンのそれぞれについて、前記少なくとも１つのプログラムコードに従って、プログラムコードの前記２つ以上の部分のそれぞれのうち、１つの少なくとも一部をそれぞれ実行するように、複数の計算グループの少なくともいくつかを構成するステップと、
前記少なくとも１つの計算装置の代わりに、前記計算グリッドによって少なくとも１つのプログラムコードパターンを計算するステップと、
を含む、
方法。
【請求項１４】
プログラムコードの複数の部分を有するソフトウェアプログラムを少なくとも１つの計算装置によって実行するプロセスを処理ユニットに実行させる命令を格納している非一過性のコンピュータ可読媒体であって、前記プロセスは、
プログラムコードの前記複数の部分のうちの少なくともいくつかを実行するように、データ入力メッシュネットワーク、複数の論理要素、および複数のマルチプレクサを有する計算グリッドの少なくとも一部分を構成するステップを備え、
前記複数の論理要素および前記複数のマルチプレクサは、複数の計算グループを形成しており、
前記論理要素の少なくとも１つおよび複数のマルチプレクサの少なくとも１つは、複数の計算グループのそれぞれを形成しており、
前記計算グリッドの前記少なくとも一部分を構成するステップは、複数の構成反復のそれぞれにおいて、
プログラムコードの前記複数の部分のうち、２つ以上を有するプログラムコードパターンであって、各パターンは、前記ソフトウェアプログラムを実行するときにプログラムコードの前記２つ以上の部分のそれぞれの出現における関連性を示している少なくとも１つの前記プログラムコードパターンにアクセスするステップと、
前記少なくとも１つのプログラムコードパターンのそれぞれについて、前記少なくとも１つのプログラムコードに従って、プログラムコードの前記２つ以上の部分のそれぞれのうち、１つの少なくとも一部をそれぞれ実行するように、複数の計算グループの少なくともいくつかを構成するステップと、
前記少なくとも１つの計算装置の代わりに、前記計算グリッドによって少なくとも１つのプログラムコードパターンを計算するステップと、
を含む、
非一過性のコンピュータ可読媒体。
【請求項１５】
計算装置の動作を加速させる装置であって、
プログラムを記憶しているメモリと、
複数の論理素子、および複数のマルチプレクサを有し、前記プログラムを実行する計算要素と、
を備え、
前記計算要素は、前記計算装置において実行される演算のための複数の呼出しの間で少なくとも１つのパターンが識別された場合、識別されたパターンに基づいて、前記複数の論理素子の少なくとも１つと前記複数のマルチプレクサの少なくとも１つの組み合わせを最適化する、
装置。
【請求項１６】
前記計算要素は、前記パターンが前記演算の実行に用いられる少なくとも１つの関数の再出現を示している場合、当該関数に対応付けられている前記組み合わせを複製する、
請求項１５に記載の装置。
【請求項１７】
前記計算要素は、前記パターンが、第１の関数を用いた演算と、前記第１の関数を呼び出す第２の関数を用いた演算との実行を示している場合、前記第１の関数に対応付けられている第１の組み合わせと前記第２の関数に対応付けられている第２の組み合わせとを、前記パターンに基づいて再配置する、
請求項１５または１６に記載の装置。