【手続補正書】
【提出日】令和1年12月12日(2019.12.12)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
命令を処理する方法であって、
メタデータ処理のために、関連するメタデータタグとともに現在の命令を受信するステップであって、前記メタデータ処理が前記現在の命令を含むコード実行領域から隔離されたメタデータ処理領域において実行される、ステップと、
前記メタデータ処理領域において、かつ前記メタデータタグおよび前記現在の命令に従って、前記現在の命令のためのルールキャッシュにルールが存在するかどうかを判定するステップであって、前記ルールキャッシュが、許容される動作を定義するために前記メタデータ処理により使用されるメタデータについてのルールを含む、ステップと、
前記現在の命令のための前記ルールキャッシュにルールが存在しないと判定したことに応答して、前記メタデータ処理領域においてルールキャッシュミス処理を実行するステップであって、
前記現在の命令の実行が許容されるかどうかを判定するステップと、
前記現在の命令が前記コード実行領域において実行されることが許容されると判定したことに応答して、前記現在の命令のための新しいルールを生成するステップと、
レジスタに書き込むステップと、
前記レジスタへの書込みに応答して、前記新しいルールを前記ルールキャッシュに挿入するステップと
を備える、ステップとを備える、方法。
【請求項２】
前記現在の命令のための前記ルールを選択するために使用される第1のメタデータが、前記メタデータ処理により使用される複数の制御ステータスレジスタの第1の部分に記憶され、前記複数の制御ステータスレジスタの前記第1の部分が、前記現在の命令のための複数のメタデータタグを前記メタデータ処理領域に伝えるために使用され、前記複数のメタデータタグが前記メタデータ処理領域においてデータとして使用される、請求項1に記載の方法。
【請求項３】
前記レジスタが、前記メタデータ処理により使用される前記複数の制御ステータスレジスタの第1の制御ステータスレジスタであり、前記複数の制御ステータスレジスタの前記第1の部分が、前記メタデータ処理領域から前記ルールキャッシュに前記複数のメタデータタグを伝えるために使用される、請求項2に記載の方法。
【請求項４】
前記複数のメタデータタグが前記現在の命令のためのものである、請求項3に記載の方法。
【請求項５】
別のメタデータタグを前記第1の制御ステータスレジスタに書き込んだことに応答して、前記新しいルールが前記ルールキャッシュへと挿入され、前記別のメタデータタグが前記現在の命令の結果に付けられ、前記結果が宛先レジスタまたはメモリ位置のいずれかである、請求項4に記載の方法。
【請求項６】
前記複数の制御ステータスレジスタが、
すべての他の生成されるメタデータタグがそこから導出される初期メタデータタグを含む、ブートストラップタグ制御ステータスレジスタと、
デフォルトメタデータタグを指定するデフォルトタグ制御ステータスレジスタと、
公開であり信頼されないものとして分類される命令およびデータをタグ付けするために使用される公開信頼不可メタデータタグを指定する、公開信頼不可制御ステータスレジスタと、
オペグループについての情報と様々なオペコードのためのケア情報とを含むテーブルに書き込まれるデータを含む、オペグループ値制御ステータスレジスタと、
前記オペグループ値制御ステータスレジスタのデータが書き込まれる前記テーブルの中の位置を指定する、オペグループアドレス制御ステータスレジスタと、
pumpフラッシュ制御ステータスレジスタであって、前記pumpフラッシュ制御ステータスレジスタへの書込みが前記ルールキャッシュのフラッシュをトリガする、pumpフラッシュ制御ステータスレジスタと
のうちの任意の1つまたは複数を含む、請求項2に記載の方法。
【請求項７】
前記複数の制御ステータスレジスタが、メタデータ処理の現在のモードを示すタグモード制御ステータスレジスタを含む、請求項2に記載の方法。
【請求項８】
前記タグモード制御ステータスレジスタが、メタデータ処理がいつ不関与であり、それにより、1つまたは複数の定義されたポリシーのルールがメタデータ処理によって実施されないかを示す、請求項7に記載の方法。
【請求項９】
前記タグモード制御ステータスレジスタが、メタデータ処理の前記現在のモードを示すために許容される状態の定義された集合のうちの1つに設定され、前記許容される状態が、メタデータ処理がすべての結果にデフォルトタグを書き込むオフ状態と、命令が1つまたは複数の指定された特権レベルで前記コード領域において実行されるときにメタデータ処理が関与しており動作可能であることを示す状態とを含む、請求項8に記載の方法。
【請求項１０】
前記ルールキャッシュミス処理が、メタデータ処理が不関与である許容される状態の前記定義された集合のうちの第1の状態において実行される、請求項9に記載の方法。
【請求項１１】
前記許容される状態が、命令がユーザ特権レベルで前記コード領域において実行するときにのみメタデータ処理が関与していることを示す第1の状態と、命令がユーザ特権レベルまたはスーパーバイザー特権レベルで前記コード領域において実行するときにのみメタデータ処理が関与していることを示す第2の状態と、命令がユーザ特権レベル、スーパーバイザー特権レベル、またはハイパーバイザー特権レベルで前記コード領域において実行するときにのみメタデータ処理が関与していることを示す第3の状態と、命令がユーザ特権レベル、スーパーバイザー特権レベル、ハイパーバイザー特権レベル、またはマシン特権レベルで前記コード領域において実行するときにのみメタデータ処理が関与していることを示す第4の状態とを含む、請求項9に記載の方法。
【請求項１２】
前記メタデータ処理が関与しているか不関与であるかが、前記タグモード制御ステータスレジスタの現在のタグモードと、前記コード領域において実行するコードの現在の特権レベルとの組合せに従って判定され、メタデータ処理が不関与であるときに1つまたは複数の定義されるポリシーのルールが実施されず、メタデータ処理が関与しているときに前記ルールが実施される、請求項7に記載の方法。
【請求項１３】
テーブルが、命令セットのオペコードを対応するオペグループおよびビットベクトル情報にマッピングする情報を含み、前記オペグループが、前記メタデータ処理領域によって同様に扱われる関連するオペコードのグループを示し、前記ビットベクトル情報が、前記メタデータ処理領域に関する特定の入力および出力が前記オペコードを処理することに関連して使用されるかどうかを示し、前記テーブルが、許容可能なオペコードビットの最大の数より少ないオペコードビットの第1の部分を使用してインデクシングされ、前記最大の数が前記命令セットのオペコードのビットの数の上限を示す、請求項2に記載の方法。
【請求項１４】
前記複数の制御ステータスレジスタの前記第1の部分が、前記現在の命令のための追加のオペコードビットがもしあればそれを含む、拡張オペコード制御ステータスレジスタを含み、前記現在の命令が可変長オペコードを有する前記命令セットに含まれ、前記命令セットの各オペコードが、任意選択で前記追加のオペコードビットを含み、前記拡張オペコード制御ステータスレジスタが、前記現在の命令のための前記追加のオペコードビットがもしあればそれを含む、請求項13に記載の方法。
【請求項１５】
前記テーブルを使用してマッピングされる各オペコードに対して、前記各オペコードに対応する結果ビットベクトルがあり、前記結果ビットベクトルが、もしあれば、前記拡張オペコード制御ステータスレジスタの中の前記追加のオペコードビットのどの部分がメタデータ処理のために前記各オペコードとともに使用されるかを示す、請求項14に記載の方法。
【請求項１６】
前記現在の命令が、単一のメタデータタグと関連付けられるメモリの単一のワードに記憶される複数の命令のうちの1つであり、前記単一のメタデータタグが、前記単一のワードに含まれる前記複数の命令と関連付けられる、請求項2に記載の方法。
【請求項１７】
前記複数の制御ステータスレジスタが、前記単一のワードに記憶されている前記複数の命令のいずれが前記現在の命令であるかを示す、サブ命令制御ステータスレジスタを含む、請求項16に記載の方法。
【請求項１８】
前記単一のメタデータタグが、前記単一のワードの中の前記複数の命令の各々に対する異なるメタデータタグを含む第1のメモリ位置への第1のポインタである、請求項17に記載の方法。
【請求項１９】
前記複数の命令のうちの第1の命令のための前記第1のメモリ位置に記憶されている少なくとも第1のメタデータタグが、前記第1の命令のためのメタデータタグ情報を含む第2のメモリ位置への第2のポインタを含む、請求項18に記載の方法。
【請求項２０】
前記第1の命令のための前記メタデータタグ情報が複雑な構造を含み、前記複雑な構造が、少なくとも1つのスカラーデータフィールドと、第3のメモリ位置への少なくとも1つのポインタフィールドとを備える、請求項19に記載の方法。