JPH02502764A - 多重処理を行なう方法および構成 - Google Patents

多重処理を行なう方法および構成

Info

Publication number
JPH02502764A
JPH02502764A JP62504590A JP50459087A JPH02502764A JP H02502764 A JPH02502764 A JP H02502764A JP 62504590 A JP62504590 A JP 62504590A JP 50459087 A JP50459087 A JP 50459087A JP H02502764 A JPH02502764 A JP H02502764A
Authority
JP
Japan
Prior art keywords
processor
event
function
slave
occurrence
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
JP62504590A
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 JPH02502764A publication Critical patent/JPH02502764A/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/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
    • 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/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

Abstract

(57)【要約】本公報は電子出願前の出願データであるため要約のデータは記録されません。

Description

【発明の詳細な説明】 多重処理を行なう方法および構成 [技術分野] 本発明は、概してマルチプロセッサ・システムに関する。特に、マルチプロセッ サ・システムにおいて、諸機能を分散しプロセッサ間で制御の移動を行なう方法 に関する。
[背景技術と問題点] 単一プロセッサのコンピュータ・システムに比較し、マルチプロセッサ・コンピ ュータ・システムは、概して、ハードウェアおよびソフトウェアの両面において 設計が複雑である0例えば、マルチプロセッサ・システムでは、一般に、特殊で 複雑なプロセ・7す間通信の機構およびプロトコル、複数のプロセッサが共有の 入出力資源にアクセスするための特別な手はず、およびプロセ・フサ間の競合状 態ならびに同時アクセスによる衝突を回避するためにメモリやその他の資源をロ ックする手はずが必要である。
これら多くの複雑さをは主従プロセッサ構造によって避けることができる。この 構造において、−個またはそれ以上の従プロセツサは、ユーザー命令の処理のみ を行ない、オペレーティング・システムのサービス処理は主プロセツサに譲る。
Iloおよびその他の装置に関して言えば、このようなシステムは主プロセ・y すから成る単一プロセッサとして映るので、そのようなものとして相互に作用し 合う、共有資源のロック、競合状態の回避、およびそのほかのプロセッサ相互間 の協力関係を伴うオペレーティング・システムの多くの複雑さは、これにより回 避することができる。
しかし、このようなマルチプロセッサ・システムの設計には依然として大いに複 雑であることには変わりなく、特に、複数のプロセッサが一方から他方へと通信 を行なったり、制御を移しなりする必要があるため番ミ オペレーティング・シ ステムのソフトウェアは複雑である。従って、この技術において問題となるのは 、単一プロセッサは、−iに、発達してもマルチプロセッサとは成り得す、また オペレーティング・システムの包括的な設計によってのみ単一プロセッサをマル チプロセッサに変えることができ、しかも単一プロセッサ・システム設計からマ ルチプロセッサ・システム設計への転換のために為されるべき変更はアプリケー ション・プログラムに対して明白ではない、と言う点である。
[解決法] 本発明は、前記の従来技術の問題点を解決することをその目的とする。具体的に 説明すると、本発明によれば、マルチプロセッサ・システムにおいては、次のよ うな動作が行われる。すなわち、複数の所定の事象、例えば、オペレーティング ・システム・サービスの発動に導く割り込みおよびその他の事象のうちどれかが 第1の、すなわち、従たるプロセッサに発生したことが検出され、その発生した 事象に関連付けられた標識を調べどの機能を実行して応答すべきかが決定される 。その後、その指示された機能が実行され、そしてそれにより、第1のプロセッ サで実行されていたプロセスは第2の、すなわち、主たるプロセッサへと移され 実行される。
従って、第1のプロセッサにオペレーティング・システム・サービスの呼び出し をもたらすような事象が発生すると、その呼び出しの原因となったプロセスは第 2のプロセッサに移され、そこで、求めるサービスが与えられ好都合である。実 際に説明すると、移されるプロセスは、事象が検出された時に実行されていたも のである。第2のプロセッサ上でサービスを供給することは、次のようにして行 なわれる。すなわち、発生した事象に関連付けられている別の標識が調べられ、 第2のプロセッサでどの機能を果たして応答すべきかが決められる。実際に説明 すると、移されたプロセスが第2の主たるプロセッサ上で実行されている最中に 同じ事象が再発生した場合、もう一方の標識が調べられることになるしかしこの 場合、確認される機能は、その発生した′J4象を処理するためのものであり、 更に実際に説明すると、要求されたサービスを提供するものである。
そして、本発明によれば、第1および第2のプロセッサを含むマルチプロセッサ ・システムには、また、次のものが含まれる。
すなわち、果たされた場合所定の事象のどれかが発生したときに第1のプロセッ サで実行されたいたプロセスが第2のプロセッサに移されて実行される結果に至 る第1の機能、前記事象のどれかの発生に応じて第1のプロセッサ上で果たされ るべき機能として、第1の機能を特定する第1の標識、および前記事象のどれか が第1のプロセッサに発生した場合その第1の標識により特定された機能を果た すための手はずである。このような構成により、プロセスのプロセッサ相互間の 移転が実現される。
実際に説明すると、要求されたオペレーティング・システム・サービスを提供す るために、マルチプロセッサには、更に、果たされた場合その事象を処理する第 2の機能、事象の発生に応じて第2のプロセッサ上で果たされるべき機能として 第2の機能を特定する第2の標識、および移されたプロセスが第2のプロセッサ 上で実行を開始したとき第2の標識により特定された機能を果たすための手はず も含まれる。
本発明を実証するための一実施例によれば、第1および第2の標識は、複数の第 1の標識および複数の第2の標識のそれぞれ1個ずつである。各複数の標識は、 事象の別個の1つにそれぞれ関係付けられ、第1の標識の場合は第1のプロセッ サ上で第2の標識の場合は第2のプロセッサ上でその関係付けられた事象が発生 したときにそれに応じて果たされるべき機能を示す、実際に説明すると、これら の標識とは、割り込みベクトルのことである。第1に標識は、すべて第1の機能 を示すが、第2の標識は、複数の第2の機能の別個の1つを、それぞれ潜在的に 示す、第2の機能の各々は、それが果たされた場合、それに関係付けられた事象 を処理する。
マルチプロセッサ・システムを主従構成で動作させる利点は、その結果として、 次のようにオペレーティング・システムが単純になることである。すなわち、メ モリ・ロック機構および競合状態解決法に伴う複雑さがかなり減少し、それによ りユーザーおよび入出力(Ilo)のインターフェースに関する複雑さが避けら れる0以上に要約した方法で主従型のマルチプロセッサ・システムを構成し動作 させることにより、オペレーティング・システムが更に単純になり、更にまたマ ルチプロセッサのハードウェアも単純になる。先ず都合の良いことは、マルチプ ロセッサは現在単一プロセッサから構成することができることである。すなわち 、そのためには、(例えば、新しいプロセッサのハードウェアを単一プロセッサ の通信用バスのスロットに単に接続するなどして)従来の単一プロセッサ・シス テムに従来のプロセッサのハードウェアを単に追加し、更にその単一プロセッサ ・システムのオペレーティング・システム・ソフトウェアに最小限の変更を行な えばよい0次に都合の良いことは、従プロセツサにおいてオペレーティング・シ ステムのサービスをそれにより呼び出す多数のルーチンに対し従来であれば行な う必要のあった変更を行なわずに済むことである。変更が最小限となることによ り、マルチプロセッサのオペレーティング・システム・ソフトウェアはその単一 プロセッサにおいて性能を損なうことなく効率的に実行することができ、その結 果、例えば稼動現場などで将来マルチプロセッサへとグレード・アップする場合 オペレーティング・システムには全く変更を要しない単一プロセッサ・システム を構築することが可能となる。
本発明の結果として、以下の利点がある。マルチプロセッサ・システムに変換す るために単一プロセッサのオペレーティング・システムに施すべき変更は、ユー ザーおよびIloのインターフェースには手を加えることなくソース・コードお よびバイナリ・コードに既存のアプリケーションとの互換性を与える性質のもの である。顧客、ユーザー、および開発者の観点からすれば、このような多重処理 への変換は、オペレーティング・システムに非互換性または複雑さをもたらすも のではない、これに加えて、そのマルチプロセッサ・システムにより提供される 全ての機能性は、アプリケーションが実行されているプロセッサを問わず、全て のアプリケーションに対して有効であり、全プロセッサに単一の仮想マシーンの イメージが現われるに過ぎない、このように、単一プロセッサ・システムの性能 は、再コーディング、再コンパイル、再設計、再分配、再フォ−マツト、再すン 久作り直し、製構成、または既存アプリケーションの交換などを行なう必要もな くマルチプロセッサ・システムへとシステムを拡張することにより、向上させる ことが可能である。
[図面の簡単な説明] 本発明による前記およびその他の特徴および利点は、本発明を例証するために図 面を添付して取り上げた一実施例に付いての以下の説明から、明かとなろう。
第1図は、本発明を実証する一実施例を例示するコンピュータ・システムのブロ ック線図、 第2図は、第1図のシステムのプロセス・コントロール・プロ第3図は、第1図 のシステムのシステム・コールのマイクロシーケンス・ルーチンの流れ線図、 第4図は、特権モードで実行されるプロセスを第1図に示す従プロセツサから主 プロセツサへ切り替えることを保証することに伴う段階を要約した流れ線図、 第5図から第16図までは、第1図に示すシステムのオペレーティング・システ ムのいろいろなルーチンの流れ線図である。
[詳細な説明] 第1図に、AT&T製コンピュータ3B15を基本としたマルチプロセッサ・シ ステムの一実施例を示す、この3B15システムは複数の単位装置すなわち部局 5tationから成り、そのうちの4つの部局12.13.26、および27 を示した。システムが行なう必要のある種々の機能がそれら部局間に割り当てら れている。
このシステムの各部局はある機能を専門に行ない、その機能は一般的に他の部局 のそれとは異なるが、部局どうしは互いに協力してシステムの仕事を実行する。
このように、例えば、第1の部局12は、データ処理動作およびシステムの動作 の調整を行なう主要なプロセッサおよびシステムの中央制御装置として機能を果 たす、第2の部局13は、プロセッサ12で実行中のプログラムのメモリへの格 納ならびに取り出しの制御、およびプログラム実行中に必要とされるまたは作り 出されるデータの制御を与える。そして、第3および第4の部局26.27は、 人8力制御装置(IOC)として機能を果たすために、システムにバルク(IC メモリ以外の)記憶装置を与えたり外部と通信を行なう種々の周辺装置の機能を 制御・調整する0部局12.13.26、および27と似たまたはそうでない機 能的能力を備えた他の部局(図示せず)を3B15に含めることもできる。各部 局の機能は、内部の構成によって支配され、インテリジェント部局の場合はその プログラムが実行中のプログラムによって指示される。システムが当てられるア プリケーションの要求に応じて、そのシステムに対し部局の追加または削除を行 なうことができる。
システムの仕事を実行する上で互いに協力するために、システムの部局は、ロー カル・バス<LB)11により互いに接続されており、このバスが部局に対する 通信媒体として働くことにより、システムのどの部局もその他の部局と通信する ことが可能となる。
コンピュータ3B15のハードウェアは、第2のプロセッサ25をローカル・バ ス11に接続することにより、マルチプロセッサ構造へと拡張されている。単一 基板プロセッサは、他の部局の要領で一つの拡張部局スロットに接続する。しか し、2枚基板プロセッサ(例えば、その1枚は従来の3B15プロセツサ12と 同じもの)であれば、ローカル・バス11の二つの拡張部局スロットを要する。
この後者の配置においては、プロセッサ25の2枚の基板の間にそれらのプロセ ッサ固有の通信手段を追加して接続することにより、プロセッサ12専用の2つ の部局スロット間のローカル・バス11により既に与えられている通信手段と同 等の通信手段を備える必要がある。プロセッサ25を実現するために採用した基 板構造に関わりなく、110周辺の割り込みは全てローカル・バス11により主 プロセツサ12にのみ接続さ九従プロセッサ25には接続されていない、これは ローカル・バス11と並行に走る波線により第1図に示されている。
参考のために言えば、プロセッサ12.25の各々は、そのプロセッサの中央処 理装置(CPU)の役を果たす1個のAT&T製マイクロプロセッサWE321 1.2個のディマンドベージド・メモリ管理ユニット(MMU)WE32101 、および1個のマツチ加速ユニット(MAU)WE32106から成る。これら のユニットはまとめて100と表示しである。プロセッサ12および25はメモ リ13を共有してはいるが、各々は101と表示されたそれぞれの基板専用のメ モリ、すなわち固有のメモリを持っている。I10ユニット26−27は、ディ マンドページド・メモリ13をサポートするディスクを含んでいる。
プロセッサ12.25は、AT&Tのディマントベージ版のUNIXオペレーテ ィング・システムの制御の下で実行する。オペレーティング・システムは、従来 の単一プロセッサ版を次に述べるように変更したもので十分である。
この変更の目的と効果を明確にするために、単一プロセッサの従来の動作および マルチプロセッサに必要な動作について、順をおってそのあらましを簡単に述べ る。W232100マイクロプロセッサの完全な説明は、在ニュー・シャーシー 州Morristown、AT&T Technologies、 Inc、社 のDocument Development Organization−M icroelectronics Projects Groupの出版による rUNIX”Hierosystem WE 32100 Microproc essor Information Manual 」にある。
したがって、本発明を実証するこの実施例を完全に理解するために必要とみなさ れる動作面に限って、以下に簡単に説明する。
一般に3B15においては、WE32100マイクロプロセッサの2つの動作モ ードまたはレベルを使用する。すなわち、ユーザー・プログラムの命令を実行す るためのユーザー・モード、およびハードウェア資源のようなシステムの共有資 源を破壊する可能性のあるオペレーティング・システムの命令などの関数を実行 するための特権モードである。ユーザー・モードから特権モードに入るには、プ ロセス切り替え機構、およびシステム・コール機構の2つの手段がある。システ ム・コールの機構は、スーパバイザリ・コールおよびオペレーティング・システ ム・トラップ等の名称によっても知られている。
システム・コールは、サブルーチン・コールとして効率的に作用し、プロセッサ ・ステータス・ワード(PSW)およびプログラム・カウンタ(PC)の新しい 値をプロセッサにロードすることにより管理されて、ある関数に入る手段を提供 する。システム・コールの機構は、制御をユーザーから特権モードに移転するた めの、オペレーティング・システムの明示的なGATEコールによって使用され たり、また「通常の」システムの例外の処理にも使用される。(「迅速な(qu tck)」割り込みは、この機構によっても処理できるが、UNIXオペレーテ ィング・システムまたは類似の環境では使用しされないので、この説明では無視 する。)例外とは、エラー状態のことであり、割り込みというよりフォールトま たはトラップである。システムの例外は大部分が通常の例外である。そして、こ の通常例外のハンドラは特権モードの関数である。
システム・コール機構は現在のパルスの実行スタックを使用する。すなわち、通 常例外ハンドラまたはGATE命令を介して呼び出された関数は、その例外また はGATEコールの発生時に実行されていたプロセスの実行スタックを用いて実 行する。
各実行スタックは、上方および下方に境界があり、これらの境界はそのスタック を使用中のプロセスのプロセス制御ブロック(PCB)に保持されている。第2 図に典型的なプロセス制御ブロック200を示す、プロセス制御ブロックとは、 プロセスが実行していないときにそのプロセスのハードウェアの相関状況を含む メモリ13内のデータ精成をいう、この相関状況に含まれるのは、プロセッサ・ ステータス・ワード(マイクロプロセッサおよび現在実行中のプロセスに関する 状態情報を含むレジスタ)の初期および中間(現在)の内容211および212 、プログラム・カウンタの初期および中間の内容213および214、実行スタ ック・ポインタ(SP)の初期および中間の内容215および216、実行スタ ックに対する下方境界値217および上方境界値218、および汎用レジスタ、 フレームならびに引数のポインタ、ならびにブロック転送仕様に関する最新の内 容のようなその他の情報219である。
非特権状態から特権状態に推移する場合、システムは、特権状態が破綻に至らな いことを保証するために常にチェックを行う必要がある。従って、特権関数の正 式な開始に先立ち、換言すれば通常例外またはGATE要求の発生に際し特権モ ードへの移行を実行する前に、そのシステム・コール機構は、第3図にしめすよ うに、現在実行中のプロセスのプロセス制御ブロックに格納されている実行スタ ックの境界値に現在の実行スタック・ポインタの値を照らし合わせてチェックし なければならない、プロセス制御ブロックのポインタ(PCBP)202および スタック・ポインタ(SP)203は、マイクロプロセッサの特殊なレジスタで ある。PCBPの現在の値は、現在実行中のプロセスのPCB200(第2図参 照)の中間値を指し示す、このチェックはステップ300で始まり、ステップ3 02において、スタック・ポインタ203の現在の値が、PCBP202から1 2だけオフセットをとったPCB内の位置にある内容(スタックの下方境界値2 17)と比較される。スタック・ポインタの値が、その下方境界値を越える場合 には、ステップ304において、スタック・ポインタ203の現在の値に8を加 えた値が、PCBP202から16(10進)だけオフセットをとったPCB位 置の内容(スタックの上方境界値218)と比較される。スタック・ポインタの 値が指定された境界の範囲内に当たる場合に限り、ステップ304で、移行が行 われる。スタック・ポインタの値が指定された境界の範囲内に当たらない場合、 ステップ308で、スタック例外が発生される。マイクロプロセッサは、このチ ェックを自動的に行う、これは、ハードウェアで直接行われるか、またはマイク ロ命令の実行によって、すなわちファームウェアでシーケンシャルに行われる。
GATEコールまたは通常例外の発生に際しスタック・ポインタが指定境界内に 入っている場合、プロセッサは、それが発生したプロセスの中で、その通常例外 またはGATE要求を次のように処理する。システム・コール機構が動作し始め るときに実行されていたプロセスのプロセス・ステータス・ワードおよびプログ ラム・カウンタはそのプロセスの実行スタックに格納され、スタック・ポインタ の値が増加され、さらに呼び出される関数のプログラム・カウンタおよびプロセ ッサ・ステータス・ワードがプログラム・カウンタおよびプロセッサ・ステータ ス・ワード・レジスタにロードされる。これらの動作はハードウェアまたはマイ クロ命令の実行のいずれによる場合も同様に自動的に行われる。参考までにいえ ば、GATEコールおよび通常例外にはそれぞれ固有のマイクロ命令シーケンス が別々にある。
プロセス切り替え機構は、割り込み、およびスタック例外を含む「通常でない」 例外によって使用される。このプロセス切り替え機構は、新・旧のプロセスにな いし異なった実行スタックを使用する0例えば、スタック例外ハンドラのプロセ スは、独自の実行スタックを有し、これは例外とされた目的のプロセスの実行ス タックとは異なる。同様に、割り込みハンドラのプロセスは、割り込みを受けた プロセスの実行スタックとは異なる固有の実行スタックを持っている0割り込み ハンドラおよび通常でない例外ハンドラのそれぞれに対し異なった実行スタック を使用しているので、割り込みおよび通常でない例外の発生に際しては実行スタ ックの境界チェックは行われない。
割り込みまたはスタック例外のプロセス切り替え中にプロセスから離れるにあた り、マイクロプロセッサは、そのプロセスのプロセス制御ブロック・ポインタを システム幅の割り込みスタック上に退避させた後、そのプロセスのハードウェア の相関状況すなわち現在のプログラム・カウンタ、スタック・ポインタ、プロセ ッサ・ステータス・ワードの各位のほか通常はプロセス制御ブロックに格納され るその他のレジスタの内容を、そのプロセスのプロセス制御ブロック(プロセス 制御ブロック・ポインタの現在の値により示されている)に書き込む、プロセッ サは、新しいプロセスを始めるために、新しいプロセスのプロセス制御ブロック ・ポインタを得て、それを用いて新しいプロセスのプロセス制御ブロックにアク セスし、さらに、そこから新しいプロセスのハードウェア相関状況をハードウェ ア・レジスタにロードする。
前期の動作は、マイクロプロセッサによって自動的に行われるが、ハードウェア で直接的に行われるか、またはマイクロ命令シーケンスの実行により行われるか のいずれかである。9考までにいえば、通常でない例外の各々および割り込みは 、固有のマイクロ命令シーケンスを別々に持っている。
システム・コールおよびプロセス切り替え機構のマイクロ命令シーケンスは、オ ペレーティング・システムにより与えられるベクター・テーブルの内部で、新し い関数のプロセッサ・ステータス・ワードおよびプログラム・カウンタ、または 新しいプロセスのプロセス制御ブロック・ポインタを捜し当てる0通常例外およ びGATEコールに対しては、オペレーティング・システムは、−組のルーチン 処理テーブルに対する開始アドレスおよびルーチン処理テーブル自体を与える。
各ルーチン処理テーブルには、一群の関数に対するプロセッサ・ステータス・ワ ードおよびプログラム・カウンタの値が含まれている0通常でない例外に対して は、オペレーティング・システムは、通常でない例外のハンドラ・プロセスのプ ロセス制御ブロック・ポインタを入れている例外ベクター・テーブルを与える。
そして、割り込みに対しては、オペレーティング・システムは、割り込みハンド らのプロセスの開始時のプロセス制御ブロック・ポインタを格納している割り込 みベクター・テーブルを与える。説明のためベクター・テーブル201を第2図 に示す。
本書の「背景技術と問題点」において述べた目的にかなうよう、プロセス12お よび25は主従構成で動作させることが望ましい。
そのような構成において、従プロセツサ25は事実上ユーザー・モードの処理の み、つまりオペレーティング・システム(特権モードの)のサービスを使用しな い処理のみを行い、主プロセツサ12は、ユーザー・モードの処理を行うほか、 オペレーティング・システムのサービスを伴う事実上すべての処理を行う、゛従 プロセッサ25上で実行中のプロセスがなんであれ、実行を継続するうえでオペ レーティング・システムのサービスを必要とする場合、主プロセツサ12に移さ れて実行される。
オペレーティング・システムの変更を最小限にとどめてプロセッサ間の移転がで きるようにするために、従プロセツサ25で実行中のプロセスがそこでの実行を 許されるのは、その命令を実行するとオペレーティング・システム・サービスを 呼び出すことになるまでか、またはそのプロセスのためにオペレーティング・シ ステム・サービスを実施することを要求する何らかの同期していない事象の指示 があるまでである。後者の例は、時限(アラーム・クロック)タイマーが設定時 間になった場合である。その時点で、従プロセツサ5上で実行中のプロセスの実 行は保留される。
実行するとオペレーティング・システム・サービスを呼び出す結果となる命令は 、従プロセツサ5においては実行が完結されない。
そこで、そのプロセスは主プロセツサ2に移される。移転されたプロセスは主プ ロセツサにおいて、割り込まれた命令から実行が再開される。実際に説明すると 、割り込みを受けた命令の実行が主プロセツサ12において再び開始されるか、 または部分的に実行された命令の実行が単に主プロセツサ12上で完結するかの いずれかである。特権モードに入ろうとする原因となった条件が一時的な違反で ある場合を除いて、主プロセツサ12においてその命令を実行するとオペレーテ ィング・システム・サービスを呼び出す結果となる。そして、主プロセツサ12 において、そのサービスが、従来の単一プロセッサの場合と同様に与えられる。
実際に説明すると、移転されたプロセスの実行は、その後直ちに主プロセス12 において継続するのである。
従プロセツサ25へ呼び出すことが可能で、それを呼び出すと呼び出しているプ ロセスが主プロセス12に移される結果となるような、オペレーティング・シス テムの関数またはプロセスの大幅な変更を必要とせずに、前述のような従プロセ ツサ25から主プロセツサ12へのプロセスの移転を可能とするために、この実 施例のシステムの従プロセツサ25において行われる特権モードに入ろうとする 動作はすべて、所定の条件に偶然一致してそのすべての動作に共通のハンドラを 呼び出す結果となるか、そうでなければ再び共通のハンドラに向けわれるか、の いずれかである。
その後、呼び出されたハンドラは前述したそのプロセスの移転を行う、そのハン ドラは従プロセツサ25上に、ハードウェアによって直接に、またはメイクロ命 令シーケンスの実行によって、自動的に呼び出される。
前記の自動的な呼び出しは、基本的に、第4図に示すように行われる。従プロセ ツサ25でプロセスが実行される前に、ステップ450においてプロセスのプロ セス制御ブロック200に格納されているは実行スタックの境界217.218 に不適当な値が与えられる。これにより、GATEコールまたは通常例外の発生 によるステップ452における特権実行モードに入ろうとする動作の最中に、ス テップ453で行われるスタック境界チェックにステップ454で確実に失敗と される。このチェックの失敗により、ステップ455においてスタック例外ハン ドラが呼び出されることになる。また、システムの初期化の時点で、従プロセツ サ25に対しその基板固有のメモリ101に割り込みおよび例外のプロセス制御 ブロックが設定され、従プロセツサ25で発生し得る割り込みおよび通常でない 例外のハンドラに対するそのメモリ内の値は、ステップ456において、エラー ・ハンドラ・プロセスの値に向は直される。このエラー・ハンドラ・プロセスは この目的に使用するためにスタック例外ハンドラ・プロセスを複写したものであ る。(基板固有のメモリを使用する代わりに、仮想・物理翻訳テーブルを複写し て各プロセッサに1個ずつとなるようにし、それらの中にある該当項目を置き換 えることによりある範囲の仮想アドレスに対する専用の仮想・物理翻訳を各プロ セッサに別々に与えるようにしても良い、)ステップ457において割り込みま たは通常でない例外が従プロセツサ25に発生すると、ステップ458において 、それらの値によりハンドラ・プロセスが呼び出されることになる。従プロセツ サ25上のスタック例外およびエラー・ハンドラのプロセスは、共に通信プロセ スであって、ステップ459においては、そのハンドラ・プロセスが呼び出され た時に従プロセツサ25で実行されていたユーザー・プロセスのスタック境界を 適切な値に戻してやり、ステップ460においては、実行のためにそのユーザー ・プロセスを従プロセツサ25から主プロセツサ12に移すものである。(ステ ップ454でスタック境界チェックに失敗しなかった場合、ステップ461で従 プロセツサ25が特権実行モードにはいり、ステップ462で、主プログラム1 2で行われるようにプログラムの実行は特権モードで継続していたであろう、同 様にして、ステップ456でベクターが向は直されなかった場合、ステップ45 8において、主プロセツサ12において行われるようにステップ463で割り込 みや例外を処理したものと同じハンドラが呼び出されていたであろう、) ここで、第1図のシステムの考察に戻ると、単一システムの初期化は、ここにお いて第4図に示すように変更されている。
全システムのハードウェアの主たる初期化の一部として、主プロセツサ12は、 第5図に流れ線図で示されている従たる初期化ルーチンを実行する。ステップ4 00でそのルーチンの実行に移った後、ステップ401で、主プロセツサ12は 、システムが単一プロセッサ・システムかマルチプロセッサ・システムか、すな わち、第1図に示すシステムにプロセッサ25が在るか否かを調べる。プロセッ サ12は、従来のファームウェア・デバイス・テーブルの内容を調べることによ り判断を下す、実際に説明すれば、従プロセツサ25に対する基板標識は主プロ セツサ12のものと同一で、しかも主プロセツサ12の基板アドレスは固定であ るため、従プロセツサ25の捜索は、前記の固定のアドレス以外のアドレスに位 置指定されているプロセッサ基板を探しながら装備されているデバイス・テーブ ルを走査することによって行われる。
ステップ401で従プロセツサ25が見つからなかった場合、プロセッサ12は 、メモリ13のUTILIZE変数をOの値に設定し、システムには従プロセツ サ25がないことを示し、その後、ステップ405で主たる初期化ルーチンに戻 り従来の単一プロセッサの要領でシステムの初期化を完了させる。システムが、 ステップ401で、従プロセツサ25が装備されていることが判った場合、初期 化における次のステップは、ステップ402において、両プロセッサ12.13 上で起こり得る例外およびエラーの状態に対し別個のプロセス制御ブロックを設 定することである。このようにする必要があるのは、プロセス制御ブロックがプ ロセッサ12および25の両方に共通な場合、主プロセツサ12が、あるプロセ ス制御ブロックから実行を行い、さらに従プロセツサ25を同じプロセス制御ブ ロックから実行を始めようとさせることがあり、そうなるとレジスタおよびスタ ックの破壊を招くからである。従って、スタック例外およびシステム・エラー例 外に対し別個のプロセス制御ブロックを設定する。そのために、主要メモリ13 内のプロセス制御ブロック・ポインタの値を変更して、その値がプロセッサ12 .13の固有メモリ101のアドレス範囲に置かれたプロセス制御ブロックを指 すようにすることにより、共通の仮想アドレスおよび物理アドレスではあるが異 なった物理的位置および値を主プロセツサおよび従プロセツサのプロセス制御ブ ロックに与えるようにする。これらの新しく割り当てられたプロセス制御ブロッ ク・ポインタは、主プロセツサ12および従プロセツサ25の両方にし要される 。ゆえに、すべてのプロセッサ12および25に対し、それらの固有メモリ10 1にあるプロセス制御ブロックを初期化する必要がある。
次に、新しく置かれたプロセス制御ブロックは、ステップ4゜2において、主プ ロセツサ12の固有メモリ101の内部で初期化される。初期化が必要なのはプ ロセス制御ブロックの5個のフィールド(初期プログラム・カウンタ、初期プロ グラム・ステータス・ワード・初期スタック・ポインタ、スタック上限およびス タック下限)だけであるが、コードの単純化のために、初期化は元となるプロセ ス制御ブロックの全内容を複写して行われる。
これまでは、固有メモリの変更はすべて、主プロセツサ12の固有メモリ上で行 われてきた。そこで、従プロセツサの固有メモリのためには置き換える必要があ る。この置き換えは、ステップ402において、主プロセツサ12の固有メモリ に今や置がれてプリプロセッサの全データ要素を含むdpccramjデータ構 造を従プロセツサ25の固有メモリに複写した後、その中の従プロセツサに関係 する特定の変数を変更することによって、行われる。その構造の全要素を変更す る必要はなく、従プロセツサ25において発生し得る割り込みおよび例外に関係 するものだけでよい。
従プロセツサ25は、この時点ではまだ動作を始めていない。
従プロセツサ25を実際に動作させるには、まずステップ403において、従プ ロセツサ25の最初のプロセス(第6図参照)に対する制御ブロックを準備する 必要がある。これに伴い、主プロセツサ側の初期プロセス制御ブロックの物理ア ドレスが従プロセツサ側の割り込みスタックの先頭に置かれ、プログラム・カウ ンタの初期値を従プロセツサ側のルーチンの物理アドレスに設定することにより 従来のENBVJMP命令(第6図のステップ503参照)により仮想アドレッ シングが可能となり、そしてプログラム・ステータス・ワード、仮想スタック・ ポインタ、および仮想スタック境界の各初期値が設定されるほか、レジスタrO に対する初期値が従プロセツサ側の仮想モード始動ルーチンの仮想アドレスに設 定される(第6図のステップ504参照)。
主側のメモリ管理情報も、ステップ403でH!、備される。核(カーネル)の 割付はすべてのプロセッサに共通なので、MMUレジスタの内容はすべてのオペ レーティング・システムの核の部分にないし共通である。しかしながら、主プロ セツサ12から従プロセツサ25のMMUへアクセスすることはできず、またそ の逆もできないので、MMUの割付レジスタの内容は実際には従プロセツサ25 によって初期化する必要がある。これを行う一つの方法は、マイクロプロセッサ のブロック転送機能を利用することである。このためには、当然、従側の初期プ ロセス制御ブロックへとプロセッサの切り替えが行われた場合MMU割り付はレ ジスタがそのマイクロプロセッサのマクロROMシークンスX5WITCH−T HREEOの一部として(WE 32100 Microprocessor  Information Manua2を参照)自動的に初期化されるように、 従側の初期プロセス制御ブロックにある一連のブロック転送領域を初期化する必 要がある。
一度、ステップ40Bで従側の初期プロセス制御ブロックが設定されると、従側 のサポートに関するいろいろな制御パラメータが初期化される。最後に、ステッ プ404において、従側のハードウェア始動ルーチンの物理アドレス(第6図の ステップ501.502を参照)を、従プロセツサ25の固有メモリ101内に あって、従側のファームウェアがポーリングして(要求がないか調べてまわって )いる位置に置くことによって、従プロセツサ25に従側のハードウェア始動ル ーチンの実行開始を伝える。すると、ステップ405において、プロセッサ12 は主側の初期化ルーチンに戻り、システムの初期化を従来の要領で完了させる。
主プロセツサ12および従プロセツサ25のファームウェアは同一である。ファ ームウェアは、電源投入時に、プロセッサが主か従か、のチェックを行う、実際 に説明すれば、このチェックは、そのプロセッサが接続されているバス11のス ロットのアドレスを調べることにより行われる。そのプロセッサが主である場合 、プロセッサは所定のメモリアドレスから従来の要領で実行を開始する。そのプ ロセッサが従である場合、初期化の後、所定の位置のポーリングを始める。
従プロセツサ25が実行する従側の初期化プロセスの流れを第6図に示す、ステ ップ500において、前記の位置を調べ回っている従プロセツサ25のファーム ウェアがこの位置にゼロ以外の値が設定されていることをひとたび見つけると、 制御はその値によって示される物理アドレスに杉る。これによって、従プロセツ サ25に対するハードウェア始動ルーチンの実行が開始される。
これが、従プロセツサ25が実行する最初のコードである。このコードの目的は 、従プロセツサ25のハードウェアの初期化を完了することである。
第一段階はステップ501において、従プロセツサ25の命令キャッシュを一掃 することである。これは、キャッシュに何が入っているか判らないからである。
普通のCFLUSH命令でこれを終えると、ステップ502で割り込みスタック の第2ワードを示すように従側の割り込みスタック・ポインタが初期化される。
 (割り込みスタックの第1ワードは、従側の初期プロセスの制御ブロックの物 理アドレスとなるように初期化されている。)またステップ502において、普 通のRETPS命令によってプロセスが従側の初期プロセスの制御ブロックに切 り替えられる。この切り替えの一部として、従側のプロセス制御ブロックのポイ ンタ・レジスタが従側の初励プロセス制御ブロックの中間値の部分の物理アドレ スに設定され、プログラム・カウンタの初期値が仮想モード・アドレッシングを 可能とするコードの物理アドレスに設定され、レジスタrOが従側の仮想モード 始動ルーチン(ステップ504)の仮想アドレスを含むように設定され、従側の MMU割り付はレジスタが主側のMMU割り付はレジスタと同じ値に設定され( このようにして、主・従共通の割り付は与える)、そして従プロセツサ25に対 するその他のレジスタの初期値が第5図の従側初期化ルーチンで用意されている ように設定される。
ステップ503で、従プロセツサ25のenbvjmpコードで実行が継続し、 それにより、そのプロセス制御ブロックのポインタ・レジスタは従側の初期プロ セスの制御ブロックの中間値の部分に対する仮想アドレスとなるようリセットさ れ、普通のENBVJMP命令が実行されて従プロセツサ25が仮想アドレッシ ング可能となり、レジスタrOに入れられている仮想アドレスへと移る。
従側の仮想モード始動ルーチンはステップ504によって表される。このルーチ ンは、従プロセツサ25の最終的な初期化を行うとともに、初期化が終了したこ とを示すために同期メツセージを主プロセツサ12へ返すものである。この最終 的な初期化には、次のことを行うための従プロセツサ25ハードウエアの初期化 が含まれる。すなわち、従側のMMUの構造設定レジスタにキャッシュ可能なビ ット数を設定する、従プロセツサ25に関係するシステム・キャッシュを一掃し 動作可能とする、従プロセツサ25のすべてのハードウェア・タイマー(従側の タイマー割り込みに対しソフトウェアをサポートする必要がないように、これら を動作可能にすることはない)を動作禁止にする、標準のmauinitOルー チンによって標準の従プロセツサ25のMAUの初期化を行う、割り込みコント ローラを初期化する、そして従プロセツサ25における割り込みを許可する(従 側の初期プロセスのステータス・ワードにおいてはすべての割り込みがマスクさ れているので、ハードウェア回路によって割り込みが許可されても、その時点で は割り込みは禁止されたままである)。
従プロセツサ25のハードウェアが初期化が終わると、ステップ504において 、従プロセツサ25の固有メモリ101にあるプロセス制御ブロックも、これら のプロセス制御ブロックに関係する従側のハンドラに関して初期化される。また これに伴い、従側のスタック例外ハンドラおよび従側のシステム・エラー例外ハ ンドラにないし初期値およびスタック境界の再定義が行われるが、これは、これ らの例外状態の処理が、従プロセツサ25に対しては、主プロセツサ12に対し て行われる普通の処理とは異なるからである。
最後に、ステップ505において、従プロセツサ25が初期化されたことを示す メツセージが主プロセツサ12に送られ、従プロセツサ25のプログラム・ステ ータス・ワードの割り込みレベルがOに設定され、従プロセツサ25上で発生さ れた割り込みに対する割り込み処理が可能となる。
第7区に、主プロセツサ12のクロック割り込み処理ルーチンの一部として呼び 出される従側のクロック・ルーチンを、流れ線図で示す。
従プロセツサ25のハードウェアは、主プロセツサ12と全く同様にタイマー割 り込みをサポートしているが、本実施例においては、従側でタイマー割り込み用 のソフトウェアをサポートする必要はない、そのかわり、主側でタイマー割り込 みが発生する度に、UTILIZEフラグのチェックが行われ、それがセットさ れている(従プロセツサ25が存在することを示す)場合、ステラ7600で第 7図のルーチンが呼び出される。このルーチンは3つの基本的な機能を果たす、 すなわち、ステップ601で従プロセツサ25に割り込みをかける、ステップ6 02において主プロセツサ12上で現在実行中のプロセスが従プロセツサ25上 で実行される資格があるかどうかが決定される、資格がない場合、ステップ60 3において主プロセツサ12上で現在実行中のプロセスに与えられた時間割当が 切れることによってプロセスの切り替えが起こるかどうかが決められる。ステッ プ602における従プロセツサ25での実行価値の決定は、従プロセツサ25上 でプロセスが実行可能かどうかに基づいて行われる。従プロセツサ25において プロセスが実行できるのは、それがクロック割り込みの時点でユーザー・モード である場合、およびそのプロセスが現在その概要を調べられていない、すなわち システムによって情報収拾のために規格どうりに監視されていない場合に限られ る。ステップ602でプロセスが従プロセツサ25上で実行可能とみなされた場 合、ステップ604で、そのことを示すためにプロセッサの一般のPJIagフ ィールドの5ONSLAVEビツトが1に設定され、ステップ605で標準のr unrunフラグが1に設定される。前者により、従プロセツサ25ヘプロセス を移すための従追加ルーチン(第8図参照)の要求を知らせ、そして後者により 、ステップ606でクロック割り込みハンドラがそれに割り込まれたプログラム に戻る前に作用を受けるプロセス切り替えに一般的なpswtchOルーチンに 要求を知らせる。
ステップ603において、クロックに同期して増加するカウンタを各プロセスに 結合することによって時間割当が実施され、カウンタがシステムの閾を越えた場 合、ステップ605でプロセス切り替え要求がrunrunフラグによって示さ れる。実際に説明すれ、ば、プロセス切り替え要求がなされるのは、システム内 にブロックされて走行可能なプロセスがある場合に限る。さらにいえば、そのカ ウンタは、プロセス切り替えの度ごとに、リセットされる。
第8図に、従追加ルーチンを流れ線図で示す、これは、主プロセツサ12上で実 行されるもので、主プロセツサ12上で現在実行中のプロセスを従プロセツサ2 5の実行待ち行列に加えるために、ステップ700でいずれかのプロセッサの割 り込みハンドラのルーチンによって呼び出すことができる。この従追加ルーチン は、主プロセツサ12の実行待ち行列に対する標準の5etrq Oルーチンに 似ている。?;実、5etrq Oルーチンでは、そのプロセスを従プロセツサ 25の実行待ち行列(P−flagフィールドの5ONSLAVEフラグ)に移 すべきかどうかのチェックを行い、その結果、移す場合には、その移転を行うな めに従追加ルーチンを呼び出すのである。プロセスを従プロセツサ25の実行待 ち奇列に移すには、ステップ701において、現在実行中のプロセスのMUPス テータスを退避させ(標準のmau−save Oルーチンに相当)なうえで、 ステップ702で実際にそのプロセスを従プロセツサ25の実行待ち行列に加え 、その後、ステップ703で戻る。従プロセツサ25が何もしていない場合、割 り込みをかけて新しく加わるプロセス直ちに確実に実行させることができる。
第9図に、従プロセツサ25において実行される従プロセツサ・システムの割り 込みハンドラ・ルーチン、すなわち、略して従割り込みルーチンを、流れ線図で 示す、この例においては、従プロセツサ25が割り込みを受ける根拠は僅か2つ のみである。すなわち、主プロセツサ12においてクロック割り込みが発生する こと、および従プロセツサ25が暇な間にプロセスが主プロセツサ12から従プ ロセツサ25の実行待ち行列へと移されること、これらのどれかである。
この2つの型の割り込みは、ステップ801で、主プロセツサ12の時間カウン タの1bol、tが従割り込みルーチンの最後の呼び出し以来変化したかどうか を調べることによって、区別することができる。つまり、もしそれが変化してい れば、最後の割り込み以来一定の時間間隔が経過しているのであるから、今のこ の割り込みはこの時間経過によるものである。また変化が起きていない場合、今 のこの割り込みは、従プロセツサ25が暇な間にプロセスを従プロセツサ25の 実行待ち行列に追加したことによるものである。 割り込みが一定の時間間隔の 満期に達したことによるものでない場合、最初に行われる動作は、ステップ80 2におけるフラグ変数のチェックであり、これにより、主プロセツサ12がメモ リの返還を要求しようとしているかどうかが調べられる。その場合、従プロセツ サ25上でのプロセスの実行は、その返還要求が完了するまで保留される。こう しなければならないのは、従プロセツサ25のMMUディスクリブタ・チャッシ ュにあるベージ・ディスクリブタがその返還要求処理によって変更される場合に は破壊の可能性の問題があり、しかも、そのディスクリブタが変化したことを従 プロセツサ25の知らせる方法がないため、従プロセッサ25はもはや役に立た ない割り付は情報を使用することになるからである。ひとたび返還要求が完了す れば、ステップ803で、現在従プロセツサ25上で実行中のプロセスのスタッ ク境界217,218はそれらの正しい値に修復され(第15図のステップ13 02を参照)、ステップ804において、従プロセス切り替えルーチンを呼び出 すことにより従プロセツサ25はプロセスを切り替えさせられる(第10図参照 )、従プロセス切り替えルーチンにより、MMU割り付はレジスタには確実に新 しい情報がロードされ、また、このことは、破壊されている可能性のあるMMU キャッシュ・ディスクリブタの項目を一掃するという便利な効果もある。
ステップ801において、割り込みが一定時間間隔の経過によるものと判断され た場合、割り込まれたプロセスのために維持されている時間に関する情報が、ス テップ805で、調節される。
従割り込みルーチンの最後の呼び出しから経過した時間が算出され、現在のIb oltO値が退避させられる。従プロセツサ25が暇な場合、すなわち従プロセ ツサ25がその従割り込みルーチンが呼び出された時点にプロセスを実行してい なかった場合、その経過時間がシステム・アイドル時間として主プロセツサ12 のアイドル時間と同じ方法で報告される(すなわち、5ysinfo、 cpu [cPUjDLE]が経過した時間量だけ増加させられる)、そうでない場合、 プロセスの実行に関係するタイマーおよび時間アキュミュレータが経過した時間 量だけ増加させられる。
次に、ステップ802で行われるようなチェックがステップ806で行われ、主 プロセツサ12がメモリの返還要求をしようとしているかどうかが判断さh−そ うである場合、従プロセツサ25上のプロセスの実行は返還要求が終了するまで 保留される。この時ステップ806において、現在実行中のプロセスは、ステッ プ807にて従プロセツサ25で実行されていた間に、非同期信号を送られたこ とがあったかどうかのチェックが行われる。その場合、ステップ808において 、従削除ルーチン(第14図参照)を呼び出すことにより、そのプロセスは主プ ロセツサ12に送り戻さ九従プロセッサ25においてプロセスの切り替えが行わ れる。
ステップ807における判断により、現在実行中のプロセスに対し未解決の非同 期信号がない場合、ステップ809において、そのプロセスの時間アキュミュレ ータの積算終了直後にp−5liceカウンタの値がシステムによる時間割当の 閾の4分の1を越えたかどうかのチェックが行われる。越えている場合、ステッ プ810で、現在実行中のプロセスの前後関係の情報がそのプロセスのプロセス 制御ブロックに格納され、ステップ811でそのプロセスのスタック境界217 .218がそれらの正しい値を回復しく第15図のステップ1302参照)、ス テップ812において、現在実行中のプロセスを従プロセツサ25の実行待ち行 列に戻して結合するために第8図の従追加ルーチンが呼び出され、その後ステッ プ813において、第10図の従プロセス切り替えルーチンを呼び出すことによ り、従プロセツサ25はプロセスを切り替えさせられる。
ステップ806の判定時に、主プロセツサ12が返還要求をしておらず、ステッ プ807の判定により現在のプロセスに対し未解決の信号が無く、さらにステッ プ809の判定により現在のプロセスがその時間割当を越えていない場合、ステ ップ814において、割り込みの時点に制御は従プロセツサ25上で実行されて いるプロセスに直ちに戻される。
第11図に、従プロセツサ25において実行する従プロセス切り替えルーチンを 流れ線図で示す、これは、新しいプロセスの為に従プロセツサ25を初期化する だけでなく、従プロセツサ25上で実行する次のプロセスを選択するものである 。また、これは主プロセツサ12の標準のpswtchルーチンに相当する。
ステップ900のこのプロセスの呼び出しに続いて、ステップ901で、従プロ セツサ25の実行待ち行列にプロセスが在るかどうかのチェックが行われる。な い場合、ステップ902において、このルーチンは、従アイドル・ルーチン(第 16図参照)を呼び出すことにより従プロセツサ25をアイドル状態に推移させ る。従プロセッサ25実行待ち行列にプロセスがある場合、ステップ903で、 次に実行するプロセスの選択が行われる0例えば、このプロセスの選択には、p swtch Oルーチンで行われているアルゴリズムを使用することができる。
実行すべきプロセスが選択されると、ステップ904で、主プがないと判断され ると、ステップ905において、実行予定のプロセスに対するスタック上方墳界 218の実際の値がある変数の中に退避され、ステップ906において、この新 しいプロセスに対し事実上のスタック上方境界を可能な限り低いスタック・アド レス(実例においては0)に設定する。従プロセツサ25上で実行中のプロセス に対しスタック上方境界値を0に設定することにより、従側のユーザー・プロセ スが通常例外またはGATEによって特権コードに入らないことが保証されるが 、その代わり、特権モードの処理が必要になった場合、スタック例外となって従 プロセツサ25のスタック例外ハンドラ(第11図参照)に制御が移る。スタッ ク境界を変更した後、ステップ907で、新しいプロセスに対して従プロセツサ 25に求められる条件を設定するために、従プロセツサ25のMMLI割り付は レジスタを(そして必要があればMAUレジスタも)ロードし、MMUの不正な 指定を解除し、さらに、そのプロセスに対する時間割当カウンタ(p−s 1i ce )をリセットする。そして、ステップ908において、実行が新しいプロ セスに移される。
第12図に、従スタック例外ハンドラ・プロセスを、流れ線図で示す、従プロセ ツサ25において、(ユーザー・プロセスに対しては従プロセツサ25上で特権 モードの処理が行われることはないが)少しでも特権モードの処理が行われると すると、従側のスタック例外ハンドラの動作として、現在実行中のユーザー・プ ロセスが主プロセツサ12に移される。これは、ステップ1002において、従 削除ルーチン(第15図参照)を呼び出すことによって実施される0本実施例に おいて実際に説明すると、不正を犯している命令のアドレスが、既にスタック例 外の処理の結果として、プロセス制御ブロックに退避されているために、ひとた びプロセッサが従プロセツサ25上で実行をやり直すと、その不正を犯している 命令が再実行される。この特徴はディマント・ベージド・メモリ管理を採用した システムのかなり良く見られるものである。これにより、従プロセツサ25上で 不正に原因となった動作を繰り返す結果となり、し、たがって、従側のスタック 例外ハンドラが潜在的不正の標識を保存したり、主側の例外ハンドラ・ルーチン が保存されている潜在的不正の標識を探す必要性を回避することができる。
しかし、実証的な本実施例において、すべての命令が安全に再実行できるわけで はない0例えば、オペランドが破壊的に重複している複数ワードからなる数種の MAU命令の場合、その例外の前にデスティネーション・オペランドの一部を更 新しない限り、再実行できない可能性がある。したがって、主プロセツサ上でそ のプロセスを再実行する時は、再実行の問題を避けるために命令再実行ルーチン (第13図参照)を呼び出す必要がある。実際に説明すれば、これを実施するた めに、ステップ1001において、プロセス制御ブロックから不正を行う命令の アドレスを削除して代わりに命令再実行ルーチンの開始アドレスを置き、削除し た不正命令のアドレスをある変数に格納する。命令再実行ルーチンが終了したと き、このルーチンはプロセス制御ブロック内の不正命令のアドレスを取り戻す。
通常例外よりはるかに希ではあるが、その他の例外状態もユーザー・モード・プ ロセスの実行中に起こり得る。つまり、システム・エラーである。この範喘には 、整列不正および従プロセツサ25の動作の結果として起こるハードウェア上の 問題のようなものが含まれる。このような状況においては、ステップ1100で 、第12図に流れ線図で示されている従システムのエラー・ハンドラ・プロセス が呼び出される。これは、第11図の従スタック例外ハンドラ・プロセスと全く 同様に振る舞う、すなわち、ステップ1101で、ユーザー・プロセスのPCB が設定され、主プロセツサ12上で命令再実行ルーチンから実行が開始され、そ してステップ1102において、従削除ルーチンを呼び出すことにより、そのプ ロセスは主プロセツサ12に移される。
第14図に、命令再実行ルーチンを、流れ#JA区で示す0例外または割り込み のために従プロセツサ25から移されたプロセスが主プロセツサ12上で実行を 始める場合、必ずステップ1200において、命令再実行ルーチンが主プロセツ サ12に呼び出される。ステップ12o1において、このルーチンにより、その 不正な命令が、オペランドが破壊的に重複しているMAU命令のように再実行不 可能命令かどうかのチェックが行われ、そうである場合、ステップ1202で、 このルーチンはその再実行の問題点を修正する。このルーチンは既存のルーチン を用いて、主側の標準のスタック例外ハンドらがMAU再実行問題を扱う場合と 同様に再実行性の問題を処理する0次に、ステップ1203で、命令再実行ルー チンは、不正とされた命令の実行を起こすためにユーザー・プロセスの不正とさ れた命令のアドレスを不正とされたプロセスのプロセス制御ブロックに修復し、 そして、ステップ1204で、その命令の実行に戻る。
第15図に、従削除ルーチンを、流れ線図で示す、このルーチンが従プロセツサ 25上に呼び出されるのは、従プロセツサ25上で現在実行中のプロセスを主プ ロセツサ12の実行待ち行列に移す必要があるとみなされる場合である。前述の ように、このような状況になるのは、非同期信号が現在実行中のプロセスに送ら れたか(第9図のステップ808参照)、または現在実行中の従プロセスが特権 モードの処理を必要としている(第12図のステップ1002および第13図の ステップ1102を参照)ことの、いずれかが原因である。いずれの場合も、同 じ動作が行われる。
すなわち、そのプロセスの現在の状態を保存し、現在のプロセスを主プロセツサ 12の実行待ち行列に追加し、そして従プロセツサ25上で実行する新たなプロ セスを選択する。
現在のプロセスの状態の保存は、従削除ルーチンが呼び出され6時までに、完了 していることが必須である。どのような方法で従削除ルーチンを呼び出すとして も、その方法は、現在実行中の従プロセスに対しそのプロセス制御ブロック内の 必要なCPU関連のレジスタを退避させることに帰する。しかしながら、プロセ ス制御ブロックは、そのプロセスのハードウェア的状況を定義しているに過ぎず 、MAUレジスタの内容などのような、そのプロセスのソフトウェアで維持され ている情報は定義していない、よって、ステップ1301において、ソフトウェ アで定義される状態をそのプロセスのPCBに退避させる必要がある。また、5 ONSLAVEフラグをpJ1agフィールドにおいてリセットする。これによ り残るは、ステップ1302において、スタック上方墳界218の実際の値を回 復することだけである。
これがひとたび行われると、ステップ1303で、標準の5etrqOルーチン を呼び出すことにより、前記プロセスが主プロセツサ12の実行待ち行列に追加 され、さらに、ステップ1304において、第11図の従プロセス切り替えルー チンを呼び出すことにより、新しいプロセスが従プロセツサ25上で実行するな めに選択される。
第16図に、従プロセス・スチール・ルーチンを、流れ線図で示す、これは、p swtch Oルーチンの開始時に主プロセツサ12上で呼び出される。psw tchOルーチンは、ステップ1400で、従プロセス・スチール・ルーチンを 呼び出すことによって、ステップ1401で主プロセツサ12の実行待ち行列が 空になり、さらにステップ1402で従プロセツサ25の実行待ち行列に未処理 のユーザー・モード・プロセスが溜まる状況を防いでいる。このルーチンは、単 に、第11図の従プロセス切り替えルーチンと同じプロセス選択アルゴリスムに 従って、従プロセツサ25の実行待ち行列からプロセスを取り外し、ステップ1 403で、そのプロセスを主プロセツサ12の実行待ち行列に移すだけである。
ステップ1403の終了に続いて、またはステップ1401で主プロセツサ12 の実行待ち行列が空でないと判った場合、ステップ1404で、このルーチンは pswtch Oルーチンに戻り、主プロセツサ12の実行待ち行列の中から主 プロセツサ12上で実行するプロセスを選択する。ステップ1401で主プロセ ツサ12の実行待ち行列が空であると判り、さらに、ステップ1402で従プロ セツサ25の実行待ち行列も空であると判った場合、ステップ1405で、この ルーチンは、標準のWAIT命令を実行することにより、主プロセツサ12を空 転させる。この時、主プロセツサ12は、割り込みの発生を待機している。
第16図に、従アイドル・ルーチンを、流れ線図で示す、ステップ1500にお いて、これが従プロセツサ25上に呼び出されるのは、従プロセツサ25におい て実行するプロセスが無い場合である。このルーチンは、ステップ1501で、 従プロセツサ250割り込みスタック・ポインタをリセットし、ステップ150 2で、すべての割り込みを許すためプログラム・ステータス・ワードの割り込み 優先レベル(従スタック例外ハンドらの呼び出しに先立ち高く設定されている) を最低のレベルまで下げ、ステップ1503で、WAIT命令を実行する0割り 込み発生時には、第9図の従割り込みルーチンで従プロセツサ25上の実行が再 開される。
もちろん、当業者にとって本発明を実証する上述の実施例に対する種々の変更お よび改良は明かであることは言うまでもない。
例えば、AT&Tの単一プロセッサ・コンピュータ3B2およびその他の単一プ ロセッサ・コンピュータは、同様にしてマルチプロセッサ精造へと拡張すること ができる。また、1個の従プロセツサを追加して使用する場合とほとんど同じ方 法で、1個以上の従プロセツサをシステムに追加して使用することが可能である 。
さらに、従プロセツサは、互いにまたは主プロセツサと同一である必要はなく、 各々は、異なるマイクロプロセッサ構造に基づいたものでも良い0本発明の意図 および範囲から逸脱することなく、またそれに伴う利点を損なうことなく、前記 のような変更および改良が可能である。従って、かかる変更および改良は、次に 述べる特許請求の範囲にすべて網羅されるものとする。
FIG、3 FIG、8 FIG、9 FIG、  10 FIG、  11 FIG、  12 FIG、  14 FIG、  15 FIG、  16 FIG、  17 国際調査報告 ANNEX To  τ’rZ  工NτER−NATIONAL  SEA只 CHRX?ORτ ONeport

Claims (12)

    【特許請求の範囲】
  1. (1)第1のプロセッサ25および第2のプロセッサ12を有するマルチプロセ ッサ・システム(第1図)において、発生した事象に関する第1の標識を調べる ことにより該事象の発生に応じて第2のプロセッサ上で果たすべき第1の機能を 決定した上で前記の調べられた第1の標識によって特定される前記第1の機能を 果たすことにより前記の発生した事象を処理するプロセスを前記第2のプロセッ サにおいて実行するステップを含み;前記第1のプロセッサにおいて、複数の所 定の事象のいずれの事象の発生をも検出するステップ908、457、前記第1 のプロセッサにおける該事象の発生に応じて果たすべき第2の機能を決定するた めに前記発生事象に関する第2の標識を調べるステップ458、および 前記第1のプロセッサ上で実行中のプロセスを実行継続のために前記第2のプロ セッサへ移すための、前記調査済み第2標識により特定される前記第2の機能を 果たすステップ459、460から成り;さらに、以上において 第1の標識を調べる前記ステップが、前記発生事象に関する第1の標識を調べる ステップから成り、 それによって、第1または第2のいずれかのプロセッサ上で発生している所定の 事象を第2のプロセッサにおいて処理することを特徴とする; 前記マルチプロセッサ・システムを動作させる方法。
  2. (2)前記のいずれの事象の発生をも検出するステップが前記第1のプロセッサ において前記プロセスを実行するステップ908、および 前記第1のプロセッサにおける前記プロセスの実行中に、前記複数の所定の事象 の一つが発生したことを検出するステップ457 からなることを特徴とする請求項(1)記載の方法。
  3. (3)第2の標識を調べる前記ステップが前記発生事象に関する第2の標識を調 べるステップ458からなり、更に調べられた該標識が別個の事象の1つに各々 関する複数の第2の標識201の1つであり、各々はそれに関連付けられている 前記事象の前記第1プロセッサ上での発生に応じて果たされるべきある機能を特 定するものであり、前記複数の第2標識がすべて同一の機能を特定する(第13 図) ことを特徴とする請求項(2)記載の方法。
  4. (4)実行モードを変更することが特権実行モードに入ることから成るシステム において、 前記の検出するステップが、割り込みを検出するステップから成り、 前記第2の標識を調べる前記ステップが発生した前記割り込みに関する割り込み ベクトルを調べるステップから成り、前記の調べられるベクトルが別個の割り込 みに関係する複数の割り込みベクトルの1つであり、かつ前記各ベクトルが割り 込みハンドラを特定するためのものであり、更に 前記第2の機能を果たす前記ステップが前記の特定された割り込みハンドラを前 記特権モードで実行するステップから成ることを特徴とする請求項(3)記載の 方法。
  5. (5)前記第2プロセッサにおいてプロセスを実行する前記ステップが、前記第 2プロセッサにおいて前記の移されたプロセスの実行を、実質的に前記第1プロ セッサ上で実行が停止した点から、開始するステップから成り、更に、前記第1 の標識を調べる前記ステップが、前記発生事象に関する前記第1の標識を調べる ステップから成り、調べられる該標識が別個の事象の1つに各々関係する複数の 前記第1の標識201の1つであり、各標識は該標識に関係付けられている事象 の発生に応じて前記第2プロセッサ上で果たされるべき第2の機能を特定するた めのものであり、 これにより、前記第2プロセッサにおいて実行モードを前記事象の発生に応じて 変更する ことを特徴とする請求項(3)記載の方法。
  6. (6)前記第1の標識を調べる前記ステップが、前記の移されたプロセスの実行 中に前記事象の再発生を検出するステップから成る ことを特徴とする請求項(5)記載の方法。
  7. (7)第1のプロセッサ25、第2のプロセッサ12、事象を処理するための第 1の機能手段463、事象の発生に応じて前記第2プロセッサにおいて実施され るべき機能手段を特定する第1の表示手段201、第2の機能手段を特定する第 2の表示手段、および前記第1の表示手段によって特定された前記機能手段を、 前記第1の表示手段と共に実施する手段100から成り: 前記第1プロセッサで実行中のプロセッサを実行のために前記第2プロセッサヘ と移すための第2の機能、前記第1プロセッサにおいて複数の所定の事象のいず れの事象であれ、その発生に応じて果たされるべき機能を特定する第2の表示手 段201、すなわち前記第2の機能手段を特定する前記第2の表示手段、および 前記第1プロセッサにおける複数の事象のいずれかの発生に第2の表示手段と共 に呼応して、第2の表示手段によって特定される機能を果たすための手段100 を特徴とし;なおかつ、 前記第1の表示手段によって特定される前記機能手段を実施するための前記手段 が、前記第2プロセッサに移された前記プロセスの実行の継続に応じて前記第1 の表示手段によって特定される前記機能手段を実施するための手段からなり、こ れによって前記第1プロセッサまたは前記第2プロセッサのいずれかで発生して いる所定の事象を、前記第2プロセッサにおいて処理することを更なる特徴とす る; 多重処理システム(第1図)。
  8. (8)前記第2の機能が、前記複数の所定の事象のうちいずれかの事象が発生し た時に前記第1プロセッサ上で実行中のプロセスを移す機能かちなる ことを特徴とする請求項(7)記載のシステム。
  9. (9)前記第2の表示手段が複数の第2の標識からなり、各該標識が前記第1プ ロセッサにおける関係付けられた事象の発生に応じて果たされるべき機能を特定 し、該複数の標識がすべて前記第2の機能を特定し、 前記第2の表示手段によって特定される前記機能を果たすための手段が、前記第 1プロセッサにおける事象の発生に第2の標識と共に呼応して、該発生事象に関 係付けられている第2の標識によって特定される機能を果たすための手段から成 ることを特徴とする請求項(7)記載のシステム。
  10. (10)実行モードの変更が特権実行モードに入ることからなるシステムにおい て、 前記複数の事象が割り込みからなり、 前記標識が割り込みベクトルからなり、さらに前記標識により特定される前記機 能が特権モードで実行可能な割り込みハンドラからなる ことを特徴とする請求項(9)記載の改良。
  11. (11)前記第1の機能手段が、各々が1つの事象を処理する複数の第1の機能 からなり、 前記第1の表示手段が複数の第1の標識からなり、各々が前記事象の別個の1つ 1つに関係付けられ、前記の関係付けられた事象の発生に応じて前記第2プロセ ッサ上で果たされるべき第1の機能を特定し、 前記第1の表示手段により特定される前記機能手段を実施するための手段が、前 記第2プロセッサにおける前記の移されたプロセスの実行開始に応答して前記発 生事象に関する前記第1の標識により特定される前記第1の機能を果たすための 手段からなり、これにより、前記事象の発生に応じて前記第2プロセッサ上の実 行モードを変更する ことを特徴とする請求項(9)記載の改良。
  12. (12)前記第1の機能を果たすための手段が、前記第2プロセッサにおいて前 記の移されたプロセスの実行中に前記事象が再発生した場合、該再発生に応答す る ことを特徴とする請求項(11)記載の改良。
JP62504590A 1987-02-06 1987-07-27 多重処理を行なう方法および構成 Pending JPH02502764A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US012,085 1987-02-06
US07/012,085 US5109329A (en) 1987-02-06 1987-02-06 Multiprocessing method and arrangement

Publications (1)

Publication Number Publication Date
JPH02502764A true JPH02502764A (ja) 1990-08-30

Family

ID=21753327

Family Applications (1)

Application Number Title Priority Date Filing Date
JP62504590A Pending JPH02502764A (ja) 1987-02-06 1987-07-27 多重処理を行なう方法および構成

Country Status (7)

Country Link
US (1) US5109329A (ja)
EP (1) EP0354899B1 (ja)
JP (1) JPH02502764A (ja)
CN (2) CN1011357B (ja)
CA (1) CA1302577C (ja)
DE (1) DE3784521T2 (ja)
WO (1) WO1988005943A1 (ja)

Families Citing this family (61)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ES2104580T3 (es) * 1989-02-24 1997-10-16 At & T Corp Planificacion adaptativa de tareas para sistemas multiproceso.
SG52380A1 (en) 1991-09-23 1998-09-28 Intel Corp A computer system and method for executing interrupt instructions in two operating modes
CA2106280C (en) * 1992-09-30 2000-01-18 Yennun Huang Apparatus and methods for fault-tolerant computing employing a daemon monitoring process and fault-tolerant library to provide varying degrees of fault tolerance
US5596755A (en) * 1992-11-03 1997-01-21 Microsoft Corporation Mechanism for using common code to handle hardware interrupts in multiple processor modes
US5490279A (en) * 1993-05-21 1996-02-06 Intel Corporation Method and apparatus for operating a single CPU computer system as a multiprocessor system
EP0803130B1 (en) * 1994-06-29 2007-02-28 Intel Corporation Processor that indicates system bus ownership in an upgradable multiprocessor computer system
US5555374A (en) * 1994-08-26 1996-09-10 Systech Computer Corporation System and method for coupling a plurality of peripheral devices to a host computer through a host computer parallel port
JP3672634B2 (ja) * 1994-09-09 2005-07-20 株式会社ルネサステクノロジ データ処理装置
JPH0888668A (ja) * 1994-09-20 1996-04-02 Nippondenso Co Ltd 通信装置
US5550973A (en) * 1995-03-15 1996-08-27 International Business Machines Corporation System and method for failure recovery in a shared resource system having a moving write lock
US6016531A (en) * 1995-05-26 2000-01-18 International Business Machines Corporation Apparatus for performing real time caching utilizing an execution quantization timer and an interrupt controller
US5684948A (en) * 1995-09-01 1997-11-04 National Semiconductor Corporation Memory management circuit which provides simulated privilege levels
US5790846A (en) * 1996-04-18 1998-08-04 International Business Machines Corporation Interrupt vectoring for instruction address breakpoint facility in computer systems
US5963737A (en) * 1996-04-18 1999-10-05 International Business Machines Corporation Interupt vectoring for trace exception facility in computer systems
US5758168A (en) * 1996-04-18 1998-05-26 International Business Machines Corporation Interrupt vectoring for optionally architected facilities in computer systems
US6085307A (en) * 1996-11-27 2000-07-04 Vlsi Technology, Inc. Multiple native instruction set master/slave processor arrangement and method thereof
US8312529B2 (en) 1996-11-29 2012-11-13 Ellis Frampton E Global network computers
US7805756B2 (en) 1996-11-29 2010-09-28 Frampton E Ellis Microchips with inner firewalls, faraday cages, and/or photovoltaic cells
US7506020B2 (en) 1996-11-29 2009-03-17 Frampton E Ellis Global network computers
US7634529B2 (en) * 1996-11-29 2009-12-15 Ellis Iii Frampton E Personal and server computers having microchips with multiple processing units and internal firewalls
US6167428A (en) * 1996-11-29 2000-12-26 Ellis; Frampton E. Personal computer microprocessor firewalls for internet distributed processing
US7024449B1 (en) 1996-11-29 2006-04-04 Ellis Iii Frampton E Global network computers
US20050180095A1 (en) * 1996-11-29 2005-08-18 Ellis Frampton E. Global network computers
US8225003B2 (en) 1996-11-29 2012-07-17 Ellis Iii Frampton E Computers and microchips with a portion protected by an internal hardware firewall
US7035906B1 (en) 1996-11-29 2006-04-25 Ellis Iii Frampton E Global network computers
US7926097B2 (en) * 1996-11-29 2011-04-12 Ellis Iii Frampton E Computer or microchip protected from the internet by internal hardware
US6732141B2 (en) 1996-11-29 2004-05-04 Frampton Erroll Ellis Commercial distributed processing by personal computers over the internet
US6725250B1 (en) * 1996-11-29 2004-04-20 Ellis, Iii Frampton E. Global network computers
JP3247330B2 (ja) * 1997-12-25 2002-01-15 株式会社神戸製鋼所 複数プロセッサシステム
WO2000070448A2 (en) * 1999-05-17 2000-11-23 Ellis Frampton E Iii Multiprocessor with optical connection to a network
US6516410B1 (en) * 2000-02-17 2003-02-04 Compaq Information Technologies Group, L.P. Method and apparatus for manipulation of MMX registers for use during computer boot-up procedures
GB2370380B (en) 2000-12-19 2003-12-31 Picochip Designs Ltd Processor architecture
US6848046B2 (en) * 2001-05-11 2005-01-25 Intel Corporation SMM loader and execution mechanism for component software for multiple architectures
GB2397668B (en) * 2003-01-27 2005-12-07 Picochip Designs Ltd Processor array
US7375035B2 (en) * 2003-04-29 2008-05-20 Ronal Systems Corporation Host and ancillary tool interface methodology for distributed processing
US7155726B2 (en) * 2003-10-29 2006-12-26 Qualcomm Inc. System for dynamic registration of privileged mode hooks in a device
US7386642B2 (en) * 2005-01-28 2008-06-10 Sony Computer Entertainment Inc. IO direct memory access system and method
JP4148223B2 (ja) * 2005-01-28 2008-09-10 セイコーエプソン株式会社 プロセッサおよび情報処理方法
US7680972B2 (en) * 2005-02-04 2010-03-16 Sony Computer Entertainment Inc. Micro interrupt handler
JP2006216042A (ja) * 2005-02-04 2006-08-17 Sony Computer Entertainment Inc 割り込み処理のためのシステムおよび方法
US7996659B2 (en) * 2005-06-06 2011-08-09 Atmel Corporation Microprocessor instruction that allows system routine calls and returns from all contexts
GB2454865B (en) * 2007-11-05 2012-06-13 Picochip Designs Ltd Power control
US8125796B2 (en) 2007-11-21 2012-02-28 Frampton E. Ellis Devices with faraday cages and internal flexibility sipes
US8397043B2 (en) 2007-12-17 2013-03-12 Freescale Semiconductor, Inc. Memory mapping system, request controller, multi-processing arrangement, central interrupt request controller, apparatus, method for controlling memory access and computer program product
US7802042B2 (en) 2007-12-28 2010-09-21 Intel Corporation Method and system for handling a management interrupt event in a multi-processor computing device
GB2466661B (en) * 2009-01-05 2014-11-26 Intel Corp Rake receiver
GB2470037B (en) 2009-05-07 2013-07-10 Picochip Designs Ltd Methods and devices for reducing interference in an uplink
GB2470771B (en) 2009-06-05 2012-07-18 Picochip Designs Ltd A method and device in a communication network
GB2470891B (en) 2009-06-05 2013-11-27 Picochip Designs Ltd A method and device in a communication network
GB2474071B (en) 2009-10-05 2013-08-07 Picochip Designs Ltd Femtocell base station
US8429735B2 (en) 2010-01-26 2013-04-23 Frampton E. Ellis Method of using one or more secure private networks to actively configure the hardware of a computer or microchip
GB2482869B (en) 2010-08-16 2013-11-06 Picochip Designs Ltd Femtocell access control
GB2489716B (en) 2011-04-05 2015-06-24 Intel Corp Multimode base system
GB2489919B (en) 2011-04-05 2018-02-14 Intel Corp Filter
GB2491098B (en) 2011-05-16 2015-05-20 Intel Corp Accessing a base station
US9239801B2 (en) * 2013-06-05 2016-01-19 Intel Corporation Systems and methods for preventing unauthorized stack pivoting
US9811467B2 (en) * 2014-02-03 2017-11-07 Cavium, Inc. Method and an apparatus for pre-fetching and processing work for procesor cores in a network processor
US10802866B2 (en) * 2015-04-30 2020-10-13 Microchip Technology Incorporated Central processing unit with DSP engine and enhanced context switch capabilities
DE102016117495A1 (de) 2016-09-16 2018-03-22 Infineon Technologies Ag Datenverarbeitungseinrichtung und verfahren zum ausführen von computerprogrammcode
CN108563518A (zh) * 2018-04-08 2018-09-21 广州视源电子科技股份有限公司 主从机通信方法、装置、终端设备及存储介质
CN112783626B (zh) * 2021-01-21 2023-12-01 珠海亿智电子科技有限公司 中断处理方法、装置、电子设备及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS58154058A (ja) * 1982-03-10 1983-09-13 Hitachi Ltd マルチプロセッサシステム
JPS5960676A (ja) * 1982-09-30 1984-04-06 Fujitsu Ltd マルチプロセツサ方式

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3631405A (en) * 1969-11-12 1971-12-28 Honeywell Inc Sharing of microprograms between processors
US3812463A (en) * 1972-07-17 1974-05-21 Sperry Rand Corp Processor interrupt pointer
JPS5362945A (en) * 1976-11-17 1978-06-05 Toshiba Corp Disc address system
FR2490434B1 (fr) * 1980-09-12 1988-03-18 Quinquis Jean Paul Dispositif de resolution des conflits d'acces et d'allocation d'une liaison de type bus interconnectant un ensemble de processeurs non hierarchises
DE3105527A1 (de) * 1981-02-16 1982-09-09 Theodor Dr Tempelmeier Verfahren zur verbesserung des antwortzeitverhaltens von prozessrechnern
JPS57164340A (en) * 1981-04-03 1982-10-08 Hitachi Ltd Information processing method
US4703419A (en) * 1982-11-26 1987-10-27 Zenith Electronics Corporation Switchcover means and method for dual mode microprocessor system
US4729094A (en) * 1983-04-18 1988-03-01 Motorola, Inc. Method and apparatus for coordinating execution of an instruction by a coprocessor
US4591975A (en) * 1983-07-18 1986-05-27 Data General Corporation Data processing system having dual processors
US4598356A (en) * 1983-12-30 1986-07-01 International Business Machines Corporation Data processing system including a main processor and a co-processor and co-processor error handling logic

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS58154058A (ja) * 1982-03-10 1983-09-13 Hitachi Ltd マルチプロセッサシステム
JPS5960676A (ja) * 1982-09-30 1984-04-06 Fujitsu Ltd マルチプロセツサ方式

Also Published As

Publication number Publication date
WO1988005943A1 (en) 1988-08-11
DE3784521D1 (de) 1993-04-08
CN1010991B (zh) 1990-12-26
US5109329A (en) 1992-04-28
DE3784521T2 (de) 1993-09-16
CN1011357B (zh) 1991-01-23
CN88100704A (zh) 1988-08-24
CA1302577C (en) 1992-06-02
EP0354899B1 (en) 1993-03-03
EP0354899A1 (en) 1990-02-21
CN88100705A (zh) 1988-08-24

Similar Documents

Publication Publication Date Title
JPH02502764A (ja) 多重処理を行なう方法および構成
JPH02502678A (ja) 多重処理を行なう方法および構成
JP3701814B2 (ja) マルチプロセッサ・システム及びそのシステム・シリアル化方法
JP3546678B2 (ja) マルチos構成方法
Case et al. Architecture of the IBM System/370
US6253320B1 (en) Operating system rebooting method
US6711605B2 (en) Multi OS configuration method and computer system
US6996698B2 (en) Blocking processing restrictions based on addresses
US5185871A (en) Coordination of out-of-sequence fetching between multiple processors using re-execution of instructions
EP0093267B1 (en) Method for switching the control of central processing units in a data processing system, and apparatus for initiating the switching of cpu control
US8429669B2 (en) Virtual machine switching control by prefetching information out of and updating a set of processor control information based on a bitmap having update status
RU2571397C2 (ru) Блок диагностики транзакций
US20060036824A1 (en) Managing the updating of storage keys
JP2000029857A (ja) 個々のプロセッサの早期リリ―スによるシステム・シリアル化方法
JPS5911943B2 (ja) デ−タ処理装置の為のトラツプ機構
JPH0784851A (ja) 共有データ管理方法
EP0550283A2 (en) Invoking hardware recovery actions via action latches
Satyanarayanan Special Feature: Commercial Multiprocessing Systems
US6697959B2 (en) Fault handling in a data processing system utilizing a fault vector pointer table
JP3585510B2 (ja) プログラム実行管理装置及びプログラム実行管理方法
US20020112202A1 (en) Fault vector pointer table
JPH06295265A (ja) 仮想記憶制御における命令中断情報格納制御方法
JPS62298853A (ja) 命令再実行装置