【手続補正書】
【提出日】令和1年11月21日(2019.11.21)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
実行可能なデータを格納するメモリデバイスを提供するステップと、
前記メモリデバイスに接続され、前記実行可能なデータを抽出して実行するように動作可能な処理デバイスを提供するステップと、
前記処理デバイスに動作可能に接続されたハードウェア同期コンポーネントを提供するステップであって、前記ハードウェア同期コンポーネントは１以上の状態を含む、前記提供するステップと、
前記処理デバイスによる実行の複数のスレッドを同時に実行するステップと、
実行の前記複数のスレッドによって、命令を前記ハードウェア同期コンポーネントに発行するステップであって、前記命令は、前記１以上の状態の各状態ごとに、同じクロックサイクル内で前記各状態を扱うための複数の命令を含む、前記発行するステップと、
前記ハードウェア同期コンポーネントによって、前記１以上の状態の各状態ごとに、前記各状態に対する集約命令を取得するために、前記各状態を扱うための前記複数の命令を集約するステップと、
前記ハードウェア同期コンポーネントによって、前記各状態に対する前記集約命令に従って前記１以上の状態の各状態を更新するステップと、
前記ハードウェア同期コンポーネントによって、前記ハードウェア同期コンポーネントの前記１以上の状態が閾値条件を満たすと判定するステップと、
前記ハードウェア同期コンポーネントの前記１以上の状態が前記閾値条件を満たすと判定したことに応じて、前記ハードウェア同期コンポーネントによってイベントを前記処理デバイスに出力するステップと、
前記ハードウェア同期コンポーネントから前記イベントを受信することに応じて、前記処理デバイスによって、実行の前記複数のスレッドのうちの少なくとも１つのスレッドの実行を改変するステップと、
を含む、方法。
【請求項２】
前記処理デバイスによって、スレッドスケジューラに前記イベントを入力するステップと、および
前記イベントに応じて前記スレッドスケジューラによって、前記少なくとも１つのスレッドの前記実行を前記改変することを引き起こすステップと、
を更に含む、請求項１に記載の方法。
【請求項３】
前記少なくとも１つのスレッドの実行を改変するステップは、前記少なくとも１つのスレッドをブロックするステップと、前記少なくとも１つのスレッドに分岐するように命令するステップとのうちの少なくとも一方を含む、請求項１に記載の方法。
【請求項４】
前記各状態に対する前記集約命令に従う前記１以上の状態の各状態を更新するステップは、前記同じクロックサイクル内の前記各状態を扱うための前記複数の命令の数だけカウンタをインクリメントするステップを含み、
前記ハードウェア同期コンポーネントの前記１以上の状態が前記閾値条件を満たすと判定するステップは、前記カウンタが前記閾値条件を満たすと判定するステップを含む、請求項１に記載の方法。
【請求項５】
前記命令は、第１の命令および第２の命令を含み、
前記集約命令に従って前記ハードウェア同期コンポーネントの前記１以上の状態の各状態を更新するステップは、
前記第１の命令の数だけ第１のカウンタをインクリメントするステップと、
前記第２の命令の数だけ第２のカウンタをインクリメントするステップと、
を含む、請求項１に記載の方法。
【請求項６】
前記ハードウェア同期コンポーネントの前記１以上の状態が前記閾値条件を満たすと判定するステップは、
前記第１のカウンタの第１の値および前記第２のカウンタの第２の値を関数に入力して関数出力を取得するステップと、
前記関数出力が前記閾値条件を満たすと判定するステップと、
を含む、請求項５に記載の方法。
【請求項７】
前記関数は、前記第１の値と前記第２の値との間の差である、請求項６に記載の方法。
【請求項８】
前記第１の命令は書き込み命令であり、前記第２の命令は読み出し命令であり、前記読み出し命令及び前記書き込み命令は先入れ先出しバッファを参照する、請求項７に記載の方法。
【請求項９】
実行可能なデータを格納するメモリデバイスと、
前記メモリデバイスに接続され、前記実行可能なデータを抽出して実行するように動作可能な処理デバイスと、
前記処理デバイスに動作可能に接続され、および１以上の状態を規定する、ハードウェア同期コンポーネントと、
を含み、
前記処理デバイスは、
前記処理デバイスによる実行の複数のスレッドを同時に実行し、
前記１以上の状態を更新するための命令を前記複数のスレッドから前記ハードウェア同期コンポーネントに発行する、
ようにプログラムされており、
前記ハードウェア同期コンポーネントは、前記１以上の状態の各状態ごとに、
前記各サイクルの期間中に受信される前記各状態を更新するための命令を、クロックの各クロックサイクルごとに集約して、前記各状態に対する集約命令を取得し、
前記各状態に対する前記集約命令に従って、前記ハードウェア同期コンポーネントの前記各状態を更新し、
前記１以上の状態が閾値条件を満たす場合、イベントを前記処理デバイスに出力する
、
ようにプログラムされており、
前記処理デバイスはさらに、前記イベントに応じて実行の前記複数のスレッドのうちの少なくとも１つのスレッドの実行を改変するようにプログラムされている、システム。
【請求項１０】
前記処理デバイスはさらに、
スレッドスケジューラに前記イベントを入力し、
前記イベントに応じて前記スレッドスケジューラによって前記少なくとも１つのスレッドの前記実行を改変することを引き起こす、
ように更にプログラムされる、請求項９に記載のシステム。
【請求項１１】
プロセッサは、前記少なくとも１つのスレッドをブロックすること、および前記少なくとも１つのスレッドに分岐するように命令をすること、の少なくとも一方によって、前記少なくとも１つのスレッドの実行を改変するようにプログラムされる、請求項９に記載のシステム。
【請求項１２】
前記ハードウェア同期コンポーネントは、前記同じクロックサイクル内の前記各状態を扱うための複数の命令の数だけ、前記各状態と対応するカウンタをインクリメントすることによって前記各状態に対する前記集約命令に従って前記１以上の状態の前記各状態を更新するようにプログラムされ、
前記ハードウェア同期コンポーネントは、前記カウンタが前記閾値条件を満たすと判定することによって、前記ハードウェア同期コンポーネントの前記１以上の状態が前記閾値条件を満たすと判定するようにプログラムされる、請求項９に記載のシステム。
【請求項１３】
前記ハードウェア同期コンポーネントは、前記ハードウェア同期コンポーネントの前記１以上の状態を、
前記クロックの各サイクルの期間中に受信された前記命令の第１の命令の数だけ第１のカウンタをインクリメントし、
前記クロックの各サイクルの期間中に受信された前記命令の第２の命令の数だけ第２のカウンタをインクリメントする、
ことによって更新するようにプログラムされる、請求項９に記載のシステム。
【請求項１４】
前記ハードウェア同期コンポーネントは、
前記第１のカウンタの第１の値および前記第２のカウンタの第２の値を関数に入力して関数出力を取得し、
前記関数出力が前記閾値条件を満たすと判定する、
ことによって前記ハードウェア同期コンポーネントの前記１以上の状態が前記閾値条件を満たすと判定するようにプログラムされ、
前記関数は、前記第１の値と前記第２の値との間の差である、請求項１３に記載のシステム。
【請求項１５】
前記第１の命令は書き込み命令であり、前記第２の命令は読み出し命令であり、前記読み出し命令及び前記書き込み命令は先入れ先出しバッファを参照する、請求項１４に記載のシステム。