JP2000020453A - バスコントローラ - Google Patents

バスコントローラ

Info

Publication number
JP2000020453A
JP2000020453A JP10182334A JP18233498A JP2000020453A JP 2000020453 A JP2000020453 A JP 2000020453A JP 10182334 A JP10182334 A JP 10182334A JP 18233498 A JP18233498 A JP 18233498A JP 2000020453 A JP2000020453 A JP 2000020453A
Authority
JP
Japan
Prior art keywords
access
shared buffer
bus
data
cpu
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
JP10182334A
Other languages
English (en)
Inventor
Takanori Furuzono
貴則 古園
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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial 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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP10182334A priority Critical patent/JP2000020453A/ja
Publication of JP2000020453A publication Critical patent/JP2000020453A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Bus Control (AREA)

Abstract

(57)【要約】 【課題】 アクセスの完了待ちによるペナルティの削減
を、リードバッファやストアバッファを特別に設けるこ
となしに実現するバスコントローラを提供する。 【解決手段】 バスコントローラ制御部2は、CPU5
からの異なるスレーブバスへの連続したリードアクセス
要求時や、CPU5からのライトアクセス要求時に、共
有バッファ制御部3に共有バッファアクセス要求信号を
出力する。これに対し共有バッファ制御部3は、DMA
データ退避用としても利用可能な共有バッファ4へのア
クセスが可能な場合に、共有バッファアクセス許可信号
を出力して、共有バッファ4への転送データの一時退避
制御を行う。これにより、リードバッファやストアバッ
ファを設けた場合のペナルティ削減の効果を、回路規模
を抑えながら実現する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、CPUとスレーブ
デバイス(メモリ、I/O装置)の間のデータ転送およ
びスレーブデバイス間のDMA転送制御を行うバスコン
トローラに関するものであり、回路規模の増加を防ぎつ
つ、異なるスレーブデバイスへの並行したアクセスを行
ったり、CPUからのライトアクセス要求時のアクセス
完了待ちのペナルティ削減により、データ転送やCPU
処理の効率を高めることを図ったバスコントローラに関
するものである。
【0002】
【従来の技術】従来の技術を図22に示す情報システム
を用いて説明する。この情報システムは、バスコントロ
ーラ1001とCPU1005とDMAコントローラ1
006とDMAバッファ1004とメモリ1007とI
/Oデバイス1008とで構成され、さらにバスコント
ローラ1001はバスコントローラ制御部1002とリ
ードバッファ1010,1012、ストアバッファ10
11,1013を有している。
【0003】ここで、バスコントローラ1001がリー
ドバッファ1010,1012とストアバッファ101
1,1013とを持つ理由を説明するため、リードバッ
ファ1010,1012とストアバッファ1011,1
013とを持たない場合を考える。CPU1005に転
送されるデータが、CPU1005が行ったバスアクセ
ス要求の順になるように、バスコントローラ1002が
保証するためには、異なるスレーブバス(スレーブデバ
イスの接続されているバス)に対して同時に並行してア
クセスを行わない必要がある。
【0004】CPU1005が先行して行ったI/Oデ
バイス1008に対するアクセスが完了する以前に、メ
モリ1007へのバスアクセス要求が行われたとした場
合、I/Oデバイス1008の存在するスレーブバスと
メモリデバイス1007の存在するスレーブバスへ並行
してアクセスを行ってしまうと、I/Oデバイス100
8とメモリ1007のデータを返すのに必要な時間の関
係によっては、先行してアクセスしたはずのI/Oデバ
イス1008からのデータより先にメモリ1007から
のデータがバスコントローラ1001に対して返されて
しまう場合がありうる。この場合、順序保証の必要上メ
モリ1007からのデータを直接にCPU1005に対
して転送することができないため、これを保持する手段
なしにはデータが失われてしまう。
【0005】そのため、バスコントローラ1001は、
このデータを保持する手段としてリードバッファ101
0,1012を有している。また、CPU1005が、
メモリ1007もしくはI/Oデバイス1008に対す
るライトアクセスを行っている最中には、ライトデータ
をCPU1005が保持し続けなければならないため、
CPU1005は次の処理に移れないという問題があ
る。
【0006】そのため、バスコントローラ1001は、
このデータを保持する手段としてストアバッファ101
1,1013を有している。
【0007】
【発明が解決しようとする課題】しかしながら、上記従
来技術においては、リードバッファやストアバッファを
デバイス毎に設けることによる回路規模の増大の問題が
ある。本発明の目的は、DMA転送時にデータ退避用と
して用いられているDMAバッファを、リードバッファ
およびストアバッファとしても利用することで、回路規
模の増大を抑えることができるバスコントローラを提供
することである。
【0008】本発明の他の目的は、異なるスレーブバス
への並行アクセス、およびライト時のCPUのペナルテ
ィ削減を実現し、データ転送およびCPU処理の効率を
向上させることができるバスコントローラを提供するこ
とである。
【0009】
【課題を解決するための手段】請求項1記載のバスコン
トローラは、マスターデバイスとスレーブデバイスとの
間のデータ転送と、スレーブデバイス間のDMA転送と
に用いられるバスの制御を行うためのものであり、DM
A転送時におけるバス上で転送されるデータを一時的に
格納するための共有バッファと、マスターデバイスから
のアクセス要求に基づいて、スレーブデバイスへのアク
セスの制御を行い、共有バッファへのデータの格納を要
求する共有バッファアクセス要求信号を出力するバスコ
ントローラ制御部と、共有バッファアクセス要求信号に
基づいて、共有バッファへのアクセスが可能である場合
には、バスコントローラ制御部に対し共有バッファへの
アクセスを許可する共有バッファアクセス許可信号を出
力し、共有バッファへのアクセスの制御を行う共有バッ
ファ制御部とを備えている。
【0010】この構成によれば、バスコントローラ制御
部がマスターデバイスからのアクセス要求に基づいて、
スレーブデバイスへのアクセスの制御を行い、共有バッ
ファへのデータの格納を要求する共有バッファアクセス
要求信号を出力すると、これに対して共有バッファ制御
部が共有バッファアクセス要求信号に基づいて、共有バ
ッファへのアクセスが可能である場合には、バスコント
ローラ制御部に対し共有バッファへのアクセスを許可す
る共有バッファアクセス許可信号を出力し、共有バッフ
ァへのアクセスを行い、転送データの共有バッファへの
一時退避を行う。
【0011】このように、DMA転送時にデータ退避用
として用いられているDMAバッファを共有バッファと
し、この共有バッファをスレーブデバイスにおけるリー
ドバッファおよびストアバッファとしても利用すること
で、回路規模の増大を抑える。請求項2記載のバスコン
トローラでは、マスターデバイスが、同一のデータバス
を共有するスレーブデバイスに対してアクセス要求を行
った場合、バスコントローラ制御部が共有バッファアク
セス要求信号を出力し、これに対して共有バッファ制御
部が共有バッファにデータが格納されていない場合に
は、共有バッファアクセス許可信号を出力し、マスター
デバイスとスレーブデバイス間で転送されるデータを共
有バッファに一時退避させる。
【0012】この構成によれば、DMA転送時にデータ
退避用として用いられている共有バッファを、スレーブ
デバイスにおけるリードバッファおよびストアバッファ
としても利用することで、回路規模の増大を抑える。請
求項3記載のバスコントローラでは、マスターデバイス
がバスの異なるスレーブデバイスへのリードアクセス要
求を続けて行った場合に、バスコントローラ制御部が共
有バッファアクセス要求信号を出力し、これに対して共
有バッファ制御部が共有バッファにデータが格納されて
いない場合には、共有バッファアクセス許可信号を出力
し、共有バッファアクセス許可信号を受けたバスコント
ローラ制御部がバスの異なる複数のスレーブデバイスへ
並行してアクセスを行い、共有バッファ制御部がいずれ
かのスレーブデバイスからのリードデータを共有バッフ
ァに転送データを一時退避させる。
【0013】この構成によれば、バスの異なる複数のス
レーブデバイスへ並行してアクセスを行い、共有バッフ
ァ制御部がいずれかのスレーブデバイスからのリードデ
ータを共有バッファに転送データを一時退避させるの
で、データ転送処理の効率を向上させる。請求項4記載
のバスコントローラでは、マスターデバイスがライトリ
クエストを行った場合に、バスコントローラ制御部が共
有バッファアクセス要求信号を出力し、これに対して共
有バッファ制御部が共有バッファにデータが格納されて
いない場合には、共有バッファアクセス許可信号を出力
し、マスターデバイスからのライトデータを共有バッフ
ァに一時退避させる。
【0014】この構成によれば、マスターデバイスから
のライトデータを共有バッファに一時退避させるので、
ライト時のCPUのペナルティ削減を実現し、CPU処
理の効率を向上させる。
【0015】
【発明の実施の形態】以下、本発明の実施の形態につい
て、図1から図21を用いて説明する。図1は本発明の
第1の実施の形態によるバスコントローラを用いた情報
システムの構成を示すブロック図である。この情報シス
テムは、バスコントローラ1とCPU5とDMAコント
ローラ6とメモリ7とI/Oデバイス8とで構成され、
さらにバスコントローラ1はバスコントローラ制御部2
と共有バッファ制御部3と共有バッファ4とCPUデー
タバス11と共有バッファデータバス19とメモリデー
タバス17とI/Oデータバス18とで構成される。
【0016】バスコントローラ1の主な制御内容は、マ
スターデバイスであるCPU5とスレーブデバイスであ
るメモリ7もしくはI/Oデバイス8との間のデータ転
送、およびメモリ7もしくはI/Oデバイス8に対する
DMA転送(メモリ7とI/Oデバイス8の間のDMA
転送)を行うことである。バスコントローラ制御部2
は、CPUインターフェース制御信号15によってCP
U5とのインターフェースを行い、CPU5からのバス
アクセス要求に応じて、メモリ7もしくはI/Oデバイ
ス8へのアクセスの制御をそれぞれメモリインターフェ
ース制御信号12もしくはI/Oインターフェース制御
信号13によって行う。CPU5のライトするデータお
よび、CPU5のリードするデータはCPUデータバス
11を介してバスコントローラ1とやりとりされる。
【0017】また、バスコントローラ制御部2は、DM
Aインターフェース制御信号16によってDMAコント
ローラ6とのインターフェースを行い、DMAコントロ
ーラ6からのDMA転送要求に応じて、メモリ7もしく
はI/Oデバイス8へのアクセスの制御を行う。ソース
であるメモリ7もしくはI/Oデバイス8からリードさ
れたデータは、メモリデータバス17もしくはI/Oデ
ータバス18、および共有バッファデータバス19を経
由して共有バッファ4に格納される。そして、デスティ
ネーションであるメモリ7もしくはI/Oデバイス8に
対して、共有バッファ4からリードされたデータが共有
バッファデータバス19、およびメモリデータバス17
もしくはI/Oデータバス18を経由してライトされ
る。
【0018】共有バッファ制御部3は共有バッファ制御
部インターフェース制御信号20によって、バスコント
ローラ制御部2とのアクセス要求、許可などのインター
フェースを行い、共有バッファアクセス制御信号14で
共有バッファ4へのアクセスの制御を行う。バスコント
ローラ制御部2の構成を図9に示す。バスコントローラ
制御部2は、マスターインターフェース部100とDM
Aコントローラインターフェース部101とマスターデ
ータ転送制御部102,103とDMAデータ転送制御
部104とスレーブインターフェース制御部105とバ
スコントローラ制御部2の内部状態を示すいくつかのフ
ラグとから構成される。
【0019】マスターインターフェース部100は、マ
スターデバイスであるCPU5からのアクセス要求をも
とに、スレーブデバイスであるメモリ7やI/Oデバイ
ス8へのアクセス要求のタイミングや、転送時の共有バ
ッファ4使用の有無の決定および共有バッファ4へのア
クセス要求を行う。マスターインターフェース部100
は、複数マスターデバイスのシステムのバスコントロー
ラでは、マスターデバイス毎に独立して存在する。
【0020】DMAコントローラインターフェース部1
01は、DMAコントローラ6のアクセス要求をもと
に、スレーブデバイスであるメモリ7やI/Oデバイス
8へのアクセス要求のタイミングや、共有バッファ4へ
のアクセス要求を行う。マスターデータ転送制御部10
2,103は、マスターデバイスであるCPU5へ転送
されるデータおよび、CPU5から転送するデータの経
路の制御を行う。マスターデータ転送制御部102,1
03は、それぞれCPU5からのアクセス要求の順番の
先のものの制御をマスターデータ転送制御部102が、
後のものの制御をマスターデータ転送制御部103が行
う。
【0021】DMAデータ転送制御部104は、DMA
転送データの経路の制御を行う。スレーブインターフェ
ース制御部105は、スレーブバスであるメモリ7およ
びI/Oデバイス8のバスへのアクセス要求の調停と、
調停結果に基づいたスレーブデバイスへのアクセスの制
御を行う。また、バスコントローラ制御部2は、以下の
ようなフラグを持って、各部分の制御を行っている。
【0022】バスアクセスフラグ110,111,11
2はそれぞれ各スレーブバス毎にビットを持ち、ビット
のセットされているスレーブバスへのバスアクセスの存
在を示すフラグである。複数マスターデバイスの場合
は、バスアクセスフラグ110,111はそれぞれマス
ターデバイス毎に独立して存在する。バスアクセスフラ
グ110,111はマスターインターフェース部100
によって、バスアクセスフラグ112はDMAコントロ
ーラインターフェース部101によってセットされ、い
ずれもスレーブインターフェース制御部105によって
クリアされる。
【0023】リードアクセスフラグ113,114,1
15も同様に各スレーブバス毎にビットを持ち、リード
アクセスフラグ113についてはバスアクセスフラグ1
10の、リードアクセスフラグ114についてはバスア
クセスフラグ111の、リードアクセスフラグ115に
ついてはバスアクセスフラグ112の、セットされてい
るビットと同じスレーブバスについて、ビットのセット
されている場合はリードアクセスが、クリアされている
場合はライトアクセスが存在することを示す。リードア
クセスフラグ113,114も複数マスターデバイスの
場合は、マスターデバイス毎に独立して存在し、リード
アクセスフラグ113,114はマスターインターフェ
ース部100によって、リードアクセスフラグ115は
DMAコントローラインターフェース部101によって
セットおよびクリアされる。
【0024】共有バッファアクセスフラグ116,11
7はセットされていた場合に、それぞれバスアクセスフ
ラグ110,111についてのアクセスが共有バッファ
4を利用するものであることを示す。共有バッファアク
セスフラグ116,117も複数マスターデバイスの場
合は、マスターデバイス毎に独立して存在し、マスター
インターフェース部100によってセットおよびクリア
される。
【0025】バスアクセスフラグ110とバスアクセス
フラグ111、リードアクセスフラグ113とリードア
クセスフラグ114、共有バッファアクセスフラグ11
6と共有バッファアクセスフラグ117の関係は、それ
ぞれCPU5からのアクセス要求の順番の新しいアクセ
スから、バスアクセスフラグ110,111(リードア
クセスフラグ113,114および共有バッファアクセ
スフラグ116,117)の順になり、バスアクセスフ
ラグ111に対応するアクセス終了時には、バスアクセ
スフラグ110の内容がバスアクセスフラグ111に、
リードアクセスフラグ113の内容がリードアクセスフ
ラグ114に、共有バッファアクセスフラグ116の内
容が共有バッファアクセスフラグ117にシフトする。
【0026】アクセス要求フラグ120,121もそれ
ぞれ各スレーブバス毎にビットを持ち、ビットのセット
されているスレーブバスへのアクセス要求の存在を示す
フラグである。複数マスターデバイスの場合は、アクセ
ス要求フラグ120がそれぞれマスターデバイス毎に独
立して存在する。アクセス要求フラグ120はマスター
インターフェース部100によって、アクセス要求フラ
グ121はDMAコントローラインターフェース部10
1によってセット、クリアされる。
【0027】アクセス許可フラグ122,123は、各
スレーブバス毎にビットを持ち、ビットのセットされて
いるスレーブバスへのアクセス許可を示し、アクセス許
可フラグ122はCPU5、アクセス許可フラグ123
はDMAコントローラ6への許可となる。複数マスター
デバイスの場合は、アクセス許可フラグ122がそれぞ
れマスターデバイス毎に独立して存在する。アクセス許
可フラグ122,123は、スレーブインターフェース
制御部105によってセット、クリアされる。
【0028】アクセス終了フラグ124は、各スレーブ
バス毎にビットを持ち、ビットのセットされているスレ
ーブバスへのアクセスの終了を示す。アクセス終了フラ
グ124は、スレーブインターフェース制御部105に
よってセット、クリアされる。以下では、バスコントロ
ーラ制御部2の各部分の制御の詳細をフローチャートを
参照しながら説明する。
【0029】マスターインターフェース部100の制御
フローチャートを図10に示す。まず、マスターインタ
ーフェース部100はステップ50で、マスターデバイ
スからのリードアクセス要求を判断する。具体的には、
CPU5からのCPUリードアクセス要求信号30がア
サートされたかを判断し、アサートされた場合はステッ
プ52へ、ネゲートされている場合はステップ51へ遷
移する。
【0030】ステップ52では、CPUリードアクセス
要求信号30がアサートされたサイクルのCPUアドレ
ス信号をデコードし、どのスレーブバスへのアクセスな
のか、つまりメモリ7へのアクセスか、I/Oデバイス
8へのアクセスかを判断する。ステップ53では、ステ
ップ52のデコード結果とバスアクセスフラグ110と
の比較を行い、並行してアクセスが行われているかを判
断する。このバスアクセスフラグ110のいずれのビッ
トもクリアされている場合は、並行してアクセスが行わ
れていないと判断し、ステップ54へ遷移し、いずれか
のビットがセットされている場合は、並行してアクセス
が行われていると判断し、ステップ53で待機する。
【0031】ステップ54では、ステップ52のデコー
ド結果とバスアクセスフラグ110と比較して、CPU
5からアクセス要求のあったスレーブバスに対しアクセ
ス中であった場合には、ステップ55へ遷移し、アクセ
ス中でない場合にはステップ56へ遷移する。ステップ
55では、アクセス終了フラグ124を観測し、アクセ
ス終了かを判断する。スレーブバスアクセス終了フラグ
124がセットされていれば、アクセス終了と判断し、
リードアクセスフラグ114をセットし、ステップ57
に遷移し、スレーブバスへのアクセス要求を開始する。
アクセス終了と判断されない場合は、ステップ58へ遷
移する。
【0032】ステップ56では、先行するアクセスがあ
るかを調べる。バスアクセスフラグ111の、CPU5
からのアクセス要求のあったスレーブバスと異なるバス
のビットを調べ、どのビットもセットされていない場合
は、先行するアクセスがないと判断して、リードアクセ
スフラグ115をセットし、ステップ57に遷移してス
レーブバスへのアクセス要求を開始する。いずれかのビ
ットがセットされている場合は、ステップ58に遷移す
る。
【0033】ステップ57では、アクセス要求フラグ1
20のアクセスするスレーブバスのビットをセットし
て、リードアクセス要求が行われる。ステップ58で
は、リードアクセスフラグ114が調べられる。このリ
ードアクセスフラグ114がセットされている場合は、
現在のアクセスがリードと判断して、ステップ59に遷
移し、クリアされている場合は、リードアクセスフラグ
113をセットし、ステップ57へ遷移する。
【0034】ステップ59では、共有バッファ制御部3
への共有バッファアクセス要求と、その許可の判断を行
う。マスターインターフェース部100は、共有バッフ
ァ制御部3との共有バッファ制御部インターフェース信
号20として、共有バッファアクセス要求信号201、
共有バッファアクセス許可信号202を持ち、それぞれ
マスターデバイス毎にビットを持っており、ステップ5
9では、共有バッファアクセス要求信号201の該当す
るマスターデバイス、具体的にはCPU5のビットをア
サートする。共有バッファアクセス要求信号201をア
サートしている場合に、共有バッファアクセス許可信号
202のCPU5のビットがアサートされたら、共有バ
ッファ4へのアクセスが許可されたと判断し、共有バッ
ファアクセス要求信号201をネゲートして、リードア
クセスフラグ113、共有バッファアクセスフラグ11
6をセットし、ステップ57に遷移してアクセス要求を
開始する。共有バッファ4へのアクセスが許可されたと
判断されない場合には、共有バッファアクセス要求信号
201をアサートしたままステップ56へ遷移し、先行
するアクセスが終了してステップ56からステップ57
に遷移する場合には、共有バッファアクセス要求信号2
01をネゲートし、先行するアクセスが終了していない
場合にはステップ56からステップ58に遷移する。
【0035】ステップ61では、スレーブインターフェ
ース制御部105へのアクセス要求フラグ120のアク
セスするスレーブバスのビットをセットして、アクセス
要求が行われる。ステップ62では、スレーブインター
フェース制御部105からのアクセス許可を判断する。
アクセス許可フラグ122がセットされた場合にはアク
セス許可と判断し、バスアクセスフラグ110のアクセ
スするスレーブバスのビットをセット(その他のビット
はクリア)し、アクセス要求フラグ120のアクセスす
るスレーブバスのビットをクリアして、ステップ50に
遷移する。アクセス許可と判断されない場合にはステッ
プ62で待機する。
【0036】ステップ51では、マスターデバイスから
のライトアクセス要求を判断する。CPU5からのCP
Uライトアクセス要求信号31を観測し、アサートされ
た場合はライトアクセス要求があったと判断しステップ
72へ、ネゲートされている場合はステップ50へ遷移
する。ステップ72では、CPUライトアクセス要求信
号31がアサートされたサイクルのCPUアドレス信号
32をデコードし、どのスレーブバスへのアクセスなの
かを判断する。
【0037】ステップ73では、ステップ72のデコー
ド結果とバスアクセスフラグ110との比較を行い、並
行してアクセスが行われているか調べる。バスアクセス
フラグ110のいずれのビットもクリアされている場合
は並行してアクセスが行われていると判断しステップ7
4へ遷移し、いずれかのビットがセットされている場合
はステップ73で待機する。
【0038】ステップ74では、共有バッファ制御部3
への共有バッファアクセス要求と、その許可の判断を行
う。共有バッファ4へのアクセスが許可されたと判断し
たら、バスアクセスフラグ110のアクセスするスレー
ブバスのビットをセット(その他のビットはクリア)
し、リードアクセスフラグ113をクリア、共有バッフ
ァアクセスフラグ116をセットして、CPUライトア
クノレッジ信号33をアサートしてステップ77へ遷移
する。共有バッファ4へのアクセスが許可されない場合
にはステップ75へ遷移する。
【0039】ステップ75では、バスアクセスフラグ1
11と比較して、CPU5からアクセス要求のあったス
レーブバスに対しアクセス中であった場合には、ステッ
プ76へ遷移し、アクセス中でない場合には、リードア
クセスフラグ114をクリアし、ステップ77へ遷移す
る。ステップ76では、バスアクセス終了フラグ124
の、CPU5からのアクセス要求のあったスレーブバス
と同じバスのビットを調べ、ビットがセットされている
場合は、前回のアクセス完了と判断して、リードアクセ
スフラグ114をクリアし、ステップ77に遷移してス
レーブバスへのアクセス要求を開始し、ビットがセット
されていない場合は、ステップ74に遷移する。
【0040】ステップ77では、スレーブインターフェ
ース制御部105へのアクセス要求フラグ120のアク
セスするビットをセットして、ライトアクセス要求が行
われ、ステップ77へ遷移する。次に、DMAコントロ
ーラインターフェース部101の制御フローチャートを
図11に示す。
【0041】DMAコントローラインターフェース部1
01は、ステップ150でDMAインターフェース制御
信号16のひとつであるソースアクセス要求信号130
を調べ、アサートされた場合は、ソースへのアクセス要
求と判断してステップ152に、ネゲートの場合はステ
ップ151に遷移する。ステップ152では、DMAイ
ンターフェース制御信号16のひとつであるDMAアド
レス信号132をデコードし、どのスレーブバスへのア
クセスかを判断する。
【0042】ステップ153では、共有バッファ制御部
3への共有バッファアクセス要求と、その許可の判断を
行う。バスコントローラ制御部2は、共有バッファ制御
部3に対し、共有バッファアクセス要求信号133をア
サートして共有バッファアクセス要求を行い、共有バッ
ファアクセス許可信号134がアサートされることで要
求が許可されたことを知る。要求が許可された場合は共
有バッファアクセス要求信号133をネゲートし、リー
ドアクセスフラグ115、共有バッファアクセスフラグ
116をセットしてステップ154に遷移し、許可され
ていない場合はステップ153で待機する。
【0043】ステップ154では、スレーブインターフ
ェース制御部105へのアクセス要求フラグ121のア
クセスするスレーブバスのビットをセットして、アクセ
ス要求が行われる。ステップ155では、スレーブイン
ターフェース制御部105からのアクセス許可を判断す
る。アクセス許可フラグ123がセットされた場合には
アクセス許可と判断し、バスアクセスフラグ112のア
クセスするスレーブバスのビットをセット(その他のビ
ットはクリア)して、ステップ150に遷移し、そうで
ない場合にはステップ155で待機する。
【0044】ステップ151では、DMAインターフェ
ース制御信号16のひとつであるデスティネーションア
クセス要求信号131がアサートされた場合は、デステ
ィネーションへのアクセス要求と判断して、ステップ1
56に、ネゲートの場合はステップ150に遷移する。
ステップ156では、DMAアドレス信号132をデコ
ードし、どのスレーブバスへのアクセスかを判断する。
【0045】ステップ157では、共有バッファ制御部
3への共有バッファアクセス要求と、その許可の判断を
行う。要求が許可された場合は共有バッファアクセス要
求信号133をネゲートし、リードアクセスフラグ11
5をクリア、共有バッファアクセスフラグ116をセッ
トしてステップ158に遷移し、許可されていない場合
はステップ157で待機する。
【0046】ステップ158では、スレーブインターフ
ェース制御部105へのアクセス要求フラグ121のア
クセスするスレーブバスのビットをセットして、アクセ
ス要求が行われる。ステップ159では、スレーブイン
ターフェース制御部105からのアクセス許可を判断す
る。アクセス許可フラグ123がセットされた場合には
アクセス許可と判断し、バスアクセスフラグ112のア
クセスするスレーブバスのビットをセット(その他のビ
ットはクリア)して、ステップ150に遷移し、そうで
ない場合にはステップ159で待機する。
【0047】マスターデータ転送制御部102の制御フ
ローチャートを図12に示す。マスターデータ転送制御
部102は、まずステップ80で、アクセスの有無を調
べるためバスアクセスフラグ111を調べる。ここでい
ずれかのビットがセットされていれば、アクセスがある
と判断してステップ81に遷移し、どのビットもセット
されていない場合にはステップ80で待機する。
【0048】ステップ81では、アクセスがリードかラ
イトかを調べるため、リードアクセスフラグ114が調
べられる。リードアクセスフラグ114がセットされて
いれば、現在、リードアクセスが行われていると判断
し、ステップ82へ遷移する。リードアクセスフラグ1
14がクリアされている場合は、ライトアクセスと判断
し、ステップ86へ遷移する。
【0049】ステップ82では、共有バッファ4を用い
たアクセスかを調べるため、共有バッファアクセスフラ
グ117が調べられる。共有バッファアクセスフラグ1
17がセットされていれば、共有バッファ4を用いると
判断してステップ83へ、クリアされている場合はステ
ップ84へ遷移する。ステップ83では、スレーブデバ
イス(メモリ7またはI/Oデバイス8)から共有バッ
ファ4へのデータ転送制御が行われる。共有バッファ4
へ転送するデータとして、バスアクセスフラグ111の
セットされているビットのスレーブバス(先行してアク
セスの開始されたスレーブバス)のデータをセレクトす
る。
【0050】ステップ84では、スレーブデバイスから
マスターデバイスであるCPU5へのデータ転送制御が
行われる。CPUデータバス11へ転送するデータとし
て、バスアクセスフラグ111のセットされているビッ
トのスレーブバス(先行してアクセスの開始されたスレ
ーブバス)のデータをセレクトする。ステップ85で
は、共有バッファ4からマスターデバイスであるCPU
5へのデータ転送制御が行われる。CPUデータバス1
1へ転送するデータとして、共有バッファデータバス1
9のデータをセレクトする。
【0051】ステップ86では、共有バッファアクセス
フラグ117が調べられる。共有バッファアクセスフラ
グ117がセットされていれば、ステップ87へ、クリ
アされている場合はステップ88へ遷移する。ステップ
87では、マスターデバイスであるCPU5から共有バ
ッファ4へのデータ転送制御が行われる。共有バッファ
4へ格納するデータとして、CPUデータバス11のデ
ータをセレクトする。
【0052】ステップ88では、CPU5からスレーブ
デバイスへのデータ転送制御が行われる。バスアクセス
フラグ111のセットされているビットのスレーブバス
(先行してアクセスの開始されたスレーブバス)のデー
タとして、CPUデータバス11のデータをセレクトす
る。ステップ89では、共有バッファ4からスレーブデ
バイスへのデータ転送制御が行われる。バスアクセスフ
ラグ111のセットされているビットのスレーブバス
(先行してアクセスの開始されたスレーブバス)へ転送
するデータとして、共有バッファデータバス19のデー
タをセレクトする。
【0053】また、マスターデータ転送制御部103の
制御フローチャートを図13に示す。マスターデータ転
送制御部103で行われる処理ステップ180〜189
は、ステップ180でバスアクセスフラグ110が、ス
テップ181でリードアクセスフラグ113、ステップ
182とステップ186で共有バッファアクセスフラグ
116が調べられる他は、データ転送制御部102のス
テップ80〜89と同様の処理を行う。
【0054】マスターデータ転送制御部103の異なる
点は、ステップ190,191を有し、それぞれのステ
ップでバスアクセスフラグ111のビットのセットされ
ているスレーブバスについて、アクセス終了フラグ12
4がセットされていれば、それぞれステップ185,1
89に遷移し、クリアされていれば、ステップ180に
遷移することである。
【0055】DMAデータ転送制御部104の制御フロ
ーチャートを図14に示す。まず、ステップ160で
は、バスアクセスフラグ112を調べる。ここでいずれ
かのビットがセットされていれば、DMAデータ転送制
御部104は、ステップ161に遷移してDMAデータ
転送の制御を開始し、どのビットもセットされていない
場合にはステップ160で待機する。
【0056】ステップ161では、リードアクセスフラ
グ115が調べられる。リードアクセスフラグ115が
セットされていれば、ソースへのアクセス要求があった
と判断し、ステップ162へ遷移する。リードアクセス
フラグ114がクリアされている場合は、デスティネー
ションへのアクセスと判断し、ステップ163へ遷移す
る。
【0057】ステップ162では、スレーブデバイスか
ら共有バッファ4へのデータ転送制御が行われる。共有
バッファ4へ転送するデータとして、バスアクセスフラ
グ112のセットされているビットのスレーブバス(先
行してアクセスの開始されたスレーブバス)のデータを
セレクトする。ステップ163では、共有バッファ4か
らスレーブデバイスへのデータ転送制御が行われる。バ
スアクセスフラグ112のセットされているビットのス
レーブバス(先行してアクセスの開始されたスレーブバ
ス)へ転送するデータとして、共有バッファデータバス
19のデータをセレクトする。
【0058】スレーブインターフェース制御部105の
制御フローチャートを図15に示す。ステップ170で
は、アクセス要求フラグ120,121を調べる。ここ
でいずれかのビットがセットされていれば、ステップ1
71に遷移してアービトレーションを行う。どのビット
もセットされていない場合はステップ170で待機す
る。
【0059】ステップ171では、要求を行ったどのマ
スターデバイスへアクセス許可を行うかのアービトレー
ションを行う。アービトレーションポリシーとしては、
具体的にはDMAコントローラ6からの要求をマスター
デバイス(CPU5)に対して常に優先させる方法や、
ラウンドロビンにする方法などが考えられる。ステップ
172では、スレーブデバイスへのアクセス許可を行
う。マスターデバイスへの許可であれば共有バッファア
クセス許可信号122の、DMAコントローラ6に対す
る許可であれば共有バッファアクセス許可信号123の
アクセス許可をするスレーブバスのビットをアサートす
る。
【0060】ステップ173では、スレーブデバイスへ
のアクセスを行う。ここでは、メモリ7のリードアクセ
スならばメモリリードイネーブル信号34、同じくライ
トアクセスならばメモリライトイネーブル信号35、I
/Oデバイス8のリードアクセスならばI/Oリードイ
ネーブル信号38、同じくライトアクセスならばI/O
ライトイネーブル信号39をアサートしてスレーブデバ
イスへのアクセスを行う。
【0061】ステップ174では、アクセスの終了判定
を行う。スレーブデバイスからのメモリアクノレッジ信
号40およびI/Oアクノレッジ信号41をもとにスレ
ーブデバイスから有効なデータが必要なだけ返されたこ
とを知ると、アクセス終了フラグ124のアクセス終了
したスレーブバスのビットをクリアするとともに、バス
アクセスフラグ110,111,112のうちアクセス
終了したスレーブバスのビットがセットされていたもの
の、アクセス終了したスレーブバスのビットをクリアし
て、ステップ170に遷移する。終了と判定されない場
合は、ステップ173に遷移してアクセスを続行する。
【0062】また、スレーブインターフェース制御部1
05は、共有バッファ制御部3に対し、アクセスタイミ
ングを通知するため、バスアクセスフラグ112のセッ
トされたビットのスレーブバス(DMAで用いられるス
レーブバス)、もしくはバスアクセスフラグ110と共
有バッファアクセスフラグ116、バスアクセスフラグ
111と共有バッファアクセスフラグ117で共通して
セットされているビットのスレーブバス(共有バッファ
4との間でデータのやりとりを行うスレーブバス)への
アクセス時に、リードアクセス信号401の出力を、ス
レーブデバイスへのライトアクセス開始の直前サイク
ル、およびバーストライト中に、1回のライトが完了し
たサイクルで行う。また、ライトアクセス信号402
は、スレーブデバイスへのリードアクセスを行って、有
効なデータを読み出すサイクルで出力する。
【0063】バスコントローラ1は、以下に述べる共有
バッファへのアクセス制御を行う共有バッファ制御部3
を持つ。共有バッファ制御部3の制御フローチャートは
図16に、共有バッファ制御部3とバスコントローラ制
御部2および共有バッファ4との接続図を図17に示
す。まず、ステップ301では、共有バッファアクセス
要求信号133,201が調べられ、そのいずれかのビ
ットがアサートされた場合は、共有バッファ4へのアク
セス要求があったと判断して(共有バッファアクセス要
求信号201であればCPU5などのマスターデバイ
ス、共有バッファアクセス要求信号133であればDM
Aコントローラ)ステップ302に遷移し、どのビット
もアサートされない場合はステップ301で待機する。
【0064】ステップ302では、要求を行ったどのマ
スターデバイスへアクセス許可を行うかのアービトレー
ションを行う。共有バッファアクセスフラグ116,1
17を調べ、いずれかのビットがセットされている場合
は、現在共有バッファ4へのアクセス中、もしくは共有
バッファ4のデータがこれから利用される状態であると
判断し、アクセス許可を行わずステップ302で待機す
る。いずれのビットもセットされていない場合は、アー
ビトレーションポリシーにしたがってアービトレーショ
ンを行い、共有バッファアクセス要求信号133,20
1のセットされているビットにあたるマスターデバイス
もしくはDMAコントローラ6に対して許可を行うた
め、ステップ303に遷移する。
【0065】ステップ303では、共有バッファアクセ
ス許可を行う。マスターデバイスへの許可であれば共有
バッファアクセス許可信号202を、DMAコントロー
ラ6に対する許可であれば共有バッファアクセス許可信
号134をアサートする。ステップ304では、共有バ
ッファ4へのアクセスを行う。ここでは、バスコントロ
ーラ制御部2からのリードアクセス信号401およびラ
イトアクセス信号402をもとに、共有バッファ4へ共
有バッファアクセス制御信号14であるリードイネーブ
ル信号410およびライトイネーブル信号411を出力
して共有バッファ4からの共有バッファデータバス19
へのデータ出力および共有バッファデータバス19から
共有バッファ4へのデータ入力制御を行う。
【0066】共有バッファ4は、具体的にはFIFOメ
モリで構成され、リードイネーブル信号410およびラ
イトイネーブル信号411にもとづいて、データ入出力
を行う。FIFOの容量としては、1回のアクセスで転
送される最大バイト数以上であり、アクセスの効率化の
観点からは最大バイト数の2倍であることが望ましい。
【0067】ステップ305では、アクセス終了フラグ
124が調べられ、これがセットされておれば、ステッ
プ301に遷移し、そうでない場合にはステップ305
で待機する。以上のように構成されたこの実施の形態の
バスコントローラ1の動作について説明する。
【0068】バスコントローラ1は、CPU5からのリ
ードアクセス要求に対しては、要求の行われた順番にデ
ータを返す機能を持つ。つまり、CPU5がまずメモリ
7のリードアクセス要求を行い、その後I/Oデバイス
8のリードアクセス要求を行った場合には、CPU5に
はメモリ7のリードデータ、I/Oデバイス8のリード
データの順でデータがCPUデータバス11を介して転
送される。
【0069】CPU5からのリードアクセス要求が、前
回のリードアクセス要求に対応するアクセス中に行われ
た場合には、バスコントローラ制御部2は、CPU5が
アクセスを要求しているデータバスがアクセス中のデー
タバスと一致するかを判断してアクセス開始のタイミン
グを制御する。データバスが一致する場合には、現在の
アクセスが完了するのを待って、次のアクセスを行う。
【0070】CPU5がアクセスを要求しているデータ
バスがアクセス中のデータバスと一致しない場合には、
共有バッファ4へのアクセス状況によって、スレーブデ
バイスへのアクセス開始のタイミングを制御する。共有
バッファ4へアクセス可能な場合には、現在のアクセス
とオーバーラップさせる形でアクセスを開始し、共有バ
ッファ4へアクセスできない場合には、CPU5へのデ
ータ転送完了を待ってアクセスを開始させる。
【0071】まず、データバスが一致する場合の具体例
を、図2のアクセスタイミングチャートで示す。CPU
5は最初のリードアクセス要求を行うため、CPUイン
ターフェース制御信号15の一つであるCPUリードア
クセス要求信号30(負論理)をサイクル0でアサート
し、同様にCPUインターフェース制御信号15の一つ
であるCPUアドレス信号32でメモリ7へのアクセス
であることを示す。CPU5はさらに次のリードアクセ
ス要求を、サイクル2でCPUリードアクセス要求信号
30をアサートして行い、そのアクセス先は前回同様メ
モリ7であり、CPUアドレス信号32でメモリ7への
アクセスであることを示す。メモリ7への最初のアクセ
スは、メモリインターフェース制御信号12の一つであ
るメモリリードイネーブル信号34(負論理)を、バス
コントローラ制御部2がサイクル1でアサートし、メモ
リアドレス信号36を出力することにより開始される。
最初のアクセスによりメモリ7からリードされたデータ
はメモリデータバス17にサイクル4で現われ、CPU
5に対してはCPUデータバス11を介してサイクル4
で転送される。2回目のアクセスは、最初のアクセスが
完了したサイクル5からメモリリードイネーブル信号3
4をアサートして開始し、サイクル8でメモリ7へのア
クセス、およびCPU5へのデータ転送が完了する。
【0072】データバスが一致せず、共有バッファ4へ
アクセス可能な場合の具体例を、図3のアクセスタイミ
ングチャートで示す。CPU5は最初のリードアクセス
要求を、CPUリードアクセス要求信号30をサイクル
0でアサートして行い、CPUアドレス信号32でメモ
リ7へのアクセスであることを示す。CPU5の2回目
のリードアクセス要求はサイクル2で行われ、アクセス
先はI/Oデバイス8であり、CPUアドレス信号32
でI/Oデバイス8であることを示す。バスコントロー
ラ制御部2はサイクル1で、メモリリードイネーブル信
号34をアサートしてメモリ7へのアクセスを開始す
る。さらに、バスコントローラ制御部2は共有バッファ
4へアクセス可能であることを判断して、サイクル3で
I/Oインターフェース制御信号13の一つであるI/
Oリードイネーブル信号38(負論理)をアサートし、
I/Oアクノレッジ信号41を出力してI/Oデバイス
8へのアクセスを開始させる。メモリ7のリードデータ
およびI/Oデバイス8のリードデータはサイクル4
に、それぞれメモリデータバス17およびI/Oデータ
バス18に現われる。サイクル4でメモリ7のリードデ
ータをCPUデータバス11を介してCPU5に転送
し、I/Oデバイス8のリードデータを共有バッファデ
ータバス19を介して共有バッファ4に格納する。そし
て、サイクル5で共有バッファ4に格納されたI/Oデ
バイス8のリードデータをCPUデータバス11を介し
てCPU5に転送する。
【0073】データバスが一致せず、共有バッファ4へ
アクセス可能でない場合の具体例を、図4のアクセスタ
イミングチャートに示す。CPU5からのリードアクセ
ス要求のタイミング、およびメモリ7へのアクセスタイ
ミングは図3の場合と同様であるが、I/Oデバイス8
へのアクセス開始は、メモリ7へのアクセスが完了した
サイクル5からとなり、I/Oデバイス8からCPU5
へのデータ転送はサイクル6で行われることになる。
【0074】図3に示した例のように、共有バッファ4
を利用して異なるスレーブバスへのアクセスを共有バッ
ファ4へのアクセスを利用して、オーバーラップして行
った場合は、アクセス要求からデータ転送に至るまでの
時間を短縮することが可能で、この効果はスレーブデバ
イスへのアクセス時間が長く必要な場合ほど大きい。ま
た、バスコントローラ1は、CPU5からのライトアク
セス要求に対して、現在スレーブバスへのライトデータ
を先行的に受理する機能を持つ。つまり、CPU5がま
ずメモリ7のリードアクセス要求を行い、共有バッファ
4にアクセス可能な場合には、バスコントローラ1は、
ライトアクセスのためのデータをCPU5からCPUデ
ータバス11を介して受理し、メモリデータバス17を
介してメモリ7へのライトアクセスを行う。
【0075】まず、アクセス中のスレーブバスと異なる
バス(メモリデータバス17とI/Oデータバス18の
うちの使用中でない方)にライトリクエストを行い、共
有バッファ4にアクセス可能な場合の具体例を図5のタ
イミングチャートで示す。CPU5は最初にリードアク
セス要求を行うため、CPUリードアクセス要求信号3
0をサイクル0でアサートし、CPUアドレス信号32
でメモリ7へのアクセスであることを示す。CPU5は
さらに次のライトアクセス要求を、サイクル2でCPU
インターフェース制御信号15の一つであるCPUライ
トアクセス要求信号31をアサートして行い、そのアク
セス先はI/Oデバイス8である。また、サイクル2で
CPU5はライトデータをCPUデータバス11を介し
て出力する。バスコントローラ1は共有バッファ4への
アクセスが可能と判断して、CPUインターフェース制
御信号15の一つであるCPUライトアクノレッジ信号
33(負論理)をアサートして、ライトデータを共有バ
ッファ4へ格納する。メモリ7へのアクセスは、サイク
ル1からサイクル4にかけて行われる。つまり、サイク
ル4でメモリ7のリードデータをCPUデータバス11
を介してCPU5に転送する。I/Oデバイス8へのア
クセスは、I/Oインターフェース制御信号13の一つ
であるI/Oライトイネーブル信号39(負論理)を、
バスコントローラ制御部2がサイクル3でアサートし、
I/Oアクノレッジ信号41、およびI/Oデータバス
18からライトデータを出力することにより開始され、
サイクル3で終了する。
【0076】アクセス中のスレーブバスと異なるバスに
ライトリクエストを行い、共有バッファにアクセス可能
でない場合の具体例を図6のタイミングチャートで示
す。図5の場合と異なるのは、CPUライトアクノレッ
ジ信号33がアクセスの完了したサイクル3でアサート
される点である。アクセス中のスレーブバスにライトリ
クエストを行い、共有バッファ4へアクセス可能な場合
の具体例を、図7のアクセスタイミングチャートで示
す。CPU5のリードリクエストはサイクル0で行わ
れ、メモリ7へのリードアクセスはサイクル4で完了す
る。CPU5のメモリ7へのライトリクエストはサイク
ル2で行われ、バスコントローラ1は共有バッファ4へ
のアクセス可能と判断して、CPUインターフェース制
御信号15の一つであるCPUライトアクノレッジ信号
33(負論理)をアサートして、ライトデータを共有バ
ッファ4へ格納する。メモリ7へのライトアクセスは共
有バッファ4のデータを用いて、サイクル5からサイク
ル8で行われる。
【0077】アクセス中のスレーブバスにライトリクエ
ストを行い、共有バッファ4へアクセス可能でない場合
の具体例を、図8のアクセスタイミングチャートで示
す。CPU5のリードリクエストはサイクル0で行わ
れ、メモリ7へのリードアクセスはサイクル4で完了す
る。CPU5のメモリ7へのライトリクエストはサイク
ル2で行われ、バスコントローラ1は共有バッファ4へ
のアクセス可能でない判断して、CPUインターフェー
ス制御信号15の一つであるCPUライトアクノレッジ
信号33をアサートしない。CPU5はCPUライトア
クセス要求信号31をライトアクセスが終了するサイク
ル8までアサートし続け、CPUライトアクノレッジ信
号33がアサートされたサイクル8でアクセス完了を判
断する。
【0078】図6に示した例のように、ライトアクセス
を共有バッファ4へのアクセスを利用して、CPU5が
突き放してしまうことにより、CPU5は次の動作に早
く移ることができる。なお、バスコントローラ1は、図
18に示すようにリードバッファ240,242、スト
アバッファ241,243を持った構成にすることも可
能である。この場合には、リードバッファ240,24
2、ストアバッファ241,243で格納できるサイズ
の転送データについては、共有バッファ4に退避する必
要がないので、マスターデータ転送制御部102の制御
フローチャートは図19のようになる。
【0079】図19の制御フローチャートが図11のも
のと異なるのは、ステップ250,251を有する点で
ある。ステップ250では、リードアクセスの転送デー
タサイズが、リードバッファ240もしくは242のサ
イズで格納可能かを調べる。図18の例では、リードバ
ッファ240,242を1ワード分として、アクセス要
求がバースト転送か否かで格納可能かの判断を行ってい
る。バーストであった場合にはステップ55、そうでな
い場合にはステップ57へ遷移する。
【0080】ステップ251でも同様に、ライトアクセ
スの転送データサイズが、ストアバッファ241もしく
は243のサイズで格納可能かをバースト転送か否かで
判断する。バーストであった場合にはステップ75、そ
うでない場合にはステップ77へ遷移する。また、図2
0に示すようにマスターデバイスであるCPU5と、ス
レーブデバイスであるメモリ260とがデータバスを共
有する構成のシステムにおいては、メモリ260へのア
クセスをバスコントローラ1が一括して行うためには、
CPU5とバスコントローラ1、メモリ260とバスコ
ントローラ1の間のデータ転送を異なる時間に分けて行
わないと、データの衝突が発生する。この場合、共有バ
ッファ4を利用して、データを退避させることによっ
て、CPU5とメモリ260との間のデータ転送が可能
である。マスターデータ転送制御部102の制御フロー
チャートは図21のようになる。
【0081】図21の制御フローチャートが図11のも
のと異なるのは、ステップ270〜275を有する点で
ある。ステップ270ではアドレスデコード結果から、
要求を行ったマスターデバイスと、要求先のスレーブバ
スが一致するかを判断する。一致した場合は、ステップ
271に、一致しない場合はステップ53に遷移する。
【0082】ステップ271では、アクセス要求がバー
スト転送か否かでリードバッファ261に格納可能なデ
ータ転送であるかを判断する。バーストであった場合は
ステップ272に遷移して共有バッファ4へのアクセス
要求を行い、バーストでない場合にはステップ53へ遷
移する。ステップ272では、ステップ59と同様、共
有バッファ4へのアクセス要求とアクセス要求の許可の
判断を行う。アクセスが許可された場合は、ステップ5
7に遷移し、許可されない場合はステップ272で待機
する。
【0083】ステップ273では、ステップ270と同
様アドレスデコード結果から、要求を行ったマスターデ
バイスと、要求先のスレーブバスが一致するかを判断す
る。一致した場合は、ステップ274に、一致しない場
合はステップ73に遷移する。ステップ274では、ア
クセス要求がバースト転送か否かでストアバッファ26
2に格納可能なデータ転送であるかを判断する。バース
トであった場合はステップ275に遷移して共有バッフ
ァ4へのアクセス要求を行い、バーストでない場合には
ステップ73へ遷移する。
【0084】ステップ275では、ステップ75と同
様、共有バッファ4へのアクセス要求とアクセス要求の
許可の判断を行う。アクセスが許可された場合は、ステ
ップ57に遷移し、許可されない場合はステップ275
で待機する。
【0085】
【発明の効果】請求項1記載のバスコントローラによれ
ば、共有バッファをDMAバッファとして利用すること
によって、DMAバッファ以外にストアバッファやリー
ドバッファを持つ場合に比べ、回路規模を小さくする効
果がある。請求項2記載のバスコントローラによれば、
同一のデータバスを共有するマスターデバイスとスレー
ブデバイス間のデータ転送時に、転送されるデータを共
有バッファに退避することにより、マスターデバイスが
スレーブデバイスと直接やりとりすることなく、バスコ
ントローラとのインターフェースだけでデータ転送でき
る効果がある。
【0086】請求項3記載のバスコントローラによれ
ば、バスコントローラが有する共有バッファをリードバ
ッファとして利用することによって、同一のマスターデ
バイスから、異なるスレーブバスへ続けてリードアクセ
ス要求が行われた場合に、後に出された要求に対応する
アクセスを、共有バッファ経由で行うことにより、異な
るスレーブバスへのアクセスを並行して行って、先行す
るアクセスの完了待ちのぺナルティをなくし、アクセス
を効率的にする効果がある。
【0087】請求項4記載のバスコントローラによれ
ば、共有バッファをストアバッファとして利用すること
により、マスターデバイスから、現在アクセス中のスレ
ーブバスへライトアクセス要求を行った場合に、ライト
データを共有バッファに退避することにより、マスター
デバイスがライトデータを受け付けられるまで待機する
ペナルティをなくし、マスターデバイスの処理を効率的
にする効果がある。
【図面の簡単な説明】
【図1】本発明の実施の形態における情報システムの構
成を示すブロック図である。
【図2】CPU5が同一のバスに続けてリード要求を行
った場合のアクセスタイミングを示すタイミングチャー
トである。
【図3】CPU5が異なるバスに続けてリード要求を行
い、共有バッファ4がアクセス可能な場合のアクセスタ
イミングを示すタイミングチャートである。
【図4】CPU5が異なるバスに続けてリード要求を行
い、共有バッファ4がアクセス可能でない場合のアクセ
スタイミングを示すタイミングチャートである。
【図5】CPU5がアクセス中のバスと異なるバスにラ
イト要求を行い、共有バッファ4がアクセス可能な場合
のアクセスタイミングを示すタイミングチャートであ
る。
【図6】CPU5がアクセス中のバスと異なるバスにラ
イト要求を行い、共有バッファ4がアクセス可能でない
場合のアクセスタイミングを示すタイミングチャートで
ある。
【図7】CPU5がアクセス中のバスにライト要求を行
い、共有バッファ4がアクセス可能な場合のアクセスタ
イミングを示すタイミングチャートである。
【図8】CPU5がアクセス中のバスにライト要求を行
い、共有バッファ4がアクセス可能でない場合のアクセ
スタイミングを示すタイミングチャートである。
【図9】バスコントローラ制御部2の構成を示すブロッ
ク図である。
【図10】マスターインターフェース部100の制御フ
ローチャートである。
【図11】DMAコントローラインターフェース部10
1の制御フローチャートである。
【図12】マスターデータ転送制御部102の制御フロ
ーチャートである。
【図13】マスターデータ転送制御部103の制御フロ
ーチャートである。
【図14】DMAデータ転送制御部104の制御フロー
チャートである。
【図15】スレーブインターフェース制御部105の制
御フローチャートである。
【図16】共有バッファ制御部3の制御フローチャート
である。
【図17】共有バッファ制御部3とバスコントローラ制
御部2および共有バッファ4との接続関係を示すブロッ
ク図である。
【図18】本発明の第2の実施の形態における、リード
バッファおよびストアバッファを有する情報システムの
構成を示すブロック図である。
【図19】リードバッファおよびストアバッファを有す
る場合のマスターインターフェース部100の制御フロ
ーチャートである。
【図20】本発明の第3の実施の形態における、CPU
5がメモリ260とデータバスを共有する情報システム
の構成を示すブロック図である。
【図21】CPU5がメモリ260とデータバスを共有
する場合のマスターインターフェース部100の制御フ
ローチャートである。
【図22】従来例における情報システムの構成を示すブ
ロック図である。
【符号の説明】
1 バスコントローラ 2 バスコントローラ制御部 3 共有バッファ制御部 4 共有バッファ 5 CPU 6 DMAコントローラ 11 CPUデータバス 12 メモリインターフェース制御信号 13 I/Oインターフェース制御信号 14 共有バッファアクセス制御信号 15 CPUインターフェース制御信号 16 DMAコントローラインターフェース制御信号 17 メモリデータバス 18 I/Oデータバス 19 共有バッファデータバス 20 共有バッファ制御部インターフェース制御信号 30 CPUリードアクセス要求信号 31 CPUライトアクセス要求信号 32 CPUアドレス信号 33 CPUライトアクノレッジ信号 34 メモリリードイネーブル信号 35 メモリライトイネーブル信号 38 I/Oリードイネーブル信号 39 I/Oライトイネーブル信号 40 メモリアクノレッジ信号 41 I/Oアクノレッジ信号 100 マスターインターフェース部 101 DMAコントローラインターフェース部 102 マスターデータ転送制御部 103 マスターデータ転送制御部 104 DMAデータ転送制御部 105 スレーブインターフェース制御部 110 バスアクセスフラグ 111 バスアクセスフラグ 112 バスアクセスフラグ 113 リードアクセスフラグ 114 リードアクセスフラグ 115 リードアクセスフラグ 116 共有バッファアクセスフラグ 117 共有バッファアクセスフラグ 120 アクセス要求フラグ 121 アクセス要求フラグ 122 アクセス許可フラグ 123 アクセス許可フラグ 124 アクセス終了フラグ 130 ソースアクセス要求信号 131 デスティネーションアクセス要求信号 132 DMAアドレス信号 133 共有バッファアクセス要求信号 134 共有バッファアクセス許可信号 201 共有バッファアクセス要求信号 202 共有バッファアクセス許可信号 240 リードバッファ 241 ストアバッファ 242 リードバッファ 243 ストアバッファ 260 メモリ 261 リードバッファ 262 ストアバッファ 401 リードアクセス信号 402 ライトアクセス信号 410 リードイネーブル信号 411 ライトイネーブル信号

Claims (4)

    【特許請求の範囲】
  1. 【請求項1】 マスターデバイスとスレーブデバイスと
    の間のデータ転送と、スレーブデバイス間のDMA転送
    とに用いられるバスの制御を行うためのバスコントロー
    ラであって、 前記DMA転送時における前記バス上で転送されるデー
    タを一時的に格納するための共有バッファと、 マスターデバイスからのアクセス要求に基づいて、スレ
    ーブデバイスへのアクセスの制御を行い、前記共有バッ
    ファへのデータの格納を要求する共有バッファアクセス
    要求信号を出力するバスコントローラ制御部と、 前記共有バッファアクセス要求信号に基づいて、前記共
    有バッファへのアクセスが可能である場合には、前記バ
    スコントローラ制御部に対し前記共有バッファへのアク
    セスを許可する共有バッファアクセス許可信号を出力
    し、前記共有バッファへのアクセスの制御を行う共有バ
    ッファ制御部とを備えたことを特徴とするバスコントロ
    ーラ。
  2. 【請求項2】 マスターデバイスが、同一のデータバス
    を共有するスレーブデバイスに対してアクセス要求を行
    った場合、バスコントローラ制御部が共有バッファアク
    セス要求信号を出力し、これに対して共有バッファ制御
    部が共有バッファにアクセス可能な場合には、共有バッ
    ファアクセス許可信号を出力し、マスターデバイスとス
    レーブデバイス間で転送されるデータを共有バッファに
    格納することを特徴とする請求項1記載のバスコントロ
    ーラ。
  3. 【請求項3】 マスターデバイスがバスの異なるスレー
    ブデバイスへのリードアクセス要求を続けて行った場合
    に、バスコントローラ制御部が共有バッファアクセス要
    求信号を出力し、これに対して共有バッファ制御部が共
    有バッファにアクセス可能な場合には、共有バッファア
    クセス許可信号を出力し、前記共有バッファアクセス許
    可信号を受けた前記バスコントローラ制御部がバスの異
    なる複数のスレーブデバイスへ並行してアクセスを行
    い、前記共有バッファ制御部がいずれかのスレーブデバ
    イスからのリードデータを前記共有バッファに格納する
    ことを特徴とする請求項1または2記載のバスコントロ
    ーラ。
  4. 【請求項4】 マスターデバイスがライトリクエストを
    行った場合に、バスコントローラ制御部が共有バッファ
    アクセス要求信号を出力し、これに対して共有バッファ
    制御部が共有バッファにアクセス可能な場合には、共有
    バッファアクセス許可信号を出力し、マスターデバイス
    からのライトデータを前記共有バッファに格納すること
    を特徴とする請求項1または2記載のバスコントロー
    ラ。
JP10182334A 1998-06-29 1998-06-29 バスコントローラ Pending JP2000020453A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP10182334A JP2000020453A (ja) 1998-06-29 1998-06-29 バスコントローラ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP10182334A JP2000020453A (ja) 1998-06-29 1998-06-29 バスコントローラ

Publications (1)

Publication Number Publication Date
JP2000020453A true JP2000020453A (ja) 2000-01-21

Family

ID=16116501

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10182334A Pending JP2000020453A (ja) 1998-06-29 1998-06-29 バスコントローラ

Country Status (1)

Country Link
JP (1) JP2000020453A (ja)

Similar Documents

Publication Publication Date Title
JP4737438B2 (ja) 複数の処理ユニットでリソースを共有する情報処理装置
US5586299A (en) Systems and methods for accessing multi-port memories
US6532525B1 (en) Method and apparatus for accessing memory
US20040107265A1 (en) Shared memory data transfer apparatus
US5426737A (en) Direct memory access for data transfer within an I/O device
US6397279B1 (en) Smart retry system that reduces wasted bus transactions associated with master retries
JP2591502B2 (ja) 情報処理システムおよびそのバス調停方式
US7296109B1 (en) Buffer bypass circuit for reducing latency in information transfers to a bus
US5754802A (en) Increasing data transfer efficiency for a read operation in a non-split transaction bus environment by substituting a write operation for the read operation
JP3698324B2 (ja) 直接メモリアクセス制御器およびデータチャンネルへのインターフェース装置を備えたワークステーション
JPH0793274A (ja) データ転送方式及びデータ転送装置
JP2004318628A (ja) 演算処理装置
JP2002149591A (ja) プロセッサ・ローカル・バス・システムでのバス最適化の方法および装置
JP2000020453A (ja) バスコントローラ
JPH09153009A (ja) 階層構成バスのアービトレーション方法
US8239652B2 (en) Data processing system
JP3240863B2 (ja) 調停回路
JP2000215154A (ja) Dmaコントロ―ラ
JP3206656B2 (ja) バス上でのプリフェッチ装置およびプリフェッチ方法
JP2002063130A (ja) バス調停システム
JP2000029823A (ja) バスアクセス制御回路
JP2000029824A (ja) 階層型バスシステムとバス変換装置
JP2790668B2 (ja) データ転送制御方式
JP3458037B2 (ja) スプリットバス制御方式
JP2001188749A (ja) バスコントローラ