JP5180285B2 - プロセッサにおいて実行ステージに先立って命令を実行するためのシステムおよび方法 - Google Patents
プロセッサにおいて実行ステージに先立って命令を実行するためのシステムおよび方法 Download PDFInfo
- Publication number
- JP5180285B2 JP5180285B2 JP2010501186A JP2010501186A JP5180285B2 JP 5180285 B2 JP5180285 B2 JP 5180285B2 JP 2010501186 A JP2010501186 A JP 2010501186A JP 2010501186 A JP2010501186 A JP 2010501186A JP 5180285 B2 JP5180285 B2 JP 5180285B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- stage
- execution
- pipeline
- processor
- 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
- 150000001875 compounds Chemical class 0.000 claims description 125
- 239000002131 composite material Substances 0.000 claims 6
- 230000006870 function Effects 0.000 description 30
- 238000010586 diagram Methods 0.000 description 16
- 230000003111 delayed effect Effects 0.000 description 3
- 230000006978 adaptation Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000017525 heat dissipation 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
-
- 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/3854—Instruction completion, e.g. retiring, committing or graduating
- G06F9/3856—Reordering of instructions, e.g. using queues or age tags
-
- 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/3854—Instruction completion, e.g. retiring, committing or graduating
- G06F9/3858—Result writeback, i.e. updating the architectural state or memory
-
- 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
-
- 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
図3に示されるように、複合(compound)命令B、CおよびDは、複数の実行可能なオペレーションを有する。複合命令Bは、LSLオペレーション302およびADDオペレーション303から構成される。複合命令BのLSLオペレーション302は、レジスタ5(R5)を2だけ論理的に左にシフト(LSL)する。ADDオペレーション303は、(2だけ論理的にシフトされた後の)R5とレジスタ1(R1)との加算であって、その結果がレジスタ4(R4)に書き込まれる加算を含む。複合命令CはADDオペレーション305のみならずLSLオペレーション304も有する。LSLオペレーション304は、レジスタ7(R7)に定義された値によるR5のLSLを含み、ADDオペレーション305は、R5とR1との加算であって、結果がレジスタ6(R6)に書き込まれる加算である。命令DはLSLオペレーション306とSUBオペレーション307とを有する。命令DのLSLオペレーション306は、R7の内容を2だけ論理的に左にシフトする。命令DのSUBオペレーション307は、R4の値からR7の値を引き、レジスタ8(R8)に結果を格納する。
以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
[1]ストールした命令をパイプラインプロセッサ内の[命令実行以外の一次機能を有する]ホールディング・ステージにおいて部分的に実行する方法であって、
第1の命令をホールディング・ステージにロードすることと、
前記第1の命令を当該命令がパイプライン・ハザードに遭遇した時に前記ホールディング・ステージにおいてストールし、前記第1の命令を前記ホールディング・ステージにおいて実行することと、
前記第1の命令を実行ステージにロードすることと、
前記第1の命令の実行を前記実行ステージにおいて完了することとを具備する方法。
[2]前記第1の命令は、当該命令が前記ホールディング・ステージにある時に実行論理回路によって実行される[1]記載の方法。
[3]前記ホールディング・ステージは、予約ステージである[1]記載の方法。
[4]前記ホールディング・ステージは、命令キューである[1]記載の方法。
[5]前記パイプライン・ハザードは、リソースハザードである[1]記載の方法。
[6]前記パイプライン・ハザードは、データハザードである[1]記載の方法。
[7]前記第1の命令は、複合命令である[1]記載の方法。
[8]ストールした命令をパイプラインプロセッサ内の命令実行以外の一次機能を有するパイプラインステージにおいて全体的に実行する方法であって、
第1の命令をホールディング・ステージにロードすることと、
前記第1の命令を、当該命令がパイプライン・ハザードに遭遇した時に前記ホールディング・ステージにおいてストールし、前記第1の命令を前記ホールディング・ステージにおいて全体的に実行することと、
前記第1の命令の実行の結果を書き込むこととを具備する方法。
[9]前記第1の命令の実行は、前記第1の命令が前記ホールディング・ステージにある時に、実行論理回路によって行なわれる[8]記載の方法。
[10]前記ホールディング・ステージは、予約ステージである[8]記載の方法。
[11]前記ホールディング・ステージは、命令キューである[8]記載の方法。
[12]前記結果はレジスタファイルに書き込まれる[8]記載の方法。
[13]前記ハザードは、リソースハザードである[8]記載の方法。
[14]前記ハザードは、データハザードである[8]記載の方法。
[15]前記第1の命令は、算術命令または論理演算を含む[8]記載の方法。
[16]パイプラインプロセッサであって、
第1の命令を受け取るように構成されたホールディング・ステージと、
前記ホールディング・ステージに結合される実行ステージとを具備し、
前記ホールディング・ステージは、パイプライン・ハザードに遭遇した時に前記第1の命令をストールするように構成され、前記ホールディング・ステージは、実行論理回路をさらに具備し、前記実行論理回路は、前記第1の命令を部分的に実行または全体的に実行するように構成され、前記実行ユニットは、前記部分的に実行される第1の命令を実行するように構成されている、パイプラインプロセッサ。
[17]前記第1の命令は複合命令である[16]記載のパイプラインプロセッサ。
[18]前記実行論理回路は、算術演算または論理演算を実行する[16]記載のパイプラインプロセッサ。
[19]前記パイプライン・ハザードは、リソースハザードである[16]記載のパイプラインプロセッサ。
[20]前記パイプライン・ハザードは、データハザードである[16]記載のパイプラインプロセッサ。
[21]前記ホールディング・ステージは、予約ステージである[16]記載のパイプラインプロセッサ。
[22]前記ホールディング・ステージは、命令キューである[16]記載のパイプラインプロセッサ。
[23]レジスタファイルをさらに具備し、前記第1の命令の実行の結果は前記レジスタファイルに書き込まれる[16]記載のパイプラインプロセッサ。
Claims (16)
- パイプラインのホールディング・ステージであって前記パイプラインの実行ステージに先立つホールディング・ステージに、複合命令をロードすることと、
前記複合命令を、当該複合命令がパイプライン・ハザードに遭遇したことに応答して前記ホールディング・ステージにおいてストールすることと、
前記複合命令が前記ホールディング・ステージにおいてストールされている間に前記複合命令を実行論理回路によって実行して結果を生成することと、
前記複合命令の実行後、前記パイプライン・ハザードが解消されるまで前記複合命令を前記ホールディング・ステージに保持することとを具備する方法。 - 前記パイプライン・ハザードは、リソースハザードである請求項1記載の方法。
- 前記パイプライン・ハザードは、データハザードである請求項1記載の方法。
- 前記複合命令は第1の実行可能なオペレーションと第2の実行可能なオペレーションとを備える請求項1記載の方法。
- 前記ホールディング・ステージは、前記複合命令を含む命令のリオーダ実行に適用される予約ステージを備える請求項1記載の方法。
- 前記第2の実行可能なオペレーションの実行は、前記第1の実行可能なオペレーションの結果に依存する請求項4記載の方法。
- 前記実行論理回路は、前記複合命令に対するシフト演算を行うことによって前記複合命令を実行する請求項1記載の方法。
- 書き込みステージの期間中に、結果をレジスタファイルに書き込むことをさらに具備する請求項1記載の方法。
- パイプラインプロセッサであって、
パイプラインの実行ステージに先立つホールディング・ステージを具備し、前記ホールディング・ステージは、
第1の実行可能なオペレーションと第2の実行可能なオペレーションとを備える複合命令であって前記第2の実行可能なオペレーションの実行が前記第1の実行可能なオペレーションの結果に依存する複合命令を受信し、
前記複合命令を、パイプライン・ハザードに遭遇することに応答してストールし、
前記複合命令が前記ホールディング・ステージにおいてストールされている間に前記第1の実行可能なオペレーションを実行論理回路によって実行し、
前記第1の実行可能なオペレーションの実行後、前記パイプライン・ハザードが解消されるまで前記複合命令を保持するように構成されている、パイプラインプロセッサ。 - 前記パイプライン・ハザードは、リソースハザードである請求項9記載のパイプラインプロセッサ。
- 前記パイプライン・ハザードは、データハザードである請求項9記載のパイプラインプロセッサ。
- 前記実行ステージは、前記第1の実行可能なオペレーションの結果と前記第2の実行可能なオペレーションとを受信し、前記第1の実行可能なオペレーションの結果に基づいて前記第2の実行可能なオペレーションを実行するように構成される請求項9記載のパイプラインプロセッサ。
- 書き込みステージをさらに具備し、前記第1の実行可能なオペレーションの結果と前記第2の実行可能なオペレーションの結果がレジスタファイルに書き込まれる請求項12記載のパイプラインプロセッサ。
- 前記ホールディング・ステージは、前記複合命令を含む命令のリオーダ実行に適用される予約ステージを備える請求項9記載のパイプラインプロセッサ。
- プロセッサによって実行される場合に前記プロセッサに、
パイプラインのホールディング・ステージであって前記パイプラインの実行ステージに先立つホールディング・ステージに、複合命令をロードすることと、
前記複合命令を、当該複合命令がパイプライン・ハザードに遭遇したことに応答して前記ホールディング・ステージにおいてストールすることと、
前記複合命令が前記ホールディング・ステージにおいてストールされている間に前記複合命令を実行論理回路によって実行して結果を生成することと、
前記複合命令の実行後、前記パイプライン・ハザードが解消されるまで前記複合命令を前記ホールディング・ステージに保持することとを実行させるため命令群を備えるコンピュータ読み取り可能な記憶媒体。 - パイプラインプロセッサであって、
第1の実行可能なオペレーションと第2の実行可能なオペレーションとを備える複合命令であって前記第2の実行可能なオペレーションの実行が前記第1の実行可能なオペレーションの結果に依存する複合命令を受信する手段と、
前記複合命令を、パイプライン・ハザードに遭遇することに応答してストールする手段と、
前記複合命令が前記ホールディング・ステージにおいてストールされている間に前記第1の実行可能なオペレーションを実行論理回路によって実行する手段と、
前記第1の実行可能なオペレーションの実行後、前記パイプライン・ハザードが解消されるまで前記複合命令を前記ホールディング・ステージに保持する手段とを具備するパイプラインプロセッサ。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/692,685 US8127114B2 (en) | 2007-03-28 | 2007-03-28 | System and method for executing instructions prior to an execution stage in a processor |
US11/692,685 | 2007-03-28 | ||
PCT/US2008/058246 WO2008118949A1 (en) | 2007-03-28 | 2008-03-26 | A system and method for executing instructions prior to an execution stage in a processor |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2010522940A JP2010522940A (ja) | 2010-07-08 |
JP5180285B2 true JP5180285B2 (ja) | 2013-04-10 |
Family
ID=39540664
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010501186A Expired - Fee Related JP5180285B2 (ja) | 2007-03-28 | 2008-03-26 | プロセッサにおいて実行ステージに先立って命令を実行するためのシステムおよび方法 |
Country Status (6)
Country | Link |
---|---|
US (1) | US8127114B2 (ja) |
EP (1) | EP2142988A1 (ja) |
JP (1) | JP5180285B2 (ja) |
KR (1) | KR101119612B1 (ja) |
CN (1) | CN101647000B (ja) |
WO (1) | WO2008118949A1 (ja) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101711388B1 (ko) | 2013-01-28 | 2017-03-02 | 삼성전자주식회사 | 파이프라인에서 블럭을 스케줄하는 컴파일 방법 및 장치 |
US9250916B2 (en) * | 2013-03-12 | 2016-02-02 | International Business Machines Corporation | Chaining between exposed vector pipelines |
GB2514618B (en) * | 2013-05-31 | 2020-11-11 | Advanced Risc Mach Ltd | Data processing systems |
US11645083B2 (en) * | 2013-08-23 | 2023-05-09 | Texas Instruments Incorporated | Processor having adaptive pipeline with latency reduction logic that selectively executes instructions to reduce latency |
US10942748B2 (en) | 2015-07-16 | 2021-03-09 | Nxp B.V. | Method and system for processing interrupts with shadow units in a microcontroller |
US10592246B2 (en) * | 2017-07-12 | 2020-03-17 | International Business Machines Corporation | Low latency execution of floating-point record form instructions |
CN110806899B (zh) * | 2019-11-01 | 2021-08-24 | 西安微电子技术研究所 | 一种基于指令扩展的流水线紧耦合加速器接口结构 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6453235A (en) * | 1988-05-25 | 1989-03-01 | Nec Corp | Risc type microprocessor |
WO1995016955A1 (en) | 1993-12-15 | 1995-06-22 | Silicon Graphics, Inc. | Load latency of zero for floating point load instructions using a load data queue |
US5675758A (en) * | 1994-11-15 | 1997-10-07 | Advanced Micro Devices, Inc. | Processor having primary integer execution unit and supplemental integer execution unit for performing out-of-order add and move operations |
JP3183844B2 (ja) * | 1996-03-29 | 2001-07-09 | 松下電器産業株式会社 | 可変パイプライン段数のデータ処理装置 |
WO1998002818A1 (en) * | 1996-07-16 | 1998-01-22 | Advanced Micro Devices, Inc. | A data memory unit configured to store data in one clock cycle and method for operating same |
JP3199035B2 (ja) * | 1998-09-25 | 2001-08-13 | 日本電気株式会社 | プロセッサ及びその実行制御方法 |
JP3204390B2 (ja) * | 1998-09-29 | 2001-09-04 | エヌイーシーマイクロシステム株式会社 | マイクロコンピュータ |
US20040193845A1 (en) * | 2003-03-24 | 2004-09-30 | Sun Microsystems, Inc. | Stall technique to facilitate atomicity in processor execution of helper set |
WO2004097626A2 (en) | 2003-04-28 | 2004-11-11 | Koninklijke Philips Electronics N.V. | Parallel processing system |
US7475222B2 (en) * | 2004-04-07 | 2009-01-06 | Sandbridge Technologies, Inc. | Multi-threaded processor having compound instruction and operation formats |
-
2007
- 2007-03-28 US US11/692,685 patent/US8127114B2/en active Active
-
2008
- 2008-03-26 EP EP08732844A patent/EP2142988A1/en not_active Withdrawn
- 2008-03-26 JP JP2010501186A patent/JP5180285B2/ja not_active Expired - Fee Related
- 2008-03-26 KR KR1020097022453A patent/KR101119612B1/ko active IP Right Grant
- 2008-03-26 WO PCT/US2008/058246 patent/WO2008118949A1/en active Application Filing
- 2008-03-26 CN CN200880009979.1A patent/CN101647000B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
US20080244234A1 (en) | 2008-10-02 |
CN101647000A (zh) | 2010-02-10 |
EP2142988A1 (en) | 2010-01-13 |
KR20090132633A (ko) | 2009-12-30 |
JP2010522940A (ja) | 2010-07-08 |
KR101119612B1 (ko) | 2012-03-22 |
CN101647000B (zh) | 2014-12-10 |
WO2008118949A1 (en) | 2008-10-02 |
US8127114B2 (en) | 2012-02-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7793079B2 (en) | Method and system for expanding a conditional instruction into a unconditional instruction and a select instruction | |
JP5431308B2 (ja) | システムおよびパイプラインプロセッサにおける条件命令実行の加速のためのローカル条件コードレジスタの使用方法 | |
JP5180285B2 (ja) | プロセッサにおいて実行ステージに先立って命令を実行するためのシステムおよび方法 | |
JP2597811B2 (ja) | データ処理システム | |
JP4856646B2 (ja) | 連続フロープロセッサパイプライン | |
JP5209933B2 (ja) | データ処理装置 | |
US7454598B2 (en) | Controlling out of order execution pipelines issue tagging | |
US20060259742A1 (en) | Controlling out of order execution pipelines using pipeline skew parameters | |
WO2015153121A1 (en) | A data processing apparatus and method for executing a stream of instructions out of order with respect to original program order | |
US10649780B2 (en) | Data processing apparatus and method for executing a stream of instructions out of order with respect to original program order | |
JP2004501471A (ja) | 投機的な実行を用いたアウトオブオーダー・プロセッサにおける精密な例外を配達する機構 | |
JP2004342087A (ja) | 一連の処理命令をパイプライン処理する方法及び装置 | |
US11182168B2 (en) | Post completion execution in an out-of-order processor design | |
EP0753172A1 (en) | Processing system and method of operation | |
US20080229080A1 (en) | Arithmetic processing unit | |
CN110515656B (zh) | 一种casp指令的执行方法、微处理器及计算机设备 | |
CN101706715B (zh) | 指令调度装置和方法 | |
JP7102840B2 (ja) | プロセッサコア、命令制御方法、プログラム | |
US7490226B2 (en) | Method using vector component comprising first and second bits to regulate movement of dependent instructions in a microprocessor | |
JP2000099328A (ja) | プロセッサ及びその実行制御方法 | |
Shah | Single Issue Instruction Dispatcher Based on Tomasulo’s Algorithm |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120731 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20121031 |
|
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: 20121211 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20130110 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5180285 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |