JP6458682B2 - 演算処理装置及び演算処理装置の制御方法 - Google Patents
演算処理装置及び演算処理装置の制御方法 Download PDFInfo
- Publication number
- JP6458682B2 JP6458682B2 JP2015165280A JP2015165280A JP6458682B2 JP 6458682 B2 JP6458682 B2 JP 6458682B2 JP 2015165280 A JP2015165280 A JP 2015165280A JP 2015165280 A JP2015165280 A JP 2015165280A JP 6458682 B2 JP6458682 B2 JP 6458682B2
- Authority
- JP
- Japan
- Prior art keywords
- prefetch
- unit
- instruction
- address
- memory access
- 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; 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
- 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/0875—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with dedicated cache, e.g. instruction or stack
-
- 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/0877—Cache access modes
- G06F12/0884—Parallel mode, e.g. in parallel with main memory or CPU
-
- 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
- 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/1021—Hit rate 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/45—Caching of specific data in cache memory
- G06F2212/452—Instruction code
-
- 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/60—Details of cache memory
- G06F2212/6024—History based prefetching
-
- 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)
- 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の実施形態について説明する。
図1は、第1の実施形態における演算処理装置の構成例を示すブロック図である。第1の実施形態における演算処理装置(プロセッサ)は、命令発行部・命令実行部10、一次キャッシュ部20、二次キャッシュ部30、プリフェッチ設定レジスタ40、及びハードウェアプリフェッチ制御部50Aを有する。
次に、本発明の第2の実施形態について説明する。
図9は、第2の実施形態における演算処理装置の構成例を示すブロック図である。この図9において、図1に示した構成要素と同一の機能を有する構成要素には同一の符号を付し、重複する説明は省略する。第2の実施形態における演算処理装置(プロセッサ)は、図9に示すように命令発行部・命令実行部10、一次キャッシュ部20、二次キャッシュ部30、プリフェッチ設定レジスタ40、及びハードウェアプリフェッチ制御部50Bを有する。
20 一次キャッシュ部
30 二次キャッシュ部
40 プリフェッチ設定レジスタ
50A、50B ハードウェアプリフェッチ制御部
51 プリフェッチアドレスキュー
52 パターン監視部
53A、53B 一次キャッシュプリフェッチ要求生成部
54A、54B 二次キャッシュプリフェッチ要求生成部
55 プリフェッチアドレスキュー更新アドレス生成部
56 プリフェッチアドレスキュー制御部
57 プリフェッチアドレスキュー動作設定レジスタ
60 主記憶装置
Claims (11)
- メモリアクセス命令を実行する命令実行部と、
前記メモリアクセス命令に係るデータを記憶する記憶部と前記命令実行部との間に配されたキャッシュメモリ部と、
前記キャッシュメモリ部に対して発行するプリフェッチに係る制御情報を保持する制御情報保持部と、
過去に実行された前記メモリアクセス命令に基づくアドレス情報を保持するアドレス情報保持部と、
前記アドレス情報保持部に保持されたアドレス情報と実行する前記メモリアクセス命令でのアクセスアドレスとを比較し、比較結果に基づいて前記メモリアクセス命令に付加された指示情報で指定される前記制御情報保持部の制御情報に応じた前記キャッシュメモリ部に対するハードウェアプリフェッチ要求を生成し発行する制御部とを有する演算処理装置。 - 前記制御情報保持部に保持される前記制御情報をソフトウェア指示により書き換え可能である請求項1記載の演算処理装置。
- 前記制御情報保持部に保持する制御情報は、前記メモリアクセス命令でのアクセスアドレスにおける差分の期待値を含み、
前記メモリアクセス命令を実行した場合、前記メモリアクセス命令のアクセスアドレスと前記差分の期待値とから計算されるアドレス情報を前記アドレス情報保持部に保持させる制御部を有する請求項1又は2記載の演算処理装置。 - 前記制御情報保持部に保持する制御情報は、前記メモリアクセス命令でのアクセスアドレスに対するハードウェアプリフェッチ要求のアクセス先のアドレスを指示するプリフェッチ距離に係る情報を含む請求項1〜3の何れか1項に記載の演算処理装置。
- 前記キャッシュメモリ部に対して発行するプリフェッチに係る制御情報を保持する前記制御情報保持部を複数有する請求項1〜4の何れか1項に記載の演算処理装置。
- 前記制御情報保持部の制御情報に応じた前記キャッシュメモリ部に対するハードウェアプリフェッチ要求を生成するか、ハードウェア設定に応じた前記キャッシュメモリ部に対するハードウェアプリフェッチ要求を生成するかを前記メモリアクセス命令に付加された指示情報によって切り替え可能である請求項1〜5の何れか1項に記載の演算処理装置。
- 前記制御情報保持部の制御情報に応じた前記キャッシュメモリ部に対するハードウェアプリフェッチ要求を生成する場合、キャッシュミスの発生を契機に前記アドレス情報保持部にアドレス情報を登録してアクセスパターン検出を行うとともにハードウェアプリフェッチ要求を生成する第1のモードと、前記アドレス情報保持部にアドレス情報を登録せずにメモリアクセス命令と同時にハードウェアプリフェッチ要求を生成する第2のモードとを、前記メモリアクセス命令に付加された指示情報によって切り替え可能である請求項1〜6の何れか1項に記載の演算処理装置。
- 前記演算処理装置はさらに、設定情報を保持する設定情報保持部を有し、
前記制御情報保持部の制御情報に応じた前記アドレス情報保持部の最大エントリ数と、前記設定情報保持部が設定する設定情報に応じた前記アドレス情報保持部の最大エントリ数とを、前記設定情報保持部に保持された設定情報に応じて切り替え可能である請求項1〜7の何れか1項に記載の演算処理装置。 - 前記ハードウェアプリフェッチ要求を生成するか否かを前記メモリアクセス命令に付加された指示情報によって制御する請求項1〜8の何れか1項に記載の演算処理装置。
- メモリアクセス命令を実行する命令実行部と、
前記メモリアクセス命令に係るデータを記憶する記憶部と前記命令実行部との間に配されたキャッシュメモリ部と、
前記キャッシュメモリ部に対して発行するプリフェッチに係る制御情報を保持する制御情報保持部と、
前記メモリアクセス命令に付加された指示情報で指定される前記制御情報保持部の制御情報に応じた前記キャッシュメモリ部に対するハードウェアプリフェッチ要求を生成し発行する制御部とを有する演算処理装置。 - メモリアクセス命令を実行する命令実行部と、前記メモリアクセス命令に係るデータを記憶する記憶部と前記命令実行部との間に配されたキャッシュメモリ部と、前記キャッシュメモリ部に対して発行するプリフェッチに係る制御情報を保持する制御情報保持部と、過去に実行された前記メモリアクセス命令に基づくアドレス情報を保持するアドレス情報保持部とを有する演算処理装置の制御方法において、
前記演算処理装置が有する制御部が、前記アドレス情報保持部に保持されたアドレス情報と実行する前記メモリアクセス命令でのアクセスアドレスとを比較し、
前記制御部が、比較結果に基づいて前記メモリアクセス命令に付加された指示情報で指定される前記制御情報保持部の制御情報に応じた前記キャッシュメモリ部に対するハードウェアプリフェッチ要求を生成し発行する演算処理装置の制御方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015165280A JP6458682B2 (ja) | 2015-08-24 | 2015-08-24 | 演算処理装置及び演算処理装置の制御方法 |
US15/222,999 US9990297B2 (en) | 2015-08-24 | 2016-07-29 | Processor and control method of processor |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015165280A JP6458682B2 (ja) | 2015-08-24 | 2015-08-24 | 演算処理装置及び演算処理装置の制御方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2017045153A JP2017045153A (ja) | 2017-03-02 |
JP6458682B2 true JP6458682B2 (ja) | 2019-01-30 |
Family
ID=58095552
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015165280A Active JP6458682B2 (ja) | 2015-08-24 | 2015-08-24 | 演算処理装置及び演算処理装置の制御方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9990297B2 (ja) |
JP (1) | JP6458682B2 (ja) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9950282B2 (en) | 2012-03-15 | 2018-04-24 | Flodesign Sonics, Inc. | Electronic configuration and control for acoustic standing wave generation |
US9458450B2 (en) | 2012-03-15 | 2016-10-04 | Flodesign Sonics, Inc. | Acoustophoretic separation technology using multi-dimensional standing waves |
US10704021B2 (en) | 2012-03-15 | 2020-07-07 | Flodesign Sonics, Inc. | Acoustic perfusion devices |
US10967298B2 (en) | 2012-03-15 | 2021-04-06 | Flodesign Sonics, Inc. | Driver and control for variable impedence load |
US11708572B2 (en) | 2015-04-29 | 2023-07-25 | Flodesign Sonics, Inc. | Acoustic cell separation techniques and processes |
US11021699B2 (en) | 2015-04-29 | 2021-06-01 | FioDesign Sonics, Inc. | Separation using angled acoustic waves |
US11377651B2 (en) | 2016-10-19 | 2022-07-05 | Flodesign Sonics, Inc. | Cell therapy processes utilizing acoustophoresis |
US11459540B2 (en) | 2015-07-28 | 2022-10-04 | Flodesign Sonics, Inc. | Expanded bed affinity selection |
US11474085B2 (en) | 2015-07-28 | 2022-10-18 | Flodesign Sonics, Inc. | Expanded bed affinity selection |
US11214789B2 (en) | 2016-05-03 | 2022-01-04 | Flodesign Sonics, Inc. | Concentration and washing of particles with acoustics |
WO2018075830A1 (en) | 2016-10-19 | 2018-04-26 | Flodesign Sonics, Inc. | Affinity cell extraction by acoustics |
US10452551B2 (en) * | 2016-12-12 | 2019-10-22 | Intel Corporation | Programmable memory prefetcher for prefetching multiple cache lines based on data in a prefetch engine control register |
KR102353859B1 (ko) | 2017-11-01 | 2022-01-19 | 삼성전자주식회사 | 컴퓨팅 장치 및 비휘발성 듀얼 인라인 메모리 모듈 |
JP2019164411A (ja) * | 2018-03-19 | 2019-09-26 | 株式会社東芝 | 管理装置、情報処理装置、管理方法、およびプログラム |
US11204875B1 (en) | 2020-07-17 | 2021-12-21 | International Business Machines Corporation | Software assisted data address prefetch |
JP7024127B2 (ja) * | 2021-02-04 | 2022-02-22 | 株式会社東芝 | 管理装置、情報処理装置、管理方法、およびプログラム |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6578130B2 (en) | 2001-10-18 | 2003-06-10 | International Business Machines Corporation | Programmable data prefetch pacing |
US6915415B2 (en) | 2002-01-07 | 2005-07-05 | International Business Machines Corporation | Method and apparatus for mapping software prefetch instructions to hardware prefetch logic |
US6871246B2 (en) * | 2003-05-07 | 2005-03-22 | Freescale Semiconductor, Inc. | Prefetch control in a data processing system |
US7318125B2 (en) | 2004-05-20 | 2008-01-08 | International Business Machines Corporation | Runtime selective control of hardware prefetch mechanism |
JP4212521B2 (ja) * | 2004-06-30 | 2009-01-21 | 株式会社東芝 | 先読み制御装置、プロセッサの一時記憶装置へデータの先読みを制御する先読み制御方法およびプログラム |
US7533242B1 (en) | 2005-10-31 | 2009-05-12 | Sun Microsystems, Inc. | Prefetch hardware efficiency via prefetch hint instructions |
KR101032050B1 (ko) * | 2007-06-19 | 2011-05-02 | 후지쯔 가부시끼가이샤 | 정보 처리 장치 및 캐시 제어 방법 |
JP2009230374A (ja) * | 2008-03-21 | 2009-10-08 | Fujitsu Ltd | 情報処理装置,プログラム,及び命令列生成方法 |
US8156286B2 (en) | 2008-12-30 | 2012-04-10 | Advanced Micro Devices, Inc. | Processor and method for using an instruction hint to prevent hardware prefetch from using certain memory accesses in prefetch calculations |
-
2015
- 2015-08-24 JP JP2015165280A patent/JP6458682B2/ja active Active
-
2016
- 2016-07-29 US US15/222,999 patent/US9990297B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
JP2017045153A (ja) | 2017-03-02 |
US9990297B2 (en) | 2018-06-05 |
US20170060751A1 (en) | 2017-03-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6458682B2 (ja) | 演算処理装置及び演算処理装置の制御方法 | |
US6446167B1 (en) | Cache prefetching of L2 and L3 | |
US8490065B2 (en) | Method and apparatus for software-assisted data cache and prefetch control | |
US6574712B1 (en) | Software prefetch system and method for predetermining amount of streamed data | |
JP5615361B2 (ja) | スレッドシフト:コアへのスレッド割振り | |
US6356980B1 (en) | Method and system for bypassing cache levels when casting out from an upper level cache | |
US20100146209A1 (en) | Method and apparatus for combining independent data caches | |
EP1769364B1 (en) | Information processing apparatus and information processing method | |
US10108548B2 (en) | Processors and methods for cache sparing stores | |
KR20120070584A (ko) | 데이터 스트림에 대한 저장 인식 프리페치 | |
JP2009098934A (ja) | プロセッサ及びキャッシュメモリ | |
US9483406B2 (en) | Communicating prefetchers that throttle one another | |
US8856453B2 (en) | Persistent prefetch data stream settings | |
JP6457200B2 (ja) | プロセッシング装置 | |
JP6627629B2 (ja) | 演算処理装置、および演算処理装置の制御方法 | |
US6535962B1 (en) | System and method for prefetching data using a hardware prefetch mechanism | |
CN117421259A (zh) | 用飞行中预取服务于cpu需求请求 | |
JP2016536665A (ja) | 推論的ベクトル演算の実行を制御するためのデータ処理装置及び方法 | |
JP2014115851A (ja) | データ処理装置及びその制御方法 | |
KR20190095489A (ko) | 그래프 처리 시스템 및 그래프 처리 시스템의 동작 방법 | |
US7823013B1 (en) | Hardware data race detection in HPCS codes | |
JP2003223359A (ja) | 演算処理装置 | |
US11474946B2 (en) | Calculator and calculation method | |
KR20210097345A (ko) | 캐시 메모리 장치, 이를 포함하는 시스템 및 캐시 메모리 장치의 동작 방법 | |
JP2010146145A (ja) | キャッシュメモリ及びプリフェッチ方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20180514 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20181115 |
|
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: 20181127 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20181210 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6458682 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |