JP2002530736A - 多重処理システムにおける改良結果処理方法 - Google Patents
多重処理システムにおける改良結果処理方法Info
- Publication number
- JP2002530736A JP2002530736A JP2000582884A JP2000582884A JP2002530736A JP 2002530736 A JP2002530736 A JP 2002530736A JP 2000582884 A JP2000582884 A JP 2000582884A JP 2000582884 A JP2000582884 A JP 2000582884A JP 2002530736 A JP2002530736 A JP 2002530736A
- Authority
- JP
- Japan
- Prior art keywords
- job
- memory
- pointer
- processing system
- speculatively
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000012545 processing Methods 0.000 title claims abstract description 103
- 238000003672 processing method Methods 0.000 title 1
- 230000015654 memory Effects 0.000 claims abstract description 185
- 239000000872 buffer Substances 0.000 claims abstract description 93
- 238000004891 communication Methods 0.000 claims abstract description 21
- 238000000034 method Methods 0.000 claims description 30
- 238000012546 transfer Methods 0.000 claims description 15
- 230000004044 response Effects 0.000 claims 2
- 230000008569 process Effects 0.000 description 9
- 230000007246 mechanism Effects 0.000 description 8
- 238000010586 diagram Methods 0.000 description 7
- 230000011664 signaling Effects 0.000 description 5
- 238000007726 management method Methods 0.000 description 3
- 241001522296 Erithacus rubecula Species 0.000 description 2
- 238000013459 approach Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000011010 flushing procedure Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 239000003550 marker Substances 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 238000007630 basic procedure Methods 0.000 description 1
- 239000007844 bleaching agent Substances 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 230000008054 signal transmission Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
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/46—Multiprogramming arrangements
-
- 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
-
- 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/3842—Speculative instruction execution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/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)
- Multi Processors (AREA)
- Advance Control (AREA)
- Information Transfer Systems (AREA)
Abstract
Description
ニットを有する処理システムに関する。
え間のないない要求により、より高速かつより効率的なプロセッサが要求されて
いる。処理能力を増大させる通常的なアプローチは、ますます高くした周波数及
び高速のメモリを使用することによっている。
処理能力を増加させる通常的な方法は、隣接する命令間で見出される密並列性(
fine−grained parallelism)を検出するいわゆるスー
パースケーラを使用することである。スーパースケーラでは、いくつかの命令を
並列に同時実行するようにプロセッサ内の機能ユニットを構成する。これは、し
ばしば命令レベルの並列性(instruction−level paral
lelism)と呼ばれる。
、即ち並列に動作する多数のプロセッサを有するプロセッサ・システムとして構
築することである。いくつかの処理システムは、対称型マルチ・プロセッサ(S
ymmetrical Multi Processor:SMP)として知ら
れたアーキテクチャーにより高いパフォーマンス処理を達成する。スーパースケ
ーラ・プロセッサにより達成される密並列性(fine−grained pa
rallelism)に対して、SMPアーキテクチャーは、現在のプログラミ
ング原理により設計されたプログラムにおいて明確に指定された、又はコンパイ
ル中に単一プロセッサ・システムによる逐次な実行用に設計されたプログラムか
ら取り出される粗並列性(coarse−grained paralleli
sm)を検出する。SMPアーキテクチャーでは、複数のタスクのそれぞれを複
数のプロセッサのうちの対応するものによりを実行する。これらのタスクは、互
に同時的な複数処理、即ち複数スレッド(thread)である。
ykumar)によるマルチスカラー・プロセッサの論文(イタリア、サンタ・
マルゲリータにおけるコンピュータ・アーキテクチャーに関する第22回年国際
シンポジュウム)において、いわゆるマルチスカラー・プロセッサが説明されて
いる。マルチスカラー・モデルの実行では、制御依存性の観点からスタティック
・プログラムを表す制御フロー・グラフ(CFG:control flow
graph)を複数のタスクに分割し、マルチスカラー・プロセッサがCFGを
推論的に通り、タスク・サイズの複数ステップを取り込み、絶えずタスク内のあ
らゆる命令を調べる。タスクの初期プログラム・カウンタを処理ユニットに渡す
ことにより、実行する複数の処理ユニットの集合のうちの1つに一つのタスクが
割り付けられる。そこで、多数のタスクが複数の処理ユニットにより並列に実行
可能となり、1サイクル当たりの多数命令の総合実行率に帰結する。マルチスカ
ラー・ハードウェアの機能は、CFGを通って、複数の処理ユニットに複数のタ
スクを割り付け、かつ逐次的に実行する形式により、これらのタスクを実行する
。必要により、付加的なハードウェアを設けて推論的なメモリ動作を保持し、メ
モリ依存性の違反を検出し、訂正措置を開始する。先頭にあるタスクは、非推論
的であると保証されたタスクのみであるから、先頭を除き、全てのユニットによ
り実行されるメモリ動作は、推論的である。
の連係により作動して1以上の他のプロセッサにより実行されるべき多数のタス
クを管理するリアル・タイム・ハードウェア・スケジューラに関連する。このス
ケジューラは、2つのリアル・タイム・ハードウェア・スケジューリング・ユニ
ットにより共有メモリ内の循環FIFOキュー管理し、そのうちの一つは、実行
待ちタスクを管理し、その他は完了したタスクを管理する。スケジューリング・
プロセッサは、新しいタスクをスケジュールする要求に基づいて、タスク制御ブ
ロックを構築して、特定の共有メモリにおけるメモリ位置にそのブロックをスト
アすることにより、動作する。次いで、スケジューリング・プロセッサによって
、その位置に対するポインタがリアル・タイム・ハードウェア・スケジューラに
送信される。スレーブ・プロセッサは、実行待機タスクの共有メモリ内の位置に
対するポインタを取り出すことができる。そこで、スレーブ・プロセッサは、ポ
インタを使用して実際のタスクを取り出し、そのタスクを実行し、スケジューラ
にタスク完了を通告する。従って、以上の特許は、通常のマルチタスク・システ
ムにおける間接信号処理に関する。
を開示している。プロセッサは、命令レベルでの並列性が得られるように所定の
複数動作に割り付けられた多数のスーパースケーラ実行ユニットを有する。
reading)目的に使用される同期コプロセッサを有するデータ処理システ
ムを開示している。
のポインタを使用することにより、個別的な受信プロセッサと送信プロセッサと
の間でメッセージを転送する方法に関する。
存在する。
ムに関する。高度の並列性は、更なる粗並列性、いわゆるジョブ・レベルの並列
性の存在を推論すると共に、複数ジョブの並列実行を阻止する依存性が検出され
る場合にのみ、逐次実行を支援することにより、引き出すことが可能とされる。
このアプローチは、異なる複数のプロセッサにより複数のジョブを並列に実行可
能にするが、実行される複数のジョブは、順にコミットされ、即ち、リタイアさ
せる必要があり、複数の推論的に実行したジョブ(speculatively
executed jobs)がメモリの書き込み及び信号送出をコミットす
るための優先順位を待機する。
る機構と共に、推論が成功したか否かを判断するための依存性を検出する機構を
必要とする。推論が成功したときは、結果が最終的にコミットされ、また推論が
失敗したときは、結果はフラッシュされ、かつ対応するジョブを再開させる。通
常、推論的に実行したジョブの結果は、中間メモリ位置に保持され、コミットの
際に、これらの結果は、中間メモリ位置からメイン・メモリ内の実位置に、及び
/又は外部ユニットに転送される。代替として、「実位置」から古いデータは、
履歴ログに記録され、かつ推論結果は、実位置に書き込まれる。推論が失敗した
ときは、実位置は、履歴ログを使用して古いデータを修復することにより、復元
される。推論が成功したときは、推論データは、実位置内の正しい位置に既に存
在している。
ンスを増加させる非常に効率的な方法であっても、推論結果を処理する機構は、
パフォーマンスの更なる改善に対するボトルネックを構成することが認識されて
いた。
する。
テムを提供することにある。
を提供することにある。
本発明により達成される。
のプライベート・メモリ・バッファを推論的に割り付け、かつこれらの結果を割
り付けたメモリ・バッファに直接、推論的に書き込む。推論的に実行したジョブ
にコミット優先順位を割り当てると、割り付けメモリ・バッファを指示するポイ
ンタのみが入出力装置に転送され、この入出力装置が転送されたポインタによっ
てメモリ・バッファから結果をアクセスすることが可能となる。この機構は、入
出力プロセッサ、ネットワーク・コントローラ、イサーネット回路又はジョブ信
号スケジューラのような入出力装置によってアクセス可能なプライベート・メモ
リ・バッファに、通信メッセージ、オペレーティング・システム・コール及びジ
ョブ信号を推論的に書き込むのをサポートする。これは、対応するジョブの実行
が推論的だけでなく、メモリ・バッファに対する割り付け及び書き込みも実行さ
れるので、それ自体、更なる並列性を取り出せることを意味する。
は必要でないので、依存性を検出したときは、更に、急速な復帰も可能にする。
テム・コール又は新しいジョブ信号に関する全ての情報を転送し、これによって
時間上でデータ転送を拡大させて、帯域幅要求を軽減させることができる。
状態を保持するために使用されるハードウェア・キューを通って割り付けられた
メモリ・バッファに書き込み、これらのハードウェア・キューに対する圧力を軽
減させ必要はない。
ッサを使用してソフトウェア実施の推論の場合には、推論書き込みを行うための
コードが実質的に圧縮される。
い記録及び対象を直接、推論的に書き込むことをサポートできることも認識され
ていた。推論的に実行したジョブにより発生した新しい記録又は対象は、プライ
ベート・メモリ・バッファが推論的に割り付けられ、また推論的に実行したジョ
ブに対してコミット優先順位が割り当てられたときは、メイン・メモリ内の所定
の位置に新しい記録及び対象が既に配置されており、更なる転送は必要でない。
ート・メモリ位置ではあり得ないが、共有メモリ位置でなければならないので、
変数の推論書き込みのために通常、カスタマイズされることはない。
バッファに対するアクセスがロール・バック及び依存性チェックをサポートする
必要がない。 ‐帯域幅要求が軽減される。 ‐書き込みキュー内のメモリ領域が節約され、処理ユニットがストールするの
を防止する。 ‐複数のポインタのみを転送するので、コミット優先順位においてオフ・ロー
ディングが速い。 ‐発生した通信メッセージ及びジョブ信号を一回書き込むだけである。
より明らかとなる。
を参照することにより、最も良く理解される。
る。
論結果に対する概要的な原理を簡単に説明する。
テムは、入出力(I/O)装置10、ジョブ分配器20、多数のプロセッサ又は
プロセッサ・ユニット30−1〜30−N、依存性チェッカ35及びメイン・メ
モリ40を備えている。
0は、I/O装置10から複数のジョブ信号を受信し、かつこれらのジョブ信号
をジョブの並列実行用のプロセッサ30−1〜30−Nに割り当てる。並列実行
中に、ジョブのうちの1つは、割り付けられたコミット優先順位であり、非推論
的に実行されるのに対して、他のジョブは推論的に実行される。プロセッサ30
は、商業的に対称的なマルチプロセッサからハードウェアにより全て実現された
実行パイプラインの範囲まで、任意の種類の処理ユニットが可能である。依存性
チェッカ35は、推論的に実行したジョブとコミット優先順位を有するジョブと
の間のデータ依存性を検出して推論的な実行が成功したか否かを判断するように
構成されている。実行中は、チェッカ35がデータ・アクセスについて依存性チ
ェックを行って読み出し及び書き込みのプログラム順序が保持されていることを
チェックする。依存性チェックは、多数の方法のうちのいずれかにより実現可能
とされる。例えば、以下で説明するように、アドレス比較方法又は可変マーカ方
法による。
ル及び推論的に実行したジョブにより発生した新しいジョブ信号のような結果に
対してメイン・メモリ40内に多数のメモリ・バッファを割り付ける。メモリ・
バッファは、好ましくは、プール45−1〜45−Nのバッファに分割されて、
各プロセッサ30はそれ自体のプール45のバッファを有する。都合よいことに
、各プールのバッファは、図1に示すように、メイン・メモリ内のリンク・リス
トとして、実施される。
ッサ30にプール45の割り付けバッファにプライベート・メモリ・バッファを
推論的に割り付けられ、かつメッセージは、図1に示すように割り付けられたプ
ライベート・バッファに推論的に書き込まれる。推論的な実行は、メッセージの
実際的な送出を含むべきでない。これは、対応するジョブがコミット優先順位を
獲得するまで、割り付けバッファから通信チャネルにメッセージを手渡してはな
らないことを意味する。推論的に実行したジョブにコミット優先順位を割り当て
ると、割り付けメモリ・バッファに対するポインタは、I/O装置10に転送さ
れる。メイン・メモリ40は、I/O装置10が転送したポインタにより通信メ
ッセージを取り出せるように、I/O装置10及びプロセッサ30−1〜30−
Nにより共有される。
よい。例えば、ポインタをI/O装置に転送する3つの基本的な手順を以下に概
説する。 i)コミット時に、関連プロセッサからI/O装置にポインタを直接、書き込
む。 ii)コミット時に、メモリ手段にポインタを書き込み、これをI/O装置に
よるポインタについてチェックする。 iii)中間メモリ位置にポインタを推論的に書き込み、かつコミット時に、
中間メモリ位置からI/O装置にポインタを転送する。
ファが単純に割り付け解除され、高速の修復を可能にする。
に対するバッファの推論割り付けもサポートすることにより、並列性が更に促進
される。
ト・オリエンテッド・プログラミング言語による新しいオブジェクトの推論書き
込みに適用可能である。この場合、推論的に実行したジョブにより発生した新し
い記録即ちオブジェクトがメイン・メモリ内のプライベート・メモリ・バッファ
が推論的に割り付けられて、プライベート・メモリ・バッファに書き込まれる。
推論が失敗であれば、専用バッファは、単純に割り付け解除される。他方、推論
が成功であれば、コミット時に、新しい記録即ちオブジェクトが既にメイン・メ
モリの所定の位置にあって、それ以上の転送は必要でない。新しい記録/オブジ
ェクトは、共有メモリに対応するポインタ上で処理することにより、例えばポイ
ンタを共有メモリにおける変数に書き込むことにより、使用されてもよい。記録
/オブジェクトは、実行において使用されてもよく、それ以上必要でないときは
、単純に無視されて、対応するメモリ・バッファが割り付け解除される。このポ
インタは、更に外部ユニットに転送されてもよい。
な変動サイズがあり、記録/オブジェクト用のメモリ・バッファは、「ヒープ(
heap)」と呼ばれるメモリ領域から便宜的に割り付けられる。通常のプログ
ラミング・モデルのときに、例えば、ユニックス(Unix)システム上で実行
するCプログラムの場合に、異なるプログラムが相互にデータを破壊できないよ
うに、通常、処理当たり1ヒープが存在する。そこで、各メモリ・バッファは、
それが割り付けられたヒープに復帰する必要がある。
(プライベート)、従って破壊される恐れのあるバッファが活性状態でないとい
うことを使用することである。
態を変更できる必要があるので、通常、変数に対してカスタマイズされないこと
を理解すべきである。従って、通常、変数の推論状態は、中間位置に一時的にス
トアされ、かつこれらがコミット時に非中間位置に変換される際に、中間位置か
ら実位置に転送される。
のみを除き、どのような変数状態も発生しないときは、依存性チェックを実行す
る何らかの機構を省略することができる。これは、割り付けを推論的に行うとし
ても、メモリ・バッファを一度に1ジョブのみに割り付けることができるためで
ある。これは、通常、付加コードを有する読み出し及び書き込み命令を備えるこ
とにより、依存性チェックを行うソフトウェア実現の推論のために重要である。
アを標準的なマルチプロセッサ環境に移行して再使用しようとするときは、再コ
ンパイル等によりアプリケーション・ソフトウェアを変換してもよい。例えば、
逐次的にプログラムされたアプリケーション・ソフトウェアは、依存性チェック
用のコード、及びジョブの適正なフラッシュ即ちロール・バックを可能にするよ
うに変更した変数のコピーをストアし、次いでソフトウェアを再コンパイルする
コードを含め、推論的な実行をサポートする適当なコードを付加することにより
、自動的に変更されてもよい。更に、標準的なマルチプロセッサ・システムのオ
ペレーティング・システム又は仮想マシンは、推論的な実行をサポートするよう
に変更されてもよい。例えば、依存性チェック用のコードを実行しているときに
依存性を検出した場合は、関連するジョブをフラッシュするオペレーティング・
システム/仮想マシンに制御を渡してもよい。
方法の概要フロー・チャートである。以下のシーケンスのステップは、コンピュ
ータ即ちプロセッサ・システムの要素により、実行可能とされる。種々のステッ
プは、特殊化されたハードウェアにより、複数のプロセッサにより実行されるプ
ログラム命令により、又は両者の組み合わせにより、実行され得ることを認識す
べきである。ステップ101において、複数のジョブを推論的に並列に実行し、
かつプログラミング・モデルにより許容される順序に従い、コミット優先順位を
連続的に複数のジョブに、一度に1つにより、割り当てる。例えば、全体的な生
成順序に従って、ジョブがコミットされ、即ちリタイヤされる。ステップ102
において、推論的に実行したジョブの結果を保持するためにプライベート・メモ
リ・バッファを推論的に割り付け、またステップ103において、推論結果を割
り付けメモリ・バッファに書き込む。ステップ104に示されているように、実
行中、データ変数アクセスについて依存性チェックを行う。推論的に実行したジ
ョブに関して依存性が検出されず(N)、推論的に実行したジョブに最終的なコ
ミット優先順位を割り当てているときは、I/O装置に、対応するメモリ・バッ
ファに対するポインタを転送する(ステップ105)。他方、依存性が検出され
たときは(Y)、対応するジョブをフラッシュすると共に、割り付けメモリ・バ
ッファを割り付け解除して(ステップ106)、ジョブの実行を再び開始する(
101に戻る)。
る。この処理システムは、ネットワーク・コントローラ10の形式にあるI/O
装置、実行パイプライン30−1〜30−2、依存性チェッカ35及びメイン・
メモリ40を備えている。標準的なネットワーク・コントローラ10の1例は、
AMD PC net−FASTチップ(AM79C971)のようなイサーネ
ット・コントローラである。ネットワーク・コントローラ10は、通常、着信メ
ッセージ、発信メッセージ及び信号を処理する送信機部及び受信機部を有する。
受信機部は、着信メッセージをストアする多数の受信バッファ41、及びこれら
のバッファに対するポインタをストアするように対応する受信メモリ・リング4
2を含む、即ち関連される。通常、ジョブは、プロセッサのうちの一つにおいて
、定期的に、又は新しいメッセージが到着したときの割り込み時に、起動されて
、ネットワーク・コントローラ10により受信バッファ41に書き込まれたメッ
セージに対するポインタについて受信リング42をチェックする。メッセージに
対するポインタが発見されたときは、ジョブ信号を生成し、かつプロセッサのう
ちの1つによる実行のために、他のジョブ信号と共に、スケジュールする。図3
には2プロセッサのみを示しているが、並列ジョブ処理のために2プロセッサ以
上を使用することが可能なことは、明らかとすべきである。
通プールのプライベート・メモリ・バッファが存在し、これらのバッファは、推
論的に実行したジョブ、及びフリー・バッファに対する(通常、メモリ・アドレ
スの形式にある)ポインタの中央リストにより発生した他の信号と共に、メッセ
ージを保持するために使用される。都合のよいことに、各プロセッサ30は、共
通プールにおけるフリー・バッファに対するそれ自身のいわゆる複数のポインタ
の「フリー・リスト」32を有し、従って共通プールのバッファを、多数の小さ
なプライベート・プール45−1及び45ー2のいわゆる送信バッファに論理的
に分割する。小専用プール45−1及び45−2は、フリー・リスト及びポイン
タの中央リストを適当に変化させることにより、小プール内のハイ又はローによ
るウォータマーク(watermark)により、開放バッファから共通バッフ
ァに、より多くのバッファを満たすことが可能とされる。
−2内の、又はメイン・メモリ40に割り付けられた物理リストである。
ァの推論的な割り付けは、対応するプロセッサ30に関連したポインタのフリー
・リスト32の先頭を考慮して行うことが可能とされる。フリー・リスト32の
先頭エントリにストアされたポインタは、割り付けられたメモリ・バッファを指
示し、またメッセージは、割り付けられたバッファに推論的に書き込まれる。い
わゆる「次のポインタ」は、フリー・リストにおける次のエントリを指示に対す
るポインタに進められる。
ことにより、割り付けられたメモリ・バッファを割り付け解除する。推論が成功
のときは、フリー・リストの先頭エントリにストアされたポインタは、コミット
時に、フリー・リスト32からメイン・メモリ40内の送信メモリ・リング46
に転送され、次いで「次のポインタ」により指示されたエントリがフリー・リス
トの新しい先頭となるように、リストから移動される。
コントローラ10により共有されたメモリに割り付けられたデスクリプタ・リン
グとして構築される。実際のメッセージ送出は、コミット時に対応するプロセス
30のフリー・リスト32からデスクリプタ・リング46にデスクリプタを転送
することにより、開始される。各デスクリプタは、好ましくは、a)メッセージ
・バッファ(実際のポインタ)に対するアドレス、b)メモリ・バッファの長さ
、及びc)バッファの状態を表示するステータス情報を含む。例えば、ネットワ
ーク・コントローラ10は、有効なデスクリプタ用のデスクリプタ・リングを定
期的にポーリングする。ネットワーク・コントローラ10は、有効なデスクリプ
タを見付けると、デスクリプタのアドレス・フィールドにより指示されたメモリ
・バッファにストアされているメッセージを送出する。
MD PCnet−FASTチップAM79C971のデータ・シート58〜6
3頁を参照する。
させる非常に簡単な手順−バッファの割り付けを与える最適化であり、またバッ
ファの復帰は、並列にいくつかのプロセッサにより実行可能とされ、また同期は
、共通プールをアクセスするために必要とされない。加えて、復帰したバッファ
は、同一プロセッサにより再使用され、プロセッサ当たり1データが存在すると
きに、高いキャッシュ・ヒット率に帰結する。
。この処理システムは、基本的に、ジョブ信号スケジューラの形式にあるI/O
装置10、及び処理ユニット50を備えている。
、ポインタ・メモリ13、メモリ・インターフェース14、TPUユニット(プ
ロセッサ・ユニットへの)15、FPUユニット(処理ユニットからの)16及
び制御ユニット17を含む。ジョブ信号スケジューラ10は、処理ユニット50
からと共に外部ユニットからのジョブ信号を受け取り、処理のためにジョブ信号
をスケジュールする。
ors)及び他の周辺装置のような外部ユニットからジョブ信号を受け取って、
これらをメモリ・インターフェース14を介してジョブ信号メモリ12に分配す
る。外部ユニットからのジョブ信号は、通常、外部事象を発生源としているので
、システムは事象駆動されていると、みなしてもよい。ジョブ信号メモリ12は
、特殊目的メモリか、又は処理ユニットのメイン・メモリ40に割り付けられる
。いずれの場合も、ジョブ信号メモリは、スケジューラ10及び処理ユニット5
0により共有される。ジョブ信号メモリは、ジョブ信号、及び外部ユニットに向
けられた通信メッセージをストアする1プールのメモリ・エレメントに適合する
。ジョブ信号スケジューラ10は、好ましくは、信号そのものに代わって、ジョ
ブ信号及び通信メッセージに対するポインタ上でその動作の大部分を実行する。
従って、各ジョブ信号は、ジョブ信号メモリ12内のメモリ・エレメントに対す
るポインタに関連され、対応するジョブ信号をジョブ信号メモリ12に書き込む
ときは、対応するポインタをメモリ・インターフェース14を介してポインタ・
メモリ13に送出する。
信号/通信メッセージS又はデータ信号Dを表す。
す)に分割される。単なる一つの代わりに、いくつかのキューを使用することに
より、複数の優先順位を処理することが可能であり、異なる優先順位レベルを有
するポインタを異なるメモリ・キューにストアする。ジョブ信号スケジューラ1
0に新しいジョブ信号が到達すると、ジョブ信号のヘッダに含まれる優先順位レ
ベル情報を解析して、対応するポインタを配置すべきメモリ・キューを認識する
。次に、ジョブ信号メモリ12にジョブ信号Sを書き込み、かつポインタ・メモ
リ13に選択したキューにポインタPを配置する。通常、ポインタ・メモリ13
内のキューは、優先順位の順序によりサービスするファースト・イン・ファース
ト・アウト(FIFO)として編成される。
り、スケジューリング順序がポインタ・メモリ13内に得られる。処理ユニット
50が新しいジョブ信号を受け取ることができるときは、最高の優先順位レベル
のメモリ・キューの中で最も古いポインタPがTPUユニット15に転送される
ことを制御ユニット17が確認する。TPUユニット15は、関連ジョブをフェ
ッチするためポインタPにより表すジョブ信号メモリ12内のメモリ・エレメン
トを読み出し、取り出したジョブ信号Sを処理ユニット50に送出する。このよ
うに、ジョブ信号メモリ12内のジョブ信号をポインタ・メモリ13内のスケジ
ューリング順序に従って処理ユニット20に転送する。
、例えばメイン・メモリ40内に実施される。
ョブ信号を送出するのであれば、ジョブ信号スケジューラ10における割り込み
処理は、好ましくは、処理ユニット50におけるジョブの割り込みを開始できる
必要がある。
を処理する。ジョブ信号スケジューラ10からの高い優先順位レベルの信号は、
それより低いレベルの信号に割り込みをする。例えば、ジョブ信号スケジューラ
10は、割り込み要求を処理ユニット50に送出することによって割り込みを開
始することができ、そこで処理ユニットは、現在実行中のジョブに割り込みをす
ることになる。
ッサ30−1〜30−4、データの依存性を処理して推論的に実行したジョブの
結果を一時的にストアする組み合わせ依存性チェッカ及び書き込みキュー配列装
置35、そしてプログラム・ストア43及びデータ・ストア44に分割されたメ
モリ・システム40を含む。この例では、プロセッサ・エレメント30−1〜3
0−4は、好ましくは、実行パイプラインの形式にある。従って、以下、処理エ
レメントを実行パイプラインと呼ぶ。
めに多数のメモリ位置を有するジョブ・キュー20にバッファリングされる。各
ジョブ信号は、ジョブ・キュー20のそれぞれのストア位置に追加的な情報と共
にストアされる。
常、管理情報に加えて、プログラム・ストア43内のソフトウェア・コードに対
するポインタを含み、ジョブ信号の本体は、対応するジョブの実行に必要な入力
オぺランドを含み、これによって、一般的に、内蔵されたジョブ信号を作成する
。ソフトウェア・コードは、好ましくは、1以上のテーブル・ルックアップを介
して指示される。これは、一般的に、ポインタがルックアップ・テーブル・エン
トリを実際に指示し、これがまたソフトウェア・コードを指示することを意味す
る。この信号本体は、地域プロセッサ又は他のプロセッサのような外部ユニット
からの信号メッセージであってもよい。
よく、かつこのジョブは、ジョブ信号の受け取りにより開始し、エンド・ジョブ
・ルーチンの呼び出しにより終了する。しかしながら、ジョブ信号そのものは、
通常、プログラム・ストア43にストアされるソフトウェア・コードの命令、及
びこれらの命令の実行に必要とされるオぺランドに対する単なるポインタのみで
あって、いかなる命令も含まないことに注意すべきである。
の異なるメモリ位置からジョブ信号を「フェッチ」して異なる複数ジョブを並列
に独立的に実行する。実行パイプラインが空きであり、新しいジョブを実行し始
めるときは、ジョブ・キュー20を調べて未割り付けジョブ信号を見つけ出し、
未割り付けジョブ信号をパイプラインに割り付ける。次いで、ジョブ信号を実行
パイプラインにより処理し、対応するジョブを実行する。並列ジョブを実行中の
全期間で、ジョブ・キュー20における1ジョブ信号のみがコミット位置にあっ
て、ジョブ信号を割り当てた実行パイプラインが対応するジョブをコミット又は
リタイアするのを可能にする。他の実行パイプラインにあるジョブは、推論的に
実行され、依存性チェッカ35によりデータ依存性が検出されるときは、フラッ
シュされてもよい。
、関連するいくつかの事象を受け取った順序により処理しなければならないこと
である。これはシステムに不変であって、どのようにシステムを実施するかは問
題ではない。ジョブ間のコミット順序は、通常、処理コアへの到着により定義さ
れ、概して変更されることはない。しかしながら、異なる優先順位レベルにある
複数のジョブ信号を処理する処理システムでは、処理ユニット50に対する到着
によって同一優先順位レベルにある複数ジョブ間のコミット順序を定義するよう
に、低い優先順位のジョブ信号の前に、高い優先順位レベルのジョブ信号を置く
ことが有用と思われる。
ッチし、これらの命令を実行し、かつメモリの書き戻し及び信号送出を実行する
回路を備えている。本発明により使用可能な特定の実行パイプラインの1例は、
エリクソンAXEディジタル・スイッチング・システム(Ericsson A
XE Digital Switching System)におけるパイプラ
インである。
わせにより、実行パイプライン30−1〜30−4にジョブ信号を割り当て、推
論的に実行して完了したジョブのトラッキングを確保し、コミット優先順位をジ
ョブ信号に連続的に割り当て、かつコミットしたジョブ信号を除くために必要と
されるプロトコルを管理する。
ある。1例として、ジョブ・キュー20は、メモリの所定部分をそれぞれ固有の
自己メモリ・アドレスを有する多数のストレージ位置に論理的に分割することに
より、共通メモリに実施可能である。一般的に、ジョブ・キュー20における各
ストレージ位置を、例えば下記の表1に説明しているような多数のフィールドに
分割する。
を表示するために使用される。ジョブ信号スケジューラ10からジョブ信号を受
け取ったときは、これをジョブ・キュー20の最初の空き位置、即ち有効フラグ
がセットされていない位置に配置する。次いで、有効フラグをセットして「信号
」フィールドが現在有効なジョブ信号を含み、かつその位置が占有されているこ
とを表示する。
たか否かを表示するために使用され、ジョブ・キュー20内のストレージ位置に
おけるジョブ信号が実行パイプラインに割り当てられたときは、その位置に対す
る「済み」フラグがセットされてジョブ信号が割り当てられたことを表示する。
したことを表示するために使用され、かつそのフィールド「パイプid」及び「
ジョブid」は、そのパイプにおけるパイプの識別、及びジョブ信号及び/又は
対応するジョブの識別を与えたことを表示するために使用される。パイプライン
が最初のジョブに対するジョブ終了ルーチンを実行したときは、ジョブを実行し
て完了し、かつコミットするべくレディー(準備完了状態)であることを知らせ
るために、「終了」フラグをセットする。必要ならば、ここでパイプラインは、
第2のジョブ信号をフェッチするべくレディーとなる。最初のジョブは、問題と
するパイプのジョブid「1」に割り当てられ、またパイプにおいて実行される
べき第2のジョブは、ジョブid「2」に割り当てられる。パイプがコミット優
先順位を受け取る前に、第2のジョブを終了すれば、第3の推論ジョブが実行可
能となり、以下同様となる。一般的に、パイプ当たりのジョブ数と複雑さとの間
の妥協点が作成され、実際では、パイプ当たりのジョブ数が制限される。しかし
ながら、以下では、各パイプラインは、一度に1ジョブのみを処理するとみなさ
れる。
の状態、即ち「開始していない」、「開始した」及び「終了した」であり得る。
これらの状態は、ジョブ・キュー20において異なる方法により符号化可能とさ
れると共に、表1のフィールド「有効」、「済み」及び「終了」は、これらのジ
ョブ状態を符号化する1方法の単なる例であることを理解すべきである。
ージ位置がコミット位置にあるのかを指示するポインタに関連される。コミット
位置にあるジョブ信号は、コミット優先順位を有し、このジョブ信号を処理する
実行パイプラインを動作可能状態にしてメモリ書き戻し及び信号送出のコミット
を実行する。ジョブ信号がコミット位置に移行すると、対応するパイプラインは
、全て書き込み動作及びジョブのための信号送出をコミットし始める。ジョブを
実行して完了し、かつ全ての書き込み及び信号送出をコミットしたときは、「有
効」フラグをクリアすることにより、その位置を開放し、かつ通常の手段により
ジョブ・キュー20をステップしてコミット位置を新しい位置に移動し、これに
よって、コミット優先順位をジョブ・キュー内のジョブ信号に連続的に割り当て
る。
位をジョブ信号に連続的に割り当てるように、ジョブ・キュー20を処理する機
能は、好ましくは、例えばマイクロ・コード命令プログラム又はアッセンブラ・
プログラムの形式にあるソフトウェアにより、制御される。更に、フラッシュを
処理すること、書き込みキュー配列を制御すること、及びスケジューリング機構
を制御することのように、処理システムにおける他の機能は、ソフトウェアによ
り実施されてもよい。
連した1以上の読み出しバッファRBを使用することにより、実施される。パイ
プラインがデータ・ストア44からデータをフェッチするときは、アドレス又は
複数アドレスの読み出しは、対応する読み出しバッファにバッファされる。コミ
ット優先順位により実行パイプラインがデータ・ストア44に可変データDの書
き戻しを実行するときは、データ・ストアに対する書き込みアドレスを読み出し
バッファRB内の読み出しアドレスとアドレスと比較してジョブ間にデータの依
存性があるか否かを調べる。この比較は、概してアドレス比較器により実行され
る。推論的に実行したジョブにより読み出されたデータがジョブのコミットによ
り変更されているときは、データ依存性が存在しており、推論的に実行した、又
は実行しているジョブをフラッシュし、かつ再び開始する必要がある。
キュー配列35にログ記録されるが、しかしジョブがコミット優先順位を獲得す
るまで、データ・ストア44に書き込みはしない。書き込みキュー配列35は、
好ましくは、多数の個別的な書き込みキューを備えており、1書き込みキューW
Qが実行パイプライン30−1〜30−4のそれぞれに割り付けられる。高いパ
フォーマンスのために、書き込みキューは、高速だが、比較的に小さなメモリで
あるキャッシュ・メモリとして、通常、実施される。一般的に、推論的なジョブ
がコミット優先順位を獲得するときは、問題とするジョブに属する書き込みキュ
ー・エントリは、データ・ストア44に直ちに書き込まれる。しかしながら、実
行中のコミット・ジョブは、一般的に、その書き込みキューにそのデータをスト
アしないが、しかし依存性チェックを可能にするように、対応するメモリ・アド
レスをアドレス比較器に単純に転送する。
及び書き込みキューを開示している国際特許出願WO 88/02513に説明
されているように、全実行パイプラインに共通する単一中央化書き込みキューの
形式にある。
てられることを理解すべきである。ラウンド・ロビンでは、パイプラインが段階
的に横行する円形ループに配列されているとみなし得る。例えば、この配列は、
パイプライン及び書き込みキュー側でコミット位置の管理を非常に簡単化する。
ジョブ・キュー20における次のジョブ信号をコミット位置に移動するときは、
前のコミット・パイプラインと比較されるループ内の次のパイプラインとして、
対応する実行パイプラインを単純に認識し、認識したパイプライン専用の書き込
みキューWQにストアされた結果をコミットする。
ユニット16及びメモリ・インターフェース14を介してジョブ信号メモリ12
に直接書き込まれる。対応するジョブ信号及びメッセージを見付けることができ
るジョブ信号メモリ12内のメモリ領域に対するポインタのみを書き込みキュー
WQに一時的にストアし、コミット時にFPUユニット16及びメモリ・インタ
ーフェース14を介してポインタ・メモリ13に転送する。
るメモリ領域を節約する。更に、実行パイプラインは、推論モードにおいて発生
したジョブ信号及び通信メッセージを転送することができる。これは、ジョブ信
号データの送信を時間上で引き延ばし、処理ユニット50とジョブ信号スケジュ
ーラ10との間のインターフェースに対する帯域幅要求を低くする結果となるこ
とを意味する。更に、ポインタのみを転送するので、コミット時に書き込みキュ
ーが高速にオフ・ロードされる。
メントに対するポインタを処理ユニット50に送出して、1プールの空きポイン
タを構築する。実行パイプライン30−1〜30−4のそれぞれは、概してこの
ような多数の空きポインタEPが割り付けられる。各実行パイプラインは、割り
付けられたポインタにより指示されたメモリ・エレメントのうちの1つに推論的
に、推論的に実行したジョブにより発生した新しいジョブ信号/通信メッセージ
Sを書き込み、実行パイプラインに接続された書き込みキューWQに、ジョブ信
号/通信メッセージSを書き込むメモリ・エレメントを指示するポインタPをス
トアする。信号送出をコミットするために実行パイプラインに優先順位を割り当
てると、書き込みキューWQからポインタ・メモリ13内の適当なメモリ・キュ
ーに又は外部ユニットに転送するために入出力ユニット11に、ポインタPを転
送する。新しいジョブ信号の場合に、対応するジョブ信号Sにおける優先順位レ
ベル情報に基づいてポインタ・メモリ13内の適当なメモリ・キューを認識し、
かつジョブ信号と同一の優先順位レベルのメモリ・キューにポインタPを書き込
む。ポインタ・メモリ13内のメモリ・キューは、FIFOキューとして構成さ
れ、またスケジューリング順序は、優先順位の順序によりサービスされるので、
ポインタ・メモリにスケジューリング順序が確立される。
なければ直ちに、ポインタFPをTPUユニット15を介して処理ユニット50
に送出することにより、空きポインタのプールをフルに保持する。
大きな信号は、例えば、処理ユニット50とジョブ信号スケジューラ10との間
のバス・インターフェースのブロッキングを防ぐために、複数の断片により書き
込まれてもよい。そのときは、処理ユニット50は、バースト間のアドレスを増
加して、各バーストの開始で増加したアドレスを送出する必要がある。
る個別的な構成要素であるとして説明した。しかしながら、一般的に、命令実行
において、実行パイプラインにおける多くのリソースがフルに使用されることは
ない。そこで、リソースが複数のパイプ間で共有可能となり、要求又は時多重化
方式により、リソースに対する実行パイプ・アクセスを実行する。高度のリソー
ス共有を実施する技術は、同時マルチ・スレッディングである。同時マルチスレ
ッディングでは、殆ど全てのリソースが共有され、各パイプライン専用のリソー
スは、プライベート・プログラム・カウンタと、命令レジスタ、及び物理レジス
タにおける論理レジスタ・ナンバー間のプライベート・マッピングとに限定され
る。
る必要はないが、しかし、1以上のテーブル・ルックアップによりジョブ信号メ
モリ領域を参照することができることも理解すべきである。
、代替として、依存性チェックは、各処理ユニットがメイン・メモリ内の変数の
使用をマークし、かつ依存性の衝突がマーキングに基づいて検出されるマーカ方
法により、達成されてもよい。
ないことを理解すべきである。更なる修正、変更、及び開示され、かつ特許請求
された基本的に内在する原理を保持する改良は、本発明の範囲内である。
要フロー・チャートである。
Claims (26)
- 【請求項1】 プロセッサ・システムにおいて、 ‐複数のジョブを推論的に実行する多数のプロセッサ(30)と、 ‐一度に1ジョブにより、複数のジョブに対してコミット優先順位を割り当て
る手段と、 ‐推論的に実行したジョブの結果を保持するためにプライベート・メモリ・バ
ッファを推論的に割り付ける手段と、 ‐コミット優先順位が前記推論的に実行したジョブに割り当てられたときは、
前記割り付けられたプライベート・メモリ・バッファを指示するポインタを入出
力装置(10)に転送する手段と を備えた処理システム。 - 【請求項2】 推論的に実行したジョブの結果は、通信メッセージ、オペレ
ーティング・システム・コール又は新しいジョブを表すジョブ信号の形式にある
請求項1記載の処理システム。 - 【請求項3】 前記入出力装置(10)は、入出力プロセッサ、ネットワー
ク・コントローラ、イサーネット回路又はジョブ信号スケジューラである請求項
1記載の処理システム。 - 【請求項4】 前記プライベート・メモリ・バッファは、前記入出力装置(
10)が前記転送されたポインタにより前記結果をアクセスできるように、前記
処理システムのメイン・メモリ(40)又はプロセッサ(30)により共有され
た他のメモリと、前記入出力装置(10)とに存在する請求項1記載の処理シス
テム。 - 【請求項5】 各プロセッサは、自己プライベート・プール(45)のバッ
ファを有し、このプライベート・プールに対して、又は、から複数のメモリ・バ
ッファを割り付ける、又は割り付け解除する請求項1記載の処理システム。 - 【請求項6】 更に、前記プライベート・プール(45)におけるハイ又は
ローのウォータマークにより、プライベート・プール(45)のバッファを共通
プールのバッファからの更なるバッファにより補充し、かつ前記プライベート・
プール(45)からのバッファを前記共通プールに開放する手段を備えている請
求項5記載の処理システム。 - 【請求項7】 各プロセッサは、プール(45)のメモリ・バッファ内に空
きメモリ・バッファに対するポインタの自己リスト(32)を有し、かつ前記バ
ッファ割り付け手段は、前記対応するプロセッサのリストの先頭からポインタを
フェッチすることにより、推論的に実行したジョブの結果を保持するためのメモ
リ・バッファを割り付ける請求項1記載の処理システム。 - 【請求項8】 更に、 ‐前記推論的に実行したジョブとコミット優先順位を有するジョブとの間の依
存性を検出する手段(35)と、 ‐検出された依存性に応答して前記推論的に割り付けられたメモリ・バッファ
を割り付け解除する手段と を備えた請求項1記載の処理システム。 - 【請求項9】 前記転送する手段は、前記推論的に実行したジョブにコミッ
ト優先順位を割り当てるときは、メモリ手段(46)に前記ポインタを書き込み
、前記入出力装置(10)によりポインタについて前記メモリ手段をチェックす
る手段を備えている請求項1記載の処理システム。 - 【請求項10】 前記入出力装置(10)は、ポインタについて前記メモリ
手段(46)を定期的にポーリングするネットワーク・コントローラであり、前
記ネットワーク・コントローラは、ポインタを見出したときは、前記ポインタに
関連した前記プライベート・メモリ・バッファから取り出した通信メッセージを
送出する請求項9記載の処理システム。 - 【請求項11】 前記メモリ手段(46)は、前記処理システムのメイン・
メモリ(40)に割り付けられたリング構造であり、かつ前記ポインタは、前記
リング構造(46)の位置に書き込まれる請求項9記載の処理システム。 - 【請求項12】 更に、前記ポインタをメモリ手段(WO)に推論的に書き
込む手段を備え、かつ前記転送手段は、コミット優先順位が前記推論的に実行し
たジョブに割り当てられたときに、前記メモリ手段(WO)から前記入出力装置
(10)に前記ポインタを転送する請求項1記載の処理システム。 - 【請求項13】 前記メモリ手段(WO)は、前記処理システムのメイン・
メモリ(40)にハードウェア・キューとして実施された、又は割り付けられた
、書き込みキューである請求項12記載の処理システム。 - 【請求項14】 ‐前記入出力装置(10)は、前記多数のプロセッサによ
り処理するジョブ信号スケジューラ・スケジューリング・ジョブ信号であり、 ‐前記割り付け手段は、プライベート・メモリ・バッファをジョブ信号メモリ
(12)を推論的に割り付けて推論的に実行したジョブにより発生した新しいジ
ョブ信号を保持し、前記対応するポインタは、メモリ手段(WO)に推論的に書
き込まれ、 ‐前記転送手段は、コミット優先順位が前記推論的に実行したジョブに割り当
てられたときは、前記メモリ手段(WO)から前記入出力装置(10)に転送し
て前記新しいジョブ信号のスケジューリングを可能にさせる 請求項1記載の処理システム。 - 【請求項15】 各ジョブ信号及びその対応するポインタは、優先順位レベ
ル情報に関連され、かつ前記入出力装置(10)は、 ‐到着の順序及び前記優先順位レベル情報に従って複数のポインタをストアし
てスケジューリング順序を得るポインタ・メモリ(13)と、 ‐前記ポインタ・メモリ(13)におけるスケジューリング順序に従い前記多
数のプロセッサ(30)により処理するために、前記ジョブ信号メモリ(12)
からのジョブ信号を転送する手段と を備えた請求項14記載の処理システム。 - 【請求項16】 前記転送手段は、前記ポインタ・メモリ(13)に前記ポ
インタを転送して前記ポインタを前記スケジューリング順序に配置する請求項1
5記載の処理システム。 - 【請求項17】 処理システムにおける結果を処理する方法において、 ‐並列に複数のジョブを推論的に実行するステップ(101)と、 ‐一度に1ジョブにより、前記複数のジョブにコミット優先順位を割り付ける
ステップと、 ‐プライベート・メモリ・バッファを推論的に割り付けて推論的に実行したジ
ョブの結果を保持するステップ(102)と、 ‐コミット優先順位が推論的に実行したジョブに割り付けられたときに、入出
力装置(10)に割り付けメモリ・バッファを指示するポインタを転送し、前記
入出力装置が転送されたポインタにより前記対応する割り付けメモリ・バッファ
をアクセスするステップ(105)と を備えた結果を処理する方法。 - 【請求項18】 更に、 ‐推論的に実行したジョブとコミット優先順位を有するジョブとの間の依存性
を検出するステップ(104)と、 ‐推論的に実行したジョブについて依存性が検出されたときは、前記対応する
推論的に割り付けられたメモリ・バッファを割り付け解除するステップ(106
)と を備えた請求項17記載の結果を処理する方法。 - 【請求項19】 前記推論的に実行したジョブの結果は、通信メッセージ、
オペレーティング・システム・コール又は新しいジョブを表すジョブ信号の形式
にある請求項17記載の結果を処理する方法。 - 【請求項20】 前記入出力装置(10)は、入出力プロセッサ、ネットワ
ーク・コントローラ、イサーネット回路又はジョブ信号スケジューラである請求
項17記載の結果を処理する方法。 - 【請求項21】 前記転送する手段は、前記推論的に実行したジョブにコミ
ット優先順位を割り当てるときは、メモリ手段に前記ポインタを書き込み、前記
入出力装置によりポインタについて前記メモリ手段をチェックするステップを備
えている請求項17記載の結果を処理する方法。 - 【請求項22】 更に、前記ポインタをメモリ手段(WO)に推論的に書き
込むステップを備え、かつ前記転送ステップ(105)は、前記推論的に実行し
たジョブにコミット優先順位を割り当てられたときは、前記メモリ手段(WO)
から前記入出力装置(10)に前記ポインタを転送することを含む請求項17記
載の結果を処理する方法。 - 【請求項23】 前記推論的に実行したジョブは、多数のプロセッサ(30
)により実行され、かつ前記方法は、更に、各プロセッサを自己プライベート・
プール(45)のバッファと関連させるステップを備え、前記プロセッサは、こ
のプライベート・プールに対して、又は、から複数のメモリ・バッファを割り付
ける、又は割り付け解除する請求項17記載の結果を処理する方法。 - 【請求項24】 処理システムにおいて、 ‐複数のジョブを推論的に実行する多数のプロセッサ(30)と、 ‐一度に1ジョブにより、複数のジョブに対してコミット優先順位割り当てる
手段と、 ‐前記処理システムの前記メイン・メモリ(40)内にプライベート・メモリ
・バッファ推論的に割り付けて、前記推論的に実行したジョブにコミット優先順
位を割り当てられたときは、推論的に実行したジョブにより発生した新しい記録
又はオブジェクトが前記メイン・メモリ(40)内の所定位置にあるように、推
論的に実行したジョブにより発生した前記新しい記録又はオブジェクトを保持す
る手段と を備えた処理システム。 - 【請求項25】 更に、前記推論的に実行したジョブにコミット優先順位を
割り当てたときは、前記割り付けられたプライベート・メモリ・バッファを指示
するポインタを共有メモリに渡す手段を備えた請求項24記載の処理システム。 - 【請求項26】 更に、 ‐前記推論的に実行したジョブとコミット優先順位を有するジョブとの間の依
存性を検出する手段(35)と、 ‐検出された依存性に応答して前記推論的に割り付けられたメモリ・バッファ
を割り付け解除する手段と を備えた請求項24記載の処理システム。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
SE9803901A SE9803901D0 (sv) | 1998-11-16 | 1998-11-16 | a device for a service network |
SE9803901-9 | 1999-06-22 | ||
SE9902373-1 | 1999-06-22 | ||
SE9902373A SE9902373D0 (sv) | 1998-11-16 | 1999-06-22 | A processing system and method |
PCT/SE1999/002063 WO2000029941A1 (en) | 1998-11-16 | 1999-11-12 | Improved result handling in a multiprocessing system |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2002530736A true JP2002530736A (ja) | 2002-09-17 |
JP2002530736A5 JP2002530736A5 (ja) | 2010-10-14 |
JP4608100B2 JP4608100B2 (ja) | 2011-01-05 |
Family
ID=26663436
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000582884A Expired - Lifetime JP4608100B2 (ja) | 1998-11-16 | 1999-11-12 | 多重処理システムにおける改良結果処理方法 |
Country Status (9)
Country | Link |
---|---|
EP (1) | EP1131702B1 (ja) |
JP (1) | JP4608100B2 (ja) |
KR (1) | KR100437227B1 (ja) |
AU (1) | AU1437200A (ja) |
BR (1) | BR9915369A (ja) |
CA (1) | CA2350466A1 (ja) |
DE (1) | DE69940784D1 (ja) |
SE (1) | SE9902373D0 (ja) |
WO (1) | WO2000029941A1 (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006518058A (ja) * | 2002-10-31 | 2006-08-03 | ロッキード マーティン コーポレーション | 改善された計算アーキテクチャ用パイプライン加速器、関連システム、並びに、方法 |
WO2013065687A1 (ja) * | 2011-11-04 | 2013-05-10 | 学校法人 早稲田大学 | プロセッサシステム及びアクセラレータ |
JP2016509306A (ja) * | 2013-01-31 | 2016-03-24 | オラクル・インターナショナル・コーポレイション | クラスタにおけるワークシェアリング多重化をサポートするためのシステムおよび方法 |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003263331A (ja) * | 2002-03-07 | 2003-09-19 | Toshiba Corp | マルチプロセッサシステム |
GB2401748B (en) * | 2003-05-14 | 2005-04-13 | Motorola Inc | Apparatus and method of memory allocation therefor |
KR100957060B1 (ko) * | 2007-12-12 | 2010-05-13 | 엠텍비젼 주식회사 | 명령어 병렬 스케줄러, 방법 및 그 기록매체 |
US8572359B2 (en) | 2009-12-30 | 2013-10-29 | International Business Machines Corporation | Runtime extraction of data parallelism |
US9696995B2 (en) | 2009-12-30 | 2017-07-04 | International Business Machines Corporation | Parallel execution unit that extracts data parallelism at runtime |
US8683185B2 (en) | 2010-07-26 | 2014-03-25 | International Business Machines Corporation | Ceasing parallel processing of first set of loops upon selectable number of monitored terminations and processing second set |
KR101603429B1 (ko) * | 2014-09-03 | 2016-03-14 | (주)솔투로 | 빅데이터의 멀티프로세스 분배를 통한 멀티 출력 장치 및 그 방법 |
US10042773B2 (en) * | 2015-07-28 | 2018-08-07 | Futurewei Technologies, Inc. | Advance cache allocator |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5287467A (en) * | 1991-04-18 | 1994-02-15 | International Business Machines Corporation | Pipeline for removing and concurrently executing two or more branch instructions in synchronization with other instructions executing in the execution unit |
US5511172A (en) * | 1991-11-15 | 1996-04-23 | Matsushita Electric Co. Ind, Ltd. | Speculative execution processor |
US5740393A (en) * | 1993-10-15 | 1998-04-14 | Intel Corporation | Instruction pointer limits in processor that performs speculative out-of-order instruction execution |
DE69420540T2 (de) * | 1994-01-03 | 2000-02-10 | Intel Corp., Santa Clara | Verfahren und Vorrichtung zum Implementieren eines vierstufigen Verzweigungsauflosungssystem in einem Rechnerprozessor |
US5875326A (en) * | 1997-04-25 | 1999-02-23 | International Business Machines Corporation | Data processing system and method for completing out-of-order instructions |
US5870597A (en) * | 1997-06-25 | 1999-02-09 | Sun Microsystems, Inc. | Method for speculative calculation of physical register addresses in an out of order processor |
US6240509B1 (en) * | 1997-12-16 | 2001-05-29 | Intel Corporation | Out-of-pipeline trace buffer for holding instructions that may be re-executed following misspeculation |
-
1999
- 1999-06-22 SE SE9902373A patent/SE9902373D0/xx unknown
- 1999-11-12 BR BR9915369-6A patent/BR9915369A/pt not_active Application Discontinuation
- 1999-11-12 DE DE69940784T patent/DE69940784D1/de not_active Expired - Lifetime
- 1999-11-12 AU AU14372/00A patent/AU1437200A/en not_active Abandoned
- 1999-11-12 KR KR10-2001-7006200A patent/KR100437227B1/ko not_active IP Right Cessation
- 1999-11-12 CA CA002350466A patent/CA2350466A1/en not_active Abandoned
- 1999-11-12 JP JP2000582884A patent/JP4608100B2/ja not_active Expired - Lifetime
- 1999-11-12 EP EP99972322A patent/EP1131702B1/en not_active Expired - Lifetime
- 1999-11-12 WO PCT/SE1999/002063 patent/WO2000029941A1/en active IP Right Grant
Non-Patent Citations (2)
Title |
---|
JPN6009010568, James S. Mattson Jr., "An Effective Speculative Evaluation Technique for Parallel Supercombinator Graph Reduction", A dissertation submitted in partial satisfaction of the requirements for the degree Doctor of Philos, 1993, pp. 1 − 17, 39 − 82, 206 − 211, US, UNIVERSITY OF CALIFORNIA, SAN DIEGO * |
JPN6009010570, Christopher F. Joerg, "The Cilk System for Parallel Multithreaded Computing", Submitted to the Department of Electrical Engineering and Computer Science in partial fulfillment of, 199601, pp. 5 − 7, 31 − 34, US, MASACHUSETTS INSTITUTE OF TECHNOLOGY * |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006518058A (ja) * | 2002-10-31 | 2006-08-03 | ロッキード マーティン コーポレーション | 改善された計算アーキテクチャ用パイプライン加速器、関連システム、並びに、方法 |
WO2013065687A1 (ja) * | 2011-11-04 | 2013-05-10 | 学校法人 早稲田大学 | プロセッサシステム及びアクセラレータ |
CN104025045A (zh) * | 2011-11-04 | 2014-09-03 | 学校法人早稻田大学 | 处理器系统及加速器 |
GB2511672A (en) * | 2011-11-04 | 2014-09-10 | Univ Waseda | Processor system and accelerator |
JPWO2013065687A1 (ja) * | 2011-11-04 | 2015-04-02 | 学校法人早稲田大学 | プロセッサシステム及びアクセラレータ |
JP2017091589A (ja) * | 2011-11-04 | 2017-05-25 | 学校法人早稲田大学 | プロセッサコア及びプロセッサシステム |
US9846673B2 (en) | 2011-11-04 | 2017-12-19 | Waseda University | Processor, accelerator, and direct memory access controller within a processor core that each reads/writes a local synchronization flag area for parallel execution |
US10095657B2 (en) | 2011-11-04 | 2018-10-09 | Waseda University | Processor, accelerator, and direct memory access controller within a core reading/writing local synchronization flag area for parallel |
GB2511672B (en) * | 2011-11-04 | 2020-04-15 | Univ Waseda | Processor system and accelerator |
JP2016509306A (ja) * | 2013-01-31 | 2016-03-24 | オラクル・インターナショナル・コーポレイション | クラスタにおけるワークシェアリング多重化をサポートするためのシステムおよび方法 |
Also Published As
Publication number | Publication date |
---|---|
KR100437227B1 (ko) | 2004-06-23 |
EP1131702B1 (en) | 2009-04-22 |
KR20010080468A (ko) | 2001-08-22 |
BR9915369A (pt) | 2001-08-14 |
WO2000029941A1 (en) | 2000-05-25 |
DE69940784D1 (de) | 2009-06-10 |
CA2350466A1 (en) | 2000-05-25 |
EP1131702A1 (en) | 2001-09-12 |
AU1437200A (en) | 2000-06-05 |
SE9902373D0 (sv) | 1999-06-22 |
JP4608100B2 (ja) | 2011-01-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10261835B2 (en) | Hardware thread scheduling | |
US7082601B2 (en) | Multi-thread execution method and parallel processor system | |
US5574939A (en) | Multiprocessor coupling system with integrated compile and run time scheduling for parallelism | |
US7650602B2 (en) | Parallel processing computer | |
JP3139392B2 (ja) | 並列処理システム | |
EP0747816B1 (en) | Method and system for high performance multithread operation in a data processing system | |
US8661230B2 (en) | Allocation of counters from a pool of counters to track mappings of logical registers to physical registers for mapper based instruction executions | |
JPS63113648A (ja) | キャッシュ記憶待ち行列 | |
US9213677B2 (en) | Reconfigurable processor architecture | |
EP2187316A1 (en) | Gated storage system and synchronization controller and method for multiple multi-threaded processors | |
WO2003038602A2 (en) | Method and apparatus for the data-driven synchronous parallel processing of digital data | |
US5893159A (en) | Methods and apparatus for managing scratchpad memory in a multiprocessor data processing system | |
JP2002530736A (ja) | 多重処理システムにおける改良結果処理方法 | |
WO2000029939A1 (en) | A job-parallel processor | |
JP4608099B2 (ja) | ジョブ信号を処理する多数の処理ユニットを有する処理システムにおけるジョブ信号処理方法および処理システム | |
JP2002530736A5 (ja) | ||
JP2002530735A5 (ja) | ||
JP2002287957A (ja) | キャッシュのような構造を使用してcpu設計におけるオペランド・アクセス・ステージを高速化するための方法及び装置 | |
US20100100709A1 (en) | Instruction control apparatus and instruction control method | |
JP2002163121A (ja) | 仮想マルチスレッドプロセッサ及びスレッド実行方法 | |
JP3501761B2 (ja) | 大規模データパス・アーキテクチャの実行機構 | |
US12112169B2 (en) | Register freeing latency | |
JPH10187464A (ja) | マルチスカラ・プログラムを作成する方法およびシステム | |
CN108536474B (zh) | 延迟缓冲器 | |
CA2464506A1 (en) | Method and apparatus for the data-driven synchronous parallel processing of digital data |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20061012 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090306 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090526 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100525 |
|
A524 | Written submission of copy of amendment under article 19 pct |
Free format text: JAPANESE INTERMEDIATE CODE: A524 Effective date: 20100825 |
|
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: 20100910 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20101008 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4608100 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131015 Year of fee payment: 3 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
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 |
|
EXPY | Cancellation because of completion of term |