JP2010073197A - 多重プロセッサ・コア・ベクトル・モーフ結合機構 - Google Patents
多重プロセッサ・コア・ベクトル・モーフ結合機構 Download PDFInfo
- Publication number
- JP2010073197A JP2010073197A JP2009176387A JP2009176387A JP2010073197A JP 2010073197 A JP2010073197 A JP 2010073197A JP 2009176387 A JP2009176387 A JP 2009176387A JP 2009176387 A JP2009176387 A JP 2009176387A JP 2010073197 A JP2010073197 A JP 2010073197A
- Authority
- JP
- Japan
- Prior art keywords
- processor
- instructions
- instruction
- execution
- issue
- 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
- 230000007246 mechanism Effects 0.000 title claims description 7
- 230000008878 coupling Effects 0.000 title 1
- 238000010168 coupling process Methods 0.000 title 1
- 238000005859 coupling reaction Methods 0.000 title 1
- 238000012545 processing Methods 0.000 description 57
- 230000003111 delayed effect Effects 0.000 description 23
- 238000007792 addition Methods 0.000 description 18
- 230000006870 function Effects 0.000 description 17
- 230000001419 dependent effect Effects 0.000 description 12
- 238000000034 method Methods 0.000 description 11
- 238000012546 transfer Methods 0.000 description 11
- 230000008901 benefit Effects 0.000 description 8
- 238000010586 diagram Methods 0.000 description 8
- 230000008569 process Effects 0.000 description 6
- 238000009825 accumulation Methods 0.000 description 5
- 238000013459 approach Methods 0.000 description 4
- 230000010354 integration Effects 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 230000003466 anti-cipated effect Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 238000013519 translation Methods 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/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
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/80—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
- G06F15/8053—Vector processors
-
- 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/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30036—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
-
- 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/30181—Instruction operation extension or modification
- G06F9/30189—Instruction operation extension or modification according to execution mode, e.g. mode flag
-
- 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/30181—Instruction operation extension or modification
- G06F9/30196—Instruction operation extension or modification using decoder, e.g. decoder per instruction set, adaptable or programmable decoders
-
- 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/3818—Decoding for concurrent execution
- G06F9/382—Pipelined decoding, e.g. using predecoding
-
- 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/3824—Operand accessing
- G06F9/3826—Bypassing or forwarding of data results, e.g. locally between pipeline stages or within a pipeline stage
- G06F9/3828—Bypassing or forwarding of data results, e.g. locally between pipeline stages or within a pipeline stage with global bypass, e.g. between pipelines, between clusters
-
- 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/3853—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution of compound instructions
-
- 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/3854—Instruction completion, e.g. retiring, committing or graduating
- G06F9/3858—Result writeback, i.e. updating the architectural state or memory
- G06F9/38585—Result writeback, i.e. updating the architectural state or memory with result invalidation, e.g. nullification
-
- 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
- G06F9/3869—Implementation aspects, e.g. pipeline latches; pipeline synchronisation and clocking
-
- 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
- G06F9/3889—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by multiple instructions, e.g. MIMD, decoupled access or execute
-
- 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
- G06F9/3889—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by multiple instructions, e.g. MIMD, decoupled access or execute
- G06F9/3891—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by multiple instructions, e.g. MIMD, decoupled access or execute organised in groups of units sharing resources, e.g. clusters
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Multimedia (AREA)
- Advance Control (AREA)
Abstract
【解決手段】プロセッサは、多数の命令の発行グループを実行するための複数のパイプライン実行ユニット(P0、P1、P2、P3)を有する第1および第2のプロセッサ・コア114と、スケジューリング論理とを有する。スケジューリング論理は、プロセッサが第1の動作モードにある場合、第1の命令発行グループを第1のプロセッサ・コア114に発行して実行させ、第2の命令発行グループを第2のプロセッサ・コア114に発行して実行させる。プロセッサが第2の動作モードにある場合、第1および第2のプロセッサ・コア114に1つ以上のベクトル命令を発行して、同時に実行させる。
【選択図】図3
Description
図1は、本発明の一実施形態によるシステム100を示すブロック図である。システム100は、命令およびデータを記憶するためのシステム・メモリ102と、グラフィック処理のためのグラフィック処理ユニット104と、外部デバイスと通信を行うためのI/Oインタフェースと、命令およびデータの長期記憶のための記憶デバイス108と、命令およびデータを処理するためのプロセッサ110と、を含むことができる。
本発明の一実施形態によれば、1つ以上のプロセッサ・コア114は、カスケード遅延実行パイプライン構成を利用することができる。図3に示す例において、コア114は、カスケード構成の4つのパイプラインを含む。任意に、かかる構成において、もっと小数の(2つ以上のパイプライン)またはもっと多数の(5つ以上のパイプライン)を用いることも可能である。更に、図3に示すパイプラインの物理的レイアウトは例示的なものであり、必ずしもカスケード遅延実行パイプライン・ユニットの実際の物理的レイアウトを必ずしも示すものではない。
図4および図5に示すように、カスケード遅延実行パイプラインの性能の効果を、従来の順序正しい実行パイプラインとの比較によって示すことができる。図4において、従来の「2発行」パイプライン構成2802の性能を、本発明の実施形態に従ったカスケード遅延パイプライン構成2002と比較する。図5において、従来の「4発行」パイプライン構成2804の性能を、本発明の実施形態に従ったカスケード遅延パイプライン構成2004と比較する。
図5は、カスケード遅延実行パイプラインにおいて実行するために、少なくともいくらかの依存性を有する命令をスケジューリングし発行するための例示的な動作500を示す。いくつかの実施形態では、多数のプロセッサ・コア(各々がカスケード遅延実行パイプライン・ユニットを有する)間で共有されるプリデコード/スケジューラ回路において、実際のスケジューリング動作を実行することができ、プロセッサ・コア内の別個の回路によって命令のディスパッチ/発行を実行することができる。一例として、共有されるプリデコーダ/スケジューラは、発行する命令の「ウィンドウ」を調べて依存性についてチェックし、どのように(どのパイプラインに)ディスパッチ回路がグループ内の命令を発行するかを制御する1組の「発行フラグ」を発生することによって、1組のスケジューリング・ルールを適用することができる。
図7は、整数命令を実行するためのカスケード遅延実行パイプライン・ユニット600の例示的な構成を示す。図示するように、このユニットは、2つのLSU612Lおよび2つのALU614Aを含む4つの実行ユニットを有する。ユニット600によって、隣接するパイプライン間で結果を直接転送することが可能となる。いくつかの実施形態では、例えば非隣接パイプライン間の直接転送によって、いっそう複雑な転送を行うことができる。いくつかの実施形態では、ターゲット遅延キュー(TDQ)630からの選択的な転送を行うことも可能である。
発行グループ内の1つ以上の命令の実行を同一グループ内の別の命令の実行に対して遅延させるという、本明細書において提示するカスケード遅延実行パイプライン・ユニットの概念は、様々な異なるタイプの機能ユニットを利用した様々な異なる構成に適用することができる。更に、いくつかの実施形態では、カスケード遅延実行パイプライン・ユニットの多数の異なる構成を、同一のシステムまたは同一のチップあるいはその両方に含ませることも可能である。特定のデバイスまたはシステムと共に含ませる具体的な構成または1組の構成は、意図する用途に応じたものとすることができる。
いくつかの実施形態では、ポリモフィズムを利用して、フレキシビリティを与え、限られた処理コア・セットが様々な特徴を有する広範囲のアプリケーションに対応することを可能とする。本明細書において用いる場合、ポリモフィズムという言葉は概して、1つ以上の物理的処理コアを変形して、異なるアプリケーションのために様々に異なって見えるようにすることを指す。実行しているコードを変更することなく、処理コアの性能および挙動は変動する場合がある。
モーフィングの一例は、命令レベル並列性(ILP)モーフィングと称することができる。その基本的な概念は、比較的幅の狭い実行ユニットを組み合わせて同一命令ストリームについて発行幅の増大を得ることによって、並列性の増大を達成することである。変形を制御することにより、2つの実行ユニットを組み合わせて、あるアプリケーション(例えば比較的少ないスレッドを有するゲーム・アプリケーション)について発行幅の増大を得ることができ、または別々のままとして、より多くのスレッドに対処することができる(例えば多数のタスクを有するサーバについて)。
所望の頻度で処理コア間の更新を達成するために、注意深い計画により処理コアおよびそれらのコンポーネントの物理的レイアウト(「フロアプラン」)を行って、高頻度の更新のために伝送経路を制限することができる。
モーフィングの別の例は、ベクトル・モーフィングと称することができる。その基本的な概念は、比較的幅の狭い実行ユニットを組み合わせて同一の命令ストリームについて発行幅の拡大を図ることによって、並列性の増大を達成することである。変形を制御することにより、2つ以上の実行ユニットを組み合わせて、あるアプリケーション(例えば比較的少ないスレッドを有するゲーム・アプリケーション)について発行幅の増大を得ることができ、または別々のままとして、より多くのスレッドに対処することができる(例えば多数のタスクを有するサーバについて)。
102 システム・メモリ
104 グラフィック処理ユニット
108 記憶デバイス
110 プロセッサ
112 L2キャッシュ
116 L1キャッシュ
114 プロセッサ・コア
210 L2アクセス回路
220 プリデコーダおよびスケジューラ
232 I−ライン・バッファ
234 発行およびディスパッチ回路
236 命令フェッチ回路
238 ライトバック回路
240 レジスタ・ファイル
250 キャッシュ・ロードおよび記憶回路
Claims (13)
- プロセッサであって、
第1および第2のプロセッサ・コアであって、各々が、多数の命令の発行グループを実行するための複数のパイプライン実行ユニットを有する、前記プロセッサ・コアと、
前記プロセッサが第1の動作モードにある場合、第1の命令発行グループを実行のために前記第1のプロセッサ・コアに発行し、第2の命令発行グループを実行のために前記第2のプロセッサ・コアに発行するように構成され、前記プロセッサが第2の動作モードにある場合、前記第1および第2のプロセッサ・コア上で同時に実行するために1つ以上のベクトル命令を発行するように構成された、スケジューリング論理と、
を含む、プロセッサ。 - 前記第1および第2のプロセッサ・コアが各々、N個の命令の発行グループを実行することができるN個のパイプライン実行ユニットを有する、請求項1に記載のプロセッサ。
- 前記第1および第2のプロセッサ・コアは各々、前記プロセッサが前記第1の動作モードにある場合に、共通の発行グループ内の命令を相互に遅延させて実行するカスケードのパイプライン実行ユニットを含む、請求項1に記載のプロセッサ。
- 前記プロセッサが前記第2の動作モードにある場合に、前記第1および第2のプロセッサ・コアの前記パイプライン実行ユニットが、ベクトル命令に対応する動作を並列して実行する、請求項3に記載のプロセッサ。
- 前記第1および第2のプロセッサ・コアが、前記プロセッサが前記第1の動作モードにある場合に、共通の発行グループ内の命令を相互に遅延させて発行することができるターゲット遅延キューを含み、
前記プロセッサが前記第2の動作モードにある場合、前記ターゲット遅延キューが分流される、請求項4に記載のプロセッサ。 - 前記第1および第2の動作モード間で選択を行うようにソフトウェア命令によって制御可能な機構を更に含む、請求項1に記載のプロセッサ。
- 前記スケジューリング論理が、
前記第1および第2のプロセッサ・コアに前記ベクトル命令の同一のコピーを送信し、その結果、前記第1および第2のプロセッサ・コアが単一のクロック・サイクルの間に同一の命令を見るように、更に、
前記第1および第2のプロセッサ・コアにオフセット値を送信し、前記第1のプロセッサ・コアに前記ベクトル命令の第1のサブセットを効果的に割り当て、前記第2のプロセッサ・コアに前記ベクトル命令の第2のサブセットを割り当てるように構成されている、請求項1に記載のプロセッサ。 - コンピューティング・システムであって、
第1および第2のプロセッサであって、各々が、1つ以上のベクトル命令を実行するための複数のプロセッサ・コアを有する、前記プロセッサと、
前記コンピューティング・システムが第1の動作モードにある場合、1つ以上のベクトル命令を実行のために前記第1のプロセッサに発行し、1つ以上のベクトル命令を実行のために前記第2のプロセッサに発行するように構成され、前記コンピューティング・システムが第2の動作モードにある場合、ベクトル命令の発行グループを実行のために前記第1および第2のプロセッサに発行するように構成された、スケジューリング論理と、
を含む、コンピューティング・システム。 - 前記第1および第2のプロセッサは、各々、前記コンピュータ・システムが前記第1の動作モードにある場合に、相互に同時にベクトル命令を実行する複数のプロセッサ・コアを含む、請求項8に記載のコンピューティング・システム。
- 前記コンピューティング・システムが前記第2の動作モードにある場合に、前記第1および第2のプロセッサの前記プロセッサ・コアは、ベクトル命令の共通の発行グループ内のベクトル命令を相互に遅延させて実行する、請求項9に記載のコンピューティング・システム。
- 前記第1および第2のプロセッサ・コアが、前記プロセッサが前記第1の動作モードにある場合に、共通の発行グループ内の命令を相互に遅延させて発行することができるターゲット遅延キューを含み、
前記プロセッサが前記第2の動作モードにある場合、前記ターゲット遅延キューが分流される、請求項10に記載のコンピューティング・システム。 - 前記スケジューリング論理が前記第1のプロセッサとプリント回路基板を共有する、請求項8に記載のコンピューティング・システム。
- 前記第1および第2の動作モード間で選択を行うようにソフトウェア命令によって制御可能な機構を更に含む、請求項8に記載のコンピューティング・システム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/233729 | 2008-09-19 | ||
US12/233,729 US8135941B2 (en) | 2008-09-19 | 2008-09-19 | Vector morphing mechanism for multiple processor cores |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2010073197A true JP2010073197A (ja) | 2010-04-02 |
JP5698445B2 JP5698445B2 (ja) | 2015-04-08 |
Family
ID=42029443
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009176387A Active JP5698445B2 (ja) | 2008-09-19 | 2009-07-29 | 多重プロセッサ・コア・ベクトル・モーフ結合機構 |
Country Status (4)
Country | Link |
---|---|
US (1) | US8135941B2 (ja) |
JP (1) | JP5698445B2 (ja) |
CN (1) | CN101676865B (ja) |
TW (1) | TW201028918A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2016534433A (ja) * | 2013-10-23 | 2016-11-04 | テクノロギアン トゥトキムスケスクス ヴェーテーテー オイ | エミュレートされた共有メモリアーキテクチャのための浮動小数点サポートパイプライン |
KR20220077076A (ko) * | 2020-12-01 | 2022-06-08 | 한국전자통신연구원 | 멀티 프로세서 시스템 및 그의 부동 소수점 연산 처리 방법 |
US11893392B2 (en) | 2020-12-01 | 2024-02-06 | Electronics And Telecommunications Research Institute | Multi-processor system and method for processing floating point operation thereof |
Families Citing this family (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090204792A1 (en) * | 2008-02-13 | 2009-08-13 | Luick David A | Scalar Processor Instruction Level Parallelism (ILP) Coupled Pair Morph Mechanism |
US20130166882A1 (en) * | 2011-12-22 | 2013-06-27 | Jack Hilaire Choquette | Methods and apparatus for scheduling instructions without instruction decode |
CN104346285B (zh) * | 2013-08-06 | 2018-05-11 | 华为技术有限公司 | 内存访问处理方法、装置及系统 |
US9665372B2 (en) | 2014-05-12 | 2017-05-30 | International Business Machines Corporation | Parallel slice processor with dynamic instruction stream mapping |
US9672043B2 (en) | 2014-05-12 | 2017-06-06 | International Business Machines Corporation | Processing of multiple instruction streams in a parallel slice processor |
US9760375B2 (en) | 2014-09-09 | 2017-09-12 | International Business Machines Corporation | Register files for storing data operated on by instructions of multiple widths |
US9720696B2 (en) | 2014-09-30 | 2017-08-01 | International Business Machines Corporation | Independent mapping of threads |
US20160179530A1 (en) * | 2014-12-23 | 2016-06-23 | Elmoustapha Ould-Ahmed-Vall | Instruction and logic to perform a vector saturated doubleword/quadword add |
US9977678B2 (en) | 2015-01-12 | 2018-05-22 | International Business Machines Corporation | Reconfigurable parallel execution and load-store slice processor |
US10133581B2 (en) | 2015-01-13 | 2018-11-20 | International Business Machines Corporation | Linkable issue queue parallel execution slice for a processor |
US10133576B2 (en) | 2015-01-13 | 2018-11-20 | International Business Machines Corporation | Parallel slice processor having a recirculating load-store queue for fast deallocation of issue queue entries |
JP6422381B2 (ja) * | 2015-03-18 | 2018-11-14 | ルネサスエレクトロニクス株式会社 | プロセッサ、プログラムコード変換装置及びソフトウェア |
US11178072B2 (en) * | 2015-06-10 | 2021-11-16 | Mobileye Vision Technologies Ltd. | Image processor and methods for processing an image |
US11294815B2 (en) * | 2015-06-10 | 2022-04-05 | Mobileye Vision Technologies Ltd. | Multiple multithreaded processors with shared data cache |
TWI564807B (zh) * | 2015-11-16 | 2017-01-01 | 財團法人工業技術研究院 | 排程方法及應用其的處理裝置 |
US9983875B2 (en) | 2016-03-04 | 2018-05-29 | International Business Machines Corporation | Operation of a multi-slice processor preventing early dependent instruction wakeup |
US10037211B2 (en) | 2016-03-22 | 2018-07-31 | International Business Machines Corporation | Operation of a multi-slice processor with an expanded merge fetching queue |
US10346174B2 (en) | 2016-03-24 | 2019-07-09 | International Business Machines Corporation | Operation of a multi-slice processor with dynamic canceling of partial loads |
US10761854B2 (en) | 2016-04-19 | 2020-09-01 | International Business Machines Corporation | Preventing hazard flushes in an instruction sequencing unit of a multi-slice processor |
US10037229B2 (en) | 2016-05-11 | 2018-07-31 | International Business Machines Corporation | Operation of a multi-slice processor implementing a load/store unit maintaining rejected instructions |
US9934033B2 (en) | 2016-06-13 | 2018-04-03 | International Business Machines Corporation | Operation of a multi-slice processor implementing simultaneous two-target loads and stores |
US10042647B2 (en) | 2016-06-27 | 2018-08-07 | International Business Machines Corporation | Managing a divided load reorder queue |
US10318419B2 (en) | 2016-08-08 | 2019-06-11 | International Business Machines Corporation | Flush avoidance in a load store unit |
US10474468B2 (en) * | 2017-02-22 | 2019-11-12 | Advanced Micro Devices, Inc. | Indicating instruction scheduling mode for processing wavefront portions |
US10140252B2 (en) | 2017-02-28 | 2018-11-27 | Microsoft Technology Licensing, Llc | Hardware node with matrix-vector multiply tiles for neural network processing |
EP3376441B1 (en) * | 2017-03-15 | 2021-07-14 | Siemens Aktiengesellschaft | A method for execution of a machine learning model on memory restricted industrial device |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1996029646A1 (fr) * | 1995-03-17 | 1996-09-26 | Hitachi, Ltd. | Processeur |
JPH1185513A (ja) * | 1997-09-03 | 1999-03-30 | Hitachi Ltd | プロセッサ |
JP2002333978A (ja) * | 2001-05-08 | 2002-11-22 | Nec Corp | Vliw型プロセッサ |
JP2004362086A (ja) * | 2003-06-03 | 2004-12-24 | Matsushita Electric Ind Co Ltd | 情報処理装置および機械語プログラム変換装置 |
WO2006049331A1 (ja) * | 2004-11-05 | 2006-05-11 | Nec Corporation | Simd型並列演算装置、プロセッシング・エレメント、simd型並列演算装置の制御方式 |
WO2007141252A1 (en) * | 2006-06-08 | 2007-12-13 | International Business Machines Corporation | Local and global branch prediction information storage |
JP2008015589A (ja) * | 2006-07-03 | 2008-01-24 | Nec Corp | Vliw型プロセッサおよび命令発行方法 |
WO2008023576A1 (fr) * | 2006-08-23 | 2008-02-28 | Nec Corporation | Élément de traitement, système de processeur parallèle en mode mixte, procédé pour élément de traitement, procédé pour processeur parallèle en mode mixte, programme pour élément de traitement, et programme pour processeur parallèle en mode mixte |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2587586B2 (ja) * | 1994-05-25 | 1997-03-05 | 甲府日本電気株式会社 | データ転送方法 |
US6026479A (en) | 1998-04-22 | 2000-02-15 | Hewlett-Packard Company | Apparatus and method for efficient switching of CPU mode between regions of high instruction level parallism and low instruction level parallism in computer programs |
US6272616B1 (en) | 1998-06-17 | 2001-08-07 | Agere Systems Guardian Corp. | Method and apparatus for executing multiple instruction streams in a digital processor with multiple data paths |
US6549986B1 (en) * | 2000-06-20 | 2003-04-15 | Conexant Systems, Inc. | Low power instruction cache |
US6983388B2 (en) * | 2000-10-25 | 2006-01-03 | Agere Systems Inc. | Method and apparatus for reducing leakage power in a cache memory by using a timer control signal that removes power to associated cache lines |
US6480938B2 (en) | 2000-12-15 | 2002-11-12 | Hewlett-Packard Company | Efficient I-cache structure to support instructions crossing line boundaries |
US6944744B2 (en) | 2002-08-27 | 2005-09-13 | Advanced Micro Devices, Inc. | Apparatus and method for independently schedulable functional units with issue lock mechanism in a processor |
US7194643B2 (en) | 2003-09-29 | 2007-03-20 | Intel Corporation | Apparatus and method for an energy efficient clustered micro-architecture |
US7099230B1 (en) * | 2005-04-15 | 2006-08-29 | Texas Instruments Incorporated | Virtual ground circuit for reducing SRAM standby power |
US7734895B1 (en) * | 2005-04-28 | 2010-06-08 | Massachusetts Institute Of Technology | Configuring sets of processor cores for processing instructions |
US7454598B2 (en) | 2005-05-16 | 2008-11-18 | Infineon Technologies Ag | Controlling out of order execution pipelines issue tagging |
US7380105B2 (en) | 2006-06-16 | 2008-05-27 | The Regents Of The University Of California | Prediction based instruction steering to wide or narrow integer cluster and narrow address generation |
US20080148020A1 (en) * | 2006-12-13 | 2008-06-19 | Luick David A | Low Cost Persistent Instruction Predecoded Issue and Dispatcher |
US7945763B2 (en) * | 2006-12-13 | 2011-05-17 | International Business Machines Corporation | Single shared instruction predecoder for supporting multiple processors |
US20080229065A1 (en) | 2007-03-13 | 2008-09-18 | Hung Qui Le | Configurable Microprocessor |
-
2008
- 2008-09-19 US US12/233,729 patent/US8135941B2/en not_active Expired - Fee Related
-
2009
- 2009-07-29 JP JP2009176387A patent/JP5698445B2/ja active Active
- 2009-09-16 TW TW098131291A patent/TW201028918A/zh unknown
- 2009-09-18 CN CN2009101719139A patent/CN101676865B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1996029646A1 (fr) * | 1995-03-17 | 1996-09-26 | Hitachi, Ltd. | Processeur |
JPH1185513A (ja) * | 1997-09-03 | 1999-03-30 | Hitachi Ltd | プロセッサ |
JP2002333978A (ja) * | 2001-05-08 | 2002-11-22 | Nec Corp | Vliw型プロセッサ |
JP2004362086A (ja) * | 2003-06-03 | 2004-12-24 | Matsushita Electric Ind Co Ltd | 情報処理装置および機械語プログラム変換装置 |
WO2006049331A1 (ja) * | 2004-11-05 | 2006-05-11 | Nec Corporation | Simd型並列演算装置、プロセッシング・エレメント、simd型並列演算装置の制御方式 |
WO2007141252A1 (en) * | 2006-06-08 | 2007-12-13 | International Business Machines Corporation | Local and global branch prediction information storage |
JP2009540412A (ja) * | 2006-06-08 | 2009-11-19 | インターナショナル・ビジネス・マシーンズ・コーポレーション | ローカル及びグローバル分岐予測情報の格納 |
JP2008015589A (ja) * | 2006-07-03 | 2008-01-24 | Nec Corp | Vliw型プロセッサおよび命令発行方法 |
WO2008023576A1 (fr) * | 2006-08-23 | 2008-02-28 | Nec Corporation | Élément de traitement, système de processeur parallèle en mode mixte, procédé pour élément de traitement, procédé pour processeur parallèle en mode mixte, programme pour élément de traitement, et programme pour processeur parallèle en mode mixte |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2016534433A (ja) * | 2013-10-23 | 2016-11-04 | テクノロギアン トゥトキムスケスクス ヴェーテーテー オイ | エミュレートされた共有メモリアーキテクチャのための浮動小数点サポートパイプライン |
US11797310B2 (en) | 2013-10-23 | 2023-10-24 | Teknologian Tutkimuskeskus Vtt Oy | Floating-point supportive pipeline for emulated shared memory architectures |
KR20220077076A (ko) * | 2020-12-01 | 2022-06-08 | 한국전자통신연구원 | 멀티 프로세서 시스템 및 그의 부동 소수점 연산 처리 방법 |
US11893392B2 (en) | 2020-12-01 | 2024-02-06 | Electronics And Telecommunications Research Institute | Multi-processor system and method for processing floating point operation thereof |
Also Published As
Publication number | Publication date |
---|---|
JP5698445B2 (ja) | 2015-04-08 |
CN101676865A (zh) | 2010-03-24 |
US8135941B2 (en) | 2012-03-13 |
CN101676865B (zh) | 2013-11-27 |
TW201028918A (en) | 2010-08-01 |
US20100077177A1 (en) | 2010-03-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5698445B2 (ja) | 多重プロセッサ・コア・ベクトル・モーフ結合機構 | |
US8756404B2 (en) | Cascaded delayed float/vector execution pipeline | |
TWI628594B (zh) | 用戶等級分叉及會合處理器、方法、系統及指令 | |
JP6628801B2 (ja) | プロセッサ・コアのための実行ユニット回路、プロセッサ・コア、およびプロセッサ・コア内のプログラム命令を実行する方法 | |
US7945763B2 (en) | Single shared instruction predecoder for supporting multiple processors | |
US6718457B2 (en) | Multiple-thread processor for threaded software applications | |
US6279100B1 (en) | Local stall control method and structure in a microprocessor | |
EP2480979B1 (en) | Unanimous branch instructions in a parallel thread processor | |
US20080148020A1 (en) | Low Cost Persistent Instruction Predecoded Issue and Dispatcher | |
WO2000033183A9 (en) | Method and structure for local stall control in a microprocessor | |
US20090164758A1 (en) | System and Method for Performing Locked Operations | |
US20080313438A1 (en) | Unified Cascaded Delayed Execution Pipeline for Fixed and Floating Point Instructions | |
US8001361B2 (en) | Structure for a single shared instruction predecoder for supporting multiple processors | |
US9594395B2 (en) | Clock routing techniques | |
US20010042187A1 (en) | Variable issue-width vliw processor | |
TWI546736B (zh) | 多執行緒圖形處理單元管線 | |
US6615338B1 (en) | Clustered architecture in a VLIW processor | |
JP5128382B2 (ja) | 複数のロード命令を実行するための方法および装置 | |
US20080141252A1 (en) | Cascaded Delayed Execution Pipeline | |
US20020087848A1 (en) | System and method for executing conditional branch instructions in a data processor | |
US20080162894A1 (en) | structure for a cascaded delayed execution pipeline | |
Wei et al. | A near-memory processor for vector, streaming and bit manipulation workloads | |
JP2006221644A (ja) | マルチプロセッサシステムにおいて命令を処理するための方法と装置 | |
US20090204787A1 (en) | Butterfly Physical Chip Floorplan to Allow an ILP Core Polymorphism Pairing | |
US20090204792A1 (en) | Scalar Processor Instruction Level Parallelism (ILP) Coupled Pair Morph Mechanism |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20120330 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20130930 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20131015 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20140114 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20140422 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20140822 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20140829 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20141014 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20141226 |
|
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: 20150127 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20150213 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5698445 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |