【手続補正書】
【提出日】平成26年1月20日(2014.1.20)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
相互に接続された複数のプロセシングコアと、
ストリームデスティネーションモジュールおよびストリームソースモジュールを定義するストリームを含むストリームドメインコードを記憶するメモリであって、前記ストリームソースモジュールは前記ストリームにデータ値を代入し、前記ストリームは前記ストリームソースモジュールから前記ストリームデスティネーションモジュールへとデータ値を伝える、メモリと、
いつ前記データ値が前記ストリームデスティネーションモジュールに対して利用可能となるかを検出し、前記複数のプロセシングコアのうちの１つ上で実行されるよう前記ストリームデスティネーションモジュールをスケジュールする、ランタイムシステムと、
を備える、プログラム可能なコアに基づく演算デバイス。
【請求項２】
前記ストリームドメインコードは、入力ストリームおよび出力ストリームを含むストリーム式を含み、前記ストリーム式により、データ値が前記入力ストリームから消費され、データ値が前記ストリーム式の前記出力ストリームにおいて作られる、請求項１に記載の装置。
【請求項３】
前記ストリーム式は、関数に対応する関数コールを含み、前記ストリーム式により、前記入力ストリームから取得された前記データ値を用いて関数がコールされ、前記関数コールにより返される結果は、前記関数コールと関連付けられた前記出力ストリームに代入される、請求項２に記載の装置。
【請求項４】
前記ストリームドメインコードは代入文を含み、前記代入文により、前記ストリーム式の前記出力ストリームは２つ前に宣言されたストリームのソースとなる、請求項２に記載の装置。
【請求項５】
前記ストリーム式は複数のストリーム式のうちの１つであり、前記複数のストリーム式のそれぞれは、対応する別個のプロセシングコア上で実行される、請求項２に記載の装置。
【請求項６】
前記ストリームドメインコードは、入力ストリームおよび出力ストリームを有するモジュールを含み、前記モジュールは前記入力ストリームからデータ値を消費し、前記出力ストリームにおいてデータ値を作る、請求項１に記載の装置。
【請求項７】
前記モジュールは複数のモジュールのうちの１つであり、各モジュールは、前記複数のプロセシングコアのうちの別個の１つ上で実行される、請求項６に記載の装置。
【請求項８】
前記モジュールはその本体内に第２のモジュールを含む、請求項６に記載の装置。
【請求項９】
前記モジュールは逐次的に実行されるスレッドドメインコードを含む、請求項６に記載の装置。
【請求項１０】
前記出力ストリームは、前記モジュールに含まれる複数の出力ストリームのうちの１つである、請求項６に記載の装置。
【請求項１１】
前記モジュールは、前記ストリームドメインコートに含まれるモジュール配列に編成された複数のモジュールのうちの１つのモジュールであり、前記モジュール配列は各モジュールへのアクセスを可能にする複数のインデックスを有する、請求項６に記載の装置。
【請求項１２】
前記ストリームドメインコードは、複数の配列インデックスと関連付けられたストリームの配列を含み、前記ストリームの配列内の各ストリームは、ストリームソースの配列からストリームデスティネーションの配列へとデータ値を伝え、各ストリームは配列インデックスを介してアクセス可能である、請求項１１に記載の装置。
【請求項１３】
前記ストリーム配列内の前記ストリームのそれぞれは、前記モジュール配列の前記入力ストリームまたは前記モジュール配列の前記出力ストリームに結合された、請求項１２に記載の装置。
【請求項１４】
ストリームソースからストリームデスティネーションへとデータ値を伝えるマルチコアランタイムシステムをさらに含む、請求項１に記載の装置。
【請求項１５】
前記ランタイムシステムは、プロセシングコア、ハードウェア、または再設定可能なハードウェアにより実行され得る、非一時的媒体上に記憶された１つまたは複数の命令で実装される、請求項１４に記載の装置。
【請求項１６】
前記マルチコアランタイムシステムは先入れ先出しキューを前記ストリームデスティネーションにおいて有する、請求項１４に記載の装置。
【請求項１７】
前記マルチコアランタイムシステムは前記先入れ先出しキューのオーバーフローを防ぐ、請求項１６に記載の装置。
【請求項１８】
各プロセシングコアに、実行されるべきゼロ個かまたはそれ以上のタスクを割り当てるランタイムシステムであって、各タスクは、ストリーム式または前記コンピュータプログラムに現れるスレッドドメインコードのインスタンスを実装する、ランタイムシステムと、
前記プロセシングコアに割り当てられた前記タスクの実行を管理するタスクマネージャと、
をさらに含む、請求項１６に記載の装置。
【請求項１９】
前記タスクマネージャは、各タスクの各入力ストリームに対する消費側カウントと、各タスクの各出力ストリームに対する作成側カウントと、実行される準備が整ったタスクの実行準備完了キューと、タスクが実行可能となるために有効化されることが要求されるタスク入力ストリームの個数を判定する各タスクに対する入力カウントと、タスクが実行可能となるために有効化されることが要求されるタスク出力ストリームの個数を判定する各タスクに対する出力カウントとを保持し、
前記タスクマネージャは、
ストリームソースにおける前記タスクから送信されたフォワードアクノレッジメントに応答して、入力ストリームの前記消費側カウントをインクリメントし、前記アクノレッジメントは、追加的なデータ値が、前記入力ストリームに関連付けられた前記先入れ先出しキューにすでに格納されていることを示すことと、
ストリームデスティネーションにおける前記タスクから送信されたバックワードアクノレッジメントに応答して出力ストリームの前記作成側カウントをデクリメントし、前記アクノレッジメントは、データ値が、前記ストリームデスティネーションにおける前記入力ストリームに関連付けられた前記先入れ先出しキューからすでに除去されていることを示すことと、
作成側カウントおよび消費側カウントの有効化を監視することと、
有効化された消費側カウントの個数が前記タスク入力カウントに到達し、且つ有効化された作成側カウントの個数が前記タスク出力カウントに到達したとき、タスクを前記実行準備完了タスクキューに置くことと、
タスクが前記実行準備完了タスクキューの先頭にあり、且つ前記プロセッサコアが利用可能であるとき、前記タスクを実行することと、
ストリームアクセス命令によりブロックされたかまたはタイムアウトした前記タスクが実行を完了した場合に前記タスクの実行を停止することと、
をさらに実行する、請求項１８に記載の装置。
【請求項２０】
前記タスクマネージャは、プロセシングコア、ハードウェア、または再設定可能なハードウェアにより実行され得る、非一時的媒体上に記憶された１つまたは複数の命令で実装される、請求項１８に記載の装置。
【請求項２１】
複数のプロセシングコアを含むコンピュータシステムをプログラムするための方法であって、
前記複数のプロセシングコア上で実行されるコンピュータプログラムを提供し、前記コンピュータプログラムは、前記プロセシングコアのうちの１つに対応する少なくとも１つのストリームソースから、前記プロセシングコアのうちの他の１つに対応する少なくとも１つのストリームデスティネーションへと、データ値を伝えるストリームを含むストリームドメインコードを含むこと、を含む方法。