(57)【特許請求の範囲】
【請求項１】
論理アドレス信号を出力可能な中央処理装置と、
前記中央処理装置から出力された論理アドレス信号を第１アドレス信号に変換可能なアドレス変換回路と、
前記第１アドレス信号に基づいて前記中央処理装置によってアクセスされ、第２アドレス信号を用いてデータ転送可能なデータ転送制御回路と、
前記中央処理装置及び前記データ転送制御回路からの要求に基づいて前記第１アドレス信号または前記第２アドレス信号を用いて外部バスアクセス動作可能なバス制御回路と、
前記中央処理装置と前記アドレス変換回路とに接続される第１アドレスバスと、
前記アドレス変換回路と前記データ転送回路、および前記バス制御回路とに接続され、前記第１アドレス信号および第２アドレス信号を伝達可能な第２アドレスバスとを含み、
前記データ転送制御回路は、
前記第２アドレス信号の指定を受けずにアクセス可能な第１デバイスと前記第２アドレス信号の指定を受けてアクセス可能な第２デバイスとの間の第１データ転送が可能で、
前記バス制御回路は、
前記第１アドレスによって指定され、第１アイドルウェイト数と第２アイドルウェイト数が前記中央処理装置によって設定されるコントロールレジスタ手段を有し、
前記第１データ転送の後に前記第１アイドルウェイト数で規定されるアイドルウェイトサイクルを挿入し、
前記第２デバイスを前後してアクセスするときアクセスの切り換え時に前記第２アイドルウェイト数で規定されるアイドルウェイトサイクルを挿入するものであることを特徴とするマイクロコンピュータ。
【請求項２】
前記バス制御回路は更に、前記レジスタ手段に、第２デバイスのバスアクセス動作のサイクル数を増やすための内部ウェイトサイクル数が中央処理装置によりアドレスエリア毎に設定され、第２デバイスに対するアクセス動作ではそのアクセスアドレスエリアに対応する内部ウェイトサイクル数で規定される内部ウェイトサイクルを挿入するものであることを特徴とする請求項１記載のマイクロコンピュータ
【請求項３】
アドレスの指定を受けずにアクセス可能な第１デバイスと、
アドレスの指定を受けてアクセス可能な第２デバイスと、
前記第１及び第２デバイスにバスで接続されたマイクロコンピュータとを含み、
前記マイクロコンピュータは、
論理アドレス信号を出力可能な中央処理装置と、
前記中央処理装置から出力された論理アドレス信号をアドレス信号に変換可能なアドレス変換回路と、
前記アドレス信号に基づいて前記中央処理装置によってアクセスされ、アドレス信号を用いてデータ転送可能で、前記第１デバイスと前記第２デバイスとの間のシングルアドレスデータ転送が可能なデータ転送制御回路と、
前記中央処理装置及び前記データ転送制御回路からの要求に基づいて前記第１デバイスと前記第２デバイスとに対する外部バスアクセス動作を制御可能なバス制御回路と、
前記中央処理装置と前記アドレス変換回路とに接続され、中央処理装置によって出力された論理アドレス信号を伝達可能な第１アドレスバスと、
前記アドレス変換回路と前記データ転送回路、および前記バス制御回路とに接続され、前記アドレス変換回路によってアドレス変換されたアドレス信号と前記データ転送制御回路によって出力されたアドレス信号とを伝達可能な第２アドレスバスとを含み、
前記バス制御回路は、
前記アドレス変換回路で変換されたアドレス信号によって指定され、第１アイドルウェイト数と第２アイドルウェイト数が前記中央処理装置によって設定されるコントロールレジスタ手段を有し、
前記データ転送制御回路による前記第１デバイスと第２デバイスとの間のシングルアドレスデータ転送の後に前記第１アイドルウェイト数で規定されるアイドルウェイトサイクルを挿入し、
前記第２デバイスを前後してアクセスするときアクセスの切り換え時に前記第２アイドルウェイト数で規定されるアイドルウェイトサイクルを挿入するものであることを特徴とするデータ処理システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、バス上でのデータ競合回避のためのアイドルウェイトサイクルの挿入技術に関し、例えばＤＭＡＣ（Direct Memory Access Controller：ダイレクトメモリアクセスコントローラ）を有するマイクロコンピュータ、特にそのバスステートコントローラに適用して有効な技術に関するものである。
【０００２】
【従来の技術】
マイクロコンピュータによるデータ転送若しくはアクセス対象とされるデバイスは、その回路構成に応じて、データ入力又は出力動作が確定するまでに要する時間に差が有る。マイクロコンピュータによるバスアクセス動作のバスサイクル数（バスアクセス動作用の同期クロック信号のサイクル数）の基準に対して、動作速度の遅いデバイスには、内部ウェイトサイクルを挿入して、遅いデバイスが入力動作又は出力動作を確定するまでバスサイクル動作を維持させることができる。
【０００３】
近年、マイクロコンピュータシステムの外部メモリバスは、動作周波数が著しく高くなってきた。このとき、動作速度の低速なデバイスの場合、その読み出し動作を終了させても、出力回路の高出力インピーダンス状態が達成されるまでに少なからず時間を要する。したがって、低速デバイスから高速メモリバスへのデータ読み出しを完了しても、高速バスサイクルに対して出力動作の完了が間に合わず、バス上で次のアクセスデータと衝突する虞がある。これを防止するために、次のアクセスを起動する際にバス上でデータが衝突する可能性がある場合には、次のアクセスサイクルを起動する前にアイドルウェイトサイクルを挿入して、データの衝突を回避することができる。このような技術について記載された文献の例として、ＳＨ２ユーザーズマニュアル（株式会社日立製作所、６年９月発行）の第１８４頁がある。
【０００４】
【発明が解決しようとする課題】
上記文献に代表されるように、従来のバスステートコントローラではアドレスエリア毎に、バスサイクルの内部ウェイト及び前記アイドルウェイトの設定ができるに過ぎなかった。すなわち、マイクロコンピュータは、アドレスの指定を受けてアクセス可能なデバイス（メモリマップドデバイスと記す）とアドレスの指定を受けずにアクセス可能なデバイス（Ｉ／Ｏデバイスと記す）とに対してアクセスを行なうが、従来、アイドルウェイトの設定はメモリマップドデバイスに対してアドレスエリア毎に行なうことができるだけであった。
【０００５】
このため、読み出し動作終了後の出力回路の高出力インピーダンス状態の達成が遅れるようなＩ／Ｏデバイスに対してメモリマップドデバイスとの間でＤＭＡＣによるシングルアドレスモードのデータ転送を行なう場合、Ｉ／Ｏデバイスにはアイドルウェイトを設定できないので、必要なアイドルウェイトをメモリデバイスに設定しなければならない。例えばメモリマップドデバイスに必要なアイドルウェイト数が１サイクルであり、Ｉ／Ｏデバイスに必要なアイドルウェイト数が３サイクルである場合、上記シングルアドレスのＤＭＡ転送では、メモリマップドデバイスにアイドルウェイト数３を設定しなければならない。これによって、上記シングルアドレスのＤＭＡ転送に続けて、別のメモリマップドデバイスのアクセスが行なわれても、データバス上で、当該別のメモリマップドデバイスのアクセスデータと低速な前記Ｉ／Ｏデバイスの出力データとの衝突は回避される。
【０００６】
しかしながら、上記シングルアドレスのＤＭＡ転送の後、メモリマップドデバイスに対するリード・ライト動作を連続させ、或いは、他のアドレスエリアのメモリマップドデバイスをアクセスする場合に、アイドルウェイトが３サイクル挿入され、本来必要なアイドルウェイト数に対して２サイクル余計なアイドルウェイトが挿入され、メモリマップドデバイスのアクセスが遅くなってしまうということが本発明者によって明らかにされた。
【０００７】
本発明の目的はメモリマップドデバイスのアクセスにアイドルウェイトが不所望に挿入されることを防止できるマイクロコンピュータを提供することにある。更に詳しくは、シングルアドレスモードによるダイレクトメモリアクセスの後のメモリマップドデバイスに対するアクセスにアイドルウェイトが不所望に挿入されないにすることにある。
【０００８】
本発明の別の目的は、低速なＩ／Ｏデバイスと高速なメモリマップドデバイスが混在されるデータ処理システムにおいてメモリマップドデバイスのアクセスが不所望に遅くなるのを防止することにある。
【０００９】
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
【００１０】
【課題を解決するための手段】
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。
【００１１】
すなわち、アドレスの指定を受けずにアクセス可能なＩ／Ｏデバイスとしての第１デバイス（１００）のアクセスに対しては第１アイドルウェイト数（ＤＩＷ）を、アドレスの指定を受けてアクセス可能なメモリマップドデバイスとしての第２デバイス（２００）のアクセスに対しては第２アイドルウェイト数（ＥＩＷ）を設定可能にし、第１デバイスと第２デバイスとの間のシングルアドレスモードによるデータ転送に続けて第２デバイスをアクセスするときは、その前に前記第１アイドルウェイト数によって規定されるアイドルウェイトサイクルを挿入し、更にその後の第２デバイスに対する連続的なアクセスに際しては第２アイドルウェイト数によって規定されるアイドルウェイトサイクルを挿入する。例えば第２デバイスに必要なアイドルウェイト数が１サイクルであり、第１デバイスに必要なアイドルウェイト数が３サイクルである場合、上記シングルアドレスのダイレクトメモリアクセス転送が終わって第２デバイスのアクセスが開始されるまでに第１アイドルウェイト数によって規定される３サイクルのアイドルウェイトサイクルが挿入されるが、更に続く第２デバイスのアクセスではアイドルウェイトサイクルは第２アイドルウェイト数によって規定され、１サイクルで済む。したがって、従来のように、第２デバイスにしかアイドルウェイト数を設定できない場合に、シングルアドレスモードによるダイレクトメモリアクセスの後に連続する第２デバイスのアクセスが遅くなるという事態を解消することができる。
【００１２】
本願発明によるマイクロコンピュータを更に更に詳しく説明すると、第１の観点によるマイクロコンピュータは、アドレスの指定を受けずにアクセス可能な第１デバイスとアドレスの指定を受けてアクセス可能な第２デバイスとの間のシングルアドレスデータ転送が可能なダイレクトメモリアクセス制御手段と、中央処理装置と、前記中央処理装置及び前記ダイレクトメモリアクセス制御手段からの要求に基づいて前記第１デバイスと前記第２デバイスとに対する外部バスアクセス動作を制御可能なバスステートコントローラとを含んで半導体集積回路化されている。そして、前記バスステートコントローラは、前記ダイレクトメモリアクセス制御手段による前記第１デバイスと第２デバイスとの間のシングルアドレスデータ転送の後に前記第１アイドルウェイト数で規定されるアイドルウェイトサイクルを挿入し、前記第２デバイスを前後してアクセスするときアクセスの切り換え時に前記第２アイドルウェイト数で規定されるアイドルウェイトサイクルを挿入する。
【００１３】
本発明によるデータ処理システムは、アドレスの指定を受けずにアクセス可能な第１デバイスと、アドレスの指定を受けてアクセス可能な第２デバイスと、前記第１及び第２デバイスにバスで接続されたマイクロコンピュータとを含み、前記マイクロコンピュータは、第１アイドルウェイト数と第２アイドルウェイト数が前記中央処理装置によって設定されるコントロールレジスタ手段を有し、前記第１デバイスと第２デバイスを並列的にアクセスした後、第２デバイスをアクセスするとき当該アクセスを開始する前に前記第１アイドルウェイト数で規定されるアイドルウェイトサイクルを挿入し、前記第２デバイスを前後してアクセスするときアクセスの切り換え時に前記第２アイドルウェイト数で規定されるアイドルウェイトサイクルを挿入する。
【００１４】
【発明の実施の形態】
《マイクロコンピュータ》
図２には本発明の一例に係るマイクロコンピュータが示される。同図に示されるマイクロコンピュータ１は、特に制限されないが、単結晶シリコンのようなの1個の半導体基板に集積回路化されて構成される。マイクロコンピュータ１は浮動小数点ユニット（ＦＰＵとも称する）２を持つ。更に、マイクロコンピュータ１は、整数を操作することができる中央処理装置（ＣＰＵとも称する）３を備える。マイクロコンピュータ１は、特に制限されないが、１６ビット固定長命令セットを備えた３２ビットＲＩＳＣ（Reduced Instruction Set Computer：縮小命令セットコンピュータ）アーキテクチャを有する。
【００１５】
図２において参照符号４で示されるものはアドレス変換・キャッシュユニット（ＣＣＮ）である。ＣＰＵ３による命令アクセスとデータアクセスを並列化できるように、アドレス変換・キャッシュユニット４は、命令用の命令アドレス変換バッファ（命令ＴＬＢとも称する）４０と、データ用のユニファイドアドレス変換バッファ（ユニファイドＴＬＢとも称する）４１を別々に持ち、また、命令キャッシュメモリ４２とデータキャッシュメモリ４３も夫々個別化されている。キャッシュ・アドレス変換バッファコントローラ（キャッシュＴＬＢコントローラとも称する）４４はアドレス変換・キャッシュユニット４を全体的に制御する。
【００１６】
図２において参照符号５で示されるものはバスステートコントローラであり、３２ビットのデータバス５０及び２９ビットのアドレスバス５１を介して前記アドレス変換・キャッシュユニット４に接続されている。このバスステートコントローラ５にはデータバス５４及びアドレスバス５５を介してＤＭＡＣ８が接続されている。
【００１７】
マイクロコンピュータ１において前記ＣＰＵ３及びＤＭＡＣ８がバスマスタモジュールを構成する。マイクロコンピュータ１による外部アクセスは、64ビットのデータバス５２及びアドレスバス５３を介して前記バスステートコントローラ５に接続された外部バスインタフェース回路（ＰＡＤ）６で行う。外部バスインタフェース回路６は外部データバス６０及び外部アドレスバス６１に接続される。
【００１８】
マイクロコンピュータ１は、16ビットの周辺データバス５６及び周辺アドレスバス５７に接続された内蔵周辺回路として、クロックパルスジェネレータ（ＣＰＧとも称する）７０、割り込み制御回路７１、シリアルコミュニケーションインタフェースコントローラ（ＳＣＩ１，ＳＣＩ２）７２、リアルタイムクロック回路７３及びタイマ７４を有する。それら周辺回路は前記バスステートコントローラ５を介してＣＰＵ３又はＤＭＡＣ８によってアクセスされる。
【００１９】
前記ＤＭＡＣ８は、例えば４個のデータ転送チャネルを有し、各データ転送チャネル毎に、転送元アドレスが設定されるソースアドレスレジスタ、転送先アドレスが設定されるディスティネーションアドレスレジスタ、転送回数を計数するためのトランスファカウントレジスタ、及びデータ転送制御態様等が設定されるチャネルコントロールレジスタを有する。前記レジスタに対するデータ転送制御情報の初期設定はＣＰＵ３等が行なう。ＤＭＡＣ８の制御部は、マイクロコンピュータ１の外部からのデータ転送要求ＤＲＥＱ、マイクロコンピュータ内部の周辺回路（タイマ７４など）からのデータ転送要求ＰＤＲＥＱ、又はＣＰＵからのデータ転送要求があったとき、チャネルコントロールレジスタのチャネルイネーブルビットなどを参照して、そのデータ転送要求に応答して起動すべきデータ転送チャネルが動作可能かを判定する。更に、データ転送要求が競合する場合には予め決められている優先順位に従って、起動すべき一つのデータ転送チャネルを判定する。データ転送要求に応答すべき一つのデータ転送チャネルを決定すると、バスステートコントローラ５に対してバス権要求信号ＢＲＥＱをアサートしてバス権を要求する。バスステートコントローラ５がバス権承認信号ＢＡＣＫをアサートすると、これによってＤＭＡＣ８はバス権を獲得し、ＤＭＡＣ８は、データ転送要求に応答するデータ転送制御をバスステートコントローラ５を介して行う。バスステートコントローラ５は、ＤＭＡＣ８から供給されるアドレス信号のアドレスエリアなどに応じたメモリサイクル数でバスサイクルを起動する。
【００２０】
ＤＭＡＣ８は、デュアルアドレスモードとシングルアドレスモードのデータ転送モードを有する。双方の動作モードは、よく知られているように、デュアルアドレスモードは転送先及び転送元の双方のデバイスにアドレスを指定してデータ転送を行なう動作であり、シングルアドレスモードは転送先又は転送元の一方のデバイスだけアドレス指定を行なってデータ転送を行なう動作である。前者はメモリマップドデバイス同士のデータ転送であり、後者はメモリマップドデバイスとＩ／Ｏデバイスとの間のデータ転送である。
【００２１】
前記バスステートコントローラ５は、ＣＰＵ３やＤＭＡＣ８によるアクセス対象とされる回路のアドレスエリアに応じて、アクセスデータサイズ、アクセスタイム、後述する内部ウェイトステート数及びアイドルウェイトステート数を決定し、周辺バスバス５６，５７、そして外部バス６０，６１に対するバスアクセスを制御する。更にバスステートコントローラ５は、キャッシュＴＬＢコントローラ４４及びＤＭＡＣ８からのバス使用要求の競合を調停したりする。バスステートコントローラ５はデータバッファ５８を有する。データバッファ５８は、内部バス５０，５１、周辺バス５６，５７、外部バス６０，６１に接続される回路の動作速度の差を吸収するために転送データを一時的にラッチする。更に、ＤＭＡＣ８によるデータ転送制御では、ＤＭＡＣ８はデータバッファ５８にラッチされたデータを採り込まず、データバッファ５８から転送先にデータを転送し、ＤＭＡＣ８とデータバッファ５８との間の無駄なデータ転送を省くようにデータ転送を行なう。
【００２２】
前記ＣＰＵ３は、命令をフェッチするとき３２ビットの命令アドレスバス３０に命令アドレスを出力し、命令データバス３１に出力された命令をフェッチする。また、ＣＰＵ３は、３２ビットのデータアドレスバス３２にデータアドレスを出力し、３２ビットのデータバス３３を介してデータのリード（ロード）を行い、３２ビットのデータバス３４を介してデータのライト（ストア）を行う。前記命令アドレス及びデータアドレスは論理アドレスである。
【００２３】
前記ＦＰＵ２は、特に制限されないが、データキャッシュメモリ４２などをアクセスするためのメモリアドレシング能力を備えていない。ＣＰＵ３がＦＰＵ２に代わってデータをアクセスするためのアドレシング動作を行う。これは、ＦＰＵ２のメモリアドレシング回路の必要性を取り除いてチップ面積を節約するためである。ＦＰＵ２へのデータのロードは３２ビットのデータバス３３と３２ビットのデータバス３５を介して行い、ＦＰＵ２からのデータのストアは６４ビットのデータバス３６を介して行う。ＦＰＵ２からＣＰＵ３へのデータ転送は前記６４ビットデータバス３６の下位３２ビットを用いて行われる。
【００２４】
ＣＰＵ３はＦＰＵ２のためにデータフェッチを行なうだけでなく、ＦＰＵ２のための浮動小数点命令を含む全ての命令をフェッチする。ＣＰＵ３がフェッチした浮動小数点命令は３２ビットのデータバス３４を介してＣＰＵ３からＦＰＵ２に与えられる。
【００２５】
マイクロコンピュータ１は、特に制限されないが、３２ビットの仮想アドレスで規定される仮想アドレス空間と２９ビットの物理アドレスで規定される物理アドレス空間を扱う。仮想アドレスを物理アドレスに変換するためのアドレス変換情報は仮想ページ番号とそれに対応される物理ページ番号を含んでいる。アドレス変換テーブルはマイクロコンピュータ１の図示を省略する外部メモリに形成される。図示を省略するアドレス変換テーブルのアドレス変換情報のうち、最近利用されたものが前記命令ＴＬＢ４０とユニファイドＴＬＢ４１に格納されることになる。その制御は、例えばマイクロコンピュータ１のオペレーティングシステムが行う。
【００２６】
前記データ用のユニファイドＴＬＢ４１はデータ及び命令のアドレス変換情報を最大６４エントリ格納する。このユニファイドＴＬＢ４１は、データフェッチのためにＣＰＵ３がデータアドレスバス３２に出力する仮想アドレスの仮想ページ番号に応ずる物理ページ番号をアドレス変換情報から連想検索して、その仮想アドレスを物理アドレスに変換する。
【００２７】
前記命令用の命令ＴＬＢ４０は命令専用のアドレス変換情報を最大４エントリ格納する。特に命令ＴＬＢ４０が保有するエントリは、ユニファイドＴＬＢ４１が保有する命令アドレスのアドレス変換情報の一部とされる。すなわち、連想検索により命令ＴＬＢ４０に目的とするアドレス変換情報がないことが分かると、そのアドレス変換情報はユニファイドＴＬＢ４１から命令ＴＬＢ４０へ供給される。この命令ＴＬＢ４０は、命令フェッチのためにＣＰＵ３が命令アドレスバス３０に出力する仮想アドレスの仮想ページ番号に応ずる物理ページ番号をアドレス変換情報から連想検索する。検索の結果、目的とするアドレス変換情報がある場合（ＴＬＢヒット）、そのアドレス変換情報を用いて、当該仮想アドレスを物理アドレスに変換する。前記検索の結果、目的とするアドレス変換情報がない場合（ＴＬＢミス）、前記ユニファイドＴＬＢ４１から目的とするアドレス変換情報を得るための動作をキャッシュＴＬＢコントローラ４４が制御する。
【００２８】
前記データキャッシュメモリ４３は、データフェッチに際してユニファイドＴＬＢ４１で変換された物理アドレスを受け取り、これに基づいてキャッシュエントリの連想検索を行う。検索結果がリードヒットであれば、ヒットに係るキャッシュラインからその物理アドレスに応ずるデータがデータバス３３又は３５に出力される。検索結果がリードミスであれば、ミスに係るデータを含む１キャッシュライン分のデータがバスステートコントローラ５を介して図示を省略する外部メモリから読み込まれて、キャッシュフィルが行われる。これによってキャッシュミスに係るデータが前記バス３３又は３５に読出される。検索結果がライトヒットした場合、キャッシュ動作モードがコピーバックモードならばヒットしたエントリにデータを書き込み、当該エントリのダーティービットをセットする。セット状態のダーティービットにより外部メモリのデータとの不整合状態が分かり、前記キャッシュフィル動作で当該ダーティーなキャッシュエントリがキャッシュメモリから追い出されるとき、外部メモリへの書き戻しが行われる。ライトスルーモードではヒットしたエントリにデータを書き込むと共に外部メモリへのデータの書込みも併せて行われる。検索結果がライトミスである場合、コピーバックモードならキャッシュフィルを行うと共にダーティービットをセットしてタグアドレスを更新し、フィルを行ったキャッシュラインにデータを書き込む。ライトスルーモードの場合には外部メモリに対してのみ書込みを行う。
【００２９】
前記命令キャッシュメモリ４２は、命令フェッチに際して命令ＴＬＢ４０で変換された物理アドレスを受け取り、これに基づいてキャッシュエントリの連想検索を行う。検索結果がリードヒットであれば、ヒットに係るキャッシュラインからその物理アドレスに応ずる命令が命令データバス３１に出力される。検索結果がリードミスであれば、ミスに係る命令を含む１キャッシュライン分のデータがバスステートコントローラ５を介して図示を省略する外部メモリから読み込まれて、キャッシュフィルが行われる。これによってミスに係る命令が命令データバス３１を介してＣＰＵ３に与えられる。
【００３０】
前記命令ＴＬＢ４０、ユニファイドＴＬＢ４１及びキャッシュＴＬＢコントローラ４４はメモリマネージメントユニットを構成する。このメモリマネージメントユニットは、特権モード及びユーザモードの夫々において、仮想アドレス空間へのアクセス権を設定して、記憶保護を行うことができる。例えばアドレス変換情報は仮想アドレスページ番号毎に保護キーデータを有する。保護キーデータはページのアクセス権をコードで表した２ビットのデータであり、特権モードでのみ読出し可能、特権モードで読出し及び書込み可能、特権及びユーザモードの双方で読み出しのみ可能、そして、特権モード及びユーザモードの双方で読出し及び書込み可能の何れかのアクセス権が設定可能にされる。実際のアクセスタイプが前記保護キーデータで設定されたアクセス権に違反する場合には、ＴＬＢ保護違反例外が発生される。ＴＬＢ保護違反例外が発生された場合、例えば、その保護違反を例外処理にて解決した後、例外処理からの復帰命令を実行して、中断された通常処理命令を再実行することになる。
【００３１】
《バスステートコントローラ》
図１にはバスステートコントローラ５の詳細な一例が示されている。バスステートコントローラ５は、データバッファ５８を介してデータの入出力を行ない、アドレス制御部５０８からアドレス信号を出力し、ストローブ生成回路５０７から代表的に示されたデータアクノリッジ信号ＤＡＣＫ、エリア選択信号ＣＳ、リード信号ＲＤ，ライトイネーブル信号ＷＥ等のストローブ信号を出力する。前記エリア選択信号ＣＳ、リード信号ＲＤ，ライトイネーブル信号ＷＥ等のストローブ信号は、マイクロコンピュータ１の外部に配置されたメモリなどのメモリマップドデバイスに対するアクセス制御信号とされる。データアクノリッジ信号ＤＡＣＫは、プロトコルコントローラなどのＩ／Ｏデバイスに対するデータストローブ信号とされる。例えば、Ｉ／Ｏデバイスがデータ転送要求信号ＤＲＥＱをアサートしたとき、Ｉ／Ｏデバイスはデータアクノリッジ信号ＤＡＣＫのアサートを待ってデータ入力動作又はデータ出力動作を行なう。
【００３２】
バスステートコントローラ５は、コントロールレジスタ５０１に設定された制御データに従ってバスアクセスサイクルを制御する。コントロールレジスタ５０１は、アクセスデータサイズＳＺ、エリア内部ウェイト数ＩＴＷ、エリアアイドルウェイト数ＥＩＷ等の制御情報の設定領域をアドレスエリア毎に有し、更に、Ｉ／Ｏデバイス毎にデバイスアイドルウェイト数ＤＩＥの設定領域を有する。前記コントロールレジスタ５０１に対する制御情報の設定は、ＣＰＵ３からＣＣＮ４を介して供給されるレジスタアドレスをリクエスト制御部５００が判定し、その判定結果に従って、レジスタ制御部５０３が、データバッファ５８を介して供給される制御情報をコントロールレジスタに５０１に書込むことによって行なわれる。
【００３３】
ＣＣＮ４は前記リクエスト制御部５００にリクエスト信号ＲＥＱをアサートすることによってバスアクセスを要求する。その要求に応じたリードデータがデータバッファ５８からＣＣＮ４に供給されるとき、或いはその要求に応じたライトデータがデータバッファ５８から出力されたとき、リクエスト制御部５００はレディー信号ＲＤＹをＣＣＮ４にアサートする。このとき必要なアドレス情報はバス５１を介してリクエスト制御部５００に与えられる。
【００３４】
ＤＭＡＣ８は前記リクエスト制御部５００にバスリクエスト信号ＢＲＥＱをアサートすることによってバスアクセスを要求し、バスアクノリッジ信号ＢＡＣＫによりバス権を獲得した後、バス５５などを介してリクエスト制御部５００にアドレス情報を等を与える。
【００３５】
リクエスト制御部５００は、ＣＣＮ４又はＤＭＡＣ８から与えられるアドレス情報を解読することによってアクセスエリアを判定し、判定されたアクセスエリアに対応する前記エリアアイドルウェイト数ＥＩＷ、エリア内部ウェイト数ＩＴＷ、及びアクセスデータサイズＳＺなどの格納領域をレジスタ制御部５０３で選択させ、外部バス制御部５０４に供給させる。外部バス制御部５０４は、エリアアイドルウェイト数ＥＩＷ、エリア内部ウェイト数ＩＴＷ、及びアクセスデータサイズＳＺ等に従って、アドレス制御部５０８からのアドレス出力動作、ストローブ出力生成部５０７によるストローブ信号ＣＳ，ＲＤ，ＷＥの出力動作、データ制御部５０６によるデータバッファ５８のデータ出力又は入力動作を制御する。
【００３６】
ＤＭＡＣ８で起動されたデータ転送チャネルの動作モードがシングルアドレスモードに指定されているとき、当該動作モードを表す信号５２０がリクエスト制御部５００に与えられ、外部バス制御部５０４を介してメモリマップドデバイスに対するアドレス指定のバスアクセスサイクルが起動されるとき、ストローブ出力生成回路５０７にデータアクノリッジ信号ＤＡＣＫをアサートさせる。これによって、ＤＭＡＣ８がシングルアドレスモードでデータ転送を行なうとき、メモリマップドデバイスに対するアドレス指定のアクセスに並行して、データアクノリッジ信号ＤＡＣＫを受けるＩ／Ｏデバイスは、入力動作又は出力動作を行なうことができる。
【００３７】
ここで、前記デバイスアイドルウェイト数ＤＩＷ及びエリアアイドルウェイト数ＥＩＷに基づいた外部バス制御部５０４によるバスアクセス制御内容を詳述する。前記信号５２０でＤＭＡＣ８によるシングルアドレスモードであることが外部バス制御部５０４に通知されたとき、外部バス制御部５０４は、当該シングルアドレスモードによるデータ転送動作を終了した後、続いて次のバスアクセスサイクルの起動が要求されている場合、デバイスアイドルウェイト数ＤＩＷで規定されるアイドルウェイトサイクルを挿入した後に、当該次のバスアクセスサイクルを起動する。また、前記シングルアドレスモードによるバスアクセス以外のメモリマップドデバイスに対するバスアクセスサイクルが、同一アドレスエリア内でリード動作からライト動作に切り換えられるとき、アドレスエリアが切り換えられるとき、当該アクセスの切り換え時に前記エリアアイドルウェイト数ＥＩＷ数で規定されるアイドルウェイトサイクルを挿入して、次のバスアクセスサイクルを開始する。尚、アドレスエリアが切り換えられるときにアイドルウェイトサイクルを挿入するのは、低速デバイスのエリアから高速デバイスのエリアにアクセスエリアが変更されたとき自動的にデータ衝突の虞を回避可能にするためである。
【００３８】
次にアイドルウェイトサイクルの挿入動作の一例を説明する。図３には前記マイクロコンピュータ１を用いたデータ処理システムの一例が示される。１００で示されるものはＩ／Ｏデバイスであり、ＦＩＦＯ（First In First Out：ファースト・イン・ファースト・アウト）バッファ等のように外部からアドレスを指定する必要の無い記憶領域を有し、当該記憶領域がデータバス６０にインタフェースされる。このＩ／Ｏデバイス１００は、例えば、通信用Ｉ／Ｏ、プロトコルコントロールＩ／Ｏなどの半導体デバイスとされる。図３において２００で示されるものはメモリマップドデバイスであり、例えば半導体メモリのようなデバイスである。
【００３９】
図４にはシングルアドレスモードによるデータ転送（シングルアドレスＤＭＡ転送）に続けてメモリマップドデバイスに対するアクセスが続く場合の動作タイミングの一例が示される。図４に示される例では、内部ウェイトサイクルが挿入されないときのバスアクセスサイクルはシステムクロック信号の２サイクル（Ｔ１，Ｔ２）とされ、内部ウェイトサイクルは挿入されないものとする。
【００４０】
先ず、シングルアドレスＤＭＡ転送動作のためのバスサイクル（ＢＳ１）が起動される。この動作は、メモリマップドデバイス２００に対するライト動作と、Ｉ／Ｏデバイス１００の出力動作が並行に行なわれる。シングルアドレスＤＭＡ転送動作であるから、当該ＤＭＡ転送後、デバイスアイドルウェイト数ＤＩＷ（例えば３）で規定されるアイドルウェイトサイクル（Ｉ１，Ｉ２，Ｉ３）ＩＷＡＩＴ１が挿入されている。この間、データバス上には、アクセスが終了したにも拘わらず、Ｉ／Ｏデバイス１００の出力バッファが高出力インピーダンス状態を確定するのに時間を要し、アイドルウェイトサイクルＩＷＡＩＴ１の期間において、データバス上には不所望なデータが残っている。次のメモリマップドデバイスに対するバスサイクルＢＳ２はアイドルウェイトサイクルＩＷＡＩＴ１の後であるから、バスサイクルＢＳ１終了後のデータと衝突を生じない。
【００４１】
バスサイクルＢＳ２はアドレスエリア１のメモリマップドデバイスに対するものであり、その次のバスサイクルＢＳ３はアドレスエリアが変化される。このとき、バスサイクルＢ２とバスサイクルＢ３との間には、エリアアイドルウェイト数ＥＩＷ（例えば１）によって決定されるアイドルウェイトサイクル（Ｉ１）ＩＷＡＩＴ２が１サイクル挿入される。その次のバスサイクルＢＳ４は直前と同じアドレスエリア２に対するものだから、アクセス動作の切り替わり目にはアイドルウェイトサイクルは挿入されない。
【００４２】
図５には、Ｉ／Ｏデバイス１００のアイドルウェイト数を設定できずメモリマップドデバイス２００のアイドルウェイトで対処する従来のバスステートコントローラにおける動作を比較例として示す。Ｉ／Ｏデバイスに対してメモリマップドデバイスとの間でＤＭＡＣによるシングルアドレスモードのデータ転送を行なうとき、Ｉ／Ｏデバイスにはアイドルウェイトを設定できないので、必要なアイドルウェイトをメモリマップドデバイスに設定しなければならない。例えば図４の場合と同様に、メモリマップドデバイスに必要なアイドルウェイト数が１サイクルであり、Ｉ／Ｏデバイスに必要なアイドルウェイト数が３サイクルである場合、上記シングルアドレスＤＭＡ転送では、メモリマップドデバイスにアイドルウェイト数３を設定しなければならない。これによって、バスサイクルＢＳ１でシングルアドレスＤＭＡ転送を行ない、これに続けて、別のメモリマップドデバイスのアクセスが行なわれても（ＢＳ２）、データバス上で、当該別のメモリマップドデバイスのアクセスデータと低速な前記Ｉ／Ｏデバイスの出力データとの衝突は回避される。しかしながら、上記シングルアドレスＤＭＡ転送の後、メモリマップドデバイスに対するリード・ライト動作を連続させ、或いは、他のアドレスエリアのメモリマップドデバイスをアクセスする場合に、当該バスサイクルＢＳ３の前に、やはり同じくアイドルウェイトが３サイクル挿入され、本来必要なアイドルウェイト数に対して２サイクル余計なアイドルウェイトが挿入される。図４のバスサイクルＢＳ３と図５のバスサイクルＢＳ３を比べればその差は明らかであり、バスステートコントローラ５は、メモリマップドデバイス２００のアクセスが遅くなる事態を阻止することができ、外部デバイスのアクセスを高速化することができる。
【００４３】
以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
【００４４】
例えば、マイクロコンピュータはアドレス変換機能やキャッシュメモリを備えなくてもよい。また、マイクロコンピュータは周辺回路を搭載していなくてもよい。また、Ｉ／Ｏデバイスに対して入力動作又は出力動作の指示を与える信号はデータアクノリッジ信号に限定されない。
【００４５】
【発明の効果】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記の通りである。
【００４６】
すなわち、Ｉ／Ｏデバイスとしての第１デバイスとメモリマップドデバイスとしての第２デバイスの夫々に対してアイドルウェイト数を設定可能にし、シングルアドレスモードによるデータ転送の後には低速のＩ／Ｏデバイス固有のアイドルウェートを挿入するが、それに続いてメモリマップドデバイスを連続的にアクセスするときは高速のメモリマップドデバイスに固有のアイドルウェイトサイクルを挿入可能であるから、従来のように、メモリマップドデバイスに対するアクセス時に余計にアイドルウェイトサイクルが挿入されるのを阻止することができる。
【００４７】
したがって、低速なＩ／Ｏデバイスと高速なメモリマップドデバイスが混在されるデータ処理システムにおいてメモリマップドデバイスのアクセスが不所望に遅くなるのを防止でき、データ処理効率を向上させることができる。
【図面の簡単な説明】
【図１】バスステートコントローラの詳細な一例を示すブロック図である。
【図２】本発明の一例に係るマイクロコンピュータのブロック図である。
【図３】図２のマイクロコンピュータを用いたデータ処理システムの一例を示すブロック図である。
【図４】シングルアドレスＤＭＡ転送に続けてメモリマップドデバイスに対するアクセスが続く場合の動作の一例を示すタイミングチャートである。
【図５】Ｉ／Ｏデバイスのアイドルウェイト数を設定できない従来のバスステートコントローラにおいてシングルアドレスＤＭＡ転送に続けてメモリマップドデバイスに対するアクセスが続く場合の動作の比較例を示すタイミングチャートである。
【符号の説明】
１  マイクロコンピュータ
３  ＣＰＵ
４  アドレス変換・キャッシュユニット
５  バスステートコントローラ
６  外部インタフェース回路
８  ＤＭＡＣ
１００  Ｉ／Ｏデバイス
２００  メモリマップドデバイス
５０１  コントロールレジスタ
ＤＩＷ  デバイスアイドルウェイト数
ＥＩＷ  エリアアイドルウェイト数
ＩＴＷ  エリア内部ウェイト数
【図１】
0003669616.tif 000002
【図２】
0003669616.tif 000003
【図３】
0003669616.tif 000004
【図４】
0003669616.tif 000005
【図５】
0003669616.tif 000006