JPH0844661A - 情報処理装置 - Google Patents

情報処理装置

Info

Publication number
JPH0844661A
JPH0844661A JP19357894A JP19357894A JPH0844661A JP H0844661 A JPH0844661 A JP H0844661A JP 19357894 A JP19357894 A JP 19357894A JP 19357894 A JP19357894 A JP 19357894A JP H0844661 A JPH0844661 A JP H0844661A
Authority
JP
Japan
Prior art keywords
bus
processing
command
request
slave
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
JP19357894A
Other languages
English (en)
Inventor
Fujio Ihara
富士夫 井原
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.)
Fujifilm Business Innovation Corp
Original Assignee
Fuji Xerox Co 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 Fuji Xerox Co Ltd filed Critical Fuji Xerox Co Ltd
Priority to JP19357894A priority Critical patent/JPH0844661A/ja
Publication of JPH0844661A publication Critical patent/JPH0844661A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 【目的】 システム内に処理の遅いバス・スレーブがあ
っても、バスの使用効率が低下しないようにすること。 【構成】 処理を要求する複数個のバス・マスタM1
3 と、要求された処理を実行するバス・スレーブS1
〜S3 と、バスの使用権を調停するバス調停手段2と
を、共有バス1に共通に接続する。バス・マスタM1
3 は、バス・スレーブS1 〜S3 に処理を要求する際
に、バス使用権を獲得して処理要求コマンドをバス・ス
レーブに対して発行した後、バスを解放する。一方、バ
ス・スレーブは、受信した自己宛のコマンドを一旦キュ
ーに格納し、その中から1つを選択して所定の処理を実
行する。処理終了後は、処理要求元のバス・マスタへの
返信コマンドを作成し、バス調停手段2に対してバス使
用要求を発行する。バス調停手段2は、バス・マスタM
1 〜M3 よりバス・スレーブS1 〜S3 に優先的にバス
使用権を与える。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、共有バスを有効利用す
るようにした情報処理装置に関するものである。
【0002】
【従来の技術】従来、共有バスに複数のバス・マスタ及
びバス・スレーブが接続された情報処理装置において、
各バス・マスタにバス使用の優先順位を設定して、各バ
ス・マスタが共有バスを介してデータ転送する際には、
バス調停手段により、上記優先順位に基づいてバス使用
の調停を行うようにしたものが普及している。
【0003】図6は、バス・マスタ及びバス・スレーブ
が共有バスに接続された状態を示す図である。図6にお
いて、1は共有バス、2はバス調停手段、M1 〜M
3 は、プロセッサ,DMA(Direct Memory Access)コン
トローラ等のバス・マスタ、S1〜S3 は、メモリ,I
/O(入出力)装置等のバス・スレーブである。バス・
マスタM1 〜M3 は、バス・スレーブS1 〜S3 との間
でデータ転送を行うに当たり、プログラムからの要求に
よりバス使用要求を出し、バス使用許可が出たら、共有
バス1を使用する。バス調停手段2は、各バス・マスタ
1 〜M3 に設定されたバス使用優先順位に基づいて、
各バス・マスタM1 〜M3 間のバス使用要求の調停を行
う。
【0004】例えば、各バス・マスタM1 〜M3 のバス
使用優先順位が、バス・マスタM3,M2 ,M1 の順に
高いとすると、バス・マスタM1 とバス・マスタM3
バス調停手段2に対して同時にバス使用要求を出したと
き、バス調停手段2は、バス・マスタM3 にバス使用許
可を与える。しかし、既にバス・マスタM1 がバス使用
中であれば、バス・マスタM3 がバス調停手段2に対し
てバス使用要求を出しても、バス・マスタM1 が共有バ
ス1を解放するまでは、バス・マスタM3 にバス使用許
可は与えられない。しかも、バス・マスタM1 が共有バ
ス1を解放するのは、バス・スレーブから返信があった
後で、例えば、データをバス・スレーブから読み出す場
合、バス・スレーブに対して読出コマンドを送った後、
バス・スレーブからデータの返送があった時である。
【0005】そのため、バス・マスタM1 によるデータ
読み出しの要求があってから、データを読み出すのに比
較的長い時間を要するバス・スレーブの場合には、その
間、他のバス・マスタM2 ,M3 は共有バス1を使うこ
とができず、共有バス1の使用効率を落としてしまうこ
とになる。特に、高速のマイクロプロセッサの登場によ
り、マイクロプロセッサとメモリとの間でさえその速度
差が問題となる最近の状況では、メモリにおいてもその
ような問題が発生する。
【0006】そこで、特開平3−51943号公報に示
されるように、処理に比較的長い時間を要するバス・ス
レーブには、コマンドの送信とそれに対する返信とを分
割して共有バス1を使用する、分割アクセスを行うよう
にする技術が提案されている。すなわち、バス・マスタ
が分割アクセス対応のバス・スレーブにアクセスする時
は、該バス・スレーブからの返信を待たずに共有バス1
を解放し、該バス・スレーブは、応答できる状態になっ
てからバスの使用権を獲得し、送信元のバス・マスタに
対して返信する。そのようにすれば、応答の遅いバス・
スレーブからの返信を待っている間に、他のバス・マス
タが他のバス・スレーブと通信を行うことができる。
【0007】
【発明が解決しようとする課題】しかしながら、前記し
た従来の技術では、1つのバス・マスタが分割アクセス
を実行している時、他のバス・マスタは、他のバス・ス
レーブにはアクセスできても、分割アクセスされている
バス・スレーブにはアクセスできない。そのため、シス
テム内に遅いI/O装置等が複数ある場合には、待たさ
れるバス・マスタの数が多くなってバスの使用効率が低
下するという問題点があった。特に、マイクロプロセッ
サを複数用いた所謂マルチプロセッサ環境では、その問
題がより一層大きくなる。本発明は、以上のような問題
点を解決することを課題とするものである。
【0008】
【課題を解決するための手段】前記課題を解決するた
め、本発明では、処理を要求する複数個のバス・マスタ
と、バス・マスタに要求された処理を実行するバス・ス
レーブと、それらバス・マスタ,バス・スレーブを共通
に接続する共有バスと、該共有バスの使用権を調停する
バス調停手段とを有する情報処理装置において、前記バ
ス・マスタは、バス・スレーブに処理を要求する際に、
共有バスの使用要求を前記バス調停手段に対して発行す
るバス使用要求手段と、共有バスの使用権を獲得後、処
理を要求するコマンドをバス・スレーブに対して発行
し、共有バスを解放するコマンド発行手段とを具え、前
記バス・スレーブは、受信したコマンドを溜めておくキ
ューと、共有バスから受信した自己宛のコマンドを前記
キューに入れ、また、該キューに溜められたコマンドの
中から1つを選択して処理実行部に送るキュー管理手段
と、処理実行部の処理終了後に、処理要求元のバス・マ
スタへの返信コマンドを作成するコマンド発行手段と、
処理要求元のバス・マスタに返信コマンドを送るため、
前記バス調停手段に対して共有バスの使用要求を発行す
るバス使用要求手段とを具え、前記バス調停手段は、バ
ス・マスタより優先してバス・スレーブにバス使用権を
与えることとした。
【0009】
【作 用】バス・スレーブでは、共有バスから自己宛
のコマンドを受信したら、キュー管理手段により、それ
をキューに格納する。また、キュー管理手段は、該キュ
ーに蓄積されたコマンドの中から1つを選択して処理実
行部に送る。処理実行部の処理が終了したら、コマンド
発行手段は、処理要求元のバス・マスタへの返信コマン
ドを作成する。また、バス使用要求手段は、処理要求元
のバス・マスタに返信コマンドを送るため、バス調停手
段に対して共有バスの使用要求を発行する。その際、バ
ス調停手段は、バス・マスタより優先してバス・スレー
ブにバス使用権を与える。
【0010】そのように、バス・スレーブにコマンドを
溜めておくキューを設けたため、あるバス・マスタから
の要求により処理を行っているバス・スレーブでも、他
のバス・マスタから処理要求を受け付けることができ
る。すなわち、あるバス・マスタが分割アクセスを実行
している時、他のバス・マスタは、分割アクセスされて
いるバス・スレーブにもアクセスするとこができる。そ
の結果、バス・マスタは、バス・スレーブの処理が終わ
るまで待たされるということがなくなり、バスの使用効
率が低下するということはなくなる。また、バス・マス
タからの処理要求コマンドの送信より、バス・スレーブ
からの返信が優先的に行われるため、その分キューに溜
まるコマンド数が減少し、キューの段数を少なくするこ
とができる。
【0011】
【実施例】以下、本発明の実施例を図面に基づいて詳細
に説明する。図1は、バス・マスタとバス・スレーブの
概略の構成を示す図であり、その内、図1(イ)が、バ
ス・マスタの概略の構成を示し、図1(ロ)が、バス・
スレーブの概略の構成を示している。符号1,M1 ,S
1 は、図6のものに対応し、3は命令実行手段、4,1
0はバス使用要求手段、5,11はコマンド発行手段、
6,7はバス監視手段、8はキュー、9はキュー管理手
段、12はメモリである。
【0012】バス・マスタM1 においては、命令実行手
段3は、プログラムを解釈・実行し、バス・スレーブS
1 〜S3 にアクセスする必要がある時には、バス使用要
求手段4に共有バス1の使用権獲得を依頼し、コマンド
発行手段5にコマンドの生成を依頼する。バス使用要求
手段4は、命令実行手段3から共有バス1の使用権獲得
を依頼されたとき、バス使用要求信号を発行し、バス調
停手段2(図6参照)からバス使用許可が得られた時に
は、それをコマンド発行手段5に通知する。コマンド発
行手段5は、命令実行手段3からのコマンド生成依頼を
受けてコマンドを生成する。また、バス使用要求手段4
からコマンド発行依頼を受けた時に、生成したコマンド
を共有バス1上に発行する。バス監視手段6は、常に共
有バス1を監視していて、共有バス1を流れるコマンド
が自己宛であると判断した時には、それを取得して、そ
れを命令実行手段3に送る。
【0013】また、バス・スレーブS1 においては、バ
ス監視手段7は、常に共有バス1を監視していて、共有
バス1を流れるコマンドが自己宛であると判断した時に
は、それを取得して、それをキュー管理手段9に伝え
る。キュー管理手段9は、バス監視手段7が取得したコ
マンドをキュー8に入れたり、リード/ライト要求コマ
ンドをキュー8から取り出して、処理実行部としてのメ
モリ12に発行したりする。また、メモリ12からの処
理終了を受けてバス使用要求手段10に処理を依頼した
り、コマンド発行手段11にメッセージを伝えて返信コ
マンドの生成を依頼したりする。
【0014】バス使用要求手段10は、キュー管理手段
9から共有バス1の使用権獲得依頼を受けた時には、バ
ス使用要求信号を発行し、バス調停手段2(図6参照)
から使用許可が得られた時には、それをコマンド発行手
段11に伝える。コマンド発行手段11は、キュー管理
手段9からのコマンド生成依頼を受けてコマンドを生成
する。また、バス使用要求手段10からコマンド発行依
頼を受けた時に、生成したコマンドを共有バス1上に発
行する。メモリ12は、キュー管理手段9からリード/
ライト要求を受けた時にはそれを実行し、要求された処
理が完了した時には、データと共にそのことをキュー管
理手段9に伝える。
【0015】図2は、コマンド・フォーマットを示す図
である。図2に示すように、コマンドは、自己のID
(識別子)を書き込むフィールド,相手のIDを書き込
むフィールド,リード/ライトの別を書き込むフィール
ド,相手のアドレスを書き込むフィールド及びメッセー
ジを書き込むフィールドを有している。バス・マスタか
ら発行されるコマンドのメッセージ・フィールドには、
ライトの時は、ライトすべきデータが書き込まれ、リー
ドの時には、何も書き込まれない。また、バス・スレー
ブから発行される返信コマンドのメッセージ・フィール
ドには、リードの時には、メモリ12から読み出したデ
ータまたはエラー・メッセージを書き込む。また、ライ
トの時は、エラーの時以外はコマンドを発行しない。
【0016】図3は、キューの内容の一例を示す図であ
る。キュー8には、受信したコマンドがそのままの形で
入っており、図3に示すもののように、例えば、8段の
深さを持っているキューであれば、キューの第1段は
次にメモリ12に送られるコマンドが入っているところ
であり、キューの第8段には、最も後にサービスされ
るコマンドが入るところである。さらに、このキュー8
には、現在、キューのどこまでコマンドが入っているか
を示すカレント・ポインタがある。
【0017】次に、本発明の動作を説明する。命令実行
手段3は、応用プログラムからメモリ12へのアクセス
が要求された時には、バス使用要求手段4に共有バス1
の使用権獲得を依頼し、コマンド発行手段5にコマンド
の生成を依頼する。コマンド発行手段5は、命令実行手
段3からのコマンド生成依頼を受けてコマンドを生成す
る。そして、バス使用要求手段4からコマンド発行依頼
を受けて、生成したコマンドを共有バス1上に発行す
る。コマンド発行後は、バス・マスタからの返信を待つ
ことなく、バスを解放する。
【0018】一方、バス・スレーブ側では、バス監視手
段7が自己宛のコマンドを受信したら、それをキュー管
理手段9に通知する。該通知を受けたキュー管理手段9
では、次のような処理を行う。図4は、キュー管理手段
のコマンド格納処理を示すフローチャートである。 ステップ1…バス監視手段7が、バス・マスタM1 〜M
3 からコマンドを受信したか否かを判別する。 ステップ2…受信したら、キュー8の第1段から第8
段までコマンドが入っていて、キュー8が満杯になっ
ているか否かを調べる。 ステップ3…満杯でなければ、カレント・ポインタをイ
ンクリメントする。 ステップ4…カレント・ポインタが指す位置に受信した
コマンドを入れる。 ステップ5…ステップ2で満杯であれば、ビジー・コマ
ンドの発行をコマンド発行手段11に依頼する。その
際、コマンド発行手段11では、図2に示すコマンドの
相手のIDのフィールドに、共有バス1上の全てのバス
・マスタへの送信を意味する“0”を入れ、メッセージ
・フィールドにビジーである旨のメッセージを入れて送
出する。
【0019】図5は、キュー管理手段のコマンド実行処
理を示すフローチャートである。 ステップ1…キュー8にコマンドが何も入っておらず空
になっているか否かを調べる。 ステップ2…空でなければ、キューの第1段に入って
いるコマンドをメモリ12に実行させる。 ステップ3…メモリ12の処理が終了したか否かを判別
する。
【0020】ステップ4…終了したら、処理要求元のバ
ス・マスタへの返信コマンドの生成をコマンド発行手段
11に依頼する。この返信コマンドは、図2のものと同
様なフォーマットを持ち、自己のIDのフィールドに当
該バス・スレーブのID、相手のIDのフィールドに処
理要求元のバス・マスタのIDを書き込み、リード/ラ
イトの別を書き込むフィールド,相手のアドレスを書き
込むフィールドは空欄とする。また、メッセージ・フィ
ールドには、要求された処理がリードであった時には、
メモリ12から読み出したデータまたはエラー・メッセ
ージを書き込む。また、ライトであった時は、書込完了
メッセージまたはエラー・メッセージを書き込む。
【0021】ステップ5…バス使用要求手段10に対し
て、共有バス1の使用要求を行うように処理を依頼す
る。 ステップ6…カレント・ポインタの値を−1する。 ステップ7…キュー8内にある全てのコマンドをキュー
の第1段の方向へ移動させる。 ステップ8…ビジー解除コマンドの発行をコマンド発行
手段11に依頼する。その際、コマンド発行手段11で
は、図2に示すコマンドの相手のIDのフィールドに、
共有バス1上の全てのバス・マスタへの送信を意味する
“0”を入れ、メッセージ・フィールドにビジー解除の
メッセージを入れて送出する。なお、この実施例では、
処理を簡略化するため、ビジー・コマンドが発行された
後であるか否かに関係なく、1つのコマンドの処理が実
行される毎にビジー解除コマンドを発行するようにした
が、ビジー・コマンドが発行された後である場合だけビ
ジー解除コマンドを発行するようにしてもよい。
【0022】バス使用要求手段10は、キュー管理手段
9から共有バス1の使用要求を行うように依頼を受けた
時には、バス使用要求信号を発行し、その結果、バス調
停手段から使用許可が得られたら、それをコマンド発行
手段11に伝える。コマンド発行手段11は、キュー管
理手段9からのコマンド生成依頼を受けて返信コマンド
を生成し、バス使用要求手段10から上記通知を受けた
時に、生成した返信コマンドを共有バス1上に発行す
る。
【0023】なお、上記実施例では、バス・スレーブS
1 の処理実行部がメモリ12である場合で示したが、本
発明は、それに限定されずI/O装置等の他のバス・ス
レーブでも同様に適用可能である。
【0024】
【発明の効果】以上述べた如く、本発明の情報処理装置
によれば、バス・スレーブにコマンドを溜めておくキュ
ーを設けたため、あるバス・マスタからの要求により処
理を行っているバス・スレーブでも、他のバス・マスタ
から処理要求を受け付けることができるようになった。
その結果、バス・マスタは、バス・スレーブの処理が終
わるまで待たされるということがなくなり、バスの使用
効率が低下するということはなくなった。また、バス・
マスタからの処理要求コマンドの送信より、バス・スレ
ーブからの返信を優先的に行うようにしたため、その分
キューに溜まるコマンド数が減少し、キューの段数を少
なくすることができるようになった。
【図面の簡単な説明】
【図1】 バス・マスタとバス・スレーブの概略の構成
を示す図
【図2】 コマンド・フォーマットを示す図
【図3】 キューの内容の一例を示す図
【図4】 キュー管理手段のコマンド格納処理を示すフ
ローチャート
【図5】 キュー管理手段のコマンド実行処理を示すフ
ローチャート
【図6】 バス・マスタ及びバス・スレーブが共有バス
に接続された状態を示す図
【符号の説明】
1…共有バス、2…バス調停手段、3…命令実行手段、
4,10…バス使用要求手段、5,11…コマンド発行
手段、6,7…バス監視手段、8…キュー、9…キュー
管理手段、12…メモリ、M1 〜M3 …バス・マスタ、
1 〜S3 …バス・スレーブ

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】 処理を要求する複数個のバス・マスタ
    と、バス・マスタに要求された処理を実行するバス・ス
    レーブと、それらバス・マスタ,バス・スレーブを共通
    に接続する共有バスと、該共有バスの使用権を調停する
    バス調停手段とを有する情報処理装置において、前記バ
    ス・マスタは、バス・スレーブに処理を要求する際に、
    共有バスの使用要求を前記バス調停手段に対して発行す
    るバス使用要求手段と、共有バスの使用権を獲得後、処
    理を要求するコマンドをバス・スレーブに対して発行
    し、共有バスを解放するコマンド発行手段とを具え、前
    記バス・スレーブは、受信したコマンドを溜めておくキ
    ューと、共有バスから受信した自己宛のコマンドを前記
    キューに入れ、また、該キューに溜められたコマンドの
    中から1つを選択して処理実行部に送るキュー管理手段
    と、処理実行部の処理終了後に、処理要求元のバス・マ
    スタへの返信コマンドを作成するコマンド発行手段と、
    処理要求元のバス・マスタに返信コマンドを送るため、
    前記バス調停手段に対して共有バスの使用要求を発行す
    るバス使用要求手段とを具え、前記バス調停手段は、バ
    ス・マスタより優先してバス・スレーブにバス使用権を
    与えることを特徴とする情報処理装置。
JP19357894A 1994-07-26 1994-07-26 情報処理装置 Pending JPH0844661A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP19357894A JPH0844661A (ja) 1994-07-26 1994-07-26 情報処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP19357894A JPH0844661A (ja) 1994-07-26 1994-07-26 情報処理装置

Publications (1)

Publication Number Publication Date
JPH0844661A true JPH0844661A (ja) 1996-02-16

Family

ID=16310336

Family Applications (1)

Application Number Title Priority Date Filing Date
JP19357894A Pending JPH0844661A (ja) 1994-07-26 1994-07-26 情報処理装置

Country Status (1)

Country Link
JP (1) JPH0844661A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6907488B1 (en) * 1999-09-14 2005-06-14 Siemens Aktiengesellschaft Serial data transmission via a bus system
JP2006201999A (ja) * 2005-01-20 2006-08-03 Nec Access Technica Ltd バスシステム、スレーブ装置、バスシステム制御方法及びプログラム
CN1317656C (zh) * 2003-05-27 2007-05-23 威达电股份有限公司 系统总线控制装置及方法
WO2021117819A1 (ja) * 2019-12-12 2021-06-17 ローム株式会社 通信システム、通信方法、タイミングコントローラ、ディスプレイシステム、自動車

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6907488B1 (en) * 1999-09-14 2005-06-14 Siemens Aktiengesellschaft Serial data transmission via a bus system
CN1317656C (zh) * 2003-05-27 2007-05-23 威达电股份有限公司 系统总线控制装置及方法
JP2006201999A (ja) * 2005-01-20 2006-08-03 Nec Access Technica Ltd バスシステム、スレーブ装置、バスシステム制御方法及びプログラム
WO2021117819A1 (ja) * 2019-12-12 2021-06-17 ローム株式会社 通信システム、通信方法、タイミングコントローラ、ディスプレイシステム、自動車

Similar Documents

Publication Publication Date Title
US6141715A (en) Method and system for avoiding live lock conditions on a computer bus by insuring that the first retired bus master is the first to resubmit its retried transaction
JP3807250B2 (ja) クラスタシステム、コンピュータ及びプログラム
JPS61109164A (ja) バス制御方法
JPS5812611B2 (ja) デ−タテンソウセイギヨホウシキ
US5528766A (en) Multiple arbitration scheme
KR100708096B1 (ko) 버스 시스템 및 그 실행 순서 조정방법
US5649209A (en) Bus coupling information processing system for multiple access to system bus
JP6129976B2 (ja) 高効率アトミック演算を使用した方法および装置
KR20020009823A (ko) 버스 시스템 및 그 버스 중재방법
JPH0628049B2 (ja) 非同期バス間のデータ転送方法
US6826644B1 (en) Peripheral component interconnect arbiter implementation with dynamic priority scheme
JP2591502B2 (ja) 情報処理システムおよびそのバス調停方式
JPH0844661A (ja) 情報処理装置
JPH0798663A (ja) 非同期i/o制御方式
JPH0844662A (ja) 情報処理装置
US6625678B1 (en) Livelock avoidance method
US5815676A (en) Address bus arbiter for pipelined transactions on a split bus
WO1992006432A1 (en) Device for controlling bus
JP3356110B2 (ja) 機能拡張システム及びそれに用いるデータ転送方法
JP2823663B2 (ja) マルチプロセッサシステム
JP2003085125A (ja) メモリ制御器及びメモリ制御方法
JP2555941B2 (ja) バスアービトレーション方式
KR100243868B1 (ko) 주 전산기에서의 중재로직 방법
JP3049125B2 (ja) Cpu間割込み制御装置
JPH0554002A (ja) Cpu間割込み制御装置