(57)【要約】【課題】バースト転送中に他のバスマスタがバスリクエストを出した場合にバースト転送中のバスマスタの転送を停止することなく、他のバスマスタの転送を行わせることにある。【解決手段】バスマスタ３がバースト転送中にバスマスタ３よりも優先順位の高いバスマスタ２がバスリクエストを出した時に、バスアービタ１は、バースト転送中のバスマスタ３の転送を停止しないで待機状態にさせてバスマスタ２の転送を行わせる。システム全体を効率よく転送させることを目的としたバス調停方法を提供するものである。また、高い方のバースト転送と低い方のバースト転送処理が重なった場合、バスアービタ１は、予め優先順位に応じて設定された転送回数を一定比率に保ちながら各バスマスタに対する共通バス９１の使用権の調停を行う。【選択図】      図１
2004252726.tif 000002
【特許請求の範囲】
【請求項１】
共通バスと、前記共通バスに接続された複数のブロックと、前記共通バスを使用して前記複数のブロックにアクセスする複数のバスマスタと、を備え、前記複数のバスマスタからのバスリクエストにより前記共通バスの使用を許可しその許可された前記バスマスタに前記共通バスを介して前記複数のいずれかのブロックにアクセスさせるバス調停方法であって、
前記バスマスタから前記共通バスに対するバスリクエストがあると前記共通バスの使用を前記バスマスタに対して許可する許可信号と待機状態にするウェイト信号とを伝達するステップと、
前記バスマスタが前記許可信号を受信したままの状態で前記ウェイト信号がアクティブから非アクティブになると前記共通バスを介して前記ブロックにアクセスするステップと、を含むことを特徴とするバス調停方法。
【請求項２】
前記許可信号を与えたバスマスタが複数存在する場合に優先順位に応じた各前記バスマスタの転送回数を一定比率に保ちながら前記許可信号を与えた複数のバスマスタの中で前記共通バスを使用させる前記バスマスタの方を前記ウェイト信号のアクティブから非アクティブにする動作を繰り返すステップを含むことを特徴とする請求項１記載のバス調停方法。
【請求項３】
前記複数のバスマスタが同時にバスリクエストを出した場合に優先順位の高い前記バスマスタから前記共通バスを使用させるステップを含むことを特徴とする請求項１または２記載のバス調停方法。
【請求項４】
共通バスと、前記共通バスに接続された複数のブロックと、前記共通バスを使用して前記複数のブロックにアクセスする複数のバスマスタと、バスリクエストを受けた前記バスマスタに対して前記共通バスの使用を許可する許可信号を伝達するバスアービタとを備え、前記共通バスの使用権の制御を行うバス調停方法であって、
前記共通バスと前記バスマスタとの間を中継するバススレーブを前記共通バスに接続し、
前記バスアービタが、前記バスマスタから前記共通バスに対する前記バスリクエストがあると前記バスリクエストを受けた前記バスマスタに対して前記共通バスの使用を許可する前記許可信号を伝達するステップと、
前記バスマスタが、前記バスアービタから前記許可信号を受信するとアドレス信号とライトデータ信号とコントロール信号とを前記バスアービタおよび選択回路に入力するステップと、
前記バスアービタが、前記許可信号を伝達した後に前記許可信号を与えたバスマスタのアドレス信号とライトデータ信号とコントロール信号とを選択するように選択信号を前記選択回路に伝達するステップと、
前記選択回路が、前記選択信号により選択した前記バスマスタのアドレス信号とライトデータ信号とコントロール信号とを前記バススレーブに入力するステップと、
前記バススレーブが、前記入力されるアドレス信号とライトデータ信号とコントロール信号とを基に選択した前記ブロックに対して前記共通バスを介してアクセスするステップと、を含むことを特徴とするバス調停方法。
【請求項５】
前記バススレーブが、書込み時に前記入力されるライトデータ信号に乗った書込みデータを前記共通バスに出力することにより前記選択したブロックに対してアクセスするステップと、
前記バススレーブが、読出し時に前記共通バスからの読出しデータを前記バスマスタに接続されているリードデータ信号に乗せることにより前記選択したブロックに対してアクセスするステップと、を含むことを特徴とする請求項４記載のバス調停方法。
【請求項６】
前記バスアービタが、前記バスマスタが１ワード転送またはブロック転送中に他のバスマスタから前記共通バスに対するバスリクエストがあると前記バスマスタの１ワード転送直後に前記他のバスマスタへの前記許可信号を伝達するステップとを含むことを特徴とする請求項４記載のバス調停方法。
【請求項７】
前記バスアービタが、前記バスマスタがバースト転送中に他のバスマスタから前記共通バスに対するバスリクエストがあると予め設定された優先順位に応じた各前記バスマスタの転送回数を一定の比率になるように前記バスマスタまたは他のバスマスタを選択する前記選択信号に割り当てると共に前記バススレーブを介してウェイト信号をアクティブから非アクティブにする比率を調停するステップと、
前記バスアービタが、前記選択信号に割り当てなかった前記許可信号の伝達中のバスマスタに対しては前記バススレーブを介して前記ウェイト信号をアクティブにしたままで待機状態にするステップと、を含むことを特徴とする請求項４または６記載のバス調停方法。
【請求項８】
前記バスアービタが、前記複数のバスマスタが同時にバスリクエストを出した場合に優先順位の高い前記バスマスタから前記共通バスを使用させるステップを含むことを特徴とする請求項４，６，または７記載のバス調停方法。
【請求項９】
各前記バスマスタの転送回数は、バースト転送が重なった場合に優先順位の高いバスマスタの方が優先順位の低いバスマスタの転送よりも多くの処理ができるような比率で設定されていることを特徴とする請求項４または７記載のバス調停方法。
【請求項１０】
共通バスと、前記共通バスに接続された複数のブロックと、前記共通バスを使用して前記複数のブロックにアクセスする複数のバスマスタと、を備え、前記複数のバスマスタからのバスリクエストにより前記共通バスの使用を許可しその許可された前記バスマスタに前記共通バスを介して前記複数のいずれかのブロックにアクセスさせるバス調停方式であって、
前記バスマスタから前記共通バスに対するバスリクエストがあると前記共通バスの使用を前記バスマスタに対して許可する許可信号と待機状態にするウェイト信号とを伝達する伝達手段と、
前記バスマスタが前記許可信号を受信したままの状態で前記ウェイト信号がアクティブから非アクティブになると前記共通バスを介して前記ブロックにアクセスするアクセス手段と、を有することを特徴とするバス調停方式。
【請求項１１】
前記許可信号を与えたバスマスタが複数存在する場合に優先順位に応じた各前記バスマスタの転送回数を一定比率に保ちながら前記許可信号を与えた複数のバスマスタの中で前記共通バスを使用させる前記バスマスタの方を前記ウェイト信号のアクティブから非アクティブにする動作を繰り返すウェイト解除手段を有することを特徴とする請求項１０記載のバス調停方式。
【請求項１２】
前記複数のバスマスタが同時にバスリクエストを出した場合に優先順位の高い前記バスマスタから前記共通バスを使用させる優先手段を有することを特徴とする請求項１０または１１記載のバス調停方式。
【請求項１３】
共通バスと、前記共通バスに接続された複数のブロックと、前記共通バスを使用して前記複数のブロックにアクセスする複数のバスマスタと、バスリクエストを受けた前記バスマスタに対して前記共通バスの使用を許可する許可信号を伝達するバスアービタとを備え、前記共通バスの使用権の制御を行うバス調停方式であって、
前記共通バスに接続した前記共通バスと前記バスマスタとの間を中継するバススレーブを備え、
前記バスアービタは、前記バスマスタから前記共通バスに対するバスリクエストがあると前記共通バスの使用を前記バスマスタに対して許可する許可信号を伝達する第１の伝達手段と、
前記許可信号を伝達した後に前許可信号を与えたバスマスタのアドレス信号とライトデータ信号とコントロール信号とを選択するように選択信号を選択回路に伝達する第２の伝達手段と、を有し、
前記バスマスタは、前記バスアービタから前記許可信号を受信するとアドレス信号とライトデータ信号とコントロール信号とを前記バスアービタおよび前記選択回路に入力する第１の入力手段を有し、
前記選択回路は、前記選択信号により選択した前記バスマスタのアドレス信号とライトデータ信号とコントロール信号とを前記バススレーブに入力する第２の入力手段と、
前記バススレーブは、前記入力されるアドレス信号とライトデータ信号とコントロール信号とを基に選択した前記ブロックに対して前記共通バスを介してアクセスするアクセス手段を有することを特徴とするバス調停方式。
【請求項１４】
前記アクセス手段は、前記バススレーブが書込み時に前記入力されるライトデータ信号に乗ったデータを前記共通バスに出力することにより前記選択したブロックに対してアクセスする手段と、
前記バススレーブが読出し時に前記共通バスからの読出しデータを前記バスマスタに接続されているリードデータ信号に乗せることにより前記選択したブロックに対してアクセスする手段と、を有することを特徴とする請求項１３記載のバス調停方式。
【請求項１５】
前記第１の伝達手段は、前記バスマスタの１ワード転送またはブロック転送中に他のバスマスタから前記共通バスに対するバスリクエストがあると前記バスアービタが前記バスマスタの１ワード転送直後に前記他のバスマスタへの前記許可信号を伝達する手段を有することを特徴とする請求項１３記載のバス調停方式。
【請求項１６】
前記バスアービタは、前記バスマスタがバースト転送中に他のバスマスタから前記共通バスに対するバスリクエストがあると予め設定された優先順位に応じた各前記バスマスタの転送回数を一定の比率になるように前記バスマスタまたは他のバスマスタを選択する前記選択信号に割り当てると共に前記バススレーブを介してウェイト信号をアクティブから非アクティブにする比率を調停する調停手段と、
前記選択信号に割り当てなかった前記許可信号の伝達中のバスマスタに対しては前記バススレーブを介して前記ウェイト信号をアクティブにしたままで待機状態にする待機手段と、を有することを特徴とする請求項１３記載のバス調停方式。
【請求項１７】
前記バスアービタは、前記複数のバスマスタが同時にバスリクエストを出した場合に優先順位の高い前記バスマスタから前記共通バスを使用させる優先手段を有することを特徴とする請求項１３または１６記載のバス調停方式。
【請求項１８】
各前記バスマスタの転送回数は、バースト転送が重なった場合に優先順位の高いバスマスタの方が優先順位の低いバスマスタの転送よりも多くの処理ができるような比率で設定されていることを特徴とする請求項１３または１６記載のバス調停方式。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、バス調停方法および方式に関し、特に、複数のバスマスタが共通バスへの転送要求を出した場合の共通バスの使用を調停するバス調停方法および方式に関する。
【０００２】
【従来の技術】
従来、バスの使用権を獲得する制御方法として、例えば、特開平５−８９０３４号公報に開示されている。この特開平５−８９０３４号公報では、バスの使用の要求があると、バスの優先度の高いバスマスタにバスの使用権を与え、与えたバスマスタのバスの使用権の優先度を上下することにより、常にバスの使用要求信号を受付け状態のままで各バスマスタに対してバスの使用許可信号を一定の比率を保ちながらバスの使用権をその時点で一番高いバスマスタに渡す。
【０００３】
【特許文献１】
特開平５−８９０３４号公報
【０００４】
【発明が解決しようとする課題】
しかしながら、従来の特開平５−８９０３４号公報では、バースト転送の場合、一端受付けると、他のバスマスタのバス使用要求を受付けないため、そのバースト転送が終了するまで他のバスマスタの処理が待たされるという問題点がある。
【０００５】
また、従来の特開平５−８９０３４号公報では、シングル転送の場合でも、バスの使用要求の重なりに関係なく、使用権を獲得したバスマスタの優先権が自動的に変動されるため、結果的には一番低い優先度になった時点で重なる可能性が多く存在し、優先度が低くなったバスマスタが、高い優先度を必要としているにもかかわらず、バスの使用許可が全ての処理が終了するまで待たされるという問題点がある。
【０００６】
本発明の目的は、上記の問題点を鑑み、あるバスマスタがバースト転送中に他のバスマスタがバスリクエストを出した時に、バースト転送中のバスマスタの転送を停止することなく、他のバスマスタの転送を行わせることによってシステム全体を効率よく転送することにある。
【０００７】
また、本発明の他の目的は、高い方のバースト転送と低い方のバースト転送処理が重なった場合に本来の優先順位機能を損なうことのないようにしてシステム全体のパフォーマンスを上げることにある。
【０００８】
【課題を解決するための手段】
上記目的を達成するために、本発明の第１のバス調停方法は、共通バスと、前記共通バスに接続された複数のブロックと、前記共通バスを使用して前記複数のブロックにアクセスする複数のバスマスタと、を備え、前記複数のバスマスタからのバスリクエストにより前記共通バスの使用を許可しその許可された前記バスマスタに前記共通バスを介して前記複数のいずれかのブロックにアクセスさせるバス調停方法であって、前記バスマスタから前記共通バスに対するバスリクエストがあると前記共通バスの使用を前記バスマスタに対して許可する許可信号と待機状態にするウェイト信号とを伝達するステップと、前記バスマスタが前記許可信号を受信したままの状態で前記ウェイト信号がアクティブから非アクティブになると前記共通バスを介して前記ブロックにアクセスするステップと、を含むことを特徴としている。
【０００９】
更に、上記の第１のバス調停方法において、前記許可信号を与えたバスマスタが複数存在する場合に優先順位に応じた各前記バスマスタの転送回数を一定比率に保ちながら前記許可信号を与えた複数のバスマスタの中で前記共通バスを使用させる前記バスマスタの方を前記ウェイト信号のアクティブから非アクティブにする動作を繰り返すステップを含むことを特徴としている。
【００１０】
更に、上記の第１のバス調停方法において、前記複数のバスマスタが同時にバスリクエストを出した場合に優先順位の高い前記バスマスタから前記共通バスを使用させるステップを含むことを特徴としている。
【００１１】
また、本発明の第２のバス調停方法は、共通バスと、前記共通バスに接続された複数のブロックと、前記共通バスを使用して前記複数のブロックにアクセスする複数のバスマスタと、バスリクエストを受けた前記バスマスタに対して前記共通バスの使用を許可する許可信号を伝達するバスアービタとを備え、前記共通バスの使用権の制御を行うバス調停方法であって、前記共通バスと前記バスマスタとの間を中継するバススレーブを前記共通バスに接続し、前記バスアービタが、前記バスマスタから前記共通バスに対する前記バスリクエストがあると前記バスリクエストを受けた前記バスマスタに対して前記共通バスの使用を許可する前記許可信号を伝達するステップと、前記バスマスタが、前記バスアービタから前記許可信号を受信するとアドレス信号とライトデータ信号とコントロール信号とを前記バスアービタおよび選択回路に入力するステップと、前記バスアービタが、前記許可信号を伝達した後に前記許可信号を与えたバスマスタのアドレス信号とライトデータ信号とコントロール信号とを選択するように選択信号を前記選択回路に伝達するステップと、前記選択回路が、前記選択信号により選択した前記バスマスタのアドレス信号とライトデータ信号とコントロール信号とを前記バススレーブに入力するステップと、前記バススレーブが、前記入力されるアドレス信号とライトデータ信号とコントロール信号とを基に選択した前記ブロックに対して前記共通バスを介してアクセスするステップと、を含むことを特徴としている。
【００１２】
更に、上記の第２のバス調停方法において、前記バススレーブが、書込み時に前記入力されるライトデータ信号に乗った書込みデータを前記共通バスに出力することにより前記選択したブロックに対してアクセスするステップと、前記バススレーブが、読出し時に前記共通バスからの読出しデータを前記バスマスタに接続されているリードデータ信号に乗せることにより前記選択したブロックに対してアクセスするステップと、を含むことを特徴としている。
【００１３】
更に、上記の第２のバス調停方法において、前記バスアービタが、前記バスマスタが１ワード転送またはブロック転送中に他のバスマスタから前記共通バスに対するバスリクエストがあると前記バスマスタの１ワード転送直後に前記他のバスマスタへの前記許可信号を伝達するステップとを含むことを特徴としている。
【００１４】
更に、上記の第２のバス調停方法において、前記バスアービタが、前記バスマスタがバースト転送中に他のバスマスタから前記共通バスに対するバスリクエストがあると予め設定された優先順位に応じた各前記バスマスタの転送回数を一定の比率になるように前記バスマスタまたは他のバスマスタを選択する前記選択信号に割り当てると共に前記バススレーブを介してウェイト信号をアクティブから非アクティブにする比率を調停するステップと、前記バスアービタが、前記選択信号に割り当てなかった前記許可信号の伝達中のバスマスタに対しては前記バススレーブを介して前記ウェイト信号をアクティブにしたままで待機状態にするステップと、を含むことを特徴としている。
【００１５】
更に、上記の第２のバス調停方法において、前記バスアービタが、前記複数のバスマスタが同時にバスリクエストを出した場合に優先順位の高い前記バスマスタから前記共通バスを使用させるステップを含むことを特徴としている。
【００１６】
更に、上記の第１または第２のバス調停方法において、各前記バスマスタの転送回数は、バースト転送が重なった場合に優先順位の高いバスマスタの方が優先順位の低いバスマスタの転送よりも多くの処理ができるような比率で設定されていることを特徴としている。
【００１７】
また、本発明の第１のバス調停方式は、共通バスと、前記共通バスに接続された複数のブロックと、前記共通バスを使用して前記複数のブロックにアクセスする複数のバスマスタと、を備え、前記複数のバスマスタからのバスリクエストにより前記共通バスの使用を許可しその許可された前記バスマスタに前記共通バスを介して前記複数のいずれかのブロックにアクセスさせるバス調停方式であって、前記バスマスタから前記共通バスに対するバスリクエストがあると前記共通バスの使用を前記バスマスタに対して許可する許可信号と待機状態にするウェイト信号とを伝達する伝達手段と、前記バスマスタが前記許可信号を受信したままの状態で前記ウェイト信号がアクティブから非アクティブになると前記共通バスを介して前記ブロックにアクセスするアクセス手段と、を有することを特徴としている。
【００１８】
更に、上記の第１のバス調停方式において、前記許可信号を与えたバスマスタが複数存在する場合に優先順位に応じた各前記バスマスタの転送回数を一定比率に保ちながら前記許可信号を与えた複数のバスマスタの中で前記共通バスを使用させる前記バスマスタの方を前記ウェイト信号のアクティブから非アクティブにする動作を繰り返すウェイト解除手段を有することを特徴としている。
【００１９】
更に、上記の第１のバス調停方式において、前記複数のバスマスタが同時にバスリクエストを出した場合に優先順位の高い前記バスマスタから前記共通バスを使用させる優先手段を有することを特徴としている。
【００２０】
また、本発明の第２のバス調停方式は、共通バスと、前記共通バスに接続された複数のブロックと、前記共通バスを使用して前記複数のブロックにアクセスする複数のバスマスタと、バスリクエストを受けた前記バスマスタに対して前記共通バスの使用を許可する許可信号を伝達するバスアービタとを備え、前記共通バスの使用権の制御を行うバス調停方式であって、前記共通バスに接続した前記共通バスと前記バスマスタとの間を中継するバススレーブを備え、前記バスアービタは、前記バスマスタから前記共通バスに対するバスリクエストがあると前記共通バスの使用を前記バスマスタに対して許可する許可信号を伝達する第１の伝達手段と、前記許可信号を伝達した後に前許可信号を与えたバスマスタのアドレス信号とライトデータ信号とコントロール信号とを選択するように選択信号を選択回路に伝達する第２の伝達手段と、を有し、前記バスマスタは、前記バスアービタから前記許可信号を受信するとアドレス信号とライトデータ信号とコントロール信号とを前記バスアービタおよび前記選択回路に入力する第１の入力手段を有し、前記選択回路は、前記選択信号により選択した前記バスマスタのアドレス信号とライトデータ信号とコントロール信号とを前記バススレーブに入力する第２の入力手段と、前記バススレーブは、前記入力されるアドレス信号とライトデータ信号とコントロール信号とを基に選択した前記ブロックに対して前記共通バスを介してアクセスするアクセス手段を有することを特徴としている。
【００２１】
更に、上記の第２のバス調停方式において、前記アクセス手段は、前記バススレーブが書込み時に前記入力されるライトデータ信号に乗ったデータを前記共通バスに出力することにより前記選択したブロックに対してアクセスする手段と、前記バススレーブが読出し時に前記共通バスからの読出しデータを前記バスマスタに接続されているリードデータ信号に乗せることにより前記選択したブロックに対してアクセスする手段と、を有することを特徴としている。
【００２２】
更に、上記の第２のバス調停方式において、前記第１の伝達手段は、前記バスマスタの１ワード転送またはブロック転送中に他のバスマスタから前記共通バスに対するバスリクエストがあると前記バスアービタが前記バスマスタの１ワード転送直後に前記他のバスマスタへの前記許可信号を伝達する手段を有することを特徴としている。
【００２３】
更に、上記の第２のバス調停方式において、前記バスアービタは、前記バスマスタがバースト転送中に他のバスマスタから前記共通バスに対するバスリクエストがあると予め設定された優先順位に応じた各前記バスマスタの転送回数を一定の比率になるように前記バスマスタまたは他のバスマスタを選択する前記選択信号に割り当てると共に前記バススレーブを介してウェイト信号をアクティブから非アクティブにする比率を調停する調停手段と、前記選択信号に割り当てなかった前記許可信号の伝達中のバスマスタに対しては前記バススレーブを介して前記ウェイト信号をアクティブにしたままで待機状態にする待機手段と、を有することを特徴としている。
【００２４】
更に、上記の第２のバス調停方式において、前記バスアービタは、前記複数のバスマスタが同時にバスリクエストを出した場合に優先順位の高い前記バスマスタから前記共通バスを使用させる優先手段を有することを特徴としている。
【００２５】
更に、上記の第１または第２のバス調停方式において、各前記バスマスタの転送回数は、バースト転送が重なった場合に優先順位の高いバスマスタの方が優先順位の低いバスマスタの転送よりも多くの処理ができるような比率で設定されていることを特徴としている。
【００２６】
【発明の実施の形態】
次に、本発明の第１の実施の形態について図面を参照して詳細に説明する。
【００２７】
図１を参照すると、本発明の第１の実施の形態の構成を示すブロック図であり、図２を参照すると、図１の各ブロックとの間の接続情報を示す接続構成図である。すなわち、図１および図２を参照すると、本発明の第１の実施の形態は、バスアービタ１と、バスマスタ２と、バスマスタ３と、バスマスタ４と、マルチプレクサ６と、ＲＯＭが実装されているＲＯＭ７１と、ＲＡＭが実装されているＲＡＭ７２と、周辺制御装置を制御するまたは制御装置である各種デバイス７３と、共通バス９１と、内部バス９２と、内部バス９３と、内部バス９４とから構成される。バスマスタ２，３，４とバスアービタ１とマルチプレクサ６との間は内部バス９２で接続され、バスアービタ１とバススレーブ５とバスマスタ２，３，４との間は内部バス９４または内部バス９４のコントロール信号で接続され、マルチプレクサ６とバススレーブ５との間は内部バス９３で接続され、バススレーブ５とＲＯＭ７１とＲＡＭ７２とデバイス７３との間は共通バス９１で接続されている。この構成は、特に限定はしないが、バスアービタ１とバススレーブ５とバスマスタ２，３，４とが同一のチップ内または同一のボード上に実装されていることが望ましい。なお、第１の実施の形態例では、図１の破線で囲った箇所がチップ内の構成を示す。
【００２８】
図１のバスアービタ１は、バスマスタ２、バスマスタ３、バスマスタ４からのバスリクエスト信号に対して共通バス９１の調停（以降の説明では、ただ単に、バスの調停と略して呼ぶこともある）を行う回路である。バスアービタ１は、バスマスタ２、３、４からのバスリクエストにより、共通バス９１の使用を許可するバスマスタに対してのみ、共通バス９１使用の許可信号であるグラント（またはアクノリッジ）信号を送信し、同時に、許可されたバスマスタがアドレス／ライトデータ／コントロール信号をアクセス先（ＲＯＭ７１、ＲＡＭ７２、デバイス７３）に送信できるようにマルチプレクサ６に対してバスセレクト信号９６（例えば、バスセレクト信号９６は２本で構成され、論理値「００」でバスマスタ２、論理値「０１」でバスマスタ３、論理値「１０」でバスマスタ４を選択）を送信する。
【００２９】
図１のバスマスタ２、バスマスタ３、およびバスマスタ４は、例えばＣＰＵやＤＭＡコントローラのように、バススレーブ５に対して入出力やタスクを管理し、指示、制御を行う回路である。便宜上、バスリクエストの優先順位の高い方から順にバスマスタ２、バスマスタ３、バスマスタ４とする。バスマスタ２、３、４は、アクセス先（ＲＯＭ７１、ＲＡＭ７２、デバイス７３）にアクセスする場合、それぞれバスアービタ１に対してバスリクエストを送信する。
【００３０】
図１のバススレーブ５は、選択されたバスマスタからのアドレス／ライトデータ／コントロール信号を受信してＲＯＭ７１、ＲＡＭ７２、各種デバイス７３等にアクセスするためのインタフェース回路である。また、バススレーブ５は、アドレス信号によりアクセス先を決め、そのアクセス先に対して予め設定していた期間だけバスマスタ２，３，４にウェイト信号をアクティブにして送信し、同時にバスアービタ１にも送信する。
【００３１】
図１（図２）の内部バス９２は、バスマスタ２，３，４から出力されるそれぞれのバスリクエスト信号と、バスマスタ２，３，４に入力されるそれぞれのグラント（アクノリッジ）信号と、バスマスタ２，３，４から出力されるそれぞれのアドレス／ライトデータ信号と、バスマスタ２，３，４から出力されるそれぞれのコントロール信号を含んでいる。内部バス９２のコントロール信号とは、アクセスがリードなのかライトなのかを示す情報、シングルアクセスなのかバーストアクセスなのかアイドルなのかを示す情報、ビット幅が８ビット、１６ビット、３２ビットなのかを示す情報、バースト転送の長さはどのくらいなのかを示す情報といった各制御情報をバスマスタ２、３、４からバススレーブ５に対して送信する信号の集まりである。これらの情報は、バススレーブ５への最初のアクセス時には判定できるものとする。
【００３２】
図１（図２）の内部バス９３は、内部バス９２のうちバスマスタ２，３，４から出力されるいずれかがマルチプレクサ６により選択されたアドレス／ライトデータ信号と、内部バス９２のうちバスマスタ２，３，４から出力されるいずれかがマルチプレクサ６により選択されたコントロール信号とを含んでいる。
【００３３】
図１（図２）の内部バス９４は、共通バス９１からバスマスタ２，３，４に入力されるそれぞれのリードデータ信号と、バス９３のコントロール信号およびウェイト要求信号９５により生成されてバスマスタ２，３，４に入力されるそれぞれのウェイト信号とを含んでいる。
【００３４】
図１（図２）の共通バス９１は、ＲＯＭ７１，ＲＡＭ７２，デバイス７３へのそれぞれのチップセレクトと、アドレス／ＲＤ（読出し信号）／ＷＲ（書込み信号）と、双方向のデータとを含んでいる。
【００３５】
図１（図２）のバスアービタ１からバススレーブ５に送信されるウェイト要求信号９５は、バススレーブ５からバスマスタ２、３、４へ送信するウェイト信号を予め設定した待機期間（ウェイト信号）より長く待機させるための制御信号であり、バスマスタ２、３、４に対してそれぞれ個別に要求する信号である。従って、ウェイト要求信号９５は、バスマスタ２に対するウェイト要求信号９５−２と、バスマスタ３に対するウェイト要求信号９５−３と、バスマスタ４に対するウェイト要求信号９５−４とから構成される。
【００３６】
次に、図１〜図６を参照して、本発明の第１の実施の形態の動作について説明する。
【００３７】
以下、バス調停における第１の実施の形態の動作の説明を図３、図４、図５のタイムチャートを用いて説明する。この場合の共通バス９１使用の優先順位は、高い方から順にバスマスタ２、バスマスタ３、バスマスタ４とする。
【００３８】
図３を参照すると、バスマスタ３が１ワード転送中に、バスマスタ２が転送要求した場合のタイムチャートであり、先ず図３を中心に説明する。
【００３９】
バスマスタ３がバスアービタ１に対してバスリクエスト信号をアクティブにして送信すると、バスアービタ１は、バスマスタ３に対してグラント（またはアクノリッジ）信号をアクティブにして送信する。バスマスタ３は、グラント信号を受信すると、内部バス９２上のバスマスタ３用のアドレス／ライトデータ／コントロール信号にアドレス／データ／制御信号を乗せて送信する。更に、バスアービタ１がバスセレクト信号をバスマスタ３選択の状態（例えば、論理値「０１」）で出力すると、マルチプレクサ６からバスマスタ３のアドレス／ライトデータ／コントロール信号が内部バス９３に出力され、バススレーブ５に送信される。
このとき、バスアービタ１は、現在転送されているバスマスタ３の情報（１ワード転送中であること）をバスマスタ３からのコントロール信号を通じて取得、保持しておく。
【００４０】
図３に示すようにバスマスタ３が１ワード転送中に、バスマスタ２がバスリクエストをバスアービタ１に送信したとする。バスアービタ１は、保持していた現在転送中のバスマスタ３の情報を取り出す。バスマスタ３がバイト転送や１ワード転送のように短期間の転送であれば、バスマスタ３の転送が終了するまで、バスマスタ２にバス使用を許可しない。やがて、バススレーブ５が共通バス９１へのバスマスタ３の転送が終了（バスマスタ３へのウェイト信号が非アクティブ状態）すると、バスアービタ１は、バスマスタ３へのグラント信号を非アクティブにすると同時にバスマスタ２へのグラント信号をアクティブにする。すると、バスアービタ１およびバススレーブ５およびマスタ２は、上記のマスタ３の場合と同じように動作する。やがて、バスマスタ２の転送が終了し、他のバスマスタ３、４がバスリクエスト信号をアクティブにしていなければ、共通バス９１はアイドル状態となる。なおこの場合、バスマスタ２が１ワード転送中にバスマスタ３が転送要求（バスリクエスト）しても共通バス９１の使用順位は、バスリクエストの順番と同じである。
【００４１】
図４を参照すると、バスマスタ３がバースト転送中にバスマスタ２が１ワード転送要求した場合のタイムチャートである。
【００４２】
図３と同様に、バスマスタ３がバスアービタ１に対してバスリクエスト信号をアクティブにして送信すると、バスアービタ１は、バスマスタ３に対してグラント（またはアクノリッジ）信号をアクティブにして送信する。バスマスタ３は、グラント信号を受信すると、内部バス９２上のバスマスタ３用のアドレス／ライトデータ／コントロール信号にアドレス／データ／制御信号を乗せて送信する。バスアービタ１がバスセレクト信号をバスマスタ３選択の状態で出力すると、マルチプレクサ６からバスマスタ３のアドレス／ライトデータ／コントロール信号が内部バス９３に出力され、バススレーブ５に送信される。このとき、バスアービタ１は、現在転送されているバスマスタ３の情報（バースト転送中であること）をバスマスタ３からのコントロール信号を通じて取得、保持しておく。
【００４３】
バスマスタ３がバースト転送中に、バスマスタ２がバスリクエストをバスアービタ１に送信したとする。バスアービタ１は、保持していた現在転送中のバスマスタ３の情報を取り出す。バスマスタ３がバースト転送のように長期間バスを占有する転送であれば、バスアービタ１は、バースト転送中のバスマスタ３を待機状態にして、要求を出したバスマスタ２を、バスマスタ３が待機中に転送できるように調停を行う。すなわち、バスマスタ３の内部回路のバーストインクリメントカウンタが更新するタイミングで、バスアービタ１は、バスマスタ３へのグラント信号をアクティブにしたまま、バスマスタ２へのグラント信号もアクティブにする。その直後、バスセレクト信号をバスマスタ２選択状態にして、共通バス９１をバスマスタ２に開放する。同時にバスアービタ１は、バスマスタ３に対するウェイト要求信号９５−３をアクティブにしてバススレーブ５に送信する。ウェイト要求信号９５−３を受信したバススレーブ５は、バスマスタ３に対するウェイト信号をアクティブにする。なお、図３では、バスマスタ３のデフォルトのウェイト期間は、１クロックウェイトであるが、バススレーブ５は、バスマスタ２の１ワード転送が終了するまでウェイト要求信号９５−３によりバスマスタ３へのウェイト信号をアクティブにする［バスマスタ２の１ワード転送分（１バスサイクルの間）ウェイト信号をアクティブ］ことで待機状態にする。やがて、バスマスタ２の１ワード転送が終了すると、バスアービタ１は、バスマスタ２へのグラント信号を非アクティブ（インアクティブ）にして、バスマスタ３に対するウェイト要求信号９５−３を非アクティブにする。それ（ウェイト要求信号９５−３がアクティブから非アクティブになる）によって、バスアービタ１からのグラント信号がアクティブ状態のバススレーブ５は、バスマスタ３へのウェイト信号を非アクティブにして待機状態を解除し、バスマスタ３の共通バス９１へのバースト転送の続きを行わせる。バスマスタ３の転送が終了し、他のバスマスタ２、４がバスリクエストをアクティブにしていなければ、共通バス９１はアイドル状態となる。なおこの場合、バスマスタ２がバースト転送中にバスマスタ３が転送要求しても同じアルゴリズムであるが、バスマスタ３の転送をバスマスタ２の転送のどの期間で処理させるかどうかは、ソフトウェアで設定できるものとする。それによって、バスマスタ２の優先順位を損なわずに転送ができる。
【００４４】
図５を参照すると、バスマスタ３がバースト転送中にバスマスタ２がバースト転送要求（バスリクエスト）した場合のタイムチャートである。この場合、優先順位の設定をバスマスタ２、バスマスタ３、バスマスタ４の順とし、更に、バースト転送時の転送回数の比率の設定をバスマスタ２：バスマスタ３：バスマスタ４＝１：１：１とする。すなわち、バースト転送が重なった場合には、重なった時点で優先順位に従って転送する順位が決まり、１回毎に転送が変わることになる。転送回数比率設定レジスタ（それぞれのバスマスタに対応したレジスタであり、それぞれの転送回数比率設定レジスタには、「１」の値が設定）は、図示していないが、バスアービタ１内にあり、システム立ち上がり時にＣＰＵ（例えば、バスマスタ２）によるプログラム制御動作で設定できるようになっている。従って、システム構築者が自由に設定できる。
【００４５】
図４と同様に、バスマスタ３がバースト転送中にバスマスタ２が転送要求すると、バスアービタ１は、バスマスタ２の転送回数比率設定レジスタの内容（「１」の値）から先ず１バスサイクル（１回転送分）だけバースト転送中のバスマスタ３を待機状態にして、要求を出したバスマスタ２をバスマスタ３が待機中に転送できるように調停を行う。
【００４６】
ただし、バスマスタ３が待機中にバスマスタ２が最初の１回の転送を終えた場合、図４とは違ってバスマスタ２がバースト転送を要求している点で相違している。バスアービタ１は、バスマスタ２の内部回路のバーストインクリメントカウンタが更新するタイミングで、バスマスタ２へのグラント信号をアクティブにしたまま、バスマスタ３へのグラント信号もアクティブ（この場合、バスマスタ３がバースト転送中での待機状態であっても、バスマスタ３へのグラント信号は既にアクティブになっており、更にアクティブに保持し続けることになる）にする。その直後、バスアービタ１は、バスマスタ３の転送回数比率設定レジスタの内容（「１」の値：１バスサイクルを示す）から１バスサイクルだけバスセレクト信号９６をバスマスタ３選択状態にして、共通バス９１をバスマスタ３に開放する。同時にバスマスタ２に対するウェイト要求信号９５−２をアクティブにしてバススレーブ５に送信する。ウェイト要求信号９５−２を受信したバススレーブ５は、バスマスタ２に対するウェイト信号を１バスサイクル間（１回転送の間）強制的にアクティブにする。以降、バスマスタ２、３のバースト転送が終了するまで交互にバスを切りかえる。
【００４７】
図６を参照すると、図５と同様にバスマスタ３がバースト転送中にバスマスタ２がバースト転送要求した場合のタイムチャートであるが、バスマスタ２の転送回数比率設定レジスタが「２」、バスマスタ３の転送回数比率設定レジスタが「１」、バスマスタ４の転送回数比率設定レジスタが「１」、それぞれ設定されており、バスマスタ２の転送を２回、バスマスタ３の転送を１回、という配分で交互にバスを切りかえている。すなわち、バースト転送が重複した場合は、ソフトウェアまたはハードウェア、あるいはその両方によって、優先順位の高いバスマスタ２の転送を優先順位の低いバスマスタ３の転送より多く処理できるように配分することによって、本来の優先順位機能を損なうことのないようにしている。
【００４８】
なお、上記の図５の説明では、２つのバスマスタ２，３が重なった場合を想定して説明したが、３つのバスマスタが重なった場合もバスマスタ２が２回転送、バスマスタ３が１回転送、バスマスタ４が１回転送を繰り返すことになることは、上記の説明から明らかである。
【００４９】
また、上記の図２または図３の説明において、転送回数比率設定レジスタを使用しないで、優先順位だけを考慮して説明したが、バスアービタ１が、シングル転送中またはバースト転送中に他のバスマスタからのバスリクエストによりシングル転送とシングル転送との重なり、またはシングル転送とバースト転送との重なりが生じた時点で、優先順位に加えてバースト転送が重なった場合と同じように転送回数比率設定レジスタの内容に従ってバス調停の動作をするようにしても良い。また、転送回数比率設定レジスタに設定された値が大きい順にバスマスタの共有バス９１の使用の優先度が高いとしても良い（この場合は、転送回数の比率と優先度を兼ねることになる）。
【００５０】
次に、本発明の第２の実施の形態について、図面を参照して説明する。
【００５１】
図７を参照すると、本発明の第１の実施の形態の構成を示すブロック図であり、バスアービタ１と、バスマスタ２と、バスマスタ３と、バスマスタ４と、マルチプレクサ６と、共通バス９１１と、共通バス９１２と、内部バス９２と、内部バス９３と、内部バス９４と、バススレーブ５１により共通バス９１１から読み取ったデータが乗る内部バス９５と、バススレーブ５２により共通バス９１２から読み取ったデータが乗る内部バス９６と、内部バス９５または内部バス９６の選択を行うマルチプレクサ８２（バススレーブの動作している方を選択）と、バススレーブ５１またはバススレーブ５２の選択を内部バス９３の信号により行うデコーダ８１と、バススレーブ５１と、バススレーブ５２とから構成される。バスマスタ２，３，４とバスアービタ１とマルチプレクサ６との間は内部バス９２で接続され、バスアービタ１とマルチプレクサ８２とバスマスタ２，３，４との間は内部バス９４または内部バス９４のコントロール信号で接続され、マルチプレクサ６とバススレーブ５１，５２とデコーダ８１との間は内部バス９３で接続され、バススレーブ５１とマルチプレクサ８２との間は内部バス９５とで接続され、バススレーブ５２とマルチプレクサ８２との間は内部バス９６とで接続されている。なお、第２の実施の形態例では、図１の破線で囲った箇所がチップ内の構成を示す。すなわち、第１の実施の形態ではバスアービタ１が１つの共通バス９１の使用権獲得の制御をバススレーブ５を介して行っている点と比べ、第２の実施の形態ではバスアービタ１が共通バス９１１の使用権獲得の制御をバススレーブ５１を介して行い、共通バス９１２の使用権獲得の制御をバススレーブ５２を介して行っている点で、第１の実施の形態と相違している。
【００５２】
なお動作については、バススレーブが２つ増えただけで、基本的には、第１の実施の形態で説明した動作と同じなので、説明を省略する。すなわち、バススレーブ１個の場合と同様のバス調停を行うことができる。
【００５３】
上記に説明したように、バスマスタからバスリクエスト（転送要求）を受信した場合に他のバスマスタとの転送の重なりに関係なくバスリクエストを出したバスマスタに対して共通バス使用の許可信号（グラント信号）を出し、許可信号を出しているバスマスタの内、実際に共通バスを使用させる場合には、使用させるバスマスタには１バスサイクル毎にウェイト信号をアクティブから非アクティブにし、使用させないバスマスタにはウェイト信号をアクティブのままにするようにしているため、各バスマスタ自身が中断する必要もなく、システム全体を効率よく転送できる。
【００５４】
また、上記に説明したように、複数個のバスマスタ２，３，４に対して、あるバスマスタ（例えば、バスマスタ３）がバースト転送中に、他のバスマスタ（例えば、バスマスタ２）がバスリクエスト（転送要求）を出した時に、バースト転送中のバスマスタ３の転送を停止するのではなく待機状態にさせて他のバスマスタ２の転送を行わせることによってシステム全体を効率よく転送できる。
【００５５】
また、上記に説明したように、高い方のバースト転送と低い方のバースト転送処理が重なった場合は、バスマスタ２，３，４それぞれの転送回数比率設定レジスタに予め設定しておくことで、優先順位の高いバスマスタの転送を優先順位の低いバスマスタの転送より多く処理できるように配分することによって、本来の優先順位機能を損なうことのないようにすることで、結果的にシステム全体の処理速度が向上する。
【００５６】
【発明の効果】
以上説明したように、本発明は、複数個のバスマスタに対して、あるバスマスタがバースト転送中に、他のバスマスタがバスリクエストを出した時に、バースト転送中のバスマスタの転送を停止することなく待機状態にさせて他のバスマスタの転送を行わせるようにしているため、システム全体を効率よく転送できるという効果がある。
【００５７】
また、本発明は、高い方のバースト転送と低い方のバースト転送処理が重なった場合は、優先順位の高いバスマスタの転送を優先順位の低いバスマスタの転送より多く処理できるように配分するようにしているため、本来の優先順位機能を損なうことのないようにすることになり、結果的にシステム全体の処理速度が向上するという効果がある。
【図面の簡単な説明】
【図１】本発明の第１の実施の形態の構成を示すブロック図である。
【図２】図１の各ブロックとの間の接続情報を示す接続構成概略図である。
【図３】図１のバスマスタ３が１ワード転送中にバスマスタ２が１ワード転送要求した場合の動作を示すタイムチャートである。
【図４】図１のバスマスタ３がバースト転送中にバスマスタ２が１ワード転送要求した場合の動作を示すタイムチャートである。
【図５】図１のバスマスタ３がバースト転送中にバスマスタ２がバースト転送要求した場合、１：１の配分でバースト転送の動作を示すタイムチャートである。
【図６】図１のバスマスタ３がバースト転送中にバスマスタ２がバースト転送要求した場合、１：２の配分でバースト転送の動作を示すタイムチャートである。
【図７】本発明の第２の実施の形態の構成を示すブロック図である。
【符号の説明】
１    バスアービタ
２，３，４    バスマスタ
５，５１，５２    バススレーブ
６，８２    マルチプレクサ
７１    ＲＯＭ
７２    ＲＡＭ
７３    デバイス
８１    デコーダ
９１，９１１，９１２    共通バス
９２，９３，９４，９５，９６    内部バス
【図１】
2004252726.tif 000003
【図２】
2004252726.tif 000004
【図３】
2004252726.tif 000005
【図４】
2004252726.tif 000006
【図５】
2004252726.tif 000007
【図６】
2004252726.tif 000008
【図７】
2004252726.tif 000009