JP6252348B2 - 演算処理装置および演算処理装置の制御方法 - Google Patents
演算処理装置および演算処理装置の制御方法 Download PDFInfo
- Publication number
- JP6252348B2 JP6252348B2 JP2014100210A JP2014100210A JP6252348B2 JP 6252348 B2 JP6252348 B2 JP 6252348B2 JP 2014100210 A JP2014100210 A JP 2014100210A JP 2014100210 A JP2014100210 A JP 2014100210A JP 6252348 B2 JP6252348 B2 JP 6252348B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- prefetch
- unit
- arithmetic processing
- memory
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/60—Details of cache memory
- G06F2212/602—Details relating to cache prefetching
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/60—Details of cache memory
- G06F2212/6022—Using a prefetch buffer or dedicated prefetch cache
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/60—Details of cache memory
- G06F2212/6026—Prefetching based on access pattern detection, e.g. stride based prefetch
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
式(1)のmodは剰余演算子である。すなわち、キャッシュラインのライン番号CLは、”addr/LS”を”(WS×1024)/LS”で割った余りに対応する。
(付記1)
メモリに記憶されたデータを事前にキャッシュメモリに転送するプリフェッチを実行可能な演算処理装置において、
命令をデコードするデコード部と、
デコードされた前記命令のうち、メモリアクセスに関する前記命令が登録される命令保持部と、
前記メモリに記憶された前記データを事前に前記キャッシュメモリに転送するプリフェッチ命令とは別の所定の契機で、前記プリフェッチを実行するハードウエアプリフェッチ制御部と、
前記ハードウエアプリフェッチ制御部により前記キャッシュメモリに転送される前記データに含まれる前記データを前記メモリから前記キャッシュメモリに転送する不要な前記プリフェッチ命令が前記命令保持部に登録されているか否かを判定し、不要な前記プリフェッチ命令が前記命令保持部に登録されている場合、不要な前記プリフェッチ命令を無効にする制御部とを有することを特徴とする演算処理装置。
(付記2)
付記1に記載の演算処理装置において、
前記制御部は、不要な前記プリフェッチ命令を前記命令保持部から削除することにより、不要な前記プリフェッチ命令を無効にすることを特徴とする演算処理装置。
(付記3)
付記1または付記2に記載の演算処理装置において、
前記ハードウエアプリフェッチ制御部は、前記所定の契機を検出する際に参照される第1アドレス情報を記憶するアドレス保持部を有し、前記アドレス保持部に記憶した前記第1アドレス情報に基づいて前記プリフェッチのアクセス先を算出し、
前記命令保持部は、前記命令の種類を示す命令コードと、前記命令のアクセス先を示す第2アドレス情報とを記憶し、
前記制御部は、前記ハードウエアプリフェッチ制御部による前記プリフェッチが実行された場合、前記第1アドレス情報に基づいて算出されたアクセス先にアクセスする不要な前記プリフェッチ命令が前記命令保持部に登録されているか否かを、前記命令保持部に記憶された前記命令コードおよび前記第2アドレス情報に基づいて判定し、不要な前記プリフェッチ命令が前記命令保持部に登録されている場合、不要な前記プリフェッチ命令を無効にすることを特徴とする演算処理装置。
(付記4)
メモリに記憶されたデータを事前にキャッシュメモリに転送するプリフェッチを実行可能な演算処理装置の制御方法において、
前記演算処理装置が有するデコード部が、命令をデコードし、デコードした前記命令のうち、メモリアクセスに関する前記命令を命令保持部に登録し、
前記演算処理装置が有するハードウエアプリフェッチ制御部が、前記メモリに記憶された前記データを事前に前記キャッシュメモリに転送するプリフェッチ命令とは別の所定の契機で、前記プリフェッチを実行し、
前記演算処理装置が有する制御部が、前記ハードウエアプリフェッチ制御部により前記キャッシュメモリに転送される前記データに含まれる前記データを前記メモリから前記キャッシュメモリに転送する不要な前記プリフェッチ命令が前記命令保持部に登録されているか否かを判定し、不要な前記プリフェッチ命令が前記命令保持部に登録されている場合、不要な前記プリフェッチ命令を無効にすることを特徴とする演算処理装置の制御方法。
(付記5)
付記4に記載の演算処理装置の制御方法において、
前記制御部は、不要な前記プリフェッチ命令を前記命令保持部から削除することにより、不要な前記プリフェッチ命令を無効にすることを特徴とする演算処理装置の制御方法。
(付記6)
付記4または付記5に記載の演算処理装置の制御方法において、
前記ハードウエアプリフェッチ制御部が、前記所定の契機を検出する際に参照する第1アドレス情報をアドレス保持部に記憶し、前記アドレス保持部に記憶した前記第1アドレス情報に基づいて前記プリフェッチのアクセス先を算出し、
前記演算処理装置が、前記命令の種類を示す命令コードと、前記命令のアクセス先を示す第2アドレス情報とを前記命令保持部に記憶し、
前記ハードウエアプリフェッチ制御部が前記プリフェッチを実行した場合、前記制御部が、前記第1アドレス情報に基づいて算出されたアクセス先にアクセスする不要な前記プリフェッチ命令が前記命令保持部に登録されているか否かを、前記命令保持部に記憶された前記命令コードおよび前記第2アドレス情報に基づいて判定し、不要な前記プリフェッチ命令が前記命令保持部に登録されている場合、不要な前記プリフェッチ命令を無効にすることを特徴とする演算処理装置の制御方法。
Claims (4)
- メモリに記憶されたデータを事前にキャッシュメモリに転送するプリフェッチを実行可能な演算処理装置において、
命令をデコードするデコード部と、
デコードされた前記命令のうち、メモリアクセスに関する前記命令が登録される命令保持部と、
前記メモリに記憶された前記データを事前に前記キャッシュメモリに転送するプリフェッチ命令とは別の所定の契機で、前記プリフェッチを実行するハードウエアプリフェッチ制御部と、
前記ハードウエアプリフェッチ制御部により前記キャッシュメモリに転送される前記データに含まれる前記データを前記メモリから前記キャッシュメモリに転送する不要な前記プリフェッチ命令が前記命令保持部に登録されているか否かを判定し、不要な前記プリフェッチ命令が前記命令保持部に登録されている場合、不要な前記プリフェッチ命令を無効にする制御部とを有することを特徴とする演算処理装置。 - 請求項1に記載の演算処理装置において、
前記制御部は、不要な前記プリフェッチ命令を前記命令保持部から削除することにより、不要な前記プリフェッチ命令を無効にすることを特徴とする演算処理装置。 - 請求項1または請求項2に記載の演算処理装置において、
前記ハードウエアプリフェッチ制御部は、前記所定の契機を検出する際に参照される第1アドレス情報を記憶するアドレス保持部を有し、前記アドレス保持部に記憶した前記第1アドレス情報に基づいて前記プリフェッチのアクセス先を算出し、
前記命令保持部は、前記命令の種類を示す命令コードと、前記命令のアクセス先を示す第2アドレス情報とを記憶し、
前記制御部は、前記ハードウエアプリフェッチ制御部による前記プリフェッチが実行された場合、前記第1アドレス情報に基づいて算出されたアクセス先にアクセスする不要な前記プリフェッチ命令が前記命令保持部に登録されているか否かを、前記命令保持部に記憶された前記命令コードおよび前記第2アドレス情報に基づいて判定し、不要な前記プリフェッチ命令が前記命令保持部に登録されている場合、不要な前記プリフェッチ命令を無効にすることを特徴とする演算処理装置。 - メモリに記憶されたデータを事前にキャッシュメモリに転送するプリフェッチを実行可能な演算処理装置の制御方法において、
前記演算処理装置が有するデコード部が、命令をデコードし、デコードした前記命令のうち、メモリアクセスに関する前記命令を命令保持部に登録し、
前記演算処理装置が有するハードウエアプリフェッチ制御部が、前記メモリに記憶された前記データを事前に前記キャッシュメモリに転送するプリフェッチ命令とは別の所定の契機で、前記プリフェッチを実行し、
前記演算処理装置が有する制御部が、前記ハードウエアプリフェッチ制御部により前記キャッシュメモリに転送される前記データに含まれる前記データを前記メモリから前記キャッシュメモリに転送する不要な前記プリフェッチ命令が前記命令保持部に登録されているか否かを判定し、不要な前記プリフェッチ命令が前記命令保持部に登録されている場合、不要な前記プリフェッチ命令を無効にすることを特徴とする演算処理装置の制御方法。
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2014100210A JP6252348B2 (ja) | 2014-05-14 | 2014-05-14 | 演算処理装置および演算処理装置の制御方法 |
| US14/695,341 US9830268B2 (en) | 2014-05-14 | 2015-04-24 | Arithmetic processing device for disabling an unnecessary prefetch command and control method of arithmetic processing device for disabling an unnecessary prefetch command |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2014100210A JP6252348B2 (ja) | 2014-05-14 | 2014-05-14 | 演算処理装置および演算処理装置の制御方法 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2015219550A JP2015219550A (ja) | 2015-12-07 |
| JP6252348B2 true JP6252348B2 (ja) | 2017-12-27 |
Family
ID=54538626
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2014100210A Active JP6252348B2 (ja) | 2014-05-14 | 2014-05-14 | 演算処理装置および演算処理装置の制御方法 |
Country Status (2)
| Country | Link |
|---|---|
| US (1) | US9830268B2 (ja) |
| JP (1) | JP6252348B2 (ja) |
Families Citing this family (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US9477774B2 (en) * | 2013-09-25 | 2016-10-25 | Akamai Technologies, Inc. | Key resource prefetching using front-end optimization (FEO) configuration |
| US10452395B2 (en) | 2016-07-20 | 2019-10-22 | International Business Machines Corporation | Instruction to query cache residency |
| US10621095B2 (en) * | 2016-07-20 | 2020-04-14 | International Business Machines Corporation | Processing data based on cache residency |
| US10521350B2 (en) | 2016-07-20 | 2019-12-31 | International Business Machines Corporation | Determining the effectiveness of prefetch instructions |
| US11645207B2 (en) * | 2020-09-25 | 2023-05-09 | Advanced Micro Devices, Inc. | Prefetch disable of memory requests targeting data lacking locality |
Family Cites Families (24)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH06222990A (ja) * | 1992-10-16 | 1994-08-12 | Fujitsu Ltd | データ処理装置 |
| JP3218932B2 (ja) * | 1995-07-06 | 2001-10-15 | 株式会社日立製作所 | データプリフェッチコード生成方法 |
| US6134633A (en) * | 1997-10-31 | 2000-10-17 | U.S. Philips Corporation | Prefetch management in cache memory |
| JP3741870B2 (ja) * | 1998-08-07 | 2006-02-01 | 富士通株式会社 | 命令及びデータの先読み方法、マイクロコントローラ、疑似命令検出回路 |
| JP3741945B2 (ja) * | 1999-09-30 | 2006-02-01 | 富士通株式会社 | 命令フェッチ制御装置 |
| JP2001166989A (ja) | 1999-12-07 | 2001-06-22 | Hitachi Ltd | プリフェッチ機構を有するメモリシステム及びその動作方法 |
| US7174434B2 (en) * | 2001-02-24 | 2007-02-06 | International Business Machines Corporation | Low latency memory access and synchronization |
| JP3969009B2 (ja) | 2001-03-29 | 2007-08-29 | 株式会社日立製作所 | ハードウェアプリフェッチシステム |
| US6785772B2 (en) * | 2002-04-26 | 2004-08-31 | Freescale Semiconductor, Inc. | Data prefetching apparatus in a data processing system and method therefor |
| US6931494B2 (en) * | 2002-09-09 | 2005-08-16 | Broadcom Corporation | System and method for directional prefetching |
| US7032076B2 (en) * | 2002-09-16 | 2006-04-18 | Intel Corporation | Prefetching data in a computer system |
| JP5059609B2 (ja) * | 2004-08-17 | 2012-10-24 | エヌヴィディア コーポレイション | メモリへの様々なタイプのアクセスを予測するため、およびキャッシュメモリに関連付けられた予測を管理するための、システム、装置、および方法 |
| JP2006330813A (ja) | 2005-05-23 | 2006-12-07 | Hitachi Ltd | プリフェッチ起動命令挿入機能を備えたコンパイラ装置 |
| JP4945200B2 (ja) * | 2006-08-29 | 2012-06-06 | 株式会社日立製作所 | 計算機システム及びプロセッサの制御方法 |
| WO2008093399A1 (ja) * | 2007-01-30 | 2008-08-07 | Fujitsu Limited | 情報処理システムおよび情報処理方法 |
| US8260990B2 (en) | 2007-11-19 | 2012-09-04 | Qualcomm Incorporated | Selective preclusion of a bus access request |
| JP2009230374A (ja) | 2008-03-21 | 2009-10-08 | Fujitsu Ltd | 情報処理装置,プログラム,及び命令列生成方法 |
| JP5251688B2 (ja) | 2009-04-02 | 2013-07-31 | 富士通株式会社 | コンパイラプログラムおよびコンパイラ装置 |
| JP5609092B2 (ja) * | 2009-12-09 | 2014-10-22 | 富士通株式会社 | 演算処理装置及び演算処理装置の制御方法 |
| JP5238797B2 (ja) | 2010-12-20 | 2013-07-17 | パナソニック株式会社 | コンパイラ装置 |
| US9043579B2 (en) * | 2012-01-10 | 2015-05-26 | International Business Machines Corporation | Prefetch optimizer measuring execution time of instruction sequence cycling through each selectable hardware prefetch depth and cycling through disabling each software prefetch instruction of an instruction sequence of interest |
| US9542190B2 (en) * | 2012-02-14 | 2017-01-10 | Renesas Electronics Corporation | Processor with fetch control for stoppage |
| US9268881B2 (en) * | 2012-10-19 | 2016-02-23 | Intel Corporation | Child state pre-fetch in NFAs |
| US9442727B2 (en) * | 2013-10-14 | 2016-09-13 | Oracle International Corporation | Filtering out redundant software prefetch instructions |
-
2014
- 2014-05-14 JP JP2014100210A patent/JP6252348B2/ja active Active
-
2015
- 2015-04-24 US US14/695,341 patent/US9830268B2/en active Active
Also Published As
| Publication number | Publication date |
|---|---|
| JP2015219550A (ja) | 2015-12-07 |
| US9830268B2 (en) | 2017-11-28 |
| US20150331800A1 (en) | 2015-11-19 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP6488711B2 (ja) | 演算処理装置および演算処理装置の制御方法 | |
| US7716427B2 (en) | Store stream prefetching in a microprocessor | |
| US7904661B2 (en) | Data stream prefetching in a microprocessor | |
| US8316188B2 (en) | Data prefetch unit utilizing duplicate cache tags | |
| JP4027620B2 (ja) | 分岐予測装置、プロセッサ、及び分岐予測方法 | |
| JP3640355B2 (ja) | キャッシュ制御の命令プリフェッチ方法及びシステム | |
| US8166250B2 (en) | Information processing unit, program, and instruction sequence generation method | |
| JP6252348B2 (ja) | 演算処理装置および演算処理装置の制御方法 | |
| KR20240023151A (ko) | 범위 프리페치 명령어 | |
| US20140215185A1 (en) | Fetching instructions of a loop routine | |
| JP6265041B2 (ja) | コンパイルプログラム、コンパイル方法およびコンパイル装置 | |
| US9201798B2 (en) | Processor instruction based data prefetching | |
| JP6457836B2 (ja) | プロセッサおよび命令コード生成装置 | |
| US10031852B2 (en) | Arithmetic processing apparatus and control method of the arithmetic processing apparatus | |
| US20050198439A1 (en) | Cache memory prefetcher | |
| JP4030314B2 (ja) | 演算処理装置 | |
| US8443176B2 (en) | Method, system, and computer program product for reducing cache memory pollution | |
| JP2001273137A (ja) | マイクロプロセッサ | |
| US20080250211A1 (en) | Cache control method, cache device, and microcomputer | |
| JP3770091B2 (ja) | キャッシュ制御方法及びキャッシュ制御回路 | |
| JP5116275B2 (ja) | 演算処理装置、情報処理装置及び演算処理装置の制御方法 | |
| JP5679263B2 (ja) | 情報処理装置及びマイクロ命令処理方法 | |
| CN107193757A (zh) | 数据预取方法、处理器和设备 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20170206 |
|
| RD01 | Notification of change of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7426 Effective date: 20170803 |
|
| RD03 | Notification of appointment of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7423 Effective date: 20170803 |
|
| RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20170804 |
|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20171023 |
|
| 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: 20171031 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20171113 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 6252348 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |