JP7053998B2 - 演算処理装置及び演算処理装置の制御方法 - Google Patents
演算処理装置及び演算処理装置の制御方法 Download PDFInfo
- Publication number
- JP7053998B2 JP7053998B2 JP2018108951A JP2018108951A JP7053998B2 JP 7053998 B2 JP7053998 B2 JP 7053998B2 JP 2018108951 A JP2018108951 A JP 2018108951A JP 2018108951 A JP2018108951 A JP 2018108951A JP 7053998 B2 JP7053998 B2 JP 7053998B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- branch
- memory access
- memory
- control unit
- 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
- 238000012545 processing Methods 0.000 title claims description 65
- 238000000034 method Methods 0.000 title claims description 19
- 238000012790 confirmation Methods 0.000 claims description 27
- 238000006243 chemical reaction Methods 0.000 claims description 23
- 238000013519 translation Methods 0.000 claims description 18
- 230000004044 response Effects 0.000 claims description 11
- 238000010586 diagram Methods 0.000 description 13
- 102100029469 WD repeat and HMG-box DNA-binding protein 1 Human genes 0.000 description 8
- 101710097421 WD repeat and HMG-box DNA-binding protein 1 Proteins 0.000 description 8
- 238000001514 detection method Methods 0.000 description 8
- 230000010365 information processing Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 2
- 230000003313 weakening effect Effects 0.000 description 2
- BDEDPKFUFGCVCJ-UHFFFAOYSA-N 3,6-dihydroxy-8,8-dimethyl-1-oxo-3,4,7,9-tetrahydrocyclopenta[h]isochromene-5-carbaldehyde Chemical compound O=C1OC(O)CC(C(C=O)=C2O)=C1C1=C2CC(C)(C)C1 BDEDPKFUFGCVCJ-UHFFFAOYSA-N 0.000 description 1
- 239000003292 glue Substances 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 238000004148 unit process Methods 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/3005—Arrangements for executing specific machine instructions to perform operations for flow control
- G06F9/30058—Conditional branch instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
- G06F12/1045—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0893—Caches characterised by their organisation or structure
- G06F12/0897—Caches characterised by their organisation or structure with two or more cache hierarchy levels
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
-
- 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/145—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 virtual, e.g. for virtual blocks or segments before a translation mechanism
-
- 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/30145—Instruction analysis, e.g. decoding, instruction word fields
- G06F9/3016—Decoding the operand specifier, e.g. specifier format
-
- 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
- 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/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3842—Speculative instruction execution
-
- 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/1008—Correctness of operation, e.g. memory ordering
-
- 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
-
- 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/50—Control mechanisms for virtual memory, cache or TLB
- G06F2212/507—Control mechanisms for virtual memory, cache or TLB using speculative control
-
- 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/68—Details of translation look-aside buffer [TLB]
- G06F2212/684—TLB miss handling
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)
- Storage Device Security (AREA)
- Advance Control (AREA)
Description
命令を発行する命令制御部と、
メモリ内のアドレス変換テーブルの一部を記憶するアドレス変換テーブルバッファと、メモリ内の一部のデータを記憶する第1レベルのデータキャッシュメモリと、前記命令制御部が発行したメモリアクセス命令に応答して、前記アドレス変換テーブルバッファのヒット判定を行い、前記アドレス変換テーブルバッファのヒット判定がヒットの場合、前記第1レベルのデータキャッシュメモリに対するキャッシュ制御を行う第1レベルのキャッシュ制御部とを有する、第1レベルのキャッシュユニットと、
メモリ内の一部のデータを記憶する第2レベルのキャッシュメモリと、前記第1レベルのキャッシュ制御部が発行するデータ要求に応答して、前記データ要求を制御する第2レベルのキャッシュ制御部とを有する、前記第2レベルのキャッシュユニットとを有し、
前記命令制御部は、前記メモリアクセス命令が分岐命令の分岐先未確定中に投機的に実行される投機実行のメモリアクセス命令の場合、有効な投機フラグと前記分岐命令の命令識別子を、前記メモリアクセス命令に付加して前記第1レベルのキャッシュユニットに発行し、
前記第1レベルのキャッシュ制御部は、
(1)前記アドレス変換テーブルバッファのヒット判定で、発行された前記メモリアクセス命令の仮想アドレスが前記アドレス変換テーブルバッファのいずれかのエントリの仮想アドレスと一致する第1のケースの場合、
(1-1)発行された前記メモリアクセス命令の前記投機フラグが有効で且つ前記メモリアクセス命令の仮想アドレスと一致する仮想アドレスを有するエントリが投機アクセスを禁止する投機アクセス禁止フラグを記憶する第2のケースの場合なら、前記発行された前記メモリアクセス命令の実行を中断し、
(1-2)前記第2のケースに該当しない場合なら、前記アドレス変換テーブルバッファから読み出した物理アドレスで前記第1レベルのデータキャッシュメモリに対するキャッシュ制御を実行する、演算処理装置である。
図1は、プロセッサの脆弱性を説明する図である。プロセッサのセキュリティの脆弱性は、例えば、以下の不正な命令列が実行された場合に生じる場合がある。
JMP C //分岐先Cに分岐する分岐命令//
B LOAD1 R0 [秘密値格納のアドレス] //秘密値が格納されたアドレスで投機的にロードし
レジスタR0に秘密値を格納//
A LOAD2 *[100+R0] //レジスタR0内のアドレス(秘密値)で投機的にロードする//
上記の命令列には、分岐命令JMP Cの後ろに不正なロード命令“LOAD1”“LOAD2”が追加されている。不正なプログラムは、最初にキャッシュメモリの内容をクリアしておき、特権モード(OSモード)に遷移する(S91)。そして、プロセッサが、特権モードで、分岐命令JMP Cを実行する。分岐命令の分岐先Cが確定する前に、分岐予測先Bのロード命令LOAD1を投機的に実行する(S92)。この分岐予測先Bは分岐予測情報として不正に登録されていて、分岐命令の正しい分岐先はCであるとする。
図2は、分岐命令と後続の投機実行のメモリアクセス命令の動作例を示す図である。図2の横軸は時間を、縦軸はプログラムの順番を示す。図2では、分岐命令BRと、それに後続するロード命令LOAD_A及びロード命令LOAD_Bとが順番に発行される。
図4は、本実施の形態における演算処理装置の概略的な構成を示す図である。図4に示した演算処理装置は、命令制御部I_CNTを構成する命令デコーダI_DECと、命令デコーダが発行するメモリアクセス命令をキューインするRSAと、命令デコーダが発行する分岐命令をキューインするRSBR(Reservation Station for Branch)を有する。
図7は、本実施の形態のプロセッサを搭載する情報処理装置の概略図である。情報処理装置、HPC:High Performance Computerやスーパーコンピュータは、複数のノードそれぞれに、プロセッサCPU(Central Processing Unit)と、メインメモリM_MEMと、入出力部I/Oとを有する。各ノードのプロセッサCPUは、プロセッサ内に設けたインターコネクトを介して相互にパケット通信する。
図9は、本実施の形態における命令デコーダの構成例を示す図である。命令デコーダI_DECは、命令バッファI_BUF内の命令をインオーダーで入力し、命令をデコードし、分岐命令をRSBRに発行し、メモリアクセス命令をRSAに発行する。
図10は、RSAの構成例を示す図である。RSAは、発行キューRSA_QUEを有し、発行キューにエントリENTRY_0~ENTRY_nを作成して、命令デコーダから発行されたメモリアクセス命令MA_Iをエントリに登録してキューインする。各エントリに登録(記憶)される情報は、エントリのバリッドビットVと、メモリアクセス命令MA_Iの情報(ロードかストアの種別、アクセス先アドレスに関する情報等)と、投機フラグSP_ACCと、分岐命令のBR_IIDである。
図11は、L1データキャッシュユニットの構成を示す図である。L1データキャッシュユニット(以下簡略してL1データキャッシュと称する)L1D$は、オペランドアドレス生成器OP_ADD_GENと共にストレージユニットSUを構成する。RSAから発行されたメモリアクセス命令は、オペランドアドレス生成器によりオペランドアドレスを生成され、L1データキャッシュ内のメモリアクセスキューMA_QUEにエントリを作成する。このエントリには、メモリアクセス命令の情報と、投機フラグSP_ACCと、分岐命令のBR_IIDと、後述するL1データキャッシュで特定アドレス向け投機アクセス禁止によるTLBミスしたことを示すL1TLBミスフラグL1TLB_MISSとが登録(記憶)される。
図15は、L1データキャッシュ内のL1TLB及びL1TLBヒット判定回路の一例を示す図である。図15には、RSAやRSBRなどの命令制御部I_CNTと、L1データキャッシュ制御部L1D$_CNT内のメモリアクセスキューMA_QUEと、L1TLB35の構成例と、L1TLBヒット判定回路31の論理構成の例が示される。
(1)仮想アドレス一致回路MUCHが、L1TLBのいずれか1つのエントリに対してのみ仮想アドレスマッチ信号VAM_#を「1」にした場合(オア回路ORの出力VAMが「1」)、
(1-1)その一致(マッチ)したエントリに対する投機アクセス禁止検出回路AND1の出力INH_#が真「1」であれば、特定アドレスの投機アクセス禁止によるTLBミスと判定する。この場合、アンド回路AND2の出力の全てのTLBヒット信号TLB_HIT_#は「0」となり、セレクタSLCTはいずれの物理アドレスPAも選択しない。つまり、TLB変換は行われない。後述する図17のS61のYES、S62のYESの場合に該当する。
(1-2)その一致(マッチ)したエントリに対する投機アクセス禁止検出回路AND1の出力INH_#が偽「0」であれば、TLBヒットと判定する。この場合、アンド回路AND2の出力のTLBヒット信号TLB_HIT_#(#=0-3)は一つだけ「1」となり、セレクタSLCTは一つの物理アドレスPAを選択する。後述する図17のS61のYES、S62のNOの場合に該当する。
(2)仮想アドレス一致回路MUCHが、L1TLBの全エントリに対して仮想アドレスマッチ信号VAM_#を「0」にした場合(オア回路ORの出力VAMが「0」)、投機アクセス禁止検出回路AND1の結果をチェックする必要性がないので、通常のTLBミスと判定する。この場合、アンド回路AND2の出力の全てのTLBヒット信号TLB_HIT_#は「0」となり、セレクタSLCTはいずれの物理アドレスも選択しない。後述する図17のS61のNOに該当する。
図16、図17、図18は、L1キャッシュのメモリアクセス命令の実行処理の第1の例を示すフローチャート図である。図16は、L1キャッシュのメモリアクセスキューでのエントリの投入制御を示し、図17は、L1データキャッシュ制御部でのL1TLBキャッシュヒット判定とTLBミスした場合の処理を示し、図18は、L1データキャッシュ制御部でのL1データキャッシュヒット判定とL1データキャッシュメモリに対する処理を示す。
(1-2)投機アクセス禁止信号INH_#=0であれば、投機アクセスが禁止されているアドレスのエントリではないと判定され、TLBヒットと判定される(S62のNO)。この場合、L1データキャッシュ制御部は、TLBによるアドレス変換を行い変換後の物理アドレスPAを取得し(S63)、L1データキャッシュメモリに対する制御に推移する(S70)。
RSA:主記憶オペランドアドレス生成用リザベーションステーション
RSBR:分岐命令用リザベーションステーション
L1D$:L1データキャッシュユニット
L1D$_CNT:L1データキャッシュ制御部
30:L1データキャッシュヒット判定回路
31:L1TLBヒット判定回路
32:L1データキャッシュ実行制御部
33:L1TLB実行制御部
34:L1データキャッシュメモリ
35:L1TLB
L2$:L2キャッシュユニット
36:L2キャッシュメモリ
L2$_CNT:L2キャッシュ制御部
MA_I:メモリアクセス命令
BR_IID:分岐命令の命令識別子
SP_ACC:投機フラグ
V:バリッドビット
RSA_QUE:RSAの発行キュー
MA_QUE:L1キャッシュユニットのメモリアクセスキュー
ENTRY:エントリ
INH_SP_ACC:投機アクセス禁止フラグ
MTCH:仮想アドレス一致回路
VAM_0:仮想アドレスマッチ信号
VAM:全エントリ仮想アドレスマッチ信号
AND1:投機アクセス禁止検出回路
INH_0:投機アクセス禁止信号
TLB_HIT_#:TLBヒット信号
VA:仮想アドレス
PA:物理アドレス
Claims (7)
- 命令を発行する命令制御部と、
メモリ内のアドレス変換テーブルの一部を記憶するアドレス変換テーブルバッファと、メモリ内の一部のデータを記憶する第1レベルのデータキャッシュメモリと、前記命令制御部が発行したメモリアクセス命令に応答して、前記アドレス変換テーブルバッファのヒット判定を行い、前記アドレス変換テーブルバッファのヒット判定がヒットの場合、前記第1レベルのデータキャッシュメモリに対するキャッシュ制御を行う第1レベルのキャッシュ制御部とを有する、第1レベルのキャッシュユニットと、
メモリ内の一部のデータを記憶する第2レベルのキャッシュメモリと、前記第1レベルのキャッシュ制御部が発行するデータ要求に応答して、前記データ要求を制御する第2レベルのキャッシュ制御部とを有する、前記第2レベルのキャッシュユニットとを有し、
前記命令制御部は、前記メモリアクセス命令が分岐命令の分岐先未確定中に投機的に実行される投機実行のメモリアクセス命令の場合、有効な投機フラグと前記分岐命令の命令識別子を、前記メモリアクセス命令に付加して前記第1レベルのキャッシュユニットに発行し、
前記第1レベルのキャッシュ制御部は、
(1)前記アドレス変換テーブルバッファのヒット判定で、発行された前記メモリアクセス命令のアクセス先の仮想アドレスが前記アドレス変換テーブルバッファのいずれかのエントリの仮想アドレスと一致する第1のケースの場合、
(1-1)発行された前記メモリアクセス命令の前記投機フラグが有効で且つ前記アドレス変換テーブルバッファのエントリのうち前記メモリアクセス命令のアクセス先の仮想アドレスと一致する仮想アドレスを有するエントリが投機アクセスを禁止することを示す投機アクセス禁止フラグを記憶する第2のケースの場合なら、前記発行された前記メモリアクセス命令の実行を中断し、
(1-2)前記第2のケースに該当しない場合なら、前記アドレス変換テーブルバッファから読み出した物理アドレスで前記第1レベルのデータキャッシュメモリに対するキャッシュ制御を実行する、演算処理装置。 - 前記第1レベルのキャッシュ制御部は、
(2)前記アドレス変換テーブルバッファのヒット判定で、発行された前記メモリアクセス命令のアクセス先の仮想アドレスが前記アドレス変換テーブルバッファの全てのエントリの仮想アドレスと不一致の第3のケースの場合、前記第2レベルのキャッシュユニットにアドレス変換テーブルのデータを要求するデータ要求を発行し、前記データ要求により取得した前記アドレス変換テーブルのデータで前記アドレス変換テーブルバッファを更新する、請求項1に記載の演算処理装置。 - 前記命令制御部は、前記メモリアクセス命令が分岐命令の分岐先確定後に実行される非投機実行のメモリアクセス命令の場合、無効な前記投機フラグを前記メモリアクセス命令に付加して発行し、
前記第1レベルのキャッシュ制御部は、前記第1のケースの場合、前記第2のケースに該当しないと判定し、前記アドレス変換テーブルバッファから読み出した物理アドレスで前記第1レベルのデータキャッシュメモリに対するキャッシュ制御を実行する、請求項1に記載の演算処理装置。 - 前記第1レベルのキャッシュ制御部は、前記命令制御部から発行されたメモリアクセス命令を記憶するメモリアクセスキューを有し、
前記命令制御部は、前記分岐命令の分岐先が確定した場合、分岐予測が成功か否かの情報と前記分岐命令の識別子とを付加した分岐確定通知を前記第1レベルのキャッシュ制御部に送信し、
前記第1レベルのキャッシュ制御部は、
前記分岐確定通知に応答して、
前記分岐予測が成功の場合、前記分岐確定通知に付加された前記分岐命令の識別子と一致する分岐命令の識別子を有する前記メモリアクセスキューに記憶されたメモリアクセス命令の前記投機フラグを無効化し、
前記分岐予測が失敗の場合、前記分岐確定通知に付加された前記分岐命令の識別子と一致するまたは後続する分岐命令の識別子と一致する前記分岐命令の識別子を有する前記メモリアクセスキューに記憶されたメモリアクセス命令を無効化する、請求項1に記載の演算処理装置。 - 前記第1レベルのキャッシュ制御部は、
前記メモリアクセスキューから発行された前記メモリアクセス命令に対する、前記第1レベルのキャッシュメモリへのアクセス制御を実行し、
前記メモリアクセスキューから発行された前記メモリアクセス命令が、前記第1のケースの場合で、更に前記第2のケースの場合、前記投機フラグが有効であれば、前記分岐確定通知に応答して前記投機フラグが無効化されるまで、前記メモリアクセスキューから発行しない、請求項4に記載の演算処理装置。 - 前記命令制御部は、命令をデコードする命令デコーダと、前記命令デコーダから発行された命令を前記第1レベルのキャッシュ制御部に発行するリザベーションステーションとを有し、
前記命令デコーダが、前記投機フラグと前記分岐命令の命令識別子を付加して前記メモリアクセス命令を前記リザベーションステーションに発行し、
前記リザベーションステーションは、前記命令デコーダから発行された前記メモリアクセス命令を記憶するリザベーションステーションキューを有し、
前記リザベーションステーションは、
前記分岐確定通知に応答して、
前記分岐予測が成功の場合、前記分岐確定通知に付加された前記分岐命令の識別子と一致する分岐命令の識別子を有する前記リザベーションステーションキューに記憶されたメモリアクセス命令の前記投機フラグを無効化し、
前記分岐予測が失敗の場合、前記分岐確定通知に付加された前記分岐命令の識別子と一致するまたは後続する分岐命令の識別子と一致する前記分岐命令の識別子を有する前記リザベーションステーションキューに記憶されたメモリアクセス命令を無効化する、請求項4に記載の演算処理装置。 - 命令を発行する命令制御部と、
メモリ内のアドレス変換テーブルの一部を記憶するアドレス変換テーブルバッファと、メモリ内の一部のデータを記憶する第1レベルのデータキャッシュメモリと、前記命令制御部が発行したメモリアクセス命令に応答して、前記アドレス変換テーブルバッファのヒット判定を行い、前記アドレス変換テーブルバッファのヒット判定がヒットの場合、前記第1レベルのデータキャッシュメモリに対するキャッシュ制御を行う第1レベルのキャッシュ制御部とを有する、第1レベルのキャッシュユニットと、
メモリ内の一部のデータを記憶する第2レベルのキャッシュメモリと、前記第1レベルのキャッシュ制御部が発行するデータ要求に応答して、前記データ要求を制御する第2レベルのキャッシュ制御部とを有する、前記第2レベルのキャッシュユニットとを有する演算制御装置の制御方法であって、
前記命令制御部は、前記メモリアクセス命令が分岐命令の分岐先未確定中に投機的に実行される投機実行のメモリアクセス命令の場合、有効な投機フラグと前記分岐命令の命令識別子を、前記メモリアクセス命令に付加して前記第1レベルのキャッシュユニットに発行し、
前記第1レベルのキャッシュ制御部は、
(1)前記アドレス変換テーブルバッファのヒット判定で、発行された前記メモリアクセス命令のアクセス先の仮想アドレスが前記アドレス変換テーブルバッファのいずれかのエントリの仮想アドレスと一致する第1のケースの場合、
(1-1)発行された前記メモリアクセス命令の前記投機フラグが有効で且つ前記アドレス変換テーブルバッファのエントリのうち前記メモリアクセス命令のアクセス先の仮想アドレスと一致する仮想アドレスを有するエントリが投機アクセスを禁止することを示す投機アクセス禁止フラグを記憶する第2のケースの場合なら、前記発行された前記メモリアクセス命令の実行を中断し、
(1-2)前記第2のケースに該当しない場合なら、前記アドレス変換テーブルバッファから読み出した物理アドレスで前記第1レベルのデータキャッシュメモリに対するキャッシュ制御を実行する、演算処理装置の制御方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018108951A JP7053998B2 (ja) | 2018-06-06 | 2018-06-06 | 演算処理装置及び演算処理装置の制御方法 |
US16/423,688 US10853072B2 (en) | 2018-06-06 | 2019-05-28 | Arithmetic processing apparatus and method of controlling arithmetic processing apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018108951A JP7053998B2 (ja) | 2018-06-06 | 2018-06-06 | 演算処理装置及び演算処理装置の制御方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2019212128A JP2019212128A (ja) | 2019-12-12 |
JP7053998B2 true JP7053998B2 (ja) | 2022-04-13 |
Family
ID=68765002
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018108951A Active JP7053998B2 (ja) | 2018-06-06 | 2018-06-06 | 演算処理装置及び演算処理装置の制御方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US10853072B2 (ja) |
JP (1) | JP7053998B2 (ja) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2574270B (en) * | 2018-06-01 | 2020-09-09 | Advanced Risc Mach Ltd | Speculation-restricted memory region type |
JP7041353B2 (ja) * | 2018-06-06 | 2022-03-24 | 富士通株式会社 | 演算処理装置及び演算処理装置の制御方法 |
JP7053998B2 (ja) | 2018-06-06 | 2022-04-13 | 富士通株式会社 | 演算処理装置及び演算処理装置の制御方法 |
US11086630B1 (en) * | 2020-02-27 | 2021-08-10 | International Business Machines Corporation | Finish exception handling of an instruction completion table |
WO2022171299A1 (en) * | 2021-02-12 | 2022-08-18 | Huawei Technologies Co., Ltd. | Low overhead active mitigation of security vulnerabilities by memory tagging |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002207595A (ja) | 2001-01-10 | 2002-07-26 | Nec Corp | リオーダバッファの管理方法及びプロセッサ |
JP2006243833A (ja) | 2005-02-28 | 2006-09-14 | Ntt Docomo Inc | プログラム実行装置及びプログラム実行方法 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07114469A (ja) | 1993-10-18 | 1995-05-02 | Mitsubishi Electric Corp | データ処理装置 |
JP2001265651A (ja) | 2000-03-23 | 2001-09-28 | Matsushita Electric Ind Co Ltd | データ処理装置 |
JP4364166B2 (ja) | 2005-06-30 | 2009-11-11 | 株式会社東芝 | キャッシュ装置 |
JP2007052481A (ja) | 2005-08-15 | 2007-03-01 | Matsushita Electric Ind Co Ltd | Icカード用lsi |
US9081501B2 (en) * | 2010-01-08 | 2015-07-14 | International Business Machines Corporation | Multi-petascale highly efficient parallel supercomputer |
JP5344316B2 (ja) | 2010-12-15 | 2013-11-20 | 日本電気株式会社 | ベクトル演算処理装置 |
US20140208075A1 (en) * | 2011-12-20 | 2014-07-24 | James Earl McCormick, JR. | Systems and method for unblocking a pipeline with spontaneous load deferral and conversion to prefetch |
US9330017B2 (en) * | 2012-11-02 | 2016-05-03 | International Business Machines Corporation | Suppressing virtual address translation utilizing bits and instruction tagging |
JP6088951B2 (ja) * | 2013-09-20 | 2017-03-01 | 株式会社東芝 | キャッシュメモリシステムおよびプロセッサシステム |
JP6578814B2 (ja) | 2015-08-20 | 2019-09-25 | 株式会社ソシオネクスト | プロセッサ及びプロセッサシステム |
JP7053998B2 (ja) | 2018-06-06 | 2022-04-13 | 富士通株式会社 | 演算処理装置及び演算処理装置の制御方法 |
-
2018
- 2018-06-06 JP JP2018108951A patent/JP7053998B2/ja active Active
-
2019
- 2019-05-28 US US16/423,688 patent/US10853072B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002207595A (ja) | 2001-01-10 | 2002-07-26 | Nec Corp | リオーダバッファの管理方法及びプロセッサ |
JP2006243833A (ja) | 2005-02-28 | 2006-09-14 | Ntt Docomo Inc | プログラム実行装置及びプログラム実行方法 |
Also Published As
Publication number | Publication date |
---|---|
US20190377575A1 (en) | 2019-12-12 |
JP2019212128A (ja) | 2019-12-12 |
US10853072B2 (en) | 2020-12-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7053998B2 (ja) | 演算処理装置及び演算処理装置の制御方法 | |
JP7014965B2 (ja) | 演算処理装置及び演算処理装置の制御方法 | |
US5377336A (en) | Improved method to prefetch load instruction data | |
EP0381470B1 (en) | Processing of memory access exceptions along with prefetched instructions within the instruction pipeline of a virtual memory system-based digital computer | |
US7111126B2 (en) | Apparatus and method for loading data values | |
US7162613B2 (en) | Mechanism for processing speculative LL and SC instructions in a pipelined processor | |
JP2003131872A (ja) | コンピュータシステム | |
JPH02260033A (ja) | ブランチ予測 | |
Heller et al. | Millicode in an IBM zSeries processor | |
JP7064134B2 (ja) | 演算処理装置及び演算処理装置の制御方法 | |
JP7041353B2 (ja) | 演算処理装置及び演算処理装置の制御方法 | |
JP7064135B2 (ja) | 演算処理装置及び演算処理装置の制御方法 | |
JP2017167582A (ja) | 演算処理装置、情報処理装置、及び演算処理装置の制御方法 | |
JP2019212152A (ja) | 演算処理装置及び演算処理装置の制御方法 | |
JP7100258B2 (ja) | 演算処理装置及び演算処理装置の制御方法 | |
US20240126702A1 (en) | Hardware processor core having a memory sliced by linear address | |
JP2002251283A (ja) | メモリ管理機構及びメモリ管理方法 | |
JPH05265859A (ja) | バッファ記憶エラー処理方式 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20210310 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20211209 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20211221 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20220215 |
|
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: 20220301 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20220314 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7053998 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |