JP5859017B2 - 処理クラスタのための制御ノード - Google Patents

処理クラスタのための制御ノード Download PDF

Info

Publication number
JP5859017B2
JP5859017B2 JP2013540048A JP2013540048A JP5859017B2 JP 5859017 B2 JP5859017 B2 JP 5859017B2 JP 2013540048 A JP2013540048 A JP 2013540048A JP 2013540048 A JP2013540048 A JP 2013540048A JP 5859017 B2 JP5859017 B2 JP 5859017B2
Authority
JP
Japan
Prior art keywords
message
coupled
control node
bus
host
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.)
Active
Application number
JP2013540048A
Other languages
English (en)
Other versions
JP2014503876A (ja
Inventor
ジョンソン ウィリアム
ジョンソン ウィリアム
ダブリュー グロツバック ジョン
ダブリュー グロツバック ジョン
シェイク ハミッド
シェイク ハミッド
ジャヤライ アジェイ
ジャヤライ アジェイ
ブッシュ スティーブン
ブッシュ スティーブン
チナコンダ ミュラリ
チナコンダ ミュラリ
エル ナイ ジェフェリー
エル ナイ ジェフェリー
永田 敏雄
敏雄 永田
グプタ シャリニ
グプタ シャリニ
ジェイ ニチカ ロバート
ジェイ ニチカ ロバート
エイチ バートレイ デビッド
エイチ バートレイ デビッド
サンダララジャン ガネーシャ
サンダララジャン ガネーシャ
Original Assignee
日本テキサス・インスツルメンツ株式会社
テキサス インスツルメンツ インコーポレイテッド
テキサス インスツルメンツ インコーポレイテッド
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by 日本テキサス・インスツルメンツ株式会社, テキサス インスツルメンツ インコーポレイテッド, テキサス インスツルメンツ インコーポレイテッド filed Critical 日本テキサス・インスツルメンツ株式会社
Publication of JP2014503876A publication Critical patent/JP2014503876A/ja
Application granted granted Critical
Publication of JP5859017B2 publication Critical patent/JP5859017B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30076Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8053Vector processors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3005Arrangements for executing specific machine instructions to perform operations for flow control
    • G06F9/30054Unconditional branch instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/30101Special purpose registers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
    • G06F9/355Indexed addressing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
    • G06F9/355Indexed addressing
    • G06F9/3552Indexed addressing using wraparound, e.g. modulo or circular addressing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3853Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution of compound instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • G06F9/3887Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by a single instruction for multiple data lanes [SIMD]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • G06F9/3889Concurrent 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/3891Concurrent 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)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Multi Processors (AREA)
  • Image Processing (AREA)
  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)
  • Complex Calculations (AREA)
  • Debugging And Monitoring (AREA)

Description

本開示は、概してプロセッサに関し、より具体的には処理クラスタに関する。
図1はマルチコアシステム(2〜16コアの範囲)についての実行速度のスピードアップ対並列オーバーヘッドを示すグラフである。スピードアップとは、単一プロセッサの実行時間を並列プロセッサの実行時間で除したものである。図からわかるように、多数のコアから有意な利益を得るために、並列オーバーヘッドはゼロに近くなければならない。しかし並列プログラム間に何らかの相互作用が存在する場合、オーバーヘッドは極めて高くなる傾向があるため、完全に分離されたプログラムでなければ2又は3以上のプロセッサを効率的に使用するのは通常極めて難しい。従って、改善された処理クラスタが必要とされている。
従って、本開示の実施形態は装置を提供する。この装置は、メッセージバス(1420)、及び制御ノード(1406)により特徴付けられる。制御ノードは、ホストプロセッサ(1316)と通信するように構成されるホストインタフェース(1405)、各々前記メッセージバスに結合される複数のパーティションメッセージパイプライン(6134−1〜6134−R、6136−1〜6136−R、及び6138−1〜6138−R)、前記メッセージバスに結合されるロード/保存メッセージパイプライン(6134−(R+2)、6136−(R+2)、及び6138−(R+2))、各パーティションメッセージパイプライン、前記ロード/保存メッセージパイプライン、及び前記ホストインタフェースに結合されるメッセージキュー(6102)、各パーティションメッセージパイプライン及び前記ロード/保存メッセージパイプラインに結合されるシーケンシャルプロセッサ(6140)、及び前記ホストインタフェース及び前記メッセージキューに結合される制御ノードメモリ(6114)を有する。
マルチコアのスピードアップパラメータのグラフである。
本開示の実施形態に従ったシステムの図である。
本開示の実施形態に従ったSOCの図である。
本開示の実施形態に従った並列処理クラスタの図である。 本開示の実施形態に従った並列処理クラスタの図である。
制御ノードの一例の図である。 制御ノードの一例の図である。
スレーブとマスタとの間のプロトコルの一例のタイミング図である。
メッセージの図である。
終了メッセージのフォーマットの一例の図である。
終了メッセージ処理フローの一例の図である。
「パックド」形式の書き込まれたエントリを送信する制御ノードの図である。
ヘッダー及びメッセージペイロードから概して構成されるアクションの図である。
制御ノードメモリのための特殊なアクション更新の図である。
図2では、並列処理を実行するSOC用アプリケーションの例が見られる。この例では、撮像デバイス1250が示される。この(例えば携帯電話又はカメラであり得る)撮像デバイス1250は、概して、画像センサ1252、SOC1300、ダイナミックランダムアクセスメモリ(DRAM)1315、フラッシュメモリ1314、ディスプレイ1254、及び電力管理集積回路(PMIC)1256を含む。動作では、画像センサ1252は、(静止画像又はビデオであり得る)画像情報を捕捉することができ、この画像情報はSOC1300及びDRAM1315によって処理され得、不揮発性メモリ(即ち、フラッシュメモリ1314)に保存され得る。また、フラッシュメモリ1314に保存される画像情報は、SOC1300及びDRAM1315の使用によって、ディスプレイ1254上で使用するために表示され得る。また、撮像デバイス1250は、可搬型であることが多く、電源としてバッテリを含む。(SOC1300によって制御され得る)PMIC1256は、バッテリ寿命を長持ちさせるために電力使用量の調整を補助し得る。
図3では、本開示の実施形態に従ったシステムオンチップ又はSOC1300の例が図示されている。この(典型的には、OMAP(登録商標)等の集積回路又はICである)SOC1300は、(概して上述の並列処理を実行する)処理クラスタ1400、及び、(上で説明及び参照された)ホスト環境を提供するホストプロセッサ1316を概して含む。ホストプロセッサ1316は、ワイド(即ち、32ビット、64ビット等)RISCプロセッサ(例えばARM Cortex−A9等)であり得、バスアービトレータ1310、バッファ1306、(ホストプロセッサ1316がインタフェースバス又はIバス1330上で周辺インタフェース1324にアクセスすることを許可する)バスブリッジ1320、ハードウェアアプリケーションプログラミングインタフェース(API)1308、及び割り込みコントローラ1322と、ホストプロセッサバス又はHPバス1328上で通信する。処理クラスタ1400は、典型的に、(例えば荷電結合デバイス、又はCCDインタフェースであり得、オフチップデバイスと通信し得る)機能回路要素1302、バッファ1306、バスアービトレータ1310、及び周辺インタフェース1324と、処理クラスタバス又はPCバス1326上で、通信する。この構成を用いて、ホストプロセッサ1316は、API1308を介して情報を提供する(即ち、所望の並列実装に適合するように処理クラスタ1400を構成する)ことができ、一方、処理クラスタ1400及びホストプロセッサ1316はいずれも、(フラッシュインタフェース1312を介して)フラッシュメモリ1314に、(メモリコントローラ1304を介して)DRAM1315に、直接アクセスできる。また、Joint Test Action Group(JTAG)インタフェース1318を介して、テスト及びバウンダリスキャンが実行され得る。
図4を参照すると、本開示の実施形態に従った並列処理クラスタ1400の例が示されている。典型的には、処理クラスタ1400はハードウェア722に対応する。処理クラスタ1400は、概して、パーティション1402−1〜1402−Rを含む。これらは、ノード808−1〜808−N、ノードラッパー810−1〜810−N、命令メモリ1404−1〜1404−R、及び(以下で詳しく説明する)バスインタフェースユニット又は(BIU)4710−1〜4710−Rを含む。ノード808−1〜808−Nは、各々データインターコネクト814に(各々のBIU4710−1〜4710−R及びデータバス1422を介して)結合され、パーティション1402−1〜1402−Rのための制御及びメッセージが制御ノード1406からメッセージ1420を介して提供される。また、グローバルロード/保存(GLS)ユニット1408及び共有機能メモリ1410は、(後述のように)データ移動のための付加的な機能を提供する。それに加えて、レベル3又はL3キャッシュ1412、(概して、IC内には含まれない)周辺装置1414、(典型的にはフラッシュメモリ1314及び/又はDRAM1315、並びにSOC1300内に含まれないその他のメモリである)メモリ1416、及びハードウェアアクセラレータ(HWA)ユニット1418が処理クラスタ1400と共に用いられる。また、データ及びアドレスを制御ノード1406に通信するように、インタフェース1405が提供される。
処理クラスタ1400は、概して、データ伝送のために「プッシュ」モデルを使用する。データ伝送は要求応答型のアクセスではなく、概してポステッドライトとして現れる。これは、データ伝送が一方向であるため要求応答アクセスに比べてグローバルインターコネクト(即ち、データインターコネクト814)の占有を2分の1に減らすという利点を有する。概して、インターコネクト814を介して要求をルーティングし、その後、応答が要求元へルーティングされ、その結果インターコネクト814上で2つの遷移が生成されることは望まれない。プッシュモデルは単一伝送を生成する。これは、ネットワークサイズが増大するとネットワークレイテンシが増大するため、またこのことが要求応答型トランザクションのパフォーマンスを低下させることは避けられないことであるため、スケーラビリティに関して重要である。
プッシュモデルは、データフロープロトコル(即ち、812−1〜812−N)と同様に、グローバルデータトラフィックを、正確さのために用いられるものまで概して最小化する一方、ローカルノードの利用率に対するグローバルデータフローの影響も概して最小化する。大量のグローバルトラフィックであってもノード(即ち、808−i)のパフォーマンスに対する影響は、通常、皆無に近い。ソースはデータを(後述する)グローバル出力バッファに書き込み、伝送成功の確認を要求することなく継続する。データフロープロトコル(即ち、812−1〜812−N)は、概して、インターコネクト814で単一伝送を用い、データをあて先へ移動する最初の試みでの伝送が成功することを確実にする。(後述する)グローバル出力バッファは(例えば)最大16出力まで保持することができるため、出力のための瞬時グローバル帯域幅が不充分になることに起因するノード(即ち、808−i)のストールの可能性が非常に低くなる。更に、瞬時帯域幅は、要求応答トランザクション又は伝送失敗の繰り返しによる影響を受けない。
最後に、プッシュモデルはプログラミングモデルに一層密接に適合する。言い換えるとプログラムは自己データを「フェッチ」せずに、その代わりに、プログラムの入力変数及び/又はパラメータは呼び出される前に書き込まれる。プログラミング環境では、入力変数の初期化は、ソースプログラムによるメモリへの書き込みとして行われる。処理クラスタ1400内では、これらの書き込みがポステッドライトに変換され、変数の値をノードコンテキストにポピュレートさせる。
(後述する)グローバル入力バッファは、ソースノードからデータを受け取るために用いられる。各ノード808−1〜808−Nのためのデータメモリが単一ポートであるため、入力データの書き込みが、ローカルの単一入力多重データ(SIMD)による読み出しとコンフリクトすることがあり得る。入力データをグローバル入力バッファへ受け入れ、そこで入力データが空きのデータメモリサイクルを待つことができることによって、この競合は回避される(即ち、SIMDアクセスとのバンクコンフリクトはない)。データメモリは、(例えば)32バンクを有し得るため、直ちにバッファがフリーになる可能性が非常に高い。しかしながら、伝送を確認するためのハンドシェイキングがないので、ノード(即ち、808−i)はフリーのバッファエントリを持つはずである。所望とされる場合は、グローバル入力バッファは、バッファ位置をフリーにするために、ローカルノード(即ち、808−i)をストールさせてデータメモリに強制的に書き込みを行うことができるが、このイベントは極めて希であるべきである。典型的には、グローバル入力バッファは2つの別々のランダムアクセスメモリ(RAM)として実装されて、一方がデータメモリへ読み出されるべき状態にある間、他方がグローバルデータを書き込むための状態になり得るようにする。メッセージングインターコネクトは、グローバルデータインターコネクトとは分かれているが、同様にプッシュモデルを使用する。
システムレベルでは、所望のスループットにスケーリングされた多数のノードを備えるSMP又は対称型多重処理のように、ノード808−1〜808−Nが処理クラスタ1400内で複製される。処理クラスタ1400は極めて多数のノードにまでスケーリングし得る。ノード808−1〜808−Nはパーティション1402−1〜1402−Rにグループ分けされ、各パーティションは1つ又は複数のノードを有する。パーティション1402−1〜1402−Rは、ノード間のローカル通信を増大させることによって及びより大きなプログラムで一層大量の出力データを計算させることによってスケーラビィリティを促進し、その結果、所望のスループット要件を達成する可能性を更に高める。パーティション(即ち、1402−i)内では、ノードはローカルインターコネクトを用いて通信し、グローバルリソースを必要としない。また、パーティション(即ち、1404−i)内のノードは、排他的命令メモリを用いる各ノードから共通命令メモリを用いる全てのノードまで、任意の粒度で、命令メモリ(即ち、1404−i)を共有することができる。例えば3つのノードが命令メモリの3つのバンクを共有し、第4のノードが命令メモリの排他的バンクを有することができる。ノードが命令メモリ(即ち、1404−i)を共有するとき、それらのノードは、概して、同じプログラムを同期的に実行する。
また、処理クラスタ1400は非常に多数のノード(即ち、808−i)及びパーティション(即ち、1402−i)をサポートし得る。しかしながら、1つのパーティションについて4以上のノードを持つと概してノンユニフォームメモリアクセス(NUMA)アーキテクチャに類似するため、パーティション毎のノードの数は通常は4つに限定されている。この例では、パーティションは、(後でインターコネクト814に関連して説明する)1つ(又は複数)のクロスバーを介して接続される。クロスバーは概して横断帯域幅が一定している。処理クラスタ1400は、現在、サイクル毎に1ノード幅のデータ(例えば64、16ビットピクセル)を伝送するように設計されており、4サイクルに亘り、1サイクルにつき16ピクセルの4伝送に区分される。処理クラスタ1400は、概して、レイテンシトレラントであり、インターコネクト814がほぼ飽和(この状態を達成するのは合成プログラム以外では極めて難しいことに留意されたい)であっても、ノードバッファリングが、概して、ノードストールを防止する。
典型的には、処理クラスタ1400はパーティション間で共有する下記のグローバルリソースを含む。
(1) 制御ノード1406。これは(メッセージバス1420で)システムワイドのメッセージングインターコネクト、イベント処理及びスケジューリング、及びホストプロセッサ及びデバッガ(これらは全て後で詳しく説明する)へのインタフェースを提供する。
(2) GLSユニット1408。これはプログラマブルRISCプロセッサを含み、システムデータ移動を可能にする。システムデータ移動は、GLSデータ移動スレッドとして直接コンパイルされ得るC++プログラムによって記述され得る。これによって、ソースコードを修正することなく、クロスホスト環境でのシステムコードの実行が可能になり、また、システム又は(後述する)SIMDデータメモリ内の任意のアドレス(変数)のセットから別の任意のアドレス(変数)のセットに移動できるため、ダイレクトメモリアクセスよりもより一般的である。GLSユニット1408は、(例えば)0−サイクルのコンテキストスイッチを備え、マルチスレッド化され、例えば最大16スレッドまでサポートする。
(3) 共有機能メモリ1410。これは、一般的なルックアップテーブル(LUT)及び統計収集機能(ヒストグラム)を提供する大型共有メモリである。また、これは大型共有メモリを使用して、リサンプリング及び歪補正等のノードSIMDにより(コストの理由で)充分サポートされていないピクセル処理をサポートし得る。この処理はネイティブタイプとして、スカラ、ベクトル、及び2Dアレイを実装する(例えば)6発行命令RISCプロセッサ(即ち、後で詳しく説明するSFMプロセッサ7614)を用いる。
(4) ハードウェアアクセラレータ1418。これは、プログラマビリティを必要としない機能のため、或いは電力及び/又は面積を最適化するために組み込まれ得る。アクセラレータは、サブシステムにはシステム内の他のノードとして現れ、制御及びデータフローに参加し、イベントを作成可能であり、スケジューリング可能である。またデバッガにとっては可視的である。(ハードウェアアクセラレータは、適用可能であるときは、専用のLUT及び統計収集を有し得る。)
(5) データインターコネクト814及びシステムオープンコアプロトコル(OCP)L3接続1412。これらは、ノードパーティション、ハードウェアアクセラレータ、及びシステムメモリ、及び、データバス1422上の周辺装置の間のデータ移動を管理する。(ハードウェアアクセラレータは、L3へのプライベート接続も有し得る)。
(6) デバッグインタフェース。これらは、図には示されていないが、本明細書中に記載される。
制御ノード1406は、パーティション1402−1〜1402−R、共有された機能メモリ1410、GLSユニット1408、及びハードウェアアクセラレータ1418間を流れるメッセージトラフィックを扱うことを担い得る。これらのメッセージは、初期化メッセージ及び安定状態メッセージとして分類され得る。初期化メッセージは、メッセージノード1406自体を制御することが意図される、例えば、GLSユニット1408又は制御ノードデータメモリ初期化メッセージからのアクション更新リストメッセージを含む。制御ノード1406に対し意図されるメッセージは、アクションリストメモリを初期化するためか又は制御ノード1406から何らかの種類のインタラプトを生じるためいずれかのアクションリストメッセージ(例えばHALT_ACKメッセージ)である。これらのメッセージは、{SEGID、ノードID}組合せを用いることにより識別される。
しかし、図5及び6に移ると、制御ノード1408のための一般的構造を見ることができる。好ましくは、制御ノード1408は、システムワイドメッセージングインターコネクト、事象処理及びスケジューリング、及びホストプロセッサ(スレーブ)へのインタフェースを実装することができる。制御ノード1408により実装され得る機能の一例は次の通りである:
(1) メッセージの配路及び分布。典型的に、全てのメッセージは制御ノード1406を介して配路され得、制御ノード1406は、デバッグのためのメッセージトレースを生成する手段を提供することができる。これは、この中央集中分布ポイントがないと生じ得る競合条件を避けるために、事象通知をシリアル化することもできる。
(2) シーケンス化及び制御のためのメッセージの処理。
(3) データ/アドレス及びインタラプトインタフェースを含み、ホストプロセッサをインタフェースすること。
(4) ホストプロセッサ又は特殊化されたデバッグポートのいずれかによりデバッグをサポートすること。
(5) トレースポートを介してトレースメッセージを提供すること。
(6) メッセージキューを提供すること。
また、制御ノードは下記を担っている:
(1) 入力{セグメントID。ノードID}ヘッダー情報に基づいて、入力処理クラスタ1400メッセージを適切なポートに配路すること。
(2) そのアクションリストRAMにおける情報に基づいて、プロセス終了メッセージ内部的に処理すること。
(3) ホストインタフェースが内部レジスタを構成できるようにすること。
(4) (ホストがアクセスしていない場合)デバッグインタフェースが内部レジスタを構成できるようにすること。
(5) アクションリストRAMが、ホスト/デバッガインタフェースにより又はメッセージングインタフェースを介してアクセスされ得るようにすること。
(6) 「制限なしの」メッセージ処理を可能にするアクションリスト更新メッセージのためのメッセージングキューをサポートすること。
(7) メッセージキューにおけるアクションリストタイプ符号化を扱うこと。
(8) アップストリーム監視/デバッグのため全ての処理されたメッセージをATBトレースインタフェースに配路すること。
(9) 「メッセージング」要求に基づいてインタラプトをアサートすること。
図5に示すように、制御ノード1406は概して、メッセージキュー6102、ノード入力バッファ6134、及び出力バッファ6124で構成される。典型的に、メッセージキュー6102は、ホストプロセッサからインタフェース1405を介して入力メッセージ6104を受け取る。これらの入力メッセージ6104は、データ(即ち、メッセージコンテンツ6106)及びアドレス(即ち、オペコード6108、セグメントID6110、及びノードID6112)を概して含む。ノード入力バッファ6134は、概して、ノード(即ち、808−i)からメッセージを受け取り、アクションリストエントリ処理又はアクションリスト6116(これは、プログラムID/スレッドID6118、セグメントID6120、及びノードID6122を含み得る)を保存することができる制御ノードメモリ6114を概して含む。出力バッファ6124は概して、データ(即ち、メッセージコンテンツ6132)及びアドレス(即ち、オペコード6126、セグメントID6128、及びノードID6130)を有する出力メッセージを保存し、これらは、ノード(即ち、808−i)又はトレース及びデバッグハードウェアへ送信され得る。
図6に移ると、制御ノード1406のアーキテクチャを更に詳細に見ることができる。図示するように、制御ノード1406は、スレーブインタフェース6134−1〜6134−R及びマスタインタフェース6138−1〜6138−Rを介してパーティション1402−1〜1402−R(又はノード)と、スレーブインタフェース6134−(R+1)及びマスタインタフェース6138−(R+1)を介してGLSユニット1408と、インタフェース1405、デバッガを介してインタフェース6133を介してホストプロセッサと、及びインタフェース6135を介してトレースと、相互作用することができる。また、制御ノード1406は更に、メッセージプレプロセッサ6136−1〜6136−(R+1)、シーケンシャルプロセッサ6140、エクストラクタ6142、レジスタ6144、及びアービタ6146を概して含む。
典型的に、入力スレーブインタフェース6134−1〜6134−(R+1)は概して、アップストリームモジュール(即ち、GLSユニット1408)からの全ての進入スレーブアクセスを扱うことを担っている。スレーブとマスタとの間のプロトコルの一例を図7で見ることができる。これは、スレーブインタフェース(即ち、6134−1)に提供されるデータは、制御ノード1406により受け取られると仮定され得るが、大抵の場合そうはならない。データストールは内部的に生成され、これはマスタへSDATAACCEPTをゲートする。マスタは、対応するSDATAACCEPTがスレーブインタフェースにより送られるまで、MDATA値を保持すると予期される。
メッセージプレプロセッサ6138−1〜6138−(R+1)は、概して、制御ノード1406が現在のメッセージで動作するべきか又はそれを転送するべきか判定することを担っている。これは、先ずラッチされたヘッダーバイトを復号することによって決まる。下記の表1は、制御ノード1406がアップストリームマスタから受信したとき復号及び動作することができる、メッセージのリストの例を示す。
示すように、{SEGID、ノードID}組合せが有効出力ポートを示すとき、メッセージが適切な退出ノードに転送される。
制御ノードデータメモリ初期化メッセージは、アクションRAM初期化のために用いられる。一例として、制御ノード1410がこのメッセージを受け取るとき、制御ノード1410は、データフィールド内に含まれる#エントリ情報を検査する。#エントリフィールドは通常、終了ヘッダーを除いたアクションリストエントリの数を示す。例えば、更新されるべきアクションリストエントリの数が1である(即ち、アクションリスト0)場合、#エントリ=1であり、アクションリスト0及びアクションリストlが更新されるべき場合、#エントリ=2である。従って、#エントリの有効範囲は1−>246である。アクションリストエントリの数をビートの総数を超える(例えば)32とする(ここで、最大ビートカウントは例えば32である)場合がある。例えばアクションリストエントリの数が19である場合、メッセージに対するデータビートの総数は1(#エントリ)+8(ノード終了ヘッダー)+8(スレッド終了ヘッダー)+20(15のアクションリストエントリは、20ビートに変換する)=37ビートである。アップストリームは、これを2ビート(第1のパケットで32ビート及び次のパケットで5ビート)に分割すると考えられる。
シーケンシャルプロセッサ又はシーケンサ6140は、種々のメッセージプレプロセッサ6136−1〜6136−(R+1)から受け取るインディケーションに少なくとも部分的に基づいて、制御ノードメモリ6114へのアクセスをシーケンス化する。シーケンサ6140が、概して終了メッセージに用いられるそのアクションを終了した後、それは、メッセージが伝送のため準備できていることをメッセージフォワーダ又はマスタインタフェース6138−1〜6138−(R+1)に示す。メッセージフォワーダ(即ち、6138−1)がメッセージ受け取り、シーケンサ6140をリリースすると、それは次の終了メッセージへ移る。同時に、それは更に、メッセージプレプロセッサ(即ち、6136−1)に、終了メッセージに対しアクションが終了したことを示す。これは、新しいメッセージを受け取るためのメッセージバッファのメッセージプレプロセッサ(即ち、6136−1)のリリースをトリガする。
メッセージフォワーダ(即ち、6138−1)は、それがそのメッセージプレプロセッサ(即ち、6136−1)だけでなくシーケンサ6140から受け取った全てのメッセージを転送する。メッセージフォワーダ(即ち、6138−1)は、制御ノード1406により構築された/転送されたメッセージを送るため、マスタ退出ブロックと通信することができる。対応するマスタが伝送の終了を示すと、メッセージフォワーダ(即ち、6138−1)は、対応するメッセージプレプロセッサ(即ち、6136−1)をリリースするべきであり、これがメッセージバッファをリリースする。
図8に移ると、メッセージ6104を更に詳細に見ることができる。図示するように、メッセージ6104(これは制御ノード1406により受け取られ得る)は概して、9ビットヘッダー(これは概して、メッセージ6104のアドレス部に対応し得る)及び1又はそれ以上であり、例えば32ビットまでの、データビット(これは概して、データ部又はメッセージ6104のメッセージコンテンツ6106に対応し得る)を含む。オペコード6108(これは概して3ビットを含む)はどのアクションが制御ノード1406により取られるべきかを判定することができる。オペコード6108に加えて及び例えば、メッセージコンテンツ6106の上位4ビット(即ち、ビット28〜31)は、オペコード拡張ビット6202として機能し得る。下記の表2は、オペコード(オペコード拡張ビットを含む)の例を示す。
多くの場合、制御ノード1406は典型的に、それを正しい宛先マスタポートに転送することを除き、メッセージ(即ち、6104)で動作しない。しかし、制御ノードは、メッセージが、それにアドレス指定されたセグメントID6110及びノードID6112組合せを含むとき、アクションを取ることができる。下記の表3は、制御ノード1406によりサポートされ得る、種々のセグメントID6110及びノードID6112組合せの例を示す。
図9に移ると、終了メッセージ6300のフォーマットの一例を見ることができる。制御ノード1406が終了メッセージ6300を受け取ると、制御ノード1406は下記のステップを取ることができる。先ず、制御ノード1406は、終了メッセージ6300がノード(即ち、808−i)からか又はGLSユニット1408からかを判定し、これはセグメント6314及び6310に基づき得、この結果は、制御ノードメモリ6114へのベースアドレスを形成することできる。次に、制御ノード1406は、それがスレッド終了か又はプログラム終了かを判定することができる(これは、セグメント6312に基づき得る)。スレッド終了の場合、データビット6304内(即ち、セグメント6308内)に含まれるスレッドIDを、アクションヘッダーを抽出するためのインデックスとして用いることができる。プログラム終了の場合、データビット6304(即ちセグメント6310)に含まれるノードIDを、ノードメモリ6114を制御するためのインデックスとして用いることができる。
図10において、終了メッセージ扱いフロー6400の一例を見ることができる。制御ノード1406が、終了メッセージ(即ち、6300)が受け取られ、終了メッセージ(即ち、6300)のソースに応じているとを判定すると、アクションアドレス(ノード終了で0〜3及びGLSユニット終了で4〜7)が読み取られる。即ち、アクションは、ノード終了アクションヘッダー6402又はロード/保存終了アクションヘッダー6404から判定され得る。スレッドID又はノードIDはその後、正確なヘッダーワード6406を判定するために用いられ得る。典型的に、各ヘッダーワード6406は、例えば10ビットであり得、制御ノードメモリ6114内のワード毎に4ヘッダービットがあり得る(そのうちの1つが抽出され得る)。その後、ヘッダーワード6406は有効性がチェックされ得、スレッド用又はプログラムスレッド用として用いられるアクションテーブルベース(即ち、ビット7:0)が抽出され得る。プログラムスレッドに用いられるとき、下記の式を用いることができる。
ベースアドレス=Action_table_base+(ProgID*2)、又は
ベースアドレス=Action_table_base+(ProgID*4)
ヘッダーワード6406のビット−8は、乗算器を制御することができ(即ち、*2では0であり、*4では1)、一方、ProgIDはプログラム終了メッセージから抽出され得る。その後、メモリ6114からアクションリスト6116を抽出するためにベースアドレスを用いることができる。この41ビットワードは、例えば、宛先ノードへのメッセージとして送られるべきヘッダーワード及びデータ−ワードに分割される。
アクションリスト内のメッセージエントリのフォーマットは概して、ヘッダー(即ち、メッセージオペコード、セグメントID、及びノードID)及びメッセージペイロードを含む。このメッセージエントリは、通常のエントリだけでなく特殊な符号化の両方を表し得る(それらの例は、下記の表4で見ることができる)。
(上記表28に示すような)「アクションリストエンド」は概して、アクションリストメッセージの終わりを知らせる。典型的に、この符号化では制御ノード1406は、メッセージID及びセグメントIDが「0」に等しいかどうかを判定することができる。等しくない場合、ヘッダー及びデータワードが送られ、そうでない場合、エンドに達する。
メッセージの数が許容可能なエントリリストを超えるとき、(上記表28に示すような)「次のリストエントリ」及び「メッセージ継続」符号化を用いることができる。典型的に、「次のリストエントリ」符号化では制御ノード1406は、メッセージID及びセグメントIDが「0」に等しいかを判定することができる。等しくない場合、ヘッダー及びデータワードが送られ、そうでない場合、次のエントリへの移動がある。ノードIDが4’b1000(例えば)に等しい場合、「次のリストエントリ」のための情報が抽出されて、制御ノードメモリ6114内の新しいアドレスへのベースアドレスを安定させる。しかし、ノードIDが「1」に等しい場合、符号化が「メッセージ継続」であり、次のアドレスを読み取らせる。
「ホストインタラプトインフォエンド」符号化(上記表28に示すような)は概して、ホストプロセッサをインタラプトするための特殊な符号化である。この符号化が制御ノード1406により復号されるとき、符号化されたワードビット(即ち、ビット31:0)のコンテンツは、内部レジスタに書き込まれ得、ホストインタラプトがアサートされる。ホストは、状態レジスタを読み出し得、インタラプトをクリアにし得る。メッセージオペコード、セグメントID、及びノードIDの例は、それぞれ、000’b、00’b、及び0010’bであり得る。
「デバッグ通知インフォエンド」符号化(上記表28に示すような)は概して、「ホストインタラプトインフォエンド」符号化に類似する。しかし、違いは、この種の符号化がデバッグとして遭遇されるときインタラプトがアサートされる点である。デバッガは状態レジスタを読み出し得、インタラプトをクリアし得る。メッセージオペコード、セグメントID、及びノードIDの例は、それぞれ、000’b、00’b、及び0010’bであり得る。
受け取られるヘッダーワードは、進入側のソースマスタによって送られるマスタアドレスである。退出側では、典型的に、考慮すべき2つのケースがある:転送及び終了である。転送では、バッファされたマスタアドレスは、メッセージが転送されるべき場合、退出マスタで転送され得る。終了では、進入メッセージが終了メッセージである場合、退出マスタアドレスは、メッセージ、セグメント、及びノードIDの組み合わせであり得る。また、進入側のデータワードは、進入ポートのスレーブデータバスから抽出され得る。退出側では、(こちらも)典型的に、考慮すべき2つのケースがある:転送及び終了である。転送では、退出側のデータワードは、進入側からのバッファされたメッセージであり得、終了では、(例えば)32ビットメッセージペイロードが転送され得る。
制御ノード1406は、ペイロードカウントなしに一連のアクションリストエントリを扱うことができる。即ち、ペイロードカウント又はリンクリストエントリなしのアクションリストエントリのシーケンスは、制御ノード1406により扱われ得る。最終的にはアクションリストエンドメッセージがどこかに挿入されると仮定される。しかしこのシナリオでは、制御ノード1406は概して、それが第1の「新しいアクションリストエントリ」に遭遇するまで、第1の一連のペイロードをバーストして送り得る。その後、後続のサブセットがバーストとして設定される。アクションリストエンドが遭遇されるまでこのプロセスが反復される。上記シーケンスは、制御ノードメモリ6114に保存され得る。このシーケンスの例外は、送るべき単一ビートシーケンスがあるとき生じ得る。この場合、アクションリストエンドは各ビート後に付加されることを要求する。
次のリストエントリを用いて、制御ノードは、任意の長さのリンクされたエントリをつくる方式を提供する。次のリストエントリが遭遇されると常に、読み出しポインタは新しいアドレスで更新され、制御ノードは通常通り処理を継続する。この状況では、最終的にはアクションリストエンドメッセージがどこかに挿入されると仮定される。また、制御ノード1406は、次のリストエントリによりポイントされる通りにその内部ポインタを継続的に調節し得る。このプロセスは、アクションリストエンド又はエントリ開始の新しいシリーズが遭遇されるまで反復され得る。上述のシーケンスは、制御ノードメモリ6114に保存され得る。
制御ノード1406は更に、多数のペイロードカウントを扱うこともできる。一連のメッセージ内でアクションリストエンド又はエントリの新しいシリーズに遭遇することなく多数のペイロードカウントが遭遇する場合、制御ノード1406はその内部バーストカウンタ長さを自動で更新し得る。
制御ノード1406により扱われるビートの最大数は、(例えば)32とし得る。何らかの理由でビート長さが32より大きい場合、終了メッセージの場合は、制御ノード1406がそのビートを更に小さなサブセットに分け得る。各サブセットは(この例では)最大32ビートを有し得る。このシナリオは典型的に、ペイロードカウントが32より大きい値に設定される、又は多数のペイロードカウントが遭遇される、又は一連のメッセージ継続メッセージがアクションリスト又は新しいシーケンス開始なしに遭遇されるときに起こる。例えばシーケンス内のペイロードカウントが48に設定される場合、制御ノード1406は、これを32ビートシーケンスに分けられ得、その後17ビートシーケンス(16+1)が続き、それを同じ退出ノードに送る。
メッセージプレプロセッサ6136−1〜6136−(R+1)もHALT_ACK、ブレークポイント、トレースポイント、ノード状態応答、及びプロセッサデータメモリ読み出し応答メッセージを扱うことができる。パーティション(即ち、1402−1)がこれらのメッセージの一つを送信するとき、メッセージプレプロセッサ(即ち、6136−1)は、データを抽出し、それを、デバッガ又はホストのいずれかによりアクセスされるべきデバッガFIFOに保存することができる。
HALT_ACKメッセージは概して、ヘッダー及びデータ(これらは集合的に符号化ビット、コンテキスト番号、セグメントID、ノードID、及び現在のプログラムカウンタを含む)を含む。HALT_ACKメッセージが進入ポートの一つで受け取られると、制御ノード1406は、データ(これは概して2つの32ビットデータセグメント又はビートを含む)を抽出し、それをデバッガFIFO(DEBUG_READ_PARTレジスタを介してアクセスされ得る)に保存することができる。概して、制御ノード1406によりアサートされるインタラプトはない。ソフトウェアは、概してシステム同期化を維持することを担っており、進入ノード毎に両方のワードを読み出すべきである。
ブレークポイントメッセージは概して、ヘッダー及びデータ(これらは集合的に符号化ビット、トレースポイントマッチ(これは、「0」に設定される)、ブレークポイント識別子、コンテキスト番号、セグメントID、ノードID、及び現在のプログラムカウンタを含む)を含む。ブレークポイントメッセージが進入ポートの一つで受け取られると、制御ノード1406は、データ(これは概して2つの32ビットデータセグメント又はビートを含む)を抽出し、それを(DEBUG_READ_PARTレジスタを介してアクセス可能な)デバッガFIFOに保存することができる。概して、インタラプトが、制御ノード1406によりデバッガへアサートされ得る(ホストは、概してインタラプトを受け取らない)。ソフトウェアは、進入ノード(即ち、808−i)毎に両方のワードを読み出すべきである。
ノード状態読み出し応答メッセージは概して、ヘッダー及びデータ(これらは集合的に符号化ビット、データワードの数、及び後続のビートに対するデータを含む)を含む。ノード状態読み出し応答メッセージが進入ポートの一つで受け取られると、制御ノード1406は、データビート(全部で1+DATA_COUNT)を抽出し、それをデバッガFIFO(DEBUG_READ_PARTレジスタを介してアクセスされ得る)に保存するべきである。概して、制御ノード1406によりアサートされるべきインタラプトはない。ソフトウェアは、概してシステム同期化を維持することを担っており、進入ノード毎に全てのワードを読み出すべきである。
シーケンシャルプロセッサ6140は概して、種々のメッセージプレプロセッサ6136−1〜6136−(R+1)から受け取られたインディケーションに少なくとも部分的に基づいて、制御ノードメモリ6114へのアクセスをシーケンス化する。プロセッサ6140は、制御ノードメモリ6140へのシーケンシャルアクセスを開始する。シーケンサが終了メッセージのためのそのアクションを終了した後、それは、メッセージが伝送のため準備できていることをメッセージフォワーダに示す。メッセージフォワーダが、そのメッセージを受け取り、シーケンサ6140をリリースすると、それは次の終了メッセージへ移る。同時にそれはまた、メッセージプレプロセッサ(即ち、6136−1)に、終了メッセージに対するアクションが終了したことを示す。これは、新しいメッセージを受け取るためのメッセージバッファのメッセージプリプロセッサリリースをトリガする。
メッセージフォワーダは、その名の通り、それがメッセージプレプロセッサ6136−1〜6136−(R+1)だけでなくシーケンサ6140から受け取った全てのメッセージを転送する(転送メッセージ)。メッセージフォワーダブロックは、制御ノードにより構築された/転送されたメッセージを送るため、OCPマスタ退出ブロックと通信する。対応するOCPマスタが伝送の終了を示すと、メッセージフォワーダは、対応するメッセージプレプロセッサをリリースし、これがメッセージバッファをリリースする。
ホストインタフェース及び構成レジスタモジュールは、制御ノード1406を制御するため、ホストプロセッサ1316のためのスレーブインタフェースを提供する。ホストインタフェース1405は、ホストプロセッサ1316への非バースト単一読み出し/書き込みインタフェースである。これは、同じ非ポステッドライト方式でポステッド及び非ポステッドOCP書き込みの両方を扱う。
アクションリスト6116内のエントリは、概して、ホスト読み出し用に又はホストライト用に(通常成されない)マッピングされたメモリである。エントリが書き込まれるべきとき、制御ノード1406は、コンテンツを「パックド」形式で送り、これは図11で見ることができる。「パックド」フォーマット7100を、32ビットデータラインを用いて41ビットコンテンツを表すために用いることができる。例えば及び図示するように、41ビットリストエントリ−0を書き込むため、2つの書き込みがホストによって実行されるべきである。図11では、エントリ7102〜7122は、action_list_entry_0〜action_list_entry_Nの書き込みを示す。この例に示すように、第1の書き込みは、action_list_entry_0の下位32ビット(即ち、ビット31:0)を有するべきであり(これはエントリ7102で見ることができる)、第2の書き込みは上位9ビット(即ち、ビット40:32)を有し得、これは、エントリ7104の下位ビット(即ち、ビット8:0)を占有し得る。action_list_entry_0に対し第2の32ビットワードを書き込む間、action_list_entry_1ビット[20:0]が「コラプト」しないようにも注意すべきである。このリザーブはアクションエントリ−1に書き込む間にもあてはまる。この場合、action_list_entry_0上位9ビットは「コラプト」すべきではない。
制御ノード1406はまた、概して、或る場合(例えば、エントリ7104及び7106のaction_list_entry_1ビット20:0及びビット40:21)にデュアル書き込みを扱い得る。エントリ−1ビット7104はエントリ−0ビット7104と共にホストにより先ず書き込まれる。この例では、制御ノード1406は先ずエントリ−0データ7102を書き込み得、その後エントリ−1データ7104が続く。ホストsrespは通常、2つの書き込みが終了した後送られる。
また、ホストによって書き込まれるべき、ノード7202〜7212に対する及びスレッド7214〜722に対する終了ヘッダーは、概して10ビットヘッダーである。制御ノード1406は、ヘッダーの制御ノードメモリ6114のラインエントリへの連結を内部的に扱うことができる。読み出し側で制御ノード1406は、図示するように終了ヘッダー値に戻るべきである。アクションリストエントリは、CONTROL_NODE_CNTLレジスタのビット−2を設定する(下位32ビットを読むため「0」に設定し、9ビットを読むため−1に設定する)ことにより、アンパックドフォーマットでアクセスされ得る。典型的に、「パックド」フォーマット読み出しサポートはない。
デバッガインタフェース6133は、ホスト又はシステムインタフェース1405に類似する。しかし、これは概して、ホストインタフェース1405より低い優先度を有する。そのため、ホストインタフェース1405とデバッガインタフェース6133との間にアクセス衝突がある場合は常に、ホストインタフェース1405が制御する。制御ノード1406は、概して、ホストが制御ノード1406へのそのアクセスを終了するまで如何なる受領又は応答信号を送信しない。
制御ノード1406は、制御ノードメモリ6114の更新、及び進入ポートの一つにより又はホスト/デバッガによりパックドフォーマットで送られたメッセージの転送に関連するメッセージを処理することができるメッセージキュー6102をサポートすることができる。メッセージキュー6102は、パックドフォーマットメッセージをMESSAGE_QUEUE_WRITEレジスタに書き込むことにより、ホスト又はデバッガによりアクセスされ得る。進入ポートも、マスタアドレスを「bl00_11_0001」(オペコード=4、セグメントID=3、ノードID=1)に設定することにより、メッセージキュー6102にアクセスすることができる。メッセージキュー6102は概して、ペイロードデータ(即ち、アクション0〜アクションN)がパックドフォーマットとなることを予期する。
典型的に、各アクション(即ち、アクション0〜アクションN)内の上位9ビットは、メッセージキュー6102に、メッセージキュー6102が取るべきアクションのタイプを示すことができる。図12に示すように、各アクション又はメッセージは概して、ヘッダー(即ち、メッセージオペコード7402、セグメントID7404、及びノードID7406)及びメッセージペイロードで構成される。上位9ビット又はヘッダーは更に、図12においてメッセージ7410〜7420に対して示される特殊な符号化方式を用いることもできる。図示するように、メッセージ7402のペイロードカウントは、メッセージキュー6116から転送されたメッセージのバースト寸法を示すために用いることができる(制御ノード1406は、最終バースト寸法を得るためにそれに「1」を付加すべきである)。ペイロードカウントは、CONTROL_DMEM_INITメッセージについては無視され得る。(メッセージ7420に示すような)NOPメッセージは、制御ノード1406に現在のアクションワードに対し動作しないよう示すために用いることができる。メッセージの残り(メッセージ7404〜7410に示す)は上述のアクションリストエントリと同じ機能を実行できる。
また、メッセージキュー6116は、図13に示すように制御ノードメモリ6114に対する特殊なアクション更新メッセージ7500を扱う。図で見ることができるように、このメッセージ3500は概してヘッダー7502及びデータ7504を含む。データ7504のセグメント7506、7508、及び7510は概して、制御ノードメモリ6114内の符号化ビット、エントリ上位9ビット、及びライン番号に対応する。このメッセージ7500は概して、メッセージキュー6102を介して制御ノードメモリ6114のライン更新によりラインをイネーブルするように提供される。
制御ノード1406は典型的に、2つのインタラプトラインを含む。これらのインタラプトは概してアクティブローインタラプトであり、例えばホストインタラプト及びデバッグインタラプトである。
ホストインタラプトは、下記の事象のためにアサートされ得る:すなわち、一連のアクションリストアクションの終わりのアクションリスト符号化が、ホストインタラプトを備えたアクションリストエンドである場合;メッセージキューによって処理されるアクションがホストインタラプトを備えたアクションリストエンドを有する場合;又は、事象トランスレータがアンダーフロー又はオーバーフロー状態を示す場合、である。これらの場合において、HOST_IRQSTATUS_RAWレジスタ及びHOST_IRQSTATUSを読み出すこととは別としてホストは更に、アクション事象によって生じるインタラプトに対しACTION_HOST_INTRレジスタを読み出すことによりアクセスされ得るFIFOを読み出すことができる。事象トランスレータによって生じる事象では、ホスト(即ち、1316)は、ET_HOST_INTRレジスタを読み出す。インタラプトは、HOST_IRQENABLE_SETレジスタに「1」を書き込むことによりイネーブルされ得る。イネーブルされたインタラプトは、HOST_IRQSTATUS_CLRレジスタに「1」を書き込むことによりディセーブルされ得る。ホストがインタラプトの処理を終了したとき、これは概して、HOST_IRQ_EOIレジスタに「0」を書き込むと予期される。これらに加えて、インタラプトは、(HOST_IRQENABLE_SETレジスタを用いてインタラプトをイネーブルした後)HOST_IRQSTATUS_RAWレジスタのビットに「1」を書き込むことにより、テスト目的のためにアサートされ得る。インタラプトをクリアするため、ホストは、HOST_IRQSTATUSレジスタに「1」を書き込むべきである。これは通常、インタラプトのアサート及びディアサートをテストするために用いられる。ノーマルモードにおいて、インタラプトは、ACTION_HOST_INTRレジスタ及びET_HOST_INTRレジスタによりポイントされたFIFOが空でない限り、アサートされたままであるべきである。ソフトウェアは、概してFIFOから全てのワードを読むことを担っており、CONTROL_NODE_STATUSレジスタ又はET_STATUSレジスタのいずれかを読み出すことによりFIFOの状態を得ることができる。
デバッグインタラプトは、下記の事象のためにアサートされ得る:すなわち、一連のアクションリストアクションの終わりのアクションリスト符号化が、デバッグインタラプトを備えたアクションリストエンドである場合;メッセージキューによって処理されるアクションがデバッグインタラプトを備えたアクションリストエンドを有する場合;又は、事象トランスレータがアンダーフロー又はオーバーフロー状態を示す場合、である。これらの場合において、DEBUG_IRQSTATUS_RAWレジスタ及びDEBUG_IRQSTATUSレジスタを読み出すこととは別としてホスト/デバッガは更に、アクション事象によって生じるインタラプトに対しDEBUG_HOST_INTRレジスタによりアクセスされ得るFIFOを読み出すことができる。事象トランスレータによって生じる事象では、ホスト(即ち、1316)は、ET_DEBUG_INTRレジスタを読み出す。この場合、DEBUG_IRQSTATUSRAWレジスタ及びDEBUG_IRQSTATUSレジスタを読み出すこととは別としてデバッガは更に、DEBUG_READ_PARTレジスタを読み出すことによりアクセスされ得るFIFOを読むことができる。インタラプトは、DEBUG_IRQENABLE_SETレジスタ内のビットの一つに「1」を書き込むことによりイネーブルされるべきである。イネーブルされたインタラプトは、DEBUG_IRQENABLE_CLRレジスタに「1」を書き込むことによりディセーブルされ得る。デバッガがインタラプトの処理を終了すると、それはDEBUG_IRQ_EOIレジスタに「1」を書き込むことが予期されるべきである。これらに加えて、インタラプトは、(DEBUG_IRQENABLE_SETレジスタを用いてインタラプトをイネーブルした後)DEBUG_IRQSTATUS_RAWレジスタのビットに「1」を書き込むことにより、テスト目的のためにアサートされ得る。インタラプトをクリアするため、ホストは、DEBUG_IRQSTATUSレジスタにおける対応するビットに「1」を書き込むべきである。これは通常、インタラプトのアサート及びディアサートをテストするために用いられる。ノーマルモードでは、インタラプトは、DEBUG_HOST_INTRレジスタ及びET_DEBUG_INTRレジスタによりポイントされたFIFOが空でない限り、アサートされたままであるべきである。ソフトウェアは、FIFOから全てのワードを読むことを概して担っており、CONTROL_NODE_STATUSレジスタ又はET_STATUSレジスタのいずれかを読み出すことにより、FIFOの状態を得ることができる。
事象トランスレータは、それが、外部IPからインタラプトを扱う一方で、オーバーフロー又はアンダーフロー状態を検出すると常に、ベクトル番号及び制御ノードへのオーバーフロー/アンダーフローインディケーションと共にet_interrupt_enをアサートする。制御ノード1406は、読むホスト又はデバッガのためFIFO内のこれらのインディケーションをバッファする。オーバーフロー/アンダーフローインディケーションがETブロックから来るとき、制御ノード1406は、FIFO内のベクトル番号と共にオーバーフロー/アンダーフローインディケーションを保存し、エラーが生じたとインタラプトを介してホスト/デバッガに示す。ホスト又はデバッガは、対応するFIFOを読み出すことを担っている。
本発明に関連する分野の当業者であれば、記載された実施形態及び実現された付加的な実施形態に本発明の請求の範囲内から逸脱することなく変更が行われることが理解されるであろう。

Claims (12)

  1. メッセージバス(1420)制御ノード(1406)により特徴付けられる装置であって
    前記制御ノードが、
    ホストプロセッサ(1316)と通信するように構成されるホストインタフェース(1405)
    各々前記メッセージバスに結合される、複数のパーティションメッセージパイプライン(6134−1〜6134−R、6136−1〜6136−R、6138−1〜6138−R)
    前記メッセージバスに結合されるロード/保存メッセージパイプライン(6134−(R+2)、6136−(R+2)、6138−(R+2))
    各パーティションメッセージパイプライン前記ロード/保存メッセージパイプライン前記ホストインタフェースに結合されるメッセージキュー(6102)
    各パーティションメッセージパイプライン前記ロード/保存メッセージパイプラインに結合されるシーケンシャルプロセッサ(6140)
    前記ホストインタフェース前記メッセージキューに結合される制御ノードメモリ(6114)
    を有する、装置。
  2. 請求項1に記載の装置であって、
    前記パーティションメッセージパイプライン前記ロード/保存メッセージパイプラインの各々が、
    前記メッセージバスに結合されるスレーブインタフェース(6134−1〜6134−R、6134−(R+2))
    前記メッセージキュー前記シーケンシャルプロセッサ前記スレーブインタフェースに結合されるメッセージプレプロセッサ(6136−1〜6134−R、6136−(R+2))
    前記メッセージバス前記メッセージプレプロセッサに結合されるマスタインタフェース(613−1〜6138−R、613−(R+2))
    により更に特徴付けられる、装置。
  3. 請求項1又は2に記載の装置であって、
    前記制御ノードが、
    前記シーケンシャルプロセッサと前記制御ノードメモリとの間に結合され、且つ、前記パーティションメッセージパイプラインの各々前記ロード/保存メッセージパイプラインに結合されるエクストラクタ(6142)により更に特徴付けられる、装置。
  4. 請求項1、2又は3に記載の装置であって、
    前記制御ノードが、前記制御ノードメモリに結合されるレジスタ(6144)により更に特徴付けられる装置。
  5. 請求項1、2、3又は4に記載の装置であって、
    前記制御ノードが、前記メッセージキューと前記ホストインタフェースとの間に結合されるアービタ(6146)により更に特徴付けられる、装置
  6. ホストプロセッサ(1316)
    システムメモリ(1416)と、
    前記システムメモリに結合される処理クラスタと、
    により特徴付けられるシステムであって
    前記処理クラスタが、
    メッセージバス(1420)
    データバス(1422)
    パーティション(1402−1〜1402−R)に配される複数の処理ノード(808−1〜808−N)であって、各パーティションが前記データバスに結合されるバスインタフェースユニット(4710−1〜4710−R)を有し、各処理ノードが前記メッセージバスに結合される、前記複数の処理ノードと
    前記メッセージバス前記データバスに結合されるロード/保存ユニット(1408)
    制御ノード(1406)
    を含み、
    前記制御ノードが、
    前記ホストプロセッサに結合されるホストインタフェース(1405)
    各々前記メッセージバスに結合される、複数のパーティションメッセージパイプライン(6134−1〜6134−R、6136−1〜6136−R、6138−1〜6138−R)
    前記メッセージバスに結合されるロード/保存メッセージパイプライン(6134−(R+2)、6136−(R+2)、6138−(R+2))
    各パーティションメッセージパイプライン前記ロード/保存メッセージパイプライン前記ホストインタフェースに結合されるメッセージキュー(6102)
    各パーティションメッセージパイプライン前記ロード/保存メッセージパイプラインに結合されるシーケンシャルプロセッサ(6140)
    前記ホストインタフェース前記メッセージキューに結合される制御ノードメモリ(6114)
    を有する、システム。
  7. 請求項6に記載のシステムであって、
    前記パーティションメッセージパイプライン前記ロード/保存メッセージパイプラインの各々が、
    前記メッセージバスに結合されるスレーブインタフェース(6134−1〜6134−R、6134−(R+2))
    前記メッセージキュー前記シーケンシャルプロセッサ前記スレーブインタフェースに結合されるメッセージプレプロセッサ(6136−1〜6136−R、6136−(R+2))
    前記メッセージバス前記メッセージプレプロセッサに結合されるマスタインタフェース(613−1〜6138−R、613−(R+2))
    により更に特徴付けられる、システム。
  8. 請求項6又は7に記載のシステムであって、
    前記制御ノードが、
    前記シーケンシャルプロセッサと前記制御ノードメモリとの間に結合され、且つ、前記パーティションメッセージパイプラインの各々前記ロード/保存メッセージパイプラインに結合されるエクストラクタ(6142)より更に特徴付けられる、システム。
  9. 請求項6、7又は8に記載のシステムであって、
    前記制御ノードが、前記制御ノードメモリに結合されるレジスタ(6144)により更に特徴付けられる、システム。
  10. 請求項6、7、8又は9に記載のシステムであって、
    前記制御ノードが、前記メッセージキューと前記ホストインタフェースとの間に結合されるアービタ(6146)により更に特徴付けられる、システム。
  11. 請求項6、7、8、9又は10に記載のシステムであって、
    前記システムが、前記データバスと前記ロード/保存ユニットとの間に結合されるデータインターコネクト(814)により更に特徴付けられる、システム。
  12. 請求項6、7、8、9、10又は11に記載のシステムであって、
    前記システムが、
    前記制御ノード前記ホストプロセッサに結合されるシステムバス(1326、1328)
    前記システムバスに結合されるメモリコントローラ(1304)
    前記システムバスに結合されるシステムメモリ(1416)
    によ更に特徴付けられる、システム。
JP2013540048A 2010-11-18 2011-11-18 処理クラスタのための制御ノード Active JP5859017B2 (ja)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US41520510P 2010-11-18 2010-11-18
US41521010P 2010-11-18 2010-11-18
US61/415,210 2010-11-18
US61/415,205 2010-11-18
US13/232,774 2011-09-14
US13/232,774 US9552206B2 (en) 2010-11-18 2011-09-14 Integrated circuit with control node circuitry and processing circuitry
PCT/US2011/061369 WO2012068449A2 (en) 2010-11-18 2011-11-18 Control node for a processing cluster

Publications (2)

Publication Number Publication Date
JP2014503876A JP2014503876A (ja) 2014-02-13
JP5859017B2 true JP5859017B2 (ja) 2016-02-10

Family

ID=46065497

Family Applications (9)

Application Number Title Priority Date Filing Date
JP2013540065A Pending JP2014501007A (ja) 2010-11-18 2011-11-18 汎用レジスタファイルからsimdレジスタファイルへデータを移動させるための方法及び装置
JP2013540048A Active JP5859017B2 (ja) 2010-11-18 2011-11-18 処理クラスタのための制御ノード
JP2013540061A Active JP6096120B2 (ja) 2010-11-18 2011-11-18 処理クラスタのためのロード/ストア回路要素
JP2013540058A Pending JP2014505916A (ja) 2010-11-18 2011-11-18 Simdレジスタファイルから汎用レジスタファイルへデータを移動させるための方法及び装置
JP2013540069A Pending JP2014501008A (ja) 2010-11-18 2011-11-18 データを移動させるための方法及び装置
JP2013540064A Pending JP2014501969A (ja) 2010-11-18 2011-11-18 コンテキスト切替え方法及び装置
JP2013540074A Pending JP2014501009A (ja) 2010-11-18 2011-11-18 データを移動させるための方法及び装置
JP2013540059A Active JP5989656B2 (ja) 2010-11-18 2011-11-18 処理クラスタ用の共有機能メモリ回路要素
JP2016024486A Active JP6243935B2 (ja) 2010-11-18 2016-02-12 コンテキスト切替方法及び装置

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2013540065A Pending JP2014501007A (ja) 2010-11-18 2011-11-18 汎用レジスタファイルからsimdレジスタファイルへデータを移動させるための方法及び装置

Family Applications After (7)

Application Number Title Priority Date Filing Date
JP2013540061A Active JP6096120B2 (ja) 2010-11-18 2011-11-18 処理クラスタのためのロード/ストア回路要素
JP2013540058A Pending JP2014505916A (ja) 2010-11-18 2011-11-18 Simdレジスタファイルから汎用レジスタファイルへデータを移動させるための方法及び装置
JP2013540069A Pending JP2014501008A (ja) 2010-11-18 2011-11-18 データを移動させるための方法及び装置
JP2013540064A Pending JP2014501969A (ja) 2010-11-18 2011-11-18 コンテキスト切替え方法及び装置
JP2013540074A Pending JP2014501009A (ja) 2010-11-18 2011-11-18 データを移動させるための方法及び装置
JP2013540059A Active JP5989656B2 (ja) 2010-11-18 2011-11-18 処理クラスタ用の共有機能メモリ回路要素
JP2016024486A Active JP6243935B2 (ja) 2010-11-18 2016-02-12 コンテキスト切替方法及び装置

Country Status (4)

Country Link
US (1) US9552206B2 (ja)
JP (9) JP2014501007A (ja)
CN (8) CN103221933B (ja)
WO (8) WO2012068449A2 (ja)

Families Citing this family (230)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7797367B1 (en) * 1999-10-06 2010-09-14 Gelvin David C Apparatus for compact internetworked wireless integrated network sensors (WINS)
US9710384B2 (en) 2008-01-04 2017-07-18 Micron Technology, Inc. Microprocessor architecture having alternative memory access paths
US8631411B1 (en) 2009-07-21 2014-01-14 The Research Foundation For The State University Of New York Energy aware processing load distribution system and method
US8446824B2 (en) * 2009-12-17 2013-05-21 Intel Corporation NUMA-aware scaling for network devices
US9003414B2 (en) * 2010-10-08 2015-04-07 Hitachi, Ltd. Storage management computer and method for avoiding conflict by adjusting the task starting time and switching the order of task execution
US9552206B2 (en) * 2010-11-18 2017-01-24 Texas Instruments Incorporated Integrated circuit with control node circuitry and processing circuitry
KR20120066305A (ko) * 2010-12-14 2012-06-22 한국전자통신연구원 비디오 움직임 예측 및 보상용 캐싱 장치 및 방법
CN103329365B (zh) * 2011-01-26 2016-01-06 苹果公司 具有180度配接自由的连接器配件
US8918791B1 (en) * 2011-03-10 2014-12-23 Applied Micro Circuits Corporation Method and system for queuing a request by a processor to access a shared resource and granting access in accordance with an embedded lock ID
KR101215152B1 (ko) * 2011-04-21 2012-12-24 한양대학교 산학협력단 인루프 필터링을 적용한 예측 방법을 이용한 영상 부호화/복호화 방법 및 장치
US20130060555A1 (en) * 2011-06-10 2013-03-07 Qualcomm Incorporated System and Apparatus Modeling Processor Workloads Using Virtual Pulse Chains
US9086883B2 (en) 2011-06-10 2015-07-21 Qualcomm Incorporated System and apparatus for consolidated dynamic frequency/voltage control
US8656376B2 (en) * 2011-09-01 2014-02-18 National Tsing Hua University Compiler for providing intrinsic supports for VLIW PAC processors with distributed register files and method thereof
CN102331961B (zh) * 2011-09-13 2014-02-19 华为技术有限公司 并行模拟多个处理器的方法及系统、调度器
US20130077690A1 (en) * 2011-09-23 2013-03-28 Qualcomm Incorporated Firmware-Based Multi-Threaded Video Decoding
KR101859188B1 (ko) * 2011-09-26 2018-06-29 삼성전자주식회사 매니코어 시스템에서의 파티션 스케줄링 장치 및 방법
EP2783284B1 (en) 2011-11-22 2019-03-13 Solano Labs, Inc. System of distributed software quality improvement
JP5915116B2 (ja) * 2011-11-24 2016-05-11 富士通株式会社 ストレージシステム、ストレージ装置、システム制御プログラムおよびシステム制御方法
US9268626B2 (en) * 2011-12-23 2016-02-23 Intel Corporation Apparatus and method for vectorization with speculation support
WO2013106210A1 (en) * 2012-01-10 2013-07-18 Intel Corporation Electronic apparatus having parallel memory banks
US8639894B2 (en) * 2012-01-27 2014-01-28 Comcast Cable Communications, Llc Efficient read and write operations
GB201204687D0 (en) * 2012-03-16 2012-05-02 Microsoft Corp Communication privacy
CN104205042B (zh) 2012-03-30 2019-01-08 英特尔公司 用于具有通用cpu核心和紧密耦合的加速器的处理核心的上下文切换机制
US10430190B2 (en) * 2012-06-07 2019-10-01 Micron Technology, Inc. Systems and methods for selectively controlling multithreaded execution of executable code segments
US9436477B2 (en) * 2012-06-15 2016-09-06 International Business Machines Corporation Transaction abort instruction
US9367323B2 (en) 2012-06-15 2016-06-14 International Business Machines Corporation Processor assist facility
US10437602B2 (en) 2012-06-15 2019-10-08 International Business Machines Corporation Program interruption filtering in transactional execution
US9384004B2 (en) 2012-06-15 2016-07-05 International Business Machines Corporation Randomized testing within transactional execution
US9317460B2 (en) 2012-06-15 2016-04-19 International Business Machines Corporation Program event recording within a transactional environment
US9772854B2 (en) 2012-06-15 2017-09-26 International Business Machines Corporation Selectively controlling instruction execution in transactional processing
US9348642B2 (en) 2012-06-15 2016-05-24 International Business Machines Corporation Transaction begin/end instructions
US20130339680A1 (en) 2012-06-15 2013-12-19 International Business Machines Corporation Nontransactional store instruction
US9740549B2 (en) 2012-06-15 2017-08-22 International Business Machines Corporation Facilitating transaction completion subsequent to repeated aborts of the transaction
US9361115B2 (en) 2012-06-15 2016-06-07 International Business Machines Corporation Saving/restoring selected registers in transactional processing
US9442737B2 (en) 2012-06-15 2016-09-13 International Business Machines Corporation Restricting processing within a processor to facilitate transaction completion
US9448796B2 (en) 2012-06-15 2016-09-20 International Business Machines Corporation Restricted instructions in transactional execution
US8682877B2 (en) 2012-06-15 2014-03-25 International Business Machines Corporation Constrained transaction execution
US9336046B2 (en) 2012-06-15 2016-05-10 International Business Machines Corporation Transaction abort processing
US8688661B2 (en) 2012-06-15 2014-04-01 International Business Machines Corporation Transactional processing
US10223246B2 (en) * 2012-07-30 2019-03-05 Infosys Limited System and method for functional test case generation of end-to-end business process models
US10154177B2 (en) * 2012-10-04 2018-12-11 Cognex Corporation Symbology reader with multi-core processor
US9747107B2 (en) 2012-11-05 2017-08-29 Nvidia Corporation System and method for compiling or runtime executing a fork-join data parallel program with function calls on a single-instruction-multiple-thread processor
EP3142016B1 (en) * 2012-11-21 2021-10-13 Coherent Logix Incorporated Processing system with interspersed processors dma-fifo
US9417873B2 (en) 2012-12-28 2016-08-16 Intel Corporation Apparatus and method for a hybrid latency-throughput processor
US9804839B2 (en) * 2012-12-28 2017-10-31 Intel Corporation Instruction for determining histograms
US9361116B2 (en) * 2012-12-28 2016-06-07 Intel Corporation Apparatus and method for low-latency invocation of accelerators
US10140129B2 (en) 2012-12-28 2018-11-27 Intel Corporation Processing core having shared front end unit
US10346195B2 (en) 2012-12-29 2019-07-09 Intel Corporation Apparatus and method for invocation of a multi threaded accelerator
US11163736B2 (en) * 2013-03-04 2021-11-02 Avaya Inc. System and method for in-memory indexing of data
US9400611B1 (en) * 2013-03-13 2016-07-26 Emc Corporation Data migration in cluster environment using host copy and changed block tracking
US9582320B2 (en) * 2013-03-14 2017-02-28 Nxp Usa, Inc. Computer systems and methods with resource transfer hint instruction
US9158698B2 (en) 2013-03-15 2015-10-13 International Business Machines Corporation Dynamically removing entries from an executing queue
US9471521B2 (en) * 2013-05-15 2016-10-18 Stmicroelectronics S.R.L. Communication system for interfacing a plurality of transmission circuits with an interconnection network, and corresponding integrated circuit
US9244810B2 (en) 2013-05-23 2016-01-26 Nvidia Corporation Debugger graphical user interface system, method, and computer program product
US8943448B2 (en) * 2013-05-23 2015-01-27 Nvidia Corporation System, method, and computer program product for providing a debugger using a common hardware database
US20140351811A1 (en) * 2013-05-24 2014-11-27 Empire Technology Development Llc Datacenter application packages with hardware accelerators
US20140358759A1 (en) * 2013-05-28 2014-12-04 Rivada Networks, Llc Interfacing between a Dynamic Spectrum Policy Controller and a Dynamic Spectrum Controller
US9910816B2 (en) * 2013-07-22 2018-03-06 Futurewei Technologies, Inc. Scalable direct inter-node communication over peripheral component interconnect-express (PCIe)
US9882984B2 (en) 2013-08-02 2018-01-30 International Business Machines Corporation Cache migration management in a virtualized distributed computing system
US10373301B2 (en) 2013-09-25 2019-08-06 Sikorsky Aircraft Corporation Structural hot spot and critical location monitoring system and method
US8914757B1 (en) * 2013-10-02 2014-12-16 International Business Machines Corporation Explaining illegal combinations in combinatorial models
GB2519108A (en) 2013-10-09 2015-04-15 Advanced Risc Mach Ltd A data processing apparatus and method for controlling performance of speculative vector operations
GB2519107B (en) * 2013-10-09 2020-05-13 Advanced Risc Mach Ltd A data processing apparatus and method for performing speculative vector access operations
US9740854B2 (en) * 2013-10-25 2017-08-22 Red Hat, Inc. System and method for code protection
US10185604B2 (en) * 2013-10-31 2019-01-22 Advanced Micro Devices, Inc. Methods and apparatus for software chaining of co-processor commands before submission to a command queue
US9727611B2 (en) * 2013-11-08 2017-08-08 Samsung Electronics Co., Ltd. Hybrid buffer management scheme for immutable pages
US10191765B2 (en) 2013-11-22 2019-01-29 Sap Se Transaction commit operations with thread decoupling and grouping of I/O requests
US9495312B2 (en) 2013-12-20 2016-11-15 International Business Machines Corporation Determining command rate based on dropped commands
US9552221B1 (en) * 2013-12-23 2017-01-24 Google Inc. Monitoring application execution using probe and profiling modules to collect timing and dependency information
US10127012B2 (en) 2013-12-27 2018-11-13 Intel Corporation Scalable input/output system and techniques to transmit data between domains without a central processor
US9307057B2 (en) * 2014-01-08 2016-04-05 Cavium, Inc. Methods and systems for resource management in a single instruction multiple data packet parsing cluster
US9509769B2 (en) * 2014-02-28 2016-11-29 Sap Se Reflecting data modification requests in an offline environment
US9720991B2 (en) 2014-03-04 2017-08-01 Microsoft Technology Licensing, Llc Seamless data migration across databases
US9697100B2 (en) * 2014-03-10 2017-07-04 Accenture Global Services Limited Event correlation
GB2524063B (en) 2014-03-13 2020-07-01 Advanced Risc Mach Ltd Data processing apparatus for executing an access instruction for N threads
JP6183251B2 (ja) * 2014-03-14 2017-08-23 株式会社デンソー 電子制御装置
US9268597B2 (en) * 2014-04-01 2016-02-23 Google Inc. Incremental parallel processing of data
US9607073B2 (en) * 2014-04-17 2017-03-28 Ab Initio Technology Llc Processing data from multiple sources
US10102210B2 (en) * 2014-04-18 2018-10-16 Oracle International Corporation Systems and methods for multi-threaded shadow migration
US9400654B2 (en) * 2014-06-27 2016-07-26 Freescale Semiconductor, Inc. System on a chip with managing processor and method therefor
CN104125283B (zh) * 2014-07-30 2017-10-03 中国银行股份有限公司 一种用于集群的消息队列接收方法及系统
US9787564B2 (en) * 2014-08-04 2017-10-10 Cisco Technology, Inc. Algorithm for latency saving calculation in a piped message protocol on proxy caching engine
US9692813B2 (en) * 2014-08-08 2017-06-27 Sas Institute Inc. Dynamic assignment of transfers of blocks of data
US9910650B2 (en) * 2014-09-25 2018-03-06 Intel Corporation Method and apparatus for approximating detection of overlaps between memory ranges
US9501420B2 (en) 2014-10-22 2016-11-22 Netapp, Inc. Cache optimization technique for large working data sets
US20170262879A1 (en) * 2014-11-06 2017-09-14 Appriz Incorporated Mobile application and two-way financial interaction solution with personalized alerts and notifications
US9727500B2 (en) 2014-11-19 2017-08-08 Nxp Usa, Inc. Message filtering in a data processing system
US9697151B2 (en) 2014-11-19 2017-07-04 Nxp Usa, Inc. Message filtering in a data processing system
US9727679B2 (en) * 2014-12-20 2017-08-08 Intel Corporation System on chip configuration metadata
US9851970B2 (en) * 2014-12-23 2017-12-26 Intel Corporation Method and apparatus for performing reduction operations on a set of vector elements
US9880953B2 (en) 2015-01-05 2018-01-30 Tuxera Corporation Systems and methods for network I/O based interrupt steering
US9286196B1 (en) * 2015-01-08 2016-03-15 Arm Limited Program execution optimization using uniform variable identification
EP3245474A4 (en) 2015-01-13 2018-07-04 Sikorsky Aircraft Corporation Structural health monitoring employing physics models
US20160219101A1 (en) * 2015-01-23 2016-07-28 Tieto Oyj Migrating an application providing latency critical service
US9547881B2 (en) * 2015-01-29 2017-01-17 Qualcomm Incorporated Systems and methods for calculating a feature descriptor
JP6508661B2 (ja) * 2015-02-06 2019-05-08 華為技術有限公司Huawei Technologies Co.,Ltd. データ処理システム、計算ノードおよびデータ処理方法
US9785413B2 (en) * 2015-03-06 2017-10-10 Intel Corporation Methods and apparatus to eliminate partial-redundant vector loads
JP6427053B2 (ja) * 2015-03-31 2018-11-21 株式会社デンソー 並列化コンパイル方法、及び並列化コンパイラ
US10095479B2 (en) * 2015-04-23 2018-10-09 Google Llc Virtual image processor instruction set architecture (ISA) and memory model and exemplary target hardware having a two-dimensional shift array structure
US10372616B2 (en) * 2015-06-03 2019-08-06 Renesas Electronics America Inc. Microcontroller performing address translations using address offsets in memory where selected absolute addressing based programs are stored
US9923965B2 (en) 2015-06-05 2018-03-20 International Business Machines Corporation Storage mirroring over wide area network circuits with dynamic on-demand capacity
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
US10175988B2 (en) 2015-06-26 2019-01-08 Microsoft Technology Licensing, Llc Explicit instruction scheduler state information for a processor
US10409606B2 (en) 2015-06-26 2019-09-10 Microsoft Technology Licensing, Llc Verifying branch targets
US10191747B2 (en) 2015-06-26 2019-01-29 Microsoft Technology Licensing, Llc Locking operand values for groups of instructions executed atomically
US10346168B2 (en) 2015-06-26 2019-07-09 Microsoft Technology Licensing, Llc Decoupled processor instruction window and operand buffer
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
CN106293893B (zh) 2015-06-26 2019-12-06 阿里巴巴集团控股有限公司 作业调度方法、装置及分布式系统
US10459723B2 (en) 2015-07-20 2019-10-29 Qualcomm Incorporated SIMD instructions for multi-stage cube networks
US9930498B2 (en) * 2015-07-31 2018-03-27 Qualcomm Incorporated Techniques for multimedia broadcast multicast service transmissions in unlicensed spectrum
US20170054449A1 (en) * 2015-08-19 2017-02-23 Texas Instruments Incorporated Method and System for Compression of Radar Signals
US10613949B2 (en) 2015-09-24 2020-04-07 Hewlett Packard Enterprise Development Lp Failure indication in shared memory
US20170104733A1 (en) * 2015-10-09 2017-04-13 Intel Corporation Device, system and method for low speed communication of sensor information
US9898325B2 (en) * 2015-10-20 2018-02-20 Vmware, Inc. Configuration settings for configurable virtual components
US20170116154A1 (en) * 2015-10-23 2017-04-27 The Intellisis Corporation Register communication in a network-on-a-chip architecture
CN106648563B (zh) * 2015-10-30 2021-03-23 阿里巴巴集团控股有限公司 应用程序中共享模块的依赖解耦处理方法和装置
KR102248846B1 (ko) * 2015-11-04 2021-05-06 삼성전자주식회사 데이터를 병렬 처리하는 방법 및 이를 위한 장치
US9977619B2 (en) * 2015-11-06 2018-05-22 Vivante Corporation Transfer descriptor for memory access commands
US9923839B2 (en) * 2015-11-25 2018-03-20 International Business Machines Corporation Configuring resources to exploit elastic network capability
US9923784B2 (en) 2015-11-25 2018-03-20 International Business Machines Corporation Data transfer using flexible dynamic elastic network service provider relationships
US10177993B2 (en) 2015-11-25 2019-01-08 International Business Machines Corporation Event-based data transfer scheduling using elastic network optimization criteria
US10581680B2 (en) 2015-11-25 2020-03-03 International Business Machines Corporation Dynamic configuration of network features
US10216441B2 (en) 2015-11-25 2019-02-26 International Business Machines Corporation Dynamic quality of service for storage I/O port allocation
US10057327B2 (en) 2015-11-25 2018-08-21 International Business Machines Corporation Controlled transfer of data over an elastic network
US10642617B2 (en) * 2015-12-08 2020-05-05 Via Alliance Semiconductor Co., Ltd. Processor with an expandable instruction set architecture for dynamically configuring execution resources
US10180829B2 (en) * 2015-12-15 2019-01-15 Nxp Usa, Inc. System and method for modulo addressing vectorization with invariant code motion
US20170177349A1 (en) * 2015-12-21 2017-06-22 Intel Corporation Instructions and Logic for Load-Indices-and-Prefetch-Gathers Operations
CN107015931A (zh) * 2016-01-27 2017-08-04 三星电子株式会社 用于中断处理的方法和加速器单元
CN105760321B (zh) * 2016-02-29 2019-08-13 福州瑞芯微电子股份有限公司 SOC芯片的debug时钟域电路
US20210049292A1 (en) * 2016-03-07 2021-02-18 Crowdstrike, Inc. Hypervisor-Based Interception of Memory and Register Accesses
GB2548601B (en) * 2016-03-23 2019-02-13 Advanced Risc Mach Ltd Processing vector instructions
EP3226184A1 (en) * 2016-03-30 2017-10-04 Tata Consultancy Services Limited Systems and methods for determining and rectifying events in processes
US9967539B2 (en) * 2016-06-03 2018-05-08 Samsung Electronics Co., Ltd. Timestamp error correction with double readout for the 3D camera with epipolar line laser point scanning
US20170364334A1 (en) * 2016-06-21 2017-12-21 Atti Liu Method and Apparatus of Read and Write for the Purpose of Computing
US10797941B2 (en) * 2016-07-13 2020-10-06 Cisco Technology, Inc. Determining network element analytics and networking recommendations based thereon
CN107832005B (zh) * 2016-08-29 2021-02-26 鸿富锦精密电子(天津)有限公司 分布式数据存取系统及方法
KR102247529B1 (ko) * 2016-09-06 2021-05-03 삼성전자주식회사 전자 장치, 재구성 가능 프로세서 및 그 제어 방법들
US10353711B2 (en) 2016-09-06 2019-07-16 Apple Inc. Clause chaining for clause-based instruction execution
US10909077B2 (en) * 2016-09-29 2021-02-02 Paypal, Inc. File slack leveraging
US10866842B2 (en) * 2016-10-25 2020-12-15 Reconfigure.Io Limited Synthesis path for transforming concurrent programs into hardware deployable on FPGA-based cloud infrastructures
US10423446B2 (en) * 2016-11-28 2019-09-24 Arm Limited Data processing
KR102659495B1 (ko) * 2016-12-02 2024-04-22 삼성전자주식회사 벡터 프로세서 및 그 제어 방법
GB2558220B (en) 2016-12-22 2019-05-15 Advanced Risc Mach Ltd Vector generating instruction
CN108616905B (zh) * 2016-12-28 2021-03-19 大唐移动通信设备有限公司 基于蜂窝的窄带物联网中用户平面优化方法和系统
US10268558B2 (en) 2017-01-13 2019-04-23 Microsoft Technology Licensing, Llc Efficient breakpoint detection via caches
US10671395B2 (en) * 2017-02-13 2020-06-02 The King Abdulaziz City for Science and Technology—KACST Application specific instruction-set processor (ASIP) for simultaneously executing a plurality of operations using a long instruction word
US11157801B2 (en) 2017-02-28 2021-10-26 Microsoft Technology Licensing, Llc Neural network processing with the neural network model pinned to on-chip memories of hardware nodes
US10169196B2 (en) * 2017-03-20 2019-01-01 Microsoft Technology Licensing, Llc Enabling breakpoints on entire data structures
US10360045B2 (en) * 2017-04-25 2019-07-23 Sandisk Technologies Llc Event-driven schemes for determining suspend/resume periods
US10552206B2 (en) * 2017-05-23 2020-02-04 Ge Aviation Systems Llc Contextual awareness associated with resources
US20180349137A1 (en) * 2017-06-05 2018-12-06 Intel Corporation Reconfiguring a processor without a system reset
US11143010B2 (en) 2017-06-13 2021-10-12 Schlumberger Technology Corporation Well construction communication and control
US11021944B2 (en) 2017-06-13 2021-06-01 Schlumberger Technology Corporation Well construction communication and control
US20180359130A1 (en) * 2017-06-13 2018-12-13 Schlumberger Technology Corporation Well Construction Communication and Control
US10599617B2 (en) * 2017-06-29 2020-03-24 Intel Corporation Methods and apparatus to modify a binary file for scalable dependency loading on distributed computing systems
US11436010B2 (en) 2017-06-30 2022-09-06 Intel Corporation Method and apparatus for vectorizing indirect update loops
CN111316234B (zh) * 2017-09-12 2024-03-12 恩倍科微公司 极低功率微控制器系统
US10620955B2 (en) 2017-09-19 2020-04-14 International Business Machines Corporation Predicting a table of contents pointer value responsive to branching to a subroutine
US10884929B2 (en) 2017-09-19 2021-01-05 International Business Machines Corporation Set table of contents (TOC) register instruction
US10705973B2 (en) 2017-09-19 2020-07-07 International Business Machines Corporation Initializing a data structure for use in predicting table of contents pointer values
US10725918B2 (en) 2017-09-19 2020-07-28 International Business Machines Corporation Table of contents cache entry having a pointer for a range of addresses
US10713050B2 (en) 2017-09-19 2020-07-14 International Business Machines Corporation Replacing Table of Contents (TOC)-setting instructions in code with TOC predicting instructions
US11061575B2 (en) * 2017-09-19 2021-07-13 International Business Machines Corporation Read-only table of contents register
US10896030B2 (en) 2017-09-19 2021-01-19 International Business Machines Corporation Code generation relating to providing table of contents pointer values
US10761970B2 (en) * 2017-10-20 2020-09-01 International Business Machines Corporation Computerized method and systems for performing deferred safety check operations
CN109697114B (zh) * 2017-10-20 2023-07-28 伊姆西Ip控股有限责任公司 用于应用迁移的方法和机器
US10572302B2 (en) * 2017-11-07 2020-02-25 Oracle Internatíonal Corporatíon Computerized methods and systems for executing and analyzing processes
US10705843B2 (en) * 2017-12-21 2020-07-07 International Business Machines Corporation Method and system for detection of thread stall
US10915317B2 (en) * 2017-12-22 2021-02-09 Alibaba Group Holding Limited Multiple-pipeline architecture with special number detection
CN108196946B (zh) * 2017-12-28 2019-08-09 北京翼辉信息技术有限公司 一种微内核操作系统的分区多核方法
US10366017B2 (en) 2018-03-30 2019-07-30 Intel Corporation Methods and apparatus to offload media streams in host devices
US11277455B2 (en) 2018-06-07 2022-03-15 Mellanox Technologies, Ltd. Streaming system
US10740220B2 (en) 2018-06-27 2020-08-11 Microsoft Technology Licensing, Llc Cache-based trace replay breakpoints using reserved tag field bits
CN109087381B (zh) * 2018-07-04 2023-01-17 西安邮电大学 一种基于双发射vliw的统一架构渲染着色器
CN110837414B (zh) * 2018-08-15 2024-04-12 京东科技控股股份有限公司 任务处理方法和装置
US10862485B1 (en) * 2018-08-29 2020-12-08 Verisilicon Microelectronics (Shanghai) Co., Ltd. Lookup table index for a processor
CN109445516A (zh) * 2018-09-27 2019-03-08 北京中电华大电子设计有限责任公司 一种应用于双核SoC中外设时钟控制方法及电路
US20200106828A1 (en) * 2018-10-02 2020-04-02 Mellanox Technologies, Ltd. Parallel Computation Network Device
US11108675B2 (en) 2018-10-31 2021-08-31 Keysight Technologies, Inc. Methods, systems, and computer readable media for testing effects of simulated frame preemption and deterministic fragmentation of preemptable frames in a frame-preemption-capable network
US11061894B2 (en) * 2018-10-31 2021-07-13 Salesforce.Com, Inc. Early detection and warning for system bottlenecks in an on-demand environment
US10678693B2 (en) * 2018-11-08 2020-06-09 Insightfulvr, Inc Logic-executing ring buffer
US10776984B2 (en) 2018-11-08 2020-09-15 Insightfulvr, Inc Compositor for decoupled rendering
US10728134B2 (en) * 2018-11-14 2020-07-28 Keysight Technologies, Inc. Methods, systems, and computer readable media for measuring delivery latency in a frame-preemption-capable network
CN109374935A (zh) * 2018-11-28 2019-02-22 武汉精能电子技术有限公司 一种电子负载并机方法及系统
US10761822B1 (en) * 2018-12-12 2020-09-01 Amazon Technologies, Inc. Synchronization of computation engines with non-blocking instructions
GB2580136B (en) * 2018-12-21 2021-01-20 Graphcore Ltd Handling exceptions in a multi-tile processing arrangement
US10671550B1 (en) * 2019-01-03 2020-06-02 International Business Machines Corporation Memory offloading a problem using accelerators
TWI703500B (zh) * 2019-02-01 2020-09-01 睿寬智能科技有限公司 可縮短內文交換時間之方法及其半導體裝置
US11625393B2 (en) 2019-02-19 2023-04-11 Mellanox Technologies, Ltd. High performance computing system
EP3699770A1 (en) 2019-02-25 2020-08-26 Mellanox Technologies TLV Ltd. Collective communication system and methods
US10771398B1 (en) * 2019-03-06 2020-09-08 Live Nation Entertainment, Inc. Systems and methods for queue control based on client-specific protocols
CN110177220B (zh) * 2019-05-23 2020-09-01 上海图趣信息科技有限公司 一种具有外部授时功能的相机及其控制方法
US11195095B2 (en) * 2019-08-08 2021-12-07 Neuralmagic Inc. System and method of accelerating execution of a neural network
US11573802B2 (en) * 2019-10-23 2023-02-07 Texas Instruments Incorporated User mode event handling
US11144483B2 (en) * 2019-10-25 2021-10-12 Micron Technology, Inc. Apparatuses and methods for writing data to a memory
FR3103583B1 (fr) * 2019-11-27 2023-05-12 Commissariat Energie Atomique Système de gestion des données partagées
US10877761B1 (en) * 2019-12-08 2020-12-29 Mellanox Technologies, Ltd. Write reordering in a multiprocessor system
CN111061510B (zh) * 2019-12-12 2021-01-05 湖南毂梁微电子有限公司 一种可扩展的asip结构平台及指令处理方法
CN111143127B (zh) * 2019-12-23 2023-09-26 杭州迪普科技股份有限公司 监管网络设备的方法、装置、存储介质及设备
CN113034653B (zh) * 2019-12-24 2023-08-08 腾讯科技(深圳)有限公司 一种动画渲染方法及装置
US11750699B2 (en) 2020-01-15 2023-09-05 Mellanox Technologies, Ltd. Small message aggregation
US11137936B2 (en) 2020-01-21 2021-10-05 Google Llc Data processing on memory controller
US11360780B2 (en) * 2020-01-22 2022-06-14 Apple Inc. Instruction-level context switch in SIMD processor
US11252027B2 (en) 2020-01-23 2022-02-15 Mellanox Technologies, Ltd. Network element supporting flexible data reduction operations
JP7339368B2 (ja) 2020-02-05 2023-09-05 株式会社ソニー・インタラクティブエンタテインメント グラフィックプロセッサ及び情報処理システム
US11188316B2 (en) * 2020-03-09 2021-11-30 International Business Machines Corporation Performance optimization of class instance comparisons
US11354130B1 (en) * 2020-03-19 2022-06-07 Amazon Technologies, Inc. Efficient race-condition detection
WO2021212074A1 (en) * 2020-04-16 2021-10-21 Tom Herbert Parallelism in serial pipeline processing
JP7380415B2 (ja) * 2020-05-18 2023-11-15 トヨタ自動車株式会社 エージェント制御装置
JP7380416B2 (ja) 2020-05-18 2023-11-15 トヨタ自動車株式会社 エージェント制御装置
US11507805B2 (en) 2020-06-16 2022-11-22 IntuiCell AB Computer-implemented or hardware-implemented method of entity identification, a computer program product and an apparatus for entity identification
US11876885B2 (en) 2020-07-02 2024-01-16 Mellanox Technologies, Ltd. Clock queue with arming and/or self-arming features
GB202010839D0 (en) * 2020-07-14 2020-08-26 Graphcore Ltd Variable allocation
WO2022047699A1 (en) * 2020-09-03 2022-03-10 Telefonaktiebolaget Lm Ericsson (Publ) Method and apparatus for improved belief propagation based decoding
US11340914B2 (en) * 2020-10-21 2022-05-24 Red Hat, Inc. Run-time identification of dependencies during dynamic linking
JP7203799B2 (ja) 2020-10-27 2023-01-13 昭和電線ケーブルシステム株式会社 油入り電力ケーブルおよび接続部における漏油箇所の補修方法
US11243773B1 (en) 2020-12-14 2022-02-08 International Business Machines Corporation Area and power efficient mechanism to wakeup store-dependent loads according to store drain merges
US11556378B2 (en) 2020-12-14 2023-01-17 Mellanox Technologies, Ltd. Offloading execution of a multi-task parameter-dependent operation to a network device
TWI768592B (zh) * 2020-12-14 2022-06-21 瑞昱半導體股份有限公司 中央處理器
CN112924962B (zh) * 2021-01-29 2023-02-21 上海匀羿电磁科技有限公司 一种地下管线侧向偏移滤波检测及定位方法
CN113112393B (zh) * 2021-03-04 2022-05-31 浙江欣奕华智能科技有限公司 视觉导航系统中的边缘化装置
CN113438171B (zh) * 2021-05-08 2022-11-15 清华大学 一种低功耗存算一体系统的多芯片连接方法
CN113553266A (zh) * 2021-07-23 2021-10-26 湖南大学 一种基于并行性检测模型的串行程序的并行性检测方法、系统、终端及可读存储介质
US20230086827A1 (en) * 2021-09-23 2023-03-23 Oracle International Corporation Analyzing performance of resource systems that process requests for particular datasets
US11770345B2 (en) * 2021-09-30 2023-09-26 US Technology International Pvt. Ltd. Data transfer device for receiving data from a host device and method therefor
JP2023082571A (ja) * 2021-12-02 2023-06-14 富士通株式会社 演算処理装置及び演算処理方法
US20230289189A1 (en) * 2022-03-10 2023-09-14 Nvidia Corporation Distributed Shared Memory
WO2023214915A1 (en) * 2022-05-06 2023-11-09 IntuiCell AB A data processing system for processing pixel data to be indicative of contrast.
US11922237B1 (en) 2022-09-12 2024-03-05 Mellanox Technologies, Ltd. Single-step collective operations
DE102022003674A1 (de) * 2022-10-05 2024-04-11 Mercedes-Benz Group AG Verfahren zum statischen Allozieren von lnformationen zu Speicherbereichen, informationstechnisches System und Fahrzeug

Family Cites Families (81)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4862350A (en) * 1984-08-03 1989-08-29 International Business Machines Corp. Architecture for a distributive microprocessing system
GB2211638A (en) * 1987-10-27 1989-07-05 Ibm Simd array processor
US5218709A (en) * 1989-12-28 1993-06-08 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration Special purpose parallel computer architecture for real-time control and simulation in robotic applications
IL97315A (en) * 1990-02-28 1994-10-07 Hughes Aircraft Co Multi-group signal processor
US5815723A (en) * 1990-11-13 1998-09-29 International Business Machines Corporation Picket autonomy on a SIMD machine
CA2073516A1 (en) * 1991-11-27 1993-05-28 Peter Michael Kogge Dynamic multi-mode parallel processor array architecture computer system
US5315700A (en) * 1992-02-18 1994-05-24 Neopath, Inc. Method and apparatus for rapidly processing data sequences
JPH07287700A (ja) * 1992-05-22 1995-10-31 Internatl Business Mach Corp <Ibm> コンピュータ・システム
US5315701A (en) * 1992-08-07 1994-05-24 International Business Machines Corporation Method and system for processing graphics data streams utilizing scalable processing nodes
US5560034A (en) * 1993-07-06 1996-09-24 Intel Corporation Shared command list
JPH07210545A (ja) * 1994-01-24 1995-08-11 Matsushita Electric Ind Co Ltd 並列処理プロセッサ
US6002411A (en) * 1994-11-16 1999-12-14 Interactive Silicon, Inc. Integrated video and memory controller with data processing and graphical processing capabilities
JPH1049368A (ja) * 1996-07-30 1998-02-20 Mitsubishi Electric Corp 条件実行命令を有するマイクロプロセッサ
WO1998013759A1 (fr) * 1996-09-27 1998-04-02 Hitachi, Ltd. Machine de traitement de donnees et systeme de traitement de donnees
US6108775A (en) * 1996-12-30 2000-08-22 Texas Instruments Incorporated Dynamically loadable pattern history tables in a multi-task microprocessor
US6243499B1 (en) * 1998-03-23 2001-06-05 Xerox Corporation Tagging of antialiased images
JP2000207202A (ja) * 1998-10-29 2000-07-28 Pacific Design Kk 制御装置およびデ―タ処理装置
US8171263B2 (en) * 1999-04-09 2012-05-01 Rambus Inc. Data processing apparatus comprising an array controller for separating an instruction stream processing instructions and data transfer instructions
AU3829500A (en) * 1999-04-09 2000-11-14 Clearspeed Technology Limited Parallel data processing apparatus
US6751698B1 (en) * 1999-09-29 2004-06-15 Silicon Graphics, Inc. Multiprocessor node controller circuit and method
EP1102163A3 (en) * 1999-11-15 2005-06-29 Texas Instruments Incorporated Microprocessor with improved instruction set architecture
JP2001167069A (ja) * 1999-12-13 2001-06-22 Fujitsu Ltd マルチプロセッサシステム及びデータ転送方法
JP2002073329A (ja) * 2000-08-29 2002-03-12 Canon Inc プロセッサ
US20020052868A1 (en) * 2000-10-04 2002-05-02 Sanjeev Mohindra SIMD system and method
US6959346B2 (en) * 2000-12-22 2005-10-25 Mosaid Technologies, Inc. Method and system for packet encryption
JP5372307B2 (ja) * 2001-06-25 2013-12-18 株式会社ガイア・システム・ソリューション データ処理装置およびその制御方法
GB0119145D0 (en) * 2001-08-06 2001-09-26 Nokia Corp Controlling processing networks
JP2003099252A (ja) * 2001-09-26 2003-04-04 Pacific Design Kk データ処理装置およびその制御方法
JP3840966B2 (ja) * 2001-12-12 2006-11-01 ソニー株式会社 画像処理装置およびその方法
US7853778B2 (en) * 2001-12-20 2010-12-14 Intel Corporation Load/move and duplicate instructions for a processor
US7548586B1 (en) * 2002-02-04 2009-06-16 Mimar Tibet Audio and video processing apparatus
US7506135B1 (en) * 2002-06-03 2009-03-17 Mimar Tibet Histogram generation with vector operations in SIMD and VLIW processor by consolidating LUTs storing parallel update incremented count values for vector data elements
WO2004015563A1 (en) * 2002-08-09 2004-02-19 Intel Corporation Multimedia coprocessor control mechanism including alignment or broadcast instructions
JP2004295494A (ja) * 2003-03-27 2004-10-21 Fujitsu Ltd 汎用性及びリアルタイム性を有するマルチ処理ノードシステム
US7107436B2 (en) * 2003-09-08 2006-09-12 Freescale Semiconductor, Inc. Conditional next portion transferring of data stream to or from register based on subsequent instruction aspect
US7836276B2 (en) * 2005-12-02 2010-11-16 Nvidia Corporation System and method for processing thread groups in a SIMD architecture
DE10353267B3 (de) * 2003-11-14 2005-07-28 Infineon Technologies Ag Multithread-Prozessorarchitektur zum getriggerten Thread-Umschalten ohne Zykluszeitverlust und ohne Umschalt-Programmbefehl
GB2409060B (en) * 2003-12-09 2006-08-09 Advanced Risc Mach Ltd Moving data between registers of different register data stores
US8566828B2 (en) * 2003-12-19 2013-10-22 Stmicroelectronics, Inc. Accelerator for multi-processing system and method
US7206922B1 (en) * 2003-12-30 2007-04-17 Cisco Systems, Inc. Instruction memory hierarchy for an embedded processor
JP4698242B2 (ja) * 2004-02-16 2011-06-08 パナソニック株式会社 並列演算プロセッサ、並列演算プロセッサの動作を制御する制御プログラム及び制御方法、並びに並列演算プロセッサを搭載した画像処理装置
US7412587B2 (en) * 2004-02-16 2008-08-12 Matsushita Electric Industrial Co., Ltd. Parallel operation processor utilizing SIMD data transfers
JP2005352568A (ja) * 2004-06-08 2005-12-22 Hitachi-Lg Data Storage Inc アナログ信号処理回路、並びに、そのデータレジスタ書換方法とそのデータ通信方法
US7681199B2 (en) * 2004-08-31 2010-03-16 Hewlett-Packard Development Company, L.P. Time measurement using a context switch count, an offset, and a scale factor, received from the operating system
US7565469B2 (en) * 2004-11-17 2009-07-21 Nokia Corporation Multimedia card interface method, computer program product and apparatus
US7257695B2 (en) * 2004-12-28 2007-08-14 Intel Corporation Register file regions for a processing system
US20060155955A1 (en) * 2005-01-10 2006-07-13 Gschwind Michael K SIMD-RISC processor module
GB2437837A (en) * 2005-02-25 2007-11-07 Clearspeed Technology Plc Microprocessor architecture
GB2423840A (en) * 2005-03-03 2006-09-06 Clearspeed Technology Plc Reconfigurable logic in processors
US7992144B1 (en) * 2005-04-04 2011-08-02 Oracle America, Inc. Method and apparatus for separating and isolating control of processing entities in a network interface
CN101322111A (zh) * 2005-04-07 2008-12-10 杉桥技术公司 每个线程具有多个并发流水线的多线程处理器
US20060259737A1 (en) * 2005-05-10 2006-11-16 Telairity Semiconductor, Inc. Vector processor with special purpose registers and high speed memory access
JP4893621B2 (ja) * 2005-05-20 2012-03-07 ソニー株式会社 信号処理装置
JP2006343872A (ja) * 2005-06-07 2006-12-21 Keio Gijuku マルチスレッド中央演算装置および同時マルチスレッディング制御方法
US20060294344A1 (en) * 2005-06-28 2006-12-28 Universal Network Machines, Inc. Computer processor pipeline with shadow registers for context switching, and method
US8275976B2 (en) * 2005-08-29 2012-09-25 The Invention Science Fund I, Llc Hierarchical instruction scheduler facilitating instruction replay
US7617363B2 (en) * 2005-09-26 2009-11-10 Intel Corporation Low latency message passing mechanism
US7421529B2 (en) * 2005-10-20 2008-09-02 Qualcomm Incorporated Method and apparatus to clear semaphore reservation for exclusive access to shared memory
JP2009519513A (ja) * 2005-12-06 2009-05-14 ボストンサーキッツ インコーポレイテッド 専用スレッド管理を用いたマルチコアの演算処理方法及び装置
CN2862511Y (zh) * 2005-12-15 2007-01-24 李志刚 用于gjb-289a总线的多功能接口板
US7788468B1 (en) * 2005-12-15 2010-08-31 Nvidia Corporation Synchronization of threads in a cooperative thread array
US7360063B2 (en) * 2006-03-02 2008-04-15 International Business Machines Corporation Method for SIMD-oriented management of register maps for map-based indirect register-file access
US8560863B2 (en) * 2006-06-27 2013-10-15 Intel Corporation Systems and techniques for datapath security in a system-on-a-chip device
JP2008059455A (ja) * 2006-09-01 2008-03-13 Kawasaki Microelectronics Kk マルチプロセッサ
WO2008061154A2 (en) * 2006-11-14 2008-05-22 Soft Machines, Inc. Apparatus and method for processing instructions in a multi-threaded architecture using context switching
US7870400B2 (en) * 2007-01-02 2011-01-11 Freescale Semiconductor, Inc. System having a memory voltage controller which varies an operating voltage of a memory and method therefor
JP5079342B2 (ja) * 2007-01-22 2012-11-21 ルネサスエレクトロニクス株式会社 マルチプロセッサ装置
US20080270363A1 (en) * 2007-01-26 2008-10-30 Herbert Dennis Hunt Cluster processing of a core information matrix
US8250550B2 (en) * 2007-02-14 2012-08-21 The Mathworks, Inc. Parallel processing of distributed arrays and optimum data distribution
CN101021832A (zh) * 2007-03-19 2007-08-22 中国人民解放军国防科学技术大学 支持局部寄存和条件执行的64位浮点整数融合运算群
US8132172B2 (en) * 2007-03-26 2012-03-06 Intel Corporation Thread scheduling on multiprocessor systems
US7627744B2 (en) * 2007-05-10 2009-12-01 Nvidia Corporation External memory accessing DMA request scheduling in IC of parallel processing engines according to completion notification queue occupancy level
CN100461095C (zh) * 2007-11-20 2009-02-11 浙江大学 一种支持多模式的媒体增强流水线乘法单元设计方法
FR2925187B1 (fr) * 2007-12-14 2011-04-08 Commissariat Energie Atomique Systeme comportant une pluralite d'unites de traitement permettant d'executer des taches en parallele,en mixant le mode d'execution de type controle et le mode d'execution de type flot de donnees
CN101471810B (zh) * 2007-12-28 2011-09-14 华为技术有限公司 一种在集群环境下实现任务的方法、装置及系统
US20090183035A1 (en) * 2008-01-10 2009-07-16 Butler Michael G Processor including hybrid redundancy for logic error protection
CN102047241B (zh) * 2008-05-30 2014-03-12 先进微装置公司 本地与全局数据共享
CN101739235A (zh) * 2008-11-26 2010-06-16 中国科学院微电子研究所 将32位dsp与通用risc cpu无缝混链的处理器装置
CN101799750B (zh) * 2009-02-11 2015-05-06 上海芯豪微电子有限公司 一种数据处理的方法与装置
CN101593164B (zh) * 2009-07-13 2012-05-09 中国船舶重工集团公司第七○九研究所 基于嵌入式Linux的从USB HID装置及固件实现方法
US9552206B2 (en) * 2010-11-18 2017-01-24 Texas Instruments Incorporated Integrated circuit with control node circuitry and processing circuitry

Also Published As

Publication number Publication date
WO2012068478A2 (en) 2012-05-24
JP2014501009A (ja) 2014-01-16
JP2014503876A (ja) 2014-02-13
CN103221938B (zh) 2016-01-13
WO2012068504A2 (en) 2012-05-24
CN103221918A (zh) 2013-07-24
JP2014501007A (ja) 2014-01-16
CN103221936B (zh) 2016-07-20
WO2012068486A3 (en) 2012-07-12
WO2012068513A3 (en) 2012-09-20
WO2012068504A3 (en) 2012-10-04
CN103221936A (zh) 2013-07-24
CN103221938A (zh) 2013-07-24
JP2016129039A (ja) 2016-07-14
JP6096120B2 (ja) 2017-03-15
US20120131309A1 (en) 2012-05-24
CN103221934A (zh) 2013-07-24
WO2012068498A2 (en) 2012-05-24
WO2012068498A3 (en) 2012-12-13
WO2012068449A2 (en) 2012-05-24
CN103221939A (zh) 2013-07-24
CN103221933B (zh) 2016-12-21
JP5989656B2 (ja) 2016-09-07
CN103221934B (zh) 2016-08-03
CN103221935B (zh) 2016-08-10
JP2014501969A (ja) 2014-01-23
WO2012068475A3 (en) 2012-07-12
WO2012068494A2 (en) 2012-05-24
US9552206B2 (en) 2017-01-24
WO2012068449A8 (en) 2013-01-03
WO2012068478A3 (en) 2012-07-12
WO2012068494A3 (en) 2012-07-19
CN103221937B (zh) 2016-10-12
CN103221933A (zh) 2013-07-24
WO2012068513A2 (en) 2012-05-24
CN103221935A (zh) 2013-07-24
CN103221939B (zh) 2016-11-02
JP2013544411A (ja) 2013-12-12
CN103221937A (zh) 2013-07-24
WO2012068449A3 (en) 2012-08-02
JP2014501008A (ja) 2014-01-16
WO2012068486A2 (en) 2012-05-24
CN103221918B (zh) 2017-06-09
JP6243935B2 (ja) 2017-12-06
JP2014500549A (ja) 2014-01-09
JP2014505916A (ja) 2014-03-06
WO2012068475A2 (en) 2012-05-24

