JP2010522940A - プロセッサにおいて実行ステージに先立って命令を実行するためのシステムおよび方法 - Google Patents
プロセッサにおいて実行ステージに先立って命令を実行するためのシステムおよび方法 Download PDFInfo
- Publication number
- JP2010522940A JP2010522940A JP2010501186A JP2010501186A JP2010522940A JP 2010522940 A JP2010522940 A JP 2010522940A JP 2010501186 A JP2010501186 A JP 2010501186A JP 2010501186 A JP2010501186 A JP 2010501186A JP 2010522940 A JP2010522940 A JP 2010522940A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- stage
- execution
- processor
- pipeline
- 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
- 238000000034 method Methods 0.000 title claims abstract description 42
- 150000001875 compounds Chemical class 0.000 claims description 103
- 230000006870 function Effects 0.000 abstract description 29
- 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
- 239000002131 composite material Substances 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)
Abstract
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)に結果を格納する。
Claims (23)
- ストールした命令をパイプラインプロセッサ内の[命令実行以外の一次機能を有する]ホールディング・ステージにおいて部分的に実行する方法であって、
第1の命令をホールディング・ステージにロードすることと、
前記第1の命令を当該命令がパイプライン・ハザードに遭遇した時に前記ホールディング・ステージにおいてストールし、前記第1の命令を前記ホールディング・ステージにおいて実行することと、
前記第1の命令を実行ステージにロードすることと、
前記第1の命令の実行を前記実行ステージにおいて完了することとを具備する方法。 - 前記第1の命令は、当該命令が前記ホールディング・ステージにある時に実行論理回路によって実行される請求項1記載の方法。
- 前記ホールディング・ステージは、予約ステージである請求項1記載の方法。
- 前記ホールディング・ステージは、命令キューである請求項1記載の方法。
- 前記パイプライン・ハザードは、リソースハザードである請求項1記載の方法。
- 前記パイプライン・ハザードは、データハザードである請求項1記載の方法。
- 前記第1の命令は、複合命令である請求項1記載の方法。
- ストールした命令をパイプラインプロセッサ内の命令実行以外の一次機能を有するパイプラインステージにおいて全体的に実行する方法であって、
第1の命令をホールディング・ステージにロードすることと、
前記第1の命令を、当該命令がパイプライン・ハザードに遭遇した時に前記ホールディング・ステージにおいてストールし、前記第1の命令を前記ホールディング・ステージにおいて全体的に実行することと、
前記第1の命令の実行の結果を書き込むこととを具備する方法。 - 前記第1の命令の実行は、前記第1の命令が前記ホールディング・ステージにある時に、実行論理回路によって行なわれる請求項8記載の方法。
- 前記ホールディング・ステージは、予約ステージである請求項8記載の方法。
- 前記ホールディング・ステージは、命令キューである請求項8記載の方法。
- 前記結果はレジスタファイルに書き込まれる請求項8記載の方法。
- 前記ハザードは、リソースハザードである請求項8記載の方法。
- 前記ハザードは、データハザードである請求項8記載の方法。
- 前記第1の命令は、算術命令または論理演算を含む請求項8記載の方法。
- パイプラインプロセッサであって、
第1の命令を受け取るように構成されたホールディング・ステージと、
前記ホールディング・ステージに結合される実行ステージとを具備し、
前記ホールディング・ステージは、パイプライン・ハザードに遭遇した時に前記第1の命令をストールするように構成され、前記ホールディング・ステージは、実行論理回路をさらに具備し、前記実行論理回路は、前記第1の命令を部分的に実行または全体的に実行するように構成され、前記実行ユニットは、前記部分的に実行される第1の命令を実行するように構成されている、パイプラインプロセッサ。 - 前記第1の命令は複合命令である請求項16記載のパイプラインプロセッサ。
- 前記実行論理回路は、算術演算または論理演算を実行する請求項16記載のパイプラインプロセッサ。
- 前記パイプライン・ハザードは、リソースハザードである請求項16記載のパイプラインプロセッサ。
- 前記パイプライン・ハザードは、データハザードである請求項16記載のパイプラインプロセッサ。
- 前記ホールディング・ステージは、予約ステージである請求項16記載のパイプラインプロセッサ。
- 前記ホールディング・ステージは、命令キューである請求項16記載のパイプラインプロセッサ。
- レジスタファイルをさらに具備し、前記第1の命令の実行の結果は前記レジスタファイルに書き込まれる請求項16記載のパイプラインプロセッサ。
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 true JP2010522940A (ja) | 2010-07-08 |
JP5180285B2 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) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014235747A (ja) * | 2013-05-31 | 2014-12-15 | アーム・リミテッド | データ処理システム |
Families Citing this family (6)
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 |
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 | 西安微电子技术研究所 | 一种基于指令扩展的流水线紧耦合加速器接口结构 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6453235A (en) * | 1988-05-25 | 1989-03-01 | Nec Corp | Risc type microprocessor |
JPH09319578A (ja) * | 1996-03-29 | 1997-12-12 | Matsushita Electric Ind Co Ltd | 可変パイプライン段数のデータ処理装置 |
US5802339A (en) * | 1994-11-15 | 1998-09-01 | Advanced Micro Devices | Pipeline throughput via parallel out-of-order execution of adds and moves in a supplemental integer execution unit |
JP2000099328A (ja) * | 1998-09-25 | 2000-04-07 | Nec Corp | プロセッサ及びその実行制御方法 |
JP2000105698A (ja) * | 1998-09-29 | 2000-04-11 | Nec Ic Microcomput Syst Ltd | マイクロコンピュータ |
JP2001505327A (ja) * | 1996-07-16 | 2001-04-17 | アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド | 1クロックサイクル内でデータをストアするよう構成されたデータメモリユニット、およびその動作方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
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
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6453235A (en) * | 1988-05-25 | 1989-03-01 | Nec Corp | Risc type microprocessor |
US5802339A (en) * | 1994-11-15 | 1998-09-01 | Advanced Micro Devices | Pipeline throughput via parallel out-of-order execution of adds and moves in a supplemental integer execution unit |
JPH09319578A (ja) * | 1996-03-29 | 1997-12-12 | Matsushita Electric Ind Co Ltd | 可変パイプライン段数のデータ処理装置 |
JP2001505327A (ja) * | 1996-07-16 | 2001-04-17 | アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド | 1クロックサイクル内でデータをストアするよう構成されたデータメモリユニット、およびその動作方法 |
JP2000099328A (ja) * | 1998-09-25 | 2000-04-07 | Nec Corp | プロセッサ及びその実行制御方法 |
JP2000105698A (ja) * | 1998-09-29 | 2000-04-11 | Nec Ic Microcomput Syst Ltd | マイクロコンピュータ |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014235747A (ja) * | 2013-05-31 | 2014-12-15 | アーム・リミテッド | データ処理システム |
US10176546B2 (en) | 2013-05-31 | 2019-01-08 | Arm Limited | Data processing systems |
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 |
KR101119612B1 (ko) | 2012-03-22 |
CN101647000B (zh) | 2014-12-10 |
WO2008118949A1 (en) | 2008-10-02 |
JP5180285B2 (ja) | 2013-04-10 |
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 | |
JP5180285B2 (ja) | プロセッサにおいて実行ステージに先立って命令を実行するためのシステムおよび方法 | |
KR101148495B1 (ko) | 파이프라인 프로세서에서 조건 명령 실행을 촉진시키기 위해 로컬 조건 코드 레지스터를 이용하기 위한 방법 및 장치 | |
KR100819232B1 (ko) | 순차 멀티스레딩 프로세서, 순차 멀티스레딩 프로세서의 처리량 향상 방법 및 컴퓨터 판독 가능 기록 매체 | |
JP3096427B2 (ja) | 複数ロード命令の実行方法、複数ストア命令の実行方法およびマイクロプロセッサ | |
US20070204135A1 (en) | Distributive scoreboard scheduling in an out-of order processor | |
EP1886216B1 (en) | Controlling out of order execution pipelines using skew parameters | |
JP5209933B2 (ja) | データ処理装置 | |
US7454598B2 (en) | Controlling out of order execution pipelines issue tagging | |
JP3579414B2 (ja) | 投機的な実行を用いたアウトオブオーダー・プロセッサにおける精密な例外を配達する機構 | |
JPH07160501A (ja) | データ処理システム | |
JP2012043443A (ja) | 連続フロープロセッサパイプライン | |
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 | |
JP2004342087A (ja) | 一連の処理命令をパイプライン処理する方法及び装置 | |
US11182168B2 (en) | Post completion execution in an out-of-order processor design | |
US20080229080A1 (en) | Arithmetic processing unit | |
CN101706715B (zh) | 指令调度装置和方法 | |
JP7102840B2 (ja) | プロセッサコア、命令制御方法、プログラム | |
JP2000099328A (ja) | プロセッサ及びその実行制御方法 | |
US7490226B2 (en) | Method using vector component comprising first and second bits to regulate movement of dependent instructions in a microprocessor | |
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 |