JP6259518B2 - オペレーティング・システム・ルーチンのための予測履歴ストレージのフラクショナルな使用 - Google Patents
オペレーティング・システム・ルーチンのための予測履歴ストレージのフラクショナルな使用 Download PDFInfo
- Publication number
- JP6259518B2 JP6259518B2 JP2016526726A JP2016526726A JP6259518B2 JP 6259518 B2 JP6259518 B2 JP 6259518B2 JP 2016526726 A JP2016526726 A JP 2016526726A JP 2016526726 A JP2016526726 A JP 2016526726A JP 6259518 B2 JP6259518 B2 JP 6259518B2
- Authority
- JP
- Japan
- Prior art keywords
- prediction
- microprocessor
- operating system
- history
- fraction
- 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
- 238000003860 storage Methods 0.000 title claims description 73
- 238000000034 method Methods 0.000 claims description 63
- 230000004044 response Effects 0.000 claims description 12
- 238000004458 analytical method Methods 0.000 claims description 5
- 230000008569 process Effects 0.000 description 33
- 238000005457 optimization Methods 0.000 description 26
- 230000007704 transition Effects 0.000 description 20
- 238000012545 processing Methods 0.000 description 12
- 238000012546 transfer Methods 0.000 description 12
- 238000009825 accumulation Methods 0.000 description 11
- 230000006870 function Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 10
- 230000003068 static effect Effects 0.000 description 9
- 230000009471 action Effects 0.000 description 7
- 230000008901 benefit Effects 0.000 description 6
- 230000002411 adverse Effects 0.000 description 5
- 238000001514 detection method Methods 0.000 description 4
- 239000000725 suspension Substances 0.000 description 4
- 238000004519 manufacturing process Methods 0.000 description 3
- 230000005012 migration Effects 0.000 description 3
- 238000013508 migration Methods 0.000 description 3
- 230000002829 reductive effect Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 241000238876 Acari Species 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000011109 contamination Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000007717 exclusion Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000004321 preservation Methods 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 238000005096 rolling process Methods 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 238000012360 testing method 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/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/3851—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
-
- 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/3824—Operand accessing
- G06F9/3834—Maintaining memory consistency
-
- 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/3838—Dependency mechanisms, e.g. register scoreboarding
-
- 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
- G06F9/3844—Speculative instruction execution using dynamic branch prediction, e.g. using branch history tables
-
- 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/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4403—Processor initialisation
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Computer Security & Cryptography (AREA)
- Advance Control (AREA)
- Debugging And Monitoring (AREA)
Description
本出願は、2014年1月27日に出願された米国特許非仮出願第14/165,354号の一部継続出願(CIP:continuation−in−part)であり、その米国特許非仮出願第14/165,354号は、2013年6月10日に出願された米国特許仮出願第61/833,044号に基づく優先権を主張するものであり、それらの出願のそれぞれは、その全体が参照によって本明細書に組み込まれる。本出願は、2014年10月28日に出願された米国特許仮出願第62/069,602号に基づく優先権を主張するものであり、その米国特許仮出願第62/069,602号は、その全体が参照によって本明細書に組み込まれる。
予測ユニットは、マイクロプロセッサ上で実行される命令のストリームが取るであろうアクションに関する予測を行うマイクロプロセッサのハードウェア、ソフトウェア、又はハードウェア及びソフトウェアの組合せである。予測は、分岐命令が、マイクロプロセッサに指示して、分岐命令のターゲット・アドレスの予測;ストリームの命令によってアクセスされるであろうデータの予測;ストア衝突が生じるかどうかの予測;の分岐を行うかどうかの予測含むことができるが、それらには限定されない。予測ユニットは、マイクロプロセッサによって実行される命令の特徴の履歴に基づいて予測を行い、その予測は、動的な予測と呼ばれる。予測ユニットは、マイクロプロセッサがストリームの命令を実行する際に、履歴を蓄積する。履歴は、分岐命令が、マイクロプロセッサに指示して、受け入れられた分岐命令のターゲット・アドレス;ストリームの命令によってロード又は格納されたデータのアドレス;キャッシュ可能なメモリ・ロケーションを指定するストア命令に関連した情報、たとえば、ストア命令のアドレス、ストア・アドレスを計算するために使用されたソースの識別子、ストア・データが依存する命令の並べ替えバッファ・インデックス、以前にストア命令と衝突したロード命令のアドレス及び並べ替えバッファ・インデックス、衝突するロード命令とストア命令との間における並べ替えバッファ・インデックス差分、衝突するロード命令がリプレイされた回数のインジケータなど;の分岐を行うかどうかの結果を含むことができるが、それらには限定されない。予測ユニットは、履歴に基づかずに予測を行うこともでき、その予測は、静的な予測と呼ばれる。
次いで図5を参照すると、制御情報テーブル500を示すブロック図が示されている。制御情報テーブル500は、図1の最適化情報112を保持するためのストレージの一実施形態である。テーブル500は、オペレーティング・システム(OS)ルーチン識別子502及び関連付けられた制御情報504をそれぞれが保持する複数のエントリーを含む。OSルーチン識別子502は、OSルーチンが実行を開始したときに制御ユニット124がそのOSルーチンを識別することを可能にする状態値(たとえば、x86 SYSCALL命令が実行されたときのOSルーチンのIP及び汎用レジスタ値)など、最適化情報112に関して上述したようなさまざまな情報を含むことができる。制御情報504は、数ある中でもフラクション(fraction)を指定する。予測履歴132のストレージは、予測履歴を蓄積するために別々に制御可能である諸部分を含む。すなわち、制御ユニット124は、OSルーチンが実行している間に、予測履歴を蓄積するために予測履歴ストレージ132の諸部分のうちのフラクションのみを使用するように予測ユニット109を制御することができ、そのフラクションは、実行しているOSルーチンに基づいて変えることが可能である。たとえば、予測履歴ストレージ132は、ウェイ(way)ごとに配列することが可能であり(たとえば、図6を参照されたい)、又は予測履歴ストレージ132は、セットごとに配列することが可能であり(たとえば、図7を参照されたい)、又は予測履歴ストレージ132は、エントリーのキュー(queue)として配列することが可能である(たとえば、図8を参照されたい)。これらのケースのそれぞれにおいては、予測履歴ストレージ132内のウェイ/セット/エントリーは、予測履歴を蓄積するために別々に制御可能とすることができ、OSルーチンに関連付けられた制御情報504内のフラクションは、以降でさらに詳細に説明するように、関連付けられたOSルーチンが実行している間に、予測履歴を蓄積するために使用される予測履歴132のストレージのフラクションを指定する。好ましくは、制御情報504は、マイクロプロセッサ100の予測ユニット109のうちのそれぞれの予測履歴132のストレージに関するフラクションを指定する。
Claims (18)
- マイクロプロセッサであって、
当該マイクロプロセッサによって以前に実行された命令の特徴の予測履歴を保持するためのストレージを有する予測ユニットであり、該予測ユニットは、前記予測履歴を蓄積し、前記予測履歴を使用して、その後の命令実行に関連した予測を行い、
前記ストレージが、前記予測履歴を蓄積するために別々に制御可能な複数の部分を含む、予測ユニットと、
前記マイクロプロセッサがオペレーティング・システム・ルーチンを実行していることを検知し、且つ前記マイクロプロセッサが前記オペレーティング・システム・ルーチンを実行している間に、前記ストレージの前記複数の部分のうちのフラクションのみを使用して前記予測履歴を蓄積するように前記予測ユニットを制御する制御ユニットと、を含み、
オペレーティング・システム・ルーチン識別子のテーブルをさらに含み、それぞれの識別子が、それぞれのオペレーティング・システム・ルーチンを識別し、それぞれの各オペレーティング・システム・ルーチンは、前記ストレージの前記複数の部分のうちのフラクションを指定するような関連する制御情報を有し、前記制御ユニットは、前記マイクロプロセッサが関連付けられたオペレーティング・システム・ルーチンを実行している間に、前記予測履歴を蓄積するために、前記制御情報を使用するように前記予測ユニットを制御する、
マイクロプロセッサ。 - 前記予測ユニットのストレージは、複数のウェイを有する連想キャッシュ・メモリを含み、
前記フラクションによって、前記ストレージの前記複数のウェイのうちのフラクションを指定し、前記制御ユニットは、前記マイクロプロセッサが前記オペレーティング・システム・ルーチンを実行している間に、前記予測履歴を蓄積するために、指定されたフラクションを使用するように前記予測ユニットを制御する、
請求項1に記載のマイクロプロセッサ。 - 前記予測ユニットのストレージは、複数のセットを有するインデックス付けされたキャッシュ・メモリを含み、
前記フラクションによって、前記ストレージの前記複数のセットのうちのフラクションを指定し、前記制御ユニットは、前記マイクロプロセッサが前記オペレーティング・システム・ルーチンを実行している間に、前記予測履歴を蓄積するために、指定されたフラクションを使用するように前記予測ユニットを制御する、
請求項1に記載のマイクロプロセッサ。 - 前記予測ユニットのストレージは、複数のエントリーを有するキューを含み、
前記フラクションによって、前記ストレージの前記複数のエントリーのうちのフラクションを指定し、前記制御ユニットは、前記マイクロプロセッサが前記オペレーティング・システム・ルーチンを実行している間に、前記予測履歴を蓄積するために、指定されたフラクションを使用するように前記予測ユニットを制御する、
請求項1に記載のマイクロプロセッサ。 - 前記オペレーティング・システム・ルーチン識別子及び関連付けられた制御情報は、所定のオペレーティング・システムがロードされているという検知に応答して、デバイス・ドライバによって前記マイクロプロセッサに提供される、
請求項1に記載のマイクロプロセッサ。 - 前記オペレーティング・システム・ルーチン識別子及び関連付けられた制御情報は、所定のソフトウェア・アプリケーションが実行されているという検知に応答して、デバイス・ドライバによって前記マイクロプロセッサに提供される、
請求項1に記載のマイクロプロセッサ。 - 前記予測ユニットは、メモリ曖昧性解消ユニットを含む、
請求項1に記載のマイクロプロセッサ。 - 前記予測ユニットは、分岐予測ユニットを含む、
請求項1に記載のマイクロプロセッサ。 - 前記予測ユニットは、データ・プリフェッチ・ユニットを含む、
請求項1に記載のマイクロプロセッサ。 - マイクロプロセッサを動作させる方法であって、前記マイクロプロセッサは、該マイクロプロセッサによって以前に実行された命令の特徴の予測履歴を保持するためのストレージを備えた予測ユニットを有し、前記予測ユニットが、前記予測履歴を蓄積し、該予測履歴を使用して、その後の命令実行に関連した予測を行い、前記ストレージが、前記予測履歴を蓄積するために別々に制御可能な複数の部分を含み、当該方法が、
前記マイクロプロセッサがオペレーティング・システム・ルーチンを実行していることを検知するステップと、
前記マイクロプロセッサが前記オペレーティング・システム・ルーチンを実行している間に、前記ストレージの前記複数の部分のうちのフラクションのみを使用して前記予測履歴を蓄積するように前記予測ユニットを制御するステップと、を含み、
オペレーティング・システム・ルーチン識別子を受け取るステップをさらに含み、それぞれの識別子が、それぞれのオペレーティング・システム・ルーチンを識別し、それぞれの各オペレーティング・システム・ルーチンは、前記ストレージの前記複数の部分のうちのフラクションを指定する関連する制御情報を有し、制御ユニットは、前記マイクロプロセッサが関連付けられたオペレーティング・システム・ルーチンを実行している間に、前記予測履歴を蓄積するために、前記制御情報を使用するように前記予測ユニットを制御する、
方法。 - 前記予測ユニットのストレージは、複数のウェイを有する連想キャッシュ・メモリを含み、前記フラクションによって、前記ストレージの前記複数のウェイのうちのフラクションを指定し、前記予測ユニットは、前記マイクロプロセッサが前記オペレーティング・システム・ルーチンを実行している間に、前記予測履歴を蓄積するために、指定されたフラクションを使用する、
請求項10に記載の方法。 - 前記予測ユニットのストレージは、複数のセットを有するインデックス付けされたキャッシュ・メモリを含み、前記フラクションによって、前記ストレージの前記複数のセットのうちのフラクションを指定し、前記予測ユニットは、前記マイクロプロセッサが前記オペレーティング・システム・ルーチンを実行している間に、前記予測履歴を蓄積するために、指定されたフラクションを使用する、
請求項10に記載の方法。 - 前記予測ユニットのストレージは、複数のエントリーを有するキューを含み、前記フラクションによって、前記ストレージの前記複数のエントリーのうちのフラクションを指定し、前記予測ユニットは、前記マイクロプロセッサが前記オペレーティング・システム・ルーチンを実行している間に、前記予測履歴を蓄積するために、指定されたフラクションを使用する、
請求項10に記載の方法。 - 前記オペレーティング・システム・ルーチン識別子及び関連付けられた制御情報は、所定のオペレーティング・システムがロードされているという検知に応答して、デバイス・ドライバによって前記マイクロプロセッサに提供される、
請求項10に記載の方法。 - 前記オペレーティング・システム・ルーチン識別子及び関連付けられた制御情報は、所定のソフトウェア・アプリケーションが実行されているという検知に応答して、デバイス・ドライバによって前記マイクロプロセッサに提供される、
請求項10に記載の方法。 - その後の命令の実行を予測するために予測ユニットによって使用される、以前に実行された命令の予測履歴を蓄積するストレージを有する前記予測ユニットを有するマイクロプロセッサのパフォーマンスを改善するための方法であって、前記予測ユニットは、前記予測履歴を蓄積するために前記ストレージのフラクションのみを使用するように動的に制御可能であり、当該方法が、
ソフトウェア・アプリケーションによって呼び出された複数のオペレーティング・システム・ルーチンを識別するステップと、
前記複数のオペレーティング・システム・ルーチンのそれぞれによって実行された命令のそれぞれの数をカウントするステップと、
実行された命令の前記それぞれの数に基づいて、前記複数のオペレーティング・システム・ルーチンのサブセットを選択するステップと、
前記ソフトウェア・アプリケーションのパフォーマンスを最適化する前記フラクションの値を特定するために、前記複数のオペレーティング・システム・ルーチンの前記サブセットに関する前記予測ユニットのストレージの前記フラクションの値を変えることによってパフォーマンス分析を行うステップと、を含む、
方法。 - 前記複数のオペレーティング・システム・ルーチンの前記サブセットを選択する前記ステップは、前記複数のオペレーティング・システム・ルーチンのうちで、それぞれの数が、前記サブセットから除外される前記複数のオペレーティング・システム・ルーチンと比べて中程度の数の範囲内にあるオペレーティング・システム・ルーチンを前記サブセット内に含めるステップを含む、
請求項16に記載の方法。 - 前記複数のオペレーティング・システム・ルーチンのそれぞれによって実行された命令の前記それぞれの数をカウントする前記ステップは、前記複数のオペレーティング・システム・ルーチンのそれぞれによって実行された命令の平均及び合計のそれぞれの数をカウントするステップを含む、
請求項16に記載の方法。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/165,354 | 2014-01-27 | ||
US14/165,354 US9507597B2 (en) | 2013-06-10 | 2014-01-27 | Selective accumulation and use of predicting unit history |
US201462069602P | 2014-10-28 | 2014-10-28 | |
US62/069,602 | 2014-10-28 | ||
PCT/IB2014/002993 WO2015110862A1 (en) | 2014-01-27 | 2014-12-12 | Fractional use of prediction history storage for operating system routines |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2016525252A JP2016525252A (ja) | 2016-08-22 |
JP6259518B2 true JP6259518B2 (ja) | 2018-01-10 |
Family
ID=53680887
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016526726A Active JP6259518B2 (ja) | 2014-01-27 | 2014-12-12 | オペレーティング・システム・ルーチンのための予測履歴ストレージのフラクショナルな使用 |
Country Status (4)
Country | Link |
---|---|
EP (1) | EP2972797B1 (ja) |
JP (1) | JP6259518B2 (ja) |
CN (1) | CN105706049B (ja) |
WO (1) | WO2015110862A1 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108347623B (zh) * | 2017-01-23 | 2021-05-25 | 北京新唐思创教育科技有限公司 | 在线直播内容的生成方法、装置及在线直播系统 |
US11269640B2 (en) * | 2017-02-13 | 2022-03-08 | Qualcomm Incorporated | Speculative transitions among modes with different privilege levels in a block-based microarchitecture |
CN111459549B (zh) | 2020-04-07 | 2022-11-01 | 上海兆芯集成电路有限公司 | 具有高度领先分支预测器的微处理器 |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06100987B2 (ja) * | 1987-04-10 | 1994-12-12 | 日本電信電話株式会社 | アドレス変換制御方法 |
JPS6468855A (en) * | 1987-09-10 | 1989-03-14 | Nec Corp | Cache memory control system |
JPH0644247B2 (ja) * | 1987-11-04 | 1994-06-08 | 日本電気株式会社 | キャッシュ記憶制御方式 |
EP0848323B1 (en) * | 1996-12-10 | 2004-02-25 | Texas Instruments Incorporated | Improvements in the branch prediction within a pipelined microprocessor |
US6108775A (en) * | 1996-12-30 | 2000-08-22 | Texas Instruments Incorporated | Dynamically loadable pattern history tables in a multi-task microprocessor |
US6223256B1 (en) * | 1997-07-22 | 2001-04-24 | Hewlett-Packard Company | Computer cache memory with classes and dynamic selection of replacement algorithms |
JP2001043131A (ja) * | 1999-07-30 | 2001-02-16 | Matsushita Electric Ind Co Ltd | 情報処理システム及びその制御方法 |
JP2001249806A (ja) * | 2000-02-22 | 2001-09-14 | Hewlett Packard Co <Hp> | 予測情報管理方法 |
JP3988485B2 (ja) * | 2002-02-25 | 2007-10-10 | セイコーエプソン株式会社 | キャッシュ回路、情報処理装置及び電子機器 |
JP2004126854A (ja) * | 2002-10-01 | 2004-04-22 | Mitsubishi Electric Corp | 攻撃対策装置 |
US7353337B2 (en) * | 2003-02-24 | 2008-04-01 | Nxp B.V. | Reducing cache effects of certain code pieces |
US7120784B2 (en) * | 2003-04-28 | 2006-10-10 | International Business Machines Corporation | Thread-specific branch prediction by logically splitting branch history tables and predicted target address cache in a simultaneous multithreading processing environment |
US7849299B2 (en) * | 2008-05-05 | 2010-12-07 | Applied Micro Circuits Corporation | Microprocessor system for simultaneously accessing multiple branch history table entries using a single port |
US8904156B2 (en) * | 2009-10-14 | 2014-12-02 | Oracle America, Inc. | Perceptron-based branch prediction mechanism for predicting conditional branch instructions on a multithreaded processor |
US8745362B2 (en) | 2010-06-25 | 2014-06-03 | International Business Machines Corporation | Operating system aware branch predictor using a dynamically reconfigurable branch history table |
JP2013250593A (ja) * | 2012-05-30 | 2013-12-12 | Renesas Electronics Corp | 半導体装置 |
US9507597B2 (en) * | 2013-06-10 | 2016-11-29 | Via Alliance Semiconductor Co., Ltd. | Selective accumulation and use of predicting unit history |
-
2014
- 2014-12-12 CN CN201480028939.7A patent/CN105706049B/zh active Active
- 2014-12-12 JP JP2016526726A patent/JP6259518B2/ja active Active
- 2014-12-12 EP EP14880052.7A patent/EP2972797B1/en active Active
- 2014-12-12 WO PCT/IB2014/002993 patent/WO2015110862A1/en active Application Filing
Also Published As
Publication number | Publication date |
---|---|
CN105706049A (zh) | 2016-06-22 |
WO2015110862A1 (en) | 2015-07-30 |
EP2972797B1 (en) | 2018-04-04 |
EP2972797A4 (en) | 2017-03-01 |
JP2016525252A (ja) | 2016-08-22 |
CN105706049B (zh) | 2019-04-16 |
EP2972797A1 (en) | 2016-01-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2813943B1 (en) | Predicting unit in a multithreaded processor | |
US9891918B2 (en) | Fractional use of prediction history storage for operating system routines | |
US11416253B2 (en) | Multiple-table branch target buffer | |
EP3129887B1 (en) | Multiple data prefetchers that defer to one another based on prefetch effectiveness by memory access type | |
US11586944B2 (en) | Allocation filter for prediction storage structure | |
KR20160086766A (ko) | 모드에 따라 선택적으로 하나 또는 복수의 셋트를 선택하도록 동적으로 구성가능한 멀티 모드 셋트 연관 캐시 메모리 | |
US9952871B2 (en) | Controlling execution of instructions for a processing pipeline having first out-of order execution circuitry and second execution circuitry | |
US10402203B2 (en) | Determining a predicted behaviour for processing of instructions | |
JP6259518B2 (ja) | オペレーティング・システム・ルーチンのための予測履歴ストレージのフラクショナルな使用 | |
CN110402434B (zh) | 缓存未命中线程平衡 | |
EP4020167A1 (en) | Accessing a branch target buffer based on branch instruction information | |
US20220197657A1 (en) | Segmented branch target buffer based on branch instruction type | |
US20220058025A1 (en) | Throttling while managing upstream resources | |
EP4020206A1 (en) | System, apparatus and method for dynamically configuring one or more hardware resources of a processor | |
US11194575B2 (en) | Instruction address based data prediction and prefetching | |
TWI569207B (zh) | 微處理器、微處理器的運作方法、及改善微處理器效能的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20161227 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20170207 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20170428 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20170628 |
|
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: 20171128 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20171208 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6259518 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |