JP2002530734A - ジョブ並列プロセッサ - Google Patents

ジョブ並列プロセッサ

Info

Publication number
JP2002530734A
JP2002530734A JP2000582882A JP2000582882A JP2002530734A JP 2002530734 A JP2002530734 A JP 2002530734A JP 2000582882 A JP2000582882 A JP 2000582882A JP 2000582882 A JP2000582882 A JP 2000582882A JP 2002530734 A JP2002530734 A JP 2002530734A
Authority
JP
Japan
Prior art keywords
job
processor
queue
jobs
signal
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2000582882A
Other languages
English (en)
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 JP2002530734A publication Critical patent/JP2002530734A/ja
Pending legal-status Critical Current

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/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3838Dependency mechanisms, e.g. register scoreboarding
    • 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/3854Instruction completion, e.g. retiring, committing or graduating
    • 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/3854Instruction completion, e.g. retiring, committing or graduating
    • G06F9/3858Result writeback, i.e. updating the architectural state or memory
    • 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
    • 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/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • G06F9/526Mutual exclusion algorithms
    • G06F9/528Mutual exclusion algorithms by using speculative mechanisms

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)
  • Exchange Systems With Centralized Control (AREA)

Abstract

(57)【要約】 本発明は、概して、サービス・ネットワークに接続されている複数のユーザに種々のサービスを提供するサービス・ネットワーク用に開発されたプロセッサに関する。プロセッサ(30、50)は、前記ネットワークのユーザにより要求されたほぼ個別的な複数のサービスの一部を形成する複数のジョブに対応する複数のジョブ信号をストアする多数のストレージ位置を有するジョブ・キュー(52)と、前記ジョブ・キュー(52)の異なる複数のストレージ位置からの複数のジョブ信号を個別的に処理して対応する複数のジョブを並列に実行する複数の並列処理ユニット(54)とを備えている。多数のジョブが推論的に実行されるので、実行された複数のジョブ間の可能依存性をチェックするユニット(56)が前記プロセッサに組み込まれる。推論的なジョブについて依存性が検出されたときは、そのジョブをフラッシュする。サービス・ネットワークのユーザに対して迅速かつ適正なサービスを保証するために、フラッシュしたジョブがジョブ・キューから直接、速やかに再起動される。

Description

【発明の詳細な説明】
【0001】 (発明の技術分野) 本発明は、処理システムに関し、特に電気通信ネットワークのようなサービス
・ネットワーク用のプロセッサに関する。
【0002】 (発明の背景) 改良されたサービス・ネットワークに対する絶え間なく増大する要求により、
容量を増加し、かつ機能を付加したプロセッサが必要になっている。例えば、電
気通信ネットワークでは、下記いくつかの理由のためにますます能力を増大する
ことが要求されている。 −呼数及び呼の設定が増加している。 −移動共通及びISDNのような新しい形式の呼の設定が通常の呼の設定より
も多くの処理能力を必要としている。 −ネットワークにおいて複数の処理リソースがますます散在することになり、
プロセッサ間通信の増加、従って更なる処理能力を必要としている。 −インテリジェント・ネットワーク・サービス及びISDNサービスのような
追加的なサービスの数が増加している。
【0003】 通常、サービス・ネットワークにおいてこれらプロセッサの処理能力を増加さ
せる従来のアプローチは、プロセッサ速度、更に高速のメモリ及び命令パイプラ
インを増加させることによりますます高いクロック周波数に依存している。
【0004】 (関連技術) ソヒ(Sohi)、ブリーチ(Breach)及びビジャイクマル(Vija
ykumar)によるマルチスカラー・プロセッサの論文(イタリア、サンタ・
マルゲリータ・リーグレー(Santa Margherita,Ligure
)におけるコンピュータ・アーキテクチャーに関する第22回年国際シンポジュ
ウム、1995)は、推論的な(speculative)タスクの実行により
通常のハイ・レベル・プログラムに関して命令レベルの並列性を得るために使用
される、いわゆるマルチスカラー・プロセッサを説明している。いくつかの処理
ユニット有するマルチスカラー・プロセッサでは、多数のタスクが複数の処理ユ
ニット上で並列に実行可能であり、1サイクル当たり多数命令の総合実行率に帰
結する。
【0005】 (発明の概要) 本発明の概要的な目的は、ジョブ・レベルで並列性を促進するジョブ並列プロ
セッサとして動作するイベント駆動の処理システムを提供することである。
【0006】 本発明の他の目的は、サービス・ネットワークに接続された複数のユーザによ
り要求されたほぼ個別的な複数のサービスの一部を形成する複数のジョブを並列
に実行するサービス・ネットワーク・プロセッサを提供することである。
【0007】 本発明の他の目的は、並列に実行されるジョブ間において可能な依存性をチェ
ックし、かつ検出された依存性のためにフラッシュされてしまった複数のジョブ
の効率的な再起動を可能にする手段を提供することにある。
【0008】 本発明の更に他の目的は、複数のジョブのスケジューリングと、複数のジョブ
の並列実行との間で簡単かつ効率的なインターフェースを有する処理システムを
提供することである。
【0009】 これらの目的及び他の目的は、添付する特許請求の範囲により定義したように
本発明により達成される。
【0010】 概要的な本発明の概念によれば、ジョブ・レベルの並列性が複数ジョブの推論
的な実行により促進される。
【0011】 本発明によるプロセッサ及び処理システムは、好ましくは、複数のサービス・
ネットワーク、例えばネットワークに接続された複数のユーザがそのネットワー
クから種々のサービスを要求する電気通信ネットワーク用に開発され、かつカス
タマイズされる。これらのサービス要求は、典型的には、処理システム内の実際
の処理に対して非同期である複数の外部イベントとみなされる。この意味で、処
理システムは、各外部イベントが処理システムにより実行すべき1以上のジョブ
を開始させるイベントに基づいている即ちイベント駆動(event−driv
en)である。
【0012】 本発明の第1の特徴によれば、プロセッサは、複数のジョブに対応した複数の
ジョブ信号を記憶するジョブ・キューであって、これらのジョブ信号がサービス
・ネットワークのユーザにより要求されたほぼ個別的な複数のサービスの一部を
形成しているジョブ・キューと、前記ジョブ・キューから複数のジョブ信号を個
別的にフェッチし、かつ処理して異なる複数のジョブを並列に実行する多数の並
列処理ユニットとを包含する。多数の並列ジョブが推論的に実行されるので、前
記実行ジョブ間における可能な依存性についてチェックするユニットが組み込ま
れる。推論的に実行されるジョブについて依存性が検出されると、そのジョブは
フラッシュされる。サービス・ネットワークのユーザに対して迅速かつ適切なサ
ービスを保証するために、フラッシュされた複数のジョブは、ジョブ・キューか
ら直接、速やかに再起動される。
【0013】 本発明の第2の特徴によれば、スケジューリング専用プロセッサを設けること
により、複数のスケジューリング・ジョブの処理が複数ジョブの並列実行から切
り離される。従って、本発明の第2の特徴による処理システムは、スケジューリ
ング・ユニットを含む第1のプロセッサと、本発明の第1の特徴によるジョブ並
列プロセッサの形式による第2のプロセッサとを備えている。この解決方法は、
並列ジョブ実行とスケジューリング処理との間の簡単かつ効率的なインターフェ
ースを提供する。ジョブのスケジューリングがスケジュール処理専用のプロセッ
サにより実行されるので、スケジューリングを実行すべきは、並列処理ユニット
のうちのいずれかというトラッキングを保持する必要はもはやない。その上、ジ
ョブ並列プロセッサ及びスケジューリング・プロセッサは、並列に動作すること
ができ、従って処理システムにおけるジョブの総合的な処理をより早く実行させ
る。
【0014】 本発明は、以下の効果をもたらす。 −処理能力の増加。 −ジョブ・キューから直接的な、依存性フラッシュ・ジョブの迅速かつ効率的
な再起動。 −ジョブ実行とスケジューリングとの間の簡単かつ効率的なインターフェース
【0015】 本発明により得られる他の効果は、本発明の実施例の下記説明を読むことによ
り、理解される。
【0016】 本発明は、その更なる目的及び効果と共に、添付する図面と共に行う下記説明
を参照することにより、最も良く理解される。
【0017】 (発明の実施例の詳細な説明) 図の全般にわたり、対応する又は同一の要素に対して同一の参照文字を使用す
る。
【0018】 図1は、例示的なサービス・ネットワークの概要図である。図1の例では、サ
ービス・ネットワーク10が電気通信ネットワークである。サービス・ネットワ
ーク10は、PSTN(Public Switched Telephone
Network:公衆電話交換網)、PLMN(Public Land M
obile Network:公衆地上移動電話網)ISDN(Integra
ted Services Digital Network:総合ディジタル
通信網)及びATM(Asynchronous Transfer Mode
:非同期転送モード)ネットワークのように、異なるベアラ・サービス・ネット
ワークをサポートする。サービス・ネットワーク10は、基本的には、トランク
・グループに、通常、グループ化された物理リンクにより相互接続された多数の
スイッチング/ルーティング・ノード12−1〜12−6を備えている。スイッ
チング/ルーティング・ノード12−1〜12−4は、端末をアクセスする電話
14−1〜14−4のように、複数の端末をアクセスするアクセス・ポイントを
有し、またコンピュータ16−1〜16−4は、市内交換(図示なし)を介して
接続される。スイッチング・ノード12−5は、MSC(Mobile Swi
tching Center:移動通信交換局)18に接続される。MSC18
は、2基地局コントローラ(Base Station Controller
:BSC)20−1及び20−2と、ホーム・ロケーション・レジスタ(Hom
e Location Register:HLR)ノード22に接続される。
第1のBSC20−1は、多数の基地局24−1及び24−2に接続されて1以
上の移動ユニット26−1及び26−2と通信する。同様に、第2のBSC20
−2は、多数の基地局24−3及び24−4に接続されて1以上の移動ユニット
26−3と通信する。スイッチング・ノード12−6は、データ・ベース・シス
テム(Data Base System:DBS)を備えているホスト・コン
ピュータ28に接続される。コンピュータ16−1〜16−4のようなネットワ
ーク10に接続されたユーザ端末は、ホスト・コンピュータ28内のデータ・ベ
ース・システムからのデータ・ベース・サービスを要求するように動作可能であ
る。ジャバ(Java)サーバのようなサーバは、スイッチング/ルーティング
・ノードに接続可能とされる。更に、ビジネス・ネットワーク(図示なし)のよ
うなプライベート・ネットワークは、図1のサービス・ネットワークに接続され
てもよい。
【0019】 図1のサービス・ネットワークは、ネットワークに接続されたユーザに種々の
サービスを提供する。このようなサービスの例は、PSTN及びPLMNにおけ
る通常の電話の呼、メッセージ・サービス、LAN相互接続、インテリジェント
・ネットワーク(IN:Intelligent Network)サービス、
ISDNサービス、CTI(Computer Telephony Inte
gration)サービス、ビデオ会議、ファイル転送、いわゆるインターネッ
トに対するアクセス、ページング・サービス、ビデオ・オン・デマンド等である
【0020】 ネットワーク10における各スイッチング・ノード12は、通常、サービス・
要求を処理する処理システム(図1には図示されていない)を備えている。この
ような処理システムは、通常、ネットワークに接続されたサーバに設けられると
共に、MSC18、BSC20−1及び20−2、HLRノード22並びにネッ
トワーク10のホスト・コンピュータ28のそれぞれに設けられる。例えば、呼
の設定は、処理システムがシーケンスのジョブを実行することを必要とする。こ
のようなシーケンスのジョブは、プロセッサ・レベル上で呼の設定サービスを定
義する。各呼の設定サービスは、同様の連続し、プロセッサにより実行されるべ
きジョブを必要とする。実際に、サービス・ネットワークの複数のユーザにより
要求される各サービスは、特殊なシーケンスのジョブを必要とする。ネットワー
クの複数のユーザによるサービス要求は、複数のイベントとみなされてもよく、
これらのイベントは、複数のジョブ信号により表される。この意味で、処理シス
テムにおける処理は、イベント駆動であり、複数のイベントが要求された複数の
サービスに対応する複数のジョブを自動的かつダイナミックに定義する。
【0021】 図2は、本発明による処理システムを例示する概要図である。処理システム3
0は、図1に示すように、サービス・ネットワークで使用するようにカスタマイ
ズされている。処理システム30は、階層処理システムであり、基本的には多数
の地域プロセッサ32−1〜32−3(RP:regional proces
sor)、スケジューリング・ユニット40及び命令処理ユニット(IPU:i
nstruction processing unit)50を備えている。
【0022】 スケジューリング・ユニット40は、1以上の地域プロセッサ32−1〜32
−3から、又はサービス・ネットワーク内の複数の周辺装置及び他の複数のプロ
セッサから、複数のジョブに対応する複数のジョブ信号を入力し、これらのジョ
ブは、サービス・ネットワークの複数のユーザにより要求された複数のサービス
の一部を形成している。サービス・ネットワークにおいて要求されるサービスは
膨大な数であるために、ジョブの依存性が発生しても、サービス・ネットワーク
内の処理システム30に入力される複数のジョブは、実質的に独立している。
【0023】 この特定の実現例において、スケジューリング・ユニット40は、入出力ユニ
ット42及び多数のジョブ・バッファ44を備えている。入出力ユニット42は
、RP32−1〜32−3及び他の周辺装置からの信号を受け取って、ジョブ・
バッファ44に分配する。単なる1ジョブ・バッファの代わりに、いくつかのジ
ョブ・バッファを使用することにより、優先順位を処理することが可能となり、
異なる優先順位レベルを有する複数のジョブ信号が異なるバッファに記憶される
。新しいジョブ信号がスケジューリング・ユニット40の到着すると、これを解
析して、ジョブ信号を配置することになるジョブ・バッファを識別する。次に、
ジョブ信号は、選択したジョブ・バッファに配置され、そこで命令処理ユニット
50に転送されるのを待機する。ジョブ・バッファ44は、通常、ファースト・
イン・ファースト・アウト・キューとして編成されており、これらのジョブ・バ
ッファは、優先順位順にサービスされる。IPU50が新しいジョブ信号を受け
取り可能なときは、スケジューリング・ユニット40は、ジョブ・バッファ44
から最高優先順位の信号を取り込み、これをIPU50に送出する。
【0024】 命令処理ユニット(IPU)50は、ジョブ信号キュー(JQ)52と、複数
の処理ユニット54と、データの依存性を処理する組み合わせ依存性チェック・
ユニット及びメモリ・システム57と、プログラム・ストア58及びデータ・ス
トア59に分割されるメモリ・システム57とを備えたプロセッサを形成してい
る。処理ユニット54は、好ましくは、実行パイプライン形式である。従って、
以下では、処理ユニットを実行パイプラインと呼び、またジョブ信号キューを単
にジョブ・キューと呼ぶことにする。
【0025】 スケジューリング・ユニット40からの複数のジョブ信号は、ジョブ・キュー
52にバッファ(記憶)され、これは、複数のジョブ信号を記憶するために多数
の記憶位置を有する。各ジョブ信号は、追加的な情報と共にジョブ・キュー52
内のそれぞれの記憶位置に記憶される。ジョブ・キュー52にバッファされた複
数のジョブ信号は、概して複数のジョブに対応しており、これらのジョブは、ほ
ぼ個別的な複数のネットワーク・サービスの一部を形成している。一般的に、各
ジョブ信号は、ヘッダ及び本体(body)を備えている。ヘッダは、管理情報
に加えて、通常、プログラム・ストア58内のソフトウェア・コードに対するポ
インタを含み、またジョブ信号の本体は、対応するジョブの実行に必要な複数の
入力オぺランドを含む。この意味で、ジョブ信号は、自蔵式即ち自律的であって
、対応するジョブを完全に確定する。ソフトウェア・コードは、好ましくは、1
以上のテーブル・ルックアップにより指示される。これは、一般的には、ポイン
タがルックアップ・テーブルのエントリを実際に指示し、これが更にソフトウェ
ア・コードを指示することを意味する。本体は、サービス・ネットワーク内の地
域プロセッサ即ち他のプロセッサからの信号メッセージであってもよい。ジョブ
は、信号ヘッダにより指定された命令ストリームとして定義されてもよく、また
ジョブは、ジョブ信号を受け取ることにより開始し、そしてエンド・ジョブ・ル
ーチンのコールにより終了する。しかしながら、ジョブ信号自体は、何らの命令
も含まず、プログラム・ストア58に記憶したプログラム・コード内の命令に対
するポインタ、及び命令の実行に必要な複数のオペランドだけであることに注意
すべきである。
【0026】 処理ユニット54は、ジョブ・キュー52内の異なる複数の記憶位置から複数
のジョブ信号を「フェッチ」して、図2に点線によって示すように、ジョブ・キ
ュー52内の複数の記憶位置から処理ユニット54に、異なる複数のジョブを個
別的に並列に実行する。実行パイプラインが開始可能であり、新しいジョブを実
行すると、ジョブ・キュー52を調べて未割り付けジョブ信号を見付け、かつこ
の未割り付けジョブ信号を実行パイプラインに付与する。このジョブ信号は、ジ
ョブ・キューから実行パイプラインにコピーされ、そこで対応するジョブを実行
するように処理される。この特定的な実施例において、4本のパイプラインが異
なる4ジョブを互いに個別的に、並列に実行する。並列にジョブを実行中の全期
間で、ジョブ・キュー52内の1ジョブ信号のみがコミット位置にあり、ジョブ
信号を付与した実行パイプラインがメモリ・システム57に対する書き戻し及び
コミット信号の送出を実行可能にする。他の実行パイプライン内の複数のジョブ
は、推論的に実行され、依存性チェック・ユニット56によりデータ依存性が検
出されれば、フラッシュ可能にされる。
【0027】 プロトコルにより情報フローを管理するシステムの概要的な必要条件は、一定
の関連イベントを受け取った順序により処理しなければならないことである。こ
れは、システムの不変性であって、システムをどのように実施するかは問題でな
い。ジョブ間のコミット順序は、通常、処理コアに到着することにより明確にさ
れ、概して変更されることはない。しかしながら、異なる優先順位レベルの複数
のジョブ信号を処理する処理システムでは、低い優先順位レベルジョブ信号の前
に、高い優先順位のレベルのジョブ信号を配置することが有用と思われる。一般
的に、同一の優先順位のレベル内の複数のジョブは、それらが到着したと同一の
順序によりコミットされる。
【0028】 処理ユニット54は、概して、同期方式でジョブ・キューから複数のジョブ信
号をフェッチすることでも、同期してパイプライン内の複数のジョブを並列に実
行することでもないことを理解すべきである。しかしながら、パイプラインによ
る複数のジョブのフェッチは、依然として、ほぼ並列とみなし得る。
【0029】 依存性チェック・ユニット56は、概して、処理ユニット54に関連された1
以上の読み出しバッファを使用することにより実施される。パイプラインがデー
タ・ストア59からデータをフェッチするときは、読み出し1アドレス又は複数
アドレスが読み出しバッファ(又は複数の読み出しバッファ)にバッファされる
。パイプラインがコミット優先順位によりデータ・ストア59に書き込むときは
、データ・ストアに対する書き込みアドレスを読み出しバッファ(又は複数の読
み出しバッファ)と比較して、ジョブ間にデータ依存性があるか否かを調べる。
続いて、推論的に実行されるジョブにより読み出されたデータがコミットしたジ
ョブにより変更されているときは、データ依存性が存在し、推論的に実行される
ジョブをフラッシュし、かつ再起動する必要がある。フラッシュしたジョブに対
応するジョブ信号は、依然としてジョブ・キューにバッファされているので、ジ
ョブ・キュー52から直接、フラッシュしたジョブを再起動することができる。
コミットされたジョブに対応する複数のジョブ信号は、ジョブ・キュー52から
削除され、これによってスケジューリング・ユニット40からの新しいジョブ信
号をジョブ・キュー52にバッファ可能にする。
【0030】 推論的に実行されるジョブにより提案されたデータ・ストア変更は、一時書き
込みキュー56に記録(log)されるが、しかしそのジョブがコミット優先順
位を獲得するまでは、データ・ストア59に書き込まれない。ジョブがコミット
優先順位を獲得すると、問題のジョブに属する一時書き込みキュー56内のエン
トリをデータ・ストア59に直ちに書き込む。コミット優先順位を有するジョブ
により発生した複数のジョブ信号は、スケジューリング・ユニット40に転送さ
れ、これらのジョブ信号は、複数のジョブ・バッファに案内されて後の処理を待
機するか、又は入出力ユニット42に送出されてサービス・ネットワーク内の領
域プロセッサ又は他の処理システムに分配される。
【0031】 特殊形式の依存性チェック・ユニット及び一時書き込みキューの一例は、国際
特許出願WO 88/02513に開示されている。国際特許出願WO 88/
02513は、概して、予め決定した順序により2命令シーケンスを実行する方
法及び装置を説明している。両命令シーケンスは、決定した順序を考慮して開始
することを必要とすることなく、並列に実行される。予め定めた順序を確保する
ために、第1のシーケンスの実行中に、第2のシーケンスに関連した書き込みの
ために得たデータをメイン・メモリに転送することを阻止する必要がある。第1
のシーケンス上で第2のシーケンスの依存性は、依存性チェック・ユニットによ
り監視され、また予め定めた順序は、補助メモリ及び比較回路を含む中間ストレ
ージ・ユニットにより確保される。
【0032】 国際特許出願WO 88/02513は、ジョブ信号に全くかかわるものでは
ない。それよりも、命令シーケンスを直接考慮している。サービス・ネットワー
クの複数のユーザにより要求された複数のサービスの一部を形成する複数のジョ
ブに対応したジョブ信号をバッファするジョブ・キューについての根拠はなく、
このようなジョブ・シーケンスの示唆もない。従って、実行パイプラインとこの
発明により提案されたジョブ・キューとの間の相互作用は、国際特許出願WO
88/02513に開示されていない。特許出願WO 88/02513では、
第2の命令シーケンスが依存性の検出時に再起動されることを述べている。しか
しながら、シーケンスをどのように再起動するのかいついては、何も開示してい
ない。
【0033】 メモリ・システム57は、命令レベル・キャッシュ・メモリ及びデータ・レベ
ル・キャッシュ・メモリ(図示なし)の両者をうまく使用して(予めメイン・メ
モリからコピーした)キャッシュ・メモリに現存する命令及びデータに対する、
比較的高速のアクセスを可能にする。キャッシュ・メモリの使用は、メイン・メ
モリをアクセスする必要性を最小化する。
【0034】 スケジューリング・ユニット40及びIPU50は、同一回路基板に構築され
、単一処理ユニットにより実施されてもよい。しかしながら、スケジューリング
処理は、好ましくは、スケジューリング用の専用プロセッサを設けることにより
、複数のジョブの並列実行から切り離される。スケジューリング・ユニット40
は、命令処理ユニット50に関連する第2のプロセッサから切り離される。これ
は、並列ジョブ実行とスケジューリング・プロセッサとの間の簡単かつ明確なイ
ンターフェースを与える。ジョブのスケジューリングに専用される第1のプロセ
ッサにおいて完全なスケジューリング処理が実行されるので、どの実行パイプに
おいてスケジューリングを実行すべきかについてトラッキングを保持する必要は
ない。
【0035】 特殊形式のスケジューリング・ユニット例は、エリクソンAXEディジタル・
スイッチング・システム(Ericsson AXE Digital Swi
tching Systems)における信号処理ユニット(SPU)である。
本発明により使用されるスケジューリング・ユニット40において処理する割り
込みは、都合よいことに、スケジューリング・ユニット40からIPU50に高
い優先順位レベルのジョブ信号を送出すのであれば、IPU50にいて複数のジ
ョブの割り込みを開始させることができる。必須ではないが好ましくは、IPU
50におけるジョブ・キュー52は、一度に1優先順位レベルのみの複数のジョ
ブ信号を含む。スケジューリング・ユニット40からの高い優先順位レベルの信
号は、IPUにおいて低いレベルのジョブに割り込みをすることになる。スケジ
ューリング・ユニット40は、IPU50に割り込み要求を送出することにより
割り込みを開始し、そこでIPU50が現在の実行ジョブに割り込みをする。
【0036】 図3は、図2の命令処理ユニット50の形式にあるプロセッサの関連部分の概
要図である。このプロセッサは、ジョブ・キュー52、多数の実行パイプライン
54−1〜54−4、組合せ依存性チェック・ユニット、及び一時書き込みキュ
ー56、プログラム・ストア58、並びにデータ・ストア59を備えている。
【0037】 ジョブ・キュー52は、適当な制御ソフトウェア又はハードウェアとの組み合
わせにより、実行パイプライン54に複数のジョブ信号を付与し、かつコミット
したジョブ信号を削除するために必要なプロトコルを管理する。ジョブ・キュー
52は、好ましくは、コミット優先順位も管理する。
【0038】 ジョブ・キュー52は、通常、多数のストレージ位置を有する通常のキューで
ある。1例として、ジョブ・キューは、メモリの所定部分を多数のストレージ位
置に論理的に分割することにより、共通メモリに実施可能であり、各ストレージ
位置は、それ自身固有のメモリ・アドレスを有する。一般的に、ジョブ・キュー
52内の各ストレージ位置は、例えば下記の表1に説明しているように多数のフ
ィールドに分割される。
【0039】
【表1】
【0040】 フィールド「有効(Valid)」は、ストレージ位置が有効なジョブ信号を
含むか否かを表示するために使用される。スケジューリング・ユニット40から
ジョブ信号を受け取ったときは、これをジョブ・キュー52の最初の空き位置、
即ち有効フラグがセットされていない位置に配置する。次に、「有効」フラグを
セットして「信号」フィールドが現在有効なジョブ信号を含み、かつその位置が
占有されていることを表示する。
【0041】 フィールド「済み(Taken)」は、ジョブ信号をパイプラインに付与した
か否かを表示するために使用される。ジョブ・キュー52内のストレージ位置の
ジョブ信号を実行パイプラインに付与したときは、その位置に対する「済み」フ
ラグをセットしてジョブ信号を付与したことを表示する。
【0042】 一般的に、ジョブは、下記状態:「未起動」、「起動」及び「完了」であり得
る。これらの状態は、異なる方法により符号化可能とされ、表1の「有効」、「
済み」及び「完了」のフィールドは、これらのジョブ状態を符号化する1方法例
であることを理解すべきである。
【0043】 ジョブ・キュー52は、好ましくは、コミット位置にあるのは、ジョブ・キュ
ー内のどのストレージ位置かを指示するポインタ「ヘッド(HEAD)」を有す
る。コミット位置におけるジョブ信号は、コミット優先順位を有し、またこのジ
ョブ信号を処理する実行パイプラインがデータ・ストア59に対して書き戻しを
実行可能に、またスケジューリング・ユニット40に対してジョブ信号を送出可
能にされる。コミット位置にジョブ信号が移動すると、対応するパイプラインが
起動して全ての書き込み動作、及びジョブに対する信号送出にコミットする。ジ
ョブを実行し終え、また全ての書き込み及び信号送出をコミットしたときは、「
有効」フラグをクリアすることによりその位置を開放し、また通常の手段により
ジョブ・キュー52をステップさせて新しい位置をコミット位置に移動させるこ
とにより、ジョブ・キュー内の複数のジョブ信号に対してコミット優先順位を連
続的に付与する。スケジューリング・ユニットは、ジョブを実行し終えたことが
通知され、ここで、ジョブ・キュー52は、スケジューリング・ユニットから新
しいジョブ信号を受け取るための準備完了状態となる。
【0044】 実行パイプラインは、通常、プログラム・ストアから複数の命令をフェッチし
、これらの命令をデコードし、これらの命令を実行し、かつメモリに書き戻す回
路を備えている。
【0045】 処理ユニット54−1〜54−4のそれぞれは、命令ユニット60、実行ユニ
ット61、レジスタ・ファイル・メモリ(RM)62、及び多数の特殊目的ハー
ドウェア・レジスタ(そのうちの一つがジョブ・キュー・ポインタ(JQP)6
3である)を備えている。命令ユニット60は、通常のプログラム・カウンタ、
及びプログラム・ストア58から複数の命令をフェッチし、かつデコードする回
路を備えている。実行ユニット61は、データ・ストア59からデータをロード
し、またデータをストアする通常のロード・ストア・ユニット、1以上の演算論
理ユニット(ALU)、及び書き戻しを実行(コミット)する手段を備えている
【0046】 特定的な実行パイプラインの1例は、エリクソンAXEディジタル・スイッチ
ング・システムにおけるパイプラインである。
【0047】 (ジョブ開始) 以下、新しいジョブをどのように開始するのかについての1例を簡単に説明す
る。まず、実行に対して準備完了となっている実行パイプラインがジョブ・キュ
ー52からの新しいジョブを要求する。ジョブ・キュー52は、通常の手段によ
り横行し、ジョブ・キュー52内のストレージ位置の「有効」フラグ及び「済み
」フラグを調べて有効かつ未割り付けジョブ信号を収容している次の位置を見出
す。未割り付けジョブのストレージ位置に対するポインタは、要求中の実行パイ
プラインのJQPレジスタ63に転送される。このポインタは、ストレージ位置
に対するメモリ・アドレスの形式であってもよい。問題のパイプラインは、自動
的に次のジョブ信号に対するポインタ用のJQPレジスタを読み出し、続いてポ
インタにより与えられたジョブ信号を実行パイプラインにコピーして対応するジ
ョブの実行を開始する。ジョブ・キュー52のその位置に関する「済み」フラグ
をセットする。ジョブ信号のヘッダは、命令ユニット60のプログラム・カウン
タにコピーされたプログラム・アドレスに対するポインタを含む。ジョブ信号の
データは、ジョブの実行に必要なオぺランドを含み、またこれらのオぺランドは
、レジスタ・ファイル・メモリ62にコピーされ、ジョブの実行中に実行ユニッ
ト61により使用される。
【0048】 命令ユニット60は、プログラム・カウンタにより指定されたアドレスから始
まるプログラム・ストア内のプログラム・コードにより、複数の命令をフェッチ
する。実行ユニット61は、レジスタ・ファイル・メモリ62と協働して命令ユ
ニット60から受け取ったデコード済み命令を実行する。デコード済み命令の実
行中に必要とするオぺランドは、実行ユニット61によりレジスタ・ファイル・
メモリ62からロードされる。実行ユニット61は、ジョブの実行中に、書き込
みキュー56に書き込みをし、そのジョブがコミット優先順位を有するときは、
メモリ59即ち複数の入出力ユニットに対して書き戻しを実行する。
【0049】 依存性チェック・ユニット56が推論的に実行するジョブとコミットしたジョ
ブとの間に依存性を検出すると、推論的に実行するジョブをフラッシュする必要
がある。フラッシュの際は、依存性チェック・ユニット56から問題の実行パイ
プラインに割り込み信号Iを送出することにより、推論的に実行しているパイプ
ライン内のジョブの実行を停止させる。更に、フラッシュしたジョブに属する依
存性チェック・ユニット及び書き込みキューにおけるエントリは、無効にされる
【0050】 (フラッシュ時のジョブの再起動) 以下、どのようにしてフラッシュを処理するのかの1例を簡単に説明する。フ
ラッシュ時に、ジョブにデータ依存性が検出されると、ジョブの実行が、通常、
パイプライン内で割り込みされ、ジョブを再び未起動状態に置き、フラッシュ・
ジョブに属する書き込みキュー及び依存性チェック・ユニットにおけるエントリ
が無効にされる。ジョブ・キュー52内の対応するストレージ位置の「完了」フ
ラグ及び「済み」フラグが削除され、次いでジョブが再起動可能にされる。フラ
ッシュされたジョブに対応するジョブ信号は、ジョブ・キューに未だバッファさ
れているので、フラッシュされたジョブがジョブ・キュー52から直接、再起動
可能にされ、また実行パイプライン内のJQPレジスタ63がジョブ信号を占有
していたストレージ位置に対するポインタを保持する。これは、図3にJQP6
3からジョブ・キュー52内の特定位置を指す矢印により示されている。従って
、実行パイプラインは、ポインタにより与えられたストレージ位置からジョブ信
号を再びコピーして、ジョブの実行を再起動させることができる。コミットされ
ていたジョブに対応するジョブ信号のみがジョブ・キュー52から除去される。
【0051】 フラッシュされるべきジョブは、実行しているときは、割り込みされる必要は
ない。しかしながら、パフォーマンスの観点からは、ジョブに割り込みをするの
がより効果的である。
【0052】 ジョブ・キュー52を処理する機能、例えばジョブ・キュー・フィールドに書
き込む機能、及びジョブ信号にコミット優先順位を連続的に付与する機能は、好
ましくは、例えばマイクロ・コード命令プログラム又はアッセンブラ・プログラ
ムの形式にあるソフトウェアにより、制御される。更に、処理システムの他の機
能、例えばフラッシュを処理する機能、及び書き込みキューを制御する機能もソ
フトウェアにより実施することができる。勿論、その代わりに、以上の機能をハ
ードウェアにより実施することも可能である。
【0053】 以上では、書き込みキューを、全ての実行パイプライン用の単一集中書き込み
キューとして説明した。以下、図4を参照して分散書き込みキューによる実現例
を説明する。
【0054】 図4は、本発明の他の実施例による実行ライン及び依存性チェック回路の概要
図である。図4には、命令ユニット60、実行ユニット61及びレジスタ・ファ
イル・メモリ62のような実行パイプラインの関連部分のみを示す。図4に示す
ように、処理ユニット54−1〜54−4のうちのそれぞれが、書き込みキュー
71、書き込みキューを制御する書き込みキュー状態マシン72、読み出しバッ
ファ73、比較ユニット75及びORゲート76に関連される。これは、図4に
それぞれその実行パイプライン及びその関連回路を囲む点線の長方形により、示
されている。
【0055】 特許出願WO 88/02513に説明されているような全ての実行パイプラ
イン用の集中書き込みキューを使用する代わりに、各パイプラインは、以下、そ
れ自身の書き込みキュー71を有する。各書き込みキュー71は、データ・スト
ア59に対する書き込みアドレス用のアドレス・フィールド、データ・フィール
ド、及び有効フィールドのような1以上の補助フィールドを有する。書き込みキ
ュー71は、通常の状態マシン72により制御される。ジョブの(推論的又は非
推論的な)実行において、実行パイプラインは、データ・ストア用の書き込みア
ドレス、及びパイプラインに接続された書き込みキュー71に対する関連データ
を書き込む。ジョブがコミット優先順位を獲得すると、書き込みキュー71内の
エントリは、書き込みキュー状態マシン72の制御により、書き込みキューから
データ・ストア59に転送される。
【0056】 読み出しバッファ73は、実行パイプラインに対するデータ・ストア・ロード
用の読み出しアドレス用のアドレス・フィールド、及び有効フィールドのような
1以上の補助フィールドを有する。実行パイプライン内の実行ユニット61がデ
ータ・ストア59からデータをデータをロードするときは、実行ユニット61は
、パイプラインに接続された読み出しバッファ73に読み出しアドレス又は複数
の読み出しアドレスをストアする。
【0057】 続いて、推論的に実行するジョブによりロードされたデータがコミットされた
ジョブにより変更されると、データ依存性及び推論的に実行されたジョブは、フ
ラッシュされ、かつ再起動される必要がある。コミット優先順位を有するパイプ
ラインがデータ・ストア59に書き込みをするときは、これらの書き込みアドレ
スは、推論的な実行に関連する読み出しバッファにストアされた全ての読み出し
アドレスと比較されて、コミットされたジョブと推論的に実行されたジョブとの
間にデータ依存性があるか否かを調べる。この比較は、推論的に実行するパイプ
ラインに関連した比較ユニット75により実行される。各比較ユニット75は、
多数の比較要素を含み、各比較要素は、読み出しバッファ73からのそれぞれの
読み出しアドレスとデータ・ストア59に対するコミット書き込み用のデータ・
ストア書き込みアドレスとを比較する。比較ユニット75内の各比較要素からの
出力は、比較ユニット75に接続されているORゲート76に送出され、その結
果の出力信号は、割り込み信号(0/1)として問題のパイプライン内の命令ユ
ニット60に転送される。これは、割り込み信号をハイのアクティブ状態にセッ
トするためには、読み出しバッファ73内の読み出しアドレスのうちの1つがコ
ミット書き込み用のアドレスと一致すれば、満足されることを意味する。命令ユ
ニット60は、割り込み信号を受け取ると、実行ユニット61に現在のジョブの
実行を停止するように命令する。
【0058】 実行ユニット61は、マルチプレクサ74を介してデータ・ストア59又は読
み出しキュー73からデータをロードすることができる。実行ユニット61がデ
ータ・ストア59内のアドレスからデータをロードしようとし、かつ実行ユニッ
ト61が全く同一のアドレス上の書き込みキュー71に既に書き込みをし、かつ
そのアドレス用のデータが書き込みキュー71から依然として得られるときは、
マルチプレクサ74は、書き込みキュー71からロードできるように制御される
。その他のデータは、データ・ストア59からロードされる。
【0059】 概して、複数のジョブ信号は、ラウンド・ロビン形式により実行パイプライン
に対して付与されることを理解すべきである。ラウンド・ロビンでは、パイプラ
インが段階的に横行する環状ループに配列されているとみなし得る。例えば、こ
の配列は、パイプライン及び書き込みキュー側での管理が非常に簡単になる。ジ
ョブ・キュー内の次のジョブ信号がコミット位置に移行したときは、対応する実
行パイプラインは、前のコミット・パイプラインに匹敵するループにおける次の
パイプラインとして容易に認識され、かつ認識されたパイプライン専用の書き込
みキューにストアされた結果は、コミットされる。
【0060】 図5は、本発明による実行ラインの概要ロジック図である。実行パイプライン
80は、命令フェッチ段81、命令キャッシュ段82、分割段83、多数のデコ
ード段84及び85、オぺランド読み出し段86、実行段87並びにコミット段
88を備えている。
【0061】 この特定の例では、パイプライン80は、プログラム・ストアからアッセンブ
ラ命令を含む128ビットの複数のメモリ・ワードをフェッチして、これらを1
又はいくつかのマイクロ・プログラム命令にデコードする。次いで、マイクロ命
令は、順番でなく、コミット順に実行される。パイプライン80は、好ましくは
、2ウェイ・スパー・スカラーであり、2命令をフェッチし、デコードし、かつ
並列に実行可能にされていることを意味する。
【0062】 アッセンブラ命令の実行を開始し、次の命令アドレスを発生し、かつフェッチ
段81の期間にプログラム・ストア59の命令レベル・キャッシュから128ビ
ット・キャッシュ・ラインをフェッチする。このキャッシュ・ラインは、分割段
83の期間で複数の命令に分割される。次いで、これらの命令は、デコード段8
4、85により1又はいくつかのマイクロ命令にデコードされる。オぺランド読
み出し段86は、デコードされた複数のマイクロ命令を受け取って実行の準備を
する。これらのマイクロ命令は、ALUユニット、データ・ストア読み出し/書
き込み及びジャンプ・ユニットを備えた一組の実行ユニットに渡されて、実行段
87の期間に実行される。これらのマイクロ命令は、その全オぺランドが利用可
能なときは、アッセンブラ及びマイクロ・プログラム・コードにより指定された
順序から独立して、実行される。しかしながら、その結果は、全ての前命令が書
き戻されるまで、コミットされず、レジスタ・ファイル・メモリ、ハードウェア
・レジスタ又はデータ・ストアに書き戻される。
【0063】 単一の処理ユニット又はプロセッサ上で実行するように既に設計されているア
プリケーションが多数の処理ユニット上で並列に実行されるときは、複数のジョ
ブ又は複数のタスクが共有メモリ空間に対して動作するので、依存性が発生する
。本発明によれば、異なる複数の処理ユニットにより並列に実行されるジョブ間
におけるこのような依存性は、推論的な実行及び依存性チェックにより、解決さ
れる。
【0064】 以上で説明した実施例は、単なる例として示されており、本発明がこれらに制
限されないことを理解すべきである。
【0065】 例えば、ジョブ・キュー52は、必ずしもIPU50内に構成される必要はな
い。スケジューリング・ユニット40にジョブ・キュー52を統合することも可
能である。更に、複数のジョブ・バッファがジョブ・キューとして作用するよう
に、ジョブ・キューの機能をスケジューリング・ユニット40のスケジューリン
グ・ユニット40に統合することもできる。
【0066】 加えて、ジョブ・キュー52内のジョブ信号は、ジョブが完全にコミットして
しまうまで待機する代わりに、ジョブ信号がコミット優先順位を獲得すれば直ち
に、キューから削除されてもよい。
【0067】 本発明は、主として、ジョブ信号キュー及びその関連の制御機能によって、複
数の処理ユニットに複数のジョブ信号を付与し、これらのジョブ信号のトラッキ
ングを保持し、かつコミット優先順位を管理するプロトコルを実行する観点から
説明されたが、本発明は、更に、実行パイプライン側からこのプロトコルを管理
することも可能であることを理解すべきである。
【0068】 以上では、実行パイプラインが個別的な複数の存在であり、各存在が命令実行
のためにそれ自身専用の複数のリソースを有すると説明した。しかしながら、一
般的には、実行パイプライン内の多くのリソースは、命令実行に十分に利用され
ることはない。そこで、パイプ間でリソースを共有させて、要求により又は時多
重化方法により、リソースに対する実行パイプライン・アクセスを与えることも
できる。高度のリソース共有を実現する技術は、同時マルチスレッド処理(si
multaneous multithreading)である。同時マルチス
レッド処理では、殆ど全てのリソースが共有され、各パイプラインに専用される
複数のリソースは、プライベート・プログラム・カウンタと、命令レジスタ及び
物理レジスタにおける論理レジスタ番号間のプライベート・マッピングとに限定
される。
【0069】 更に、用語「処理ユニット」は、特殊なハードウェアに限定されるのではなく
、標準的なオフ・ザ・シェルフ(off the shelf)マイクロプロセ
ッサのような他の形式の複数の処理ユニットを含むことを理解すべきである。標
準的なマイクロプロセッサの場合、通常、依存性チェックは、読み出し命令及び
書き込み命令をアプリケーション・ソフトウェアにおける特殊コードにより実施
することにより、実現される。フラッシュ用のサポートは、好ましくは、アプリ
ケーション・ソフトウェアにより実施され、またオペレーティング・システム又
は仮想マシンにより実行される。シングル・プロセッサ・システム用に記述した
アプリケーション・ソフトウェアを標準的なマルチプロセッサ環境に移行させて
再使用しようとするときは、アプリケーション・ソフトウェアを再コンパイル等
により変換することもできる。例えば、逐次的にプログラムされたアプリケーシ
ョン・ソフトウェアは、依存性をチェックし、かつ変更した変数のコピーをスト
アして、ジョブの適当なフラッシュ又はロール・バックを可能にするコードを含
む推論的な実行をサポートする適当なコードを付加し、次いでソフトウェアを再
コンパイルすることにより、自動的に変換されてもよい。更に、標準的なマルチ
プロセッサ・システムのオペレーティング・システム又は仮想マシンは、推論的
な実行用のサポートを与えるように変更されてもよい。例えば、依存性をチェッ
クするときに依存性を検出した場合は、オペレーティング・システム/関連ジョ
ブをフラッシュする仮想マシンに制御を転位させてもよい。
【0070】 アドレス比較方法を参照して依存性を説明した。しかしながら、これに代わっ
て、依存性のチェックは、更に、各処理ユニットがメイン・メモリ内の変数の使
用をマークし、かつ依存性衝突をマーキングに基づいて検出するマーカ方法によ
り達成されてもよい。
【0071】 更なる変更、交換、及びここに開示し、特許請求した潜在する基本原理を保持
する改良は、本発明の範囲内である。
【図面の簡単な説明】
【図1】 例示的なサービス・ネットワークの概要図である。
【図2】 本発明による処理システムの概要図である。
【図3】 図2のプロセッサの関連部分の概要図である。
【図4】 本発明の他の実施例による実行ライン及び依存性チェック回路の概要図である
【図5】 本発明による実行ラインの概要ロジック図である。
【手続補正書】特許協力条約第34条補正の翻訳文提出書
【提出日】平成12年12月29日(2000.12.29)
【手続補正1】
【補正対象書類名】明細書
【補正対象項目名】特許請求の範囲
【補正方法】変更
【補正内容】
【特許請求の範囲】
───────────────────────────────────────────────────── フロントページの続き (81)指定国 EP(AT,BE,CH,CY, DE,DK,ES,FI,FR,GB,GR,IE,I T,LU,MC,NL,PT,SE),OA(BF,BJ ,CF,CG,CI,CM,GA,GN,GW,ML, MR,NE,SN,TD,TG),AP(GH,GM,K E,LS,MW,SD,SL,SZ,TZ,UG,ZW ),EA(AM,AZ,BY,KG,KZ,MD,RU, TJ,TM),AE,AL,AM,AT,AU,AZ, BA,BB,BG,BR,BY,CA,CH,CN,C R,CU,CZ,DE,DK,DM,EE,ES,FI ,GB,GD,GE,GH,GM,HR,HU,ID, IL,IN,IS,JP,KE,KG,KP,KR,K Z,LC,LK,LR,LS,LT,LU,LV,MA ,MD,MG,MK,MN,MW,MX,NO,NZ, PL,PT,RO,RU,SD,SE,SG,SI,S K,SL,TJ,TM,TR,TT,TZ,UA,UG ,UZ,VN,YU,ZA,ZW (72)発明者 ヨンソン、ステン、エドヴァルド スウェーデン国 ファルスタ、リイスビク スガタン 3 (72)発明者 エゲランド、テルイエ スウェーデン国 バルムド、ブヨルクビク ス アレベーグ 2 Fターム(参考) 5B013 DD00 DD05 5B098 AA09 AA10 GA03 GA07 GA08 5K026 AA02 AA21 BB02 CC02 CC04 CC07 EE01 FF02 FF03 FF04 FF09 FF19 FF23 LL03 LL10

Claims (23)

    【特許請求の範囲】
  1. 【請求項1】 サービス・ネットワーク用のプロセッサであって、前記サー
    ビス・ネットワークがそのネットワークに接続されている複数のユーザにサービ
    スを提供するプロセッサにおいて、 −多数のストレージ位置を有して複数のジョブに対応する複数のジョブ信号を
    ストアするジョブ信号キューであって、前記複数のジョブが前記ユーザにより要
    求されるほぼ個別的な多数のサービスの一部を形成し、前記ジョブ・キューのそ
    れぞれのストレージ位置に前記ジョブ信号のそれぞれをストアする前記ジョブ信
    号キューと、 −前記ジョブ・キュー内の異なるストレージ位置からの複数のジョブ信号を個
    別的に処理して異なる複数のジョブを並列に実行する複数の並列処理ユニットで
    あって、前記並列ジョブのうちの1つを非推論的に実行し、かつ残りの前記並列
    ジョブを推論的に実行する前記複数の並列処理ユニットと、 −推論的なジョブと非推論的なジョブとの間の可能依存性についてチェックす
    る手段と、 −推論的なジョブに依存性を検出したときは、前記推論的なジョブをフラッシ
    ュし、かつ前記フラッシュしたジョブの実行を再起動させる手段と を備えたプロセッサ。
  2. 【請求項2】 前記処理ユニットは、実行パイプラインの形式である請求項
    1記載のプロセッサ。
  3. 【請求項3】 各処理ユニットは、前記ジョブ信号キュー内のストレージ位
    置に対するポインタをストアするレジスタに関連され、前記ジョブ信号キューが
    前記処理ユニットにより実行されるべきジョブ信号を保持し、かつ前記処理ユニ
    ットは、その処理ユニットにより与えられたジョブ信号をコピーするように動作
    可能である請求項1記載のプロセッサ。
  4. 【請求項4】 更に、 −ジョブ信号をストアする前記ジョブ・キュー内の各ストレージ位置について
    、前記ジョブ信号が処理ユニットに付与されたか否かを表示する手段と、 −前記ジョブ・キューを横行して未割り付けジョブ信号を見付ける手段と、 −前記未割り付けジョブ信号のストレージ位置に対するポインタをジョブ要求
    処理ユニットに関連されたレジスタに転送し、前記ジョブ要求ユニットが前記ポ
    インタについての関連レジスタを読み出し、かつ前記ポインタにより与えられた
    ジョブ信号をその処理にコピーして対応するジョブを実行する手段と を備えている請求項3記載のプロセッサ。
  5. 【請求項5】 更に、コミット順序に従い、1度に1ジョブ信号により、前
    記ジョブ信号にコミット優先順位を連続的に付与する手段を備え、前記メモリ・
    システムに対する書き戻しを含む非推論的な実行に対してコミット優先順位を有
    するジョブ信号に対応するジョブを可能にする請求項1記載のプロセッサ。
  6. 【請求項6】 更に、 −各推論的に実行したジョブの結果を一時的にストアする手段と、 −コミット優先順位を付与したジョブ信号について、対応するジョブを一時的
    にストアした結果を取り出し、かつ前記メモリ・システムに対して前記取り出し
    た結果の書き戻しを実行する手段と を備えた請求項5記載のプロセッサ。
  7. 【請求項7】 前記フラッシュし、かつ再起動する手段は、 −前記推論的なジョブの一時的なストア結果を認識する手段と、 −前記認識結果を無効にする手段と を含む請求項6記載のプロセッサ。
  8. 【請求項8】 前記コミット優先順位を付与する手段は、コミット優先順位
    にあるのは前記ジョブ信号キュー内のどのストレージ位置かを指示することによ
    り、そのストレージ位置のジョブ信号にコミット優先順位を付与する手段と、前
    記ジョブ・キューをステップさせて新しいストレージ位置を前記コミット優先順
    位に移動させる手段とを備えている請求項5記載のプロセッサ。
  9. 【請求項9】 更に、前記処理ユニットにより実行されたジョブの結果を一
    時的にストアする少なくとも1つの書き込みキューと、前記書き込みキューから
    コミット優先順位が付与されているジョブの結果を、前記プロセッサに接続され
    たメモリ・システムのような外部ユニットに転送する手段とを備えている請求項
    5記載のプロセッサ。
  10. 【請求項10】 前記フラッシュし、かつ再起動する手段は、 −前記対応する処理ユニットにおける実行に割り込みをする手段と、 −前記フラッシュされたジョブに属する前記書き込みキュー内の結果を無効に
    する手段と、 −前記フラッシュされたジョブに属する依存性をチェックする前記手段内のエ
    ントリを無効にする手段と を含む請求項9記載のプロセッサ。
  11. 【請求項11】 各処理ユニットは、それぞれの書き込みキューに接続され
    て前記処理ユニットにより実行したジョブの結果を一時的にストアさせ、コミッ
    ト優先順位が前記ジョブに付与されているときは、前記ジョブの結果を前記外部
    ユニットに転送する請求項9記載のプロセッサ。
  12. 【請求項12】 コミット優先順位を有する処理ユニットに対する前記メモ
    リ・システムの書き込みアドレスは、前記推論的な実行の処理ユニットのそれぞ
    れに放送されて前記推論的な実行の処理ユニットの前記メモリ・システムの読み
    出しアドレスにより依存性のチェックをする請求項11記載のプロセッサ。
  13. 【請求項13】 各ジョブ信号は、前記対応するジョブの実行に必要な入力
    オペランドを備えている請求項1記載のプロセッサ。
  14. 【請求項14】 更に、データ・ストア及びプログラム・ストアを備え、か
    つ各ジョブ信号は、ヘッダ及び本体を備え、前記ヘッダは、前記プログラム・ス
    トア内のソフトウェア・コードに対するポインタを含み、前記プログラム・スト
    ア及び前記本体は、対応するジョブの実行に必要な複数のオぺランドを含む請求
    項1記載のプロセッサ。
  15. 【請求項15】 前記サービス・ネットワークは、電気通信ネットワークで
    あり、前記ほぼ個別的なサービスは、電気通信サービスである請求項1記載のプ
    ロセッサ。
  16. 【請求項16】 前記サービス・ネットワークは、ホスト・コンピュータ及
    び多数のユーザ端末を含み、前記ホスト・コンピュータは、データ・ベース・シ
    ステムを備え、かつ前記ユーザ端末は、前記データ・ベース・システムからほぼ
    個別的なデータ・ベース・サービスを要求するように動作可能である請求項1記
    載のプロセッサ。
  17. 【請求項17】 前記ジョブ・キュー内の少なくとも1サブセットの前記ジ
    ョブ信号は、前記ユーザによるサービス要求に応答して発生する請求項1記載の
    プロセッサ。
  18. 【請求項18】 サービス・ネットワーク用の処理システムであって、前記
    サービス・ネットワークは、前記ネットワークに接続された複数のユーザにサー
    ビスを提供し、前記処理システムは、 −前記ユーザにより要求されたほぼ個別的なのサービスの一部を形成する複数
    のジョブに対応した複数のジョブ信号をスケジュールするスケジューリング・ユ
    ニットを組み込んだ第1のプロセッサ(SPU)と、 −前記第1のプロセッサに接続された第2のプロセッサ(IPU)と を備え、前記第2のプロセッサは、 −前記スケジューリング・ユニットから受け取った複数のジョブ信号をストア
    する複数のストレージ位置を有するジョブ信号キューであって、前記ジョブ・キ
    ューのそれぞれのストレージ位置に前記複数のジョブ信号のそれぞれをストアす
    るジョブ信号キューと、 −前記ジョブ・キューの異なるストレージ位置から複数のジョブ信号を個別的
    にフェッチして異なる複数のジョブを並列に実行する複数の並列処理ユニットで
    あって、前記並列ジョブのうちの1つは、メモリ・システムに書き戻すために実
    行され、かつ残りのジョブは、推論的に実行される前記複数の並列処理ユニット
    と、 −推論的なジョブと書き戻しのために実行されたジョブとの間で可能な依存性
    をチェックする手段と、 −推論的なジョブについて依存性が検出されたときは、前記推論的なジョブを
    フラッシュさせ、かつ前記フラッシュされたジョブの実行を再起動させる手段と
    を包含している処理システム。
  19. 【請求項19】 前記第2のプロセッサの前記処理ユニットは、実行パイプ
    ラインの形式である請求項18記載の処理システム。
  20. 【請求項20】 前記第2のプロセッサは、更に、1度に1ジョブ信号によ
    り、前記ジョブ信号にコミット優先順位を連続的に付与する手段を備え、前記メ
    モリ・システムに対する書き戻しに対してコミット優先順位を有するジョブ信号
    に対応するジョブを可能にする請求項18記載の処理システム。
  21. 【請求項21】 各ジョブ信号は、前記対応するジョブの実行に必要な入力
    オぺランドを備えている請求項18記載の処理システム。
  22. 【請求項22】 前記サービス・ネットワークは、電気通信ネットワークで
    あり、かつ前記ほぼ個別的なサービスは、電気通信サービスである請求項18記
    載の処理システム。
  23. 【請求項23】 イベント駆動された処理システムにおいて、 −外部的に自蔵される複数のイベント信号をストアする多数のストア位置を有
    するキューであって、前記キューの応答して第2のプロセッサに前記イベント信
    号のそれぞれをストアするキューと、 −前記ジョブ信号キューにおける異なるストレージ位置から複数のジョブ信号
    を個別的に処理して対応する複数のジョブを並列に実行する複数の処理ユニット
    であって、前記並列ジョブのうちの1つを非推論的に実行し、かつ残りの前記並
    列ジョブを推論的に実行する前記複数の並列処理ユニットと、 −推論的なジョブと非推論的なジョブとの間で可能な依存性をチェックする手
    段と、 −推論的なジョブについて依存性を検出したときは、前記推論的なジョブをフ
    ラッシュし、かつ前記フラッシュしたジョブの実行を再起動させる手段と を備えているイベント駆動された処理システム。
JP2000582882A 1998-11-16 1999-11-12 ジョブ並列プロセッサ Pending JP2002530734A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
SE9803901-9 1998-11-16
SE9803901A SE9803901D0 (sv) 1998-11-16 1998-11-16 a device for a service network
PCT/SE1999/002060 WO2000029939A1 (en) 1998-11-16 1999-11-12 A job-parallel processor

Publications (1)

Publication Number Publication Date
JP2002530734A true JP2002530734A (ja) 2002-09-17

Family

ID=20413294

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000582882A Pending JP2002530734A (ja) 1998-11-16 1999-11-12 ジョブ並列プロセッサ

Country Status (10)

Country Link
EP (1) EP1133725B1 (ja)
JP (1) JP2002530734A (ja)
KR (1) KR20010080469A (ja)
CN (1) CN100492282C (ja)
AU (1) AU1436900A (ja)
BR (1) BR9915385A (ja)
CA (1) CA2350921A1 (ja)
DE (1) DE69943166D1 (ja)
SE (1) SE9803901D0 (ja)
WO (1) WO2000029939A1 (ja)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1456750A1 (en) * 2001-12-12 2004-09-15 Telefonaktiebolaget LM Ericsson (publ) Collision handling apparatus and method
JP2003263331A (ja) * 2002-03-07 2003-09-19 Toshiba Corp マルチプロセッサシステム
GB0226249D0 (en) * 2002-11-11 2002-12-18 Clearspeed Technology Ltd Traffic handling system
CN100345132C (zh) * 2003-07-28 2007-10-24 华为技术有限公司 一种并行处理的方法及系统
JP4784827B2 (ja) * 2006-06-06 2011-10-05 学校法人早稲田大学 ヘテロジニアスマルチプロセッサ向けグローバルコンパイラ
KR100856468B1 (ko) 2007-01-08 2008-09-04 재단법인서울대학교산학협력재단 임베디드 소프트웨어의 객체지향 태스크 모델을멀티프로세서 시스템 온 칩 하드웨어 아키텍처로 자동할당하기 위한 방법
CN101656658B (zh) * 2008-08-21 2013-03-20 中兴通讯股份有限公司 一种提高队列管理中出队效率的方法和装置
CN101551758B (zh) * 2009-05-13 2013-06-05 中兴通讯股份有限公司 一种实现设备管理任务并行工作的系统和方法
US9846628B2 (en) 2010-06-15 2017-12-19 Microsoft Technology Licensing, Llc Indicating parallel operations with user-visible events
KR20120017294A (ko) 2010-08-18 2012-02-28 삼성전자주식회사 어플리케이션을 효율적으로 처리하는 스케쥴링 시스템 및 스케쥴링 방법
US8423516B2 (en) * 2010-09-15 2013-04-16 International Business Machines Corporation Speculative execution in a real-time data environment
CN102455932B (zh) * 2010-10-22 2014-06-25 金蝶软件(中国)有限公司 一种任务实例串行执行方法、装置及系统
CN103176862B (zh) * 2011-12-20 2017-03-01 伊姆西公司 用于管理数据备份任务的设备和方法
US9436917B2 (en) * 2013-02-05 2016-09-06 Cisco Technology, Inc. Accelerating learning by sharing information between multiple learning machines
CN104750547B (zh) * 2013-12-31 2018-05-18 华为技术有限公司 虚拟机的输入输出io请求处理方法及装置
FR3038084B1 (fr) * 2015-06-29 2017-12-29 Centre National De La Recherche Scient (C N R S) Microprocesseur parallele stochastique
TWI597666B (zh) * 2015-12-28 2017-09-01 緯創資通股份有限公司 共享裝置的使用方法及資源共享系統
CN107391262B (zh) * 2017-07-31 2020-05-15 李黎黎 一种作业调度方法及装置
CN108491380B (zh) * 2018-03-12 2021-11-23 思必驰科技股份有限公司 用于口语理解的对抗多任务训练方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
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
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
EP0868690A1 (en) * 1995-12-19 1998-10-07 TELEFONAKTIEBOLAGET L M ERICSSON (publ) Job scheduling for instruction processor
US5848257A (en) * 1996-09-20 1998-12-08 Bay Networks, Inc. Method and apparatus for multitasking in a computer system
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

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
JPN6009010589, OPLINGER, J., et al., "Software and Hardware for Exploiting Speculative Parallelism with a Multiprocessor", Technical Report: CSL−TR−97−715, 1997, pp. 1 − 23 *
JPN6009010600, 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 *

Also Published As

Publication number Publication date
DE69943166D1 (de) 2011-03-10
BR9915385A (pt) 2001-07-31
CN100492282C (zh) 2009-05-27
AU1436900A (en) 2000-06-05
CN1326567A (zh) 2001-12-12
KR20010080469A (ko) 2001-08-22
WO2000029939A1 (en) 2000-05-25
SE9803901D0 (sv) 1998-11-16
EP1133725A1 (en) 2001-09-19
EP1133725B1 (en) 2011-01-26
CA2350921A1 (en) 2000-05-25

Similar Documents

Publication Publication Date Title
JP2002530734A (ja) ジョブ並列プロセッサ
US9715391B2 (en) Cache memory apparatus
JP3771957B2 (ja) プロセッサ・アーキテクチャにおける分散制御のための装置および方法
JP3569014B2 (ja) マルチコンテキストをサポートするプロセッサおよび処理方法
US7290261B2 (en) Method and logical apparatus for rename register reallocation in a simultaneous multi-threaded (SMT) processor
US6389446B1 (en) Multi-processor system executing a plurality of threads simultaneously and an execution method therefor
US7155600B2 (en) Method and logical apparatus for switching between single-threaded and multi-threaded execution states in a simultaneous multi-threaded (SMT) processor
US6044430A (en) Real time interrupt handling for superscalar processors
EP1880289B1 (en) Transparent support for operating system services
JP3976065B2 (ja) マルチプロセッサシステム及びマルチプロセッサシステムの割込み制御方法をコンピュータに実行させるためのプログラム
US20060236136A1 (en) Apparatus and method for automatic low power mode invocation in a multi-threaded processor
JPH09258980A (ja) 並列マルチタスキングの方法及びシステム
Hum et al. Building multithreaded architectures with off-the-shelf microprocessors
JP5244160B2 (ja) 複数の命令シーケンサでのスレッド実行に基づく命令セットのためのメカニズム
JP2001306324A (ja) マルチスレッドvliwプロセッサにおける分割可能なパケットを識別するための方法および装置
JPH10312282A (ja) 命令完了を改良するための方法および装置
KR20010095069A (ko) 다중 스레드 초장 명령어 프로세서, 명령어 처리 방법 및그 제품
EP1146420A1 (en) Method and apparatus for splitting packets in a multithreaded VLIW processor
JPH096611A (ja) データ処理システムにおけるデータをバッファリングする方法およびシステム
EP1131704B1 (en) Processing system scheduling
KR100402820B1 (ko) 기본 블럭 캐쉬를 이용하는 마이크로프로세서
JPH11296369A (ja) 命令実行の並列性を高める方法および装置
JP2002530736A (ja) 多重処理システムにおける改良結果処理方法
US6311267B1 (en) Just-in-time register renaming technique
JP2002529811A (ja) メモリ・リード要求を実行するための方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060920

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

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20100525