JPH01217535A - 付加プロセツサユニツトの制御方法 - Google Patents

付加プロセツサユニツトの制御方法

Info

Publication number
JPH01217535A
JPH01217535A JP4198388A JP4198388A JPH01217535A JP H01217535 A JPH01217535 A JP H01217535A JP 4198388 A JP4198388 A JP 4198388A JP 4198388 A JP4198388 A JP 4198388A JP H01217535 A JPH01217535 A JP H01217535A
Authority
JP
Japan
Prior art keywords
processor
additional processor
additional
layer
main
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
JP4198388A
Other languages
English (en)
Inventor
Yoichi Takeuchi
洋一 竹内
Kousuke Sakota
迫田 行介
Yoshihiro Tanaka
田中 吉廣
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP4198388A priority Critical patent/JPH01217535A/ja
Publication of JPH01217535A publication Critical patent/JPH01217535A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Multi Processors (AREA)

Abstract

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

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は計算機システムに係り、特に、主プロセッサユ
ニットにPROLOG、 L I S P等のAI言語
の専用プロセッサユニットを付加するシステムにおける
付加プロセッサユニットの制御方式に関する。
〔従来の技術〕
従来、AI言語を処理する方式としては、(1)AI言
語を汎用プロセッサのマシン語に変換して、直接実行す
る方式、(2)AI言語を該AI言語に適した中間語に
変換し、該中間語をインタープリタによって解釈実行す
る方式等が挙げられる。
方式(2)は方式(1)と比べて、プログラムの変換に
要する処理量が少ない、変換後のプログラムの容量が小
さい等の利点を有する。
また、方式(2)におけるインタープリタの処理速度を
向上させる手段として、(3)インタープリタの処理を
専用プロセッサ上で行なう方式が提案されている。該専
用プロセッサは方式(2)における中間語をマシン語と
して、該マシン語をマイクロプログラム制御の下で実行
する。方式(3)は方式(2)の上記の利点を保持した
上で、命令フェッチのためのメモリのアクセス回数が減
少する。マイクロ命令のフィールド単位の並列処理が行
なわれる等の特性により、方式(2)よりも処理速度の
向上がはかれる。
AI言語の処理システムの中で方式(3)を採るものに
は、例えば、情報処理学会記号処理研究会23−1 (
1983年)第1頁から第8頁に記されるシステムが挙
げられる。
〔発明が解決しようとする課題〕
上記の専用プロセッサを利用した方式(3)のAI言語
処理システムにおいては、専用プロセッサの規模や複雑
さ等を抑えるために、通常は、割込処理や入出力処理等
の一部を主プロセッサが分担せざるを得ない。
この場合、主プロセッサと専用プロセッサとの間で、パ
ラメータの引き渡し、プログラムの起動制御等が必要と
なり、主プロセッサの側では、プログラムの変更箇所が
、osの入出カ管理部、プロセス管理部等多岐に及ぶこ
とが問題点であった。
本発明の目的は、上記のようにAI言語の専用プロセッ
サを付加プロセッサとして利用する場合、主プロセッサ
側のプログラムの変更が容易となるよう、プロセッサの
変更箇所を局所化するような付加プロセッサの制御方式
を提供することにある。
〔課題を解決するた゛めの手段〕
上記目的は、 (1)主プロセッサとAI言語を処理する付加プロセッ
サとをバスを介して結合し、バス制御ユニットによって
、付加プロセッサへ優先的にバスマスタ権を割り当てる
こと、 (2)主プロセッサから付加プロセッサを、osのドラ
イバ層、又は、アプリケーション層における特権モード
のプログラムによって起動すること、 (:3)付加プロセッサが動作中に、主プロセッサによ
る処理を要求する場合、該要求処理の種別等を主メモリ
、または付加プロセッサユニット内のレジスタ中に設定
して、動作を停止すること、 (4)付加プロセッサが動作中に、割込要求、またはバ
スエラー信号等を入力した場合に、停止要因を主メモリ
、または付加プロセッサユニット内のレジスタ中に設定
して、動作を停止すること (5)付加プロセッサが動作を停止した場合、主プロセ
ッサが、O5のドライバ層、又は、アプリケーション層
における特権モードのプログラムによって、上記の停止
要因、要求処理の種別等を判定し、必要なプログラムへ
分岐すること 等により、達成される。
〔作用〕
主プロセッサがosのドライバ層、またはアプリケーシ
ョン層における特権モードのプログラムから付加プロセ
ッサを起動すると、付加プロセッサは、バス制御ユニッ
トに対して、バスマスタ権を要求する。
バスマスタ権の割り当ての優先度は付加プロセッサの側
が高く設定されているため、バス制御ユニットは主プロ
セッサからバスマスタ権を付加プロセッサへ移す。
この結果、付加プロセッサは動作を開始し、−方、主プ
ロセッサは。Sのドライバ層、またはアプリケーション
層における特権モードのプログラム中で動作の中断状態
となる。
次いで、付加プロセッサによって、AI言語のプログラ
ムの処理が行なわれる。
この間に、主プロセッサによる処理が必要となった場合
、付加プロセッサは処理の種別や引数等を主メモリ、ま
たは付加プロセッサユニット内のレジスタ(以下、要求
エリアと記す)中に設定して、動作を停止する。また、
割込要求や、バスエラー信号を入力した場合、それらの
種別を主メモリ、または付加プロセッサユニット内のレ
ジスタ(以下、停止要因エリアと記す)中に設定して、
動作を停止する。
付加プロセッサが動作を停止すると、バスマスタ権は主
プロセッサに割り当てられる。この結果、主プロセッサ
は、上記の動作の中断点(osのドライバ層、またはア
プリケーション層における特権モードのプログラム内)
から処理を再開する。
ここで、該プログラムにおいて、付加プロセッサの起動
処理の後に、該停止要因エリアの内容の判定処理、該要
求エリアの内容の判定処理を連ねることによって、必要
な処理に分岐することができる。処理後、該プログラム
を再実行することにより、付加プロセッサの動作を停止
点から再開し。
AI言語の処理を継続する。
以上のように、主プロセッサのプログラムの内で、付加
プロセッサの動作に関連する部分は、osのドライバ層
、またはアプリケーション層における特権モードのプロ
グラムに限られる。これらのプログラムは既存のプログ
ラムに容易に追加することが可能であり、主プログラム
の変更は容易化される。
〔実施例〕
以下、本発明の一実施例(実施例1)を第1〜8図によ
り説明する。実施例1は、本発明により成る計算機シス
テム上の論理型言語処理システムに関するものである。
本システムは論理型言語のソースプログラムを中間語プ
ログラムに変換して。
解釈実行するインタープリタ方式のシステムであり、マ
ルチプロセス機能を有するオペレーティングシステム(
以後、osと記す)上で動作する。
まず、本システムのハードウェア構成について第1図に
より説明する。
本システムにおいては、CPUl0I 、付加プロセッ
サユニット(以後、APUと記す)102.バス洞停ユ
ニット103.メモリ管理ユニット104゜主メモリ1
05および入出力制御ユニット106がバス110を介
して結合しており、入出力制御ユニット106には補助
メモリ107が接続している。また、外部からCPUl
0Iへは割込線111が。
CPUl0IからAPU102へは割込線112が入っ
ている。
メモリ管理ユニット104から主メモリ105へは制御
線113が、バス調停ユニット103へはバスエラー信
号を伝える信号線114が入っている。バス調停ユニッ
ト103からCPUl0IとAPU102へは、それぞ
れ、バスエラー信号を伝える信号線115.116が入
っている。 CPUl0I内には割込マスク120を設
けている。割込マスク120は割込線111からの割込
要求をCPU 101が受け付けるか否かを定める機能
を有する。
第4図はAPU102のハードウェア構成を示すブロッ
ク図である。APU102の内部は実行部401.順序
制御部402.制御メモリ403.バス制御部404に
分れる。
制御メモリ403内には実行部401の動作を定めるマ
イクロプログラムが菩わえられる。順序制御部402は
データ線423を介して、制御メモリ403より該マイ
クロプログラムを読み出し。
制御線422を介して、実行部401の動作を制御する
順序制御部402内にはコントロールレジスタ411と
ステータスレジスタ412.プロセス番号レジスタ41
3を設けている。コントロールレジスタ411はAPU
’102の動作を制御するためのものである0本レジス
タのある1ビツト(以後、スタートビットと記す)に1
′ を書き込むと、順序制御部402はバス調停ユニッ
ト103に対してバス110のマスタ権の割り当てを要
求し、該マスタ権を獲得後、実行部401の動作を開始
する。ステータスレジスタ412はAPU102の実行
状態を表わすためのものである。第8図にステータスレ
ジスタ412のビット構成を示す。ビット801は割込
線112からの割込要求を順序制御部411が受け付け
た場合、1′となる(以後。
割込ビットと記す)、ビット802は信号線116から
のバスエラー信号を順序制御部411が受け付けた場合
、1′となる(以後、バスエラービットと記す)6ビツ
ト803はAPU102がマイクロプログラムの命令に
よって動作を停止した場合、1′となる(以後、終了ビ
ットと記す)。
プロセス番号レジスタ413には、cputotによっ
てプロセス番号が書き込まれる。
実行部401内には作業用のデータ等を蓄わえるための
レジスタファイル410を設けている。
バス制御部404はデータ線420,421を介して実
行部401 、 、wi序制御部402とバス110と
の間のデータの受け渡しを行なう。
CPLIIOIからはバス制御部404を通して、レジ
スタファイル410.コントロールレジスタ411゜ス
テータスレジスタ412.プロセス番号レジスタ413
にアクセスする。
次に、本システムのハードウェアの動作について説明す
る。
まず、APU102の起動制御について記す。
CPUl0Iが動作中に、コントロールレジスタ411
のスタートビットに1′ を書き込むと、APU102
は、バス調停ユニット103に対して、バス110のマ
スタ権の割り当てを要求する。バス調停ユニット103
は該マスタ権の割り当ての優先度を、CPUl0Iより
APU]02の方を高くしており、直ちに該マスタ権を
^PU102へ割り当てる。この結果。
CPUl0Iは命令のフェッチができなくなり、動作を
中断し、八PU102は動作を開始する。
以上のように、APU102は常に、CPUl0Iが動
作を中断した状態で、動作する。このため、APUt0
2が動作を停止して、該マスタ権を放棄すると、CPU
l0Iは該マスタ権を獲得して動作を再開する。
次いで、APt!102が動作している間に、外部から
の割込要求が発生した場合の動作について記す。
外部からの割込要求は割込線111からCPUl0Iへ
入る。APUl、02の動作中1割込マスク120は割
込要求が受け付けられる状態にしてあり、CPUl0I
は該割込要求を直ちに受け付けて、割込要求を割込線1
12を介してAPU102へ出力する。
APU102は動作中に割込線112から割込要求を受
けると、ステータスレジスタ412の割込ビット801
を′1′として、バス110を解放し、動作を停止する
これに伴なって、CPUl0Iは中断していた動作を再
開して、割込例外処理を行なう。該割込要求がタイマー
割込の場合には、引き続いて、osの制御の下にプロセ
ス切換処理を行なう。該割込要求がシグナル割込の場合
には、引き続いて、osの制御の下に、割込ハンドラ処
理用のプログラムを起動する。
次いで、APU102の動作中に、主メモリ105にお
いてページフォールトが発生した場合の動作について記
す。
主メモリ105において、ページフォールトが発生する
と、メモリ管理ユニット104はバスエラー信号を信号
線114を介して、バス調停ユニット103へ送る。バ
ス調停ユニット103は信号線114からバスエラー信
号を入力すると、信号線115、あるいは116を介し
てCPUl0IとAPU102の内でバス110のマス
タ権を保持する側へ、バスエラー信号を送る。
この場合、バス110のマスタ権はAPU102が保持
しているため、バスエラー信号はAPU102へ送られ
る。 APU102は信号線116からバスエラー信号
を受けると、ステータスレジスタ412のバスエラービ
ット802を′1′として、動作を停止する。
次いで、CPUl0Iは動作を再開し、O5の制御の下
に、主メモリ105と補助メモリ107どの間のページ
スワップ処理を行なう。この場合、補助メモリ107に
は入出力制御ユニット106を介してアクセスする。
以上が、本システムのハードウェアの動作である。
次に、本システムのソフトウェア構成について記す。
第3図(1)は主メモリ105内のエリアの構成を表わ
す図である。主メモリ105内のエリアは、アプリケー
ション層301 r o sのカーネル層302、およ
び、osのドライバ層303に分けられる。
アプリケーション層301の構成を第3図(2)に示す
。メインプログラム311はcputotによって実行
され、論理型言語のソースプログラムを中間語プログラ
ムに変換して、主メモリ105へ出力する、APU10
2を0動する等の処理を行なう。組込述語A312はC
PUl0Iにより実行される組込述語の中で、メインプ
ログラム311から呼出されるものである。割込ハンド
ラA313は本システムの備える割込ハンドラの中で、
CPUl0Iにより実行されるものである。中間語プロ
グラム314は、メインプログラム311によって、ソ
ースプログラムを変換して作成されるものである。AP
U102上のインタープリタの処理の対象となる。内部
ステート退避エリア315はAPU102の実行状態を
表わすデータが退避されるエリアである。要求エリア 
316はドライバ層303のアプリケーション層301
のプログラムに対する処理の要求が書き込まれるエリア
である。
O5のカーネル層302の構成を第3図(3)に示す。
入出力管理プログラム321はドライバプログラム33
1の起動処理9割込ハンドラA313の起動処理等を行
なうものである。割込例外処理プログラム322.プロ
セス切換プログラム323は、それぞれ割込例外処理、
プロセス切換処理を行なうものである。ページ管理プロ
グラム324は主メモリ105と補助メモリ107の間
のページスワップ処理を行なうものである。シグナルエ
リアに325はシグナル割込要求の発生時に1割込例外
処理プログラム322によってシグナルの種別が登録さ
れるエリアである。テーブルに326は割込ハンドラA
313内のプログラムの処理を要求するシグナルの種別
と対応するプログラムのアドレスを保持するテーブルで
ある。プロセス管理テーブル327は現在実行中、待ち
状態のプロセス番号を保持するテーブルである。
osのドライバ層303の構成を第3図(4)に示す、
ドライバプログラム331はAPU102の起動処理等
を行なうものであり、 CPUl0Iにより実行される
。組込述語D332はcputotにより実行される組
込述語の中でドライバプログラム331から呼出される
ものである。
第6図はAPU102内の制御メモリ403中のマイク
ロプログラムの構成を表わす図である。
インタープリタ601は主メモリ105内の中間語プロ
グラム314を解釈実行するものである。
組込述語M602は本システムの備える組込述語の中で
APU102により実行されるものである。割込ハンド
ラM603は本システムの備える割込ハンドラの中でA
PUI02により実行されるものである。
第5図はAPU102内のレジスタファイル410のエ
リアの構成を表わす図である。
シグナルエリアM501は、割込ハンドラM603の処
理を要求するシグナルの発生時に、該シグナルの種別が
5thされろエリアである。テーブルM502は割込ハ
ンドラM603の処理を要求するシグナルの種別と対応
するプログラムのアドレスを保持するテーブルである。
要求エリアM503はAPU102のCPUl0Iに対
する要求処理が書き込まれるエリアである。ワーキング
エリア504はインタープリタ601の動作時に作業用
に用いられるエリアである。
次に、第2図、および第7図によって本システムの処理
フローについて説明する。
第2図(a)、(b)の処理フローは次の4つの部分に
分れる。第1はステップ201〜206であり、これら
はアプリケーション層301内のプログラムによるCP
Ul0Iの処理フローを表わす。
第2はステップ211〜213であり、これらはosの
カーネル層302内のプログラムによるCPUl0Iの
処理フローを表わす、第3はステップ221〜236で
あり、これらはosのドライバ層303内のプログラム
によるcput旧の処理フローを表わす。第4はステッ
プ240であり。
APυ102の制御メモリ403中のマイクロプログラ
ムによる処理を表わす。
まず、第1にアプリケーション層301内のプログラム
によるCPUl0Iの処理フロー(ステップ201〜2
06)について説明する。
ステップ201〜205はメインプログラム311の処
理フローである。以下にその内容を記す。
ステップ201:本システムの初期化を行なった後、論
理型言語のソースプログラ ムを入力して、中間語プログラム 314を作成し、主メモリ105 へ出力する。
ステップ202:主メモリ105内の内部ステート退避
エリア315にAPU102の初期状態を表わす値を書
き込む。
ステップ203:ioコマンドを発行して、osのカー
ネル層302の入出力管理 プログラム321を呼び出す(ス テップ211へ進む)。
ステップ204:osのドライバ層303からの要求を
要求エリアA316から読 み出して、該要求がシステムの終 了要求であれば終了し、さもなけ れば次ステツプへ進む。
ステップ205:該要求に応じて、組込述語A312の
実行等を行なった後、ステップ 2.03へ戻る。
以上がメインプログラム311の処理フローである。
ステップ206は割込ハンドラA313の処理を表わす
。割込ハンドラA313は入出力管理ブログラム321
によって起動され、処理の終了後、メインプログラム3
11へ制御を戻す(ステップ204へ進む)。
次に、OSのカーネル層302内のプログラムによるc
puloiの処理フロー(ステップ211〜214)に
ついて説明する。
まず、入出力管理プログラム321の処理フローについ
て記す。
ステップ211 : CPUl0I内の割込マスク12
0を割込要求が受け付けられないよう に設定し、ドライバプログラム 331を呼出す(ステップ221 へ進む)。
ステップ212ニドライバブログラム331の終了後、
シグナルエリアに325を 参照して、シグナルが登録されて いれば、テーブルに326より、 対応する割込ハンドラA313内 のプログラムのアドレスを求めて。
該プログラムを起動する(ステツ プ206へ進む)、さもなければ。
メインプログラム311ヘリター ンする(ステップ204へ進む)。
上記のいずれの場合にも、ステップ212の終了時に、
割込マスク120を割込要求の受け付けが可能となるよ
うに設定する。
以上が、入出力管理プログラム321の処理フローであ
る。
ステップ213は割込例外処理プログラム322の処理
を表わす。該プログラム322はCPUl0Iが割込線
111からの割込要求を受け付けた場合に起動され、該
割込要求がシグナル割込要求の場合にはシグナルの種別
をシグナルエリアに325に登録する。処理終了後、割
込要求の受け付は時点の状態から、CPUl0Iの処理
を再開する。
次に、OSのドライバ層303内のドライバプログラム
331によるCPUl0Iの処理フロー(ステップ22
1〜236)について説明する。ドライバプログラム3
31はAPU102の起動処理と、その後のAPU10
2からの要求や1割込要求に対する処理を以下の手順で
行なう。
ステップ221:プロセス管理テーブル327内の現プ
ロセス番号と、APU102内のプロセス番号レジスタ
413の値 を読み出して、それらが一致しな い場合、主メモリ105内の内部 ステート退避エリア315の内容 を、APU102内のレジスタファイル410へ書き込
む。
ステップ222:割込マスク120を割込要求の受け付
けが可能となるように設定 し、APU102内のコントロールレジスタ411内の
スタートビットを ′1′とする。この結果、APU102は実行状態(ス
テップ240)と なる。
ステップ223 : APU102の動作停止後1割込
マスク120を割込要求の受け付けが 不可能となるように設定し、ステ ータスレジスタ412の割込ピッ ト801が11′である場合、ス テップ231へ、バスエラーピッ ト802が11′である場合、ス テップ235へ、終了ビット803 が51′である場合、次ステツプ へ進む。いずれのビットもマ1マで ない場合には本ステップを繰り返 す。
ステップ224ニレジスタフアイル410内の要求エリ
アM503から、AP旧02の CPUl0Iに対する要求ヲ読み出し、該要求がドライ
バプログラム331 内で処理可能な場合、次ステツプ へ、処理不可能な場合、ステップ 229へ進む。
ステップ225:該要求がプロセス切換を許す処理であ
る場合、ステップ227へ、 許さない処理である場合1次ステ ツブへ進む。
ステップ226:該要求に対する処理(組込述語D33
2の実行等)を行ない、ス テップ222へ戻る。
ステップ227:プロセス管理テーブル327内の現プ
ロセス番号をプロセス番号 レジスタ413へ、レジスタファ イル410内のAPU102の実行状態を表わす値を主
メモリ105内の 内部ステート退避エリア315へ 書き込む。
ステップ228:要求エリア間503内の要求に対する
処理(組込述語D332の 実行等)を行なう。この間、割込 マスク120を割込要求の受け付 けが可能な状態に設定する。処理 後、ステップ221へ戻る。
ステップ229:要求エリアM503の内容を要求エリ
アA316へ書き込む。
ステップ230:プロセス管理テーブル327内の現プ
ロセス番号をプロセス番号 レジスタ413へ、レジスタファ イル410内のAPU102の実行状態を表わす値を内
部ステート退避エ リア315へ書き込み、入出力管 環プログラム321ヘリターンす る(ステップ212へ進む)。
ステップ231:シグナルエリアに325を参照して、
シグナルの種別が書き込ま れていない(すなわち1割込要求 の要因がタイマー割込である)場 合、ステップ233へ進む。シブ ナルの種別が書き込まれており、 該種別がテーブルに326に登録 されている(すなわち、割込ハン ドラA312内のプログラムの処 理が要求されている)場合、ステ ツブ230へ進む。その他の(す なわち、APU102による割込ハンドラM603内の
プログラムの処理 が要求されている)場合、次ステ ツブへ進む。
ステップ232:シグナルエリアに325の内容をレジ
スタファイル410内のシ グナルエリアM501へ書き込み、 ステップ222へ戻る。
ステップ233:プロセス管理テーブル327内の現プ
ロセス番号をプロセス番号 レジスタ413へ、レジスタファ イル410内のAPU+02の実行状態を表わす値を内
部ステート退避エ リア315へ書き込む。
ステップ234:osのカーネル層302のプロセス切
換プログラム323を呼び 出して、プロセス切換処理を行な う。該プログラムの終了後、ステ ツブ221へ戻る。
ステップ235:プロセス管理テーブル327内の現プ
ロセス番号をプロセス番号 レジスタ413へ、レジスタファ イル410内のAPU102の実行状態を表わす値を内
部ステート退避エ リア315へ書き込む。
ステップ236 : o sのカーネル層302のペー
ジ管理プログラム324を呼び出 して、主メモリ105と補助メモ リ107の間のページスワップ処 理を行なう、該プログラムの終了 後、ステップ221へ戻る。
以上が、ドライバプログラム331の処理フローである
。この中で、ステップ222の処理によってAPU10
2が動作状態になると、CPUl0Iは動作を中断する
。その後、APU102のvノ作が終了するとCPUl
0Iはステップ223より動作を再開する。ただし、シ
グナル割込は割込線1.1.1,112よりCl301
01とAPU102の両者に入るため、シグナル割込の
発生時にはAPUt02の動作終了後、C1)υ101
は割込例外処理プロゲラ・ム322を実行して(ステッ
プ213)から、ステップ223の処理に移る。
次に、APU102の処理(ステップ240)のフロー
について、第7図によって説明する。
APU102は、コントロールレジスタ411のスタ−
トビットに11′が書き込まれると動作状態となり、イ
ンタープリタ601の実行を開始する。
インタープリンタ601の処理フローを以下に示す。
ステップ701:シグナルエリア間501内に、シグナ
ルの種別が書き込まれてい る場合、テーブルM502を参照 して、対応する割込ハンドラM603 内のプログラムのアドレスを求め、 該プログラムを呼び出す(ステッ プ705へ進む)。さもなければ、 次ステツプへ進む。
ステップ702:中間語プログラム314内の中間語を
読み出す、該中間語が CPUl0Iに対する処理要求(すなわち、システムの
終了要求、または 組込述語A312.組込述語D332 の処理要求)である場合、ステッ プ704へ、さもなければ1次ス テップへ進む。
ステップ703:上記中間語を解釈実行し、ステップ7
02へ戻る。
ステップ704:要求エリアM503へCPUl0Iに
対する処理要求を書き込んで、動 作を停止する。
この場合、ステータスレジスタ 411の終了ビット803がマ1マ に設定される。
以上がインタープリタ601の処理フローである。
ステップ705は割込ハンドラM603内のプログラム
の処理を表わす。該プログラムはインタープリタ601
から呼び出され、処理終了後はインタープリタ601ヘ
リターンする(ステップ702へ進む)。
以上が、八PU102の処理フローである。
最後に、APtJ102が動作中に割込要求、あるいは
、バスエラー信号を受け付けた場合の処理について補足
する。
まず、割込線112からの割込要求を受け付けた場合、
APu102はステータスレジスタ411の割込ビット
801を1′にして動作を終了する。
また、信号線116からのバスエラー信号を受け付けた
場合、APU102はステータスレジスタ411のバス
エラービット802を1′にして動作を終了する。
以上が、実施例1についての説明である。
次に実施例1のシステムの一部を変形したシステムの例
(実施例2〜実施例8)を示す。
実施例2は、実施例1においてドライバ層303内で行
なった処理をアプリケーション層301において特権モ
ードに移って実行する方式のシステムである。
実施例1では、アプリケーション層301のメインプロ
グラム311中のステップ203においてioコマンド
を発行し、ドライバプログラムに制御を移したのに対し
て1水力式では、同ステップにおいて、asコマンドに
よって特権モードに移ってから、APU102の制御用
プログラムを呼び出す。
該制御用プログラムでは、ドライバ層303のドライバ
プログラム311(ステップ221〜236)、および
組込述語D332と同様の処理を行なう。
また、割込要求を受け付けてAPu102が動作を終了
した場合、主プロセッサ101はカーネル層302内の
割込例外処理プログラム322において、プロセス切替
処理を行なわず、該制御用プログラムの動作中断箇所(
ステップ223)の実行に移るものとする。
実施例3は、実施例2において、特権モードに移って行
なわれる処理を、通常のアプリケーション層の実行モー
ドで行なう方式のシステムである。
本方式はAPU102内のレジスタ類を、ユーザ用のア
ドレス空間に置いた場合、またはメモリ空間がプロテク
トされていない場合に用いることができる。
実施例4は、実施例1におけるドライバ層303内の処
理を、カーネル層302内で行なう方式のシステムであ
る。すなわち、本方式ではドライバプログラム331と
組込述語D332を含むようにosのカーネル層302
のプログラムを変更する。
実施例5は、実施例1においてプロセス番号レジスタ4
13にプロセス番号を記憶する点を変更して、OSのカ
ーネルM302内にプロセス番号を記憶する方式のシス
テムである。
実施例6は、実施例1においてAPU102の動作終了
後のステップ227、または230,233゜235内
で現プロセス番号をプロセス番号レジスタ413に記憶
する点を変更して、該処理をAPU102の起動前のス
テップ221内で行なう方式のシステムである。
実施例7は、実施例1においてAPU102がマルチプ
ロセスによって利用される点を変更して。
APU102を利用するプロセスをシングルプロセスに
限定する方式のシステムである0水力式ではAPU10
2をあるプロセスが利用している間に、他のプロセスが
APU102を利用することを禁止する機構を備える。
一方、プロセスの切替に伴う八PU102の実行状態を
表すす値の主メモリへの退避処理、主メモリからの回復
処理は不要である。すなわち、ドライバプログラム33
1におけるステップ221、および227,230,2
33,235が省略される。また、主メモリ105上の
内部ステート退避エリア315 、 APU102内の
プロセス番号レジスタ413も省略される。
実施例8は、実施例7のシステムにおいて、APU10
2の動作中にプロセスの切替を禁止する方式のシステム
である。本方式では、実施例7の場合と比較して、ドラ
イバプログラム331中のステップ234(プロセス切
替プログラム323の呼び出し処理)が省略される。
〔発明の効果〕
本発明によれば、AI言語の専用プロセッサを計算機シ
ステムに付加する場合、主プロセッサの側のプログラム
の変更箇所は局所化される。この結果、該専用プロセッ
サを付加することが容易化し、該専用プロセッサを付加
するか否かをオプション化することも可能となる。
また、AI言語の処理中に発生する割込処理。
入出力処理等の一部を、主プロセッサの側で処理しうる
ので、該専用プロセッサの構造を簡素化することができ
る。
また、仮想メモリ方式で、マルチプロセス動作が行なね
れる場合、プロセスの切り換えの際に、専用プロセッサ
のレジスタ類の値をアプリケーションプログラム領域(
すなわち、仮想アドレス領域)内に退避することが可能
となり、主メモリの使用量を低減する効果がある。
【図面の簡単な説明】
第1図は本発明の一実施例(実施例1)の計算機システ
ムのハードウェア構成を表わすブロック図、第2図(a
)、(b)はCPUl0Iの動作を表わすフロー図、第
3図は主メモリ105のエリアの構成を表わす図、第4
図は付加プロセッサユニット102のハードウェア構成
を表わすブロック図、第5図はレジスタファイル402
のエリアの構成を表わす図、第6図は制御メモリ403
内のマイクロプログラムの構成を表わす図、第7図は実
行ユニット401の動作を表わすフロー図、第8図はス
テータスレジスタ412内のビットの構成を表わす図で
ある。

