JP2016218855A - 演算処理装置及び演算処理装置の処理方法 - Google Patents
演算処理装置及び演算処理装置の処理方法 Download PDFInfo
- Publication number
- JP2016218855A JP2016218855A JP2015104724A JP2015104724A JP2016218855A JP 2016218855 A JP2016218855 A JP 2016218855A JP 2015104724 A JP2015104724 A JP 2015104724A JP 2015104724 A JP2015104724 A JP 2015104724A JP 2016218855 A JP2016218855 A JP 2016218855A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- entry
- output
- stored
- arithmetic
- 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
- 238000003672 processing method Methods 0.000 title claims description 12
- 101000727979 Homo sapiens Remodeling and spacing factor 1 Proteins 0.000 abstract description 26
- 102100029771 Remodeling and spacing factor 1 Human genes 0.000 abstract description 26
- 238000004904 shortening Methods 0.000 abstract 1
- 101100308578 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) RSF2 gene Proteins 0.000 description 51
- 101001076604 Homo sapiens Inhibin alpha chain Proteins 0.000 description 16
- 102100025885 Inhibin alpha chain Human genes 0.000 description 16
- 238000010586 diagram Methods 0.000 description 12
- 238000000034 method Methods 0.000 description 8
- 230000015654 memory Effects 0.000 description 6
- 102100037373 DNA-(apurinic or apyrimidinic site) endonuclease Human genes 0.000 description 1
- 101000806846 Homo sapiens DNA-(apurinic or apyrimidinic site) endonuclease Proteins 0.000 description 1
- 101000835083 Homo sapiens Tissue factor pathway inhibitor 2 Proteins 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 239000000725 suspension Substances 0.000 description 1
Images
Classifications
-
- 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/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
-
- 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/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3838—Dependency mechanisms, e.g. register scoreboarding
-
- 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/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3851—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
-
- 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/3867—Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
- G06F9/3869—Implementation aspects, e.g. pipeline latches; pipeline synchronisation and clocking
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
Abstract
【解決手段】リザベーションステーション207内の第1のエントリRSF2は、該エントリに記憶されている命令を第1の演算器FLAに出力する場合、第1のエントリRSF2に記憶されている命令の実行サイクル数が閾値以上である場合に、第2のエントリRSF1に対して第1の演算器FLAの使用不可信号を出力する。リザベーションステーション207は、第1の演算器FLAの使用不可信号が出力された後、使用不可中断条件を満たした場合に、第1の演算器FLAの実行を中断させ、第1の演算器FLAの状態を記憶素子に退避させ、第1の演算器FLAの使用不可信号の出力を中断させるコントローラ301を有する。第2のエントリRSF1は、第1の演算器FLAの使用不可信号の出力が中断の場合、第2のエントリRSF1に記憶されている命令を第1の演算器FLAに出力する。
【選択図】図3
Description
207 浮動小数点演算用リザベーションステーション
209 コミットスタックエントリ
214 記憶素子
215 浮動小数点更新バッファ
216 浮動小数点レジスタ
301 コントローラ
FLA,FLB 演算器
RSF1〜RSFn エントリ
Q0,Q1 キュー
Claims (10)
- 複数のスレッドの命令を実行する演算処理装置であって、
命令をデコードすることにより、前記デコードされた命令及びデコードされた前記命令に対応するスレッドの識別子を出力する命令デコーダと、
前記命令デコーダによりデコードされた命令及びデコードされた前記命令に対応するスレッドの識別子を複数のエントリのうちのいずれかに記憶するリザベーションステーションと、
前記リザベーションステーションに記憶されている命令を実行する第1の演算器とを有し、
前記リザベーションステーション内の前記複数のエントリのうちの第1のエントリは、前記第1のエントリに記憶されている命令を前記第1の演算器に出力する場合、前記第1のエントリに記憶されている命令の実行サイクル数が閾値以上である場合には、前記第1のエントリとは異なる第2のエントリに対して前記第1の演算器の使用不可信号を出力し、
前記リザベーションステーションは、前記第1の演算器の使用不可信号が出力された後、使用不可中断条件を満たした場合には、前記第1の演算器の実行を中断させ、前記第1の演算器の状態を記憶素子に退避させ、前記第1の演算器の使用不可信号の出力を中断させるコントローラを有し、
前記第2のエントリは、前記第2のエントリが記憶するスレッドの識別子が、前記第1のエントリが記憶するスレッドの識別子と異なり、かつ前記第2のエントリが記憶する命令が、前記リザベーションステーションの中で最も古い未終了の命令であり、かつ前記第1の演算器の使用不可信号の出力が中断されている場合、前記第2のエントリに記憶されている命令を前記第1の演算器に出力し、
前記第1の演算器は、前記第2のエントリが出力した命令の実行が終了すると、前記記憶素子に退避した状態に戻し、前記第1のエントリの命令の実行を再開することを特徴とする演算処理装置。 - 前記使用不可中断条件は、前記第1の演算器の使用不可信号が出力されてから一定時間経過していることの条件であることを特徴とする請求項1記載の演算処理装置。
- 前記使用不可中断条件は、前記第1のエントリが記憶する前記スレッドの識別子とは異なる前記スレッドの識別子のエントリの数が一定数以上であることの条件であることを特徴とする請求項1記載の演算処理装置。
- 前記第1の演算器は、前記第2のエントリが出力した命令の実行が終了すると、終了信号を前記コントローラに出力し、
前記コントローラは、前記終了信号を入力すると、前記第1の演算器の使用不可信号の出力を前記第1のエントリに再開させることを特徴とする請求項1〜3のいずれか1項に記載の演算処理装置。 - 前記第1のエントリは、前記第1の演算器が前記第1のエントリの命令の実行を終了すると、前記第1の演算器の使用不可信号の出力を終了することを特徴とする請求項4記載の演算処理装置。
- 前記第1のエントリは、前記第1のエントリが記憶する命令が、前記リザベーションステーションの中で最も古い未終了の命令であり、かつ前記第1のエントリに記憶されている命令の実行サイクル数が閾値以上である場合に、前記第1のエントリに記憶されている命令を前記第1の演算器に出力し、前記第2のエントリに対して前記第1の演算器の使用不可信号を出力することを特徴とする請求項1〜5のいずれか1項に記載の演算処理装置。
- さらに、前記命令デコーダによりデコードされた命令のうちの前記第1の演算器が実行する命令とは異なる種類の命令を実行する第2の演算器と、
前記命令デコーダによりデコードされた命令のうちの実行が終了していない命令の識別子を前記スレッドの識別子毎に順に記憶するキューとを有し、
前記リザベーションステーションは、前記第2の演算器が実行する命令を記憶せず、前記第1の演算器が実行する命令を記憶し、
前記キューは、前記第1及び第2の演算器が実行する命令の識別子を記憶し、
前記第1のエントリは、前記第1のエントリが記憶する前記スレッドの識別子に対応する前記キューの先頭の命令の識別子が前記第1のエントリが記憶する命令を示す場合、かつ前記第1のエントリに記憶されている命令の実行サイクル数が閾値以上である場合に、前記第1のエントリに記憶されている命令を前記第1の演算器に出力し、前記第2のエントリに対して前記第1の演算器の使用不可信号を出力することを特徴とする請求項1〜6のいずれか1項に記載の演算処理装置。 - さらに、前記第1の演算器の未確定の実行結果を記憶するバッファと、
前記第1の演算器の実行が終了すると、前記バッファに記憶されている実行結果を確定して記憶するレジスタとを有し、
前記第1の演算器は、前記バッファ内の実行結果のうちの使用可能な実行結果を用いて前記命令を実行することを特徴とする請求項7記載の演算処理装置。 - 前記第1の演算器は、浮動小数点演算器であることを特徴とする請求項1〜8のいずれか1項に記載の演算処理装置。
- 複数のスレッドの命令を実行する演算処理装置であって、
命令をデコードすることにより、前記デコードされた命令及びデコードされた前記命令に対応するスレッドの識別子を出力する命令デコーダと、
前記命令デコーダによりデコードされた命令及びデコードされた前記命令に対応するスレッドの識別子を複数のエントリのうちのいずれかに記憶するリザベーションステーションと、
前記リザベーションステーションに記憶されている命令を実行する第1の演算器とを有する演算処理装置の処理方法であって、
前記リザベーションステーション内の前記複数のエントリのうちの第1のエントリが、前記第1のエントリに記憶されている命令を前記第1の演算器に出力する場合、前記第1のエントリに記憶されている命令の実行サイクル数が閾値以上である場合には、前記第1のエントリとは異なる第2のエントリに対して前記第1の演算器の使用不可信号を出力し、
前記リザベーションステーション内のコントローラが、前記第1の演算器の使用不可信号が出力された後、使用不可中断条件を満たした場合には、前記第1の演算器の実行を中断させ、前記第1の演算器の状態を記憶素子に退避させ、前記第1の演算器の使用不可信号の出力を中断させ、
前記第2のエントリが、前記第2のエントリが記憶するスレッドの識別子が、前記第1のエントリが記憶するスレッドの識別子と異なり、かつ前記第2のエントリが記憶する命令が、前記リザベーションステーションの中で最も古い未終了の命令であり、かつ前記第1の演算器の使用不可信号の出力が中断されている場合、前記第2のエントリに記憶されている命令を前記第1の演算器に出力し、
前記第1の演算器が、前記第2のエントリが出力した命令の実行が終了すると、前記記憶素子に退避した状態に戻し、前記第1のエントリの命令の実行を再開することを特徴とする演算処理装置の処理方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015104724A JP6477248B2 (ja) | 2015-05-22 | 2015-05-22 | 演算処理装置及び演算処理装置の処理方法 |
US15/068,692 US9965283B2 (en) | 2015-05-22 | 2016-03-14 | Multi-threaded processor interrupting and saving execution states of complex instructions of a first thread to allow execution of an oldest ready instruction of a second thread |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015104724A JP6477248B2 (ja) | 2015-05-22 | 2015-05-22 | 演算処理装置及び演算処理装置の処理方法 |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2016218855A true JP2016218855A (ja) | 2016-12-22 |
JP2016218855A5 JP2016218855A5 (ja) | 2018-02-15 |
JP6477248B2 JP6477248B2 (ja) | 2019-03-06 |
Family
ID=57324564
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015104724A Active JP6477248B2 (ja) | 2015-05-22 | 2015-05-22 | 演算処理装置及び演算処理装置の処理方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9965283B2 (ja) |
JP (1) | JP6477248B2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US12099842B2 (en) | 2022-03-15 | 2024-09-24 | Fujitsu Limited | Arithmetic processing device and arithmetic processing method |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6237081B1 (en) * | 1998-12-16 | 2001-05-22 | International Business Machines Corporation | Queuing method and apparatus for facilitating the rejection of sequential instructions in a processor |
WO2008155799A1 (ja) * | 2007-06-20 | 2008-12-24 | Fujitsu Limited | 命令実行制御装置及び命令実行制御方法 |
US20130297910A1 (en) * | 2012-05-03 | 2013-11-07 | Jared C. Smolens | Mitigation of thread hogs on a threaded processor using a general load/store timeout counter |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6567839B1 (en) | 1997-10-23 | 2003-05-20 | International Business Machines Corporation | Thread switch control in a multithreaded processor system |
CN101681261B (zh) * | 2007-06-20 | 2014-07-16 | 富士通株式会社 | 运算处理装置及其控制方法 |
US20140181484A1 (en) * | 2012-12-21 | 2014-06-26 | James Callister | Mechanism to provide high performance and fairness in a multi-threading computer system |
US20160011874A1 (en) * | 2014-07-09 | 2016-01-14 | Doron Orenstein | Silent memory instructions and miss-rate tracking to optimize switching policy on threads in a processing device |
-
2015
- 2015-05-22 JP JP2015104724A patent/JP6477248B2/ja active Active
-
2016
- 2016-03-14 US US15/068,692 patent/US9965283B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6237081B1 (en) * | 1998-12-16 | 2001-05-22 | International Business Machines Corporation | Queuing method and apparatus for facilitating the rejection of sequential instructions in a processor |
WO2008155799A1 (ja) * | 2007-06-20 | 2008-12-24 | Fujitsu Limited | 命令実行制御装置及び命令実行制御方法 |
US20130297910A1 (en) * | 2012-05-03 | 2013-11-07 | Jared C. Smolens | Mitigation of thread hogs on a threaded processor using a general load/store timeout counter |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US12099842B2 (en) | 2022-03-15 | 2024-09-24 | Fujitsu Limited | Arithmetic processing device and arithmetic processing method |
Also Published As
Publication number | Publication date |
---|---|
US9965283B2 (en) | 2018-05-08 |
JP6477248B2 (ja) | 2019-03-06 |
US20160342415A1 (en) | 2016-11-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8464035B2 (en) | Instruction for enabling a processor wait state | |
US10078518B2 (en) | Intelligent context management | |
US9361111B2 (en) | Tracking speculative execution of instructions for a register renaming data store | |
JP6434791B2 (ja) | マルチスレッディングを支援するための演算ユニット、それを含むプロセッサ及びプロセッサの動作方法 | |
JP2006260571A (ja) | デュアルスレッドプロセッサ | |
JP2018005488A (ja) | 演算処理装置及び演算処理装置の制御方法 | |
JP2010527071A (ja) | マルチスレッド型プロセッサのためのスレッドデエンファシス命令 | |
US10372458B2 (en) | Method and apparatus for a self-clocked, event triggered superscalar processor | |
US20150082324A1 (en) | Efficient Interrupt Handling | |
JP5201140B2 (ja) | 同時マルチスレッドの命令完了制御装置 | |
US10102003B2 (en) | Intelligent context management | |
US11269647B2 (en) | Finish status reporting for a simultaneous multithreading processor using an instruction completion table | |
JP6477248B2 (ja) | 演算処理装置及び演算処理装置の処理方法 | |
JP2022549493A (ja) | リタイアキューの圧縮 | |
US9886396B2 (en) | Scalable event handling in multi-threaded processor cores | |
JP5088371B2 (ja) | 情報処理装置と負荷調停制御方法 | |
US10740102B2 (en) | Hardware mechanism to mitigate stalling of a processor core | |
JP2020091751A (ja) | 演算処理装置および演算処理装置の制御方法 | |
KR20100005686A (ko) | 쓰레드 스케줄링 장치 및 시스템 | |
JP7032647B2 (ja) | 演算処理装置及び演算処理装置の制御方法 | |
US20180088951A1 (en) | Instruction issue according to in-order or out-of-order execution modes | |
US12118355B2 (en) | Cache coherence validation using delayed fulfillment of L2 requests | |
JP2011134181A (ja) | 演算処理装置、情報処理装置及び演算処理装置のパイプライン制御方法 | |
JP2015036855A (ja) | 演算処理装置及び演算処理装置の制御方法 | |
US20150052334A1 (en) | Arithmetic processing device and control method of arithmetic processing device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20180105 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20180206 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20181128 |
|
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: 20190108 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20190121 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6477248 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: R3D02 |