JP3597621B2 - ロック転送制御方式 - Google Patents
ロック転送制御方式 Download PDFInfo
- Publication number
- JP3597621B2 JP3597621B2 JP1140996A JP1140996A JP3597621B2 JP 3597621 B2 JP3597621 B2 JP 3597621B2 JP 1140996 A JP1140996 A JP 1140996A JP 1140996 A JP1140996 A JP 1140996A JP 3597621 B2 JP3597621 B2 JP 3597621B2
- Authority
- JP
- Japan
- Prior art keywords
- signal
- lock
- bus
- system bus
- transfer
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Bus Control (AREA)
- Multi Processors (AREA)
Description
【発明の属する技術分野】
本発明はローカルバスがインターロック転送方式でシステムバスがタイムスプリットバスに接続されているバスインタフェース制御回路に用いられるロック転送制御方式に関する。
【0002】
ローカルバスがインターロック転送方式で,システムバスがタイムスプリット方式のマルチプロセッサシステムバスのバスインタフェース制御回路において,ローカルバスからのロック転送実行中にその転送が一時中断したり,中断後の再送アクセスがエラーになると,ロック信号の状態をシステムバスに的確に通知してシステムバスがスタックしないようにすることが望まれている。
【0003】
【従来の技術】
各マイクロプロセッサがローカルバスを経て接続されたバスインタフェース回路(BIF)を介してシステムバスに接続されるマルチプロセッサシステムにおけるロック転送方式について,本発明と同一の出願人により先に提案したロック転送方式(特開平4−205247号公報参照)があり,その方式の前提となるロック転送の技術及び提案された技術について説明する。
【0004】
図7はマルチプロセッサシステムの構成例,図8は処理装置の構成例,図9は従来のシステム構成である。
マルチプロセッサシステムは,図7に示すようにシステムバス(SBで表示)に多数の処理装置と複数の共通メモリ(CM1〜CMnで表示)及びシステムバスの使用権を調停するバスアービタ(BA)が接続され,各処理装置が共通メモリにアクセスする場合はバスアービタに使用権を要求する信号を発生し,バスアービタから許可信号を得るとシステムバスの使用権が得られて共通メモリにアクセスすることができる。このシステムバスはタイムスプリット方式の転送を行うバスであり,バス使用権を得た装置がコマンドとアドレス(及びデータ)を転送するとシステムバスの使用権が直ちに他の装置に対し与えられ,時分割でシステムバスを効率的に利用することができる。
【0005】
各処理装置は,図8に示す処理装置の構成例(番号nの処理装置の例)のような内部構成を備え,プロセッサ(CPUで表示)とバスインタフェース回路(BIFで表示)がローカルバス(LBで表示)に接続され,ローカルバス(LB)にローカルメモリ(LMで表示)が接続されている。ローカルバス(LB)の使用権の調停はローカルバスアービタ(LBAで表示)で行い,バスマスタ(CPU)またはバスインタフェース(BIF)はローカルバスの使用権を得てローカルメモリ(LM)にアクセスすることができる。このローカルバスは,インターロック転送方式のバスであり,バスをロック状態にして転送が行われる。
【0006】
図9に従来のシステム構成を示す。この構成は,上記図8に示す処理装置が2個と共通メモリCM1が1個で構成されたマルチプロセッサシステムの例である。
【0007】
共通メモリを有するマルチプロセッサシステムでは,共通資源の保護のために排他制御を行う必要があるが,その実現方法の一つとして,テストアンドセット制御(T&S制御)がある。これは,共通メモリの一部をキーとして,共通資源の使用状態を格納しておき,共通資源を使用する時はまずキーを読んで,使用中の場合は共通資源を使用せず,未使用の場合は使用中と書き込んだ後に使用する方法である。しかし,T&S制御において,キーの読み出しと書き込みの間に他のプロセッサ等がキーを読み出したり書き込んだりする可能性があるので,T&S制御中は,ロック転送状態として他のプロセッサ等がキーに対しアクセスするのを制限する方法をとることがある。このようなロック転送状態におけるアクセスをロック転送と呼ばれる。
【0008】
図9のシステムバスの動作手順は,次のように行われる。
▲1▼プロセッサCPU1がシステムバスにアクセスする場合,バス使用の要求信号REQ1を発生する。
【0009】
▲2▼ローカルバスアービタLBAが要求を受け付けると,CPU1に許可信号GRを発生し,CPU1がアドレス,データ(書き込みの場合)を送出し,BIFのバッファに設定し,ローカルバスアービタLBAからバスアービタBAにシステムバスの要求REQ1を発生する。
【0010】
▲3▼バスアービタBAから許容信号ACKが返ってくると,LBAは要求信号REQをネゲート(停止)し,BIFからシステムバスにデータの転送を開始し,データの転送期間はバスマスタ(バスの使用権を持つ装置で,この場合はBIF)がシステムバス上に転送開始信号SBS(System Bus Start) を発生し,終了時に転送終了信号CPT(Complete)を発生して通知する。
【0011】
▲4▼バスアービタBAは転送終了信号CPTを受信すると許容信号ACKをネゲートし,バス権の終了を通知する。
また,ローカルバスとシステムバスのインタフェースを行うバスインタフェース回路BIFでは次のように動作する。
【0012】
▲1▼ローカルバスの場合,上記したローカルバスの使用要求信号REQに対しローカルバスアービタLBAから許可信号GRが発生すると,プロセッサCPUは転送開始信号BSと共にコマンド(データ)やアドレスを出力する。
【0013】
▲2▼バスインタフェース回路BIFは,転送開始信号BSを受信してコマンドを解読して,コマンドに含まれる転送モードの表示が突き放しモードか,非突き放しモードかを識別して,モードに対応して異なる動作を行う。なお,突き放しモードは,ライトアクセス(書き込み動作)のように,アドレスとデータをシステムバスに送出することにより動作を完了させるモードであり,非突き放しモードはリードアクセス(読み出し動作)のようにアドレスを送信した後,読み出しデータをアンサとして受け取るまで完了させないモードである。なお,コマンド及びアンサは転送開始信号SBSがアサートされている間に転送される先頭のデータで,転送元,転送先,アンサの要・不要(非突き放しモードか突き放しモードの表示)及びコマンドかアンサかの表示を含むフォーマットを備える。
【0014】
図10は非突き放しモード時のバスインタフェース回路BIFの動作を示し,ライトアクセス時のタイムチャートを示す。この場合は,ローカルバスの転送開始信号BSを受信した時,バスインタフェース回路BIFは,システムバスに対し上述の手順で転送を行い,アンサ待ちとなる。システムバスからアンサを受信すると,アンサ待ち状態を解除し,ローカルバスLBの受信完了信DC(Data Complete)をアサートして, 転送処理を完了する。
【0015】
図11は突き放しモード時のバスインタフェース回路の動作を示す。この場合,ローカルバスの転送開始信号BSを受信するとバスインタフェース回路BIFは,直ちに受信完了信号DCをアサートすると共にシステムバスへ前記手順によって転送する。この場合,アンサ待ちを行わない。
【0016】
図12は従来のバスインタフェース回路の構成を示し,80,82,83,85はバッファ,81は送信用FIFOメモリ,84は受信用FIFOメモリ,86はローカルバスからの信号受信のための受信制御部,87,90はFIFO制御部,88はシステムバスへの信号送信のための送信制御部,89はシステムバスからの信号受信のための受信制御部,91はローカルバスへの信号送信のための送信制御部である。
【0017】
送信データは,ローカルバスからバッファ80,送信用FIFOメモリ81,バッファ82を経てシステムバスに転送される。受信データはシステムバスからバッファ83,受信用FIFOメモリ84,バッファ85を経てローカルバスへ送られる。受信制御部86はローカルバスからシステムバスへの送信データの受信判定を行い,FIFO制御部87はこの判定結果に基づいてバッファ80のアドレスデータを送信用FIFOメモリ81に書き込む制御を行う。送信制御部88は,FIFO制御部87の制御による送信用FIFOメモリ81への書き込みを検知すると,送信用FIFOメモリ81に書き込まれたアドレス,データを読み出してバッファ82を経てシステムバスへ送出する制御を行う。
【0018】
受信制御部89はシステムバスから受信すべきか否かを判定し,FIFO制御部90はその判定結果に基づいてバッファ83のデータを受信用FIFOメモリ84に書き込む制御を行う。送信制御部91は,受信用FIFOメモリ84に書き込まれたデータを読み出してバッファ85を経てローカルバスへ送出する制御を行う。
【0019】
図13は受信制御部86の構成を示す。受信制御部86は,ローカルバスから転送開始信号BSを受けると受信判定部86aから出力を発生し,入力アドレス制御部86bからFIFO制御部87に対し送信用FIFOメモリ81のアドレスを更新する信号を発生し,入力済表示制御部86cから入力済の表示信号を発生する。DC制御部86dは,突き放しモードの時は直ちにローカルバスへ受信完了信号DCを発生し,アンサ不要信号をFIFO制御部87に出力する。非突き放しモードの場合は,ローカルバスへ直ちに出力せずアンサ要信号をFIFO制御部87へ出力する。
【0020】
図14はFIFO制御部(図15の87)の構成を示し,この構成により送信用FIFOメモリ81の制御を行う。入力アドレス部87aは受信制御部86からの更新信号により送信用FIFOメモリ81の書き込みアドレスを更新し,出力アドレス部87bは送信制御部88からの更新信号で読み出しアドレスを更新する。キューバッファ(1) 87cは入力アドレス部87aのアドレスに1を加えた値を保持し,キューバッファ(2) 87dは受信制御部86からのアンサ要/不要(非突き放し/突き放し)の情報を保持し,キューバッファ(3) 87eはローカルバスから入力されるロック信号(LOCで表す),即ちローカルバスのロック状態を保持する。キューバッファ(1) 〜(3) の書き込み,読み出しは,入力済表示部87f,出力済表示部87gのカウンタ値により対応して行われる。
【0021】
動作を説明すると,受信制御部86からの入力アドレス更新信号により,送信用FIFOメモリ81へライトイネーブル信号WEをアサートし,入力アドレス部87aを更新する。次にキューバッファ(1) 〜(3) に指定の情報を記録し,入力済表示部87fのカウンタを+1し入力済とする。入力済表示部87fと出力済表示部87gのカウンタの不一致を不一致検出部87hで検出すると,送信制御部88に送られる。送信制御部88は出力アドレス部87bを制御して送信用FIFOメモリ81を読み出し,システムバスへデータを転送させ,入力アドレスと出力アドレスの一致を一致検出部87iで検出すると停止し,出力済表示部87gを更新する。
【0022】
図15は送信制御部88の構成を示す。
FIFO制御部87の不一致検出部87hからの不一致検出信号によりREQ制御部88aからREQ信号がシステムバスへ発生し,システムバスを介してバスアービタBAからACK信号を受信すると,REQ信号をネゲートし,転送を開始する。ACK信号受信中は,このバスインタフェース回路BIFがバスマスタであることを示し,転送中表示部88dはバッファ82を開き,SBS制御部88bから転送開始信号SBSを発生する。
【0023】
転送中,FIFO制御部87の出力アドレス部87bを更新し送信用FIFOメモリ81からデータを読み出してシステムバスへ送る。上記FIFO制御部(図12)で出力アドレスと入力アドレスの一致が検出されると,一致検出部87iからの出力によりCPT制御部88cから転送出力信号CPTを発生して,システムバスを終了させる。この時,ロック線制御部88eはキューバッファ(3) にロック情報が記録されているので,システムバスのロック信号SLOCをアサートしている。
【0024】
ロック線制御部88eでは,ローカルバスからロック転送(転送が終了するまでローカルバス及びシステムバスをロックすることにより,連続したアクセスを行って,バスアービタへのアクセスを繰り返すことによる無駄を省く転送)を要求するローカルバスロック信号(LOCで表す)は,ローカルバスのアクセスを受信した後,システムバスへ転送してシステムロック信号(SLOCで表す)が出力され,システムバスのアクセスが完了した後,ローカルバスのロック状態が開放されると(LOCがネゲート),システムバスのロック転送状態が開放される(SLOCがネゲート)される。
【0025】
【発明が解決しようとする課題】
上記図8に示すシステム構成におけるT&Sの制御動作を図16の問題点を説明するタイムチャートを用いて説明する。この動作では共通メモリCM1とだけバスを介してアクセスする。
【0026】
T&S制御を実行するため,CPU1がローカルバスアービタLBA1にREQ1を出力してローカルバスの使用権を要求し,LBA1がシステムバス使用権を要求するREQ1を出力する(図16のc)。LBA1はローカルバスの使用権を許可し,GR1(図9参照)を出力する。CPU1は,これによりバスインタフェース回路BIF1にリードコマンドを発行し(図16のa),ローカルバスロック転送信号LOCを発生する(同b)。この時同時にCPU2が,他の処理装置内のローカルメモリLM1にアクセスするためにローカルバスアービタLBA2にREQ2を出力してローカルバスの使用権を要求した場合,LBA2はシステムバス使用権を要求するREQ2を出力する(図16のd)。LBA2はローカルバスの使用権を許可してGR2(図9参照)を出力する。CPU2がバスインタフェースBIF2にライトコマンドを発行すると,システムバスアービタBAは両方からの要求を受信することになるが,REQ2の出力の方がREQ1より速い場合以下のように動作する。
【0027】
バスアービタBAは,REQ2の要求を受付け,許可信号ACK2を出力する(図16のe)。これを受けてバスインタフェース回路BIF2は,システムバス開始信号SBS(図16のf)を発生してローカルバスからのライトコマンドをシステムバスへ送信する(図16の▲1▼)。送信が完了すると送信先BIF1から送信完了信号CPTがシステムバスに送信され(図16のg),ACK2の出力が停止する。バスインタフェース回路BIF1は,システムバスを介してバスインタフェース回路BIF2からのコマンド(ローカルメモリLM1へのアクセス)を受信する。システムバスのコマンド転送が完了したので,バスアービタBAはバスインタフェース回路BIF1からのREQ1の要求を許可し,ACK1を出力する(図16のi)。すると,バスインタフェース回路BIF1からリードコマンドが出力される(図16の▲2▼)。この時,CPU1からのロック信号LOCを受けてシステムバスにシステムロック信号SLOCも出力する(図16のl)。
【0028】
一方,バスインタフェース回路BIF1は,システムバスからのコマンドを受信したので,デッドロック回避のためにCPU1から受信しているコマンドを転送完了信号DCを出力してバスを開放させる(図16のh)。また,上記図15に示す送信制御部88内のロック線制御部88eはLOC信号の立ち下がりを検出して転送終了信号CPTが無くなるとSLOC信号の出力を停止させてしまう(図16のl参照)。この動作を行うロック線制御部の構成を図17に示す。
【0029】
図17は従来のロック線制御部88eの構成を示す。この図は上記特開平4−205247号の第4図である。
この構成では,FIFO制御部(上記図12の87)からLOC信号を保持するキューバッファ(3) から出力されるLOC信号が“1”で,システムバスの許可信号ACKによりアンド回路61から論理“1”が発生する。一方,ローカルバスからのロック信号LOCが立ち上がるとフリップフロップFF64で保持し,ロック信号LOCの立ち下げ(ネゲート)を検出するとその状態をフリップフロップFF65に保持する。このフリップフロップFF65は転送終了信号CPTが発生するとリセットされる。アンド回路63はアンド回路61の出力とアンド回路69の出力の反転信号との論理積をとった出力をフリップフロップFF64に保持する。これにより,ローカルバスのロック信号LOCがネゲートされた後,バスインタフェース回路BIFが転送出力信号CPTをアサートした次のサイクルでシステムバスのロック信号SLOCをネゲートする。
【0030】
上記図16のタイムチャートにおいて,SLOCが停止した後,バスインタフェース回路BIF1は,システムバスからのコマンドをローカルバスに送信し(図16の(2) ),アンサを受信して,ローカルバスのアクセスを完了する。続いて,ローカルバスからシステムバスにアンサを送信する(図16の▲3▼)。バスインタフェース回路BIF2がアンサを受信してローカルバスに転送し,CPU2が受信してアクセスを完了する。
【0031】
一方,CPU1からの一旦突き放されたアクセスが返ってくると(図16の2つ目の(1) ),バスインタフェース回路BIF1はこれを受信するが,コマンドの二重発行を避けるため,再度送信を行なわない。従って,システムバスのロック信号SLOCは停止したままである。その後,バスインタフェース回路BIF1からの先に発生したリードコマンドに対する共通メモリCM1(図9)からのアンサ(及び読み出しデータ)がシステムバスから返送され(図16の▲4▼),バスインタフェース回路BIF1がこれを受信してローカルバスに転送されると(図16のr),アクセスは完了する。
【0032】
しかし,従来の方式では,上記のように一旦ローカルバスからバスインタフェース回路にシステムバスへのアクセスを行った後,システムバス側からのアクセスにより中断されると,バスインタフェース回路からシステムバスのロック信号SLOCが停止され,その状態が保持されたままで,再びシステムバスへのアクセスを行った時にもロック信号SLOCが発生せず,ライトコマンド完了(またはリードコマンド完了)まで,SLOC信号を出力することができない。この間に他のCPUがシステムバスを使用して,バスインタフェース回路BIF1がアクセス中に共通メモリをアクセスしてしまうという問題が発生した。
【0033】
本発明はバスインタフェース制御回路において,ローカルバスからシステムバスへ向かうアクセスにおいて,ローカルバスのロック転送実行中にその転送が一時中断または中断後の再送アクセスがエラーであった時にロック信号の状態をシステムバスに的確に通知してシステムバスがスタックしないようにするロック転送制御方式を提供することを目的とする。
【0034】
【課題を解決するための手段】
図1は本発明の原理構成図である。
図1において,1はバスインタフェース回路,2は送信制御部,3はローカルバス,4はシステムバスである。なお,図1のバスインタフェース回路1には,送信制御部2だけ示すが,それ以外にも上記従来のバスインタフェース回路(上記図12参照)と同様に複数の各部の回路が設けられている。また,送信制御部2内には本発明の主要な構成であるロック線制御の構成を中心にして示し,他の回路(図15参照)は図示省略されている。
【0035】
送信制御部2において,2aはシステムバスロック信号発生部,2bはローカルバスのロック信号のオフを検出して保持するロックオフ検出保持部,2cはゲート部,2dは最初のアクセスが中断された時にローカルバスロック信号(LOC)の停止によるシステムバスロック信号(SLOC)の停止をマスクする信号を発生するマスク(MASK)信号発生部,2eはシステムバスロック信号発生部2aをリセットする信号を発生するシステムバスロック停止部,2fはシステムバスロック信号発生部2aを発生状態にするシステムバスロック起動部である。
【0036】
ローカルバス3からシステムバス3へのアクセスが行われバスアービタ(図示省略)から許可信号(ACK)が発生して,ローカルバスから転送されたロック転送状態を表す信号が発生しているとシステムバスロック起動部2fから出力が発生し,システムバスロック信号発生部2aが駆動されてシステムバスロック信号(SLOC)をシステムバスへ出力する。一方,ロックオフ検出保持部2bは,ローカルバスからシステムバスへのアクセスが実行されてローカルバス3上のロック信号(LOC)がオンになった後,アクセスが中断されてオフになるとロックオフ検出保持部2bから出力が発生する。
【0037】
この場合,ゲート部2cにマスク信号発生部2dから抑止信号が発生しないと,システムバスロック停止部2eが駆動されて,その出力によりシステムバスロック信号発生部2aが停止してシステムロックがオフになる。しかし,マスク信号発生部2dが,最初のアクセスが中断した状態であることを表す信号を発生すると,ゲート部2cはロックオフ検出保持部2bの通過を禁止する。これにより,システムバスロック信号発生部2aからのシステムロック信号は発生し続ける。なお,システムバスロック停止部2eはゲート部2cからオン信号を受け取った場合,ローカルバスの転送完了を表す信号CPTが発生すると,システムバスロック信号発生部2aを停止させる。
【0038】
この構成により,バスインタフェース回路は,ローカルバスからシステムバスへのロック転送のアクセスの時に,他のプロセッサからローカルバスへのアクセスにより転送が中断されても,システムバスロック信号が停止することなく保持されるため,アクセスを再開した時に,システムバスが他プロセッサから割り込んで使用されることがなくなる。
【0039】
【発明の実施の形態】
図2は実施例1の構成図であり,図3はマスク(MASK)信号発生回路の構成図,図4は実施例1のタイムチャートの例である。
【0040】
図2において,10はバスインタフェース回路(BIF)の送信制御部に設けられたロック線制御部であり,11〜21の各回路により構成される。11,13,16,17,19,21はアンド回路,12,18はオア回路,14,15,20は入力信号をクロックに同期して設定保持するフリップフロップ回路(FFで表示)である。
【0041】
図2に示すアンド回路11の一方の入力であるACKはシステムバスの使用要求(REQ)に対してバスアービタ(BA)からシステムバスに出力される使用権の許可信号(許可の時“1”)であり,アンド回路11の他方の入力はFIFO制御部(図16参照)のキューバッファ(3) が保持するロック転送状態を表す信号(“1”の時ロック転送状態)であり,システムバスへの転送が完了しないアクセスに対応する。
【0042】
アンド回路16へ入力するLOCはローカルバス上に発生するロック信号,アンド回路17へ入力する−MASKはシステムバスロック信号(SLOC)の出力停止を抑止するマスク信号を反転した信号であり,この信号を発生する回路は後で説明する図3に示す。CPTはローカルバスにおける転送終了信号である。
【0043】
図2の基本的な動作を説明すると,FIFO制御部のキューバッファ(3) からロック転送状態の信号が“1”でACK信号が“1”になると,アンド回路13の他方の入力(アンド回路21の出力)が“0”の時にフリップフロップ回路(以下,FFという)14がセットしてシステムバスロック信号(SLOC)が“1”になりシステムバスへ出力される。また,FF15はローカルバスからのロック信号(LOC)が“1”になるとこれを保持し,その後ロック信号(LOC)が立ち下がるとアンド回路16から“1”が発生し,この時反転マスク信号(−MASK)が“1”の場合(MASKが“0”の場合),オア回路18を介してアンド回路19へ供給され,この時,ローカルバスの転送終了信号(CPT)が“0”であればFF20に“1”が供給され,クロックに同期してセット状態になる。この状態で,ローカルバス上の転送が終了して転送終了信号(CPT)が“1”になるとアンド回路13の出力が“0”となって,FF14は次のクロックでリセットされて,システムバスロック信号(SLOC)が“0”となりシステムバスのロックが解除される。
【0044】
但し,ローカルバスのロック信号(LOC)が立ち下がった時,反転マスク信号(−MASK)が“0”の場合(マスク信号が“1”の場合)には,オア回路17からは“0”が出力されるため,FF20は次のクロックでも“0”の状態のままで出力が変化しない。この場合,その後でローカルバスの転送終了信号CPTが“1”になってもアンド回路21からは“0”が出力されるため,アンド回路13は“1”を発生し,次のクロックが入力してもFF14からのシステムバスクロック(SLOC)の信号は“1”の状態を継続して出力する。
【0045】
図3はマスク信号(MASK)を発生する回路である。
図3において,30,32,35,36はアンド回路,31,33,37はセット端子S,リセット端子Rを備えたセット・リセット型のフリップフロップ回路(FF),34はナンド回路であり,38,39,41はインバータ(反転回路)である。また,各回路に入力する信号を説明すると,RDはバスマスタ(例えば,CPU)から要求された指令を表しこの例ではリード(メモリからの読み出し)の指令であることを表す信号,−DS(反転DS)はローカルバスのデータ線の信号が有効であることを表すデータストローブ信号の反転信号,−DCはローカルバス上のデータ終了のタイミングを表す信号,コマンド信号はシステムバスを介する他のプロセッサから受信したコマンドが存在することを表す信号,RF信号はシステムバスへ指令を転送する動作が中断してリトライ(再試行)を行う状態であることを表す信号である。
【0046】
図4は実施例1の構成によるタイムチャートの例であり,主として上記図3の各回路の動作を示し,対応する図2の構成によるシステムバスロック信号(SLOC)の波形を示す。
【0047】
このタイムチャートは,上記図9に示すようなマルチプロセッサシステムにおいて,プロセッサCPU1から処理装置2のローカルメモリ2を読み出すリード指定RD(R(2) で表示するコマンド)が,バスインタフェース回路(BIF1)で発生した時,このコマンドがシステムバスに転送される前に,他の処理装置2のプロセッサCPU2からローカルメモリ1を読み出すリード指定RD(R(1) で表示するコマンド)がシステムバスからこのバスインタフェース回路(BIF1)へ入力した場合である。
【0048】
時間t1にリード指定R(2) ,アドレスA0がCPU1からローカルバスを介してバスインタフェース回路(BIF1)へ供給され,図3のリード指定RD(R(2))が立ち上がると,図4に示すようにローカルバスのロック信号も同時に立ち上がる。また,ローカルバス要求信号(図4)も立ち下がる。この後,ローカルバス上のデータ(コマンド等)の有効性を表すデータストローブ(データ要求)信号(反転DS)が立ち下がると,図3のFF31がセットされて,その出力であるリトライフラグRFが図4に示すように立ち上がる。この後,データ転送終了信号(反転DC)が立ち上がる前のタイミングt2に,他のプロセッサCPU2からシステムバスを介してこのバスインタフェース回路(BIF1)にコマンド信号(ローカルメモリ1をリードするリード指定のコマンド)が発生すると,図3のアンド回路32から“1”が発生しFF33がセットされる。そのセット終了はインバータ38で反転され,バス開放要求信号(反転RQで表示)が図4に示すように立ち下がる。このバス開放要求信号は,ローカルバスからのコマンドを次にシステムバスへ転送するためにシステムバスの開放要求を行うための信号である。
【0049】
この後,CPU1からローカルバスを介したコマンドを一時中断するめにバスインタフェース回路がデータ終了信号を表す反転DCを立ち下げると,図3のFF31がリセットされてリトライフラグ信号FRが図4に示すようにたち下がる。この時,図3のアンド回路35がバス開放要求信号(反転RQ)と反転DCがそれぞれインバータ39,40を介する信号により論理積が成立してFF37(MASK信号発生用FF)がセットされて,インバータ41から図4に示すように反転MASK信号が立ち下がる。この立ち下がりにより,ローカルバスから発生したコマンドのシステムバスへの転送動作が中断した状態であることを表示し,またローカルバスロック信号(LOC)は,CPU1からローカルバスへのデータ出力を出力すると立ち下がる。
【0050】
このLOC信号の立ち下げの時,図2に示すアンド回路16から“1”が発生するが,この時図3の反転MASK信号は,図4に示すように“0”であるため,論理積が成立せず“0”が発生する。これにより,図2のFF20がセットされず,FF14をリセットする条件が成立しないためシステムバスロック信号(SLOC)は信号LOCが停止しても,そのまま“1”の状態を保持する。
【0051】
図4のタイムチャートの場合,タイミングt3からCPU2からのリード指定(R(1) ,アドレスA1のローカルバスに対する動作が行われて,ローカルバス1のローカルメモリのアドレスA1を読み出し,タイミングt4でリードデータ(リードD1)が得られる。次に,タイミングt5でローカルバス要求が立ち上がり,前回中断したCPU1からシステムバスへのコマンド転送のリトライが要求される。また,リードデータD1のデータ終了(反転DC)の立ち下げで図3のアンド回路34から“1”が発生してFF33がリセットすることで,バス開放要求信号(反転RQ)が立ち上がる。
【0052】
リトライの動作では,タイミングt6でローカルバスロック信号(LOC)が立ち上がり,上記のタイミングt1と同様のリード指定RD(R(2)),アドレスA0が発生し,システムバスロック状態で,システムバスから他の処理装置2のローカルメモリから読み出しを行いタイミングt9でリードデータ(D0)が得られて,データ終了信号(反転DC)の立ち下げで図3のアンド回路36が“1”となってFF37がリセットされ,反転MASKが“1”となって,MASKが解除される。また,データ終了信号(反転DC)によりタイミングt10で信号LOCが立ち下がることにより,図2のアンド回路16,アンド回路17(この時反転MASK信号は“1”になっている)及びアンド回路19を介して信号“1”がFF20に供給されて,これをセットし,データ完了信号CPTが“1”になると,FF14がリセットされることによりシステムバスロック信号(SLOC)が立ち下がって,停止する。
【0053】
次に図5は実施例2の構成を示し,図6は実施例2のタイムチャートの例である。
図5の実施例2の構成は,上記実施例1の構成(図2)に対し,ロック不一致検出部30を設け,ロック線制御部10内に新たにアンド回路23を設けると共に,アンド回路17とオア回路18の間に新たにオア回路22を設け,オア回路22の一方の入力にロック不一致検出信号を入力し,他方にアンド回路16の出力を入力するようにしたものである。
【0054】
この実施例2の作用を説明する前に,上記実施例1の構成における問題を図4に示すタイムチャート,図2の構成を用いて説明する。処理装置1のCPU1からシステムバスへアクセスする場合に,最初のアクセスが図4のタイミングt1で行っている時に,他のCPU2からシステムバスを介するアクセスの発生により中断し,タイミングt3から他のCPU2によるアクセスが実行され,それが終了すると,タイミングt6からCPU1のリトライのアクセスが実行される。
【0055】
この時,本来はロックバスロック信号(LOC)が図4に示すように立ち上がるが,ローカルバスロック信号(LOC)を発生する回路の障害等により立ち上がらない場合がある。その場合,図2のFF15がセットされない。その後,リトライによるアクセスが終了した時に,正常であればローカルバスロック信号(LOC)が停止した時に,上記図2に示すFF14がリセットされてシステムロック信号(SLOC)が停止するはずであるが,ローカルバスロック信号(LOC)が立ち上がらないため立ち下がりも発生しない。その場合は,図4のタイミングt10のLOCの立ち下げに対応してSLOCが停止する動作が行われないで,システムバスのロック状態が解除されない。
【0056】
図5に示す構成では,上記の問題を解決するため,ロック不一致検出部30を設け,関連する回路が付加された。ロック不一致検出部30は,CPU1からのアクセスを開始した時に発生するローカルバスLOC信号の状態を保持するFF31を備え,リトライのアクセスが実行されると,その時のデータ転送の開始信号BSが“1”になった時にローカルバスの信号LOCをアンド回路32で検出して,先に保持した信号LOCと一致するか排他的論理和回路33により判別することによりロック不一致を検出することができる。また,この実施例2で使用する反転MASK信号は,上記図3に示す回路により発生する。
【0057】
図6により実施例2のタイムチャートの例を,上記図4に示す実施例1のタイムチャートと異なる動作を中心に説明する。タイミングt1〜t5までは上記図4と同様であり,タイミングt6において,リトライが開始され,ローカルバスにリード指定RD(R(2))とアドレスA0の転送開始時に,信号BSが立ち上がった時に信号LOCが発生しないと,図5のロック不一致検出部30から不一致検出信号が発生し,ロック線制御部のオア回路22から“1”が発生する。この時,反転MASK信号が“0”であるため,アンド回路17から“0”が発生している。オア回路22からの“1”がオア回路18を介してアンド回路19へ供給されると,この時システムバスからの信号CPTが“0”であるが,入力部で反転されるためアンド回路19から“1”が発生してFF20に“1”が設定される。この後,システムバス側からの信号CPTが“1”になると,アンド回路21から“1”が発生し,この信号がアンド回路13の入力部で反転するためアンド回路13から“0”が発生する。このため,FF14から次のクロックのタイミング(図6のt7)で“0”が設定され,システムバスロック信号SLOCは“0”になり,システムバスロックの状態が解除される。
【0058】
【発明の効果】
本発明によればローカルバスがインターロック転送方式でシステムバスがタイムスプリットバスに接続されているバスインタフェース回路において,ローカルバスからシステムバスへ向かうアクセスのロック転送実行中にその転送が一時中断した時にシステムバスロック信号が停止するのを防止することができる。更に,アクセス中断後のリトライのアクセスがエラーであった時にシステムバス側のロック状態がスタックすることを防止することができる。
【図面の簡単な説明】
【図1】本発明の原理構成図である。
【図2】実施例1の構成図である。
【図3】マスク(MASK)信号発生回路の構成図である。
【図4】実施例1の構成によるタイムチャートの例を示す図である。
【図5】実施例2の構成図である。
【図6】実施例2のタイムチャートの例である。
【図7】マルチプロセッサシステムの構成例である。
【図8】処理装置の構成例を示す図である。
【図9】従来のシステム構成を示す図である。
【図10】非突き放しモード時のバスインタフェース回路の動作を示す図である。
【図11】突き放しモード時のバスインタフェース回路の動作を示す図である。
【図12】従来のバスインタフェース回路の構成を示す図である。
【図13】受信制御部の構成を示す図である。
【図14】FIFO制御部の構成を示す図である。
【図15】送信制御部の構成を示す図である。
【図16】問題点を説明するタイムチャートを示す図である。
【図17】従来のロック線制御部の構成を示す図である。
【符号の説明】
1 バスインタフェース回路
2 送信制御部
2a システムバスロック信号発生部
2b ロックオフ検出保持部
2c ゲート部
2d マスク信号発生部
2e システムバスロック停止部
2f システムバスロック起動部
3 ローカルバス
4 システムバス
Claims (3)
- 各プロセッサがインターロック転送方式により転送を行うローカルバスを経て接続されたバスインタフェース回路を介してスプリット転送方式による転送を行うシステムバスに接続されるマルチプロセッサシステムにおけるロック転送制御方式において,
バスインタフェース回路の送信制御部に,ローカルバスからシステムバスへアクセスを行う場合にローカルバスのロック転送を表す信号とシステムバスの使用許可を表す信号によりシステムバスへロック転送を要求するシステムバスロック信号を発生するシステムバスロック信号発生部と,
ローカルバスのロック信号のオフを検出して保持するロックオフ検出保持部と,システムバスを介する他のプロセッサからローカルバスに受信したコマンドが存在する事を表す信号と,ローカルバスのデータ線の信号が有効であることを表すデータストローブ信号を入力として,ローカルバスのロック転送が中断した時に,システムバスのロック信号が停止しないように後記のシステムバスロック停止部への通知をマスクするマスク信号発生部と,前記ロックオフ検出保持部の出力の通過を前記マスク信号発生部の出力信号により制御するゲート部と,前記ゲート部を通過した出力により前記システムバスロック信号発生部をリセットする信号を発生するシステムバスロック停止部とを備え,
前記マスク信号発生部の出力により,ローカルバスからのロック転送実行中にシステムバスから当該バスインタフェース回路へ受信されたアクセスによりその転送が中断してもシステムバスロック信号が停止しないことを特徴とするロック転送制御方式。 - 請求項1において,
前記中断後の再送アクセスにおけるローカルバスからのローカルバスロック信号が中断前のロック状態と異なる場合をエラーとして検出する回路を設け,
前記エラーとして検出する回路の出力信号と前記ロックオフ検出保持部の出力信号とをオア回路に供給して,その出力をシステムバスロック停止部に供給することにより,システムバスロック信号が発生され続けることを防止することを特徴とするロック転送制御方式。 - 請求項1または2において,
前記マスク信号発生部は,ローカルバスからのロック転送によるアクセスを実行中であって転送が完了しない時にシステム側からのコマンド信号の受信を検出するとロック転送が完結していない状態を保持してシステムバスロック信号が停止しないように抑止信号を発生し,割り込まれたシステムバスからのコマンド信号の受信を完了したあと,中断したローカルバスからのロック転送を再開してシステムバスを介した転送が正常に完了すると抑止信号を停止する構成を特徴とするロック転送制御方式。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP1140996A JP3597621B2 (ja) | 1996-01-26 | 1996-01-26 | ロック転送制御方式 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP1140996A JP3597621B2 (ja) | 1996-01-26 | 1996-01-26 | ロック転送制御方式 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH09204409A JPH09204409A (ja) | 1997-08-05 |
JP3597621B2 true JP3597621B2 (ja) | 2004-12-08 |
Family
ID=11777230
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP1140996A Expired - Fee Related JP3597621B2 (ja) | 1996-01-26 | 1996-01-26 | ロック転送制御方式 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3597621B2 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20000003700A (ko) * | 1998-06-29 | 2000-01-25 | 김형벽 | 버스모듈 장치 |
JP6193910B2 (ja) | 2015-04-03 | 2017-09-06 | ファナック株式会社 | インタロックバスとスプリットバスを接続するブリッジ回路を備えたバスシステム |
-
1996
- 1996-01-26 JP JP1140996A patent/JP3597621B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH09204409A (ja) | 1997-08-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2742728B2 (ja) | マルチプロセス・コンピュータシステムのマイクロプロセッサ群の正規優先仲介を無視する予約 | |
US5740376A (en) | Signaling protocol for a peripheral component interconnect | |
KR0160193B1 (ko) | 직접메모리접근 제어장치 | |
JPS5812611B2 (ja) | デ−タテンソウセイギヨホウシキ | |
JPH0354375B2 (ja) | ||
JPH103447A (ja) | バスブリッジ装置 | |
JP3597621B2 (ja) | ロック転送制御方式 | |
US7558923B1 (en) | Prevention of live-lock in a multi-processor system | |
JPS62154045A (ja) | バス調停方式 | |
JP3626292B2 (ja) | バスインタフェース制御方式 | |
JPH10320349A (ja) | プロセッサ及び当該プロセッサを用いるデータ転送システム | |
JP2992621B2 (ja) | ロック転送方式 | |
JPH07219887A (ja) | Dma転送制御装置 | |
JP3236459B2 (ja) | 共通バスのデータ転送における異常処理装置 | |
JP2679440B2 (ja) | 情報処理装置 | |
JP2903551B2 (ja) | マルチプロセッサの同期化機構 | |
JP2846999B2 (ja) | マイクロプロセッサ | |
JPS619747A (ja) | バス制御装置 | |
JPH02101560A (ja) | バスインタフェース装置 | |
JPH0628052B2 (ja) | 共有メモリ制御方式 | |
JPS5839343B2 (ja) | マルチプロセツサシステム ノ ユウセンセイギヨホウシキ | |
JP2504552B2 (ja) | マルチプロセッサコンピュ―タシステムにおいてシステムリソ―スへの充分なアクセスを確保するコマンダノ―ド方法及び装置 | |
JPS5856057A (ja) | 割込信号発生装置 | |
JPH01144151A (ja) | 情報処理装置 | |
JPS6332649A (ja) | マルチプロセツサシステム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20040531 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040615 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040816 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20040907 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040909 |
|
R150 | Certificate of patent (=grant) or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080917 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080917 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090917 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090917 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100917 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100917 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110917 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120917 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120917 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130917 Year of fee payment: 9 |
|
LAPS | Cancellation because of no payment of annual fees |