JP2021089736A - 命令プリフェッチ方法、装置、機器及び媒体 - Google Patents
命令プリフェッチ方法、装置、機器及び媒体 Download PDFInfo
- Publication number
- JP2021089736A JP2021089736A JP2020201010A JP2020201010A JP2021089736A JP 2021089736 A JP2021089736 A JP 2021089736A JP 2020201010 A JP2020201010 A JP 2020201010A JP 2020201010 A JP2020201010 A JP 2020201010A JP 2021089736 A JP2021089736 A JP 2021089736A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- buffer
- instructions
- target
- branch
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 64
- 239000000872 buffer Substances 0.000 claims abstract description 268
- 230000015654 memory Effects 0.000 claims description 20
- 238000004590 computer program Methods 0.000 claims description 7
- 238000012545 processing Methods 0.000 description 8
- 238000004519 manufacturing process Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 6
- 230000008569 process Effects 0.000 description 5
- 230000009286 beneficial effect Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 241000699666 Mus <mouse, genus> Species 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 241000699670 Mus sp. Species 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000001151 other effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000000007 visual effect 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/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3802—Instruction prefetching
- G06F9/3804—Instruction prefetching for branches, e.g. hedging, branch folding
-
- 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/3802—Instruction prefetching
- G06F9/3814—Implementation provisions of instruction buffers, e.g. prefetch buffer; banks
-
- 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/3802—Instruction prefetching
- G06F9/3804—Instruction prefetching for branches, e.g. hedging, branch folding
- G06F9/3806—Instruction prefetching for branches, e.g. hedging, branch folding using address prediction, e.g. return stack, branch history buffer
-
- 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/3004—Arrangements for executing specific machine instructions to perform operations on memory
- G06F9/30047—Prefetch instructions; cache control instructions
-
- 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/32—Address formation of the next instruction, e.g. by incrementing the instruction counter
-
- 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/383—Operand prefetching
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3861—Recovery, e.g. branch miss-prediction, exception handling
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
Description
プリコンパイルした結果に基づいて、前記ターゲットバッファにジャンプ命令が存在し、且つジャンプ命令の分岐命令が前記ターゲットバッファにキャッシュされていないと決定された場合、キャッシュされていない分岐命令を命令キャッシュから前記プロセッサコアに対応する候補バッファにプリフェッチして、前記プロセッサコアが前記候補バッファから前記分岐命令を取得するのを待つステップと、を含み、前記ターゲットバッファ及び前記候補バッファが、命令のプリフェッチ中に交互に多重化される。
第5の態様において、本発明の実施例は、コンピュータプログラムをさらに開示し、前記コンピュータプログラムは、コンピュータに本発明の実施例のいずれかに記載の命令プリフェッチ方法を実行させる。
S101において、プロセッサコアが対応するターゲットバッファから必要な命令を取得する前に、ターゲットバッファ内の命令をプリコンパイルする。
S201において、プロセッサコアが対応するターゲットバッファから必要な命令を取得する前に、分岐ジャンプ予測アルゴリズムを使用して、ターゲットバッファ内の命令をプリコンパイルする。
命令プリコンパイルモジュール301は、プロセッサコアが対応するターゲットバッファから必要な命令を取得する前に、ターゲットバッファ内の命令をプリコンパイルするものであり、命令プリフェッチモジュール302は、プリコンパイルした結果に基づいて、ターゲットバッファにジャンプ命令が存在し、且つジャンプ命令の分岐命令がターゲットバッファにキャッシュされていないと決定された場合、キャッシュされていない分岐命令を命令キャッシュからプロセッサコアに対応する候補バッファにプリフェッチして、プロセッサコアが候補バッファから分岐命令を取得するの待つものであり、その中で、ターゲットバッファ及び候補バッファは、命令のプリフェッチ中に交互に多重化される。
また、本発明の実施例は、コンピュータプログラムをさらに提供し、前記コンピュータプログラムは、コンピュータに本発明の実施例のいずれかに記載の命令プリフェッチ方法を実行させる。
Claims (11)
- プロセッサコアが対応するターゲットバッファから必要な命令を取得する前に、前記ターゲットバッファ内の命令をプリコンパイルするステップと、
プリコンパイルした結果に基づいて、前記ターゲットバッファにジャンプ命令が存在し、且つジャンプ命令の分岐命令が前記ターゲットバッファにキャッシュされていないと決定された場合、キャッシュされていない分岐命令を命令キャッシュから前記プロセッサコアに対応する候補バッファにプリフェッチして、前記プロセッサコアが前記候補バッファから前記分岐命令を取得するのを待つステップと、
を含み、
前記ターゲットバッファ及び前記候補バッファが、命令のプリフェッチ中に交互に多重化される命令プリフェッチ方法。 - 前記キャッシュされていない分岐命令を命令キャッシュから前記プロセッサコアに対応する候補バッファにプリフェッチするステップが、前記キャッシュされていない分岐命令内の最小の命令アドレスを最初のアドレスとして、前記命令キャッシュから予め設定された数の命令をプリフェッチし、前記プロセッサコアに対応する候補バッファにキャッシュするステップを含み、
前記キャッシュされていない分岐命令が、前記予め設定された数の命令に含まれる請求項1に記載の命令プリフェッチ方法。 - 前記キャッシュされていない分岐命令を命令キャッシュから前記プロセッサコアに対応する候補バッファにプリフェッチするステップが、
前記キャッシュされていない分岐命令が前記プロセッサコアに対応する候補バッファにキャッシュされているか否かを決定するステップと、
いいえの場合に、前記キャッシュされていない分岐命令を前記命令キャッシュから前記候補バッファにプリフェッチするステップと、
を含む請求項1に記載の命令プリフェッチ方法。 - 前記プロセッサコアが前記候補バッファから前記分岐命令を取得する時に、現在の命令フェッチバッファ対象が前記ターゲットバッファから前記候補バッファに切り替え、対応的に、
前記プロセッサコアが前記候補バッファから前記分岐命令を取得する前に、前記候補バッファ内の命令をプリコンパイルして、前記候補バッファ内にキャッシュされていない分岐命令を決定するステップを含む請求項1に記載の命令プリフェッチ方法。 - 前記ターゲットバッファ内の命令をプリコンパイルするステップが、分岐ジャンプ予測アルゴリズムを使用して、前記ターゲットバッファ内の命令をプリコンパイルするステップを含む請求項1に記載の命令プリフェッチ方法。
- 前記ターゲットバッファ内の命令をプリコンパイルするステップの後に、
予測失敗情報を受信した場合、前記プロセッサコアによるターゲットジャンプ命令の実行中に、前記ターゲットバッファのレジスタ及び前記候補バッファのレジスタにおいて命令アドレスマッチングを順次に実行し、前記ターゲットジャンプ命令の分岐命令が配置されているバッファを決定するステップを含む請求項5に記載の命令プリフェッチ方法。 - 前記命令アドレスマッチングに基づいて、前記ターゲットジャンプ命令の分岐命令がいずれも前記ターゲットバッファ及び前記候補バッファに存在しないと決定された場合、前記ターゲットジャンプ命令の分岐命令のアドレスを最初のアドレスとして、前記命令キャッシュから予め設定された数の命令をプリフェッチし、前記候補バッファにキャッシュするステップを含む請求項6に記載の命令プリフェッチ方法。
- プロセッサコアが対応するターゲットバッファから必要な命令を取得する前に、前記ターゲットバッファ内の命令をプリコンパイルする命令プリコンパイルモジュールと、
プリコンパイルした結果に基づいて、前記ターゲットバッファにジャンプ命令が存在し、且つジャンプ命令の分岐命令が前記ターゲットバッファにキャッシュされていないと決定された場合、キャッシュされていない分岐命令を命令キャッシュから前記プロセッサコアに対応する候補バッファにプリフェッチして、前記プロセッサコアが前記候補バッファから前記分岐命令を取得するのを待つ命令プリフェッチモジュールと、
を備え、
前記ターゲットバッファ及び前記候補バッファが、命令のプリフェッチ中に交互に多重化される命令プリフェッチ装置。 - 少なくとも一つのプロセッサと、
該少なくとも一つのプロセッサと通信可能に接続されるメモリと、
を備え、
前記メモリには、前記少なくとも一つのプロセッサによって実行可能な命令が記憶され、
前記命令が前記少なくとも一つのプロセッサによって実行されることによって、前記少なくとも一つのプロセッサが請求項1から7のいずれか一項に記載の命令プリフェッチ方法を実行する電子機器。 - コンピュータ命令が記憶されている非一時的なコンピュータ読み取り可能な記憶媒体であって、
前記コンピュータ命令が、コンピュータに請求項1から7のいずれか一項に記載の命令プリフェッチ方法を実行させる非一時的なコンピュータ読み取り可能な記憶媒体。 - コンピュータに請求項1から7のいずれか一項に記載の命令プリフェッチ方法を実行させるコンピュータプログラム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911225633.1 | 2019-12-04 | ||
CN201911225633.1A CN112905237A (zh) | 2019-12-04 | 2019-12-04 | 指令预取方法、装置、设备和介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2021089736A true JP2021089736A (ja) | 2021-06-10 |
JP7177812B2 JP7177812B2 (ja) | 2022-11-24 |
Family
ID=73698568
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2020201010A Active JP7177812B2 (ja) | 2019-12-04 | 2020-12-03 | 命令プリフェッチ方法、装置、機器及び媒体 |
Country Status (5)
Country | Link |
---|---|
US (1) | US11327762B2 (ja) |
EP (1) | EP3832458A1 (ja) |
JP (1) | JP7177812B2 (ja) |
KR (1) | KR102382751B1 (ja) |
CN (1) | CN112905237A (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115827252B (zh) * | 2023-01-10 | 2023-05-05 | 南京砺算科技有限公司 | 顶点数据处理方法、图形处理器、电子设备及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05313894A (ja) * | 1992-05-11 | 1993-11-26 | Fuji Xerox Co Ltd | 情報処理装置 |
JPH0877000A (ja) * | 1994-08-04 | 1996-03-22 | Internatl Business Mach Corp <Ibm> | スーパースカラ・プロセッサの電力消費を減少させる回路及び方法 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4532589A (en) * | 1981-12-02 | 1985-07-30 | Hitachi, Ltd. | Digital data processor with two operation units |
JPH0769812B2 (ja) * | 1987-12-29 | 1995-07-31 | 富士通株式会社 | データ処理装置 |
JP2596712B2 (ja) * | 1993-07-01 | 1997-04-02 | インターナショナル・ビジネス・マシーンズ・コーポレイション | 近接した分岐命令を含む命令の実行を管理するシステム及び方法 |
US5664135A (en) * | 1994-09-28 | 1997-09-02 | Hewlett-Packard Company | Apparatus and method for reducing delays due to branches |
US6157988A (en) | 1997-08-01 | 2000-12-05 | Micron Technology, Inc. | Method and apparatus for high performance branching in pipelined microsystems |
US7134004B1 (en) * | 1999-09-29 | 2006-11-07 | Fujitsu Limited | Processing device for buffering sequential and target sequences and target address information for multiple branch instructions |
US6604191B1 (en) * | 2000-02-04 | 2003-08-05 | International Business Machines Corporation | Method and apparatus for accelerating instruction fetching for a processor |
ITMI20061473A1 (it) | 2006-07-26 | 2008-01-27 | Indena Spa | Derivati della camptotecina ad attivita antitumorale |
CN100449481C (zh) * | 2007-06-29 | 2009-01-07 | 东南大学 | 具有多通道指令预取功能的存储控制电路 |
GB201701841D0 (en) * | 2017-02-03 | 2017-03-22 | Univ Edinburgh | Branch target buffer for a data processing apparatus |
CN107943518B (zh) * | 2017-11-24 | 2021-07-16 | 中国航空工业集团公司西安航空计算技术研究所 | 一种局部跳转指令取指电路 |
-
2019
- 2019-12-04 CN CN201911225633.1A patent/CN112905237A/zh active Pending
-
2020
- 2020-08-10 KR KR1020200099856A patent/KR102382751B1/ko active IP Right Grant
- 2020-09-29 US US17/036,596 patent/US11327762B2/en active Active
- 2020-12-03 JP JP2020201010A patent/JP7177812B2/ja active Active
- 2020-12-03 EP EP20211430.2A patent/EP3832458A1/en not_active Withdrawn
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05313894A (ja) * | 1992-05-11 | 1993-11-26 | Fuji Xerox Co Ltd | 情報処理装置 |
JPH0877000A (ja) * | 1994-08-04 | 1996-03-22 | Internatl Business Mach Corp <Ibm> | スーパースカラ・プロセッサの電力消費を減少させる回路及び方法 |
Also Published As
Publication number | Publication date |
---|---|
KR102382751B1 (ko) | 2022-04-04 |
CN112905237A (zh) | 2021-06-04 |
JP7177812B2 (ja) | 2022-11-24 |
KR20210070172A (ko) | 2021-06-14 |
US20210173653A1 (en) | 2021-06-10 |
EP3832458A1 (en) | 2021-06-09 |
US11327762B2 (en) | 2022-05-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6744423B2 (ja) | プロセッサベースシステム内のロード経路履歴に基づくアドレス予測テーブルを使用したロードアドレス予測の実現 | |
CN105378683B (zh) | 用于在计算系统处的软件程序中便于动态和高效地管理转换缓冲器预取的机制 | |
US11586542B2 (en) | Reducing cache transfer overhead in a system | |
KR102483299B1 (ko) | 순환 명령의 처리 방법, 장치, 기기와 저장매체 | |
RU2483347C2 (ru) | Установка, способ и система кэширования | |
US10970214B2 (en) | Selective downstream cache processing for data access | |
JP7149365B2 (ja) | 検索方法、検索装置、電子機器及び記憶媒体 | |
JP2023529947A (ja) | 命令送信方法、命令送信装置、電子機器、記憶媒体およびコンピュータプログラム | |
JP7177812B2 (ja) | 命令プリフェッチ方法、装置、機器及び媒体 | |
US11561796B2 (en) | Linked miss-to-miss instruction prefetcher | |
US9158696B2 (en) | Hiding instruction cache miss latency by running tag lookups ahead of the instruction accesses | |
US10691604B2 (en) | Minimizing cache latencies using set predictors | |
US11194724B2 (en) | Process data caching through iterative feedback | |
US10649912B2 (en) | Method and apparatus for an efficient TLB lookup | |
JP6828528B2 (ja) | 情報処理装置、情報処理装置の制御方法および情報処理装置の制御プログラム | |
US11907724B2 (en) | In-memory trace with overlapping processing and logout | |
US11157285B2 (en) | Dynamic modification of instructions that do not modify the architectural state of a processor | |
US9552293B1 (en) | Emulating eviction data paths for invalidated instruction cache | |
US20220308930A1 (en) | Provisioning pluggable smart services for browser-based smart editing tools | |
US11151054B2 (en) | Speculative address translation requests pertaining to instruction cache misses | |
CN114281715A (zh) | 缓存合成预取方法、装置、处理器以及电子设备 | |
KR20210109014A (ko) | 명령어 밀접 결합된 메모리 및 명령어 캐시 액세스 예측 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20201203 |
|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A711 Effective date: 20211018 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20211027 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20211228 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20220328 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20220614 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20221013 |
|
C60 | Trial request (containing other claim documents, opposition documents) |
Free format text: JAPANESE INTERMEDIATE CODE: C60 Effective date: 20221013 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20221024 |
|
C21 | Notice of transfer of a case for reconsideration by examiners before appeal proceedings |
Free format text: JAPANESE INTERMEDIATE CODE: C21 Effective date: 20221025 |
|
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: 20221108 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20221111 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7177812 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |