JP6011194B2 - 演算処理装置及び演算処理装置の制御方法 - Google Patents
演算処理装置及び演算処理装置の制御方法 Download PDFInfo
- Publication number
- JP6011194B2 JP6011194B2 JP2012208692A JP2012208692A JP6011194B2 JP 6011194 B2 JP6011194 B2 JP 6011194B2 JP 2012208692 A JP2012208692 A JP 2012208692A JP 2012208692 A JP2012208692 A JP 2012208692A JP 6011194 B2 JP6011194 B2 JP 6011194B2
- Authority
- JP
- Japan
- Prior art keywords
- store instruction
- flag
- write
- cache
- instruction
- 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.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims description 47
- 230000005764 inhibitory process Effects 0.000 claims description 8
- 230000001629 suppression Effects 0.000 claims description 5
- 101000889335 Bombyx mori Trypsin inhibitor Proteins 0.000 description 35
- 238000010586 diagram Methods 0.000 description 2
- 230000000717 retained effect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
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/0844—Multiple simultaneous or quasi-simultaneous cache accessing
- G06F12/0855—Overlapped cache accessing, e.g. pipeline
-
- 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/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3824—Operand accessing
-
- 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, look ahead
- G06F9/3854—Instruction completion, e.g. retiring, committing or graduating
- G06F9/3858—Result writeback, i.e. updating the architectural state or memory
-
- 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
Description
演算処理装置では、ロード命令やストア命令が実行されると、その命令単位でキャッシュメモリに対する読み書きを行っていた。そのため、ストリームアクセスでは、連続したデータ領域に対して、キャッシュパイプライン処理やキャッシュメモリに対する読み書き処理が命令単位で繰り返すように行われていた。
フラグ設定部21は、ストリームアクセスが完了し、同一のデータ領域に対する後続のストア命令がないと判定する。このストア命令CSTIによるキャッシュ書き込み処理要求をキャッシュ書き込み処理キュー13のエントリに登録するとき、当該エントリからのキャッシュ書き込み処理要求の出力を可能にするために、フラグ設定部21は、当該エントリのストリームウェイトフラグの値を“0”に設定する。
フラグ設定部21は、ストリームアクセスではなく、同一のデータ領域に対する後続のストア命令がないと判定する。このストア命令CSTIによるキャッシュ書き込み処理要求をキャッシュ書き込み処理キュー13のエントリに登録するとき、当該エントリからのキャッシュ書き込み処理要求の出力を可能にするために、フラグ設定部21は、当該エントリのストリームウェイトフラグの値を“0”に設定する。
ストリームフラグSFLG及びストリーム完了フラグSCFLGが付加されたコミット済みストア命令CSTIがキャッシュ書き込み処理キュー13に入力されると、フラグ設定部21がストリームフラグSFLGの値を確認する(S11)。ストリームフラグSFLGの値が“0”であれば、フラグ設定部21が非ストリームアクセスであると判定してストリームウェイトフラグの値が“0”に設定され、ストア命令CSTIによるキャッシュ書き込み処理要求がエントリに登録される(S12)。
12 ロード・ストア命令キュー
13 キャッシュ書き込み処理キュー
14 パイプライン処理発行部・調停部
15 パイプライン実行制御部
16 キャッシュメモリ部
21 フラグ設定部
22 エントリ部
23 ストアデータ
24 アドレス
27 ストリームウェイトフラグ
28 パイプライン投入要求選択部
Claims (7)
- プログラムをデコードし、デコード結果に応じて命令を発行する命令発行部と、
キャッシュ書込み抑止フラグを設けた複数のエントリを有し、前記命令発行部から発行された前記命令がストア命令である場合に、キャッシュメモリに対する当該ストア命令による書き込み処理要求を前記エントリに登録し、登録されている書き込み処理要求の内からキャッシュ書込み抑止フラグが非設定状態の書き込み処理要求を出力するバッファ部と、
前記バッファ部から出力された書き込み処理要求を受けて、前記キャッシュメモリに対しデータ書き込みに係るパイプライン処理を行うパイプライン処理部とを備え、
前記バッファ部は、供給される前記ストア命令に付加されている第1のフラグが設定されているとともに第2のフラグが設定されてなく、かつ当該ストア命令に示されるアクセスアドレス及びデータ長に基づいて、当該ストア命令が1回の前記パイプライン処理で書き込み可能な連続データ長における最後のデータに係るストア命令でないと判断した場合には、当該ストア命令と同一のデータ領域に対する後続のストア命令があると判断して、前記キャッシュ書込み抑止フラグを設定状態にし前記ストア命令による書き込み処理要求を前記エントリに登録するとともに、同一のデータ領域に対する前記ストア命令による書き込み処理要求を1つの書き込み処理要求にまとめて保持することを特徴とする演算処理装置。 - 前記バッファ部は、供給される前記ストア命令に付加されている前記第1のフラグ及び前記第2のフラグがともに設定されている場合には、当該ストア命令が同一のデータ領域に対する前記ストア命令の内の最後のストア命令であると判断して、前記ストア命令による書き込み処理要求を前記エントリに登録するときに前記キャッシュ書込み抑止フラグを非設定状態にすることを特徴とする請求項1記載の演算処理装置。
- 前記バッファ部は、供給される前記ストア命令に付加されている第1のフラグが設定されているとともに第2のフラグが設定されてなく、かつ当該ストア命令に示されるアクセスアドレス及びデータ長に基づいて、当該ストア命令が1回の前記パイプライン処理で書き込み可能な連続データ長における最後のデータに係るストア命令であると判断した場合には、前記ストア命令による書き込み処理要求を前記エントリに登録するときに前記キャッシュ書込み抑止フラグを非設定状態にすることを特徴とする請求項2記載の演算処理装置。
- 前記第1のフラグは、連続したデータ領域に対する連続アクセスであるストリームアクセスを示すフラグであることを特徴とする請求項1〜3の何れか1項に記載の演算処理装置。
- 前記第1のフラグは、連続したデータ領域に対する連続アクセスであるストリームアクセスを示すフラグであり、
前記第2のフラグは、前記ストリームアクセスの完了を示すフラグであることを特徴とする請求項2又は3記載の演算処理装置。 - 演算処理装置の命令発行部がプログラムをデコードしてデコード結果に応じた命令を発行し、
前記発行された命令がストア命令である場合に、キャッシュ書込み抑止フラグを設けた複数のエントリを有する前記演算処理装置のバッファ部が、キャッシュメモリに対する当該ストア命令による書き込み処理要求を前記エントリに登録し、
前記バッファ部が、前記エントリに登録されている書き込み処理要求の内から前記キャッシュ書込み抑止フラグが非設定状態の書き込み処理要求を出力し、
前記演算処理装置のパイプライン処理部が、前記出力された書き込み処理要求を受けて、前記キャッシュメモリに対しデータ書き込みに係るパイプライン処理を行い、
前記バッファ部が、前記エントリに前記書き込み処理要求を登録する際、前記ストア命令に付加されている第1のフラグが設定されているとともに第2のフラグが設定されてなく、かつ当該ストア命令に示されるアクセスアドレス及びデータ長に基づいて、当該ストア命令が1回の前記パイプライン処理で書き込み可能な連続データ長における最後のデータに係るストア命令でないと判断した場合には、当該ストア命令と同一のデータ領域に対する後続のストア命令があると判断して、前記キャッシュ書込み抑止フラグを設定状態にし、同一のデータ領域に対する前記ストア命令による書き込み処理要求を1つの書き込み処理要求にまとめて保持することを特徴とする演算処理装置の制御方法。 - 前記演算処理装置のバッファ部が、前記キャッシュ書込み抑止フラグが設定状態で登録された場合であって、前記書き込み処理要求が前記キャッシュ書込み抑止フラグが設定状態のまま所定期間が経過したとき、又は、前記演算処理装置のバッファ部のエントリに空きがなくなったとき、前記キャッシュ書込み抑止フラグを初期化することを特徴とする請求項6記載の演算処理装置の制御方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012208692A JP6011194B2 (ja) | 2012-09-21 | 2012-09-21 | 演算処理装置及び演算処理装置の制御方法 |
US13/950,333 US20140089599A1 (en) | 2012-09-21 | 2013-07-25 | Processor and control method of processor |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012208692A JP6011194B2 (ja) | 2012-09-21 | 2012-09-21 | 演算処理装置及び演算処理装置の制御方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2014063385A JP2014063385A (ja) | 2014-04-10 |
JP6011194B2 true JP6011194B2 (ja) | 2016-10-19 |
Family
ID=50340088
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012208692A Expired - Fee Related JP6011194B2 (ja) | 2012-09-21 | 2012-09-21 | 演算処理装置及び演算処理装置の制御方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20140089599A1 (ja) |
JP (1) | JP6011194B2 (ja) |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105320460A (zh) * | 2014-06-27 | 2016-02-10 | 中兴通讯股份有限公司 | 一种写性能优化方法、装置及存储系统 |
JP2016028319A (ja) * | 2014-07-08 | 2016-02-25 | 富士通株式会社 | アクセス制御プログラム、アクセス制御装置及びアクセス制御方法 |
US9858189B2 (en) * | 2015-06-24 | 2018-01-02 | International Business Machines Corporation | Hybrid tracking of transaction read and write sets |
JP6680978B2 (ja) * | 2016-04-15 | 2020-04-15 | 富士通株式会社 | 演算処理装置及び演算処理装置の制御方法 |
US10031810B2 (en) * | 2016-05-10 | 2018-07-24 | International Business Machines Corporation | Generating a chain of a plurality of write requests |
US10067717B2 (en) | 2016-05-10 | 2018-09-04 | International Business Machines Corporation | Processing a chain of a plurality of write requests |
US10613771B2 (en) | 2017-02-27 | 2020-04-07 | International Business Machines Corporation | Processing a write of records to maintain atomicity for writing a defined group of records to multiple tracks |
US10606719B2 (en) * | 2017-02-27 | 2020-03-31 | International Business Machines Corporation | Mirroring writes of records to maintain atomicity for writing a defined group of records to multiple tracks |
CN107239237A (zh) * | 2017-06-28 | 2017-10-10 | 阿里巴巴集团控股有限公司 | 数据写入方法及装置和电子设备 |
US20210055954A1 (en) * | 2018-02-02 | 2021-02-25 | Dover Microsystems, Inc. | Systems and methods for post cache interlocking |
US11409530B2 (en) * | 2018-08-16 | 2022-08-09 | Arm Limited | System, method and apparatus for executing instructions |
JP7151439B2 (ja) * | 2018-12-06 | 2022-10-12 | 富士通株式会社 | 演算処理装置および演算処理装置の制御方法 |
CN109918043B (zh) * | 2019-03-04 | 2020-12-08 | 上海熠知电子科技有限公司 | 一种基于虚拟通道的运算单元共享方法和系统 |
US11921637B2 (en) | 2019-05-24 | 2024-03-05 | Texas Instruments Incorporated | Write streaming with cache write acknowledgment in a processor |
JP2021015384A (ja) * | 2019-07-10 | 2021-02-12 | 富士通株式会社 | 情報処理回路、情報処理装置、情報処理方法及び情報処理プログラム |
CN110688155A (zh) * | 2019-09-11 | 2020-01-14 | 上海高性能集成电路设计中心 | 一种访问不可缓存区域的存储指令的合并方法 |
US11321354B2 (en) * | 2019-10-01 | 2022-05-03 | Huawei Technologies Co., Ltd. | System, computing node and method for processing write requests |
CN114637609B (zh) * | 2022-05-20 | 2022-08-12 | 沐曦集成电路(上海)有限公司 | 基于冲突检测的gpu的数据获取系统 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE69130519T2 (de) * | 1990-06-29 | 1999-06-10 | Digital Equipment Corp | Hochleistungsfähiger Multiprozessor mit Gleitkommaeinheit und Verfahren zu seinem Betrieb |
DE69130495T2 (de) * | 1990-06-29 | 1999-06-24 | Digital Equipment Corp | Umwandlung der Befehle von internen Prozessorregistern in I/O-Adressraum |
DE69127936T2 (de) * | 1990-06-29 | 1998-05-07 | Digital Equipment Corp | Busprotokoll für Prozessor mit write-back cache |
US6643765B1 (en) * | 1995-08-16 | 2003-11-04 | Microunity Systems Engineering, Inc. | Programmable processor with group floating point operations |
US7301541B2 (en) * | 1995-08-16 | 2007-11-27 | Microunity Systems Engineering, Inc. | Programmable processor and method with wide operations |
US5860107A (en) * | 1996-10-07 | 1999-01-12 | International Business Machines Corporation | Processor and method for store gathering through merged store operations |
ATE557342T1 (de) * | 1998-08-24 | 2012-05-15 | Microunity Systems Eng | Prozessor und verfahren zur matrixmultiplikation mit einem breiten operand |
JP2006048163A (ja) * | 2004-07-30 | 2006-02-16 | Fujitsu Ltd | ストアデータ制御装置およびストアデータ制御方法 |
US8458282B2 (en) * | 2007-06-26 | 2013-06-04 | International Business Machines Corporation | Extended write combining using a write continuation hint flag |
JP2009134391A (ja) * | 2007-11-29 | 2009-06-18 | Renesas Technology Corp | ストリーム処理装置、ストリーム処理方法及びデータ処理システム |
JP4569628B2 (ja) * | 2007-12-28 | 2010-10-27 | 日本電気株式会社 | ロードストアキューの制御方法及びその制御システム |
US9201655B2 (en) * | 2008-03-19 | 2015-12-01 | International Business Machines Corporation | Method, computer program product, and hardware product for eliminating or reducing operand line crossing penalty |
JP2010134628A (ja) * | 2008-12-03 | 2010-06-17 | Renesas Technology Corp | メモリコントローラおよびデータ処理装置 |
-
2012
- 2012-09-21 JP JP2012208692A patent/JP6011194B2/ja not_active Expired - Fee Related
-
2013
- 2013-07-25 US US13/950,333 patent/US20140089599A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
US20140089599A1 (en) | 2014-03-27 |
JP2014063385A (ja) | 2014-04-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6011194B2 (ja) | 演算処理装置及び演算処理装置の制御方法 | |
US11853763B2 (en) | Backward compatibility by restriction of hardware resources | |
US7793079B2 (en) | Method and system for expanding a conditional instruction into a unconditional instruction and a select instruction | |
US10235219B2 (en) | Backward compatibility by algorithm matching, disabling features, or throttling performance | |
KR101183651B1 (ko) | 실행 유닛 내의 데이터 전달을 위한 시스템 및 방법 | |
US8984261B2 (en) | Store data forwarding with no memory model restrictions | |
US6321326B1 (en) | Prefetch instruction specifying destination functional unit and read/write access mode | |
JP4230504B2 (ja) | データプロセッサ | |
US11132202B2 (en) | Cache control circuitry and methods | |
JP2009099097A (ja) | データ処理装置 | |
JPH0496825A (ja) | データ・プロセッサ | |
JP2008107983A (ja) | キャッシュメモリ | |
JP2532300B2 (ja) | 並列処理装置における命令供給装置 | |
GB2540940A (en) | An apparatus and method for transferring a plurality of data structures between memory and one or more vectors of data elements stored in a register bank | |
JP4243271B2 (ja) | データ処理装置およびデータ処理方法 | |
JPH04153734A (ja) | 並列処理装置 | |
JP7020304B2 (ja) | 演算処理装置及び演算処理装置の制御方法 | |
US20150052306A1 (en) | Processor and control method of processor | |
US20080282033A1 (en) | Processing function connected to processor memory hierarchy | |
JP5229383B2 (ja) | プリフェッチ要求回路 | |
JP6344022B2 (ja) | 演算処理装置および演算処理装置の制御方法 | |
JP6340887B2 (ja) | 演算処理装置及び演算処理装置の制御方法 | |
JP2021166010A (ja) | 演算処理装置 | |
JP2001243066A (ja) | パイプライン処理方法並びにその方法を利用するパイプライン処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20150604 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20160527 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20160607 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20160801 |
|
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: 20160823 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20160905 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6011194 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |