JP2000502202A - 命令プロセッサのジョブスケジューリング - Google Patents

命令プロセッサのジョブスケジューリング

Info

Publication number
JP2000502202A
JP2000502202A JP09522721A JP52272197A JP2000502202A JP 2000502202 A JP2000502202 A JP 2000502202A JP 09522721 A JP09522721 A JP 09522721A JP 52272197 A JP52272197 A JP 52272197A JP 2000502202 A JP2000502202 A JP 2000502202A
Authority
JP
Japan
Prior art keywords
signal
processor
job
instruction
instruction processor
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.)
Ceased
Application number
JP09522721A
Other languages
English (en)
Other versions
JP2000502202A5 (ja
Inventor
ロンストロム,ミカエル
Original Assignee
テレフオンアクチーボラゲツト エル エム エリクソン(パブル)
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by テレフオンアクチーボラゲツト エル エム エリクソン(パブル) filed Critical テレフオンアクチーボラゲツト エル エム エリクソン(パブル)
Publication of JP2000502202A publication Critical patent/JP2000502202A/ja
Publication of JP2000502202A5 publication Critical patent/JP2000502202A5/ja
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked

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)
  • Bus Control (AREA)
  • Advance Control (AREA)

Abstract

(57)【要約】 処理装置(120、220)において、信号プロセッサ(124、224)は1個または複数個の命令プロセッサ(122、222)が実行するジョブをスケジュールして命令プロセッサがジョブを実行するときジョブ関連信号を命令プロセッサに送る。命令プロセッサ(122)は現在のリスト(150)をメモリ内に保持する。命令プロセッサが実行する現在のジョブから、実行する新しいジョブに関連するバッファ信号を命令プロセッサが生成すると、命令プロセッサは新しいジョブに関連するバッファ信号を現在のリスト内に選択的に記憶する。バッファ信号は現在のジョブの優先レベルに従って現在のリスト内に選択的に記憶される。バッファ信号を生成した現在のジョブ内の命令が現在のジョブ内に所定の順序に列んでいる場合は、現在のジョブが終わるとすぐ新しいジョブが実行される。命令プロセッサがバッファ信号に関連するジョブの実行を終わると、命令プロセッサは選択的に、(1)信号プロセッサに EXIT 信号を送るか[バッファ信号に関連するジョブが所定の優先レベルを持つ場合、または現在のリストが空の場合]、(2)現在のリスト内の全ての残りのジョブを信号プロセッサに送るか[信号プロセッサが命令プロセッサに割込みを与えている場合]、または(3)現在のリストから別のジョブを取り出して実行する。

Description

【発明の詳細な説明】 命令プロセッサのジョブスケジューリング 発明の背景 1. 発明の分野 この発明は、中央処理装置に含まれる命令プロセッサが実行するジョブのスケ ジューリングに関する。 2. 関連技術およびその他の考慮 エリクソンAPZ 212 20などの処理装置は、命令プロセッサが実行す るジョブを信号プロセッサを用いてスケジュールすることにより、命令プロセッ サが実行するジョブの文脈を迅速に切り替える。この装置の文脈切替え時間は多 くの他のプロセッサに比べて非常に速い。 この装置では、各ジョブは関連する信号を有する。この信号は、命令プロセッ サがそのジョブに関してどのブロックのコード(例えば、プログラム記憶内にあ る)を実行するか、またその実行にどのデータを用いるか、について命令プログ ラムに指示する情報を含む。命令プロセッサがジョブの実行を終わると、信号プ ロセッサは新しい信号(新しいジョブに関連する)を取り出して命令プロセッサ に送る。信号プロセッサは、信号プロッセサの複数のジョブバッファの中の選択 された1つから優先順に新しい信号を取り出す。 信号プロセッサから得られた新しいジョブは前のジョブとは全く関係がなくて よく、したがって全く異なるデータを用いてよい。更に、外部のソース(例えば 、他の処理装置)から他のジョブが到着し、かつその優先度が高い場合は、その ジョブは古いジョブが出る前に古いジョブの実行を中断する。 このように、上述の処理装置ではコードとデータにより文脈がしばしば変わる 。これでは文脈があまり頻繁に失われるので、文脈を保存するために高速メモリ (例えば、キャッシュメモリ)を用いても何にもならない。この装置で文脈保存 というのはデータをレジスタに記憶することだけであって、これはジョブの実行 中にだけ行うことができる。 このような装置を詳細に検討するため、図1に中央処理ユニット20の一部を 示す。特定すると、命令プロセッサユニット(IP)22、信号プロセッサ(S P)ユニット24、プログラム記憶(PS)26、データおよび参照記憶(DR S)28、複数の地域プロセッサバスハンドラ(RPH)301,...,n、「 別の」プロセッサバスハンドラ(IPH)31、保全ユニット(MAU)32で ある。命令プロセッサ22と、信号プロセッサ24と、IPHB31と、RPH 30はそれぞれ独立のプロセッサである。命令プロセッサ22はジョブを実行し 、各ジョブはプログラム記憶(PS)26内に記憶されている1ブロックの命令 にそれぞれ対応する。信号プロセッサ24は命令プロセッサ22のジョブのスケ ジューラとして動作する。このようなスケジューリングに関して、信号プロセッ サ24はジョブ毎に例えば外界または命令プロセッサ22から「信号」を受ける 。信号は或ブロックの命令のどの部分を実行するかを指示する命令であり、また 信号はブロックの実行に用いるデータを含む。信号プロセッサ24は受けた信号 を分析し調整して、これらの信号に優先度を割り当てた後に命令プロセッサ22 に送る。データおよび参照記憶28の参照部分は、この装置に用いられる信号や ブロックや変数を示す情報を含む。 構成によっては、図1の中央処理装置20は2個の命令プロセッサ22、2個 の信号プロセッサ24、1個または複数個のプロセッサバスハンドラ(IPH) 31、更に複数個の地域プロセッサバスハンドラ30を備え、これら全てをMA U32とバス34および36を通して図1の鏡像として接続する。このような構 成では、各命令プロセッサ22は自身のプログラム記憶26と自身のデータおよ び参照記憶28を備える。 地域プロセッサバスハンドラ(RPH)301,...,nは対応する地域プロ セッサバス381,...,nにより、図示していない地域プロセッサに接続する 。同様に、1個または複数個の他のプロセッサバスハンドラ31を適当なバス3 9に接続してよい。地域プロセッサバスハンドラ(RPH)301,...,nと 他のプロセッサバスハンドラと信号プロセッサ24は、命令プロセッサ22がプ ログラム記憶26に記憶されている応用ソフトウエアを実行しているときに命令 プロセッサ22の負荷を軽減する働きをする。 図2は、中央処理装置20の命令プロセッサ22、信号プロセッサ24、他の プロセッサバスハンドラ31、地域プロセッサバスハンドラ(RPH)301, ...,nと、これらの間の相互作用を詳細に示す。特に、図2は信号プロセッサ 24がジョブスケジューラ40と複数のジョブバッファ42A−42D(それぞ れバッファA−Dとも呼ぶ)を備えることを示す。 中央処理装置20では、命令プロセッサ22が1つのジョブを終わると(信号 プロセッサ24に EXIT 信号を送って示す)、信号プロセッサ24は次に実行す るジョブを、最高の優先度を有ししかも空でないバッファ42A−42Dの1つ から検索する。次に、信号プロセッサ24は次に実行するジョブに関連する信号 を命令プロセッサ22に送る。この信号を受けると、命令プロセッサ22はその 信号が指定した新しいブロックのコードの実行を開始する。 場合によっては、命令プロセッサ22が実行する命令から、命令プロセッサ2 2自身が新しい信号を生成する。このような命令プロセッサ生成信号にはいろい ろの種類がある。例えば、組合わせ信号、RP信号、他の命令プロセッサ信号、 バッファされた信号など。組合わせ信号はサブルーチンコールによく似ており、 命令プロセッサ22は組合わせ信号をすぐ実行した後、この組合わせ信号を生成 したジョブの実行に戻る。 RP信号または命令プロセッサ22が生成する他の命令プロセッサ信号は、地 域プロセッサ(RP信号の場合)または他の命令プロセッサ(IP信号の場合) が実行するジョブに関連する信号である。信号プロセッサ24はRP信号または 他のIP信号を受けて、これを地域プロセッサバスハンドラ30(他のIP信号 の場合)または他のプロセッサバスハンドラ31(RP信号の場合)の該当する 方に向ける。 命令プロセッサ22が生成して命令プロセッサ22が実行するIP生成信号を (組合わせ信号を除く)「バッファ信号」と呼ぶ。従来の技術では、バッファ信 号は信号プロセッサ24に送られる(図2の線54で示す)。命令プロセッサ2 2の実行は、命令プロセッサ22が現在実行中のブロック内で継続する。命令プ ロセッサ22から出たこのバッファ信号を受けると、信号プロセッサ24は受け たバッファ信号の優先レベルに従って2つの動作のどちらかを行う。詳しく述ベ ると、受けたバッファ信号の優先レベルの方が命令プロセッサ22が現在実行中 のジョブ(すなわち、バッファ信号を生成したジョブ)の優先レベルより高い場 合は、信号プロセッサ24は命令プロセッサ22に割込みを与えて現在のジョブ を中断する(図2の線56で示す)。そうでない場合は、信号プロセッサ24は このバッファ信号を、このバッファ信号と同じ優先度を有するジョブバッファ4 2A−42Dの1つに最後のジョブとして入れる。このようにして、このバッフ ァ信号はこのバッファ信号と同じ優先度の任意の他の信号として実行される(図 2の線58で示す)。 このように、上に述べた従来の方法では、或ジョブが終わって命令プロセッサ 22が EXIT 命令を実行すると、命令プロセッサ22は次のジョブをスケジュー ルするために必ず信号プロセッサ24を見る。このスケジューリングでは、信号 プロセッサ24は次のジョブをジョブバッファ42A−42Dから優先順に取り 出す。しかしこの従来のスケジューリング方式では、取り出したこのジョブは前 のジョブと全く関係がなくてよい。このような無関係なジョブは恐らく殆ど異な るデータを用いる。また優先度の高いジョブが到着すると、実行中のジョブはEX IT命令に達する前に中断される。 中央処理装置20は種々の形、例えば電話交換装置の制御装置として実現され る。上に述べたように、この実現の一例はエリクソンAXE10スイッチ用のA PZ2l220制御装置である。これについては、Egeland,Terje の「APZ 21220−−AXE10用の新しいハイエンドプロセッサ」、Ericson Review 、No.1,1995,pp.5-12、に述べられており、この文献を引例とする。 このような中央処理装置に必要なことは、文脈を余り頻繁に変えることなく、 キャッシュメモリなどの高速メモリをを効果的に用いる方法である。他に改善し たいことは、信号プロセッサの作業負荷の一部を軽減することである。 発明の概要 命令プロセッサが実行する信号のスケジューリングは主として信号プロセッサ が行う。この発明では信号プロセッサは特有のスケジューリング方式を有し、ま た命令プロセッサは信号プロセッサを邪魔することなく自身のスケジューリング の一部を行う(「現在のリスト」メモリを用いて)。 信号プロセッサは実行する信号を、信号に割り当てられた優先度に従って4個 のバッファの中の1つ、例えばスケジューリングバッファA、スケジューリング バッファB、スケジューリングバッファC、スケジューリングバッファD、に割 り当てる。一般に命令プロセッサは、新しく実行する信号を信号プロセッサから 得るときは(命令プロセッサから EXIT 信号を受けたときなど)、経過時間 (最も古いもの)と優先レベル(すなわち、レベルA、B、C、D)に従って、 信号をバッファA−Dから取り出す。(ここで用いる「最高」の優先レベルは追 跡レベルを考慮に入れない)。 取り出したジョブの優先レベルが「C」優先レベルまたは「D」優先レベルの 場合は、信号プロセッサは現在中断されている同じ優先レベルのジョブがあるか どうか判定する。もしあれば、中断されているジョブの実行を再開し、取り出し たジョブを該当するバッファに戻す。更に、信号プロセッサが高い優先度の信号 を受けたときに(例えば、命令プロセッサから、地域プロセッサから、または「 他の」命令プロセッサから)命令プロセッサがレベルDの信号を実行中であれば 、命令プロセッサはレベルDの信号の実行をすぐ中断する。 命令プロセッサ(IP)が信号を実行すると新しい信号を生成することがある 。このような命令プロセッサ生成信号は一般に信号の EXIT 命令の直前に生成さ れる。この命令プロセッサ生成信号は、組合わせ信号またはバッファ信号(どち らも命令プロセッサが実行する)、または他のプロセッサ(例えば、地域プロセ ッサまたは「別の」命令プロセッサ)向けの信号などである。組合わせ信号はサ ブルーチンコールによく似ており、命令プロセッサは組合わせ信号をすぐ実行し た後、この組合わせ信号を生成した信号の実行に戻る。 命令プロセッサがバッファ信号を生成すると、命令プロセッサはこのバッファ 信号を特殊レジスタに、すなわち「現在のリスト」と呼ぶ待ち行列に入れる。現 在実行中のジョブから出る直前に生成されたバッファ信号が最低の優先レベルで ない場合また割込みが設定されていない場合は、バッファ信号を生成したジョブ から出た後で、バッファ信号に関連するジョブが実行される。 次に、バッファ信号の生成の結果実行したジョブから命令プロセッサが出ると 、バッファ信号の優先レベルに従って、また割込みが設定されているかどうかに 従 って、命令プロセッサはいくつかの代替ステップの1つを実行する。第1の代替 ステップは現在のリストから第1の(次の)ジョブを得てこれを実行することを 含む。第2の代替ステップはスケジューリングの制御を信号プロセッサに戻すこ とを含む。これはバッファ信号の優先レベルが最低のときに起こる。第3の代替 ステップは現在のリストの全内容を信号プロセッサに転送することを含む。これ は割込みが発生したときに起こる。第1の代替ステップでは現在のリスト上のジ ョブから出ると、引き続き現在のリスト上のジョブを順に実行してよい。 バッファ信号を生成するジョブの直後にバッファ信号に関連するジョブを実行 するかどうかは、バッファ信号が所定の種類の命令(例えば EXIT 命令)の直前 に生成されたかどうかによる。したがって、ジョブが終わると同時にバッファ信 号を実行するには、そのバッファ信号を生成した命令がジョブ内で所定の順序に 列んでいなければならない。さもないと、バッファ信号に関連するジョブは現在 のリスト上の残りの信号に従属して他のバッファ信号に関連するジョブの後に実 行され、または信号プロセッサに転送されることさえある。 命令プロセッサによるジョブの実行が中断すると、現在のリストの全内容が信 号プロセッサに転送される。信号プロセッサは現在のリストからの信号を、転送 された信号の優先レベルに従って該当するバッファに入れる。 また信号プロセッサは信号を現在のリストに送る機能を有する。信号プロセッ サが信号を命令プロセッサに送って実行させるとき、信号プロセッサはそのバッ ファを探して、命令プロセッサに転送する信号と同じスレッド識別を有するその バッファ内の別の信号を現在のリストに転送する。外部生成信号(例えば、地域 プロセッサバスハンドラまたはプロセッサバスハンドラを通して受けた)のスレ ッドIDが命令プロセッサにより処理されているCurrentThreadID ではあるが 、割込みの実行または割込みフラグのセットは行われていない、と信号プロセッ サが判定したときは、同様にして信号を現在のリストに入れる。 図面の簡単な説明 上に述べたこの発明の目的や機能や利点は、添付の図面に示す好ましい実施の 形態に関する以下の詳細な説明から明らかである。各図を通して同じ参照記号は 同じ部分を指す。図面は必ずしも尺度通りではなく、この発明の原理を示すこと に重点を置いた。 図1は、中央処理ユニットの少なくとも一部の略図である。 図2は、従来の技術の中央処理装置が備える種々の構成要素を示す。 図3は、この発明の1つの実施の形態の中央処理装置が備える種々の構成要素 を示す。 図4は、図3の中央処理装置が備える命令プロセッサの構成の一例を示す略図 である。 図5は、この発明の別の実施の形態であって、多重命令プロセッサを用いた中 央処理装置が備える種々の構成要素を示す略図である。 図6は、図3の中央処理装置の信号プロセッサが出会う事象と経験する状態を 示す略図である。 図7は、図3の中央処理装置の命令プロセッサが出会う事象と経験する状態を 示す略図である。 図8(1)は、命令プロセッサから EXIT 信号を受けたときに信号プロセッサ が実行するステップを示す流れ図である。 図8(2)は、命令プロセッサから非 EXIT 信号を受けたときに信号プロセッ サが実行するステップを示す流れ図である。 図8(3)は、時間切れ事象に出会ったときに信号プロセッサが実行するステ ップを示す流れ図である。 図8(4)は、地域プロセッサ(RP)または他の命令プロセッサから信号を 受けたときに信号プロセッサが実行するステップを示す流れ図である。 図9(1)から図9(3)は、活動A(SP)1からA(SP)3をそれぞれ 実行するために命令プロセッサが実行するステップを示す略図である。 図9(4)は、活動A(SP)4を実行するために命令プロセッサが実行する ステップを示す流れ図である。 図9(5)から図9(10)は、活動A(SP)5からA(SP)10をそれ ぞれ実行するために命令プロセッサが実行するステップを示す略図である。 図9(11)は、活動A(SP)11を実行するために命令プロセッサが実行 するステップを示す流れ図である。 図10は、この発明が用いる信号の書式の略図である。 図面の詳細な説明 図3の中央処理装置120は、命令プロセッサユニット(IP)122、信号 プロセッサ(SP)ユニット124、プログラム記憶(PS)126、データお よび参照記憶(DRS)128、複数の地域プロセッサバスハンドラ(RPH) 1301,...,n、「他の」プロセッサバスハンドラ(IPB)131を備え る。明白にまたは暗に別の指定がない限り、装置120の要素で前に図2の装置 20について説明した要素と同じ名称を持つ要素は同じものである。装置120 と装置20の違いの1つは、現在のリストメモリ150である。これは命令プロ セッサ122の一組のレジスタ内に記憶され、命令プロセッサ122からアクセ スする。また、信号プロセッサ124はタイマ141を含む。 図3に示す実施の形態では、中央処理装置120はSun Ultra 2 ワークステ ーションを用いて実現されており、メモリを共用して動作する2個のプロセッサ を備える。共用メモリ技術を用いて2個のプロセッサ間に信号を伝送する方法は 当業者には既知である。 命令プロセッサ122と信号プロセッサ124の動作は従来の対応するプロセ ッサの動作とは異なる。詳しく述べると、後で詳細に説明するように、命令プロ セッサ122は生成するバッファ信号をその現在のリスト150上に選択的に記 憶する。これにより、信号プロセッサ124をバイパスして文脈の保存を改善す ることができる。時限を超えない限り、信号プロセッサ124は現在のリスト1 50内の1つまたは複数のバッファ信号を実行させる。更に、信号プロセッサ1 24が優先レベルの高いジョブを有するときは、信号プロセッサ124は必ず命 令プロセッサ122が実行中の「D」優先レベルのジョブを中断させる。更に信 号プロセッサ124は信号を送ったときに、「A」優先レベルのジョブに他のジ ョブを中断させる。 図4は、命令プロセッサ122の1つの構成を示す。図4の構成において、命 令プロセッサ122は、中央処理装置(CPU)160、レジスタメモリ162 、高速メモリ164、メモリアクセス/インターフェース166、複数のキャッ シュメモリ168A−168C、複数のメモリカード170A−170G、メモ リ アクセス/インターフェース166とカード170を接続するメモリバス172 、を有する。図4に示す構成では、キャッシュメモリ168Aは128バイトア クセスを有し、キャッシュメモリ168Bは16バイトアクセスを有し、キャッ シュメモリ168Cは4バイトアクセスを有する。カード170A−170Fは DRAM主メモリカードである。カード170GはIOBバスによりディスクド ライブコントローラなどの周辺装置に接続する直接メモリアクセス(DMA)カ ードであって、これによりディスクなどの他のメモリ装置を使用することができ る。 図4の命令プロセッサ構成では、ディスクバッファのロッキングや追跡に用い るデータ構造など、頻繁に用いる変数のアクセスに高速メモリ164を用いる。 変数をどの種類のメモリに割り当てるかは、コンパイラまたは設計者が行う。キ ャッシュメモリ168A−168Cのラインサイズはいろいろあり、柔軟に対応 できる。キャッシュに記憶する変数は、ブロックパラメータまたは変数の種類と して指定することができる。 図10は、この発明の1つの実施の形態で用いられる信号の書式を示す。信号 は図10に示すように、信号が属するスレッドを示す第1フィールド「ThreadID 」、信号の優先レベルを示す第2フィールド「JOBLevel」、信号の最終フィール ド内のデータ項目の数を示す第3フィールド「F0RMAT」、信号のシーケンス番号 を示す第4フィールド「SignalNumber」、受信ブロック数である第6フィールド 「RecBlock」、送信ブロック数である第7フィールド「SendBlock」、信頼性を 高めるために用いる識別である第8フィールド「Forlopp Id」、最初のデータ値 を含む第9フィールド「RegPRO」、1個または複数個の(24個の)他のデータ 値を含む第10フィールド「DataList」、を含む。 スレッドは、外部の装置(例えば、地域プロセッサまたは「他の」命令プロセ ッサ)から受けたメッセージに応じて実行する必要がある一組のジョブという概 念である。スレッド内でいくつかのジョブを同時に実行することができるし、ま た外部の装置との通信はスレッドの一部として行うことができる。 動作 信号プロセッサ124が出会う事象と行う活動を図6に示す。命令プロセッサ 122が出会う事象と行う活動を図7に示す。信号プロセッサが出会う事象を形 式「E(SP)x」という識別子で示し、命令プロセッサ122が出会う事象を 形式「E(IP)x」という識別子で示す。信号プロセッサ124が行う活動を 形式「A(SP)x」という識別子で示し、命令プロセッサ122が行う活動を 形式「A(IP)x」という識別子で示す。これらの全ての識別子において、 「x」は事象番号または活動番号を示す。 図6に示すように、信号プロセッサ124は3つの状態を有する。すなわち、 IDLE 状態と、W0RKING 状態と、QUEUED 状態である。状態の変化は図6の太線 で示す。また図6は信号プロセッサ124が4つの「SP」事象、すなわち事象 E(SP)1からE(SP)4に出会うことを示す。或SP事象に出会ったとき 、信号プロセッサ124は3つの状態の任意の1つにあってよい。したがって、 図6の各SP事象は各状態に入る(点線で)ように示されている。 図6の各SP事象に応えて、信号プロセッサ124は対応する活動を行う。こ こで用いる「活動」は、交互にまたは継続して実行する1つまたは複数のステッ プを含んでよい。信号プロセッサ124が実行する活動と各活動を構成するステ ップを、図8(1)から図8(4)にそれぞれ示す。これらの活動に従って実行 するステップは、信号プロセッサ124の「状態」に依存することがある。 図7に示すように、命令プロセッサ122は3つの状態を有する。すなわち、 IDLE 状態と、W0RKING 状態と、COMBINED/WORKING 状態である。命令プロセッ サ122と信号プロセッサ124の同じ名の状態を混同してはならない。各状態 は無関係である。図6と同様に、図7でも状態の変化を太線で示す。また図7は 信号プロセッサ124が11個の「IP」事象、すなわち事象E(IP)1から E(IP)11に出会うことを示す。これらのIP事象の一部、例えばIP事象 E(IP)1とE(IP)3とE(IP)9は、信号プロセッサ124が実行す る活動に関連して起こる。 信号プロセッサ124と命令プロセッサ122は互いに関連しており、或IP 事象は命令プロセッサ124がその状態の中の1つまたは複数の指定された状態 にあるときだけ起こる。この点について、命令プロセッサ122が行う活動を、 活動が起こる状態を示す円の中に示す。IP事象が出会う状態を、図7の波線の 接続で示す。IP活動E(IP)1からE(IP)11に関連するステップを図 9(1)−図9(11)にそれぞれ詳細に示す。図9(1)−図9(11)に関 する後の説明から分かるように、命令プロセッサ122が実行する種々の活動に より、図6に示すSP事象E(SP)1−E(SP)2が生じる。 A. 信号プロセッサの動作 信号プロセッサはそのタイマ141(図3参照)と関連して動作する。特定の 時間値(例えば、値「X」または「Y」)をロードすると、この時間値に対応す る時間が終わったときにタイマ141は信号プロセッサ124に通知する。時間 値が終わると、例えばタイマ141から通知すると、時間切れ事象[事象E(S P)3]が発生する。これについては、図8(3)を参照して詳細に説明する。 時間切れ事象により、信号プロセッサ124は命令プロセッサ122の活動に時 間が掛かりすぎているかどうか知る。この点について、或動作(例えば、命令プ ロセッサ122が実行する新しい信号を、信号プロセッサ124のバッファ14 2から送信する)を開始すると、タイマ141を値「X」(例えば、1ms)に 設定する。タイマ141が値「X」にリセットされる前に時間切れが起こった場 合は、信号プロセッサ124はフラグSP_Interrupt をセットして、命令プロセ ッサ122が同じスレッドIDのジョブを1つの時間間隔だけ実行したことを示 す。次に、タイマ141に第2の時間値「Y」(例えば、3ms)をロードする 。時間値「Y」が終わった後に第2の時間切れが起こった場合は、行う活動は実 行中のジョブの優先レベルに依存する。実行中のジョブの優先レベルが「C」ま たは「D」の場合は、実行中のジョブを中断する。実行中のジョブの優先レベル が「A」または「B」の場合は誤りであって、KILL 信号を出す。 SP事象を受けたときに信号プロセッサが実行する活動を以下に説明する。 (1)SPが非 EXIT 信号を受ける ジョブの実行において、命令プロセッサ122は非 EXIT 信号を生成して、こ の生成された信号に優先レベルを割り当ててよい。この信号を信号プロセッサ1 24に送ると、信号プロセッサ124は図6に示す事象E(SP)2と見なす。 事象E(SP)2を受けると、信号プロセッサ124は活動A(SP)2を実行 する。そのステップを図8(2)に示す。 ステップ8(2)−1と8(2)−2のそれぞれにおいて、信号プロセッサ1 24は、命令プロセッサ122から受けた信号が地域プロセッサの1つ向けか、 または「他の」命令プロセッサ向けか識別する。命令プロセッサ122から受け た信号が地域プロセッサの1つに向けたものである場合は、ステップ8(2)− 3で信号を該当する地域プロセッサバスハンドラ130に送る。命令プロセッサ 122から受けた信号が「他の」命令プロセッサの1つに向けたものである場合 は、ステップ8(2)−4で信号を「他の」命令プロセッサバスハンドラ131 に送る。 命令プロセッサ122から受けた非 EXIT 信号が外部に向けたものでない場合 は、ステップ8(2)−5で、命令プロセッサ122が現在実行中の信号の優先 レベルをチェックする。現在実行中の信号の優先レベルが「D」レベルでなけれ ば、ステップ8(2)−6で、受けた信号をその優先度に従って該当するジョブ バッファ42A−42D内の最後に入れる。そうではなく、現在実行中の信号の 優先レベルが「D」レベルの場合はステップ8(2)−7を実行する。ステップ 8(2)−7で、時間切れスイッチの値を「X」にセットし、フラグ Job_inte rrupted_level[D] をアクティブにし(優先レベルDのジョブが中断されてい ることを示す)、現在の(「D」レベルの)ジョブの実行を中断する。命令プロ セッサ122はジョブの中断を事象E(IP)8と見なして、これに応えて図9 (8)に示す活動A(IP)8を行う。ステップ8(2)−3か8(2)−4か 8(2)−6か8(2)−7を完了すると、記号8(2)−8で示すように活動 A(SP)2を終了する。 (2) SPが EXIT 信号を受ける 命令プロセッサ122から EXIT 信号[事象E(SP)1]を受けると、信号 プロセッサ124は活動A(SP)1を起動する。そのステップを図8(1)に 示す。命令プロセッサ122から EXIT 信号を受けると、命令プロセッサ122 がバッファ信号の生成の結果ではないジョブの実行を完了したときに活動A(S P)1を起動する。または EXIT 信号を受けるのは、命令プロセッサ122がバ ッファ信号の結果であるジョブまたはジョブのシーケンスを完了したときである [図9(4)のステップ9(4)−6、9(4)−9、9(4)−4と、図9( 7)のステップ9(7)−3と、図9(3)のステップ9(3)−3を参照]。 命令プロセッサ122から EXIT 信号を受けると[事象E(SP)1]、信号 プロセッサ124は空でないバッファ142A−142Dから最高の優先度を有 する第1ジョブを取り出す[ステップ8(1)−1]。ステップ8(1)−2で 、信号プロセッサ122は種々のフラグ(Error_timeout と SP_Interrupt ) をクリアし、時間切れスイッチの値を「X」にセットする。ステップ8(1)− 3とステップ8(1)−4で、ステップ8(1)−1で取り出したジョブの優先 レベルをチェックして、優先レベルが「C」(ステップ8(1)−3)か、「D 」(ステップ8(1)−4)か判定する。 取り出したジョブの優先レベルが「C」の場合は、ステップ8(1)−5でフ ラグ Job_interrupted_level[C] を調べて、このフラグがアクティブか、す なわち、命令プロセッサ122による優先レベルCの別のジョブの実行が信号プ ロセッサによりすでに中断されているか、を判定する。ステップ9(1)−5で の判定が肯定的である場合は、ステップ8(1)−6を実行する。ステップ8( 6)−1で、ステップ8(1)−1で取り出したジョブを元のバッファに戻し、 フラグ Job_interrupted_level[C] を非アクティブにし(前に中断されたレ ベル「C」をまた実行するので、もう中断されていないから)、フラグ Active _priority を「C」にセットし(前に中断されたジョブの優先レベルを再設定 する)、中断されたジョブを再開する。中断されたジョブの実行を信号プロセッ サ124が再開すると、図9(2)を参照すれば分かるようにIP事象E(IP )2が起こる。そして活動A(SP)lを終了する(記号8(1)−9で示され る)。 取り出したジョブの優先レベルは「C」であるがフラグ Job_interrupted_l evel[C] がアクティブでない(すなわち、現在中断されている優先レベル「C 」のジョブがない)場合は、ステップ8(1)−7とステップ8(1)−8を実 行する。ステップ8(1)−7で、フラグ Active_priority をステップ8( 1)−1で取り出したジョブの優先度にセットし、取り出したジョブに関連する 信号をIP事象E(IP)1として命令プロセッサ122に送り(図9(1)参 照)、CurrentThreadID を、取り出したジョブのスレッドIDにセットする。ス テップ8(1)−8で、ジョブバッファ内の優先レベル「C」以上の全てのジ ョブのスレッドIDをチェックして、或ジョブのスレッドIDが CurrentThread ID(すなわち取り出したジョブのスレッドID)と同じ場合は、これらの各ジョ ブに関連する信号を命令プロセッサ122内の現在のリスト150に送る。言い 換えると、CurrentThreadID と同じスレッドIDを有するジョブバッファ内のこ れらの各ジョブ(レベル「C」以上の)毎にIP事象E(IP)11が起こる。 IP事象E(IP)11に応じて命令プロセッサ122が行う活動は、図9(1 1)を参照して説明する。次に活動A(SP)lを終了する(記号8(1)−9 で示す)。 取り出したジョブの優先レベルが「D」の場合は(ステップ8(1)−4で判 定される)、ステップ8(1)−10でフラグ Job_interrupted_level[C]と Job_interrpted_level[C] を調べて、命令プロセッサ122が実行中の優先 レベル「C」か「D」のジョブが信号プロセッサ124により現在中断されてい るかどうか判定する。ステップ8(1)−10でのチェックが肯定的(すなわち 、どちらかのフラグがアクティブ)である場合は、ステップ8(1)−1で取り 出したジョブをバッファ内に戻し[ステップ8(1)−11]、ステップ8(1 )−12で更にチェックを行う。特定すると、ステップ8(1)−12で、フラ グ Job_interrupted_level[C] がアクティブかどうか更に調べる。ステップ 8(1)−12の結果が肯定的である場合は、ステップ8(1)−13でフラグ Job_interrupted _level[C] を非アクティブにし、フラグ Active _priori ty に値「C」を割り当てる。ステップ8(1)−12の結果が否定的である場 合は、ステップ8(1)−14でフラグ Job_interrupted_level[D]を非アク ティブにし、フラグ Active_priority に値「D」を割り当てる。ステップ8 (1)−13か8(1)−14が終わると、ステップ8(1)−15で、信号プ ロセッサ124は命令プロセッサ122に指示して最高の優先度を持つ中断され たジョブの実行を再開させ、IP事象E(IP)2が起こる。その後、記号8( 1)−16で示すように活動A(SP)1を終了する。 ステップ8(1)−10で、フラグ Job_interrupted_level[C] も Job_i nterrupted_level[D] もアクティブでないと判定した場合は、ステップ8(1 )−17と8(1)−18を実行して、活動A(SP)1を終わる。ステッ プ8(1)−18で、フラグ Active_priority をステップ8(1)−1で取 り出したジョブの優先度にセットし、CurrentThreadID を、取り出したジョブの スレッドIDにセットし、ステップ8(1)−7と同様に、取り出したジョブに 関連する信号をIP事象E(IP)lとして命令プロセッサ122に送る(図9 (1)参照)。ステップ8(1)−18で、ジョブバッファ内の全てのジョブ( 「C」以上の優先レベルを持つもの)のスレッドIDをチェックする。ジョブの スレッドIDが CurrentthreadID(すなわち、取り出したジョブのスレッドID )と同じ場合は、この各ジョブに関連する信号を命令プロセッサ122内の現在 のリスト150に送る。言い換えると、CurrentThreadID と同じスレッドIDを 有するジョブバッファ内のジョブ毎にIP事象E(IP)11が起こる。前に示 したように、IP事象E(IP)11に応じて命令プロセッサ122が行う活動 は、図9(11)を参照して説明する。 取り出したジョブの優先レベルが「C」または「D」でない場合は、ステップ 8(1)−19および8(1)−20を実行した後、活動A(SP)1を終了す る。ステップ8(1)−19および8(1)−20はステップ8(1)−17お よび8(1)−18と同じであって、CurrentThreadID と同じスレッドIDを有 するバッファ内の全てのジョブを命令プロセッサ内の現在のリスト150に送る 。活動A(SP)1の終了は記号8(1)−21で示される。 (3) SPがRPまたは他のIPから信号を受ける 信号プロセッサ124が地域プロセッサバスハンドラ30と「他の」命令プロ セッサバスハンドラ31に信号を送ることができるのと同様に、信号プロセッサ 124はこれらのハンドラから外部で生成された信号を受けることができる[図 6の事象E(SP)4で示す]。この外部生成信号を受けると、活動A(SP) 4を実行する。活動A(SP)4のステップを図8(4)に示す。 活動A(SP)4で外部生成信号がスレッドIDを含まない場合は(ステップ 8(4)−1で判定する)、信号プロセッサ124はスレッドIDを割り当てる [ステップ8(4)−2]。例えば、信号プロセッサ124はプロセッサIDと 、新しいスレッドIDが割り当てられる度に増分される内部カウンタとを連結し て、スレッドIDを割り当てる。 ステップ8(4)−3および8(4)−4で、信号プロセッサ124は外部生 成信号の優先レベルを調べる。ステップ8(4)−3とステップ8(4)−4の 条件がどちらも満たされない場合は、ステップ8(4)−5のスレッドID条件 をチェックする。ステップ8(4)−5のスレッドID条件が満たされない場合 は、ステップ8(4)−6を実行する。 ステップA(SP)4−3で、命令プロセッサ122が現在実行しているジョ ブの優先レベルより外部生成信号の優先レベルが高く、かつ命令プロセッサ12 2が実行中のジョブの優先レベルが最低(「D」)の場合は、信号プロセッサ1 24はステップ8(4)−7を実行する。ステップ8(4)−7で、信号プロセ ッサ124は時間切れスイッチの値を「X」にセットし、フラグ Job_interrup ted_level[D] をアクティブにし(優先レベル「D」のジョブが中断されてい ることを示す)、命令プロセッサ122に割込みを送る。命令プロセッサ122 はこの割込みをIP事象E(IP)8と見なす。これに対する応答は、図9(8 )で説明する活動A(IP)8を参照すれば理解できる。 ステップ8(4)−4で外部生成信号の優先レベルが、最高レベル(例えば「 A」レベル)でかつ命令プロセッサ122が現在実行中のジョブの優先レベルよ り高い場合は、ステップ8(4)−8で信号プロセッサ124はフラグSP−In terrupt をセットする(これにより、命令プロセッサ122は現在実行中のジョ ブを終了すると新しい信号を実行する)。更に、ステップ8(4)−7で、信号 プロセッサ124は時間切れスイッチの値を「Y」にセットする。 外部生成信号によって割込みもフラグ SP_Interrupt のセットも起こらない 場合は、ステップ8(SP)4−5で信号プロセッサ124はやはり、外部生成 信号のスレッドID(地域プロセッサバスハンドラ30またはプロセッサバスハ ンドラ31から受ける)が命令プロセッサ122が処理中の CurrentThreadIDか 、また外部生成信号の優先レベルがDレベルより大きいか、を判定する。そうで あれば、ステップ8(4)−9で、現在のリスト150に入れるために外部生成 信号を命令プロセッサ122に送る。この信号を受けると[事象E(IP)9] 、命令プロセッサ122は外部生成信号を現在のリスト150内の最後のエント リとして入れる(図9(9)参照)。 ステップ8(4)−3から8(4)−5のどれも実行しない場合は、ステップ 8(4)−6で信号プロセッサ124は外部生成信号を、ジョブバッファ142 A−142Dの該当するところに外部生成信号の優先レベルに従って入れる。ス テップ8(4)−7、8(4)−8、8(4)−9、8(4)−6のどれかを終 了すると、記号8(4)−10で示すように、活動A(SP)4を終了する。 (4) SPの時間切れ 時間切れスイッチに記憶された値がタイマ41により時間と共に減少してゼロ になると、タイマ41は時間切れになる。タイマ141が時間切れになると、信 号プロセッサ124は時間切れを事象E(SP)3と見なして(図6参照)、活 動A(SP)3を、詳しく言うと図8(3)に示すステップを実行する。時間切 れになると、信号プロセッサ124はまずステップ8(3)−1で、フラグ SP _Interrupt がセットされているかどうかチェックする。フラグがセットされ ていない場合は、ステップ8(3)−2でタイマ141(時間切れ)の値を「Y 」にセットし、フラグ SP Interrupt をセットした後、活動A(SP)3を 終了する(記号8(3)−3で示す)。フラグがセットされていない場合は、ス テップ8(3)−4を実行する。 ステップ8(3)−4でフラグ SP_Interrupt をクリアする。次にステップ 8(3)−5で、命令プロセッサ122が現在実行中のジョブの優先レベルが「 C」または「D」か判定する。ステップ8(3)−5での判定が肯定的である場 合は、ステップ8(3)−6、8(3)−7、8(3)−8を順次実行して活動 A(SP)3を終了する。ステップ8(3)−6で、信号プロセッサ124はバ ッファ142A−142Dの中の最高の優先度を有する空でないバッファから第 1の(最も古い)ジョブを取り出す。次にステップ8(3)−7で、フラグJob _interrupted_level[Active priority]をアクティブにセットする。言い換え ると、信号プロセッサ124は時間切れにより現在実行中のジョブ(優先レベル 「Active_priority」を有する)が中断されることを、したがってフラグJob_i nterrupted_level を中断されたジョブの優先レベルにセットしなければならな いことを知る。ステップ8(3)−8で、命令プロセッサ122が現在実行中の (しかも実行中に時間切れが起こった)ジョブを中断する。命令プロセ ッサ122はこの中断をIP事象E(IP)8と見なす。これに対する応答は図 9(8)で説明する活動A(IP)8により理解できる。 ステップ8(3)−5での判定が否定的である場合、すなわち命令プロセッサ 122が現在実行中のジョブの優先レベルが「C」より高い場合は、ステップ8 (3)−10で信号 KILL_SIGNAL を命令プロセッサ122に送る。命令プロ セッサは信号 KILL-SIGNAL をIP事象E(IP)3と見なし、図9(3)に示 す応答活動A(IP)3を行う。ステップ8(3)−8とステップ8(3)−1 0が終わると、記号8(3)−3で示すように活動A(SP)3を終了する。 B. 命令プロセッサの動作 前に述べたように、図7に示す種々の状態にあるジョブの実行中に、命令プロ セッサ122は自身で信号を生成することがある。このようなIP生成信号は、 地域プロセッサや他の命令プロセッサ向けの信号や、組合わせ信号や、バッファ 信号を含む。IP生成信号から生じる事象を図7に示す。これらは、バッファ信 号の生成に対応する事象E(IP)11、組合わせ信号または HURRY 信号の生 成に対応する事象E(IP)10、地域プロセッサまたは「他の」命令プロセッ サ向けの信号の生成に対応する事象E(IP)6、を含む。 HURRY 信号は命 令プロセッサ122が信号プロセッサ124を調べずに直ぐ実行するもので、命 令プロセッサ122は新しいブロックに移ってこの新しいブロック内で実行を開 始する。このように、組合わせ信号とは異なり、HURRY 信号は呼び出しブロック に戻らずに出る信号である。 IP事象に応じて命令プロセッサ122が実行する活動は次の通りである。 (1) IPがSPから信号を受ける IDEL 状態にあるとき、命令プロセッサ122は図9(1)に示す活動A(I P)1を実行する。詳しく述べると、ステップ9(1)−1で命令プロセッサ1 22はその状態を IDEL から WORKING に変える(図7参照)。次にステップ9 (1)−2で、命令プロセッサ122は関連するプログラム記憶126内の新し いブロックに移り、新しいブロック内で実行を開始する。 (2) IPジョブの実行が中断される 割込みを受けると[事象E(IP)8]、命令プロセッサ122は図9(8) に示す活動A(IP)8を行う。ステップ9(8)−1で、命令プロセッサ12 2はその文脈を保存する。すなわち、命令プロセッサは中断されたブロックと、 そのプログラムカウンタと、中断されたときのレジスタの内容を保存する(例え ば、レジスタメモリ162に)。次にステップ9(8)−2で、命令プロセッサ 122は現在のリスト150内に記憶されているジョブ毎に信号プロセッサ12 4に信号を送り、現在のリスト150の内容を信号プロセッサ124に効果的に 転送する。その後ステップ9(8)−3で、命令プロセッサ122は割込み信号 の新しい優先レベルに変わり、割込み信号に関連するジョブを実行する。 (3) IPが中断されたジョブを再開する 中断されたジョブを命令プロセッサ122が再開すると、事象E(IP)2が 起こる。事象E(IP)2に応じて行う活動A(IP)2を図9(2)に示す。 ステップ9(2)−1で、命令プロセッサ122は中断されたジョブの文脈を復 元する(上記から分かるように、レジスタメモリ162から)。ステップ9(2 )−2で、命令プロセッサ122は復元されたジョブの優先レベルに変わり、復 元されたジョブに関連する信号の実行を再開する。 (4) IPがRPまたは他のIPに信号を送る 命令プロセッサ122が実行するコードが地域プロセッサまたは「他の」命令 プロセッサ向けの信号を生成することを必要とする場合は、事象E(IP)6が 起こる。IP事象E(IP)6に応じて命令プロセッサ122が行う活動を図9 (6)に示す。活動A(IP)6では、命令プロセッサ122は単にこの生成さ れた信号を信号プロセッサ124に送り、現在実行中のブロック(例えば、地域 プロセッサまたは「他の」命令プロセッサの信号が生成されたブロック)内で実 行を続ける。 (5) IPが組合わせ信号または HURRY 信号を送る 命令プロセッサ122が実行するコードが組合わせ信号または HURRY 信号の 生成を必要とする場合は[事象E(IP)10]、命令プロセッサ122はすぐ 状態を組合わせにセットする[図7と、図9(10)のステップ9(10)−1 を参照)]。次にステップ9(10)−2で、命令プロセッサ122は呼出しブ ロック(すなわち、組合わせ信号または HURRY 信号を生成した命令のブロッ ク)を保存し、呼出しブロックの戻りアドレスをそのスタックの一番上に置く。 ステップ9(10)−3で、命令プロセッサ122は組合わせ信号または HURRY 信号による実行に必要な新しいブロックに移り、その新しいブロックの最初か ら実行を開始する。 (6) IPが組合わせ信号または HURRY 信号を出る 命令プロセッサ122が組合わせ信号または HURRY 信号の EXIT 命令に出会 うと、事象E(IP)5が起こる。事象E(IP)5が起こると、図9(5)に 示す活動A(IP)5を行う。ステップ9(5)−1で、命令プロセッサ122 は呼出しブロック(すなわち、組合わせ信号または HURRY 信号を生成したブロ ック)を復元し、呼出しブロック内で実行する次の命令のアドレスを命令プロセ ッサ122のスタックから戻す。ステップ9(5)−2で、命令プロセッサ12 2は、フラグ「最後の Combined_signal_return」がセットされていてスタッ クが空であることを示しているかどうかチェックし、そうであれば、命令プロセ ッサ122の状態を W0RKING 状態にセットする。次にステップ9(5)−3で 、命令プロセッサ122はスタックアドレスで指定された命令から、呼出しブロ ックの実行を再開する。 (7) IPがバッファ信号を送る 命令プロセッサ122が実行する命令がバッファ信号の生成を要求すると[事 象E(IP)11]、命令プロセッサ122はこれに応えて図9(11)に示す 活動A(IP)11を行う。ステップ9(11)−1で、現在実行中のジョブの 優先レベルを評価して、それが最低(「D」)レベルかどうか判定する。そうで あれば、ステップ9(11)−2でバッファ信号を事象E(SP)2として信号 プロセッサ124に送り[図6参照]、バッファ信号生成ブロック内で実行を続 け(ステップ9(11)−3に示すように)、活動A(IP)11を終了する( 記号9(11)−4で示す)。 現在実行中のジョブの優先レベルが最低の優先レベルでない場合は、ステップ 9(11)−5で、次に実行する命令が EXIT 命令かまた フラグSP_Interrupt がセットされていないか、を判定する。ステップ9(11)−5の2つの条件が 肯定的である場合は、(ステップ9(11)−6に示すように)命令プロセッ サ122は出口命令を組み合わせて信号送り命令の一部として実行する。もしス テップ9(11)−5の条件のどちらかが否定的である場合は、命令プロセッサ 122はバッファ信号に関連するジョブを現在のリスト150の最後のジョブと して入れる(ステップ9(11)−7)。ステップ9(11)−6かステップ9 (11)−7が完了すると、記号9(11)−4で示すように活動A(IP)1 1を終了する。 (8) IPがバッファ信号を出る 命令プロセッサ122がバッファ信号に関連するジョブを実行すると、命令プ ロセッサ122は最終的に EXIT 命令に出会う[事象E(IP)4]。バッファ 信号に関連するジョブの EXIT 命令に出会うと、命令プロセッサ122は図9( 4)に示す活動A(IP)4を実行する。「バッファ信号」は前に述べたように 命令プロセッサ122が生成する信号を含むだけでなく、信号プロセッサ124 が命令プロセッサ122のためにスケジュールする全ての信号を含む。 活動A(IP)4に関連して、命令プロセッサ122はステップ9(4)−1 から9(4)−3に示すチェックを行い、全てのチェックが否定的の場合はステ ップ9(4)−4を行って、活動A(IP)4を終了する(記号9(4)−5で 示す)。 ステップ9(4)−1で、命令プロセッサ122は実行中のジョブの優先レベ ルが最低(「D」レベル)かどうか判定する。そうであれば、ステップ9(4) −6で命令プロセッサ122はその状態をIDLE にセットし、EXIT 信号を信号 プロセッサ124に送り、信号プロセッサ124はこれを処理する(図6の事象 E(SP)1参照)。この時点では、現在のリスト150上に記憶されている残 りの信号は実行されない。 ステップ9(4)−2で、命令プロセッサ122はフラグ SP_Interrupt が セットされているかどうかチェックする。SP_Interrupt は図8(4)のステッ プ8(4)−7で、或外部生成信号の優先レベルが高くかつ現在実行中のジョブ の優先レベルが高くないとき、または時間切れが起こったときにセットされる[ 活動A(SP)3、ステップ8(3)−2]。ステップ9(4)−2での判定が 肯定的である場合は、ステップ9(4)−7から9(4)−9を実行した後、 活動A(IP)4を終了する。 ステップ9(4)−7で、命令プロセッサ122はその状態をIDLE にセット する。次にステップ9(4)−8で、現在のリスト150に記憶されているジョ ブ毎に、命令プロセッサ122は信号プロセッサ124に信号を送る([最初か ら最後への順序で]現在のリスト150から信号プロセッサ124にジョブを効 果的に転送する)。信号プロセッサ124は現在のリスト150からの各信号の 転送を事象E(SP)2と見る[図6と活動A(SP)2を参照]。ステップ9 (4)−9で、命令プロセッサ122は EXIT 信号を信号プロセッサ124に送 り、信号プロセッサ124は EXIT 信号を事象E(SP)1と見なして、これに 応えて活動A(SP)1を行う。 ステップ9(4)−1および9(4)−2のチェックが否定的である場合は、 ステップ9(4)−1−3で命令プロセッサ122は現在のリスト150が空で ないかどうか判定する。現在のリスト150が空でない場合は、ステップ9(4 )−10で命令プロセッサ122は現在のリスト150内の第1ジョブに関連す る信号を取り出して、この第1ジョブの実行を開始する。ステップ9(4)−1 0の後、記号9(4)−5に示すように活動A(IP)4を終了する。 上に述べたステップ9(4)−1、9(4)−2、9(4)−3のどれも肯定 的でない場合は、ステップ9(4)−4で命令プロセッサ122はその状態をID EL にセットし、EXIT 信号を信号プロセッサ124に送って、現在のリスト1 50には処理を待っているジョブがもうないことを示す。信号プロセッサ124 は EXIT 信号を事象E(SP)1と見なし、信号プロセッサ124はこれに応え て活動A(SP)1を行う。ステップ9(4)−4の後、記号9(4)−5に示 すように活動A(IP)4を終了する。 上記から分かるように、現在のリスト150内のバッファ信号を実行している と、場合によっては現在のリスト150内の全てのジョブの実行が終わるまで実 行がループ動作として継続することがある。 (9) IPがSPから現在のリストに入れる信号を受ける 上に述べたように、命令プロセッサ122は現在のリスト150に入れる信号 を信号プロセッサ124から受けることがある。これは特に信号プロセッサ12 4が活動A(SP)l[例えばステップ8(1)−8、8(1)−18、8(1 )−20を参照]とA(SP)4[例えばステップ8(4)−9を参照]を実行 するときに起こり、命令プロセッサ122はこれを事象E(IP)9と見なす。 事象E(IP)9に応じて、命令プロセッサ122は活動A(IP)9を行う。 これは図9(9)に示すように単に信号を現在のリスト150の最後の信号とし て入れるだけである(ステップ9(9)−1を参照)。 (10) IPがSPから KILL 信号を受ける 前に述べたように、信号プロセッサ124は「KILL信号を生成する。これは( 例えば)時限が終了したときに起こる(活動A(SP)3、例えばステップ8( 3)−10を参照)。命令プロセッサ122はこの KILL 信号を事象E(IP) 3と見なし、これに応じて図9(3)に示す活動A(IP)3を行う。KILL 信 号を受けると、ステップ9(3)−1で命令プロセッサ122はその状態をIDLE にセットする。次に時限が終了(例えば時間切れ)した結果、ステップ9(3 )−2で命令プロセッサ122は現在のスレッドを実質的に放棄する。 ステップ9(3)−3で、命令プロセッサ122は信号プロセッサ124に EXI T 信号を送る。信号プロセッサ124はこの EXIT 信号を事象E(SP)1と見 なし、前に説明したようにこれに応じて活動A(SP)lを行う[図8(1)参 照]。 (11) IPによるバッファ信号の強制 EXIT バッファ信号の強制 EXIT 命令は、応用プログラムが EXIT を確実に存在させ たいときに起こる。すなわち、他のスレッドを実行できるように小さな遅れを挿 入しなければならない。バッファ信号の強制 EXIT が起こると命令プロセッサ1 22は事象E(IP)7に出会い、これに応えて活動A(IP)7を行う。この ステップを図9(7)に示す。ステップ9(7)−1で、命令プロセッサ122 は現在のリスト150内に残っているジョブ毎に信号プロセッサ124に信号を 送り、現在のリスト150の内容を信号プロセッサ124に効果的に転送する。 その後、命令プロセッサ122はその状態をIDLE にセットする[ステップ9( 7)−2]。次にステップ9(7)−3で、命令プロセッサ122は EXIT 信号 を信号プロセッサ124に送る。信号プロセッサ124はこの EXIT 信号を事 象E(SP)1と見なし、前に説明したようにこれに応じて活動A(SP)1を 行う[図8(1)参照]。 図9(7)に示すステップの代わりに、強制 EXIT と同等の活動として時間遅 れを持つ信号を送ることができる。 図5はこの発明の別の実施の形態で、中央処理装置220に特徴がある。中央 処理装置220は、信号プロセッサ224、バスハンドラ230、共用メモリ2 27(プログラム記憶とデータ記憶を有する)の他に、複数の命令プロセッサ2 221、2222、...、222nを含む。図5の実施の形態の各命令プロセッ サ222は、図4を参照して前に説明した構成を有する。 図5などの多重IP環境で実行するブロックは、1つのブロック内でいくつか の同時実行を処理する必要がある。さもなければ、1ブロック内では一度に1個 のプロセッサだけが実行中であることを確認しなければならない(例えば、異な るスレッドを同期させる信号機能などが必要である)。図5に示すような装置2 20では、いくつかのブロックを1個の命令プロセッサ222にだけ割り当てる 可能性もある。このような構成では、この割り当てられた命令プロセッサ222 はそのデータの一部を特殊な高速メモリに入れることにより、いくつかのジョブ を非常に効率良く実行することができる。しかしトレードオフとして、他の命令 プロセッサ222は文脈を変える必要がある。 上に述べたことから、この発明の命令プロセッサは、主として命令プロセッサ 自身がバッファ信号に関連するジョブを現在のリスト150に入れることにより (例えば、活動A(IP)11のステップ9(11)−7で起こるように[図9 (11)参照])、自分が実行するジョブのスケジューリングを行う。現在実行 中のジョブから出る直前にたまたまバッファ信号を生成しその優先レベルが最低 でない場合は、そして割込みがセットされていない場合は、バッファ信号を生成 したジョブから出るとバッファ信号に関連するジョブを実行する[図9(11) の活動A(IP)11のステップ9(11)−6を参照]。 したがって、バッファ信号の生成の結果実行したジョブから命令プロセッサが 出ると、バッファ信号の優先レベルに従って、また割込みがセットされているか どうかに従って、命令プロセッサはいくつかの代替ステップのどれかを実行する 。 第1の代替ステップは現在のリストから第1の(次の)ジョブを取り出してこれ を実行することを含む[図9(4)の活動A(IP)4のステップ9(4)−1 0を参照]。第2の代替ステップはスケジューリング制御を信号プロセッサ12 4に戻すことを含む。これはバッファ信号の優先レベルが最低のときに起こる[ 図9(4)の活動A(IP)4の9(4)−6を参照]。第3の代替ステップは 現在のリスト150の全内容を信号プロセッサ124に転送することを含む。こ れは割込みが発生したときに起こる[図9(4)の活動A(IP)4のステップ 9(4)−8を参照]。 第1の代替ステップでは、現在のリスト上のジョブが出ると、引き続き現在の リスト上のジョブを順に実行してよい。すなわち、現在のリスト150から取り 出したジョブ(ステップ9(4)−10で)が完了すると、その EXIT 命令によ り(別の)事象E(IP)4が起こり、優先レベルおよび割込み状態に従って、 現在のリスト150上の次の信号の実行に移ることができる。 特に図9(11)のステップ9(11)−5から分かるように、バッファ信号 を生成するジョブの直後にバッファ信号に関連するジョブを実行するかどうかは 、バッファ信号が所定の種類の命令(例えば EXIT 命令)の直前に生成されたか どうかによる。したがって、ジョブが終了するとすぐバッファ信号を実行するに は、そのバッファ信号を生成した命令がジョブ内で所定の順序に列んでいなけれ ばならない。さもないと、バッファ信号に関連するジョブは現在のリスト150 上の残りの信号に従属して他のバッファ信号に関連するジョブの後に実行され、 または信号プロセッサ124に転送されることさえある。 命令プロセッサによるジョブの実行が中断すると、現在のリスト150の全内 容が信号プロセッサ124に転送される。信号プロセッサ124は現在のリスト 150からの信号を、転送された信号の優先レベルに従ってそのバッファ142 の該当する1つに入れる。 一般に命令プロセッサは、新しく実行する信号を信号プロセッサから得る必要 がある場合は(命令プロセッサから EXIT 信号を受けたときに起こる)、経過時 間(最も古いもの)と優先レベル(すなわち、レベルA、B、C、D)に従って バッファ142A−142Bから信号を取り出す[図8(1)の活動A(SP) 1を参照]。優先レベルと取り出したスレッドIDに従ってフラグ「Active_pr iority」と CurrentThread_ID を確立し、取り出した信号を命令プロセッサに 送る[図8(1)のステップ8(1)−19を参照]。更に信号プロセッサは、 取り出したジョブと同じスレッドIDを有するバッファ142A−142B内の ジョブを全て現在のリスト150に送る[図8(1)のステップ8(1)−20 を参照]ので、同じスレッドIDを有するジョブを近接して実行することができ る。 このように、信号プロセッサ124は現在のリスト150に信号を送る機能も 有する。これが特に起こるのは、上に述べたように、命令プロセッサに転送中の 信号と同じスレッド識別を有する少なくとも1つのバッファ内の別の信号を、信 号プロセッサが現在のリストに転送するときである。同様に現在のリスト150 に信号を転送するのは、信号プロセッサが、外部生成信号(地域プロセッサバス ハンドラ30またはプロセッサバスハンドラ31を通して受けた)のスレッドI Dが命令プロセッサ122が処理中の CurrentThreadID であると判定したとき である[図8(4)のステップA(SP)4−5を参照]。 上述の取り出したジョブの優先レベルが「C」か「D」の場合は、信号プロセ ッサは同じ優先レベルのジョブが現在中断されているかどうか判定し、そうであ れば、中断されているジョブの実行を再開し、取り出したジョブをバッファ14 2Cまたは142Dの該当するところに戻す。図8(1)の活動A(SP)1を 参照。 信号プロセッサが優先度の高い信号を受けたときに(例えば、命令プロセッサ から、地域プロセッサから、または「他の」命令プロセッサから)命令プロセッ サがレベルDの信号を実行中であれば、命令プロセッサはレベルD信号の実行を すぐ中断する[例えば、図8(2)のステップ8(2)−7と図8(4)のステ ップ8(4)−8を参照]。 別の実施の形態では、命令プロセッサ122は複数の現在のリスト150A− 150Dを備え、複数の現在のリストはそれぞれ対応する優先レベルに関連する 。例えば、「A」優先レベルを有するジョブは現在のリスト150A上の該当す るところに置かれ、「B」優先レベルを有するジョブは現在のリスト150B上 の 該当するところに置かれる、など。 特に望ましい通信方式では上述の変形を用いてよい。例えば、事象E(SP) 1[命令プロセッサ122から EXIT 信号を受けること]と活動A(SP)1に 関して、適当な別の手続きを行ってよい。一例として、信号プロセッサ124は 命令プロセッサ122からの EXIT 信号を予期しながら先へ進んで、命令プロセ ッサ122向けの信号を予め準備することができる。この場合は、命令プロセッ サ122が EXIT 点に来ると(ここで信号プロセッサ124に情報を要求するは ず)、命令プロセッサ122は準備されたメッセージが待っているかどうかチェ ックする。この手続きによれば、命令プロセッサ122は EXIT 位置で信号プロ セッサ124を待つ必要がない。 有利な点は、現在のリスト150などの機能を備えることにより、この発明の 中央処理装置は高速メモリ(例えば、キャッシュメモリ)を効果的に用いること ができることである。その理由は、この発明の中央処理装置はこの高速メモリの 効果を無にするほど頻繁には文脈を変えないからである。特に、この発明の命令 プロセッサは「キャッシュ化された」データを再使用することができる。この意 味は、スレッド内の前にアクセスしたデータを再使用できるということである。 また、主メモリ(例えば、DRAM)からデータを取り出すことにより、1デー タ語より大きいバッファを一度に取り出すことができる。このように、主メモリ アクセスの多くをキャッシュアクセスで実現できるので、命令プロセッサの負荷 を減らすことができる。 更に、命令プロセッサ122はバッファ信号に関連するジョブを現在のリスト 150の中で自分でスケジュールするので、この発明の中央処理装置は信号プロ セッサ124の仕事の一部を軽減する。或通常のトラヒック混合応用(時間切れ が1ms)では、信号プロセッサ124のかなりの負荷が減少する。 更に、この発明ではバッファ信号は生成されるとすぐ実行されることが多いの で、信号プロセッサ124との通信の負荷が減り、命令プロセッサ122の作業 負荷も減る。 この発明で構成する装置では、命令プロセッサ122のクロック周波数は信号 プロセッサ124のクロック周波数によって制限されることはない。 この発明の中央処理装置は、バッファ信号のスケジューリングを上に述べた従 来の方法より高速で処理する。この発明では主メモリアクセス数は減少するが、 命令プロセッサ122が主メモリアクセス毎に非常に大きなブロックのデータを 取り出すので、メモリ帯域幅は増加する。 この発明では、信号プロセッサがジョブバッファ142A−142Dからジョ ブを取り出す時間間隔が大きいので、信号プロセッサがこれらのジョブの準備を する時間的余裕が大きい。したがって、制御を信号プロセッサに任せると、命令 プロセッサが次のスレッドを取り出すためにIDLE 状態に止まる時間は短い。 この発明は、実行が主体であって地域プロセッサとの相互作用が余り頻繁でな いタスク、例えば、CCITT No.7 送信に基づく中継交換機、ホーム位 置レジスタ(HLR)、サービス制御点(SCP)などに特に有用である。これ らの応用を支援するため、この発明は外部生成信号にスレッドIDSを与えて[ 図6AのステップA(SP)4−1を参照]、同じスレッドに属するジョブを1 つのスレッドとして実行するので、文脈切替えの間に実行するジョブの数を増や すことができる。 またこの発明は、RISCワークステーション上の、例えばエリクソンAXE 10スイッチの中央プロセッサなどの装置のエミュレーションに適用できる(特 にこれらのワークステーションはキャッシュメモリを備えるので)。 更にこの発明の原理から、信号プロセッサや命令プロセッサとして必ずしも別 個のプロセッサを必要としないことが分かる。この点において、この発明は単一 プロセッサを含み、信号プロセッサと命令プロセッサのここに説明した異なる機 能をエミュレートする。 この発明について好ましい実施の形態を参照して図示し説明したが、当業者が 理解するように、この発明の精神と範囲から逸れることなく形式と詳細について 種々の変更を行うことが可能である。 要素表 1410−13 命令プロセッサユニット(IP)・・・・・・・・・・・・・・・・・・ 3 信号処理(SP)ユニット24・・・・・・・・・・・・・・・・・・・ 3 プログラム記憶(PS)26・・・・・・・・・・・・・・・・・・・・ 3 データ記憶(DRS)28・・・・・・・・・・・・・・・・・・・・・ 3 複数の地域プロセッサバスハンドラ(RPH)301,...,n・・・ 3 「他の」プロセッサバスハンドラ(IPB)31・・・・・・・・・・・ 3 保全ユニット(MAU)32・・・・・・・・・・・・・・・・・・・・ 3 バス34と36・・・・・・・・・・・・・・・・・・・・・・・・・・ 3 バス39 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 4 ジョブスケジューラ40・・・・・・・・・・・・・・・・・・・・・・ 4 ジョブバッファ42A−42D・・・・・・・・・・・・・・・・・・・ 4 線52・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 5 線54・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 7 線56・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 8 線58・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 8 命令プロセッサユニット(IP)122・・・・・・・・・・・・・・・13 信号処理(SP)ユニット124・・・・・・・・・・・・・・・・・・13 プログラム記憶(PS)126・・・・・・・・・・・・・・・・・・・13 データ記憶(DRS)128・・・・・・・・・・・・・・・・・・・・13 複数の地域プロセッサバスハンドラ(RPH)1301,...,n ・・13 「他の」プロセッサバスハンドラ(IPB)131・・・・・・・・・・13 現在のリストメモリ150・・・・・・・・・・・・・・・・・・・・・14 中央処理装置(CPU)160・・・・・・・・・・・・・・・・・・・14 RM(これは何か?)162・・・・・・・・・・・・・・・・・・・・14 高速メモリ164・・・・・・・・・・・・・・・・・・・・・・・・・14 メモリアクセス/インターフェース166・・・・・・・・・・・・・・14 キャッシュメモリ168A−168C・・・・・・・・・・・・・・・・14 メモリカード170A−170G・・・・・・・・・・・・・・・・・・14 メモリバス172・・・・・・・・・・・・・・・・・・・・・・・・・14 線154・・・・・・・・・・・・・・・・・・・・・・・・・・・・・17 線152・・・・・・・・・・・・・・・・・・・・・・・・・・・・・22 中央処理装置220・・・・・・・・・・・・・・・・・・・・・・・・23 信号プロセッサ224・・・・・・・・・・・・・・・・・・・・・・・23 バスハンドラ230・・・・・・・・・・・・・・・・・・・・・・・・23 共用メモリ227・・・・・・・・・・・・・・・・・・・・・・・・・23
【手続補正書】特許法第184条の8第1項 【提出日】1998年1月15日(1998.1.15) 【補正内容】 (請求の範囲) 16. 複数の現在のリストメモリが前記命令プロセッサにより保持される、請 求項1に記載の処理装置。 17. 各前記複数の現在のリストメモリは対応する優先レベルに関連する、請 求項16に記載の処理装置。 18. 処理装置であって、信号プロセッサは命令プロセッサが実行するジョブ をスケジュールして前記命令プロセッサが或ジョブを実行するときジョブ関連信 号を前記命令プロセッサに送り、前記信号プロセッサは前記処理装置外で生成さ れたまた前記命令プロセッサからの信号を受け、改善点は、 現在のリストメモリが前記命令プロセッサにより保持され、前記命令プロセッ サが実行する現在のジョブから、実行する新しいジョブに関連するバッファ信号 を前記命令プロセッサが生成すると、前記命令プロセッサは前記新しいジョブに 関連する前記バッファ信号を前記現在のリスト内に記憶し、前記現在のリストは 前記命令プロセッサが実行するために前記信号プロセッサがスケジュールする信 号のリストであり、また或外部生成信号の優先レベルと前記命令プロセッサが実 行する前記現在のジョブの優先レベルとが所定の関係を有するときは前記命令プ ロセッサは前記現在のリストの内容を前記信号プロセッサに転送する、 ことを含む、処理装置。 19. 前記所定の関係は、前記外部生成信号の優先レベルが最高の優先レベル でありかつ前記命令プロセッサが実行中の現在のジョブの優先レベルを超えるこ とである、請求項18に記載の処理装置。 20. 前記命令プロセッサが実行する現在のジョブの優先レベルが最低であり かつ前記外部生成信号が前記最低の優先レベルより高い優先レベルを持つ場合は 、前記信号プロセッサは前記命令プロセッサが実行中の前記現在のジョブを中断 する、請求項18に記載の処理装置。 21. 前記信号プロセッサは、前記信号プロセッサがスケジュールしたジョブ を実行する前記命令プロセッサによりエミュレートされる、請求項18に記載の 処理装置。 22. 信号プロセッサは命令プロセッサが実行するジョブをスケジュールして 前記信号プロセッサがスケジュールしたジョブを前記命令プロセッサが実行する ときジョブ関連信号を前記命令プロセッサに送る、処理装置の操作方法であって 、改善点は、 前記命令プロセッサは現在のリストを保持し、前記命令プロセッサが実行する 現在のジョブから、実行する新しいジョブに関連するバッファ信号を前記命令プ ロセッサが生成すると、前記命令プロセッサは前記新しいジョブに関連する前記 バッファ信号を前記現在のリスト内に記憶する ことを含む、処理装置の操作方法。 39. 処理装置の操作方法であって、信号プロセッサは命令プロセッサが実行 するジョブをスケジュールして前記命令プロセッサが或ジョブを実行するときジ ョブ関連信号を前記命令プロセッサに送り、前記処理装置は前記処理装置外で生 成されたまた前記命令プロセッサからの信号を受け、改善点は、 前記命令プロセッサは現在のリストを保持し、前記命令プロセッサが実行する 現在のジョブから、実行する新しいジョブに関連するバッファ信号を前記命令プ ロセッサが生成すると、前記命令プロセッサは前記新しいジョブに関連する前記 バッファ信号を前記現在のリスト内に記憶し、前記現在のリストは前記命令プロ セッサが実行するために前記信号プロセッサがスケジュールする信号のリストで あり、 また或外部生成信号の優先レベルと前記命令プロセッサが実行する前記現在の ジョブの優先レベルとが所定の関係を有するときは、前記命令プロセッサは前記 現在のリストの内容を前記信号プロセッサに転送する、 ことを含む、処理装置の操作方法。 40. 前記所定の関係は、前記外部生成信号の優先レベルが最高の優先レベル でありかつ前記命令プロセッサが実行中の現在のジョブの優先レベルを超えるこ とである、請求項39に記載の処理装置の操作方法。
───────────────────────────────────────────────────── フロントページの続き (81)指定国 EP(AT,BE,CH,DE, DK,ES,FI,FR,GB,GR,IE,IT,L U,MC,NL,PT,SE),OA(BF,BJ,CF ,CG,CI,CM,GA,GN,ML,MR,NE, SN,TD,TG),AP(KE,LS,MW,SD,S Z,UG),UA(AM,AZ,BY,KG,KZ,MD ,RU,TJ,TM),AL,AM,AT,AU,AZ ,BA,BB,BG,BR,BY,CA,CH,CN, CU,CZ,DE,DK,EE,ES,FI,GB,G E,HU,IL,IS,JP,KE,KG,KP,KR ,KZ,LC,LK,LR,LS,LT,LU,LV, MD,MG,MK,MN,MW,MX,NO,NZ,P L,PT,RO,RU,SD,SE,SG,SI,SK ,TJ,TM,TR,TT,UA,UG,UZ,VN 【要約の続き】 現在のリスト内の全ての残りのジョブを信号プロセッサ に送るか[信号プロセッサが命令プロセッサに割込みを 与えている場合]、または(3)現在のリストから別の ジョブを取り出して実行する。

Claims (1)

  1. 【特許請求の範囲】 排他的所有権すなわち特権を主張するこの発明の実施の形態を次のように規定 する。 1. 信号プロセッサは命令プロセッサが実行するジョブをスケジュールして前 記命令プロセッサが次に実行するジョブを要求するとジョブ関連信号を前記命令 プロセッサに送る、処理装置であって、改善点は、 現在のリストメモリは前記命令プロセッサにより保持され、前記命令プロセッ サが実行する現在のジョブから、実行する新しいジョブに関連するバッファ信号 を前記命令プロセッサが生成すると、前記命令プロセッサは前記新しいジョブに 関連する前記バッファ信号を前記現在のリスト内に記憶する ことを含む、処理装置。 2. 前記命令プロセッサは前記新しいジョブに関連する前記バッファ信号を、 前記バッファ信号を生成した現在のジョブの優先レベルに従って前記現在のリス ト内に選択的に記憶する、請求項1に記載の処理装置。 3. 前記命令プロセッサは前記新しいジョブに関連する前記バッファ信号を、 前記信号プロセッサが前記命令プロセッサに割込みを与えているかどうかに従っ て前記現在のリスト内に選択的に記憶する、請求項1に記載の処理装置。 4. 前記バッファ信号を生成した現在のジョブ内の命令が前記現在のジョブ内 で所定の順序になっている場合は前記新しいジョブはすぐ実行される、請求項1 に記載の処理装置。 5. 前記バッファ信号を生成した現在のジョブ内の前記命令が前記現在のジョ ブの EXIT 命令の直前にある場合は前記新しいジョブはすぐ実行される、請求項 4に記載の処理装置。 6. 前記命令プロセッサは、前記新しいジョブに関連する前記バッファ信号を 前記現在のリスト内の所定の位置に記憶する、請求項1に記載の処理装置。 7. 前記命令プロセッサは、前記新しいジョブに関連する前記バッファ信号を 前記現在のリスト内の最後のジョブとして記憶する、請求項6に記載の処理装置 。 8. 前記命令プロセッサが或バッファ信号に関連するジョブの実行を終了する と、前記バッファ信号に関連するジョブが所定の優先レベルを持つ場合は前記命 令プロセッサは前記信号プロセッサに EXIT 信号を送る、請求項1に記載の処理 装置。 9. 前記所定の優先レベルは最低の優先レベルである、請求項8に記載の処理 装置。 10. 前記命令プロセッサが或バッファ信号に関連するジョブの実行を終了す ると、前記信号プロセッサが前記命令プロセッサに割込みを与えている場合は前 記命令プロセッサは前記現在のリスト内の全ての残りのジョブを前記信号プロセ ッサに送る、請求項1に記載の処理装置。 11. 前記命令プロセッサが或バッファ信号に関連するジョブの実行を終了す ると、前記命令プロセッサは前記現在のリストから別のジョブを取り出して実行 する、請求項1に記載の処理装置。 12. 前記命令プロセッサが或バッファ信号に関連するジョブの実行を終了す ると、前記命令プロセッサは以下の、 (A) 前記バッファ信号に関連するジョブが所定の優先レベルを持つ場合は EXIT 信号を前記信号プロセッサに送る、 (B) 前記信号プロセッサが前記命令プロセッサに割込みを与えている場合 は、前記現在のリスト内の全ての残りのジョブを前記信号プロセッサに送る、 (C) 前記現在のリストから別のジョブを取り出して実行する、 のどれかを選択的に実行する、請求項1に記載の処理装置。 13. 前記信号プロセッサは、前記信号プロセッサがスケジュールしたジョブ を実行する前記命令プロセッサによりエミュレートされる、請求項1に記載の処 理装置。 14. 前記信号プロセッサは前記現在のリスト上の信号を選択的に記憶する、 請求項1に記載の処理装置。 15. 信号を取り出して前記命令プロセッサに送る少なくとも1個のバッファ を前記信号プロセッサが備えるとき、また前記信号プロセッサが前記命令プロセ ッサに信号を送るとき、前記信号プロセッサは、その少なくとも1個のバッファ 内にあって前記命令プロセッサに転送中の信号と同じスレッド識別を持つ別の信 号を前記現在のリストに転送する、請求項14に記載の処理装置。 16. 複数の現在のリストメモリが前記命令プロセッサにより保持される、請 求項1に記載の処理装置。 17. 各前記複数の現在のリストメモリは対応する優先レベルに関連する、請 求項16に記載の処理装置。 18. 処理装置であって、信号プロセッサは命令プロセッサが実行するジョブ をスケジュールして前記命令プロセッサが或ジョブを実行するときジョブ関連信 号を前記命令プロセッサに送り、前記信号プロセッサは前記処理装置外で生成さ れたまた前記命令プロセッサからの信号を受け、改善点は、 前記命令プロセッサからまたは前記処理装置の外部から信号を受けたとき、受 けた信号の優先レベルが最高の優先レベルでありかつ前記命令プロセッサが実行 中の現在のジョブの優先レベルを超えるときは、前記信号プロセッサは前記命令 プロセッサに割込みを与える、 ことを含む、処理装置。 19. 現在のリストメモリが前記命令プロセッサにより保持され、前記命令プ ロセッサが実行する現在のジョブから、実行する新しいジョブに関連するバッフ ァ信号を前記命令プロセッサが生成すると、前記命令プロセッサは前記新しいジ ョブに関連する前記バッファ信号を前記現在のリストに記憶し、また外部生成信 号の優先レベルが最高の優先レベルでありかつ前記命令プロセッサが実行中の現 在のジョブの優先レベルを超えるときは、前記現在のリストの内容は前記信号プ ロセッサに転送される、請求項18に記載の処理装置。 20. 前記命令プロセッサが実行する現在のジョブの優先レベルが最低であり かつ前記外部生成信号が前記最低の優先レベルより高い優先レベルを持つ場合は 、前記信号プロセッサは前記命令プロセッサが実行中の前記現在のジョブを中断 する、請求項18に記載の処理装置。 21. 前記信号プロセッサは、前記信号プロセッサがスケジュールしたジョブ を実行する前記命令プロセッサによりエミュレートされる、請求項18に記載の 処理装置。 22. 信号プロセッサは命令プロセッサが実行するジョブをスケジュールして 前記信号プロセッサがスケジュールしたジョブを前記命令プロセッサが実行する ときジョブ関連信号を前記命令プロセッサに送る、処理装置の操作方法であって 、改善点は、 前記命令プロセッサは現在のリストを保持し、前記命令プロセッサが実行する 現在のジョブから、実行する新しいジョブに関連するバッファ信号を前記命令プ ロセッサが生成すると、前記命令プロセッサは前記新しいジョブに関連する前記 バッファ信号を前記現在のリスト内に記憶する ことを含む、処理装置の操作方法。 23. 前記命令プロセッサは前記新しいジョブに関連する前記バッファ信号を 、前記バッファ信号を生成した現在のジョブの優先レベルに従って前記現在のリ スト内に選択的に記憶する、請求項22に記載の処理装置の操作方法。 24. 前記命令プロセッサは前記新しいジョブに関連する前記バッファ信号を 、前記信号プロセッサが前記命令プロセッサに割込みを与えているかどうかに従 って前記現在のリスト内に選択的に記憶する、請求項22に記載の処理装置の操 作方法。 25. 前記バッファ信号を生成した現在のジョブ内の命令が前記現在のジョブ 内で所定の順序になっている場合は前記新しいジョブはすぐ実行される、請求項 22に記載の処理装置の操作方法。 26. 前記バッファ信号を生成した現在のジョブ内の前記命令が前記現在のジ ョブの EXIT 命令の直前にある場合は前記新しいジョブはすぐ実行される、請求 項23に記載の処理装置の操作方法。 27. 前記命令プロセッサは、前記新しいジョブに関連する前記バッファ信号 を前記現在のリスト内の所定の位置に記憶する、請求項22に記載の処理装置の 操作方法。 28. 前記命令プロセッサは、前記新しいジョブに関連する前記バッファ信号 を前記現在のリスト内の最後のジョブとして記憶する、請求項27に記載の処理 装置の操作方法。 29. 前記命令プロセッサが或バッファ信号に関連するジョブの実行を終了す ると、前記バッファ信号に関連するジョブが所定の優先レベルを持つ場合は前記 命令プロセッサは前記信号プロセッサに EXIT 信号を送る、請求項22に記載の 処理装置の操作方法。 30. 前記所定の優先レベルは最低の優先レベルである、請求項29に記載の 処理装置の操作方法。 31. 前記命令プロセッサが或バッファ信号に関連するジョブの実行を終了す ると、前記信号プロセッサが前記命令プロセッサに割込みを与えている場合は前 記命令プロセッサは前記現在のリスト内の全ての残りのジョブを前記信号プロセ ッサに送る、請求項22に記載の処理装置の操作方法。 32. 前記命令プロセッサが或バッファ信号に関連するジョブの実行を終了す ると、前記命令プロセッサは前記現在のリストから別のジョブを取り出して実行 する、請求項22に記載の処理装置の操作方法。 33. 前記命令プロセッサが或バッファ信号に関連するジョブの実行を終了す ると、前記命令プロセッサは以下の、 (A) 前記バッファ信号に関連するジョブが所定の優先レベルを持つ場合は EXIT 信号を前記信号プロセッサに送る、 (B) 前記信号プロセッサが前記命令プロセッサに割込みを与えている場合 は、前記現在のリスト内の全ての残りのジョブを前記信号プロセッサに送る、 (C) 前記現在のリストから別のジョブを取り出して実行する、 のどれかを選択的に実行する、請求項22に記載の処理装置の操作方法。 34. 前記信号プロセッサは、前記信号プロセッサがスケジュールしたジョブ を実行する前記命令プロセッサによりエミュレートされる、請求項22に記載の 処理装置の操作方法。 35. 前記信号プロセッサは前記現在のリスト上の信号を選択的に記憶する、 請求項22に記載の処理装置の操作方法。 36. 信号を取り出して前記命令プロセッサに送る少なくとも1個のバッファ を前記信号プロセッサが備えるとき、また前記信号プロセッサが前記命令プロセ ッサに或信号を送るとき、前記信号プロセッサは、その少なくとも1個のバッフ ァ内にあって前記命令プロセッサに転送中の信号と同じスレッド識別を持つ別の 信号を前記現在のリストに転送する、請求項33に記載の処理装置の操作方法。 37. 複数の現在のリストメモリが前記命令プロセッサにより保持される、請 求項22に記載の処理装置の操作方法。 38. 各前記複数の現在のリストメモリは対応する優先レベルに関連する、請 求項22に記載の処理装置の操作方法。 39. 処理装置の操作方法であって、信号プロセッサは命令プロセッサが実行 するジョブをスケジュールして前記命令プロセッサが或ジョブを実行するときジ ョブ関連信号を前記命令プロセッサに送り、前記処理装置は前記処理装置外で生 成されたまた前記命令プロセッサからの信号を受け、改善点は、 前記命令プロセッサからまたは前記処理装置の外部から信号を受けたとき、外 部生成信号の優先レベルが最高の優先レベルでありかつ前記命令プロセッサが実 行中の現在のジョブの優先レベルを超えるときは、前記信号プロセッサは前記命 令プロセッサに割込みを与える、 ことを含む、処理装置の操作方法。 40. 前記命令プロセッサは現在のリストメモリを保持し、前記命令プロセッ サが実行する現在のジョブから、実行する新しいジョブに関連するバッファ信号 を前記命令プロセッサが生成すると、前記命令プロセッサは前記新しいジョブに 関連する前記バッファ信号を前記現在のリストに記憶し、また外部生成信号の優 先レベルが最高の優先レベルでありかつ前記命令プロセッサが実行中の現在のジ ョブの優先レベルを超えるときは、前記現在のリストの内容を前記信号プロセッ サに転送する、請求項39に記載の処理装置の操作方法。 41. 前記命令プロセッサが実行する現在のジョブの優先レベルが最低であり かつ前記外部生成信号が前記最低優先レベルより高い優先レベルを持つ場合は、 前記信号プロセッサは前記命令プロセッサが実行中の前記現在のジョブを中断す る、請求項39に記載の処理装置の操作方法。
JP09522721A 1995-12-19 1996-12-19 命令プロセッサのジョブスケジューリング Ceased JP2000502202A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US57497795A 1995-12-19 1995-12-19
US08/574,977 1995-12-19
PCT/SE1996/001706 WO1997022927A1 (en) 1995-12-19 1996-12-19 Job scheduling for instruction processor

Publications (2)

Publication Number Publication Date
JP2000502202A true JP2000502202A (ja) 2000-02-22
JP2000502202A5 JP2000502202A5 (ja) 2004-11-04

Family

ID=24298404

Family Applications (1)

Application Number Title Priority Date Filing Date
JP09522721A Ceased JP2000502202A (ja) 1995-12-19 1996-12-19 命令プロセッサのジョブスケジューリング

Country Status (7)

Country Link
EP (1) EP0868690A1 (ja)
JP (1) JP2000502202A (ja)
KR (1) KR20000064491A (ja)
CN (1) CN1209207A (ja)
AU (1) AU714853B2 (ja)
CA (1) CA2240778A1 (ja)
WO (1) WO1997022927A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103246591A (zh) * 2013-04-26 2013-08-14 华为技术有限公司 信号处理的方法和装置

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4489958B2 (ja) 1998-11-16 2010-06-23 テレフオンアクチーボラゲット エル エム エリクソン(パブル) イベントベースシステムの同時処理
SE9803901D0 (sv) * 1998-11-16 1998-11-16 Ericsson Telefon Ab L M a device for a service network
JP2001022600A (ja) * 1999-07-06 2001-01-26 Matsushita Electric Ind Co Ltd ディジタル信号処理装置
CA2453423C (fr) * 2001-07-12 2014-10-14 Vision Iq Procede et systeme pour fournir des informations formatees a des moyens de traitement d'images
KR101355295B1 (ko) * 2006-08-29 2014-02-07 엔에이치엔엔터테인먼트 주식회사 온라인 게임에서 메시지 송신 제어 방법 및 장치
CN108549578B (zh) * 2017-12-25 2020-02-07 贵阳忆芯科技有限公司 一种中断聚合装置及其方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4286322A (en) * 1979-07-03 1981-08-25 International Business Machines Corporation Task handling apparatus
EP0243402B1 (en) * 1985-10-15 1991-01-02 Unisys Corporation A special purpose processor for off-loading many operating system functions in a large data processing system

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103246591A (zh) * 2013-04-26 2013-08-14 华为技术有限公司 信号处理的方法和装置

Also Published As

Publication number Publication date
WO1997022927A1 (en) 1997-06-26
CN1209207A (zh) 1999-02-24
KR20000064491A (ko) 2000-11-06
AU714853B2 (en) 2000-01-13
AU1218897A (en) 1997-07-14
EP0868690A1 (en) 1998-10-07
CA2240778A1 (en) 1997-06-26

Similar Documents

Publication Publication Date Title
US5390329A (en) Responding to service requests using minimal system-side context in a multiprocessor environment
US6434630B1 (en) Host adapter for combining I/O completion reports and method of using the same
EP1131739B1 (en) Batch-wise handling of job signals in a multiprocessing system
US5247671A (en) Scalable schedules for serial communications controller in data processing systems
CA2200929C (en) Periodic process scheduling method
US20090271549A1 (en) Interrupt handling using simultaneous multi-threading
US20020161957A1 (en) Methods and systems for handling interrupts
JPH03126158A (ja) スケジユーリング方法及び装置
JPH06309252A (ja) 相互接続インタフェース
CN101014937A (zh) 用于多事件队列的中断管理
JPH06202883A (ja) プロセス間通信装置及び通信方法
JPH09128252A (ja) 優先度付きタスク実行制御方法及びデータ処理装置
KR20030007447A (ko) 내부 프로세서 메모리 공간을 이용한 고속 데이터 처리
JP2007079789A (ja) 計算機システム及びイベント処理方法
KR100617228B1 (ko) 실시간 운영체계 커널의 이벤트 전달 체계 구현방법
JP2002530734A (ja) ジョブ並列プロセッサ
JP2000502202A (ja) 命令プロセッサのジョブスケジューリング
JP2001282558A (ja) マルチオペレーティング計算機システム
JP3245500B2 (ja) マルチプログラミングにおける事象管理方式
WO2000023891A1 (en) A processor
US6675238B1 (en) Each of a plurality of descriptors having a completion indicator and being stored in a cache memory of an input/output processor
CN100440153C (zh) 处理器
CN109426562B (zh) 优先级加权轮转调度器
CN117873665A (zh) 任务处理方法、芯片、电子设备及可读存储介质
US7320044B1 (en) System, method, and computer program product for interrupt scheduling in processing communication

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20031216

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20031216

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060110

A313 Final decision of rejection without a dissenting response from the applicant

Free format text: JAPANESE INTERMEDIATE CODE: A313

Effective date: 20060529

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20060704