Similar Documents

Publication Publication Date Title
JP5859017B2 (ja) 処理クラスタのための制御ノード
US9075764B2 (en) Multiprocessor system-on-a-chip for machine vision algorithms
US7058735B2 (en) Method and apparatus for local and distributed data memory access (“DMA”) control
US6912610B2 (en) Hardware assisted firmware task scheduling and management
US8732416B2 (en) Requester based transaction status reporting in a system with multi-level memory
CN111656334A (zh) 具有可编程原子操作的存储器控制器
US20080040519A1 (en) Network interface device with 10 Gb/s full-duplex transfer rate
US8606976B2 (en) Data stream flow controller and computing system architecture comprising such a flow controller
US11550750B2 (en) Memory network processor
KR102409024B1 (ko) 네트워크 프로세서에서의 멀티-코어 상호접속
US8086766B2 (en) Support for non-locking parallel reception of packets belonging to a single memory reception FIFO
WO2007130476A2 (en) Network interface device with 10 gb/s full-duplex transfer rate
US6880047B2 (en) Local emulation of data RAM utilizing write-through cache hardware within a CPU module
US20090013331A1 (en) Token protocol
Miura et al. Xmcapi: Inter-core communication interface on multi-chip embedded systems
Huang et al. A configurable multiplex data transfer model for asynchronous and heterogeneous FPGA accelerators on single DMA device
JP2023056507A (ja) トラフィックをルーティングするクロスバーを備えた集積回路装置
Kim et al. A 118.4 GB/s multi-casting network-on-chip for real-time object recognition processor

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20141031

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150730

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150901

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20151125

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: 20151215

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20151215

R150 Certificate of patent or registration of utility model

Ref document number: 5859017

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313117

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250