JP5436033B2 - プロセッサ - Google Patents
プロセッサ Download PDFInfo
- Publication number
- JP5436033B2 JP5436033B2 JP2009113996A JP2009113996A JP5436033B2 JP 5436033 B2 JP5436033 B2 JP 5436033B2 JP 2009113996 A JP2009113996 A JP 2009113996A JP 2009113996 A JP2009113996 A JP 2009113996A JP 5436033 B2 JP5436033 B2 JP 5436033B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- ready
- instructions
- register
- group
- 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
- 239000000872 buffer Substances 0.000 claims description 77
- 238000001514 detection method Methods 0.000 claims description 42
- 238000000605 extraction Methods 0.000 claims description 3
- 239000000284 extract Substances 0.000 claims description 2
- 238000000034 method Methods 0.000 description 23
- 238000010586 diagram Methods 0.000 description 8
- 230000008569 process Effects 0.000 description 6
- 230000007246 mechanism Effects 0.000 description 4
- 230000015556 catabolic process Effects 0.000 description 2
- 238000006731 degradation reaction Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 1
- 230000000593 degrading effect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000006866 deterioration Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000001343 mnemonic effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000001629 suppression 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 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/3802—Instruction prefetching
- G06F9/3814—Implementation provisions of instruction buffers, e.g. prefetch buffer; banks
-
- 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/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
Description
ープ(同一サイクルで発行される命令のグループ)として定義され、その直後の命令が新たな発行グループの先頭命令コードとして定義される。また、Penaltyの列はペナルティサイクルを示し、その行までの発行グループが、次発行グループ以降の何れかの命令実行をストールさせる場合のペナルティサイクル数を示すものとする。
[ld r5,(r4+)] (第2命令グループ)
[mac acc,r3,r1] [ldp r2,r3,(r6+)] [br r0,0 L0001] (第3命令グループ)
[ld r5,(r4+)] [mac acc,r3,r1] (第2命令グループ)
[ldp r2,r3,(r6+)] [br r0,0 L0001] (第3命令グループ)
211〜213、411〜413 リソースデコード部
231、232、431、432 依存関係検出部
241〜243、441〜443 ディスパッチ部
451〜453 サイクルデコード部
461〜463 非レディ検出部
470 リソース状態記憶テーブル
Claims (9)
- 複数の命令を複数の演算器に同時発行可能なプロセッサであって、
複数の演算器と、
前記複数の演算器に発行する予定の複数の命令を格納する命令バッファと、
前記命令バッファに格納された複数の命令の中から前記複数の演算器に発行することが可能な命令のグループを決定するグループ決定部と、
前記グループ決定部で決定された前記グループに含まれる前記命令を、前記複数の演算器に発行するディスパッチ部とを備え、
前記グループ決定部は、
前記命令バッファに格納された命令ごとに、当該命令の前記演算器上での実行が完了するまでのサイクル数を抽出するサイクルデコード部と、
前記サイクルデコード部での抽出結果に基づいて、前記命令バッファに格納された命令ごとに、当該命令によって定義されるレジスタの定義が完了するまでに所定のサイクル数以上を要するレジスタを検出し、検出した前記レジスタを、次サイクルにおいて参照することができない非レディ状態であると判定する非レディ検出部と、
前記非レディ検出部における判定結果に基づいて、レジスタごとに、当該レジスタが非レディ状態であるか否かを記憶しているリソース状態記憶テーブルと、
前記命令バッファに格納された各命令の実行によって、定義又は参照されるレジスタの情報と実行される演算器の情報とを特定するリソースデコード部と、
前記リソースデコード部が特定した前記レジスタの情報及び前記演算器の情報に基づいて、命令間の依存関係を検出する依存関係検出部とを含み、
前記依存関係検出部は、
前記リソースデコード部が特定した前記レジスタの情報及び前記複数の演算器の情報に基づいて、前記命令バッファに格納された第1の命令がレジスタを定義し、前記命令バッファに格納された第2の命令が前記第1の命令の後に実行され、かつ前記レジスタを参照する場合、あるいは、前記第1の命令と前記第2の命令が同一の演算器で実行される場合に、前記第2の命令は、前記第1の命令との間に第1依存関係を有すると判断し、
前記リソース状態記憶テーブルを参照することにより、前記命令バッファに格納された第3の命令が、発行済みの第4の命令によって定義されるレジスタが非レディ状態であると判定された前記レジスタを参照する場合、又は、前記第3の命令と前記第4の命令が同一の演算器で実行される場合に、前記第3の命令は、前記第4の命令との間に第2依存関係を有すると判断し、
前記グループ決定部は、前記命令バッファに格納されている前記複数の命令のうち、前記第1依存関係及び前記第2依存関係のいずれをも有しない命令のグループを、前記複数の演算器に発行することが可能な命令のグループとして決定する
プロセッサ。 - 前記リソース状態記憶テーブルは、レジスタごとに、当該レジスタが次サイクルにおいて参照することができるレディ状態であるか否かを示すレディフラグと、当該レジスタの前記非レディ状態が継続するサイクル数を示す非レディ継続サイクル数とを記憶している
請求項1記載のプロセッサ。 - 前記リソース状態記憶テーブルは、前記ディスパッチ部により前記グループに含まれる前記命令が、前記複数の演算器に発行されるごとに、前記リソース状態記憶テーブルに記憶されている前記非レディ継続サイクル数を所定数減算する
請求項2記載のプロセッサ。 - 前記リソース状態記憶テーブルは、前記命令バッファに格納された複数の命令が同一レジスタを定義する場合、前記サイクルデコード部での抽出結果に基づいて、各命令の前記サイクル数のうち、最大のサイクル数を、前記リソース状態記憶テーブルに、前記同一レジスタに対応する前記非レディ継続サイクル数として格納する
請求項2又は3記載のプロセッサ。 - 前記リソース状態記憶テーブルに記憶されている前記レディフラグが既に前記非レディ状態を示しており、かつ前記非レディ継続サイクル数として既にサイクル数が設定されているレジスタについて、前記命令バッファに格納されている命令が当該レジスタを定義する場合には、前記命令バッファに格納されている前記命令の前記演算器上での実行が完了するまでのサイクル数が前記非レディ継続サイクル数よりも大きい場合にのみ、前記非レディ継続サイクル数に、前記命令バッファに格納されている前記命令の前記演算器上での実行が完了するまでのサイクル数を上書きする
請求項3記載のプロセッサ。 - 前記依存関係検出部は、前記リソース状態記憶テーブルの前記レディフラグを参照することにより前記第2依存関係を検出する
請求項2〜5のいずれか1項に記載のプロセッサ。 - 前記グループ決定部は、前記依存関係検出部により前記第1依存関係及び前記第2依存関係のいずれかが検出された場合、前記命令バッファに記憶されている命令のうち、検出された依存関係を有する命令よりも実行順で直前までの命令を、次サイクルに前記複数の演算器に発行することが可能な命令のグループとして決定する
請求項6記載のプロセッサ。 - 前記グループ決定部は、前記第2依存関係に基づいて、新たな前記グループを決定した場合、前記第2依存関係を求める際に参照した前記レディフラグに前記レディ状態であることを示す値を設定し、当該レディフラグに対応するエントリの前記非レディ継続サイクル数を0に設定する
請求項7記載のプロセッサ。 - 前記グループ決定部により、前記グループが決定された後、当該グループに含まれる命令の実行順で直後の命令を、次サイクルで発行される命令のグループの先頭命令とする
請求項7又は8に記載のプロセッサ。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009113996A JP5436033B2 (ja) | 2009-05-08 | 2009-05-08 | プロセッサ |
CN201080020018.8A CN102422262B (zh) | 2009-05-08 | 2010-04-23 | 处理器 |
PCT/JP2010/002939 WO2010128582A1 (ja) | 2009-05-08 | 2010-04-23 | プロセッサ |
US13/285,137 US20120047352A1 (en) | 2009-05-08 | 2011-10-31 | Processor |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009113996A JP5436033B2 (ja) | 2009-05-08 | 2009-05-08 | プロセッサ |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2010262542A JP2010262542A (ja) | 2010-11-18 |
JP5436033B2 true JP5436033B2 (ja) | 2014-03-05 |
Family
ID=43050093
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009113996A Expired - Fee Related JP5436033B2 (ja) | 2009-05-08 | 2009-05-08 | プロセッサ |
Country Status (4)
Country | Link |
---|---|
US (1) | US20120047352A1 (ja) |
JP (1) | JP5436033B2 (ja) |
CN (1) | CN102422262B (ja) |
WO (1) | WO2010128582A1 (ja) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102222108B (zh) * | 2011-06-28 | 2013-06-05 | 用友软件股份有限公司 | 脚本处理方法和脚本处理装置 |
US9710278B2 (en) | 2014-09-30 | 2017-07-18 | International Business Machines Corporation | Optimizing grouping of instructions |
CN105278915B (zh) * | 2015-01-15 | 2018-03-06 | 北京国睿中数科技股份有限公司 | 基于解耦‑签出操作的超标量处理器指令分配装置 |
CN108614736B (zh) | 2018-04-13 | 2021-03-02 | 杭州中天微***有限公司 | 实现资源索引替换的装置及处理器 |
CN113434169B (zh) * | 2021-06-22 | 2023-03-28 | 重庆长安汽车股份有限公司 | 一种基于依赖关系生成空中升级并行任务组的方法及*** |
CN114116015B (zh) * | 2022-01-21 | 2022-06-07 | 上海登临科技有限公司 | 用于管理硬件命令队列的方法及*** |
US12001848B2 (en) | 2022-01-30 | 2024-06-04 | Simplex Micro, Inc. | Microprocessor with time counter for statically dispatching instructions with phantom registers |
US11954491B2 (en) | 2022-01-30 | 2024-04-09 | Simplex Micro, Inc. | Multi-threading microprocessor with a time counter for statically dispatching instructions |
US20230350680A1 (en) * | 2022-04-29 | 2023-11-02 | Simplex Micro, Inc. | Microprocessor with baseline and extended register sets |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3146058B2 (ja) * | 1991-04-05 | 2001-03-12 | 株式会社東芝 | 並列処理型プロセッサシステムおよび並列処理型プロセッサシステムの制御方法 |
US5488729A (en) * | 1991-05-15 | 1996-01-30 | Ross Technology, Inc. | Central processing unit architecture with symmetric instruction scheduling to achieve multiple instruction launch and execution |
JPH06110688A (ja) * | 1991-06-13 | 1994-04-22 | Internatl Business Mach Corp <Ibm> | 複数の順序外れ命令を並行処理するためのコンピュータ・システム |
KR100309566B1 (ko) * | 1992-04-29 | 2001-12-15 | 리패치 | 파이프라인프로세서에서다중명령어를무리짓고,그룹화된명령어를동시에발행하고,그룹화된명령어를실행시키는방법및장치 |
US5761475A (en) * | 1994-12-15 | 1998-06-02 | Sun Microsystems, Inc. | Computer processor having a register file with reduced read and/or write port bandwidth |
US5958042A (en) * | 1996-06-11 | 1999-09-28 | Sun Microsystems, Inc. | Grouping logic circuit in a pipelined superscalar processor |
US6304955B1 (en) * | 1998-12-30 | 2001-10-16 | Intel Corporation | Method and apparatus for performing latency based hazard detection |
US6618802B1 (en) * | 1999-09-07 | 2003-09-09 | Hewlett-Packard Company, L.P. | Superscalar processing system and method for selectively stalling instructions within an issue group |
US20040158694A1 (en) * | 2003-02-10 | 2004-08-12 | Tomazin Thomas J. | Method and apparatus for hazard detection and management in a pipelined digital processor |
CN101180607B (zh) * | 2005-06-15 | 2011-08-03 | 松下电器产业株式会社 | 处理器 |
US20070101332A1 (en) * | 2005-10-28 | 2007-05-03 | International Business Machines Corporation | Method and apparatus for resource-based thread allocation in a multiprocessor computer system |
JP5209933B2 (ja) * | 2007-10-19 | 2013-06-12 | ルネサスエレクトロニクス株式会社 | データ処理装置 |
-
2009
- 2009-05-08 JP JP2009113996A patent/JP5436033B2/ja not_active Expired - Fee Related
-
2010
- 2010-04-23 WO PCT/JP2010/002939 patent/WO2010128582A1/ja active Application Filing
- 2010-04-23 CN CN201080020018.8A patent/CN102422262B/zh not_active Expired - Fee Related
-
2011
- 2011-10-31 US US13/285,137 patent/US20120047352A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
US20120047352A1 (en) | 2012-02-23 |
JP2010262542A (ja) | 2010-11-18 |
CN102422262A (zh) | 2012-04-18 |
CN102422262B (zh) | 2015-02-25 |
WO2010128582A1 (ja) | 2010-11-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5436033B2 (ja) | プロセッサ | |
US6216220B1 (en) | Multithreaded data processing method with long latency subinstructions | |
JP2518616B2 (ja) | 分岐方法 | |
US5790822A (en) | Method and apparatus for providing a re-ordered instruction cache in a pipelined microprocessor | |
KR101511837B1 (ko) | 벡터 분할 루프들의 성능 향상 | |
US9268569B2 (en) | Branch misprediction behavior suppression on zero predicate branch mispredict | |
US9298456B2 (en) | Mechanism for performing speculative predicated instructions | |
JP2007515715A (ja) | 命令キャッシュからラベル境界上のトレースキャッシュに遷移させる方法 | |
US9471324B2 (en) | Concurrent execution of heterogeneous vector instructions | |
US9389860B2 (en) | Prediction optimizations for Macroscalar vector partitioning loops | |
JP2006313422A (ja) | 演算処理装置及びデータ転送処理の実行方法 | |
US7523295B2 (en) | Processor and method of grouping and executing dependent instructions in a packet | |
CN105094747B (zh) | 基于smt的中央处理单元以及用于检测指令的数据相关性的装置 | |
US8977837B2 (en) | Apparatus and method for early issue and recovery for a conditional load instruction having multiple outcomes | |
US9098295B2 (en) | Predicting a result for an actual instruction when processing vector instructions | |
JP2001142701A (ja) | プロセッサにおけるパイプライン制御用メカニズムおよび方法 | |
KR100837400B1 (ko) | 멀티스레딩/비순차 병합 기법에 따라 처리하는 방법 및장치 | |
US6944750B1 (en) | Pre-steering register renamed instructions to execution unit associated locations in instruction cache | |
JP2004508607A (ja) | 例外ルーチンを有するプロセッサのレジスタライトトラフィックを減じる装置及び方法 | |
JP3915019B2 (ja) | Vliwプロセッサ、プログラム生成装置、および記録媒体 | |
JP3512707B2 (ja) | マイクロコンピュータ | |
US20090106534A1 (en) | System and Method for Implementing a Software-Supported Thread Assist Mechanism for a Microprocessor | |
JP2000148499A (ja) | スーパースカラ・プロセッサ | |
JP2003223318A (ja) | キュープロセッサにおける投機実行方法 | |
JP2003223331A (ja) | コンパイラ、および記録媒体 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20120312 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130604 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130717 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20131112 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20131115 |
|
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: 20131203 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20131210 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5436033 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313111 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
LAPS | Cancellation because of no payment of annual fees |