JP7449273B2 - 範囲チェック命令 - Google Patents
範囲チェック命令 Download PDFInfo
- Publication number
- JP7449273B2 JP7449273B2 JP2021507901A JP2021507901A JP7449273B2 JP 7449273 B2 JP7449273 B2 JP 7449273B2 JP 2021507901 A JP2021507901 A JP 2021507901A JP 2021507901 A JP2021507901 A JP 2021507901A JP 7449273 B2 JP7449273 B2 JP 7449273B2
- Authority
- JP
- Japan
- Prior art keywords
- address
- memory
- instruction
- attribute
- access
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 230000015654 memory Effects 0.000 claims description 417
- 238000012545 processing Methods 0.000 claims description 147
- 230000004044 response Effects 0.000 claims description 40
- 238000004590 computer program Methods 0.000 claims description 19
- 230000001960 triggered effect Effects 0.000 claims description 17
- 238000012360 testing method Methods 0.000 claims description 7
- 238000003672 processing method Methods 0.000 claims description 4
- 230000011664 signaling Effects 0.000 claims description 4
- 238000000034 method Methods 0.000 description 23
- 230000003068 static effect Effects 0.000 description 23
- 101100108191 Vibrio parahaemolyticus serotype O3:K6 (strain RIMD 2210633) add gene Proteins 0.000 description 14
- 101150060298 add2 gene Proteins 0.000 description 12
- 238000010586 diagram Methods 0.000 description 7
- 230000008569 process Effects 0.000 description 7
- 230000009471 action Effects 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 238000013459 approach Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 4
- 238000004088 simulation Methods 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 238000013507 mapping Methods 0.000 description 3
- 230000000737 periodic effect Effects 0.000 description 3
- 230000009467 reduction Effects 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 241000473391 Archosargus rhomboidalis Species 0.000 description 1
- 238000007792 addition Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000010076 replication Effects 0.000 description 1
- 238000011012 sanitization Methods 0.000 description 1
- 238000013341 scale-up Methods 0.000 description 1
- 230000026676 system process Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30021—Compare instructions, e.g. Greater-Than, Equal-To, MINMAX
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1458—Protection against unauthorised use of memory or access to memory by checking the subject access rights
- G06F12/1483—Protection against unauthorised use of memory or access to memory by checking the subject access rights using an access-table, e.g. matrix or list
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1416—Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
- G06F12/1425—Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
- G06F12/1441—Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block for a range
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30094—Condition code generation, e.g. Carry, Zero flag
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/34—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
- G06F9/355—Indexed addressing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
- G06F2212/1024—Latency reduction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1052—Security improvement
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Mathematical Physics (AREA)
- Storage Device Security (AREA)
- Quality & Reliability (AREA)
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
- Computer Networks & Wireless Communication (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
Description
・MVALID:第1のアドレス及び第2のアドレスの両方がMPU20の同じメモリ保護エントリに対応するかどうかを示す;
・SVALID:第1のアドレス及び第2のアドレスがSAU42の同じセキュリティ保護エントリにマッピングするかどうかを示す;
・読み取りパーミッション・フラグR:(少なくとも第1及び第2のアドレスが同じMPUエントリに対応する場合)その一致エントリに対応するアドレス領域へのメモリ・アクセスが許可されるかどうかを指定する;
・読み取り/書き込みパーミッション・フラグRW:(少なくとも第1及び第2のアドレスが同じMPUエントリに対応する場合)読み取り及び書き込みアクセスの両方が、一致エントリ内のアクセス・パーミッションによって許可されるかどうかを示す;
・セキュリティ・ドメイン・フラグS:第1及び第2のアドレスがセキュアな領域又はあまりセキュアではない領域のどちらに対応するかを示す(少なくとも第1及び第2のアドレスが同じSAUエントリに対応する場合);
・組み合わされたインジケータLSR:次の条件がすべて満足される場合、1にセットされる:セキュリティ・フラグSが第1及び第2のアドレスがあまりセキュアではないドメインに対応していることを示している、読み取りフラグRが読み取りアクセスが許可されていることを示している、SVALID及びMVALIDインジケータの両方が1である。これらの条件のうちいずれかが満足されない場合、LSRは0にセットされる;
・第2の組み合わされたインジケータLSRW:次の条件がすべて満足される場合、1にセットされる:第1及び第2のアドレスに関連付けられるセキュリティ・ドメインがあまりセキュアではないドメインである、読み取り/書き込みフラグRWが1であり、読み取り及び書き込みのアクセスが許可されていることを示している、SVALID及びMVALID指標の両方が1である。これらの条件のうちいずれかが満足されない場合、LSRWは0にセットされる。
Claims (23)
- 装置であって、
命令をデコードするための命令デコーダと、
前記命令デコーダによってデコードされた前記命令に応じてデータ処理を実施するための処理回路と、
前記処理回路によって発行されたメモリ・アクセス・リクエストが、複数のメモリ属性エントリにおいて指定されるアクセス・パーミッションを満足するかどうかをチェックするメモリ属性チェック回路であって、それぞれのメモリ属性エントリは、アドレス空間内の可変サイズの対応するアドレス領域に対するアクセス・パーミッションを指定する、メモリ属性チェック回路と
を備え、
範囲チェック命令が、第1のアドレス及び第2のアドレスを特定するためのアドレス特定パラメータを指定することに応じて、前記命令デコーダは、前記命令デコーダによってサポートされる命令の少なくとも1つのタイプにとってアクセス可能である少なくとも1つのソフトウェア・アクセス可能な記憶場所に、前記第1のアドレス及び前記第2のアドレスが同じメモリ属性エントリに対応するかどうかを示す状態値をセットするように前記処理回路を制御するように構成され、
前記範囲チェック命令に応じて、少なくとも前記第1のアドレスと前記第2のアドレスの両方が同じメモリ属性エントリに対応する場合、前記処理回路は、前記少なくとも1つのソフトウェア・アクセス可能な記憶場所に、前記第1のアドレス及び前記第2のアドレスに対応する一致したメモリ属性エントリから導出された属性情報を記憶するように構成され、
前記処理回路が、セキュアなドメイン及びあまりセキュアではないドメインを含む、動作の複数のセキュリティ・ドメインを有し、それぞれのセキュリティ・ドメイン内で前記処理回路が複数のモードのうちの1つで、且つ複数の特権レベルのうちの1つで動作するように構成され、ここで、前記セキュアなドメインは前記あまりセキュアでないドメインではアクセスできない少なくとも1つのメモリ・アドレス領域にアクセスできるところのドメインであり、
前記命令デコーダが、前記範囲チェック命令の以下の変形、すなわち
第1の変形であって、前記処理回路が現在のセキュリティ・ドメイン内にあり、且つ前記現在のモードに関連付けられる特権レベルにある場合、前記属性情報が、前記第1のアドレスと前記第2のアドレスとの間の範囲内のアドレスへのメモリ・アクセスが許可されるかどうかを指定する、第1の変形、
第2の変形であって、前記処理回路が前記現在のドメインとは異なるセキュリティ・ドメインにあり、且つ前記異なるセキュリティ・ドメインで動作する際に前記現在のモードに関連付けられる前記特権レベルにある場合、前記属性情報が、前記第1のアドレスと前記第2のアドレスとの間の範囲内のアドレスへのメモリ・アクセスが許可されるかどうかを指定する、第2の変形、
第3の変形であって、前記属性情報が、前記第1のアドレスと前記第2のアドレスとの間の範囲内のアドレスへのメモリ・アクセスが現在のセキュリティ・ドメイン内で、且つ前記現在のモードに関連付けられる前記特権レベルとは異なる特権レベルで許可されるかどうかを指定する、第3の変形、及び
第4の変形であって、前記処理回路が現在のセキュリティ・ドメインとは異なるセキュリティ・ドメイン内に、且つ前記現在のモードに関連付けられる特権レベルとは異なる特権レベルにある場合、前記属性情報が、前記第1のアドレスと前記第2のアドレスとの間の範囲内のアドレスへのメモリ・アクセスが許可されるかどうかを指定する、第4の変形、
の変形のうちの少なくとも1つをサポートするように構成される、
装置。 - 前記メモリ属性チェック回路が、前記可変サイズが2の累乗以外のバイト数であることを許可するように構成される、請求項1に記載の装置。
- 前記処理回路が、前記第1のアドレスと前記第2のアドレスとの差異が2の累乗以外のバイト数であることを許可するように構成される、請求項1又は2に記載の装置。
- 前記アドレス特定パラメータが、前記第1のアドレスがそこから読み出されるベース・アドレス・レジスタ、及び前記第1のアドレスと前記第2のアドレスとの差異を特定するためのオフセットを特定する、請求項1から3までのいずれかに記載の装置。
- 前記オフセットが、倍数及びサイズ値として指定され、
前記倍数及び前記サイズ値うちの一方が、前記範囲チェック命令によって指定される可変パラメータであり、
前記倍数及び前記サイズ値のうちのもう一方が
固定値、
前記範囲チェック命令によって指定される即値、
前記範囲チェック命令によって指定されるレジスタ内に格納される値、
のうちの1つである、
請求項4に記載の装置。 - 前記アドレス特定パラメータが、前記第1のアドレスがそこから読み出される第1のレジスタ、及び前記第2のアドレスがそこから読み出される第2のレジスタを特定する、請求項1から3までのいずれか一項に記載の装置。
- 前記少なくとも1つのソフトウェア・アクセス可能な記憶場所が、前記範囲チェック命令によって指定されるデスティネーション・レジスタを含む、請求項1から6までのいずれかに記載の装置。
- 以前の命令の結果のプロパティを示す少なくとも1つの条件状態指標を格納するための制御レジスタを備え、
条件付き命令に応じて、前記命令デコーダは、前記制御レジスタに記憶される前記少なくとも1つの条件状態指標が試験条件を満足するかどうかを条件とする条件付き動作を実施するように前記処理回路を制御するように構成され、
前記範囲チェック命令に応じて、前記命令デコーダは、前記制御レジスタ内の前記少なくとも1つの条件状態指標のうちの少なくとも1つを更新することによって前記状態値をセットするように前記処理回路を制御するように構成される、
請求項1から7までのいずれかに記載の装置。 - 前記処理回路が複数の動作状態を有し、
前記範囲チェック命令の少なくとも1つの変形に応じて、前記処理回路が、前記処理回路の現在の動作状態とは異なる動作状態にある場合に前記一致したメモリ属性エントリについて前記対応するアドレス領域へのメモリ・アクセスに課されるアクセス・パーミッションに基づいて前記属性情報を導出するように構成される、請求項1から8までのいずれかに記載の装置。 - 前記命令デコーダが、前記第2の変形及び前記第4の変形のうちの少なくとも1つをサポートするように構成され、前記異なるセキュリティ・ドメインが前記あまりセキュアではないドメインを含み、前記処理回路が前記あまりセキュアではないドメイン内にある場合、前記処理回路が、前記第2の変形及び前記第4の変形のうちの前記少なくとも1つを実行する試行に応じて、フォールトのシグナリングをトリガするように構成される、及び
前記命令デコーダが、前記第3の変形及び前記第4の変形のうちの少なくとも1つをサポートするように構成され、前記異なる特権レベルが、現在の特権レベルよりも低い特権を与えられた特権レベルを含み、前記処理回路は、少なくとも1つの所定の特権レベルにある場合、前記第3の変形及び前記第4の変形のうちの前記少なくとも1つを実行する試行に応じて、フォールトのシグナリングをトリガするように構成され、前記複数の特権レベルが、前記少なくとも1つの所定の特権レベルよりも高い特権を与えられた少なくとも1つの特権レベルを含む
のうちの少なくとも1つである、請求項1から8までのいずれかに記載の装置。 - 装置であって、
命令をデコードするための命令デコーダと、
前記命令デコーダによってデコードされた前記命令に応じてデータ処理を実施するための処理回路と、
前記処理回路によって発行されたメモリ・アクセス・リクエストが、複数のメモリ属性エントリにおいて指定されるアクセス・パーミッションを満足するかどうかをチェックするメモリ属性チェック回路であって、それぞれのメモリ属性エントリは、アドレス空間内の可変サイズの対応するアドレス領域に対するアクセス・パーミッションを指定する、メモリ属性チェック回路と
を備え、
範囲チェック命令が、第1のアドレス及び第2のアドレスを特定するためのアドレス特定パラメータを指定することに応じて、前記命令デコーダは、前記命令デコーダによってサポートされる命令の少なくとも1つのタイプにとってアクセス可能である少なくとも1つのソフトウェア・アクセス可能な記憶場所に、前記第1のアドレス及び前記第2のアドレスが同じメモリ属性エントリに対応するかどうかを示す状態値をセットするように前記処理回路を制御するように構成され、
前記メモリ属性チェック回路は、前記処理回路によって発行されたメモリ・アクセス・リクエストが、第1の複数のメモリ属性エントリ内で指定されるアクセス・パーミッションを満足するかどうかをチェックし、前記メモリ・アクセス・リクエストが、第2の複数のメモリ属性エントリ内で指定されるアクセス・パーミッションを満足するかどうかをチェックするように構成され、
前記範囲チェック命令に応じて、前記命令デコーダは、
前記第1のアドレス及び前記第2のアドレスが、前記第1の複数のメモリ属性エントリの同じエントリに対応するかどうかを示す第1の状態値と、
前記第1のアドレス及び前記第2のアドレスが、前記第2の複数のメモリ属性エントリの同じエントリに対応するかどうかを示す第2の状態値と
を前記少なくとも1つのソフトウェア・アクセス可能な記憶場所にセットするように前記処理回路を制御するように構成される、
装置。 - 前記複数のメモリ属性エントリが複数のメモリ保護エントリを含み、前記複数のメモリ保護エントリのそれぞれが、
前記対応するアドレス領域が、読み取り専用であるか、又は読み取り可能/書き込み可能の両方であるかどうか、
前記処理回路の複数の特権レベルのどれが前記対応するアドレス領域へアクセスできるか、
のうちの少なくとも1つを示すアクセス・パーミッションを指定する、請求項1から11までのいずれかに記載の装置。 - 前記メモリ・アクセス・リクエストがメモリ・システムをアクセスするリクエストを含み、
前記複数のメモリ保護エントリは、メモリ保護テーブルを含み、前記メモリ保護テーブルは前記メモリ・システムに記憶される、
請求項12に記載の装置。 - 前記メモリ・システムから取得された前記メモリ保護テーブルの少なくとも1つのメモリ保護エントリをキャッシュするためのメモリ保護キャッシュ記憶回路を備える、請求項13に記載の装置。
- 前記処理回路が、セキュアなドメイン及びあまりセキュアではないドメインを含む、動作の複数のドメインを有し、ここで、前記セキュアなドメインは前記あまりセキュアでないドメインではアクセスできない少なくとも1つのメモリ・アドレス領域にアクセスできるところのドメインであり、
前記複数のメモリ属性エントリが複数のセキュリティ属性エントリを含み、前記複数のセキュリティ属性エントリのそれぞれが、前記複数のドメインのどれが前記対応するアドレス領域に関連付けられるかを示すアクセス・パーミッションを指定する、請求項1から14までのいずれかに記載の装置。 - 前記範囲チェック命令の少なくとも1つの変形に応じて、少なくとも前記第1のアドレスと前記第2のアドレスの両方が同じセキュリティ属性エントリに対応する場合、前記処理回路が、前記少なくとも1つのソフトウェア・アクセス可能な記憶場所に、前記第1のアドレス及び前記第2のアドレスに対応する前記同じセキュリティ属性エントリにより前記対応するアドレス領域に関連付けられるとして指定された前記セキュリティ・ドメインから導出された属性情報を記憶するように構成される、請求項1乃至10のいずれかを引用する請求項15に記載の装置。
- 前記複数のメモリ属性エントリはまた、複数のメモリ保護エントリを含み、前記複数のメモリ保護エントリのそれぞれが、
前記対応するアドレス領域が、読み取り専用であるか、又は読み取り可能/書き込み可能の両方であるかどうか、
前記処理回路の特権レベルのどれが前記対応するアドレス領域へアクセスできるか、
のうちの少なくとも1つを示すアクセス・パーミッションを指定し、
前記範囲チェック命令の少なくとも1つの変形に応じて、少なくとも前記第1のアドレスと前記第2のアドレスの両方が同じメモリ属性エントリに対応する場合、前記処理回路が、前記少なくとも1つのソフトウェア・アクセス可能な記憶場所に、
前記第1のアドレス及び前記第2のアドレスに対応する一致したメモリ保護エントリ内のアクセス・パーミッションと、前記第1のアドレス及び前記第2のアドレスに対応する一致したセキュリティ属性エントリ内で指定されるアクセス・パーミッションとの両方が、所与のタイプのメモリ・アクセスが許可されていることを指定するかどうかを、単一のインジケータで指定する少なくとも1つの組み合わされたパーミッション指標
を記憶するように構成される、
請求項15又は16に記載の装置。 - 前記メモリ属性チェック回路が少なくとも1セットの比較器を備え、それぞれの比較器のセットは、
メモリ・アクセス・リクエストのターゲット・アドレスを所与のメモリ属性エントリの下位境界アドレスと比較するための、下位境界比較器と、
メモリ・アクセス・リクエストの前記ターゲット・アドレスを前記所与のメモリ属性エントリの上位境界アドレスと比較するための、上位境界比較器と
を備え、
前記範囲チェック命令に応じて、前記命令デコーダは、前記第1のアドレスを前記ターゲット・アドレスとしてそれぞれの比較器のセットの前記下位境界比較器に与え、前記第2のアドレスを前記ターゲット・アドレスとしてそれぞれの比較器のセットの前記上位境界比較器に与えるように前記処理回路を制御するように構成される、
請求項1から17までのいずれかに記載の装置。 - 前記範囲チェック命令のエンコードが、前記第1のアドレスが前記第2のアドレスよりも下位であるように制約する、請求項1から18までのいずれかに記載の装置。
- 前記第2のアドレスが前記第1のアドレスより下位である範囲チェック命令に応じて、前記処理回路が少なくとも
フォールトをシグナリングすること、
前記第1のアドレス及び前記第2のアドレスが同じメモリ属性エントリに対応しないことを示す前記状態値をリターンすること、
のうちの1つを実施するように構成される、請求項1から19までのいずれかに記載の装置。 - データ処理方法であって、
命令デコーダを使用して、第1のアドレス及び第2のアドレスを特定するためのアドレス特定パラメータを指定する範囲チェック命令をデコードすること
を含み、
前記範囲チェック命令をデコードすることに応じて、前記命令デコーダによってサポートされる命令の少なくとも1つのタイプにとってアクセス可能である少なくとも1つのソフトウェア・アクセス可能な記憶場所に、前記第1のアドレス及び前記第2のアドレスが複数のメモリ属性エントリのうちの同じメモリ属性エントリに対応するかどうかを示す状態値をセットするように処理回路を制御し、それぞれのメモリ属性エントリは、アドレス空間内の可変サイズの対応するアドレス領域のためのアクセス・パーミッションを指定し、
前記範囲チェック命令に応じて、少なくとも前記第1のアドレスと前記第2のアドレスの両方が同じメモリ属性エントリに対応する場合、前記少なくとも1つのソフトウェア・アクセス可能な記憶場所に、前記第1のアドレス及び前記第2のアドレスに対応する一致したメモリ属性エントリから導出された属性情報を記憶するように前記処理回路を制御し、
前記処理回路が、セキュアなドメイン及びあまりセキュアではないドメインを含む、動作の複数のセキュリティ・ドメインを有し、それぞれのセキュリティ・ドメイン内で前記処理回路が複数のモードのうちの1つで、且つ複数の特権レベルのうちの1つで動作し、ここで、前記セキュアなドメインは前記あまりセキュアでないドメインではアクセスできない少なくとも1つのメモリ・アドレス領域にアクセスできるところのドメインであり、
前記命令デコーダを使用し、前記範囲チェック命令の以下の変形、すなわち
第1の変形であって、前記処理回路が現在のセキュリティ・ドメイン内にあり、且つ前記現在のモードに関連付けられる特権レベルにある場合、前記属性情報が、前記第1のアドレスと前記第2のアドレスとの間の範囲内のアドレスへのメモリ・アクセスが許可されるかどうかを指定する、第1の変形、
第2の変形であって、前記処理回路が前記現在のドメインとは異なるセキュリティ・ドメインにあり、且つ前記異なるセキュリティ・ドメインで動作する際に前記現在のモードに関連付けられる前記特権レベルにある場合、前記属性情報が、前記第1のアドレスと前記第2のアドレスとの間の範囲内のアドレスへのメモリ・アクセスが許可されるかどうかを指定する、第2の変形、
第3の変形であって、前記属性情報が、前記第1のアドレスと前記第2のアドレスとの間の範囲内のアドレスへのメモリ・アクセスが現在のセキュリティ・ドメイン内で、且つ前記現在のモードに関連付けられる前記特権レベルとは異なる特権レベルで許可されるかどうかを指定する、第3の変形、及び
第4の変形であって、前記処理回路が現在のセキュリティ・ドメインとは異なるセキュリティ・ドメイン内に、且つ前記現在のモードに関連付けられる特権レベルとは異なる特権レベルにある場合、前記属性情報が、前記第1のアドレスと前記第2のアドレスとの間の範囲内のアドレスへのメモリ・アクセスが許可されるかどうかを指定する、第4の変形、
の変形のうちの少なくとも1つをサポートする、
データ処理方法。 - ターゲット・コードの命令の実行用の命令実行環境を提供するためのホスト・データ処理装置を制御するコンピュータ・プログラムであって、
前記ターゲット・コードの命令をデコードし、前記デコードされた命令に応じてデータ処理を実施するように前記ホスト・データ処理装置を制御するための命令デコード・プログラム・ロジックと、
前記ターゲット・コードの前記デコードされた命令によってトリガされたメモリ・アクセス・リクエストが、複数のメモリ属性エントリにおいて指定されるアクセス・パーミッションを満足するかどうかをチェックするメモリ属性チェック・プログラム・ロジックであって、それぞれのメモリ属性エントリは、前記命令実行環境によってシミュレートされるシミュレート・アドレス空間内の可変サイズの対応するアドレス領域に対するアクセス・パーミッションを指定する、メモリ属性チェック・プログラム・ロジックと
を含み、
範囲チェック命令が、第1のアドレス及び第2のアドレスを特定するためのアドレス特定パラメータを指定することに応じて、前記命令デコード・プログラム・ロジックは、前記命令デコード・プログラム・ロジックによるデコードのためにサポートされる命令の少なくとも1つのタイプにとってアクセス可能である少なくとも1つのソフトウェア・アクセス可能な記憶場所に、前記第1のアドレス及び前記第2のアドレスが同じメモリ属性エントリに対応するかどうかを示す状態値をセットするように前記ホスト・データ処理装置を制御するように構成され、
前記範囲チェック命令に応じて、少なくとも前記第1のアドレスと前記第2のアドレスの両方が同じメモリ属性エントリに対応する場合、前記命令デコード・プログラム・ロジックが、前記少なくとも1つのソフトウェア・アクセス可能な記憶場所に、前記第1のアドレス及び前記第2のアドレスに対応する一致したメモリ属性エントリから導出された属性情報を記憶するように前記ホスト・データ処理装置を制御し、
前記命令実行環境が、セキュアなドメイン及びあまりセキュアではないドメインを含む、動作の複数のセキュリティ・ドメインを有し、それぞれのセキュリティ・ドメイン内で前記命令実行環境が複数のモードのうちの1つで、且つ複数の特権レベルのうちの1つで動作するように構成され、ここで、前記セキュアなドメインは前記あまりセキュアでないドメインではアクセスできない少なくとも1つのメモリ・アドレス領域にアクセスできるところのドメインであり、
前記命令デコード・プログラム・ロジックは、前記範囲チェック命令の以下の変形、すなわち
第1の変形であって、前記命令実行環境が現在のセキュリティ・ドメイン内にあり、且つ前記現在のモードに関連付けられる特権レベルにある場合、前記属性情報が、前記第1のアドレスと前記第2のアドレスとの間の範囲内のアドレスへのメモリ・アクセスが許可されるかどうかを指定する、第1の変形、
第2の変形であって、前記命令実行環境が前記現在のドメインとは異なるセキュリティ・ドメインにあり、且つ前記異なるセキュリティ・ドメインで動作する際に前記現在のモードに関連付けられる前記特権レベルにある場合、前記属性情報が、前記第1のアドレスと前記第2のアドレスとの間の範囲内のアドレスへのメモリ・アクセスが許可されるかどうかを指定する、第2の変形、
第3の変形であって、前記属性情報が、前記第1のアドレスと前記第2のアドレスとの間の範囲内のアドレスへのメモリ・アクセスが現在のセキュリティ・ドメイン内で、且つ前記現在のモードに関連付けられる前記特権レベルとは異なる特権レベルで許可されるかどうかを指定する、第3の変形、及び
第4の変形であって、前記命令実行環境が現在のセキュリティ・ドメインとは異なるセキュリティ・ドメイン内に、且つ前記現在のモードに関連付けられる特権レベルとは異なる特権レベルにある場合、前記属性情報が、前記第1のアドレスと前記第2のアドレスとの間の範囲内のアドレスへのメモリ・アクセスが許可されるかどうかを指定する、第4の変形、
の変形のうちの少なくとも1つをサポートするように構成される、
コンピュータ・プログラム。 - 請求項22に記載のコンピュータ・プログラムを記憶するコンピュータ可読記憶媒体。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB1816957.3A GB2578135B (en) | 2018-10-18 | 2018-10-18 | Range checking instruction |
GB1816957.3 | 2018-10-18 | ||
PCT/GB2019/052336 WO2020079386A1 (en) | 2018-10-18 | 2019-08-20 | Range checking instruction |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2022503562A JP2022503562A (ja) | 2022-01-12 |
JP7449273B2 true JP7449273B2 (ja) | 2024-03-13 |
Family
ID=64453697
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2021507901A Active JP7449273B2 (ja) | 2018-10-18 | 2019-08-20 | 範囲チェック命令 |
Country Status (9)
Country | Link |
---|---|
US (1) | US11720356B2 (ja) |
EP (1) | EP3867762A1 (ja) |
JP (1) | JP7449273B2 (ja) |
KR (1) | KR20210070974A (ja) |
CN (1) | CN112602069A (ja) |
GB (1) | GB2578135B (ja) |
IL (1) | IL280711A (ja) |
TW (1) | TWI835856B (ja) |
WO (1) | WO2020079386A1 (ja) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3557471B1 (en) | 2018-04-20 | 2022-08-03 | ARM Limited | Power rail noise monitoring to detect attempted security tampering or side channel attacks |
GB2587426B (en) * | 2019-09-30 | 2022-04-06 | Advanced Risc Mach Ltd | Atomic range compare and modify operations |
GB2589895B (en) * | 2019-12-11 | 2022-03-16 | Advanced Risc Mach Ltd | Intermodal calling branch instruction |
GB2600715B (en) * | 2020-11-05 | 2023-01-18 | Advanced Risc Mach Ltd | Technique for constraining access to memory using capabilities |
CN115312110A (zh) * | 2021-05-08 | 2022-11-08 | 瑞昱半导体股份有限公司 | 芯片验证系统及其验证方法 |
US11874776B2 (en) | 2021-06-25 | 2024-01-16 | Intel Corporation | Cryptographic protection of memory attached over interconnects |
US20230032586A1 (en) * | 2021-07-27 | 2023-02-02 | Intel Corporation | Scalable access control checking for cross-address-space data movement |
US11561898B1 (en) * | 2021-10-25 | 2023-01-24 | Arm Limited | Address expansion |
US20220197638A1 (en) * | 2022-03-14 | 2022-06-23 | Intel Corporation | Generating encrypted capabilities within bounds |
US20230350582A1 (en) * | 2022-04-27 | 2023-11-02 | Micron Technology, Inc. | Data masking for memory |
GB2623986A (en) * | 2022-11-02 | 2024-05-08 | Advanced Risc Mach Ltd | Region identifier based on instruction fetch address |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5889983A (en) | 1997-01-21 | 1999-03-30 | Intel Corporation | Compare and exchange operation in a processing system |
US20090138963A1 (en) | 2007-11-28 | 2009-05-28 | Nec Electronics Corporation | Information processing apparatus and method of controlling program execution of same |
US20090172332A1 (en) | 2007-12-26 | 2009-07-02 | Nec Electronics Corporation | Information processing apparatus and method of updating stack pointer |
US20150227462A1 (en) | 2014-02-10 | 2015-08-13 | Arm Limited | Region identifying operation for identifying a region of a memory attribute unit corresponding to a target memory address |
JP2016532205A (ja) | 2013-08-23 | 2016-10-13 | エイアールエム リミテッド | データ・アクセスのアクセス属性の扱い |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB1524959A (en) * | 1974-12-21 | 1978-09-13 | Girling Ltd | Hydraulic reservoirs for vehicle braking systems |
US4087856A (en) * | 1976-06-30 | 1978-05-02 | International Business Machines Corporation | Location dependence for assuring the security of system-control operations |
US5805879A (en) * | 1996-02-23 | 1998-09-08 | Cyrix Corporation | In a pipelined processor, setting a segment access indicator during execution stage using exception handling |
US6009512A (en) * | 1997-10-27 | 1999-12-28 | Advanced Micro Devices, Inc. | Mechanism for forwarding operands based on predicated instructions |
US6516395B1 (en) * | 1997-11-20 | 2003-02-04 | Advanced Micro Devices, Inc. | System and method for controlling access to a privilege-partitioned address space with a fixed set of attributes |
US6343375B1 (en) * | 1998-04-24 | 2002-01-29 | International Business Machines Corporation | Method for optimizing array bounds checks in programs |
TW536684B (en) * | 2001-06-20 | 2003-06-11 | Sunplus Technology Co Ltd | Micro-controller architecture capable of increasing the code density by changeable instruction format |
US7287140B1 (en) * | 2003-07-28 | 2007-10-23 | Massachusetts Institute Of Technology | System and technique for fine-grained computer memory protection |
US7932912B1 (en) * | 2006-10-04 | 2011-04-26 | Nvidia Corporation | Frame buffer tag addressing for partitioned graphics memory supporting non-power of two number of memory elements |
US20130111181A1 (en) * | 2011-10-31 | 2013-05-02 | Lsi Corporation | Methods and apparatus for increasing device access performance in data processing systems |
GB2499287A (en) * | 2012-02-08 | 2013-08-14 | Advanced Risc Mach Ltd | Exception handling in data processing with different security domains |
US9229465B2 (en) * | 2014-03-26 | 2016-01-05 | Freescale Semiconductor, Inc. | Current-starved inverter circuit |
GB2541714B (en) * | 2015-08-27 | 2018-02-14 | Advanced Risc Mach Ltd | An apparatus and method for controlling instruction execution behaviour |
GB2543302B (en) * | 2015-10-14 | 2018-03-21 | Advanced Risc Mach Ltd | Vector load instruction |
GB2544996B (en) * | 2015-12-02 | 2017-12-06 | Advanced Risc Mach Ltd | An apparatus and method for managing bounded pointers |
-
2018
- 2018-10-18 GB GB1816957.3A patent/GB2578135B/en active Active
-
2019
- 2019-08-20 EP EP19759687.7A patent/EP3867762A1/en active Pending
- 2019-08-20 KR KR1020217004642A patent/KR20210070974A/ko active Search and Examination
- 2019-08-20 WO PCT/GB2019/052336 patent/WO2020079386A1/en unknown
- 2019-08-20 JP JP2021507901A patent/JP7449273B2/ja active Active
- 2019-08-20 US US17/271,373 patent/US11720356B2/en active Active
- 2019-08-20 CN CN201980055295.3A patent/CN112602069A/zh active Pending
- 2019-09-12 TW TW108132919A patent/TWI835856B/zh active
-
2021
- 2021-02-08 IL IL280711A patent/IL280711A/en unknown
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5889983A (en) | 1997-01-21 | 1999-03-30 | Intel Corporation | Compare and exchange operation in a processing system |
US20090138963A1 (en) | 2007-11-28 | 2009-05-28 | Nec Electronics Corporation | Information processing apparatus and method of controlling program execution of same |
JP2009129394A (ja) | 2007-11-28 | 2009-06-11 | Nec Electronics Corp | 情報処理装置及びそのプログラム実行制御方法 |
US20090172332A1 (en) | 2007-12-26 | 2009-07-02 | Nec Electronics Corporation | Information processing apparatus and method of updating stack pointer |
JP2009157542A (ja) | 2007-12-26 | 2009-07-16 | Nec Electronics Corp | 情報処理装置及びそのスタックポインタ更新方法 |
JP2016532205A (ja) | 2013-08-23 | 2016-10-13 | エイアールエム リミテッド | データ・アクセスのアクセス属性の扱い |
US20150227462A1 (en) | 2014-02-10 | 2015-08-13 | Arm Limited | Region identifying operation for identifying a region of a memory attribute unit corresponding to a target memory address |
JP2017505492A (ja) | 2014-02-10 | 2017-02-16 | エイアールエム リミテッド | 目標メモリ・アドレスに対応するメモリ属性ユニットの領域を特定するための領域特定演算 |
Also Published As
Publication number | Publication date |
---|---|
JP2022503562A (ja) | 2022-01-12 |
IL280711A (en) | 2021-03-25 |
GB201816957D0 (en) | 2018-12-05 |
GB2578135B (en) | 2020-10-21 |
US20210326134A1 (en) | 2021-10-21 |
WO2020079386A1 (en) | 2020-04-23 |
CN112602069A (zh) | 2021-04-02 |
TW202030615A (zh) | 2020-08-16 |
EP3867762A1 (en) | 2021-08-25 |
TWI835856B (zh) | 2024-03-21 |
KR20210070974A (ko) | 2021-06-15 |
GB2578135A (en) | 2020-04-22 |
US11720356B2 (en) | 2023-08-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7449273B2 (ja) | 範囲チェック命令 | |
CN110574009B (zh) | 用于管理对能力的使用的设备和方法 | |
JP7359837B2 (ja) | メモリ・システム内に記憶されているメモリ保護テーブルを使用するメモリ保護ユニット | |
EP3881189B1 (en) | An apparatus and method for controlling memory accesses | |
IL271142B2 (en) | A device and method for controlling the execution of instructions | |
CN111556996A (zh) | 控制存储器访问中的守卫标签检查 | |
JP7397057B2 (ja) | メモリ・システム内に記憶されている制御テーブルのための二分探索手順 | |
JP2023526811A (ja) | タグチェック装置及び方法 | |
JP7349437B2 (ja) | メモリ・アクセスにおける保護タグ・チェックの制御 | |
JP2023547065A (ja) | ケイパビリティを使用してメモリへのアクセスを制約するための技法 | |
US20240193101A1 (en) | Technique for constraining access to memory using capabilities | |
JP2024517627A (ja) | ケイパビリティを使用してメモリへのアクセスを制約するための技法 | |
TW202403562A (zh) | 用於記憶體位址空間之頁面的「讀值只有x」性質 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20220812 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20230726 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20230808 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20231108 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20240206 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20240301 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7449273 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |