JP4608099B2 - ジョブ信号を処理する多数の処理ユニットを有する処理システムにおけるジョブ信号処理方法および処理システム - Google Patents

ジョブ信号を処理する多数の処理ユニットを有する処理システムにおけるジョブ信号処理方法および処理システム Download PDF

Info

Publication number
JP4608099B2
JP4608099B2 JP2000582883A JP2000582883A JP4608099B2 JP 4608099 B2 JP4608099 B2 JP 4608099B2 JP 2000582883 A JP2000582883 A JP 2000582883A JP 2000582883 A JP2000582883 A JP 2000582883A JP 4608099 B2 JP4608099 B2 JP 4608099B2
Authority
JP
Japan
Prior art keywords
job
signal
processing
job signal
queue
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.)
Expired - Fee Related
Application number
JP2000582883A
Other languages
English (en)
Other versions
JP2002530735A5 (ja
JP2002530735A (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
Priority claimed from SE9803901A external-priority patent/SE9803901D0/xx
Application filed by テレフオンアクチーボラゲット エル エム エリクソン(パブル) filed Critical テレフオンアクチーボラゲット エル エム エリクソン(パブル)
Publication of JP2002530735A publication Critical patent/JP2002530735A/ja
Publication of JP2002530735A5 publication Critical patent/JP2002530735A5/ja
Application granted granted Critical
Publication of JP4608099B2 publication Critical patent/JP4608099B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • 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/3842Speculative instruction execution
    • 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/3851Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Advance Control (AREA)
  • Multi Processors (AREA)
  • Hardware Redundancy (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

【0001】
(発明の技術的分野)
本発明は一般的に処理システムに関し,特に多数の処理装置を有する処理システム,およびこのような処理システムにおけるジョブ信号の処理方法に関する。
【0002】
(発明の背景)
Telefonaktiebolaget LM Ericssonからの既知のデジタル交換システムにおけるAPZ処理システム等の多くの従来の中央処理システムは,AXEシステム内の実行パイプラインと呼ばれる,単一処理装置の周りに形成されている。しかしながら,単一処理装置に基づく中央処理システムには容量に関する制約がある。
【0003】
処理能力を高める1つの方法は処理システムをマルチプロセッサシステム,すなわち並列に動作する多数のプロセッサすなわち処理装置,として形成することである。従来のマルチ処理システムでは,各処理装置が入力信号を処理して対応する一連の命令を実行し,一時に1つの入力信号が各処理装置に割り当てられる。
【0004】
近隣命令間で見つかる細粒並列度を精査するいわゆるスーパースカラープロセッサでは,プロセッサ内の機能的ユニットはいくつかの命令を並列に同時に実行するようにされている。
【0005】
しかしながら,まだ,より効率的な処理システムに対する全般的な要求がある。
【0006】
(発明の概要)
本発明は従来技術のマルチ処理システムのさらなる進展を構成する。
【0007】
本発明はジョブの投機的(speculative)実行を行うようにされたマルチ処理システムに向けられている。マルチ処理システムでは,処理装置は異なるジョブを並列に独立して実行する。しかしながら,投機的実行を行うようにされた処理システム内でジョブを並列に実行している間は常に,1つの処理装置しかコミット優先度を持たずその現在のジョブを非投機的に実行して,メモリシステムへのライトバックを実施して信号送出をコミットすることができるのはそれだけである。他の処理装置におけるジョブは投機的に実施され依存性が検出される場合にはフラッシュされることがある。
【0008】
このような処理システムの開発中に,特有の問題に遭遇した。コミット優先度を有するジョブが他の投機的ジョブよりも実行時間が長ければ,投機的に実行する処理装置はコミットジョブが完了するよりも遥かに前に割り当てられたジョブの実行を完了している。したがって,投機的に実行されたジョブはコミットジョブが完了まで実行されてその1つがコミット優先度を得られるまで待機しなければならない。それは一般的に,投機的に実行する処理装置がコミット優先度を単純に待機して貴重な実行時間が浪費され,処理システムの性能がひどく劣化することを意味する。
【0009】
したがって,より柔軟で効率的な投機的マルチ処理システムおよびこのようなマルチ処理システムにおけるジョブ信号のより効率的な処理方法を提供することが本発明の一般的な目的である。
【0010】
マルチ処理システムに使用するジョブキューを提供することが本発明のもう1つの目的である。
【0011】
これらおよびその他の目的は添付する特許請求の範囲に明記された本発明により満たされる。
【0012】
本発明に従った一般的なアイデアは,マルチ処理システム内の少なくとも1つの処理装置に対して,第1のジョブ信号を対応する第1のジョブを投機的に実行する処理装置へ割り当て,もう1つのジョブ信号を対応するもう1つのジョブを投機的に実行する処理装置へ割り当て,処理装置が第1のジョブの投機的実行を完了している時に前記もう1つのジョブの投機的実行を開始することに基づいている。所望により,より多くのジョブ信号を処理装置へ割り当てて投機的実行を行うことができ,対応するジョブの実行は処理装置が前に割り当てられたジョブの投機的実行を完了するとすぐに開始される。コミット優先度を有する処理装置にはさらにもう1つのジョブ信号を割り当てることができ,その実行はコミットジョブが完了するとすぐに開始される。
【0013】
多数のジョブ信号を処理装置により投機的に実行するために割り当てることにより,ジョブ間の実行時間のばらつきの影響が相殺もしくは少なくとも著しく低減され,処理装置はコミット優先度を待機しながら複数のジョブを投機的に実行できるため処理システムの全体性能が実質的に改善される。
【0014】
一般的に,ジョブ信号を処理装置に割り当て,ジョブ信号を追跡しコミット優先度を処理するのに必要なプロトコルは適切な制御ソフトウェアもしくはハードウェアと組み合わせてジョブ信号キューにより管理される。
【0015】
ジョブ信号,その対応するジョブもしくは処理システムの操作におけるその結果を識別するために,各ジョブ信号には識別子が関連付けられる。識別子はジョブ信号キュー内の対応するジョブ信号の記憶位置へのポインターの形とすることができる。あるいは,識別子はジョブ信号が割り当てられる処理装置のアイデンティティを表わす単一ラベル,および処理装置内のジョブ信号が与えられるアイデンティティを表わすジョブ信号識別ラベルを含む。
【0016】
投機的実行を行うようにされた処理システムでは,投機的に実行されたジョブの結果はライトキュー構成内に一時的に格納されてコミットされるのを待つ。本発明に従って,投機的に実行されたジョブがコミット優先度を得るとそのジョブの結果が識別子により検索される。
【0017】
本発明は下記の利点を提供する。
− 処理システムの全体性能が実質的に改善される。
− 柔軟で効率的な投機的実行が提供される。
− ジョブ間の実行時間のばらつきの影響が相殺される。
【0018】
本発明の実施例の下記の説明を読めば本発明により提供される他の利点も理解できるであろう。
【0019】
(発明の実施例の詳細な説明)
図面全体をとおして,同じ参照文字は対応するすなわち同じ要素のために使用される。
【0020】
図1は本発明に従ったジョブ信号処理方法の略フロー図である。ジョブ信号処理用の多数の処理装置を有する処理システムでは,ジョブ信号は対応するジョブを実行する処理装置に割り当てられる。一般的に,少なくとも1つの処理装置に対して下記のステップが実施される。ステップ1において,第1のジョブ信号が対応する第1のジョブの投機的実行を行う処理装置へ割り当てられる。コミット優先度を有する処理装置の場合には,ジョブは非投機的に実行される。ステップ2において,もう1つのジョブ信号が対応するもう1つのジョブの投機的実行を行う処理装置へ割り当てられる。ステップ3において,処理装置が第1のジョブの実行を完了しておれば,もう1つのジョブの投機的実行が開始される。もちろん,さらに多くのジョブ信号に対してステップ2および3を繰り返すことができる。
【0021】
このようにして,処理装置はコミット優先度を待機しながら複数のジョブを投機的に実行することができる。理論上,同じ処理装置に割り当てられるジョブ数は制限されない。
【0022】
各ジョブ信号はその対応するジョブおよび前記ジョブの結果に密接に相関されている。
【0023】
以下に,投機的実行を行うようにされたマルチ処理システムの実現例を参照して本発明の説明を行う。しかしながら,それに限定されるものではない。
【0024】
図2は本発明に従った処理システムの略図である。処理システム10は基本的にジョブスケジューラ20および処理コア30を含んでいる。処理コア30はジョブの投機的実行を行うようにされており,処理コア30の処理装置34A−Dは好ましくは実行パイプライン等の特殊化されたハードウェアの形であるが,在庫からすぐ入手できる標準マイクロプロセッサも適している。
【0025】
ジョブスケジューラ20は処理コア30からだけでなく外部装置からも,イベントを表わす,ジョブ信号を受信して処理コア30による処理に対してジョブ信号をスケジュールする。特定タイプのジョブスケジューラの例はTelefonaktiebolaget LM ericssonからの既知のAXEデジタル交換システムにおける信号処理装置(SPU)である。
【0026】
処理コア30は基本的には,単純にジョブキューと呼ばれる,ジョブ信号キュー32,複数の実行パイプライン34A−D,データ依存性を処理する依存性チェック装置と一時的ライトキュー36の組合せ,およびプログラム記憶38およびデータ記憶39に分割されたメモリシステム37を含んでいる。
【0027】
ジョブスケジューラ20からのジョブ信号はジョブキュー32内にバッファされ,それはジョブ信号を記憶するためのいくつかの記憶位置を有する。各ジョブ信号は付加情報と共にジョブキュー32の各記憶位置に記憶される。一般的に,各ジョブ信号はヘッダーおよびデータを含んでいる。管理情報の他に,ヘッダーは通常プログラム記憶38内のソフトウェアコードへのポインターを含み,ジョブ信号のデータは対応するジョブを実行するのに必要な入力オペランドを含んでいる。このデータは地域プロセッサやもう1つのプロセッサ等の外部装置からの信号メッセージとすることができる。ジョブは信号ヘッダーにより指定される命令ストリームとして定義することができ,このジョブはジョブ信号の受信で開始してエンドジョブルーチンの呼出しにより終了する。しかしながら,ジョブ信号自体は通常いかなる命令も含まないことをお判り願いたい。ジョブ信号は通常プログラム記憶38内に記憶されたソフトウェアコード内の命令へのポインター,および命令の実行に必要なオペランドを含み,一般的にジョブ信号を自立型とする。
【0028】
好ましくは,実行パイプライン34A−Dはジョブキュー32内の異なる記憶位置からジョブ信号を独立に“フェッチ”して異なるジョブを独立して並列に実行する。実行パイプラインが新しいジョブの実行を開始できる時は常に,ジョブキュー32は未割当てジョブ信号を見つけるために調べられ,未割当てジョブ信号がパイプラインに割り当てられる。次に,ジョブ信号は実行パイプラインにおいて処理されて対応するジョブが実行される。この特定の例では,4つのパイプラインが4つの異なるジョブを,互いに独立して,並列に実行するように動作することができる。並列ジョブ実行中は常に,ジョブキュー32内の1つのジョブ信号だけがコミット位置にあり,ジョブ信号が割り当てられる実行パイプラインは対応するジョブをコミットする,すなわちメモリシステム37へのライトバックを実施して信号送出をコミットすることができる。他の実行パイプライン内のジョブは投機的に実行され,依存性チェック装置36によりデータ依存性が検出される場合にはフラッシュすることができる。
【0029】
情報フローがプロトコルにより支配されるシステムに対する一般的な要求条件はある関連イベントを受信順に処理しなければならないことである。それはシステムがどのように実現されようとも,システムによって変わることはない。ジョブ間のコミット順は処理コアへの到来により定義され,一般的には変更されない。しかしながら,異なる優先度レベルのジョブ信号を処理する処理システムでは,優先度の高いジョブ信号を優先度の低いジョブ信号の前に置くのが有用であることがある。
【0030】
一般的に,各実行パイプラインはプログラム記憶から命令をフェッチし,命令を復号し,命令を実行してメモリライトバックを実施する回路を含んでいる。本発明により使用することができる特定の実行パイプラインはエリクソンAXEデジタル交換システム内のパイプラインである。
【0031】
依存性チェック装置36は一般的に実行パイプライン34A−Dに関連する1つ以上のリードバッファを使用して実現される。パイプラインがデータ記憶39からデータをフェッチすると,リードアドレスがリードバッファ内にバッファされる。コミット優先度を有する実行パイプラインがデータ記憶39へのライトバックを実施すると,データ記憶へのライトアドレスがリードバッファ内のリードアドレスと比較されてジョブ間にデータ依存性があるか調べられる。ジョブを投機的に実行して読み出されたデータが引続きコミットされたジョブにより修正される場合には,データ依存性が存在し投機的に実行されたジョブはフラッシュして再開しなければならない。フラッシュしたジョブはジョブキュー32から再開することができる。コミットされているジョブに対応するジョブ信号はジョブキュー32から除去され,したがってジョブスケジューラ20からの新しいジョブ信号をジョブキュー32内にバッファーすることができる。
【0032】
投機的に実行されたジョブにより提案されるデータ記憶修正は一時ライトキュー36内にログインされるが,ジョブがコミット優先度を得るまではデータ記憶39には書き込まれない。投機的ジョブがコミット優先度を得ると,問題とするジョブに属する一時的ライトキュー36内へのエントリーは即座にデータ記憶39に書き込まれる。しかしながら,実行中のコミットジョブは一般的にそのデータをライトキュー内には記憶せず,対応するメモリアドレスを依存性チェック装置へ転送して依存性チェックをできるようにするだけである。コミット優先度を有するジョブにより発生されたジョブ信号はジョブスケジューラ20へ転送され,そこで後の処理のためにスケジュールされるかあるいは入出力装置(図示せず)へ送られて外部装置へ配送される。
【0033】
特定タイプの依存性チェック装置および一時的ライトキューが国際特許出願WO88/02513に開示されている。
【0034】
図2の処理システムの開発およびテスト中に,特有の問題に遭遇した。コミット優先度を有するジョブが投機的ジョブよりも長い実行時間を有する場合には,投機的実行処理装置はコミットジョブの完了よりも遥かに前にその割り当てられたジョブの実行を完了している。投機的に実行されたジョブはコミットジョブが完了まで実行され最後にコミットされて投機的に実行されたジョブがコミット優先度を得られるまで待機しなければならない。一般的に,それは投機的実行処理装置が単純にコミット優先度を待ち貴重な実行時間が浪費されて,処理システムの性能がひどく劣化することを意味する。電気通信応用に対するシミュレーションにより,4つの等価パイプラインのマルチパイプを有する処理システムにより僅か2つの等価シングルパイプ処理システムの容量しか得られず,その比は2:4で最適からは程遠いことが判った。
【0035】
もちろん,前記した推論は他の投機的ジョブよりも長い実行時間を有する投機的ジョブについても言えることである。長い実行時間を有する投機的ジョブがコミット優先度を得ると,他の投機的ジョブは既に完了まで実行されており,コミット優先度を待っているだけである。
【0036】
本発明に従って,多数のジョブ信号が少なくとも1つの実行パイプラインへ割り当てられ,前のジョブが完了まで実行されているとすぐに次のジョブの投機的実行が開始される。このようにして,実行パイプラインはコミット優先度を待機しながら複数のジョブを投機的に実行することができる。パイプライン当たりいくつかのジョブを実行することにより,ジョブ間の実行時間のばらつきの影響が相殺されあるいは少なくとも低減され,前記したシングルパイプ対マルチパイプ比が実質的に改善される。
【0037】
一般的に,ジョブ信号を実行パイプライン34A−Dに割り当て,完了まで投機的に実行されているジョブの追跡を継続し,ジョブ信号に連続的にコミット優先度を割り当て,コミットされているジョブ信号を除去するのに必要なプロトコルは適切な制御ソフトウェアもしくはハードウェアと組み合わせたジョブ信号キュー32により管理される。
【0038】
ジョブキュー32は通常はいくつかの記憶位置を有するオーディナリキューである。例として,ジョブキュー32はメモリの予め定められた部分を,各々がそれ自体の個別のメモリアドレスを有する,いくつかの記憶位置へ論理的に分割することにより共通メモリ内に実現することができる。一般的に,ジョブキュー32内の各記憶位置は,例えば下記の表Iに記載された,いくつかのフィールドへ分割される。
Figure 0004608099
【0039】
フィールド‘Valid’は記憶位置が有効なジョブ信号を含むかどうかを示すのに使用される。ジョブ信号はスケジューリング装置20から受信されると,ジョブキュー32の最初の空き位置,すなわちValidフラグがセットされない位置に置かれる。次に,Validフラグは‘Signal’フィールドが現在有効なジョブ信号を含んでおり,位置は占有されていることを示すようにセットされる。
【0040】
フィールド‘Taken’はジョブ信号がパイプラインに割り当てられているかどうかを示すのに使用される。ジョブキュー32の記憶位置におけるジョブ信号が実行パイプラインに割り当てられる場合には,その位置に対するTakenフラグはジョブ信号が割り当てられていることを示すのに使用される。
【0041】
フィールド‘Finished’はジョブが完了まで投機的に実行されていることを示すのに使用され,フィールド‘UL&DL’はパイプのアイデンティティおよびそのパイプ内でジョブ信号および/もしくは対応するジョブが与えられるアイデンティティを示すのに使用される。パイプラインが第1のジョブに対するエンド−ジョブルーチンを実行している場合には,Finishedフラグはジョブが完了まで実行されていてコミットされる準備が完了していることを知らせるようにセットされる。ここで,パイプラインは第2の投機的ジョブ信号をフェッチする準備が完了している。第1のジョブには問題とするパイプのジョブid‘1’が割り当てられ,そのパイプ内で実行される第2のジョブにはジョブid‘2’が割り当てられる。パイプがコミット優先度を受信する前に第2のジョブを終了する場合には,第3の投機的ジョブを実行することができ,以下同様である。一般的に,パイプ当たりのジョブ数と複雑さとの間でトレードオフがなされ,実際上パイプ当たりジョブ数は制限される。
【0042】
投機的実行を行うようにされた処理システムでは,ジョブは一般的に次の状態とすることができる,Not_Started, StartedおよびFinished。これらの状態はジョブキュー32内でさまざまな方法で符号化することができ,表IのフィールドValid, TakenおよびFinishedはこれらのジョブ状態を符号化する方法の一例にすぎないことをお判り願いたい。
【0043】
好ましくは,ジョブキュー32にはコミット位置にあるのはジョブキュー32内のどの記憶位置であるかを指摘するポインターが関連付けられる。コミット位置にあるジョブ信号はコミット優先度を有し,このジョブ信号を処理する実行パイプラインはメモリシステム37へのライトバックを実施してジョブスケジューラ20にジョブ信号を送られるようにされる。
【0044】
図3は第1の好ましい実施例に従ったジョブ信号キュー,処理装置およびライトキュー構成間の相互関係を示す略図である。この実施例では,並列に動作する4つの異なるパイプライン34A−Dがあるものと仮定する。各パイプラインには一意的な装置ラベル(1−4)が割り当てられる。また,各パイプラインは2つのジョブを処理できるものとする。したがって,明瞭かつ単純にするために,ジョブキュー32は8つの記憶位置を有するものとして例示される。各記憶位置はフィールドV(Valid), T(Taken), F(Finished), UL(Pipe id), DL(Job id)およびSIGNALを含んでいる。図3において,フィールド‘UL&DL’は単一の連接フィールドではなく2つの別々のフィールドULおよびDLとして図示されている。両方を実現することができる。
【0045】
ジョブ開始
次に,新しいジョブをどのように開始するかの例について説明する。最初に,実行準備完了している実行パイプラインがジョブキュー32から新しいジョブ信号を要求する。好ましくは,パイプラインはパイプ内でどのアイデンティティに新しいジョブ信号を与えるべきかをも示す。次に,ジョブキュー32が従来の手段によりトラバースされ,有効な未割当てジョブ信号を含む次の位置を見つけるためにジョブキュー32内の記憶位置のValidフラグおよびTakenフラグが調べられる。未割当てジョブ信号の記憶位置へのポインターが要求している実行パイプラインのジョブキューレジスタ(JQP)へ転送される。ポインターは記憶位置へのメモリアドレスの形とすることができる。問題とするパイプラインは次のジョブ信号へのポインターに対するそのJQPレジスタを自動的に読み出し,続いてパイプライン内へのポインターにより与えられるジョブ信号をコピーして対応するジョブ実行開始する。ジョブキュー32のその位置に対するTakenフラグがセットされ,パイプラインのアイデンティティおよびパイプ内でジョブが与えられるアイデンティティが,それぞれ,ULおよびDL内に書き込まれる。このようにして,ジョブキュー32内に記憶されたジョブ信号は実行パイプライン34A−Dに割り当てられ,記憶位置の信号フィールドがセットされる。
【0046】
図3の例では,ジョブキュー32の各記憶位置が実行パイプライン34A−Dの1つに割り当てられている(T=1)有効な(V=1)ジョブ信号を含んでいる。最初の4つの位置のジョブ信号に対応するジョブは完了まで実行されており(F=1),コミット優先度を待機している。最後の4つの位置のジョブ信号に対応するジョブは投機的に実行されている最中であり,どのジョブも終了していない(F=0)。ジョブが完了まで投機的に実行されるとすぐに,対応するFinishedフィールドがセットされる。
【0047】
投機的に実行されたジョブの結果はライトキュー構成36にログインされるが,ジョブがコミットされるまではデータ記憶39には書き込まれない。図3に例示したように,本発明の第1の好ましい実施例ではライトキュー構成36は全ての実行パイプラインに共通するライトキューを含んでいる。次に,ライトキュー内の各エントリにはそれがどのパイプラインおよび表示されたパイプラインのどの投機的ジョブに属するかを示すpipe-idタグおよびjob-idタグが与えられる。pipe-idタグおよびjob-idタグは,それぞれ,ULおよびDLに対応する。したがって,ライトキュー内の各エントリはデータ記憶39へのアドレス(ADDR),関連するデータ(DATA),pipe-idタグ(UL),job-idタグ(DL)および有効フラグ(V)を含んでいる。
【0048】
図3のジョブキュー32を指す矢符により示されるコミット位置におけるジョブ信号はコミット優先度を有し,このジョブ信号を処理する実行パイプラインはデータ記憶39へ書き込めるようにされる。ジョブ信号がコミット位置へ移されると,その記憶位置の装置ラベルはジョブ信号に責任のあるパイプはどれであるかを確認するために調べられ,そのパイプはジョブに対する全てのライト操作および信号送出をコミット開始する。ジョブキュー32のコミット位置に記憶された装置ラベルULおよびジョブ信号識別ラベルDLを使用して,関連する結果をライトキューから検索してデータ記憶39に書き込むことができる。これが行われると,Validフラグをクリアすることにより位置が開放され従来の手段によりジョブキュー32がステップされて新しい記憶位置をコミット位置内に移し,ジョブキュー32のジョブ信号に連続的にコミット優先度を割り当てる。スケジューリング装置20はジョブが完了まで実行されておりジョブキュー32がスケジューリング装置から新しいジョブ信号を受信する準備が完了していることを知らされる。
【0049】
フラッシュ時のジョブ再開
次に,フラッシュをどのように処理するかの例について簡単に説明する。フラッシュ時に,データ依存性が検出されると,フラッシュされるジョブの実行は通常パイプライン内で割り込まれ,ジョブは再度Not-Started状態とされ,フラッシュされたジョブに属するライトキュー内のエントリは無効とされる。
【0050】
より詳細には,依存性が検出されているライトキュー36内のエントリのpipe-idタグ(UL)はフラッシュされるジョブを処理するパイプラインを識別する。ジョブが実行中であれば,パイプラインは通常割込みを得る。識別された実行パイプラインのJQPレジスタはジョブキュー32内のジョブ信号の記憶位置へのポインターを保持する。装置ラベルULおよびジョブキューポインターにより識別された記憶位置の識別ラベルDLを使用して,ライトキュー内の対応するエントリを無効とすることができる。ジョブキュー32内の対応する記憶位置のFinishedフラグおよびTakenフラグが除去され,次にジョブを再開することができる。ジョブキュー32内の当該記憶位置のフィールドULおよびDLがクリアされると,ジョブ信号は実行を再開できる任意の実行パイプラインへ割り当てることができ,新しい装置ラベルおよび新しいジョブ信号識別ラベルに関連付けることができる。あるいは,フラッシュされたジョブに対応するジョブ信号がジョブ信号に関連づけられた装置ラベルにより識別されるパイプラインへ再度割り当てられ,ジョブ信号は新しいジョブ信号識別ラベルDLに関連づけられる。
【0051】
フラッシュされるジョブは実行中であれば必ずしも割り込まれる必要はない。しかしながら,性能的にはジョブを割り込むほうが有利である。
【0052】
図4は第1の好ましい実施例に従ったジョブ信号キュー,処理装置およびライトキュー構成間の相互関係を示す略図である。ライトキュー構成36を除けば,図4は図3と同じである。図4において,ライトキュー構成36は各実行パイプライン34A−Dについて1つずつのいくつかの独立したライトキューWQ1−WQ4を含んでいる。各パイプラインに対する専用ライトキューを有することにより,各ライトキュー内の各エントリにpipe-idタグおよびjob-idタグの替わりにjob-idタグを与えれば十分である。したがって,ライトキューWQ1−WQ4内の各エントリはデータ記憶39へのアドレス(A),関連するデータ(DATA),job-idタグ(DL)および有効フラグ(V)を含んでいる。ジョブキュー32内のジョブ信号がコミット位置内へ移されると,そのジョブ信号に責任のあるパイプラインはどであるかを確認するためにその記憶位置の装置ラベルULが調べられる。同時に,対応するライトキューも識別される。コミット位置に記憶されたジョブ信号識別ラベルDLを使用することにより,コミットされるジョブの結果を当該ライトキューから検索してデータ記憶39へ書き込むことができる。それに伴って,ジョブのフラッシュ時に,ジョブを処理するパイプライン専用のライトキューを関連する装置ラベルULにより識別することができる。続いて,関連する識別ラベルDLを使用することにより,ライトキュー内の当該エントリが識別されその中の結果が無効とされる。
【0053】
図4の実現において,フラッシュされたジョブの後にコミット順で置かれる全ての投機的ジョブも,好ましくはフラッシュされてライトキュー36内にスペースを作り出す。その理由はフラッシュされたジョブの新しい実行,すなわちもう1つのジョブの実行,にはフラッシュされたジョブよりも多くのスペースをライトキュー内に必要とすることであるためである。したがって,フラッシュされたジョブのジョブキュー内の位置は問題とするパイプラインのJQPレジスタ内のポインターを調べて確認される。次に,フラッシュされたジョブよりも“若い”全ての投機的ジョブを見つけるためにジョブキュー32がトラバースされる。見つけられた各ジョブについて,ジョブに関連する装置ラベルULおよびジョブ信号識別ラベルDLを使用することにより,ジョブを処理するパイプラインを見つけて実行を中断することができ,当該ライトキュー内のフラッシュされたジョブに属するこれらのエントリを無効とすることができる。
【0054】
ラベルをジョブ信号に関連づけ,ジョブキューフィールド内に情報を書き込みジョブ信号に連続的にコミット優先度を割り当てる等のジョブキューを処理する機能は,好ましくは,例えばマイクロコード命令プログラムもしくはアセンブラープログラム等の形のソフトウェアにより制御される。フラッシュを処理するおよびライトキューを制御する等の処理システムの他の機能もソフトウェアで実現することができる。もちろん,前記した機能はハードウェアで実現することもできる。
【0055】
図5は第3の好ましい実施例に従ったジョブ信号キュー,処理装置およびライトキュー構成間の相互関係を示す略図である。ジョブキューおよびライトキュー構成を除けば,図5は図3と同様である。図5では,ジョブキュー32内の記憶位置には一般的にULおよびDL等の識別フィールドはない。替わりにジョブキューポインター(JQP)が各ジョブ信号に関連する唯一の識別子として使用される。ジョブのコミットおよびフラッシュにおいて,ジョブに責任があるのはどのパイプラインであるかを識別するためにジョブキューポインターが探索手順において使用される。ライトキュー内の各エントリはデータ記憶アドレス(ADDR),関連データ(DATA),ジョブキューポインタータグ(JQP)および有効フラグ(V)を含む。コミットにおいて,ジョブの結果をジョブキューポインタータグにより検索することができる。フラッシュにおいて,ジョブの結果をジョブキューポインタータグにより識別して無効とすることができる。
【0056】
しかしながら,好ましくは,ジョブに責任があるのはどのパイプラインであるかをより容易に見つけるために,図5のライトキューには装置ラベルタグ用フィールドが与えられる。
【0057】
処理装置にジョブ信号を割当て,ジョブ信号の追跡を続けコミット優先度を管理するプロトコルがジョブ信号キューおよびその関連する制御機能により実施される観点から本発明を説明してきたが,このプロトコルを実行パイプライン側から管理することもできることをお判り願いたい。
【0058】
“処理装置”という用語は特殊化されたハードウェアに限定はされず,在庫からすぐ入手できる標準マイクロプロセッサ等の他のタイプの処理装置も含まれることをお判り願いたい。標準マイクロプロセッサの場合には,依存性チェックは通常アプリケーションソフトウェア内でリードおよびライト命令に特別なコードを取り付けることにより実現される。好ましくは,フラッシングのサポートはアプリケーションソフトウェア内で実現されオペレーティングシステムもしくは仮想機械により実施される。シングルプロセッサシステム用に書かれたアプリケーションソフトウェアがマイグレートされ標準マイクロプロセッサ環境で再使用される場合には,アプリケーションソフトウェアを再コンパイル等により変換することができる。例えば,依存性チェックコードおよび修正された変数のコピーを記憶してジョブの適切なフラッシュもしくはロールバックを可能とするコードを含む,投機的実行をサポートする適切なコードを付加し,次にソフトウェアを再コンパイルすることにより逐次プログラムされたアプリケーションソフトウェアを自動的に変換することができる。標準マイクロプロセッサのオペレーティングシステムや仮想機械も投機的実行をサポートするように修正することができる。例えば,依存性チェックコードを実行している時に依存性が検出されたら,当該ジョブをフラッシュするオペレーティングシステム/仮想機械に制御を転送することができる。
【0059】
前記した実施例は単なる例にすぎず,本発明はそれに限定されるものではないことをお判り願いたい。ここに開示され特許請求された基本的原理を保有する修正,変更および改良は本発明の範囲および精神に含まれるものとする。
【図面の簡単な説明】
【図1】 本発明に従ってジョブ信号を処理する方法の略フロー図である。
【図2】 本発明に従った処理システムの略図である。
【図3】 第1の好ましい実施例に従ったジョブ信号キュー,処理装置およびライトキュー構成間の相互関係を示す略図である。
【図4】 第2の好ましい実施例に従ったジョブ信号キュー,処理装置およびライトキュー構成間の相互関係を示す略図である。
【図5】 第3の好ましい実施例に従ったジョブ信号キュー,処理装置およびライトキュー構成間の相互関係を示す略図である。

Claims (24)

  1. ジョブ信号を記憶するジョブ信号キュー(32)および前記ジョブ信号キュー内のジョブ信号を並列に処理する多数の処理装置(34A−D)を有する処理システム(10)におけるジョブ信号処理方法であって,各ジョブ信号は,対応するジョブを定義する命令のストリームへのポインターおよび該命令の実行に必要なオペランドを含み,前記処理システムはジョブの投機的実行に適合しており,前記ジョブ信号処理方法は,
    コミット順に従って一時に1ジョブ信号づつ,前記ジョブ信号キュー内のジョブ信号にコミット優先度を連続的に割り当てるステップであり,コミット優先度を有するジョブ信号に対応するジョブは選択された処理装置により非投機的に実行されて該ジョブがコミットされるようにし,一方,コミット優先度を有さないジョブ信号に対応するジョブは投機的に実行され,もしデータ依存性が検出されるならフラッシュされる,ステップと,
    コミット優先度を有するジョブ信号が割り当てられていない少なくとも1つの前記処理装置(34)に対して,コミット優先度を待つ間,
    (1)前記処理装置に第1のジョブ信号を割り当て,対応する第1のジョブを投機的に実行するステップと,
    (2)もう1つのジョブ信号を前記処理装置に割り当て,対応するもう1つのジョブの投機的実行に備えるステップと,
    (3)前記処理装置が前記第1のジョブの実行を完了した時,前記もう1つのジョブの投機的実行を開始するステップと,
    を実行するステップとを含むことを特徴とする前記ジョブ信号処理方法。
  2. 請求項1記載のジョブ信号処理方法であって,さらに,各ジョブ信号に,ジョブ信号に対して一意的な識別子(UL&DL;JQP)を関連づけるステップを含む方法。
  3. 請求項2記載のジョブ信号処理方法であって,さらに,
    投機的に実行されたジョブについて,ジョブの結果を関連する識別子により検索できるように一時的に記憶するステップと,
    コミット優先度を有するジョブ信号について,対応するジョブの一時的に記憶された結果を関連する識別子により検索して,検索した結果のメモリシステム(37)へのライトバックを実施するステップと,
    を含む方法。
  4. 請求項3記載のジョブ信号処理方法であって,さらに,
    投機的ジョブについてコミット優先度を有するジョブとの依存性が検出される時に,前記投機的ジョブの一時的に記憶された結果を関連する識別子により識別するステップと,
    前記識別された結果を無効として,前記投機的ジョブがフラッシュされるステップと,
    を含む方法。
  5. 請求項4記載のジョブ信号処理方法であって,さらに,前記フラッシュされたジョブの後ろに置かれる全ての投機的ジョブをコミット順にフラッシュするステップを含む方法。
  6. 請求項4記載のジョブ信号処理方法であって,さらに,
    フラッシュされたジョブに関連づけられた識別子をクリアするステップと,
    フラッシュされたジョブに対応するジョブ信号を処理装置に再度割り当てて実行するステップと,
    前記再度割り当てたジョブに新しい識別子を関連付けるステップと,
    を含む方法。
  7. 請求項2記載のジョブ信号処理方法であって,前記識別子はジョブ信号キュー内のジョブ信号へのポインター(JQP)である方法。
  8. 請求項2記載のジョブ信号処理方法であって,前記識別子は前記ジョブ信号が割り当てられる処理装置のアイデンティティを表わす装置ラベル(UL)および前記処理装置内のジョブ信号が与えられるアイデンティティを表わすジョブ信号識別ラベル(DL)を含む方法。
  9. 請求項8記載のジョブ信号処理方法であって,さらに,
    投機的に実行した各ジョブについて,ジョブの結果を関連するジョブ信号識別ラベル(DL)によりもしくはジョブ信号識別ラベル(DL)と共に関連する装置ラベル(UL)により検索できるように一時的に記憶するステップと,
    コミット優先度を有するジョブ信号について,対応するジョブの一時的に記憶された結果を関連するジョブ信号識別ラベルによりもしくはジョブ信号識別ラベルと共に関連する装置ラベルにより検索して,検索した結果のメモリシステム(37)へのライトバックを実施するステップと,
    を含む方法。
  10. 請求項8記載のジョブ信号処理方法であって,さらに,フラッシュされている投機的に実行されたたジョブを関連する装置ラベルにより識別された処理装置に再度割り当ててジョブの実行を再開するステップを含む方法。
  11. 処理システム(10)であって,
    ジョブ信号を記憶するジョブ信号キュー(32)と,
    前記ジョブ信号キュー内のジョブ信号を並列に処理する多数の処理装置(34A−D)であって,各ジョブ信号は,対応するジョブを定義する命令のストリームへのポインターおよび該命令の実行に必要なオペランドを含み,前記処理システムはジョブの投機的実行に適合している,前記処理装置と,
    コミット順に従って一時に1ジョブ信号づつ,前記ジョブ信号キュー内のジョブ信号にコミット優先度を連続的に割り当てる手段であり,コミット優先度を有するジョブ信号に対応するジョブは選択された処理装置により非投機的に実行されて該ジョブがコミットされるようにし,一方,コミット優先度を有さないジョブ信号に対応するジョブは投機的に実行され,もしデータ依存性が検出されるならフラッシュされる,前記手段と,
    コミット優先度を有するジョブ信号が割り当てられていない少なくとも1つの前記処理装置(34)に対して次の操作手順:
    前記処理装置に第1のジョブ信号を割り当て,対応する第1のジョブを投機的に実行し,
    もう1つのジョブ信号を前記処理装置に割り当て,対応するもう1つのジョブの投機的実行に備え,
    前記処理装置が前記第1のジョブの実行を完了した時,前記もう1つのジョブの投機的実行を開始する,
    を実行する手段とを含むことを特徴とした前記システム。
  12. 請求項11記載の処理システムであって,さらに,各ジョブ信号にジョブ信号に対して一意的な識別子を関連付ける手段を含む処理システム。
  13. 請求項12記載の処理システムであって,さらに,
    投機的に実行されたジョブについて,ジョブの結果を関連する識別子により検索できるように一時的に記憶する手段(36)と,
    コミット優先度を有するジョブ信号について,対応するジョブの一時的に記憶された結果を関連する識別子により検索して,検索した結果のメモリシステム(37)へのライトバックを実施する手段と,
    を含む処理システム。
  14. 請求項13記載の処理システムであって,さらに,
    コミット優先度を有するジョブとのデータ依存性が検出される時に投機的ジョブを中断する手段と,
    前記中断した投機的ジョブの一時的に記憶された結果を関連する識別子により識別する手段と,
    前記識別した結果を無効として,データ依存性を保持する前記ジョブがフラッシュされる手段と,
    を含む処理システム。
  15. 請求項14記載の処理システムであって,さらに,前記フラッシュしたジョブの後に置かれた全ての投機的ジョブをコミット順でフラッシュする手段を含む処理システム。
  16. 請求項14記載の処理システムであって,さらに,
    フラッシュしたジョブに関連する識別子をクリアする手段と,
    フラッシュしたジョブに対応するジョブ信号を処理装置に再度割り当てて実行する手段(32)と,
    前記再度割り当てたジョブ信号を新しい識別子に関連づける手段と,
    を含む処理システム。
  17. 請求項13もしくは14記載の処理システムであって,前記識別子は前記記憶手段内のジョブ信号へのポインター(JQP)である処理システム。
  18. 請求項12記載の処理システムであって,前記識別子は前記ジョブ信号が割り当てられる処理装置のアイデンティティを表わす装置ラベル(UL)および前記処理装置内のジョブ信号が与えられるアイデンティティを表わすジョブ信号識別ラベル(DL)を含む処理システム。
  19. 請求項18記載の処理システムであって,さらに,
    投機的に実行された各ジョブについて,ジョブの結果を関連するジョブ信号識別ラベルによりもしくはジョブ信号識別ラベルと共に関連する装置ラベルにより検索できるように一時的に記憶する手段(36)と,
    コミット優先度を有するジョブ信号について,対応するジョブの一時的に記憶された結果を関連するジョブ信号識別ラベルによりもしくはジョブ信号識別ラベルと共に関連する装置ラベルにより検索して,検索した結果のメモリシステムへのライトバックを実施する手段と,
    を含む処理システム。
  20. 請求項18記載の処理システムであって,さらに,
    処理装置の投機的に実行された各ジョブについて,ジョブの結果を対応するジョブ信号に関連するジョブ信号識別ラベル(DL)により検索できるように一時的に記憶する,各処理装置に1つずつ専用とされたいくつかのライトキュー(WQ1−WQ4)と,
    コミット優先度を有するジョブ信号について,ジョブ信号に関連する装置ラベル(UL)に基づいてどの処理装置にジョブ信号が割り当てられるかを決定する手段と,
    決定した処理装置に専用のライトキュー(WQ)から対応するジョブの結果を検索する手段と,
    検索した結果のメモリシステム(37)へのライトバックを実施する手段と,
    を含む処理システム。
  21. 処理装置に割り当てられたジョブ信号の並列処理のための多数の処理装置(34A−D)を有する処理システム(10)のための,物理的メモリで実現されたジョブ信号キュー(32)であって,各ジョブ信号は,対応するジョブを定義する命令のストリームへのポインターおよび該命令の実行に必要なオペランドを含み,前記処理システムは対応するジョブの投機的実行に適合しており,ジョブ信号は連続的にコミット優先度を割り当てられ,コミット優先度を有するジョブ信号に対応するジョブは選択された処理装置による非投機的実行が可能にされて該ジョブがコミットされるようにし,一方,コミット優先度を有さないジョブ信号に対応するジョブは投機的に実行され,もしデータ依存性が検出されるならフラッシュされ,前記ジョブ信号キューは多くの記憶位置を有しており,各記憶位置は,
    ジョブ信号を記憶する信号フィールド(SIGNAL)と,
    前記ジョブ信号が割り当てられる処理装置のアイデンティティを表わす第1のラベルを記憶する第1の識別フィールド(UL)と,
    前記第1のラベルにより識別される処理装置内でジョブ信号が与えられるアイデンティティを表わす第2のラベルを記憶する第2の識別フィールド(DL)であり,コミット優先度を有するジョブ信号が割り当てられるのを待っている処理装置において,それぞれの第2ラベルにより識別された,複数のジョブの投機的実行を可能にする,前記第2の識別フィールドと,
    を含むことを特徴としたジョブ信号キュー。
  22. 請求項21記載のジョブ信号キューであって,前記第1の識別フィールド(UL)および前記第2の識別フィールド(DL)は単一のフィールド(UL&DL)へ連接されるジョブ信号キュー。
  23. 請求項21記載のジョブ信号キューであって,各記憶位置はさらに前記信号フィールド内に記憶されたジョブ信号に対応するジョブが完了まで投機的に実行されているかどうかを示すフラグを記憶するフィールド(F)を含むジョブ信号キュー。
  24. 請求項21記載のジョブ信号キューであって,各記憶位置はさらに,
    信号フィールドが有効なジョブ信号を含むかどうかを示すフラグを記憶する有効フィールド(V)と,
    前記信号フィールド内に記憶されたジョブ信号が処理装置に割り当てられているかどうかを示すフラグを記憶するフィールド(T)と,
    を含むジョブ信号キュー。
JP2000582883A 1998-11-16 1999-11-12 ジョブ信号を処理する多数の処理ユニットを有する処理システムにおけるジョブ信号処理方法および処理システム Expired - Fee Related JP4608099B2 (ja)

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
SE9901145-4 1999-03-29
SE9803901-9 1999-03-29
SE9901145A SE9901145D0 (sv) 1998-11-16 1999-03-29 A processing system and method
PCT/SE1999/002061 WO2000029940A1 (en) 1998-11-16 1999-11-12 Multiple job signals per processing unit in a multiprocessing system

Publications (3)

Publication Number Publication Date
JP2002530735A JP2002530735A (ja) 2002-09-17
JP2002530735A5 JP2002530735A5 (ja) 2010-10-14
JP4608099B2 true JP4608099B2 (ja) 2011-01-05

Family

ID=26663434

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000582883A Expired - Fee Related JP4608099B2 (ja) 1998-11-16 1999-11-12 ジョブ信号を処理する多数の処理ユニットを有する処理システムにおけるジョブ信号処理方法および処理システム

Country Status (9)

Country Link
US (1) US6714961B1 (ja)
EP (1) EP1131701B1 (ja)
JP (1) JP4608099B2 (ja)
AU (1) AU1437000A (ja)
BR (1) BR9915383A (ja)
CA (1) CA2350924C (ja)
DE (1) DE69941998D1 (ja)
SE (1) SE9901145D0 (ja)
WO (1) WO2000029940A1 (ja)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7152232B2 (en) * 2001-07-16 2006-12-19 Sun Microsystems, Inc. Hardware message buffer for supporting inter-processor communication
US8015303B2 (en) * 2002-08-02 2011-09-06 Astute Networks Inc. High data rate stateful protocol processing
US7814218B1 (en) 2002-10-17 2010-10-12 Astute Networks, Inc. Multi-protocol and multi-format stateful processing
US7596621B1 (en) * 2002-10-17 2009-09-29 Astute Networks, Inc. System and method for managing shared state using multiple programmed processors
US8151278B1 (en) 2002-10-17 2012-04-03 Astute Networks, Inc. System and method for timer management in a stateful protocol processing system
DE102006006582B4 (de) * 2006-02-13 2009-06-10 Jenoptik Laser, Optik, Systeme Gmbh Laser und Verfahren zur Erzeugung gepulster Laserstrahlung
US8156493B2 (en) * 2006-04-12 2012-04-10 The Mathworks, Inc. Exception handling in a concurrent computing process
KR20120017294A (ko) 2010-08-18 2012-02-28 삼성전자주식회사 어플리케이션을 효율적으로 처리하는 스케쥴링 시스템 및 스케쥴링 방법
US9329915B1 (en) * 2012-05-08 2016-05-03 Amazon Technologies, Inc. System and method for testing in a production environment
KR101476789B1 (ko) * 2013-05-06 2014-12-26 (주)넥셀 프로세싱 장치 및 방법
US9455887B1 (en) 2013-08-14 2016-09-27 Amazon Technologies, Inc. Distributed performance evaluation framework
CN104516773B (zh) * 2013-09-29 2018-04-20 国际商业机器公司 用于物理机的数据分配方法和数据分配装置
US10372492B2 (en) 2013-12-11 2019-08-06 Dropbox, Inc. Job-processing systems and methods with inferred dependencies between jobs
US9465653B2 (en) * 2013-12-11 2016-10-11 Dropbox, Inc. Automated invalidation of job output data in a job-processing system
US10133771B2 (en) 2015-05-13 2018-11-20 International Business Machines Corporation Opportunistic wait-triggered elastic commit

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4466061A (en) 1982-06-08 1984-08-14 Burroughs Corporation Concurrent processing elements for using dependency free code
EP0230721A3 (en) 1986-01-22 1988-04-27 Mts Systems Corporation Multiprocessor control system
SE454921B (sv) 1986-10-03 1988-06-06 Ellemtel Utvecklings Ab Sett och anordning for att i en pa forhand avgjord ordningsfoljd exekvera tva instuktionssekvenser
US5781753A (en) 1989-02-24 1998-07-14 Advanced Micro Devices, Inc. Semi-autonomous RISC pipelines for overlapped execution of RISC-like instructions within the multiple superscalar execution units of a processor having distributed pipeline control for speculative and out-of-order execution of complex instructions
US5072364A (en) * 1989-05-24 1991-12-10 Tandem Computers Incorporated Method and apparatus for recovering from an incorrect branch prediction in a processor that executes a family of instructions in parallel
US5487156A (en) * 1989-12-15 1996-01-23 Popescu; Valeri Processor architecture having independently fetching issuing and updating operations of instructions which are sequentially assigned and stored in order fetched
JPH03263164A (ja) 1990-03-13 1991-11-22 Kawasaki Steel Corp データ並列処理方式
JP2957223B2 (ja) 1990-03-20 1999-10-04 富士通株式会社 コールプロセッサの負荷分散制御方式
JPH04100449A (ja) 1990-08-20 1992-04-02 Toshiba Corp Atm通信システム
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
US5430850A (en) 1991-07-22 1995-07-04 Massachusetts Institute Of Technology Data processing system with synchronization coprocessor for multiple threads
US5511172A (en) * 1991-11-15 1996-04-23 Matsushita Electric Co. Ind, Ltd. Speculative execution processor
US5195181A (en) 1992-01-10 1993-03-16 Digital Equipment Corporation Message processing system having separate message receiving and transmitting processors with message processing being distributed between the separate processors
JP3263164B2 (ja) 1992-01-24 2002-03-04 三井武田ケミカル株式会社 塗装性に優れた自動車外装部品の成形品用不飽和ポリエステル樹脂組成物及び成形材料、並びに塗装性に優れた自動車外装部品の成形品
JPH05274279A (ja) 1992-03-30 1993-10-22 Hitachi Ltd 並列処理装置及び方法
US5379428A (en) 1993-02-01 1995-01-03 Belobox Systems, Inc. Hardware process scheduler and processor interrupter for parallel processing computer systems
JP2655466B2 (ja) 1993-03-18 1997-09-17 日本電気株式会社 パケット交換装置
US5740393A (en) 1993-10-15 1998-04-14 Intel Corporation Instruction pointer limits in processor that performs speculative out-of-order instruction execution
US5787300A (en) 1993-11-10 1998-07-28 Oracle Corporation Method and apparatus for interprocess communications in a database environment
EP0661625B1 (en) 1994-01-03 1999-09-08 Intel Corporation Method and apparatus for implementing a four stage branch resolution system in a computer processor
US5832262A (en) 1995-09-14 1998-11-03 Lockheed Martin Corporation Realtime hardware scheduler utilizing processor message passing and queue management cells
US5848257A (en) 1996-09-20 1998-12-08 Bay Networks, Inc. Method and apparatus for multitasking in a computer system
JPH10143382A (ja) 1996-11-08 1998-05-29 Hitachi Ltd 共有メモリ型マルチプロセッサシステムの資源管理方法
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

Also Published As

Publication number Publication date
DE69941998D1 (de) 2010-04-01
WO2000029940A1 (en) 2000-05-25
EP1131701A1 (en) 2001-09-12
EP1131701B1 (en) 2010-02-03
CA2350924C (en) 2011-05-10
AU1437000A (en) 2000-06-05
US6714961B1 (en) 2004-03-30
BR9915383A (pt) 2001-08-07
CA2350924A1 (en) 2000-05-25
SE9901145D0 (sv) 1999-03-29
JP2002530735A (ja) 2002-09-17

Similar Documents

Publication Publication Date Title
US5524263A (en) Method and apparatus for partial and full stall handling in allocation
KR101025354B1 (ko) 가상 트랜잭션 메모리를 위한 글로벌 오버플로우 방법
US5944815A (en) Microprocessor configured to execute a prefetch instruction including an access count field defining an expected number of access
US9483267B2 (en) Exploiting an architected last-use operand indication in a system operand resource pool
US7290261B2 (en) Method and logical apparatus for rename register reallocation in a simultaneous multi-threaded (SMT) processor
US7181598B2 (en) Prediction of load-store dependencies in a processing agent
US5778245A (en) Method and apparatus for dynamic allocation of multiple buffers in a processor
US10078515B2 (en) Tracking operand liveness information in a computer system and performing function based on the liveness information
US8219787B2 (en) Early release of resources by proceeding to retire store operations from exception reporting stage but keeping in load/store queue
US7472258B2 (en) Dynamically shared group completion table between multiple threads
JP4608099B2 (ja) ジョブ信号を処理する多数の処理ユニットを有する処理システムにおけるジョブ信号処理方法および処理システム
US7093106B2 (en) Register rename array with individual thread bits set upon allocation and cleared upon instruction completion
JPH08147165A (ja) マルチコンテキストをサポートするプロセッサおよび処理方法
US6950928B2 (en) Apparatus, method and system for fast register renaming using virtual renaming, including by using rename information or a renamed register
JP2002530735A5 (ja)
US7203821B2 (en) Method and apparatus to handle window management instructions without post serialization in an out of order multi-issue processor supporting multiple strands
WO2001084304A2 (en) Active address content addressable memory
US20060149940A1 (en) Implementation to save and restore processor registers on a context switch
KR100263013B1 (ko) 슈퍼 스칼라 컴퓨터 시스템의 리네임 레지스터 와 구조화된레지스터를 관리하는 방법 및 컴퓨터 시스템
CN110402434B (zh) 缓存未命中线程平衡
JP2001092657A (ja) 中央演算装置、コンパイル方法、及びコンパイルプログラムを記録した記録媒体
JP4608100B2 (ja) 多重処理システムにおける改良結果処理方法
JP3518510B2 (ja) リオーダバッファの管理方法及びプロセッサ
JP3752493B2 (ja) レジスタ・リネーミング機能を有するプロセッサ
JP2002530736A5 (ja)

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20061026

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

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

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

LAPS Cancellation because of no payment of annual fees