JP6680978B2 - 演算処理装置及び演算処理装置の制御方法 - Google Patents
演算処理装置及び演算処理装置の制御方法 Download PDFInfo
- Publication number
- JP6680978B2 JP6680978B2 JP2016082197A JP2016082197A JP6680978B2 JP 6680978 B2 JP6680978 B2 JP 6680978B2 JP 2016082197 A JP2016082197 A JP 2016082197A JP 2016082197 A JP2016082197 A JP 2016082197A JP 6680978 B2 JP6680978 B2 JP 6680978B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- store
- data
- unit
- load
- 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
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- 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/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0868—Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
-
- 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
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
-
- 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/0804—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
-
- 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
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Memory System (AREA)
Description
図1は、本発明の一実施形態における演算処理装置としてのプロセッサの構成例を示すブロック図である。プロセッサ110は、命令制御部111、演算部112、1次キャッシュ部113、及び2次キャッシュ部117を有する。プロセッサ110は、命令パイプラインを有し、主記憶装置(メインメモリ)120と接続される。主記憶装置120は、キャッシュメモリと比較して大容量のデータを記憶可能なメモリであり、命令やデータを記憶する。主記憶装置120は、例えばRAM(Random Access Memory)である。
111、201 命令制御部
112、202 演算部
113 1次キャッシュ部
114、203 1次キャッシュ制御部
115 1次命令キャッシュメモリ
116、207 1次データキャッシュメモリ
117 2次キャッシュ部
120 主記憶装置
204 ストアバッファ部
205 ライトバッファ部
206 SFB候補選択処理部
301 命令デコード部
302 リザベーションステーション
303 ポート割り当て部
304 ポート番号保持部
404 SFB判定部
405 SFB候補判定部
406 SFB候補決定部
407 フェッチポート
Claims (11)
- 命令を発行する命令制御部と、
前記命令制御部から発行されるストア命令の対象であるストア対象データがストアされるキャッシュメモリと、
前記命令制御部と前記キャッシュメモリとの間で、前記ストア対象データを格納するエントリを複数有するバッファ部と、
前記命令制御部からロード命令が発行された場合、複数の前記エントリを検索して前記ロード命令の対象であるロード対象データが有るとき、前記ロード対象データのいずれか1つを選択する選択処理部と、
前記選択処理部が選択したロード対象データを前記バッファ部から読み出して出力する読み出し制御部とを有し、
前記命令制御部は、前記ロード命令を発行する際、該ロード命令の直近の前記ストア命令に対して割り当てた前記エントリを示す情報を前記ロード命令に付加して発行し、
前記読み出し制御部は、前記エントリを示す情報によって指定される前記エントリに格納されているデータが前記ロード対象データである場合、該エントリからデータを読み出して出力することを特徴とする演算処理装置。 - 前記選択処理部は、
前記エントリ毎に格納されているデータが前記ロード対象データであるか否かを判定する判定部と、
前記判定部が前記ロード対象データであると判定したデータのいずれか1つを選択する決定部とを有することを特徴とする請求項1記載の演算処理装置。 - 前記命令制御部は、
前記エントリを示す情報を保持し、前記ストア命令に対して前記エントリを割り当てる制御を行う毎に保持する前記エントリを示す情報を更新する情報保持部を有し、
前記ロード命令を発行する際、前記情報保持部が保持している前記エントリを示す情報を前記ロード命令とともに出力することを特徴とする請求項1又は2記載の演算処理装置。 - 前記バッファ部は、前記ストア対象データを格納するエントリを複数有するストアバッファ部、及び前記ストアバッファ部と前記キャッシュメモリとの間で該ストア対象データを格納するエントリを複数有するライトバッファ部を有し、
前記選択処理部が前記ロード対象データを選択してから、所定の期間は前記ストアバッファ部から前記ライトバッファ部へのデータの書き込みを抑止する書き込み制御部を有することを特徴とする請求項1〜3の何れか1項に記載の演算処理装置。 - 前記書き込み制御部は、前記ストアバッファ部から前記ライトバッファ部へのデータの書き込みの抑止を解除してから、所定の期間は前記ストアバッファ部から前記ライトバッファ部へのデータの書き込みの抑止を禁止することを特徴とする請求項4記載の演算処理装置。
- 前記選択処理部による複数の前記エントリの検索及び前記ロード対象データの選択と、前記読み出し制御部による前記バッファ部からの前記ロード対象データの読み出しとを、並行して実行することを特徴とする請求項1〜5の何れか1項に記載の演算処理装置。
- 命令を発行する命令制御部と、
前記命令制御部から発行されるストア命令の対象であるストア対象データがストアされるキャッシュメモリと、
前記命令制御部と前記キャッシュメモリとの間で前記ストア対象データを格納するエントリを複数有するストアバッファ部、及び前記ストアバッファ部と前記キャッシュメモリとの間で該ストア対象データを格納するエントリを複数有するライトバッファ部を有するバッファ部と、
前記命令制御部からロード命令が発行された場合、複数の前記エントリを検索して前記ロード命令の対象であるロード対象データが有るとき、前記ロード対象データのいずれか1つを選択する選択処理部と、
前記選択処理部が選択したロード対象データを前記バッファ部から読み出して出力する読み出し制御部と、
前記選択処理部が前記ロード対象データを選択してから、所定の期間は前記ストアバッファ部から前記ライトバッファ部へのデータの書き込みを抑止する書き込み制御部とを有することを特徴とする演算処理装置。 - 前記書き込み制御部は、前記ストアバッファ部から前記ライトバッファ部へのデータの書き込みの抑止を解除してから、所定の期間は前記ストアバッファ部から前記ライトバッファ部へのデータの書き込みの抑止を禁止することを特徴とする請求項7記載の演算処理装置。
- 前記選択処理部による複数の前記エントリの検索及び前記ロード対象データの選択と、前記読み出し制御部による前記バッファ部からの前記ロード対象データの読み出しとを、並行して実行することを特徴とする請求項7又は8記載の演算処理装置。
- 命令を発行する命令制御部と、前記命令制御部から発行されるストア命令の対象であるストア対象データがストアされるキャッシュメモリと、前記命令制御部と前記キャッシュメモリとの間で、前記ストア対象データを格納するエントリを複数有するバッファ部とを有する演算処理装置の制御方法であって、
前記命令制御部からロード命令が発行された場合、複数の前記エントリを検索して前記ロード命令の対象であるロード対象データが有るとき、前記ロード対象データのいずれか1つを選択し、
前記選択したロード対象データを前記バッファ部から読み出して出力し、
かつ、前記命令制御部が前記ロード命令を発行する際、該ロード命令の直近の前記ストア命令に対して割り当てた前記エントリを示す情報を前記ロード命令に付加して発行し、前記エントリを示す情報によって指定される前記エントリに格納されているデータが前記ロード対象データである場合、該エントリからデータを読み出して出力することを特徴とする演算処理装置の制御方法。 - 命令を発行する命令制御部と、前記命令制御部から発行されるストア命令の対象であるストア対象データがストアされるキャッシュメモリと、前記命令制御部と前記キャッシュメモリとの間で前記ストア対象データを格納するエントリを複数有するストアバッファ部、及び前記ストアバッファ部と前記キャッシュメモリとの間で該ストア対象データを格納するエントリを複数有するライトバッファ部を有するバッファ部とを有する演算処理装置の制御方法であって、
前記命令制御部からロード命令が発行された場合、複数の前記エントリを検索して前記ロード命令の対象であるロード対象データが有るとき、前記ロード対象データのいずれか1つを選択し、
前記選択したロード対象データを前記バッファ部から読み出して出力し、
前記ロード対象データを選択してから、所定の期間は前記ストアバッファ部から前記ライトバッファ部へのデータの書き込みを抑止することを特徴とする演算処理装置の制御方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016082197A JP6680978B2 (ja) | 2016-04-15 | 2016-04-15 | 演算処理装置及び演算処理装置の制御方法 |
US15/415,941 US10146441B2 (en) | 2016-04-15 | 2017-01-26 | Arithmetic processing device and method for controlling arithmetic processing device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016082197A JP6680978B2 (ja) | 2016-04-15 | 2016-04-15 | 演算処理装置及び演算処理装置の制御方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2017191561A JP2017191561A (ja) | 2017-10-19 |
JP6680978B2 true JP6680978B2 (ja) | 2020-04-15 |
Family
ID=60038146
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016082197A Active JP6680978B2 (ja) | 2016-04-15 | 2016-04-15 | 演算処理装置及び演算処理装置の制御方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US10146441B2 (ja) |
JP (1) | JP6680978B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108255417B (zh) * | 2017-11-30 | 2020-11-24 | 平安科技(深圳)有限公司 | 数据访问方法、电子装置及可读存储介质 |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0812646B2 (ja) * | 1989-03-03 | 1996-02-07 | 三菱電機株式会社 | 半導体集積回路 |
JP3400824B2 (ja) * | 1992-11-06 | 2003-04-28 | 三菱電機株式会社 | 半導体記憶装置 |
DE69830834T2 (de) * | 1998-01-20 | 2006-01-26 | Fujitsu Ltd., Kawasaki | Datenspeicheranordnung und Steuerverfahren dafür |
US6266744B1 (en) * | 1999-05-18 | 2001-07-24 | Advanced Micro Devices, Inc. | Store to load forwarding using a dependency link file |
JP3498673B2 (ja) * | 2000-04-05 | 2004-02-16 | 日本電気株式会社 | 記憶装置 |
WO2003085677A1 (fr) * | 2002-04-05 | 2003-10-16 | Renesas Technology Corp. | Memoire non volatile |
US7519772B2 (en) * | 2003-12-02 | 2009-04-14 | Silverbrook Research Pty Ltd | Method of updating IC cache |
JP4128551B2 (ja) | 2004-07-29 | 2008-07-30 | 富士通株式会社 | 情報処理装置及びストア命令制御方法 |
JP2006048163A (ja) * | 2004-07-30 | 2006-02-16 | Fujitsu Ltd | ストアデータ制御装置およびストアデータ制御方法 |
JP2006163801A (ja) * | 2004-12-07 | 2006-06-22 | Canon Inc | 情報記録再生装置 |
US7398361B2 (en) * | 2005-08-30 | 2008-07-08 | P.A. Semi, Inc. | Combined buffer for snoop, store merging, load miss, and writeback operations |
US7600077B2 (en) * | 2007-01-10 | 2009-10-06 | Arm Limited | Cache circuitry, data processing apparatus and method for handling write access requests |
JP5417879B2 (ja) * | 2009-02-17 | 2014-02-19 | 富士通セミコンダクター株式会社 | キャッシュ装置 |
WO2012117435A1 (en) * | 2011-02-28 | 2012-09-07 | Hitachi, Ltd. | Storage apparatus and data processing method of the same |
WO2012127631A1 (ja) * | 2011-03-22 | 2012-09-27 | 富士通株式会社 | 演算処理装置、情報処理装置および演算処理装置の制御方法 |
JP6011194B2 (ja) * | 2012-09-21 | 2016-10-19 | 富士通株式会社 | 演算処理装置及び演算処理装置の制御方法 |
-
2016
- 2016-04-15 JP JP2016082197A patent/JP6680978B2/ja active Active
-
2017
- 2017-01-26 US US15/415,941 patent/US10146441B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US10146441B2 (en) | 2018-12-04 |
JP2017191561A (ja) | 2017-10-19 |
US20170300230A1 (en) | 2017-10-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7111126B2 (en) | Apparatus and method for loading data values | |
JP4973730B2 (ja) | 演算処理装置及び演算処理装置の制御方法 | |
JP6011194B2 (ja) | 演算処理装置及び演算処理装置の制御方法 | |
US7734897B2 (en) | Allocation of memory access operations to memory access capable pipelines in a superscalar data processing apparatus and method having a plurality of execution threads | |
US20150154045A1 (en) | Contention management for a hardware transactional memory | |
US10817302B2 (en) | Processor support for bypassing vector source operands | |
WO2009067219A1 (en) | Contention management for a hardware transactional memory | |
JP6260303B2 (ja) | 演算処理装置及び演算処理装置の制御方法 | |
KR102524565B1 (ko) | 로드 스토어 유닛들을 바이패싱하여 스토어 및 로드 추적 | |
US11132202B2 (en) | Cache control circuitry and methods | |
KR20080036940A (ko) | 파이프라인 구조를 갖는 캐시 메모리 및 이를 제어하는방법 | |
JP6179369B2 (ja) | 演算処理装置及び演算処理装置の制御方法 | |
US20060224870A1 (en) | Information processing device | |
JPWO2008155829A1 (ja) | 情報処理装置,キャッシュメモリ制御装置およびメモリアクセス順序保証方法 | |
JP6680978B2 (ja) | 演算処理装置及び演算処理装置の制御方法 | |
US11003581B2 (en) | Arithmetic processing device and arithmetic processing method of controlling prefetch of cache memory | |
JP7020304B2 (ja) | 演算処理装置及び演算処理装置の制御方法 | |
US10430342B2 (en) | Optimizing thread selection at fetch, select, and commit stages of processor core pipeline | |
US20100100709A1 (en) | Instruction control apparatus and instruction control method | |
JP6740719B2 (ja) | 情報処理装置、情報処理方法、およびプログラム | |
US10031751B2 (en) | Arithmetic processing device and method for controlling arithmetic processing device | |
WO2015100061A1 (en) | Load synchronization with streaming thread cohorts | |
US10996954B2 (en) | Calculation processing apparatus and method for controlling calculation processing apparatus | |
US7996655B2 (en) | Multiport execution target delay queue FIFO array | |
TWI809580B (zh) | 用於派發載入/儲存指令的微處理器和方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20190115 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20190626 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20190730 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20190930 |
|
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: 20200218 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20200302 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6680978 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |