JP2006506735A - パイプラインプロセッサの方法および回路 - Google Patents
パイプラインプロセッサの方法および回路 Download PDFInfo
- Publication number
- JP2006506735A JP2006506735A JP2004553496A JP2004553496A JP2006506735A JP 2006506735 A JP2006506735 A JP 2006506735A JP 2004553496 A JP2004553496 A JP 2004553496A JP 2004553496 A JP2004553496 A JP 2004553496A JP 2006506735 A JP2006506735 A JP 2006506735A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- circuit
- register
- instructions
- streams
- 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 52
- 238000009825 accumulation Methods 0.000 claims description 64
- 230000003252 repetitive effect Effects 0.000 claims description 7
- 238000005215 recombination Methods 0.000 claims description 3
- 230000006798 recombination Effects 0.000 claims description 3
- 238000012432 intermediate storage Methods 0.000 claims description 2
- 230000035508 accumulation Effects 0.000 description 60
- 238000012545 processing Methods 0.000 description 14
- 238000001514 detection method Methods 0.000 description 7
- 238000011156 evaluation Methods 0.000 description 6
- 230000001419 dependent effect Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 230000008569 process Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 230000006872 improvement Effects 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 2
- 238000007796 conventional method Methods 0.000 description 1
- 230000000694 effects 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/32—Address formation of the next instruction, e.g. by incrementing the instruction counter
- G06F9/322—Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
- G06F9/325—Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address for loops, e.g. loop detection or loop counter
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
Abstract
Description
本願は、デジタルシグナルプロセッサ(DSPs)および一般目的のプロセッサを含む、パイプラインデータプロセッサに関する。より詳細には、本願は、演算実行ユニットがパイプライン化されたプロセッサに関する。
本発明の一態様の側面においては、深さpのパイプライン化された演算実行ユニットにおいて命令ストリームを実行する方法は:命令ストリームをロードすること;ロードされた命令ストリーム中の命令の反復を検出すること;パイプラインが中間ストレージをインスタンスのp個のストリームに提供するように、パイプライン中の命令のp個のストリームをインターリーブすること;反復の終了を検出すること;および、すべてのプログラムされた反復が完了した後に、p個のストリームから得られた結果を結合すること、を含む。
図面と共に以下の種々の側面についての態様の説明を読むことで本発明がより良く理解されるであろう。
図示の深さpが4である命令を有するパイプラインのための列は以下の通りである。
Claims (34)
- 深さpのパイプライン化された演算実行ユニットにおいて命令ストリームを実行する方法であって:
命令ストリームをロードすること;
ロードされた命令ストリーム中の命令の反復を検出すること;
パイプラインが中間ストレージをインスタンスのp個のストリームに提供するように、パイプライン中の命令のインスタンスのp個のストリームをインターリーブすること;
反復の終了を検出すること;および
すべてのプログラムされた反復が完了した後に、p個のストリームから得られた結果を結合すること、
を含む、前記方法。 - pが少なくとも2である、請求項1に記載の方法。
- 命令の検出された反復のためのインターロックを無効化することをさらに含む、請求項1に記載の方法。
- 検出が、同一のオペランドおよびあて先を有する反復される命令に基づいて命令の反復の認識をすることをさらに含む、請求項1に記載の方法。
- 命令の反復が算術的累算を行う、請求項4に記載の方法。
- 命令の反復が算術積を求める、請求項4に記載の方法。
- オペランドおよび反復操作の結果の両方を表す値を記憶することができるレジスタ;
レジスタからのオペランドを受け取るように接続する第一の入力および反復操作の識別値のソースに接続する第二の入力、および出力を有するマルチプレクサ;および
マルチプレクサの出力からの値の受け取るように接続する入力、および結果をレジスタへ返すように接続する出力を有するオペレータ回路、
を含む、計算回路。 - 反復操作を検出するように構成および配設されたコントロール回路をさらに含む、請求項7に記載の回路。
- オペレータ回路が加算器を含む、請求項8に記載の回路。
- オペレータ回路が乗算器を含む、請求項8に記載の回路。
- コントロール回路が、
パイプライン中の命令のインスタンスのp個のストリームをインターリーブし、すべてのプログラムされた反復が完了した後にp個のストリームから得られた結果を結合するように、構成および配設されたシーケンサ、
をさらに含む、請求項8に記載の回路。 - 検出が、同一のオペランドおよびあて先を有する反復される命令に基づいて命令の反復の認識をすること、をさらに含む、請求項11に記載の回路。
- 命令の反復が算術的累算を行う、請求項12に記載の回路。
- 命令の反復が算術積を求める、請求項12に記載の回路。
- パイプライン化された演算実行ユニットにおいて命令ストリームを実行する方法であって:
ソフトウェアスケジューリングなしで、演算実行ユニットに命令ストリームを自然な順番の命令列として提供すること;
命令列中の命令の反復を検出すること;
それぞれ異なった値を用いる、反復される命令の複数のインスタンスをパイプライン化された演算実行ユニットのパイプラインに導入すること;および
パイプライン中の複数のインスタンスの結果をそれぞれ保存すること、
を含む、前記方法。 - 検出がさらに、同一のオペランドおよびあて先を有する反復される命令に基づいて命令の反復の認識をすること、を含む、請求項15に記載の方法。
- 命令の検出された反復のためのインターロックを無効化することを含む、請求項16に記載の方法。
- 命令の反復が算術的累算を行う、請求項16に記載の方法。
- 命令の反復が算術積を求める、請求項16に記載の方法。
- パイプライン化された演算実行ユニットにおいて命令ストリームを実行する方法であって:
命令ストリーム中の命令の反復を検出すること;
該反復される命令の複数のストリームを、演算実行ユニットの外部に中間結果を保存することなく、独立に実行すること;および、
一つの結果を得るために、独立して実行された複数のストリームを再結合すること、を含み;
ここで、独立して実行することおよび再結合は、一つのみのあて先レジスタと一つのみのテンポラリレジスタを使用する、
前記方法。 - 最初のフェーズの間、値が命令の識別値であるオペランドを導入することを含む、請求項20に記載の方法。
- 命令のインターロックを含み、深さpのパイプラインを有するパイプライン化された計算ユニットを含む、プログラム可能なデータプロセッサにおける回路であって:
入力された命令ストリーム中の反復計算を検出するように構成および配設されたコントローラを含む、前記回路。 - コントローラが、オペランドのソースとしての指定と結果の記録のためのあて先としての指定との両方の指定をされた単一のレジスタを有する命令を検出するように構成および配設された回路をさらに含む、請求項22に記載の回路。
- コントローラが、命令の一つが、オペランドのソースとしての指定と結果の記録のためのあて先としての指定との両方の指定をされた単一のレジスタを失った場合、および異なったあて先レジスタを有する命令が発生した場合に、反復の中断を検出するように構成および配設された回路をさらに含む、請求項23に記載の回路。
- コントローラが、リードアフターライトおよびライトアフターリードのインターロックを無効にする回路をさらに含む、請求項24に記載の回路。
- コントローラが、パイプライン中の重複するp個までの反復のストリームをインターリーブするように構成および配設されている、請求項22に記載の回路。
- コントローラが、p個のストリームからのp個の中間結果を最終的な結果に結合するように構成および配設された回路をさらに含む、請求項26に記載の回路。
- 回路が、他の計算には用いられないレジスタTをさらに含み;
コントローラが、中断の後に結果をレジスタTにリダイレクトするように構成および配設される、
請求項27に記載の回路。 - コントローラが、反復が完了した後にインターロックを再配置するように構成および配設された回路をさらに含む、請求項25に記載の回路。
- パイプライン化された演算実行ユニットにおいて実行するためのソフトウェアの命令の列を準備する方法であって:
列中の反復される命令を検出すること;および、
互いに依存することなく独立した複数のストリームを形成するために、反復される命令のインスタンスを配列すること、を含み、
ここで、それぞれの複数の独立したストリームからの結果は、反復命令の全ての反復が完了するまで、パイプラインの外部のレジスタに保存されることはない、
前記方法。 - 検出が、同一のオペランドおよびあて先を有する反復される命令に基づいて命令の反復の認識をすること、をさらに含む、請求項30に記載の方法。
- 命令の反復が算術的累算を行う、請求項31に記載の方法。
- 命令の反復が算術積を求める、請求項31に記載の方法。
- ソフトウェア命令の列に、それぞれの複数の独立したストリームからの結果を一つのあて先レジスタに結合するクリーンアップの列を挿入することをさらに含む、請求項30に記載の方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/299,412 US7206927B2 (en) | 2002-11-19 | 2002-11-19 | Pipelined processor method and circuit with interleaving of iterative operations |
PCT/US2003/034462 WO2004046915A2 (en) | 2002-11-19 | 2003-10-30 | Pipelined processor method and circuit |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2006506735A true JP2006506735A (ja) | 2006-02-23 |
JP2006506735A5 JP2006506735A5 (ja) | 2006-08-17 |
Family
ID=32297693
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004553496A Pending JP2006506735A (ja) | 2002-11-19 | 2003-10-30 | パイプラインプロセッサの方法および回路 |
Country Status (6)
Country | Link |
---|---|
US (1) | US7206927B2 (ja) |
EP (1) | EP1563369B1 (ja) |
JP (1) | JP2006506735A (ja) |
CN (1) | CN100356319C (ja) |
AU (1) | AU2003286784A1 (ja) |
WO (1) | WO2004046915A2 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011204208A (ja) * | 2010-03-26 | 2011-10-13 | Fujitsu Ltd | マルチコアプロセッサ |
JP2015535955A (ja) * | 2012-09-28 | 2015-12-17 | インテル・コーポレーション | Sha256アルゴリズムのメッセージスケジューリングのための命令セット |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7454532B1 (en) * | 2003-04-08 | 2008-11-18 | Telairity Semiconductor, Inc. | Stream data interface for processing system |
US20070260856A1 (en) * | 2006-05-05 | 2007-11-08 | Tran Thang M | Methods and apparatus to detect data dependencies in an instruction pipeline |
US9229720B2 (en) * | 2007-03-30 | 2016-01-05 | Intel Corporation | Circuit marginality validation test for an integrated circuit |
CN102567556A (zh) * | 2010-12-27 | 2012-07-11 | 北京国睿中数科技股份有限公司 | 一种面向调试的处理器验证方法及验证设备 |
CN103513961B (zh) * | 2012-06-18 | 2017-07-11 | 中兴通讯股份有限公司 | 片内缓存方法及装置 |
US9348595B1 (en) | 2014-12-22 | 2016-05-24 | Centipede Semi Ltd. | Run-time code parallelization with continuous monitoring of repetitive instruction sequences |
US9135015B1 (en) | 2014-12-25 | 2015-09-15 | Centipede Semi Ltd. | Run-time code parallelization with monitoring of repetitive instruction sequences during branch mis-prediction |
US9208066B1 (en) | 2015-03-04 | 2015-12-08 | Centipede Semi Ltd. | Run-time code parallelization with approximate monitoring of instruction sequences |
US10296350B2 (en) | 2015-03-31 | 2019-05-21 | Centipede Semi Ltd. | Parallelized execution of instruction sequences |
US10296346B2 (en) | 2015-03-31 | 2019-05-21 | Centipede Semi Ltd. | Parallelized execution of instruction sequences based on pre-monitoring |
US9715390B2 (en) | 2015-04-19 | 2017-07-25 | Centipede Semi Ltd. | Run-time parallelization of code execution based on an approximate register-access specification |
CN108052347B (zh) * | 2017-12-06 | 2021-07-20 | 北京中科睿芯智能计算产业研究院有限公司 | 一种执行指令选择的装置、方法及指令映射方法 |
US11579843B2 (en) * | 2020-06-15 | 2023-02-14 | Micron Technology, Inc. | Bit string accumulation in multiple registers |
US11847462B2 (en) * | 2020-12-15 | 2023-12-19 | Advanced Micro Devices, Inc. | Software-based instruction scoreboard for arithmetic logic units |
CN116775417B (zh) * | 2023-08-16 | 2023-11-07 | 无锡国芯微高新技术有限公司 | Risc-v处理器运行监测和行为追踪系统 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS58181165A (ja) * | 1982-04-16 | 1983-10-22 | Hitachi Ltd | ベクトル演算プロセツサ |
US5123108A (en) * | 1989-09-11 | 1992-06-16 | Wang Laboratories, Inc. | Improved cpu pipeline having register file bypass and working register bypass on update/access address compare |
US5598362A (en) | 1994-12-22 | 1997-01-28 | Motorola Inc. | Apparatus and method for performing both 24 bit and 16 bit arithmetic |
US6567895B2 (en) * | 2000-05-31 | 2003-05-20 | Texas Instruments Incorporated | Loop cache memory and cache controller for pipelined microprocessors |
US6766445B2 (en) | 2001-03-23 | 2004-07-20 | Hewlett-Packard Development Company, L.P. | Storage system for use in custom loop accelerators and the like |
US6976158B2 (en) * | 2001-06-01 | 2005-12-13 | Microchip Technology Incorporated | Repeat instruction with interrupt |
US20030154227A1 (en) * | 2002-02-08 | 2003-08-14 | Intel Corporation | Multi-threaded multiply accumulator |
-
2002
- 2002-11-19 US US10/299,412 patent/US7206927B2/en not_active Expired - Lifetime
-
2003
- 2003-10-30 EP EP03777998.0A patent/EP1563369B1/en not_active Expired - Lifetime
- 2003-10-30 JP JP2004553496A patent/JP2006506735A/ja active Pending
- 2003-10-30 AU AU2003286784A patent/AU2003286784A1/en not_active Abandoned
- 2003-10-30 WO PCT/US2003/034462 patent/WO2004046915A2/en active Application Filing
- 2003-10-30 CN CNB2003801069964A patent/CN100356319C/zh not_active Expired - Fee Related
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011204208A (ja) * | 2010-03-26 | 2011-10-13 | Fujitsu Ltd | マルチコアプロセッサ |
JP2015535955A (ja) * | 2012-09-28 | 2015-12-17 | インテル・コーポレーション | Sha256アルゴリズムのメッセージスケジューリングのための命令セット |
Also Published As
Publication number | Publication date |
---|---|
EP1563369B1 (en) | 2014-12-24 |
CN1729446A (zh) | 2006-02-01 |
AU2003286784A1 (en) | 2004-06-15 |
US7206927B2 (en) | 2007-04-17 |
WO2004046915A2 (en) | 2004-06-03 |
EP1563369A2 (en) | 2005-08-17 |
WO2004046915A3 (en) | 2004-10-14 |
CN100356319C (zh) | 2007-12-19 |
US20040098570A1 (en) | 2004-05-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102413832B1 (ko) | 벡터 곱셈 덧셈 명령 | |
JP5699554B2 (ja) | ベクトル処理回路、命令発行制御方法、及びプロセッサシステム | |
JP5512803B2 (ja) | ベクトル命令を取り扱うためのデータ処理装置および方法 | |
JP2006506735A (ja) | パイプラインプロセッサの方法および回路 | |
EP1160663B1 (en) | Processor for executing software pipelined loops and corresponding method | |
US6842848B2 (en) | Method and apparatus for token triggered multithreading | |
US6061780A (en) | Execution unit chaining for single cycle extract instruction having one serial shift left and one serial shift right execution units | |
KR100900364B1 (ko) | 인스트럭션 실행 디바이스, 인스트럭션 실행 방법 및 컴퓨터 판독가능 메모리 매체 | |
TWI728068B (zh) | 複數乘法指令 | |
JP2007533007A (ja) | スレッドごとの多重同時パイプラインを有するマルチスレッドプロセッサ | |
JPH1097424A (ja) | スーパースカラープロセッサの中央処理ユニット | |
US11226821B2 (en) | Computer processor employing operand data with associated meta-data | |
US20130080491A1 (en) | Fast condition code generation for arithmetic logic unit | |
CN108319559B (zh) | 用于控制矢量内存存取的数据处理装置及方法 | |
JP2006522398A (ja) | パイプライン型命令プロセッサにおけるバイパスの使用 | |
TWI770079B (zh) | 向量產生指令 | |
US6055628A (en) | Microprocessor with a nestable delayed branch instruction without branch related pipeline interlocks | |
CN113220347B (zh) | 基于多级流水线的指令处理方法、浮点型dsp以及音频设备 | |
JP3915019B2 (ja) | Vliwプロセッサ、プログラム生成装置、および記録媒体 | |
JPH07121371A (ja) | 複数命令同時取込み機構 | |
WO2024073325A1 (en) | Reducing overhead in processor array searching | |
Omondi et al. | Control Flow: Branching and Control Hazards | |
JP2001195252A (ja) | マスク技術による無効で分岐効率向上を図るプロセッサ | |
JPH10312280A (ja) | マイクロプロセッサ |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060628 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060628 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20081128 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20081209 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090306 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20090901 |