Claims (1)

  1. 【特許請求の範囲】 1、バスを介して結合される主プロセッサユニット、付
    加プロセッサユニット、バス制御ユニット、メモリ管理
    ユニットおよびメモリから構成され、付加プロセッサユ
    ニットが内蔵するマイクロプログラムを実行して、メモ
    リ内のAI言語のプログラムを処理する計算機システム
    において、 該付加プロセッサのバスマスタ権の割り当ての優先度を
    該主プロセッサのそれよりも高く設定し、 各プロセッサからのバスマスタ権の割り当ての要求に対
    して、該優先度にもとづいて、各プロセッサへバスマス
    タ権を割り当て、 該付加プロセッサがバスマスタ権を放棄して動作を停止
    した場合、バスマスタ権を失つて、実行を中断している
    状態にある該主プロセッサが動作を中断箇所から再開す
    る ことを特徴とする付加プロセッサユニットの制御方法。 2、メモリ管理ユニットにおいて、論理アドレスの指定
    によるメモリのアクセス要求を受け取り指定されたアド
    レスに該実メモリが割り当てられていれば、該メモリを
    アクセスし、割り当てられていなければ、バスエラー信
    号を該バス制御ユニットへ出力し、 該バス制御ユニットにおいて、該メモリ管理ユニットか
    ら入力した該バスエラー信号を、主プロセッサと付加プ
    ロセッサの内でバスマスタ権を保持する側へ出力する ことを特徴とする特許請求の範囲第1項記載の付加プロ
    セッサユニットの制御方法。 3、付加プロセッサにおいて、メモリ管理ユニットから
    バスエラー信号を入力した場合、バスマスタ権を放棄し
    て動作を停止する ことを特徴とする特許請求の範囲第二項記載の付加プロ
    セッサユニットの制御方法。 4、主プロセッサと付加プロセッサへ直接的に、共通の
    割込要求を入力するかあるいは、該主プロセッサを介し
    て、間接的に付加プロセッサに該主プロセッサと共通の
    割込要求を入力し、該付加プロセッサにおいて、該割込
    要求を入力した場合、バスマスタ権を放棄して動作を停
    止する ことを特徴とする特許請求の範囲第1項記載の付加プロ
    セッサユニットの制御方法。 5、主プロセッサにおいて、 マルチプロセス動作を実行し、 付加プロセッサが動作を停止した場合、主メモリ中、あ
    るいは該付加プロセッサユニット内のレジスタ中に、現
    プロセスの識別子を書き込み、該付加プロセッサの実行
    状態を示すレジスタ類の値を該主メモリ上に退避し、 該付加プロセッサを再起動する際に、該主メモリ中、あ
    るいは該付加プロセッサユニット内のレジスタ中に書き
    込まれているプロセスの識別子と、現プロセスの識別子
    とを比較して、それらが一致しない場合のみ、該主メモ
    リ上に退避されているレジスタ類の値を回復する ことを特徴とする特許請求の範囲第1項記載の付加プロ
    セッサユニットの制御方法。 6、主プロセッサにおいて、 オペレーティングシステム(os)の制御下で、アプリ
    ケーション層のプログラムを実行しアプリケーション層
    から特権モードに移つて、付加プロセッサを起動し、 該付加プロセッサの起動に伴つてバスマスタ権が該付加
    プロセッサへ移動したために実行を中断している状態に
    おいて、該付加プロセッサがバスマスタ権を放棄して動
    作を終了した場合、再度、バスマスタ権を獲得して、特
    権モードの実行を中断箇所から再開する ことを特徴とする特許請求の範囲第1項記載の付加プロ
    セッサユニットの制御方法。 7、主プロセッサにおいて、 カーネル層とドライバ層から成るオペレーティングシス
    テム(os)の制御下で、アプリケーション層のプログ
    ラムを実行し、 アプリケーション層からカーネル層のプログラムの実行
    を介してドライバ層を起動し、ドライバ層の実行の中で
    付加プロセッサを起動し、該付加プロセッサの起動に伴
    つてバスマスタ権が該付加プロセッサへ移動したために
    実行を中断している状態において、該付加プロセッサが
    バスマスタ権を放棄して動作を終了した場合、再度、バ
    スマスタ権を獲得して、ドライバ層の実行を中断箇所か
    ら再開する ことを特徴とする特許請求の範囲第1項記載の付加プロ
    セッサユニットの制御方法。 8、主プロセッサのカーネル層において、カーネル層と
    ドライバ層が動作する間は、主プロセッサに対する割込
    要求がマスクされるようにマスクレジスタの値を設定し
    、 ドライバ層において、付加プロセッサを起動する時点で
    、該割込要求のマスクが解除されるように該マスクレジ
    スタの値を変更し、該付加プロセッサが動作を停止した
    場合、該割込要求がマスクされるように該マスクレジス
    タの値を変更する ことを特徴とする特許請求の範囲第7項記載の付加プロ
    セッサユニットの制御方法。 9、主プロセッサのカーネル層において、マルチプロセ
    ス動作を実行し、 付加プロセッサにおいて、主プロセッサに対して処理を
    要求して、動作を停止し、 該主プロセッサにおいて、該付加プロセッサが動作を停
    止した場合、該付加プロセッサの該主プロセッサに対す
    る要求処理の種別に応じて、次の(a)〜(d)の動作 (a)ドライバ層において該要求処理を行なつた後、該
    付加プロセッサの動作を停止箇所より再開する、 (b)ドライバ層において該付加プロセッサの動作状態
    を保持するレジスタ類の値を主メモリ上に退避し、該要
    求処理を行なつた後、該レジスタ類の値を回復し、該付
    加プロセッサの動作を停止箇所より再開する、 (c)ドライバ層において該付加プロセッサの動作状態
    を保持するレジスタ類の値を主メモリ上に退避し、カー
    ネル層において、プロセススイッチを発行し、同プロセ
    スの再開後、ドライバ層において該レジスタ類の値を回
    復し、該付加プロセッサの動作を停止箇所より再開する
    、 (d)ドライバ層において該付加プロセッサの動作状態
    を保持するレジスタ類の値を主メモリ上に退避し、アプ
    リケーション層において、該要求処理を行なつた後、ド
    ライバ層において該レジスタ類の値を回復し、該付加プ
    ロセッサの動作を停止箇所より再開する、 を行なうことを特徴とする特許請求の範囲第7項記載の
    付加プロセッサユニットの制御方法。 10、主プロセッサにおいて、アプリケーション層にお
    いて主プロセッサと付加プロセッサに共通に入力される
    割込要求に対する割込ハンドラ処理を行ない、 該割込要求を入力して該付加プロセッサが動作を停止し
    た場合、カーネル層において、該割込要求が発生したこ
    とを記憶するシグナルを立ててから、ドライバ層の動作
    を中断箇所から再開し、ドライバ層において、該シグナ
    ルが立つている場合、カーネル層にリターンし、カーネ
    ル層において、アプリケーション層の該割込ハンドラ処
    理を起動する ことを特徴とする特許請求の範囲第四、八項記載の付加
    プロセッサユニットの制御方法。11、付加プロセッサ
    において、主プロセッサと付加プロセッサに共通に入力
    される割込要求に対する割込ハンドラ処理を行ない、 主プロセッサにおいて、該割込要求を入力して該付加プ
    ロセッサが動作を停止した場合、カーネル層において、
    該割込要求が発生したことを記憶するシグナルを立てて
    から、ドライバ層の動作を中断箇所から再開し、 ドライバ層において、該シグナルが立つている場合、該
    割込ハンドラ処理を実行するように該付加プロセッサを
    起動する ことを特徴とする特許請求の範囲第4項又は第8項記載
    の付加プロセッサユニットの制御方法。
JP4198388A 1988-02-26 1988-02-26 付加プロセツサユニツトの制御方法 Pending JPH01217535A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP4198388A JPH01217535A (ja) 1988-02-26 1988-02-26 付加プロセツサユニツトの制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP4198388A JPH01217535A (ja) 1988-02-26 1988-02-26 付加プロセツサユニツトの制御方法

Publications (1)

Publication Number Publication Date
JPH01217535A true JPH01217535A (ja) 1989-08-31

Family

ID=12623437

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4198388A Pending JPH01217535A (ja) 1988-02-26 1988-02-26 付加プロセツサユニツトの制御方法

Country Status (1)

Country Link
JP (1) JPH01217535A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03269663A (ja) * 1990-03-20 1991-12-02 Fujitsu Ltd 専用プロセッサの接続方式

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03269663A (ja) * 1990-03-20 1991-12-02 Fujitsu Ltd 専用プロセッサの接続方式

Similar Documents

Publication Publication Date Title
JP3546678B2 (ja) マルチos構成方法
US6711605B2 (en) Multi OS configuration method and computer system
US5706514A (en) Distributed execution of mode mismatched commands in multiprocessor computer systems
US6314515B1 (en) Resetting multiple processors in a computer system
CN114077379B (zh) 一种计算机设备、异常处理的方法以及中断处理的方法
JPH0430053B2 (ja)
KR20010070469A (ko) 고속의 낮은 오버헤드 콘텍스트 스위치를 실행하는디바이스 및 방법
JPS6055467A (ja) マルチ・マイクロプロセツサによつて実現されたメインフレ−ム・エミユレ−シヨン用デ−タ処理システム
US7552434B2 (en) Method of performing kernel task upon initial execution of process at user level
US7546600B2 (en) Method of assigning virtual process identifier to process within process domain
JPH0232659B2 (ja)
JP5131269B2 (ja) マルチプロセッシングシステム
JP2001216172A (ja) マルチos構成方法
JP4026667B2 (ja) マルチos構成方法
US20210208928A1 (en) Interrupt servicing in userspace
JPH01217535A (ja) 付加プロセツサユニツトの制御方法
JPS6049352B2 (ja) デ−タ処理装置
US5201052A (en) System for transferring first and second ring information from program status word register and store buffer
EP0948769A1 (en) Real time services in backwardly compatible operating systems
JPS603229B2 (ja) 情報処理方式
JPS61101865A (ja) マルチマイクロプロセツサシステム
JPH0433130A (ja) マルチチップ構成方法
JPH0567973B2 (ja)
JPH0133856B2 (ja)
JP2004038995A (ja) マルチos構成方法