JP2010257199A - プロセッサ及びプロセッサにおける命令発行の制御方法 - Google Patents
プロセッサ及びプロセッサにおける命令発行の制御方法 Download PDFInfo
- Publication number
- JP2010257199A JP2010257199A JP2009106227A JP2009106227A JP2010257199A JP 2010257199 A JP2010257199 A JP 2010257199A JP 2009106227 A JP2009106227 A JP 2009106227A JP 2009106227 A JP2009106227 A JP 2009106227A JP 2010257199 A JP2010257199 A JP 2010257199A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- instructions
- parallel
- execution units
- issued
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 28
- 238000001514 detection method Methods 0.000 claims description 24
- 230000001629 suppression Effects 0.000 claims description 8
- 238000010586 diagram Methods 0.000 description 6
- 239000000725 suspension Substances 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 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, 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, look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3853—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution of compound instructions
Abstract
【解決手段】プロセッサ1は、実行ユニット121〜124と、命令ユニット10を含む。命令ユニット10は、命令間の依存関係に基づいた並列発行可否判定を行うべき対象命令であるか否かを、命令ストリームに含まれる命令単位で識別する。そして、命令ユニット10は、命令ストリームに含まれる第1の命令が対象命令である場合に、第1の命令とこれに引き続く少なくとも1つの命令との間での依存関係の検出結果に基づいて、命令ユニット121〜124に並列発行する命令数を調整する。さらに、命令ユニット10は、第1の命令が対象命令でない場合に、第1の命令を含む予め定められた固定数の命令からなる命令グループを、命令グループ内での依存関係の検出結果に拘わらず無条件に実行ユニット121〜124に並列発行する。
【選択図】図1
Description
(a)命令間の依存関係に基づいた並列発行可否判定を行うべき対象命令であるか否かを、前記命令ストリームに含まれる命令単位で識別すること;
(b)前記命令ストリームに含まれる第1の命令が前記対象命令である場合、前記第1の命令とこれに引き続く少なくとも1つの命令との間での依存関係の検出結果に基づいて、前記複数の実行ユニットに並列発行する命令数を調整すること;及び
(c)前記第1の命令が前記対象命令でない場合、前記第1の命令を含む予め定められた固定数の命令からなる命令グループを、前記命令グループ内での依存関係の検出結果に拘わらず無条件に前記複数の実行ユニットに並列発行すること。
(a)命令間の依存関係に基づいた並列発行可否判定を行うべき対象命令であるか否かを、命令ストリームに含まれる命令単位で識別すること;
(b)前記命令ストリームに含まれる第1の命令が前記対象命令である場合、前記第1の命令とこれに引き続く少なくとも1つの命令との間での依存関係の検出結果に基づいて、前記複数の実行ユニットに並列発行する命令数を調整すること;及び
(c)前記第1の命令が前記対象命令でない場合、前記第1の命令を含む予め定められた固定数の命令からなる命令グループを、前記命令グループ内での依存関係の検出結果に拘わらず無条件に前記複数の実行ユニットに並列発行すること。
図1は、プロセッサ1の構成例を示すブロック図である。図1の例は、プロセッサ1は、命令ユニット10及び4つの実行ユニット121〜124を含む。
本実施の形態にかかるプロセッサ2は、各クロックサイクルでデコードされる命令グループ中の先頭命令が"通常命令"であるか"非通常命令"であるか否かに基づいて並列発行する命令数を調整する。例えば、プロセッサ2は、各クロックサイクルにおいて4命令単位でデコードを行い、このうち先頭命令(第1命令)が"非通常命令"である場合には、後続の第2〜第4命令が"通常命令"であるか"非通常命令"であるかに関わらず、4命令を無条件に発行する。つまり、プロセッサ2は、命令グループ中の1命令(具体的には先頭命令)のみの識別結果に基づいて、(i)並列発行する命令数を命令間の依存関係の検出結果に基づいて調整する動作と、(ii)予め定められた固定数の命令を無条件に並列発行する動作との切り替えを行う。
10 命令ユニット
11 実行制御部
13 レジスタファイル
100 命令バッファ
101〜104 命令デコーダ
105 命令種別検出部
106 命令数算出部
107 発行制御部
121〜124 実行ユニット
208 発行抑止部
Claims (14)
- 複数の実行ユニットと、
命令ストリームをデコードし、前記複数の実行ユニットへの命令発行処理を行うよう構成された命令ユニットと、
を備え、
前記命令発行処理は、
(a)命令間の依存関係に基づいた並列発行可否判定を行うべき対象命令であるか否かを、前記命令ストリームに含まれる命令単位で識別すること;
(b)前記命令ストリームに含まれる第1の命令が前記対象命令である場合、前記第1の命令とこれに引き続く少なくとも1つの命令との間での依存関係の検出結果に基づいて、前記複数の実行ユニットに並列発行する命令数を調整すること;及び
(c)前記第1の命令が前記対象命令でない場合、前記第1の命令を含む予め定められた固定数の命令からなる命令グループを、前記命令グループ内での依存関係の検出結果に拘わらず無条件に前記複数の実行ユニットに並列発行すること、
を含む、プロセッサ。 - 前記固定数はN(Nは2以上の整数)であり、前記処理(b)で並列発行される命令の最大数はM(MはNより小さい正の整数)個である、請求項1に記載のプロセッサ。
- 前記命令ストリームに含まれるN個の命令をクロックサイクル内で並行してデコードするデコード部と、
前記デコード部によってデコードされるN個の命令のうちの先頭命令が前記対象命令であるか否かを識別する命令種別識別部と、
前記先頭命令を含むM個の命令に対する並列発行可否判定を行うことにより、前記複数の実行ユニットに並列発行する命令数を調整する発行制御部と、
前記先頭命令が前記対象命令である場合に、前記デコード部によってデコードされるN個の命令のうち、前記M個の命令を除く他の(N−M)個の命令の前記複数の実行ユニットへの発行を抑止する発行抑止部と、
を備える、請求項2に記載のプロセッサ。 - 前記処理(c)を行う際に、前記命令ユニットは、前記第1の命令を除く前記命令グループ内の命令が前記対象命令であるか否かに拘わらず、前記命令グループを前記複数の実行ユニットに並列発行する、請求項1〜3のいずれか1項に記載のプロセッサ。
- 前記命令グループの先頭に位置する命令は、前記対象命令でないことを示す命令コードを含み、
前記命令グループの先頭を除く前記命令グループ内の命令の少なくとも一部は、前記対象命令であることを示す命令コードを含む、請求項1〜4のいずれか1項に記載のプロセッサ。 - 前記先頭命令が前記対象命令でない場合、前記発行抑止部は、前記(N−M)個の命令に前記対象命令が含まれるか否かに拘わらず、前記(N−M)個の命令を前記複数の実行ユニットに並列発行する、請求項3に記載のプロセッサ。
- 前記命令ユニットと前記複数の実行ユニットの間に配置され、前記命令ユニットから発行された命令と前記複数の実行ユニットで既に実行中の先行命令との間で依存関係を検出し、前記命令ユニットから発行された命令のうち前記先行命令との間で依存関係がある命令の実行を待機させるよう構成された実行制御部をさらに備える、請求項1〜6のいずれか1項に記載のプロセッサ。
- プロセッサが有する複数の実行ユニットに対する命令発行の制御方法であって、
(a)命令間の依存関係に基づいた並列発行可否判定を行うべき対象命令であるか否かを、命令ストリームに含まれる命令単位で識別すること;
(b)前記命令ストリームに含まれる第1の命令が前記対象命令である場合、前記第1の命令とこれに引き続く少なくとも1つの命令との間での依存関係の検出結果に基づいて、前記複数の実行ユニットに並列発行する命令数を調整すること;及び
(c)前記第1の命令が前記対象命令でない場合、前記第1の命令を含む予め定められた固定数の命令からなる命令グループを、前記命令グループ内での依存関係の検出結果に拘わらず無条件に前記複数の実行ユニットに並列発行すること、
を含む、制御方法。 - 前記固定数はN(Nは2以上の整数)であり、前記ステップ(b)で並列発行される命令の最大数はM(MはNより小さい正の整数)個である、請求項8に記載の方法。
- 前記ステップ(b)は、
前記命令ストリームに含まれるN個の命令のうちの先頭命令が前記対象命令であるか否かを識別すること;
前記先頭命令を含むM個の命令に対する並列発行可否判定を行うことにより、前記複数の実行ユニットに並列発行する命令数を調整すること;及び
前記先頭命令が前記対象命令である場合に、前記N個の命令のうち、前記M個の命令を除く他の(N−M)個の命令の前記複数の実行ユニットへの発行を抑止すること、
を含む、請求項9に記載の方法。 - 前記ステップ(c)では、前記第1の命令を除く前記命令グループ内の命令が前記対象命令であるか否かに拘わらず、前記命令グループが前記複数の実行ユニットに並列発行される、請求項8〜10のいずれか1項に記載の方法。
- 前記命令グループの先頭に位置する命令は、前記対象命令でないことを示す命令コードを含み、
前記命令グループの先頭を除く前記命令グループ内の命令の少なくとも一部は、前記対象命令であることを示す命令コードを含む、請求項8〜11のいずれか1項に記載の方法。 - 前記ステップ(c)は、
前記先頭命令が前記対象命令でない場合に、前記(N−M)個の命令に前記対象命令が含まれるか否かに拘わらず、前記(N−M)個の命令を前記複数の実行ユニットに並列発行すること、
を含む、請求項10に記載の方法。 - (d)前記命令ユニットから発行された命令と前記複数の実行ユニットで既に実行中の先行命令との間で依存関係を検出し、前記命令ユニットから発行された命令のうち前記先行命令との間で依存関係がある命令の実行を待機させること、
をさらに含む、請求項8〜13のいずれか1項に記載の方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009106227A JP2010257199A (ja) | 2009-04-24 | 2009-04-24 | プロセッサ及びプロセッサにおける命令発行の制御方法 |
US12/765,563 US20100274995A1 (en) | 2009-04-24 | 2010-04-22 | Processor and method of controlling instruction issue in processor |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009106227A JP2010257199A (ja) | 2009-04-24 | 2009-04-24 | プロセッサ及びプロセッサにおける命令発行の制御方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2010257199A true JP2010257199A (ja) | 2010-11-11 |
JP2010257199A5 JP2010257199A5 (ja) | 2012-04-26 |
Family
ID=42993150
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009106227A Pending JP2010257199A (ja) | 2009-04-24 | 2009-04-24 | プロセッサ及びプロセッサにおける命令発行の制御方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20100274995A1 (ja) |
JP (1) | JP2010257199A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10983790B2 (en) | 2018-04-17 | 2021-04-20 | Fujitsu Limited | Arithmetic processing unit and control method for arithmetic processing unit |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9733940B2 (en) * | 2014-11-17 | 2017-08-15 | International Business Machines Corporation | Techniques for instruction group formation for decode-time instruction optimization based on feedback |
US11314516B2 (en) * | 2018-01-19 | 2022-04-26 | Marvell Asia Pte, Ltd. | Issuing instructions based on resource conflict constraints in microprocessor |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0553805A (ja) * | 1991-08-29 | 1993-03-05 | Toshiba Corp | 電子計算機 |
JPH05257687A (ja) * | 1992-01-06 | 1993-10-08 | Hitachi Ltd | 並列演算機能を有する計算機 |
JPH07110769A (ja) * | 1993-10-13 | 1995-04-25 | Oki Electric Ind Co Ltd | Vliw型計算機 |
JP2000330790A (ja) * | 1999-05-03 | 2000-11-30 | Stmicroelectronics Sa | コンピュータシステム動作方法、コンピュータシステムにおける命令スケジューリング方法およびコンピュータシステム |
JP2000353091A (ja) * | 1999-05-03 | 2000-12-19 | Stmicroelectronics Sa | コンピュータシステムにおける命令実行方法およびコンピュータシステム |
US20060224862A1 (en) * | 2005-03-29 | 2006-10-05 | Muhammad Ahmed | Mixed superscalar and VLIW instruction issuing and processing method and system |
JP2009289142A (ja) * | 2008-05-30 | 2009-12-10 | Hiroshima Ichi | 能力可変細粒度並列プロセッサ |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2037708C (en) * | 1990-05-04 | 1998-01-20 | Richard J. Eickemeyer | General purpose compound apparatus for instruction-level parallel processors |
DE69430018T2 (de) * | 1993-11-05 | 2002-11-21 | Intergraph Corp | Befehlscachespeicher mit assoziativem Kreuzschienenschalter |
JP3730455B2 (ja) * | 1999-10-01 | 2006-01-05 | 富士通株式会社 | 情報処理装置及び情報処理方法 |
JP3564445B2 (ja) * | 2001-09-20 | 2004-09-08 | 松下電器産業株式会社 | プロセッサ、コンパイル装置及びコンパイル方法 |
US7523295B2 (en) * | 2005-03-21 | 2009-04-21 | Qualcomm Incorporated | Processor and method of grouping and executing dependent instructions in a packet |
US7526633B2 (en) * | 2005-03-23 | 2009-04-28 | Qualcomm Incorporated | Method and system for encoding variable length packets with variable instruction sizes |
-
2009
- 2009-04-24 JP JP2009106227A patent/JP2010257199A/ja active Pending
-
2010
- 2010-04-22 US US12/765,563 patent/US20100274995A1/en not_active Abandoned
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0553805A (ja) * | 1991-08-29 | 1993-03-05 | Toshiba Corp | 電子計算機 |
JPH05257687A (ja) * | 1992-01-06 | 1993-10-08 | Hitachi Ltd | 並列演算機能を有する計算機 |
JPH07110769A (ja) * | 1993-10-13 | 1995-04-25 | Oki Electric Ind Co Ltd | Vliw型計算機 |
JP2000330790A (ja) * | 1999-05-03 | 2000-11-30 | Stmicroelectronics Sa | コンピュータシステム動作方法、コンピュータシステムにおける命令スケジューリング方法およびコンピュータシステム |
JP2000353091A (ja) * | 1999-05-03 | 2000-12-19 | Stmicroelectronics Sa | コンピュータシステムにおける命令実行方法およびコンピュータシステム |
US20060224862A1 (en) * | 2005-03-29 | 2006-10-05 | Muhammad Ahmed | Mixed superscalar and VLIW instruction issuing and processing method and system |
JP2009289142A (ja) * | 2008-05-30 | 2009-12-10 | Hiroshima Ichi | 能力可変細粒度並列プロセッサ |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10983790B2 (en) | 2018-04-17 | 2021-04-20 | Fujitsu Limited | Arithmetic processing unit and control method for arithmetic processing unit |
US11231926B2 (en) | 2018-04-17 | 2022-01-25 | Fujitsu Limited | Arithmetic processing unit and control method for arithmetic processing unit |
Also Published As
Publication number | Publication date |
---|---|
US20100274995A1 (en) | 2010-10-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3103302B1 (en) | Method and apparatus for enabling a processor to generate pipeline control signals | |
JP6043374B2 (ja) | 動的アウトオブオーダプロセッサパイプラインを実装する方法および装置 | |
US7412591B2 (en) | Apparatus and method for switchable conditional execution in a VLIW processor | |
US7707390B2 (en) | Instruction issue control within a multi-threaded in-order superscalar processor | |
EP1886216B1 (en) | Controlling out of order execution pipelines using skew parameters | |
US7454598B2 (en) | Controlling out of order execution pipelines issue tagging | |
US9081564B2 (en) | Converting scalar operation to specific type of vector operation using modifier instruction | |
JP4841861B2 (ja) | 演算処理装置及びデータ転送処理の実行方法 | |
US6950926B1 (en) | Use of a neutral instruction as a dependency indicator for a set of instructions | |
US20170123798A1 (en) | Hardware-based run-time mitigation of blocks having multiple conditional branches | |
KR20150105199A (ko) | 데이터 처리장치 및 벡터 오퍼랜드를 처리하는 방법 | |
CN108920190B (zh) | 用于确定从其恢复指令执行的恢复点的装置和方法 | |
JP2003058366A (ja) | 分岐予測なしで分岐ペナルティを減少させる新規なフェッチ分岐アーキテクチャ | |
JP2009070378A (ja) | アウト・オブ・オーダ・プロセッサにおける述語型実行のための方法および装置 | |
US20220035635A1 (en) | Processor with multiple execution pipelines | |
JP2010257199A (ja) | プロセッサ及びプロセッサにおける命令発行の制御方法 | |
US7143270B1 (en) | System and method for adding an instruction to an instruction set architecture | |
JP3915019B2 (ja) | Vliwプロセッサ、プログラム生成装置、および記録媒体 | |
KR20180126518A (ko) | 벡터 명령 처리 | |
JP5573038B2 (ja) | マルチスレッドプロセッサ及びプログラム | |
JP3795449B2 (ja) | 制御フローコードの分離によるプロセッサの実現方法及びそれを用いたマイクロプロセッサ | |
JP5598114B2 (ja) | 演算ユニット | |
JP2000099328A (ja) | プロセッサ及びその実行制御方法 | |
Far | Out-of-order Superscalar | |
WO2017072615A1 (en) | Hardware-based run-time mitigation of conditional branches |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120312 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20120312 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20130812 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130820 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20131210 |