JP2005182825A - マルチスレッド式マイクロプロセッサのスレッドにまたがるアウト・オブ・オーダー命令ディスパッチ - Google Patents
マルチスレッド式マイクロプロセッサのスレッドにまたがるアウト・オブ・オーダー命令ディスパッチ Download PDFInfo
- Publication number
- JP2005182825A JP2005182825A JP2004367833A JP2004367833A JP2005182825A JP 2005182825 A JP2005182825 A JP 2005182825A JP 2004367833 A JP2004367833 A JP 2004367833A JP 2004367833 A JP2004367833 A JP 2004367833A JP 2005182825 A JP2005182825 A JP 2005182825A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- thread
- threads
- circuit
- buffer
- 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
- 239000000872 buffer Substances 0.000 claims abstract description 103
- 238000012545 processing Methods 0.000 claims description 30
- 238000000034 method Methods 0.000 claims description 27
- 230000004044 response Effects 0.000 claims description 10
- 230000008569 process Effects 0.000 claims description 7
- 238000012546 transfer Methods 0.000 claims description 3
- 230000002401 inhibitory effect Effects 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 12
- 238000013461 design Methods 0.000 description 10
- 238000012986 modification Methods 0.000 description 7
- 230000004048 modification Effects 0.000 description 7
- 230000009466 transformation Effects 0.000 description 7
- 238000000844 transformation Methods 0.000 description 7
- 238000006243 chemical reaction Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000001174 ascending effect Effects 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 238000001914 filtration Methods 0.000 description 2
- 238000007667 floating Methods 0.000 description 2
- 238000002156 mixing Methods 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 230000003068 static effect 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/3802—Instruction prefetching
-
- 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/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
- G06F9/3888—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by a single instruction for multiple threads [SIMT] in parallel
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
【解決手段】グラフィックス・プロセッサなどのマルチスレッド式マイクロプロセッサの命令ディスパッチがスレッドの間の順序によって制限されない。命令は、スレッドのそれぞれからの命令を記憶する命令バッファにフェッチされる。ディスパッチ回路はバッファ内のどの命令が実行の準備ができているかどうかを判定し、準備ができた命令を実行のために発行する。あるスレッドからの命令を、別のスレッドからの命令の前に、どちらの命令が最初にバッファにフェッチされたかに無関係に発行する。特定のスレッドからの命令が発行されろと、フェッチ回路は、そのスレッドからの次の命令によって、使用可能なバッファ充てんする。
【選択図】図1
Description
バッファ510は、命令の他のオペランドを収集している間に、収集されたオペランドを、その命令と一緒に記憶するように構成される。いくつかの実施形態では、イシュア506は、オペランドが収集されるや否や、実行モジュール142に命令を発行するように構成される。イシュア506は、ディスパッチされた順序で命令を発行する必要がない。たとえば、バッファ510内の命令を、ディスパッチされた順序に対応するシーケンスで記憶することができ、各クロック・サイクルに、イシュア506が、すべてのオペランドを有する命令が見つかるまでシーケンスをステップする(最も以前にディスパッチされた命令から始めて)ことによって、オペランドを有する最も古い命令を選択することができる。この命令が発行され、シーケンスでその後ろの命令が前にシフトされる。新たにディスパッチされた命令はシーケンスの末尾に追加される。このシーケンスを、たとえば、バッファ510内の物理的ストレージ・ロケーションの順序付きの組によって維持することができ、この場合に、前の命令が除去される時に、命令が異なる位置にシフトされる。
Claims (24)
- 複数のスレッドの並列処理のために構成されたマイクロプロセッサであって、各スレッドが命令のシーケンスを含み、
前記複数のスレッドのすべてに関する命令を実行するように構成された実行モジュールと、
それぞれが前記複数のスレッドのそれぞれの1つに関連する複数のストレージ・ロケーションを含む命令バッファと、
前記命令バッファの前記関連するストレージ・ロケーションが使用可能であるかどうかに少なくとも部分的に基づいて前記複数のスレッドの1つを選択し、前記複数のスレッドの前記選択された1つの前記シーケンス内の次の命令を前記命令バッファにフェッチするように構成されたフェッチ回路と、
前記命令バッファの前記記憶された命令のうちのどれが、実行の準備ができているかを判定し、実行モジュールに発行される準備のできている命令の1つを選択するように構成されたディスパッチ回路と
を含むマイクロプロセッサ。 - 前記フェッチ回路が、第1の順序で前記命令バッファに命令をフェッチし、前記ディスパッチ回路が、前記第1の順序と異なる第2の順序で準備ができている命令を選択する請求項1に記載のマイクロプロセッサ。
- 命令を記憶するように構成された命令キャッシュをさらに含み、前記フェッチ回路が、さらに、プログラム・カウンタ値を含む要求を前記命令キャッシュに送ることによって次の命令をフェッチするように構成される請求項1に記載のマイクロプロセッサ。
- 前記フェッチ回路が
前記複数のスレッドのそれぞれの候補プログラム・カウンタ値を生成するように構成されたプログラム・カウンタ・ロジックと、
前記命令バッファの前記ストレージ・ロケーションのどれが使用可能であるかの判定に少なくとも部分的に基づいて前記複数のスレッドの1つを選択するように構成された選択論理回路であって、さらに、対応する選択信号を供給するように構成される選択論理回路と、
前記選択信号を受け取り、前記選択されたスレッドに対応する前記候補プログラム・カウンタ値を前記命令キャッシュに送るアービトレーション回路と
を含む請求項3に記載のマイクロプロセッサ。 - 前記選択論理回路が、
優先順位制御信号に基づいて決定される、前記スレッドの間の優先順位ランキングに従って、前記複数のスレッドのうちで、前記命令バッファ内に命令を有しない1つを選択するように構成された優先順位エンコーダと、
前記優先順位制御信号を生成するように構成されたフェーズ・カウンタと
を含み、異なる時間に、前記優先順位制御信号が、前記スレッドの異なる1つに異なる優先順位ランキングを与える請求項4に記載のマイクロプロセッサ。 - 前記選択論理回路が、さらに、第1スレッドの選択の前の発生から最小時間が経過した後に限って、前記第1スレッドを選択するように構成される請求項4に記載のマイクロプロセッサ。
- 前記複数のスレッドが、第1スレッド・タイプを有するスレッドの第1グループと、第2スレッド・タイプを有するスレッドの第2グループを有し、前記選択論理回路が、さらに、各前記複数のスレッドのそれぞれのスレッド・タイプに少なくとも部分的に基づいて、前記複数のスレッドの1つを選択するように構成される請求項4に記載のマイクロプロセッサ。
- 前記選択論理回路が、さらに、前記第1スレッド・タイプを有する第1候補スレッドと前記第2スレッド・タイプを有する第2候補スレッドを選択し、前記それぞれのスレッド・タイプに基づいて前記第1候補スレッドと前記第2候補スレッドとの間で選択するように構成される請求項7に記載のマイクロプロセッサ。
- 前記実行モジュールによって生成される結果データを含む、前記複数のスレッドのそれぞれのデータを保持するように構成されたレジスタ・ファイルをさらに含む請求項1に記載のマイクロプロセッサ。
- 前記ディスパッチ回路が、
前記命令バッファと前記レジスタ・ファイルに結合され、前記命令バッファ内の各命令のレディ信号を生成するように構成されたスコアボード回路であって、各命令のレディ信号が、前記命令のソース・オペランドが前記レジスタ・ファイルに存在するかどうかに少なくとも部分的に基づいてアサートされるか、またはアサートされない、スコアボード回路と、
前記スコアボード回路と前記命令バッファに結合されたスケジューラ回路であって、前記レディ信号がアサートされている前記命令バッファ内の前記命令の1つを、次に発行される命令として選択し、対応する許可信号を前記命令バッファに送るように構成されるスケジューラ回路と、
前記命令バッファに結合されたイシュア回路であって、前記命令バッファが、さらに、前記許可信号に応答して、前記スケジューラ回路によって選択された前記命令を前記イシュア回路に送るように構成され、前記イシュア回路が、前記選択された命令の前記ソース・オペランドを前記レジスタ・ファイルから収集し、前記選択された命令と前記ソース・オペランドを前記実行モジュールに転送するように構成される、イシュア回路と
を含む請求項9に記載のマイクロプロセッサ。 - 前記スケジューラ回路が、さらに、各命令が前記命令バッファに記憶されていた時間の長さに少なくとも部分的に基づいて、次に発行される命令を選択するように構成される請求項10に記載のマイクロプロセッサ。
- 前記スケジューラ回路が、
前記レディ信号がアサートされている前記命令バッファ内の命令を有する、前記複数のスレッドのうちの1つを選択するように構成された優先順位エンコーダであって、前記スレッドの前記1つが、前記スレッドの間での優先順位ランキングに従って選択され、前記優先順位ランキングが優先順位制御信号に基づいて決定される、優先順位エンコーダと、
前記優先順位制御信号を生成するように構成されたフェーズ・カウンタと
を含み、異なる時間に、前記優先順位制御信号が、前記スレッドの異なる1つに異なる優先順位ランキングを与える請求項10に記載のマイクロプロセッサ。 - 前記複数のスレッドが、第1スレッド・タイプを有するスレッドの第1グループと第2スレッド・タイプを有するスレッドの第2グループを含み、前記スケジューラ回路が、さらに、各前記複数のスレッドのそれぞれのスレッド・タイプに少なくとも部分的に基づいて前記複数のスレッドの1つを選択するように構成される請求項10に記載のマイクロプロセッサ。
- 前記スケジューラ回路が、さらに、各前記スレッドの前記それぞれの命令に関連する動作の間の相対優先順位に少なくとも部分的に基づいて、前記複数のスレッドの1つを選択するように構成される請求項10に記載のマイクロプロセッサ。
- 前記実行モジュールが複数の実行パイプを含み、前記スケジューラ回路が、さらに、前記複数の実行パイプのどれが使用中でないかの判定に少なくとも部分的に基づいて前記複数のスレッドの1つを選択するように構成される請求項10に記載のマイクロプロセッサ。
- それぞれが命令のシーケンスを含む複数のスレッドを並列処理するように構成されたマイクロプロセッサで命令を処理する方法であって、
前記複数のスレッドのそれぞれからの命令を記憶するように構成された命令バッファに、前記複数のスレッドの第1の1つからの第1命令をフェッチするステップと、
その後、前記命令バッファに、前記複数のスレッドの第2の1つからの第2命令をフェッチするステップと、
前記第1命令と前記第2命令のうちの1つまたは複数が実行の準備ができているかどうかを判定するステップと、
実行のために前記第1命令と前記第2命令の準備ができている1つを発行するステップと
を含み、前記第2命令が実行の準備ができており、前記第1命令が実行の準備ができていない場合に、前記第1命令を発行する前に、前記第2命令が発行される方法。 - 発行の前記動作の後に、前記発行された命令が前記第1スレッドまたは前記第2スレッドのどちらのためにフェッチされたかを判定する動作と、
前記発行された命令に対応する前記スレッド内の次の命令である第3命令を、前記命令バッファにフェッチする動作と
をさらに含む請求項16に記載の方法。 - 前記第1命令をフェッチする前記動作が、
前記複数のスレッドのそれぞれから候補プログラム・カウンタ値を受け取る動作と、
前記複数のスレッドのそれぞれに優先順位ランキングを割り当てる動作であって、前記優先順位ランキングが、異なる時間に異なる動作と、
前記第1スレッドが、命令が前記命令バッファに記憶されていない最高優先順位のスレッドである場合に、前記複数のスレッドの中から前記第1スレッドを選択する動作と
を含み、前記第1命令が、前記第1スレッドの選択に応答してフェッチされる請求項16に記載の方法。 - 前記第1スレッドの選択の前の発生からの経過時間が最小時間未満である場合に、前記第1スレッドの選択の前記動作を抑止する動作をさらに含む請求項18に記載の方法。
- 前記複数のスレッドが、第1スレッド・タイプを有するスレッドの第1グループと第2スレッド・タイプを有するスレッドの第2グループを含み、前記第1スレッドが、スレッドの前記第1グループの1つであり、前記第1命令をフェッチする前記動作が、
前記複数のスレッドのそれぞれから候補プログラム・カウンタ値を受け取る動作と、
スレッドの前記第1グループのそれぞれに優先順位ランキングを割り当てる動作であって、前記優先順位ランキングが、異なる時間に異なる動作と、
前記第1スレッドが、命令が前記命令バッファに記憶されていない前記第1グループの最高優先順位のスレッドである場合に、スレッドの前記第1グループの中から前記第1スレッドを選択する動作と、
スレッドの前記第2グループの中から第3スレッドを選択する動作と、
前記第1スレッドと前記第3スレッドのそれぞれのスレッド・タイプに少なくとも部分的に基づいて、前記第1スレッドと前記第3スレッドの1つを選択する動作と
を含み、選択する前記動作が、前記第1スレッドを選択することになった場合に、前記第1命令がフェッチされる請求項16に記載の方法。 - 判定する前記動作が、
前記第1命令のソース・オペランドが使用可能であるかどうかを判定する動作と、
前記第2命令のソース・オペランドが使用可能であるかどうかを判定する動作と
を含む請求項16に記載の方法。 - 異なる時間に異なる優先順位ランキングを、前記複数のスレッドのそれぞれに割り当てること
をさらに含み、前記第1命令と前記第2命令の両方が、実行の準備ができている場合に、前記第1命令と前記第2命令の準備のできている1つを選択する前記動作が、前記第1スレッドと前記第2スレッドのどちらがより高い優先順位を有するかを判定する動作を含む請求項16に記載の方法。 - 前記第1スレッドが、第1スレッド・タイプを有し、前記第2スレッドが、第2スレッド・タイプを有し、前記第1命令と前記第2命令の両方が実行の準備ができている場合に、前記第1命令の準備ができている1つを選択する前記動作が、それぞれのスレッド・タイプに少なくとも部分的に基づいて前記第1命令と前記第2命令との間で選択することを含む請求項16に記載の方法。
- 複数の実行コアを含むグラフィックス・プロセッサと、
前記グラフィックス・プロセッサに結合されたグラフィックス・メモリと
を含むグラフィックス処理システムであって、
前記複数の実行コアのそれぞれが、
複数のスレッドのすべてに関する命令を実行するように構成された実行モジュールと、
前記複数のスレッドのそれぞれの1つに関連する複数のストレージ・ロケーションを含む命令バッファと、
前記命令バッファ内の前記関連するストレージ・ロケーションが使用可能であるかどうかに少なくとも部分的に基づいて前記複数のスレッドの1つを選択し、前記複数のスレッドの前記選択された1つのシーケンス内の次の命令を前記命令バッファにフェッチするように構成されたフェッチ回路と、
前記命令バッファ内の前記記憶された命令のどれが実行の準備ができているかを判定し、前記実行モジュールに発行される、前記準備のできている命令の1つを選択するように構成されたディスパッチ回路と
を含む、グラフィックス処理システム。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/742,514 US7310722B2 (en) | 2003-12-18 | 2003-12-18 | Across-thread out of order instruction dispatch in a multithreaded graphics processor |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2005182825A true JP2005182825A (ja) | 2005-07-07 |
JP2005182825A5 JP2005182825A5 (ja) | 2007-12-27 |
Family
ID=34620632
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004367833A Pending JP2005182825A (ja) | 2003-12-18 | 2004-12-20 | マルチスレッド式マイクロプロセッサのスレッドにまたがるアウト・オブ・オーダー命令ディスパッチ |
Country Status (6)
Country | Link |
---|---|
US (3) | US7310722B2 (ja) |
EP (1) | EP1555610B1 (ja) |
JP (1) | JP2005182825A (ja) |
DE (1) | DE602004026819D1 (ja) |
SG (1) | SG112989A1 (ja) |
TW (1) | TWI425418B (ja) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100810017B1 (ko) | 2005-11-30 | 2008-03-07 | 인터내셔널 비지네스 머신즈 코포레이션 | 서로 다른 스레드에 대한 비대칭 하드웨어 멀티스레딩지원을 갖는 디지털 데이터 처리 장치 |
JP2009512917A (ja) * | 2005-09-26 | 2009-03-26 | イマジネイション テクノロジーズ リミテッド | スケーラブルなマルチスレッド型メディア処理アーキテクチャ |
JP2011505633A (ja) * | 2007-11-30 | 2011-02-24 | クゥアルコム・インコーポレイテッド | グラフィックスシステムにおいて2次プロセッサを使用するための方法及びシステム |
KR20120058605A (ko) * | 2009-09-03 | 2012-06-07 | 어드밴스드 마이크로 디바이시즈, 인코포레이티드 | Gpu 워크의 하드웨어 기반 스케쥴링 |
JP2013196300A (ja) * | 2012-03-19 | 2013-09-30 | Fujitsu Ltd | 試験方法、試験装置及びプログラム |
JP2013537993A (ja) * | 2010-09-20 | 2013-10-07 | クゥアルコム・インコーポレイテッド | マルチプルプロセッサ計算プラットフォームにおけるプロセッサ間通信技法 |
JP2013250988A (ja) * | 2013-07-22 | 2013-12-12 | Panasonic Corp | マルチスレッドプロセッサ |
JP2014504416A (ja) * | 2010-12-15 | 2014-02-20 | アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド | 組み合わせたcpu/gpuアーキテクチャシステムにおけるデバイスの発見およびトポロジーのレポーティング |
WO2015155894A1 (ja) | 2014-04-11 | 2015-10-15 | 株式会社Murakumo | プロセッサーおよび方法 |
KR20220026117A (ko) * | 2020-08-25 | 2022-03-04 | 주식회사 엔씨소프트 | 게시판 서비스 제공 장치 및 방법, 게시판 서비스 요청 장치 및 방법 |
Families Citing this family (195)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9849372B2 (en) * | 2012-09-28 | 2017-12-26 | Sony Interactive Entertainment Inc. | Method and apparatus for improving efficiency without increasing latency in emulation of a legacy application title |
US7228486B2 (en) * | 2003-07-17 | 2007-06-05 | Lucent Technologies Inc. | Methods and devices for randomizing burst errors |
US8643659B1 (en) | 2003-12-31 | 2014-02-04 | 3Dlabs Inc., Ltd. | Shader with global and instruction caches |
US7418576B1 (en) * | 2004-11-17 | 2008-08-26 | Nvidia Corporation | Prioritized issuing of operation dedicated execution unit tagged instructions from multiple different type threads performing different set of operations |
US7631130B2 (en) * | 2005-02-04 | 2009-12-08 | Mips Technologies, Inc | Barrel-incrementer-based round-robin apparatus and instruction dispatch scheduler employing same for use in multithreading microprocessor |
US7613904B2 (en) * | 2005-02-04 | 2009-11-03 | Mips Technologies, Inc. | Interfacing external thread prioritizing policy enforcing logic with customer modifiable register to processor internal scheduler |
US7664936B2 (en) * | 2005-02-04 | 2010-02-16 | Mips Technologies, Inc. | Prioritizing thread selection partly based on stall likelihood providing status information of instruction operand register usage at pipeline stages |
US7506140B2 (en) * | 2005-02-04 | 2009-03-17 | Mips Technologies, Inc. | Return data selector employing barrel-incrementer-based round-robin apparatus |
US7752627B2 (en) * | 2005-02-04 | 2010-07-06 | Mips Technologies, Inc. | Leaky-bucket thread scheduler in a multithreading microprocessor |
US7490230B2 (en) * | 2005-02-04 | 2009-02-10 | Mips Technologies, Inc. | Fetch director employing barrel-incrementer-based round-robin apparatus for use in multithreading microprocessor |
US7681014B2 (en) * | 2005-02-04 | 2010-03-16 | Mips Technologies, Inc. | Multithreading instruction scheduler employing thread group priorities |
US7853777B2 (en) * | 2005-02-04 | 2010-12-14 | Mips Technologies, Inc. | Instruction/skid buffers in a multithreading microprocessor that store dispatched instructions to avoid re-fetching flushed instructions |
US7657891B2 (en) * | 2005-02-04 | 2010-02-02 | Mips Technologies, Inc. | Multithreading microprocessor with optimized thread scheduler for increasing pipeline utilization efficiency |
US7657883B2 (en) * | 2005-02-04 | 2010-02-02 | Mips Technologies, Inc. | Instruction dispatch scheduler employing round-robin apparatus supporting multiple thread priorities for use in multithreading microprocessor |
US7478276B2 (en) * | 2005-02-10 | 2009-01-13 | International Business Machines Corporation | Method for checkpointing instruction groups with out-of-order floating point instructions in a multi-threaded processor |
US7409589B2 (en) * | 2005-05-27 | 2008-08-05 | International Business Machines Corporation | Method and apparatus for reducing number of cycles required to checkpoint instructions in a multi-threaded processor |
US7689735B2 (en) * | 2005-10-03 | 2010-03-30 | Arm Limited | Instruction stream control |
US7797467B2 (en) | 2005-11-01 | 2010-09-14 | Lsi Corporation | Systems for implementing SDRAM controllers, and buses adapted to include advanced high performance bus features |
CN101449256B (zh) | 2006-04-12 | 2013-12-25 | 索夫特机械公司 | 对载明并行和依赖运算的指令矩阵进行处理的装置和方法 |
KR100837400B1 (ko) * | 2006-07-20 | 2008-06-12 | 삼성전자주식회사 | 멀티스레딩/비순차 병합 기법에 따라 처리하는 방법 및장치 |
US20080024510A1 (en) * | 2006-07-27 | 2008-01-31 | Via Technologies, Inc. | Texture engine, graphics processing unit and video processing method thereof |
US7990989B2 (en) * | 2006-09-16 | 2011-08-02 | Mips Technologies, Inc. | Transaction selector employing transaction queue group priorities in multi-port switch |
US7773621B2 (en) * | 2006-09-16 | 2010-08-10 | Mips Technologies, Inc. | Transaction selector employing round-robin apparatus supporting dynamic priorities in multi-port switch |
US7760748B2 (en) * | 2006-09-16 | 2010-07-20 | Mips Technologies, Inc. | Transaction selector employing barrel-incrementer-based round-robin apparatus supporting dynamic priorities in multi-port switch |
US7961745B2 (en) * | 2006-09-16 | 2011-06-14 | Mips Technologies, Inc. | Bifurcated transaction selector supporting dynamic priorities in multi-port switch |
US7859548B1 (en) | 2006-10-19 | 2010-12-28 | Nvidia Corporation | Offloading cube map calculations to a shader |
US7830387B2 (en) * | 2006-11-07 | 2010-11-09 | Microsoft Corporation | Parallel engine support in display driver model |
EP2527972A3 (en) | 2006-11-14 | 2014-08-06 | Soft Machines, Inc. | Apparatus and method for processing complex instruction formats in a multi- threaded architecture supporting various context switch modes and virtualization schemes |
US7958333B2 (en) * | 2007-05-30 | 2011-06-07 | XMOS Ltd. | Processor with memory access stage adapted to fetch an instruction of a thread when no memory access operation is detected |
JP5093237B2 (ja) * | 2007-06-20 | 2012-12-12 | 富士通株式会社 | 命令処理装置 |
EP2453350B1 (en) | 2007-06-20 | 2016-04-27 | Fujitsu Limited | Processing device |
US20090037918A1 (en) * | 2007-07-31 | 2009-02-05 | Advanced Micro Devices, Inc. | Thread sequencing for multi-threaded processor with instruction cache |
US8006073B1 (en) * | 2007-09-28 | 2011-08-23 | Oracle America, Inc. | Simultaneous speculative threading light mode |
US8073558B2 (en) | 2007-10-05 | 2011-12-06 | Honeywell International Inc | Critical resource notification system and interface device |
US8082420B2 (en) * | 2007-10-24 | 2011-12-20 | International Business Machines Corporation | Method and apparatus for executing instructions |
KR101335001B1 (ko) * | 2007-11-07 | 2013-12-02 | 삼성전자주식회사 | 프로세서 및 인스트럭션 스케줄링 방법 |
US8174534B2 (en) * | 2007-12-06 | 2012-05-08 | Via Technologies, Inc. | Shader processing systems and methods |
TWI462011B (zh) * | 2007-12-28 | 2014-11-21 | Accton Technology Corp | 程序之執行緒群組管理方法 |
US8086825B2 (en) | 2007-12-31 | 2011-12-27 | Advanced Micro Devices, Inc. | Processing pipeline having stage-specific thread selection and method thereof |
US7793080B2 (en) | 2007-12-31 | 2010-09-07 | Globalfoundries Inc. | Processing pipeline having parallel dispatch and method thereof |
US8880853B2 (en) | 2008-02-01 | 2014-11-04 | International Business Machines Corporation | CAM-based wake-and-go snooping engine for waking a thread put to sleep for spinning on a target address lock |
US8225120B2 (en) | 2008-02-01 | 2012-07-17 | International Business Machines Corporation | Wake-and-go mechanism with data exclusivity |
US8316218B2 (en) | 2008-02-01 | 2012-11-20 | International Business Machines Corporation | Look-ahead wake-and-go engine with speculative execution |
US8312458B2 (en) | 2008-02-01 | 2012-11-13 | International Business Machines Corporation | Central repository for wake-and-go mechanism |
US8452947B2 (en) | 2008-02-01 | 2013-05-28 | International Business Machines Corporation | Hardware wake-and-go mechanism and content addressable memory with instruction pre-fetch look-ahead to detect programming idioms |
US8516484B2 (en) | 2008-02-01 | 2013-08-20 | International Business Machines Corporation | Wake-and-go mechanism for a data processing system |
US8145849B2 (en) | 2008-02-01 | 2012-03-27 | International Business Machines Corporation | Wake-and-go mechanism with system bus response |
US8015379B2 (en) | 2008-02-01 | 2011-09-06 | International Business Machines Corporation | Wake-and-go mechanism with exclusive system bus response |
US8171476B2 (en) | 2008-02-01 | 2012-05-01 | International Business Machines Corporation | Wake-and-go mechanism with prioritization of threads |
US8732683B2 (en) | 2008-02-01 | 2014-05-20 | International Business Machines Corporation | Compiler providing idiom to idiom accelerator |
US8250396B2 (en) | 2008-02-01 | 2012-08-21 | International Business Machines Corporation | Hardware wake-and-go mechanism for a data processing system |
US8725992B2 (en) | 2008-02-01 | 2014-05-13 | International Business Machines Corporation | Programming language exposing idiom calls to a programming idiom accelerator |
US8788795B2 (en) | 2008-02-01 | 2014-07-22 | International Business Machines Corporation | Programming idiom accelerator to examine pre-fetched instruction streams for multiple processors |
US8612977B2 (en) | 2008-02-01 | 2013-12-17 | International Business Machines Corporation | Wake-and-go mechanism with software save of thread state |
US8341635B2 (en) | 2008-02-01 | 2012-12-25 | International Business Machines Corporation | Hardware wake-and-go mechanism with look-ahead polling |
US8386822B2 (en) | 2008-02-01 | 2013-02-26 | International Business Machines Corporation | Wake-and-go mechanism with data monitoring |
US8640141B2 (en) | 2008-02-01 | 2014-01-28 | International Business Machines Corporation | Wake-and-go mechanism with hardware private array |
US8127080B2 (en) | 2008-02-01 | 2012-02-28 | International Business Machines Corporation | Wake-and-go mechanism with system address bus transaction master |
US8145723B2 (en) | 2009-04-16 | 2012-03-27 | International Business Machines Corporation | Complex remote update programming idiom accelerator |
US8230201B2 (en) | 2009-04-16 | 2012-07-24 | International Business Machines Corporation | Migrating sleeping and waking threads between wake-and-go mechanisms in a multiple processor data processing system |
US8082315B2 (en) | 2009-04-16 | 2011-12-20 | International Business Machines Corporation | Programming idiom accelerator for remote update |
US8886919B2 (en) | 2009-04-16 | 2014-11-11 | International Business Machines Corporation | Remote update programming idiom accelerator with allocated processor resources |
US9690625B2 (en) * | 2009-06-16 | 2017-06-27 | Oracle America, Inc. | System and method for out-of-order resource allocation and deallocation in a threaded machine |
JP5463076B2 (ja) * | 2009-05-28 | 2014-04-09 | パナソニック株式会社 | マルチスレッドプロセッサ |
US8671191B2 (en) | 2009-07-17 | 2014-03-11 | Honeywell International Inc. | Installation system for demand response resources |
US8667132B2 (en) | 2009-07-17 | 2014-03-04 | Honeywell International Inc. | Arrangement for communication about and management of a resource using a mobile device |
US9818073B2 (en) | 2009-07-17 | 2017-11-14 | Honeywell International Inc. | Demand response management system |
US9124535B2 (en) | 2009-07-17 | 2015-09-01 | Honeywell International Inc. | System for using attributes to deploy demand response resources |
US9137050B2 (en) | 2009-07-17 | 2015-09-15 | Honeywell International Inc. | Demand response system incorporating a graphical processing unit |
US8782190B2 (en) * | 2009-07-17 | 2014-07-15 | Honeywell International, Inc. | Demand response management system |
US8676953B2 (en) | 2009-07-17 | 2014-03-18 | Honeywell International Inc. | Use of aggregated groups for managing demand response resources |
US8572230B2 (en) | 2009-07-17 | 2013-10-29 | Honeywell International Inc. | System for using attributes to deploy demand response resources |
US8671167B2 (en) * | 2009-07-17 | 2014-03-11 | Honeywell International Inc. | System for providing demand response services |
US8607234B2 (en) * | 2009-07-22 | 2013-12-10 | Empire Technology Development, Llc | Batch scheduling with thread segregation and per thread type marking caps |
US8799912B2 (en) * | 2009-07-22 | 2014-08-05 | Empire Technology Development Llc | Application selection of memory request scheduling |
US8839255B2 (en) * | 2009-07-23 | 2014-09-16 | Empire Technology Development Llc | Scheduling of threads by batch scheduling |
JP2011065489A (ja) * | 2009-09-17 | 2011-03-31 | Sony Corp | 情報処理装置、データ表示方法及びプログラム |
US9189242B2 (en) * | 2009-09-24 | 2015-11-17 | Nvidia Corporation | Credit-based streaming multiprocessor warp scheduling |
US8370671B2 (en) * | 2009-12-02 | 2013-02-05 | International Business Machines Corporation | Saving power by powering down an instruction fetch array based on capacity history of instruction buffer |
TWI506434B (zh) * | 2010-03-29 | 2015-11-01 | Via Tech Inc | 預取單元、資料預取方法、電腦程式產品以及微處理器 |
TWI474280B (zh) * | 2010-04-21 | 2015-02-21 | Via Tech Inc | 增進繪圖處理單元之總處理量的方法與系統 |
US20110276784A1 (en) * | 2010-05-10 | 2011-11-10 | Telefonaktiebolaget L M Ericsson (Publ) | Hierarchical multithreaded processing |
US9058675B2 (en) | 2010-05-29 | 2015-06-16 | Intel Corporation | Non-volatile storage for graphics hardware |
CN102063289B (zh) * | 2010-09-07 | 2013-10-16 | 中国科学技术大学 | 串行程序线程级推测执行能力评估方法和评估器 |
EP2616928B1 (en) | 2010-09-17 | 2016-11-02 | Soft Machines, Inc. | Single cycle multi-branch prediction including shadow cache for early far branch prediction |
US8904115B2 (en) | 2010-09-28 | 2014-12-02 | Texas Instruments Incorporated | Cache with multiple access pipelines |
US8630744B2 (en) | 2011-01-28 | 2014-01-14 | Honeywell International Inc. | Management and monitoring of automated demand response in a multi-site enterprise |
US9153001B2 (en) | 2011-01-28 | 2015-10-06 | Honeywell International Inc. | Approach for managing distribution of automated demand response events in a multi-site enterprise |
US8626354B2 (en) | 2011-01-28 | 2014-01-07 | Honeywell International Inc. | Approach for normalizing automated demand response events in energy management control systems |
EP2689327B1 (en) | 2011-03-25 | 2021-07-28 | Intel Corporation | Executing instruction sequence code blocks by using virtual cores instantiated by partitionable engines |
KR101966712B1 (ko) | 2011-03-25 | 2019-04-09 | 인텔 코포레이션 | 분할가능한 엔진에 의해 인스턴스화된 가상 코어를 이용한 코드 블록의 실행을 지원하는 메모리 프래그먼트 |
TWI518504B (zh) | 2011-03-25 | 2016-01-21 | 軟體機器公司 | 使用可分割引擎實體化的虛擬核心以支援程式碼區塊執行的暫存器檔案節段 |
KR101639854B1 (ko) | 2011-05-20 | 2016-07-14 | 소프트 머신즈, 인크. | 복수의 엔진에 의해 명령어 시퀀스들의 실행을 지원하기 위한 상호접속 구조 |
WO2012162188A2 (en) | 2011-05-20 | 2012-11-29 | Soft Machines, Inc. | Decentralized allocation of resources and interconnect structures to support the execution of instruction sequences by a plurality of engines |
US9128769B2 (en) | 2011-10-13 | 2015-09-08 | Cavium, Inc. | Processor with dedicated virtual functions and dynamic assignment of functional resources |
US9129060B2 (en) | 2011-10-13 | 2015-09-08 | Cavium, Inc. | QoS based dynamic execution engine selection |
DE102012220365A1 (de) * | 2011-11-10 | 2013-05-16 | Nvidia Corp. | Aufgabe-Thread-Feld-Granularität-Ausführung-Präemption |
CN102495726B (zh) * | 2011-11-15 | 2015-05-20 | 无锡德思普科技有限公司 | 机会多线程方法及处理器 |
CN108427574B (zh) | 2011-11-22 | 2022-06-07 | 英特尔公司 | 微处理器加速的代码优化器 |
US10191746B2 (en) | 2011-11-22 | 2019-01-29 | Intel Corporation | Accelerated code optimizer for a multiengine microprocessor |
US20130141447A1 (en) * | 2011-12-06 | 2013-06-06 | Advanced Micro Devices, Inc. | Method and Apparatus for Accommodating Multiple, Concurrent Work Inputs |
US8933942B2 (en) | 2011-12-08 | 2015-01-13 | Advanced Micro Devices, Inc. | Partitioning resources of a processor |
US8639882B2 (en) * | 2011-12-14 | 2014-01-28 | Nvidia Corporation | Methods and apparatus for source operand collector caching |
US8949575B2 (en) | 2011-12-14 | 2015-02-03 | International Business Machines Corporation | Reversing processing order in half-pumped SIMD execution units to achieve K cycle issue-to-issue latency |
US10146545B2 (en) | 2012-03-13 | 2018-12-04 | Nvidia Corporation | Translation address cache for a microprocessor |
CN108681519B (zh) * | 2012-03-30 | 2022-04-08 | 英特尔公司 | 用于从多线程发送请求至加速器的机制 |
WO2013147852A1 (en) * | 2012-03-30 | 2013-10-03 | Intel Corporation | Instruction scheduling for a multi-strand out-of-order processor |
US9880846B2 (en) | 2012-04-11 | 2018-01-30 | Nvidia Corporation | Improving hit rate of code translation redirection table with replacement strategy based on usage history table of evicted entries |
JP5894496B2 (ja) | 2012-05-01 | 2016-03-30 | ルネサスエレクトロニクス株式会社 | 半導体装置 |
KR20130123645A (ko) * | 2012-05-03 | 2013-11-13 | 삼성전자주식회사 | 그래픽 처리 장치를 위한 동적 로드 밸런싱 장치 및 방법 |
US9875105B2 (en) | 2012-05-03 | 2018-01-23 | Nvidia Corporation | Checkpointed buffer for re-entry from runahead |
US10241810B2 (en) | 2012-05-18 | 2019-03-26 | Nvidia Corporation | Instruction-optimizing processor with branch-count table in hardware |
US9645929B2 (en) | 2012-09-14 | 2017-05-09 | Nvidia Corporation | Speculative permission acquisition for shared memory |
US20140081704A1 (en) | 2012-09-15 | 2014-03-20 | Honeywell International Inc. | Decision support system based on energy markets |
US11013993B2 (en) | 2012-09-28 | 2021-05-25 | Sony Interactive Entertainment Inc. | Pre-loading translated code in cloud based emulated applications |
US10001996B2 (en) | 2012-10-26 | 2018-06-19 | Nvidia Corporation | Selective poisoning of data during runahead |
US9740553B2 (en) | 2012-11-14 | 2017-08-22 | Nvidia Corporation | Managing potentially invalid results during runahead |
TWI462020B (zh) * | 2012-11-28 | 2014-11-21 | Htc Corp | 執行緒管理方法及其電子裝置 |
US9389850B2 (en) | 2012-11-29 | 2016-07-12 | Honeywell International Inc. | System and approach to manage versioning of field devices in a multi-site enterprise |
US9632976B2 (en) | 2012-12-07 | 2017-04-25 | Nvidia Corporation | Lazy runahead operation for a microprocessor |
US9569214B2 (en) | 2012-12-27 | 2017-02-14 | Nvidia Corporation | Execution pipeline data forwarding |
US20140189310A1 (en) | 2012-12-27 | 2014-07-03 | Nvidia Corporation | Fault detection in instruction translations |
US9823931B2 (en) | 2012-12-28 | 2017-11-21 | Nvidia Corporation | Queued instruction re-dispatch after runahead |
US10108424B2 (en) | 2013-03-14 | 2018-10-23 | Nvidia Corporation | Profiling code portions to generate translations |
US9547602B2 (en) | 2013-03-14 | 2017-01-17 | Nvidia Corporation | Translation lookaside buffer entry systems and methods |
US9569216B2 (en) | 2013-03-15 | 2017-02-14 | Soft Machines, Inc. | Method for populating a source view data structure by using register template snapshots |
US9904625B2 (en) | 2013-03-15 | 2018-02-27 | Intel Corporation | Methods, systems and apparatus for predicting the way of a set associative cache |
US10140138B2 (en) | 2013-03-15 | 2018-11-27 | Intel Corporation | Methods, systems and apparatus for supporting wide and efficient front-end operation with guest-architecture emulation |
WO2014150806A1 (en) | 2013-03-15 | 2014-09-25 | Soft Machines, Inc. | A method for populating register view data structure by using register template snapshots |
US9886279B2 (en) | 2013-03-15 | 2018-02-06 | Intel Corporation | Method for populating and instruction view data structure by using register template snapshots |
EP2972845B1 (en) | 2013-03-15 | 2021-07-07 | Intel Corporation | A method for executing multithreaded instructions grouped onto blocks |
WO2014150971A1 (en) | 2013-03-15 | 2014-09-25 | Soft Machines, Inc. | A method for dependency broadcasting through a block organized source view data structure |
US9442755B2 (en) * | 2013-03-15 | 2016-09-13 | Nvidia Corporation | System and method for hardware scheduling of indexed barriers |
WO2014150991A1 (en) | 2013-03-15 | 2014-09-25 | Soft Machines, Inc. | A method for implementing a reduced size register view data structure in a microprocessor |
KR102083390B1 (ko) | 2013-03-15 | 2020-03-02 | 인텔 코포레이션 | 네이티브 분산된 플래그 아키텍처를 이용하여 게스트 중앙 플래그 아키텍처를 에뮬레이션하는 방법 |
US9891924B2 (en) | 2013-03-15 | 2018-02-13 | Intel Corporation | Method for implementing a reduced size register view data structure in a microprocessor |
US9811342B2 (en) | 2013-03-15 | 2017-11-07 | Intel Corporation | Method for performing dual dispatch of blocks and half blocks |
US10275255B2 (en) | 2013-03-15 | 2019-04-30 | Intel Corporation | Method for dependency broadcasting through a source organized source view data structure |
CN104063270B (zh) * | 2013-03-22 | 2017-06-23 | 斯克林集团公司 | 加标签方法、加标签装置以及缺陷检查装置 |
JP6152034B2 (ja) * | 2013-03-22 | 2017-06-21 | 株式会社Screenホールディングス | ラベリング方法、ラベリング装置および欠陥検査装置 |
US9792252B2 (en) | 2013-05-31 | 2017-10-17 | Microsoft Technology Licensing, Llc | Incorporating a spatial array into one or more programmable processor cores |
US10346931B2 (en) | 2013-07-11 | 2019-07-09 | Honeywell International Inc. | Arrangement for communicating demand response resource incentives |
US9989937B2 (en) | 2013-07-11 | 2018-06-05 | Honeywell International Inc. | Predicting responses of resources to demand response signals and having comfortable demand responses |
US9691076B2 (en) | 2013-07-11 | 2017-06-27 | Honeywell International Inc. | Demand response system having a participation predictor |
US9582280B2 (en) | 2013-07-18 | 2017-02-28 | Nvidia Corporation | Branching to alternate code based on runahead determination |
US10062135B2 (en) * | 2013-07-31 | 2018-08-28 | National Technology & Engineering Solutions Of Sandia, Llc | Graphics processing unit management system for computed tomography |
KR20150019349A (ko) * | 2013-08-13 | 2015-02-25 | 삼성전자주식회사 | 다중 쓰레드 실행 프로세서 및 이의 동작 방법 |
US20150074353A1 (en) * | 2013-09-06 | 2015-03-12 | Futurewei Technologies, Inc. | System and Method for an Asynchronous Processor with Multiple Threading |
US9417920B2 (en) * | 2013-10-04 | 2016-08-16 | Freescale Semiconductor, Inc. | Method and apparatus for dynamic resource partition in simultaneous multi-thread microprocessor |
GB2521155B (en) * | 2013-12-10 | 2021-06-02 | Advanced Risc Mach Ltd | Configuring thread scheduling on a multi-threaded data processing apparatus |
GB2521151B (en) | 2013-12-10 | 2021-06-02 | Advanced Risc Mach Ltd | Configurable thread ordering for a data processing apparatus |
US9589311B2 (en) * | 2013-12-18 | 2017-03-07 | Intel Corporation | Independent thread saturation of graphics processing units |
US9471307B2 (en) * | 2014-01-03 | 2016-10-18 | Nvidia Corporation | System and processor that include an implementation of decoupled pipelines |
US20150220343A1 (en) * | 2014-02-05 | 2015-08-06 | Mill Computing, Inc. | Computer Processor Employing Phases of Operations Contained in Wide Instructions |
US9558000B2 (en) | 2014-02-06 | 2017-01-31 | Optimum Semiconductor Technologies, Inc. | Multithreading using an ordered list of hardware contexts |
US9766894B2 (en) | 2014-02-06 | 2017-09-19 | Optimum Semiconductor Technologies, Inc. | Method and apparatus for enabling a processor to generate pipeline control signals |
US9665078B2 (en) | 2014-03-25 | 2017-05-30 | Honeywell International Inc. | System for propagating messages for purposes of demand response |
WO2015145192A1 (en) * | 2014-03-27 | 2015-10-01 | Intel Corporation | Processor logic and method for dispatching instructions from multiple strands |
US10902545B2 (en) * | 2014-08-19 | 2021-01-26 | Apple Inc. | GPU task scheduling |
US9824414B2 (en) | 2014-12-09 | 2017-11-21 | Intel Corporation | Thread dispatching for graphics processors |
US10346170B2 (en) | 2015-05-05 | 2019-07-09 | Intel Corporation | Performing partial register write operations in a processor |
US9952867B2 (en) | 2015-06-26 | 2018-04-24 | Microsoft Technology Licensing, Llc | Mapping instruction blocks based on block size |
US10409599B2 (en) | 2015-06-26 | 2019-09-10 | Microsoft Technology Licensing, Llc | Decoding information about a group of instructions including a size of the group of instructions |
US10169044B2 (en) | 2015-06-26 | 2019-01-01 | Microsoft Technology Licensing, Llc | Processing an encoding format field to interpret header information regarding a group of instructions |
US9720693B2 (en) | 2015-06-26 | 2017-08-01 | Microsoft Technology Licensing, Llc | Bulk allocation of instruction blocks to a processor instruction window |
US10191747B2 (en) | 2015-06-26 | 2019-01-29 | Microsoft Technology Licensing, Llc | Locking operand values for groups of instructions executed atomically |
US10175988B2 (en) | 2015-06-26 | 2019-01-08 | Microsoft Technology Licensing, Llc | Explicit instruction scheduler state information for a processor |
US10346168B2 (en) | 2015-06-26 | 2019-07-09 | Microsoft Technology Licensing, Llc | Decoupled processor instruction window and operand buffer |
US9946548B2 (en) | 2015-06-26 | 2018-04-17 | Microsoft Technology Licensing, Llc | Age-based management of instruction blocks in a processor instruction window |
US10409606B2 (en) | 2015-06-26 | 2019-09-10 | Microsoft Technology Licensing, Llc | Verifying branch targets |
GB2540543B (en) * | 2015-07-20 | 2020-03-11 | Advanced Risc Mach Ltd | Graphics processing |
TWI564807B (zh) | 2015-11-16 | 2017-01-01 | 財團法人工業技術研究院 | 排程方法及應用其的處理裝置 |
US10622032B2 (en) * | 2015-12-08 | 2020-04-14 | Rambus Inc. | Low power signaling interface |
US9977677B2 (en) | 2016-04-07 | 2018-05-22 | International Business Machines Corporation | Execution slice with supplemental instruction port for an instruction using a source operand from another instruction port |
US20170337062A1 (en) * | 2016-05-19 | 2017-11-23 | Centipede Semi Ltd. | Single-thread speculative multi-threading |
US10410097B2 (en) | 2016-06-06 | 2019-09-10 | Mutualink, Inc. | System and method for distributed intelligent pattern recognition |
US10541556B2 (en) | 2017-04-27 | 2020-01-21 | Honeywell International Inc. | System and approach to integrate and manage diverse demand response specifications for multi-site enterprises |
WO2019089816A2 (en) | 2017-10-31 | 2019-05-09 | Micron Technology, Inc. | System having a hybrid threading processor, a hybrid threading fabric having configurable computing elements, and a hybrid interconnection network |
US11513839B2 (en) | 2018-05-07 | 2022-11-29 | Micron Technology, Inc. | Memory request size management in a multi-threaded, self-scheduling processor |
US11119782B2 (en) | 2018-05-07 | 2021-09-14 | Micron Technology, Inc. | Thread commencement using a work descriptor packet in a self-scheduling processor |
US11513837B2 (en) | 2018-05-07 | 2022-11-29 | Micron Technology, Inc. | Thread commencement and completion using work descriptor packets in a system having a self-scheduling processor and a hybrid threading fabric |
US11157286B2 (en) | 2018-05-07 | 2021-10-26 | Micron Technology, Inc. | Non-cached loads and stores in a system having a multi-threaded, self-scheduling processor |
US11132233B2 (en) | 2018-05-07 | 2021-09-28 | Micron Technology, Inc. | Thread priority management in a multi-threaded, self-scheduling processor |
US11126587B2 (en) | 2018-05-07 | 2021-09-21 | Micron Technology, Inc. | Event messaging in a system having a self-scheduling processor and a hybrid threading fabric |
US11513838B2 (en) | 2018-05-07 | 2022-11-29 | Micron Technology, Inc. | Thread state monitoring in a system having a multi-threaded, self-scheduling processor |
US11068305B2 (en) | 2018-05-07 | 2021-07-20 | Micron Technology, Inc. | System call management in a user-mode, multi-threaded, self-scheduling processor |
US11513840B2 (en) | 2018-05-07 | 2022-11-29 | Micron Technology, Inc. | Thread creation on local or remote compute elements by a multi-threaded, self-scheduling processor |
US11119972B2 (en) | 2018-05-07 | 2021-09-14 | Micron Technology, Inc. | Multi-threaded, self-scheduling processor |
US11074078B2 (en) | 2018-05-07 | 2021-07-27 | Micron Technology, Inc. | Adjustment of load access size by a multi-threaded, self-scheduling processor to manage network congestion |
US10796472B2 (en) * | 2018-06-30 | 2020-10-06 | Intel Corporation | Method and apparatus for simultaneously executing multiple contexts on a graphics engine |
US10721172B2 (en) | 2018-07-06 | 2020-07-21 | Marvell Asia Pte, Ltd. | Limiting backpressure with bad actors |
US11003457B2 (en) * | 2019-01-23 | 2021-05-11 | Mediatek Inc. | Power-saving mechanism for memory sub-system in pipelined processor |
US11321123B2 (en) * | 2019-11-21 | 2022-05-03 | International Business Machines Corporation | Determining an optimum number of threads to make available per core in a multi-core processor complex to executive tasks |
US10891708B1 (en) | 2019-11-25 | 2021-01-12 | Arm Limited | Shader program execution in graphics processing |
US11775185B2 (en) * | 2020-09-17 | 2023-10-03 | Micron Technology, Inc. | Power budget arbitration for multiple concurrent access operations in a memory device |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS4834447A (ja) * | 1971-08-31 | 1973-05-18 | ||
JPH05224923A (ja) * | 1991-11-22 | 1993-09-03 | Internatl Business Mach Corp <Ibm> | ハイブリッドパイプライン接続プロセッサおよびその処理方法 |
JPH0644089A (ja) * | 1992-05-18 | 1994-02-18 | Matsushita Electric Ind Co Ltd | 情報処理装置 |
US6073159A (en) * | 1996-12-31 | 2000-06-06 | Compaq Computer Corporation | Thread properties attribute vector based thread selection in multithreading processor |
WO2001077821A1 (en) * | 2000-03-30 | 2001-10-18 | Intel Corporation | Method and apparatus for writing instructions into a buffer queue including overwriting invalid entries |
WO2002006959A1 (en) * | 2000-07-14 | 2002-01-24 | Clearwater Networks, Inc. | Instruction fetch and dispatch in multithreaded system |
WO2002019101A1 (fr) * | 2000-08-31 | 2002-03-07 | Hajime Seki | Systeme informatique |
JP2002268878A (ja) * | 2001-03-07 | 2002-09-20 | Hitachi Ltd | スレッド間優先度可変プロセッサ |
JP2002342163A (ja) * | 2001-05-15 | 2002-11-29 | Fujitsu Ltd | マルチスレッドプロセッサ用キャッシュ制御方式 |
US6493741B1 (en) * | 1999-10-01 | 2002-12-10 | Compaq Information Technologies Group, L.P. | Method and apparatus to quiesce a portion of a simultaneous multithreaded central processing unit |
JP2003516570A (ja) * | 1999-12-09 | 2003-05-13 | インテル・コーポレーション | マルチスレッド・プロセッサ内の複数のスレッドに入り、出る方法と装置 |
WO2003058447A2 (en) * | 2001-12-31 | 2003-07-17 | Intel Corporation | A method and apparatus for suspending execution of a thread until a specified memory access occurs |
JP2003223359A (ja) * | 2002-01-29 | 2003-08-08 | Fujitsu Ltd | 演算処理装置 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3725871A (en) * | 1971-02-11 | 1973-04-03 | Honeywell Inf Systems | Multi function polling technique |
US5539911A (en) * | 1991-07-08 | 1996-07-23 | Seiko Epson Corporation | High-performance, superscalar-based computer system with out-of-order instruction execution |
GB2287111B (en) * | 1994-03-01 | 1998-08-05 | Intel Corp | Method for pipeline processing of instructions by controlling access to a reorder buffer using a register file outside the reorder buffer |
JPH08320797A (ja) | 1995-05-24 | 1996-12-03 | Fuji Xerox Co Ltd | プログラム制御システム |
US6010476A (en) * | 1996-12-02 | 2000-01-04 | Angiotrax, Inc. | Apparatus for performing transmyocardial revascularization |
US6689103B1 (en) * | 1999-05-07 | 2004-02-10 | Scimed Life System, Inc. | Injection array apparatus and method |
US6574725B1 (en) * | 1999-11-01 | 2003-06-03 | Advanced Micro Devices, Inc. | Method and mechanism for speculatively executing threads of instructions |
US7015930B2 (en) * | 2003-08-01 | 2006-03-21 | Ati Technologies Inc. | Method and apparatus for interpolating pixel parameters based on a plurality of vertex values |
US6897871B1 (en) | 2003-11-20 | 2005-05-24 | Ati Technologies Inc. | Graphics processing architecture employing a unified shader |
US7418576B1 (en) * | 2004-11-17 | 2008-08-26 | Nvidia Corporation | Prioritized issuing of operation dedicated execution unit tagged instructions from multiple different type threads performing different set of operations |
US20070030280A1 (en) * | 2005-08-08 | 2007-02-08 | Via Technologies, Inc. | Global spreader and method for a parallel graphics processor |
-
2003
- 2003-12-18 US US10/742,514 patent/US7310722B2/en active Active
-
2004
- 2004-12-15 TW TW093138921A patent/TWI425418B/zh active
- 2004-12-16 DE DE602004026819T patent/DE602004026819D1/de active Active
- 2004-12-16 EP EP04029906A patent/EP1555610B1/en active Active
- 2004-12-17 SG SG200407503A patent/SG112989A1/en unknown
- 2004-12-20 JP JP2004367833A patent/JP2005182825A/ja active Pending
-
2006
- 2006-10-10 US US11/548,272 patent/US7676657B2/en active Active
-
2010
- 2010-01-20 US US12/690,225 patent/US20100122067A1/en not_active Abandoned
Patent Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS4834447A (ja) * | 1971-08-31 | 1973-05-18 | ||
JPH05224923A (ja) * | 1991-11-22 | 1993-09-03 | Internatl Business Mach Corp <Ibm> | ハイブリッドパイプライン接続プロセッサおよびその処理方法 |
JPH0644089A (ja) * | 1992-05-18 | 1994-02-18 | Matsushita Electric Ind Co Ltd | 情報処理装置 |
US6073159A (en) * | 1996-12-31 | 2000-06-06 | Compaq Computer Corporation | Thread properties attribute vector based thread selection in multithreading processor |
US6493741B1 (en) * | 1999-10-01 | 2002-12-10 | Compaq Information Technologies Group, L.P. | Method and apparatus to quiesce a portion of a simultaneous multithreaded central processing unit |
JP2003516570A (ja) * | 1999-12-09 | 2003-05-13 | インテル・コーポレーション | マルチスレッド・プロセッサ内の複数のスレッドに入り、出る方法と装置 |
WO2001077821A1 (en) * | 2000-03-30 | 2001-10-18 | Intel Corporation | Method and apparatus for writing instructions into a buffer queue including overwriting invalid entries |
WO2002006959A1 (en) * | 2000-07-14 | 2002-01-24 | Clearwater Networks, Inc. | Instruction fetch and dispatch in multithreaded system |
JP2004518183A (ja) * | 2000-07-14 | 2004-06-17 | クリアウオーター・ネツトワークス・インコーポレイテツド | マルチスレッド・システムにおける命令のフェッチとディスパッチ |
WO2002019101A1 (fr) * | 2000-08-31 | 2002-03-07 | Hajime Seki | Systeme informatique |
JP2002268878A (ja) * | 2001-03-07 | 2002-09-20 | Hitachi Ltd | スレッド間優先度可変プロセッサ |
JP2002342163A (ja) * | 2001-05-15 | 2002-11-29 | Fujitsu Ltd | マルチスレッドプロセッサ用キャッシュ制御方式 |
WO2003058447A2 (en) * | 2001-12-31 | 2003-07-17 | Intel Corporation | A method and apparatus for suspending execution of a thread until a specified memory access occurs |
JP2006500639A (ja) * | 2001-12-31 | 2006-01-05 | インテル コーポレイション | 指定されたメモリアクセスが発生するまでスレッドの実行をサスペンドする方法及び装置 |
JP2003223359A (ja) * | 2002-01-29 | 2003-08-08 | Fujitsu Ltd | 演算処理装置 |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009512917A (ja) * | 2005-09-26 | 2009-03-26 | イマジネイション テクノロジーズ リミテッド | スケーラブルなマルチスレッド型メディア処理アーキテクチャ |
KR100810017B1 (ko) | 2005-11-30 | 2008-03-07 | 인터내셔널 비지네스 머신즈 코포레이션 | 서로 다른 스레드에 대한 비대칭 하드웨어 멀티스레딩지원을 갖는 디지털 데이터 처리 장치 |
US8922565B2 (en) | 2007-11-30 | 2014-12-30 | Qualcomm Incorporated | System and method for using a secondary processor in a graphics system |
JP2011505633A (ja) * | 2007-11-30 | 2011-02-24 | クゥアルコム・インコーポレイテッド | グラフィックスシステムにおいて2次プロセッサを使用するための方法及びシステム |
KR20120058605A (ko) * | 2009-09-03 | 2012-06-07 | 어드밴스드 마이크로 디바이시즈, 인코포레이티드 | Gpu 워크의 하드웨어 기반 스케쥴링 |
JP2013504127A (ja) * | 2009-09-03 | 2013-02-04 | アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド | Gpuワークのハードウエアベースでのスケジューリング |
KR101587201B1 (ko) | 2009-09-03 | 2016-01-20 | 어드밴스드 마이크로 디바이시즈, 인코포레이티드 | Gpu 워크의 하드웨어 기반 스케쥴링 |
US9626234B2 (en) | 2010-09-20 | 2017-04-18 | Qualcomm Incorporated | Inter-processor communication techniques in a multiple-processor computing platform |
JP2013537993A (ja) * | 2010-09-20 | 2013-10-07 | クゥアルコム・インコーポレイテッド | マルチプルプロセッサ計算プラットフォームにおけるプロセッサ間通信技法 |
US9645866B2 (en) | 2010-09-20 | 2017-05-09 | Qualcomm Incorporated | Inter-processor communication techniques in a multiple-processor computing platform |
JP2014504416A (ja) * | 2010-12-15 | 2014-02-20 | アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド | 組み合わせたcpu/gpuアーキテクチャシステムにおけるデバイスの発見およびトポロジーのレポーティング |
JP2013196300A (ja) * | 2012-03-19 | 2013-09-30 | Fujitsu Ltd | 試験方法、試験装置及びプログラム |
JP2013250988A (ja) * | 2013-07-22 | 2013-12-12 | Panasonic Corp | マルチスレッドプロセッサ |
WO2015155894A1 (ja) | 2014-04-11 | 2015-10-15 | 株式会社Murakumo | プロセッサーおよび方法 |
KR20220026117A (ko) * | 2020-08-25 | 2022-03-04 | 주식회사 엔씨소프트 | 게시판 서비스 제공 장치 및 방법, 게시판 서비스 요청 장치 및 방법 |
KR102449109B1 (ko) * | 2020-08-25 | 2022-09-29 | 주식회사 엔씨소프트 | 게시판 서비스 제공 장치 및 방법, 게시판 서비스 요청 장치 및 방법 |
Also Published As
Publication number | Publication date |
---|---|
SG112989A1 (en) | 2005-07-28 |
US7676657B2 (en) | 2010-03-09 |
TW200529071A (en) | 2005-09-01 |
TWI425418B (zh) | 2014-02-01 |
EP1555610B1 (en) | 2010-04-28 |
US20070214343A1 (en) | 2007-09-13 |
DE602004026819D1 (de) | 2010-06-10 |
US7310722B2 (en) | 2007-12-18 |
US20100122067A1 (en) | 2010-05-13 |
US20050138328A1 (en) | 2005-06-23 |
EP1555610A1 (en) | 2005-07-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7310722B2 (en) | Across-thread out of order instruction dispatch in a multithreaded graphics processor | |
TWI493451B (zh) | 使用預解碼資料進行指令排程的方法和裝置 | |
US9830158B2 (en) | Speculative execution and rollback | |
US7634637B1 (en) | Execution of parallel groups of threads with per-instruction serialization | |
US8732713B2 (en) | Thread group scheduler for computing on a parallel thread processor | |
US8074224B1 (en) | Managing state information for a multi-threaded processor | |
TWI490782B (zh) | 來源運算元收集器快取的方法和裝置 | |
TWI501150B (zh) | 無指令解碼而排程指令的方法和裝置 | |
TWI489385B (zh) | 一種用於預先擷取快取線的電腦實作方法與子系統 | |
US20130042090A1 (en) | Temporal simt execution optimization | |
US20140123150A1 (en) | Hardware scheduling of ordered critical code sections | |
JP2010244529A (ja) | デッドロックを起こさないパイプライン処理のためのシステム及び方法 | |
US9471307B2 (en) | System and processor that include an implementation of decoupled pipelines | |
CN108604185B (zh) | 用于将工作负荷有效地提交到高性能图形子系统的方法和装置 | |
US20240086329A1 (en) | Instruction prefetch mechanism | |
US9436969B2 (en) | Time slice processing of tessellation and geometry shaders | |
US7484076B1 (en) | Executing an SIMD instruction requiring P operations on an execution unit that performs Q operations at a time (Q<P) | |
US20120084539A1 (en) | Method and sytem for predicate-controlled multi-function instructions | |
TWI546736B (zh) | 多執行緒圖形處理單元管線 | |
US20140351826A1 (en) | Application programming interface to enable the construction of pipeline parallel programs | |
US10152329B2 (en) | Pre-scheduled replays of divergent operations | |
US7847803B1 (en) | Method and apparatus for interleaved graphics processing | |
US8948167B2 (en) | System and method for using domains to identify dependent and independent operations | |
US9665920B1 (en) | Simultaneous execution of compute and graphics applications |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD03 | Notification of appointment of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7423 Effective date: 20070809 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20070813 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20070813 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20071114 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20071114 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100622 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100914 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20101019 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20110119 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20110124 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20110221 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20110224 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20110322 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20110325 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20110524 |