JPWO2010116403A1 - プリフェッチ要求回路 - Google Patents
プリフェッチ要求回路 Download PDFInfo
- Publication number
- JPWO2010116403A1 JPWO2010116403A1 JP2011508060A JP2011508060A JPWO2010116403A1 JP WO2010116403 A1 JPWO2010116403 A1 JP WO2010116403A1 JP 2011508060 A JP2011508060 A JP 2011508060A JP 2011508060 A JP2011508060 A JP 2011508060A JP WO2010116403 A1 JPWO2010116403 A1 JP WO2010116403A1
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- memory
- memory copy
- copy
- prefetch request
- 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 description 18
- 238000010586 diagram Methods 0.000 description 8
- 230000000694 effects Effects 0.000 description 6
- 101100007787 Bacillus subtilis (strain 168) cse15 gene Proteins 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 102100029091 Exportin-2 Human genes 0.000 description 2
- 101000770958 Homo sapiens Exportin-2 Proteins 0.000 description 2
Images
Classifications
-
- 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/0862—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
-
- 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/30043—LOAD or STORE instructions; Clear instruction
-
- 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/3017—Runtime instruction translation, e.g. macros
-
- 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/30181—Instruction operation extension or modification
-
- 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
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Advance Control (AREA)
Abstract
Description
デコードされた命令が、ロード命令、ストア命令、メモリコピー命令などのメモリアクセス命令である場合は、オペランドアドレス生成器が、アクセスされるべきメモリアドレスを計算し、計算されたアドレスによって1次データキャッシュにアクセスする。
各メモリコピー命令がマルチフロー展開されて得られる最初のMFメモリコピー命令以外の2番目以降のMFメモリコピー命令では、プリフェッチ要求は発行されないため上記プリフェッチ動作は実行されない。2番目以降のMFメモリコピー命令の実行時に、1次データキャッシュがミス(L1$miss)した場合には、2次キャッシュ又はメインメモリに対する通常のフェッチ動作が実行される。
第2番目(2nd)のメモリコピー命令に対応する最初のMFメモリコピー命令の実行時には、再びプリフェッチ要求が発行される。ここで、第2番目(2nd)のメモリコピー命令に対応する最初のMFメモリコピー命令において、コピー元先頭アドレスはA+272、コピー先先頭アドレスはB+272である。そして、これらのアドレスが含まれるメモリブロックは、第1番目(1st)のメモリコピー命令に対応する最後のMFメモリコピー命令が実行されたときにアクセスされたメモリブロックと同一である。従って、図4のケース2では、第2番目(2nd)のメモリコピー命令に対応する最初のMFメモリコピー命令の実行時には、1次データキャッシュはヒット(L1$HIT)しミスしない。メインメモリから2次キャッシュへのプリフェッチ動作は、1次データキャッシュに対してプリフェッチ要求が発行されており、かつ1次データキャッシュがミス(L1$miss)した場合においてのみ実行される。従って、第2番目(2nd)のメモリコピー命令に対応する最初のMFメモリコピー命令の実行時には、プリフェッチ要求が発行されているにもかかわらず、第3番目(3rd)のメモリコピー命令のためのプリフェッチ動作が実行されないことになる。
プリフェッチ要求信号出力部は、ラッチ部の出力信号と各命令フローの実行タイミングを示す信号とに基づいて、各命令フローが実行される毎にプリフェッチを要求するプリフェッチ要求信号を出力する。
図5は、本発明の一実施形態によるプロセッサ装置の全体構成図である。
図5に示されるプロセッサ装置においては、命令フェッチアドレス生成器519が1次命令キャッシュ503にアクセスすることにより、メインメモリ501から2次キャッシュ502及び1次命令キャッシュ503を介して必要な命令を読み出す。読み出された命令は、命令デコーダ504に送られる。
命令デコーダ504でデコードされた命令は、CSE(Commit Stack Entry)505に順番に登録される。同時に、命令デコーダ504でデコードされた命令は、アウトオブオーダ実行制御を行う各リザベーションステーションRSA(Reservation Station for Address)506及びRSE(Reservation Station for Execute)507に登録される。更に、命令デコーダ504でデコードされた命令が分岐命令である場合には、命令が分岐命令用リザべーションステーションRSBR(Reservation Station for Branch)508に登録される。CSE505、RSA506、RSE507、及びRSBR508の各エントリには、命令デコーダ504でデコードされた各命令を識別するためのIID(命令識別子)が登録される。また、CSEの各エントリには、IIDと共に、登録された命令の有効又は無効を指示するためのバリッドフラグが登録される。CSE505にデコード順に登録された命令と、RSA506、RSE507、又はRSBR508を介してアウトオブオーダで実行される命令は、命令識別子(IID)によって紐付けられている。そして、RSA506、RSE507、又はRSBR508を介して実行が完了した命令は、その命令に対応するRSA506、RSE507、又はRSBR508のエントリに登録されているIIDによってCSE505のエントリと照合される。そして、同じIIDが登録されているCSE505のエントリのバリッドフラグ(Valid)が無効を示す値に変更されて命令の実行を完了する。この紐付け制御により、RSA506、RSE507、又はRSBR508を介してアウトオブオーダで実行される命令の順序が、CSE505によって保証される。
この+D_MVC_256_1ST信号は、命令デコーダ504からセットされ、コピーサイズが最大の256バイトであるメモリコピー命令に対してマルチフロー展開された最初のMFメモリコピー命令であることを示す信号である。
まず、図7のプリフェッチ要求回路は、+D_MF_TGR信号、+P_EAG_VALID信号、及び+P_MVC_256_1ST信号に基づいて動作する。
図9のケースの例では、前述した図4のケース2の例の場合と同様に、2次キャッシュから1次データキャッシュへのデータ転送単位に対応するメモリブロックが64バイト(64B)、1つのメモリコピー命令で指定可能な最大データサイズが256バイトである。また、図4の場合と同様に、連続する複数の256バイトメモリコピー命令によって1つの大きなサイズのメモリコピー処理が実行される。更に、図4のケース2と同様に、アドレスA,Bがメモリブロックのブロック境界に位置するとして、上記メモリコピー処理の最初の256バイトメモリコピー命令におけるコピー元先頭アドレスがA+16、コピー先先頭アドレスがB+16とされる。即ち、メモリコピー処理の開始アドレスがブロック境界に存在しない。
第2番目(2nd)のメモリコピー命令に対応する最初のMFメモリコピー命令の実行時には、再びプリフェッチ要求が発行される。ここで、第2番目(2nd)のメモリコピー命令に対応する最初のMFメモリコピー命令において、コピー元先頭アドレスはA+272、コピー先先頭アドレスはB+272である。そして、これらのアドレスが含まれるメモリブロックは、第1番目(1st)のメモリコピー命令に対応する最後のMFメモリコピー命令が実行されたときにアクセスされたメモリブロックと同一である。従って、図9のケースでは、第2番目(2nd)のメモリコピー命令に対応する最初のMFメモリコピー命令の実行時には、1次データキャッシュはヒット(L1$HIT)しミスしない。従って、第2番目(2nd)のメモリコピー命令に対応する最初のMFメモリコピー命令の実行時には、プリフェッチ要求信号+P_PREFETCH_REQUESTは発行されているが、プリフェッチ動作は実行されない。
第3番目(3rd)のメモリコピー命令のマルチフロー展開実行時についても、上記大2番目(2nd)の場合と同様に、各MFメモリコピー命令毎に発行されるプリフェッチ要求信号+P_PREFETCH_REQUESTに基づいて、プリフェッチ動作が適切に実行される。
Claims (3)
- 記憶領域が2つ以上に階層化されているプロセッサで、命令のデコード時に1つの命令が複数の命令フローにマルチフロー展開された各命令フローを実行するとき、前記2つ以上の記憶領域のうち適切な記憶領域間で予め利用される予定のアドレスのデータをプリフェッチできるプロセッサ装置におけるプリフェッチ要求回路であって、
前記記憶領域にアクセスするための前記各命令フローを最大指定可能データ転送量で実行する状態が指示されたときに、該状態を前記マルチフロー展開の期間中保持するラッチ部と、
該ラッチ部の出力信号と前記各命令フローの実行タイミングを示す信号とに基づいて、前記各命令フローが実行される毎に前記プリフェッチを要求するプリフェッチ要求信号を出力するプリフェッチ要求信号出力部と、
を含むことを特徴とするプリフェッチ要求回路。 - メインメモリと2次キャッシュと1次データキャッシュを備え、命令のデコード時に1つの命令を複数の命令フローにマルチフロー展開し該各命令フローを実行し、前記1次データキャッシュへのメモリアクセス時に前記メインメモリから前記2次キャッシュへ予め利用される予定のアドレスのデータをプリフェッチすることができるプロセッサ装置におけるプリフェッチ要求回路であって、
メモリアドレス間のデータのコピー又は移動、演算を指示するメモリコピー命令に対応する前記各命令フローを最大指定可能データ転送量で実行する状態が指示されたときに、該状態を前記マルチフロー展開の期間中保持するラッチ回路部と、
該ラッチ部の出力信号と前記各命令フローの実行タイミングを示す信号とのアンド論理を取って、該アンド論理出力として前記各命令フローが発行される毎にプリフェッチ要求信号を出力するアンド回路部と、
を含むことを特徴とするプリフェッチ要求回路。 - 前記プリフェッチ要求回路を、前記命令フローを実行するリザべーションステーション内に備える、
ことを特徴とする請求項1又は2の何れか1項に記載のプリフェッチ要求回路。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2009/001465 WO2010116403A1 (ja) | 2009-03-30 | 2009-03-30 | プリフェッチ要求回路 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2010116403A1 true JPWO2010116403A1 (ja) | 2012-10-11 |
JP5229383B2 JP5229383B2 (ja) | 2013-07-03 |
Family
ID=42935718
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011508060A Expired - Fee Related JP5229383B2 (ja) | 2009-03-30 | 2009-03-30 | プリフェッチ要求回路 |
Country Status (4)
Country | Link |
---|---|
US (1) | US8856498B2 (ja) |
EP (1) | EP2416250B1 (ja) |
JP (1) | JP5229383B2 (ja) |
WO (1) | WO2010116403A1 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6098429B2 (ja) * | 2013-08-12 | 2017-03-22 | 富士通株式会社 | 演算処理装置及び演算処理装置の制御方法 |
US11347506B1 (en) * | 2021-01-15 | 2022-05-31 | Arm Limited | Memory copy size determining instruction and data transfer instruction |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS58169384A (ja) | 1982-03-31 | 1983-10-05 | Hitachi Ltd | デ−タ処理装置 |
JPS59218691A (ja) * | 1983-05-27 | 1984-12-08 | Fujitsu Ltd | プリフエツチ方式 |
US5835967A (en) * | 1993-10-18 | 1998-11-10 | Cyrix Corporation | Adjusting prefetch size based on source of prefetch address |
JP3812258B2 (ja) * | 2000-01-13 | 2006-08-23 | 株式会社日立製作所 | キャッシュ記憶装置 |
JP3702814B2 (ja) * | 2001-07-12 | 2005-10-05 | 日本電気株式会社 | マルチスレッド実行方法及び並列プロセッサシステム |
JP2003208399A (ja) * | 2002-01-15 | 2003-07-25 | Hitachi Ltd | データ処理装置 |
US6895474B2 (en) * | 2002-04-29 | 2005-05-17 | Micron Technology, Inc. | Synchronous DRAM with selectable internal prefetch size |
JP4067887B2 (ja) * | 2002-06-28 | 2008-03-26 | 富士通株式会社 | プリフェッチを行う演算処理装置、情報処理装置及びそれらの制御方法 |
JP4574712B2 (ja) | 2006-02-28 | 2010-11-04 | 富士通株式会社 | 演算処理装置、情報処理装置及び制御方法 |
WO2007099582A1 (ja) | 2006-02-28 | 2007-09-07 | Fujitsu Limited | プリフェッチ制御装置 |
US7613883B2 (en) * | 2006-03-10 | 2009-11-03 | Rambus Inc. | Memory device with mode-selectable prefetch and clock-to-core timing |
KR101032050B1 (ko) | 2007-06-19 | 2011-05-02 | 후지쯔 가부시끼가이샤 | 정보 처리 장치 및 캐시 제어 방법 |
-
2009
- 2009-03-30 EP EP09842915.2A patent/EP2416250B1/en not_active Not-in-force
- 2009-03-30 WO PCT/JP2009/001465 patent/WO2010116403A1/ja active Application Filing
- 2009-03-30 JP JP2011508060A patent/JP5229383B2/ja not_active Expired - Fee Related
-
2011
- 2011-08-29 US US13/220,006 patent/US8856498B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US8856498B2 (en) | 2014-10-07 |
WO2010116403A1 (ja) | 2010-10-14 |
JP5229383B2 (ja) | 2013-07-03 |
EP2416250A4 (en) | 2013-01-30 |
EP2416250A1 (en) | 2012-02-08 |
EP2416250B1 (en) | 2014-08-27 |
US20110314262A1 (en) | 2011-12-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5889986B2 (ja) | 実行された命令の結果を選択的にコミットするためのシステムおよび方法 | |
JP6143872B2 (ja) | 装置、方法、およびシステム | |
JP6375379B2 (ja) | キャッシュ占有決定および命令スケジューリングのための方法および装置 | |
US9619750B2 (en) | Method and apparatus for store dependence prediction | |
JP6011194B2 (ja) | 演算処理装置及び演算処理装置の制御方法 | |
US20040128448A1 (en) | Apparatus for memory communication during runahead execution | |
TW201704991A (zh) | 藉由演算法匹配、停用特徵或限制效能之回溯相容性 | |
US20180349144A1 (en) | Method and apparatus for branch prediction utilizing primary and secondary branch predictors | |
US20130254486A1 (en) | Speculative cache modification | |
JP2009099097A (ja) | データ処理装置 | |
JP2009009571A (ja) | レベル2キャッシュ/ネスト・アドレスを変換する方法および装置 | |
US10579378B2 (en) | Instructions for manipulating a multi-bit predicate register for predicating instruction sequences | |
JP5229383B2 (ja) | プリフェッチ要求回路 | |
EP1220100A2 (en) | Circuit and method for hardware-assisted software flushing of data and instruction caches | |
CN109564510B (zh) | 用于在地址生成时间分配加载和存储队列的系统和方法 | |
CN112395000B (zh) | 一种数据预加载方法和指令处理装置 | |
EP1220088A2 (en) | Circuit and method for supporting misaligned accesses in the presence of speculative load instructions | |
US10853078B2 (en) | Method and apparatus for supporting speculative memory optimizations | |
US6865665B2 (en) | Processor pipeline cache miss apparatus and method for operation | |
JP5949327B2 (ja) | 演算処理装置および演算処理装置の制御方法 | |
US20170031827A1 (en) | Speculative cache modification | |
CN112148106A (zh) | 用于处理器的混合预留站的系统、装置和方法 | |
EP1235139B1 (en) | System and method for supporting precise exceptions in a data processor having a clustered architecture | |
US20180052684A1 (en) | Triple-pass execution | |
CN113568663A (zh) | 代码预取指令 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20121218 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130204 |
|
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: 20130219 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20130304 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20160329 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |