(57)【要約】【課題】マイクロプロセッサにはバス・アクセスのためのバス・アクセス・ウエイトを最小とし、一連の連続バス・アクセス動作が書き込み動作、読み出し動作とも互いに物理的な影響を与えず、各動作を停止させることなく連続非同期バス・アクセスを正常に実行することができる非同期バス・インタフェース回路を提供する。【解決手段】アドレスを一時保存し、出力するライト・アドレス・バッファ１１４と、データを一時保存し、出力するライト・データ・バッファ１１６と、ライト・イネーブル信号を生成し、出力するライト制御回路１１５と、を備え、ライト・イネーブル信号がイネーブルのとき、ライト・アドレス・バッファ１１４から出力されるアドレスとライト・データ・バッファ１１６から出力されるデータとを、内部レジスタ１０２に書き込む。【選択図】図１
2011065415.tif 000002
【特許請求の範囲】
【請求項１】
マイクロプロセッサの非同期バスと、マクロ回路との間に配置され、前記マクロ回路とデータの入出力を行う内部レジスタを有する非同期バス・インタフェース回路において、
前記マイクロプロセッサの前記非同期バスから出力されるライト制御信号に基づき入力されるアドレスを一時保存し、出力するライト・アドレス・バッファと、
前記ライト制御信号に基づき入力されるデータを一時保存し、出力するライト・データ・バッファと、
前記ライト制御信号を受信し、前記マクロ回路のクロックに同期したライト・イネーブル信号を生成し、出力するライト制御回路と、を備え、
前記ライト・イネーブル信号がイネーブルのとき、前記ライト・アドレス・バッファから出力されるアドレスと前記ライト・データ・バッファから出力されるデータとを、前記内部レジスタに書き込むことを特徴とする非同期バス・インタフェース回路。
【請求項２】
前記マイクロプロセッサの前記非同期バスから出力されるリード制御信号に基づき入力される読み出しアドレスを一時保存し、出力する第１リード・アドレス・バッファと、
前記第１リード・アドレス・バッファが出力するアドレスを一時保存し、出力する第２リード・アドレス・バッファと、
前記非同期バス・リード制御信号を受信し、前記マクロ回路のクロックに同期したリード・イネーブル信号を生成し、出力するリード制御回路と、を備え、
前記リード・イネーブル信号がイネーブルのとき、前記第２リード・アドレス・バッファから出力されるアドレスのデータを前記内部レジスタから読み出すことを特徴とする請求項１記載の非同期バス・インタフェース回路。
【請求項３】
前記リード・イネーブル信号がイネーブルのとき、前記非同期バスに前記内部レジスタからの読み出しデータを出力し、
前記リード・イネーブル信号がディセーブルのとき、前記非同期バスにはハイインピーダンスの出力状態とする、データ・バス切り替え器をさらに備えることを特徴とする請求項２記載の非同期バス・インタフェース回路。
【請求項４】
前記ライト・アドレス・バッファ、前記ライト・データ・バッファを、前記マイクロプロセッサのバス・クロック信号を動作クロックとし、前記ライト制御信号を動作イネーブル用の信号とする同期型メモリとすることを特徴とする請求項１記載の非同期バス・インタフェース回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マイクロコンピュータにおいて、ASIC(Application Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)、CPLD(Complex Programmable Logic Device)といったデバイスに実装されるマクロ回路とマイクロプロセッサとのデータの送受信転送を行う非同期バス・インタフェース回路に関する。
【背景技術】
【０００２】
マイクロコンピュータにおいて、ACIC、FPGA、CPLDといったデバイスに実装され、マイクロプロセッサをサポートする演算や入出力制御などを機能ブロックにまとめた半導体回路であるマクロ回路と、マイクロプロセッサを非同期バスで接続した構成を持つものがある。マクロ回路は低消費電力化のため、動作クロック周波数は低く抑える傾向にあり、マイクロプロセッサがマクロ回路にデータを転送する場合、バス・アクセス・ウエイトの時間が長くなるという問題があった。
この問題に対し、非同期バスを介してマイクロプロセッサとハンドシェイクを行ってデータを受信、一時記憶し、そのデータをマクロ回路へ出力する非同期バス・インタフェース回路を備えるマイクロコンピュータが知られている。（例えば特許文献１参照）
特許文献１の従来の非同期バス・インタフェース回路を備えたマイクロコンピュータの例を図８に示す。
図８において、１１はマイクロプロセッサ、１２は非同期バス、１３はマクロ回路、１４は非同期バス・インタフェース回路である。非同期バス・インタフェース回路１４の内部の１５は、外部レジスタであり、非同期バス１２を介して書き込み要求信号に基づき入力されるデータを一時保存し、出力する。１６は、同期化バッファであり、外部レジスタ１５から出力されるデータを一時保存後、一時保存されたデータをマクロ回路１３の動作クロックに同期して出力する。１８は、調停回路であり、外部レジスタ１５への書き込み要求信号を受信し、マクロ回路１３の動作クロックに同期して書き込み信号を生成し、出力する書き込み信号生成サイクルを実行すると共に、書き込み要求信号を受信したときに、既に実行中の書き込み信号生成サイクルがあればこれを取り消す。１７は、内部レジスタであり、同期化バッファ１６から出力されるデータを調停回路の出力する書き込み信号が入力されたときのみ読み込んで一時保存し、一時保存されたデータをマクロ回路１３の動作クロックに同期して出力する。
このように、従来の非同期バス・インタフェース回路１４は、非同期バス１２と同期動作するマクロ回路１３との間で、非同期バス１２を介して書き込み要求信号に基づき入力されるデータを一時保存後、出力する外部レジスタ１５、外部レジスタ１５から出力されるデータを一時保存後、一時保存されたデータをマクロ回路１３の動作クロックに同期して出力する同期化バッファ１６を備え、レジスタを含む多段バッファの構成でマイクロプロセッサ１１からASIC、FPGA、CPLDといったデバイスに実装されるマクロ回路１３との間でデータの送受信転送を行っている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００２−１４０２９１号公報（請求項１−２、図１、図４、図５）
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１に示す従来の非同期バス・インタフェース回路は、外部レジスタと内部レジスタの間に同期化バッファを配置し、外部レジスタへ書き込まれたデータを同期化バッファで保持して同期化バッファから内部レジスタへデータを書き込むようにした構成となっているので、受信したデータを内部レジスタへ書き込む前にマイクロプロセッサが次のデータの転送を要求した場合は、調停回路が古いデータを内部レジスタへ書き込まないようにし、新しいデータで古いデータを上書きすることで古いデータの破棄を行い、マクロ回路には常に最後に書き込まれたデータしか転送されず、連続したデータ転送が行われない。
また、マクロ回路の動作クロック周波数が遅い場合には、マクロ回路の動作クロックの周波数に合わせてバス・アクセスするには、マイクロプロセッサに必要以上のバス・アクセス・ウェイトを挿入しなければならないという従前からの問題も残ったままである。
また、従来の非同期バス・インタフェース回路は、読み出し動作と書き込み動作との共有化には対応していないため、書き込み要求の動作サイクルが完了するまでは、読み出し要求が受けられない。
また、マイクロプロセッサのバス設定機能が読み出しと書き込みのバス・アクセス・ウエイト機能が共有型の場合、読み出し機能はマクロ回路内制御信号に依存してしまうため、バス・アクセス・ウエイトが挿入され、目標とするアクセス動作タイムにはならないという問題もある。
本発明はこのような問題点に鑑みてなされたものであり、マイクロプロセッサのバス・アクセスのためのバス・アクセス・ウエイトを最小とし、一連の連続バス・アクセス動作が書き込み動作、読み出し動作とも互いに物理的な影響を与えず、各動作を停止させることなく連続非同期バス・アクセスを正常に実行することができる非同期バス・インタフェース回路を提供することを目的とする。
【課題を解決するための手段】
【０００５】
上記問題を解決するため、本発明は、次のように構成したのである。
請求項１に記載の発明は、マイクロプロセッサの非同期バスと、マクロ回路との間に配置され、前記マクロ回路とデータの入出力を行う内部レジスタを有する非同期バス・インタフェース回路において、前記マイクロプロセッサの前記非同期バスから出力されるライト制御信号に基づき入力されるアドレスを一時保存し、出力するライト・アドレス・バッファと、前記ライト制御信号に基づき入力されるデータを一時保存し、出力するライト・データ・バッファと、前記ライト制御信号を受信し、前記マクロ回路のクロックに同期したライト・イネーブル信号を生成し、出力するライト制御回路と、を備え、前記ライト・イネーブル信号がイネーブルのとき、前記ライト・アドレス・バッファから出力されるアドレスと前記ライト・データ・バッファから出力されるデータとを、前記内部レジスタに書き込むことを特徴とするものである。
また、請求項２に記載の発明は、請求項１記載の非同期バス・インタフェース回路において、前記マイクロプロセッサの前記非同期バスから出力されるリード制御信号に基づき入力される読み出しアドレスを一時保存し、出力する第１リード・アドレス・バッファと、前記第１リード・アドレス・バッファが出力するアドレスを一時保存し、出力する第２リード・アドレス・バッファと、前記非同期バス・リード制御信号を受信し、前記マクロ回路のクロックに同期したリード・イネーブル信号を生成し、出力するリード制御回路と、を備え、前記リード・イネーブル信号がイネーブルのとき、前記第２リード・アドレス・バッファから出力されるアドレスのデータを前記内部レジスタから読み出すことを特徴とするものである。
また、請求項３に記載の発明は、請求項２記載の非同期バス・インタフェース回路において、前記リード・イネーブル信号がイネーブルのとき、前記非同期バスに前記内部レジスタからの読み出しデータを出力し、前記リード・イネーブル信号がディセーブルのとき、前記非同期バスにはハイインピーダンスの出力状態とする、データ・バス切り替え器をさらに備えることを特徴とするものである。
また、請求項４に記載の発明は、請求項１記載の非同期バス・インタフェース回路において、前記ライト・アドレス・バッファ、前記ライト・データ・バッファを、前記マイクロプロセッサのバス・クロック信号を動作クロックとし、前記ライト制御信号を動作イネーブル用の信号とする同期型メモリとすることを特徴とするものである。
【発明の効果】
【０００６】
請求項１に記載の発明によると、ライト・アドレス・バッファ、ライト・データ・バッファで非同期バス上のアドレスとデータをバス・アクセス毎にバッファリングし、次の書き込みまで保持し、並行してライト制御信号から直ちに、マクロ回路の動作クロックに同期したライト・イネーブル信号を生成し、内部レジスタへの書き込み動作を実行完了しているため、余分なバス・アクセスの待ち時間が生じず、その結果、バス・アクセス・ウエイトを必要以上にマイクロプロセッサに要求することなく最小のバス・アクセス時間で、連続した書き込み動作を実行することができる。
また、請求項２に記載の発明によると、二つのリード・アドレス・バッファで非同期バス上のアドレスをバス・アクセス毎にバッファリングし、次の読み出しまで保持し、並行して非同期バス・リード制御信号から直ちに、マクロ回路の動作クロックに同期したリード・イネーブル信号を生成し、内部レジスタからの読み出し動作を実行完了しているため、余分なバス・アクセスの待ち時間が生じず、その結果、バス・アクセス・ウエイトを必要以上にマイクロプロセッサに要求することなく最小のバス・アクセス時間で、連続した読み出し動作を実行することができる。
さらに、請求項３に記載の発明によると、リード・イネーブル信号がイネーブルの場合には、非同期バスへリード・データ・バスからの読み出しデータを出力し、リード・イネーブル信号がディセーブルの場合には、非同期バスへはハイインピーダンスの出力状態とする、データ・バス切り替え器を備え非同期バスとの読み出しバス・アクセスに対応しているため、マイクロプロセッサは、連続した書き込み、読み出しに関わらずマクロ回路とのバス・アクセス動作を実行することができる。
そして、請求項４に記載の発明によると、ライト・アドレス・バッファ、ライト・データ・バッファをマイクロプロセッサのバス・クロック信号に同期したメモリでも動作するよう構成でき、これらバッファが同期型か非同期型かを選択できるようにすることができるので、チップ・ダイ・サイズ、消費電力やパフォーマンスの観点から何れかのバッファを選択し、非同期バス・インタフェース回路を構成できる。
【図面の簡単な説明】
【０００７】
【図１】本発明の非同期バス・インタフェース回路を備えたマイクロコンピュータの構成を示すブロック図
【図２】本発明の非同期バス・インタフェース回路のライト制御回路のブロック図
【図３】書き込みが連続で発生する場合のバス・アクセス動作のタイミングチャート図
【図４】本発明の非同期バス・インタフェース回路のリード制御回路のブロック図
【図５】読み出しが連続で発生する場合のバス・アクセス動作のタイミングチャート図
【図６】読み出し、書き込み、読み出しが連続で発生する場合のバス・アクセス動作のタイミングチャート図
【図７】書き込み、読み出し、書き込みが連続で発生する場合のバス・アクセス動作のタイミングチャート図
【図８】従来の非同期バス・インタフェース回路を備えたマイクロコンピュータの構成を示すブロック図
【発明を実施するための形態】
【０００８】
以下、本発明の実施の形態について、図面を参照して説明する。
【実施例１】
【０００９】
図１は、本発明の非同期バス・インタフェース回路１を備えたマイクロコンピュータの構成を示すブロック図である。
同図において、マイクロコンピュータは、マイクロプロセッサ１００と、非同期バス１０３と、非同期バス・インタフェース回路１と、マクロ回路１０１とを備えており、非同期バス１０３には、マイクロプロセッサ１００と、非同期バス・インタフェース回路１を介してマクロ回路１０１が接続されている。
マイクロプロセッサ１００は、マイクロコンピュータの主となる演算制御を行う装置であり、非同期バス１０３を介して、必要なときには逐次、マクロ回路１０１への書き込み、読み出し各動作により、データの送受信転送を行う。非同期バス１０３は、データ転送を行うための伝送路であり、マイクロプロセッサ１００の制御信号１０５、アドレス１０６、データ１０７とで構成され、マイクロプロセッサ１００がマクロ回路１０１から読み出すデータ、マイクロプロセッサ１００がマクロ回路１０１に書き込む命令やデータを１回のアクセスで転送可能な十分なバス幅を有する。ここで制御信号１０５は、チップセレクト信号（図示せず）、リード制御信号１０８、ライト制御信号１０９を合わせた信号を表す。マクロ回路１０１は、マイクロプロセッサ１００をサポートする演算、入出力制御などが機能ブロックごとにまとめられた半導体回路であり、ASIC、FPGA、CPLDといったデバイスに実装される。
非同期バス・インタフェース回路１は、非同期バス１０３及びマクロ回路１０１とそれぞれ入出力可能に構成されており、またマクロ回路１０１からマクロ回路１０１のクロック発生器１０４で発生されたクロック１０４ａが入力されている。
【００１０】
次に非同期バス・インタフェース回路１の詳細について説明する。
ライト・アドレス・バッファ１１４は、ライト制御信号１０９に基づき入力される書き込み用のアドレス１０６を一時保存し、ライト・アドレス・バス１１９に出力する。ライト・データ・バッファ１１５は、ライト制御信号１０９に基づき入力される書き込み用のデータ１０７を一時保存し、ライト・データ・バス１２１に出力する。ライト制御回路１１５は、マクロ回路１０１のクロック１０４ａに同期したライト・イネーブル信号１２０を内部レジスタ１０２に出力する。内部レジスタ１０２はマクロ回路１０１とデータの入出力を行うレジスタである。ライト・イネーブル信号１２０がイネーブルのときにライト・アドレス・バス１１９とライト・データ・バス１２１のデータが内部レジスタ１０２に書き込まれる。
第１リード・アドレス・バッファ１１２はリード制御信号１０８に基づき入力される読み出し用のアドレス１０６を一時保存し、第２リード・アドレス・バッファに出力する。第２リード・アドレス・バッファ１１３は第１リード・アドレス・バッファ１１２の出力を入力し一時保存し、リード・アドレス・バス１１８に出力する。リード制御回路１１０は、マクロ回路１０１のクロック１０４ａに同期したリード・イネーブル信号１１７を内部レジスタ１０２に出力する。リード・イネーブル信号１１７がイネーブルのときに内部レジスタ１０２からリード・データ・バス１２２に読み出しデータが出力される。
データ・バス・切り替え器１１１は、書き込み、読み出しが交互に行われるときにデータ１０７の流れの切り替えを行う。すなわち、リード・イネーブル信号１１７がイネーブルのときはマクロ回路１０１からのデータの読み出しであるので、リード・データ・バス１２２のデータをデータ１０７に出力し、それ以外は非同期バス１０３にはハイインピーダンスの出力状態とする。
本発明が従来技術と異なる部分は、ライト・アドレス・バッファ１１４、ライト制御回路１１５、ライト・データ・バッファ１１６、リード制御回路１１０、第１リード・アドレス・バッファ１１２、第２リード・アドレス・バッファ１１３、データ・バス切り替え器１１１を備えた点である。
【００１１】
次に、マイクロプロセッサ１００からマクロ回路１０１にデータを書き込む場合の詳細を説明する。
内部レジスタ１０２は、入力動作クロックとしてマクロ回路１０１のクロック１０４ａが接続されており、入力側にリード・アドレス・バス１１８と、ライト・アドレス・バス１１９と、ライト・データ・バス１２１と、リード・イネーブル信号１１７と、ライト・イネーブル信号１２０が接続されており、出力側にリード・データ・バス１２２が接続されている。
ライト・アドレス・バッファ１１４は、入力データラッチ制御信号としてライト制御信号１０９が接続されており、入力側に非同期バス１０３のアドレス１０６が接続されており、出力側はライト・アドレス・バス１１９として内部レジスタ１０２の入力側に接続されている。ライト・アドレス・バッファ１１４は、マイクロプロセッサ１００から非同期バス１０３を介してバッファリング可能なバッファメモリであり、ライト制御信号１０９の立ち上がりで、非同期バス１０３のアドレス１０６を一時保存することで、マイクロプロセッサ１００をウエイトさせることなくバッファリングが可能である。バッファリングされたアドレスは、次にバッファリングされるまで保持されるとともに内部レジスタ１０２に出力される。
ライト・データ・バッファ１１６は、入力データラッチ制御信号としてライト制御信号１０９が接続されており、入力側に非同期バス１０３のデータ１０７が接続されており、出力側はライト・データ・バス１２１として内部レジスタ１０２の入力側に接続されている。ライト・データ・バッファ１１６は、マイクロプロセッサ１００から非同期バス１０３を介してバッファリング可能なバッファメモリであり、ライト制御信号１０９の立ち上がりで、非同期バス１０３のデータ１０７を一時保存することで、マイクロプロセッサ１００をウエイトさせることなくバッファリングが可能である。バッファリングされたデータは、次にバッファリングされるまで保持されるとともに内部レジスタ１０２に出力される。
【００１２】
ライト制御回路１１５は、入力動作クロックとしてマクロ回路１０１のクロック１０４ａが接続されており、入力側にライト制御信号１０９が接続されており、出力側はライト・イネーブル信号１２０として内部レジスタ１０２の入力側に接続されている。
図２はライト制御回路１１５のブロック図である。図２に示すように、ライト制御回路１１５は、ライト制御信号１０９を入力信号、マクロ回路１０１のクロック１０４ａを動作クロックとして、一段目のフリップフロップ１２３ａで、マクロ回路１０１のクロック１０４ａの立ち上がりでライト制御信号１０９を一時保存し、その出力をQ0A信号１２７として二段目のフリップフロップ１２３ｂに出力する。フリップフロップ１２３ｂで、クロック１０４ａの立ち下りでQ0A信号１２７を一時保存し、その出力をQ0B信号１２８として三段目のフリップフロップ１２３ｃに出力する。フリップフロップ１２３ｃで、クロック１０４ａの立ち上がりでQ0B信号１２８を一時保存し、その出力をQ0C信号１２９として四段目のフリップフロップ１２３ｄに出力する。フリップフロップ１２３ｄで、クロック１０４ａの立ち下りでQ0C信号１２９を一時保存し、その出力をQ0D信号１３０として出力する。このQ0D信号１３０の論理反転をNOT回路１２４で生成し、この論理反転信号をQ0B信号１２８と論理積をとり生成される信号をライト・イネーブル信号１２０とし、内部レジスタ１０２へ出力する。
【００１３】
図３に書き込みが連続で発生する場合の一連のバス・アクセス動作に関するタイミングチャート図を示す。ここで、（ａ）〜（ｋ）は以下に記す信号またはデータを示している。
(a)−ライト制御信号１０９
(b)−非同期バス１０３のアドレス１０６とデータ１０７
(c)−ライト・アドレス・バス１１９とライト・データ・バス１２１
(d)−ライト・イネーブル信号１２０
(e)−内部レジスタ１０２へのライト・タイミング
(f)−マクロ回路１０１のクロック１０４ａ
(g)−クロック１０４ａの反転信号
(h)−図２におけるフリップフロップ１２３ａのQ0A信号
(i)−図２におけるフリップフロップ１２３ｂのQ0B信号
(j)−図２におけるフリップフロップ１２３ｃのQ0C信号
(k)−図２におけるフリップフロップ１２３ｄのQ0D信号
この図に示すように、非同期バス・インタフェース回路１では、マイクロプロセッサ１００の非同期バス１０３を介して、ライト・アドレス・バッファ１１４にライト制御信号１０９に基づき入力される書き込みアドレスを一時保存し出力する。そして、ライト・データ・バッファ１１６にて、ライト制御信号１０９に基づき入力される書き込み非同期バス１０３のデータ１０７を一時保存し出力する。同時に、ライト制御回路１１５にて、ライト制御信号１０９を受信し、マクロ回路１０４のクロック１０４ａに同期したライト・イネーブル信号１２０を生成し出力する。ライト・イネーブル信号１２０がイネーブル（High）のとき、ライト・アドレス・バッファ１１４から出力されるアドレスとライト・データ・バッファ１１６から出力されるデータを、クロック１０４ａに同期して内部レジスタ１０２に書き込み、非同期バス１０３からの書き込み動作を完了する。
すなわち、ライト・アドレス・バッファ、ライト・データ・バッファで非同期バス上のアドレスとデータをバス・アクセス毎にバッファリングし、次の書き込みまで保持し、並行してライト制御信号から直ちに、マクロ回路の動作クロックに同期したライト・イネーブル信号を生成し、内部レジスタへの書き込み動作を実行完了しているため、余分なバス・アクセスの待ち時間が生じず、その結果、バス・アクセス・ウエイトを必要以上にマイクロプロセッサに要求することなく最小のバス・アクセス時間で、連続した書き込み動作を実行することができる。このようにして、連続した書き込み時の非同期バス・アクセスであっても、マイクロプロセッサ１００に必要以上のバス・ウエイトを要求することなく、さらにデータの取りこぼしがなく、マイクロプロセッサ１００とマクロ回路１０１とのデータの送受信転送ができるのである。
【００１４】
次に、マイクロプロセッサ１００がマクロ回路１０１からデータを読み出す場合の詳細を説明する。
図１において、第１リード・アドレス・バッファ１１２は、入力動作クロックとしてマクロ回路１０１のクロック１０４ａが接続されており、入力側に非同期バス１０３のアドレス１０６が接続されており、出力側は第２リード・アドレス・バッファ１１３が接続されている。第２リード・アドレス・バッファ１１３は、入力動作クロックとしてクロック１０４ａの反転信号が接続されており、入力側に第１リード・アドレス・バッファ１１２の出力が接続されており、出力側はリード・アドレス・バス１１８として内部レジスタ１０２の入力側に接続されている。リード・アドレス・バッファはクロック１０４aで動作するバッファであり、外部非同期信号を同期回路に取り込む回路であるため二段構成としている。
【００１５】
リード制御回路１１０は、入力動作クロックとしてクロック１０４ａが接続されており、入力側にリード制御信号１０８が接続されており、出力側はリード・イネーブル信号１１７として内部レジスタ１０２の入力側に接続されている。
図４はリード制御回路１１０のブロック図である。図４に示すように、リード制御回路１１０は、リード制御信号１０８を入力信号、マクロ回路１０１のクロック１０４ａを動作クロックとして、一段目のフリップフロップ１２３ｅで、クロック１０４ａの立ち上がりでリード制御信号１０８を一時保存し、その出力をQIA信号１３１として二段目のフリップフロップ１２３ｆに出力する。フリップフロップ１２３ｆで、クロック１０４aの立ち下りでQIA信号１３１を一時保存し、その出力をQIB信号１３２として三段目のフリップフロップ１２３ｇに出力する。フリップフロップ１２３ｇで、クロック１０４aの立ち下りでQIB信号１３２を一時保存し、その出力をQIC信号１３３として出力する。このQIC信号１３３とQIB信号１３２との論理和をとり、さらに論理反転して生成される信号をリード・イネーブル信号１１７とし、内部レジスタ１０２へ出力する。
図５に読み出しが連続で発生する場合の一連のバス・アクセス動作に関するタイミングチャート図を示す。ここで、（a)〜（k）は以下に記す信号またはデータを示している。、
(a)−リード制御信号１０８
(b)−非同期バス１０３のアドレス１０６
(c)−第１リード・アドレス・バッファ１１２出力信号
(d)−リード・アドレス・バス１１８(第２リード・アドレス・バッファ１１３出力信号)
(e)−リード・イネーブル信号１１７
(f)−リード・データ・バス１２２
(g)−マクロ回路１０１のクロック１０４ａ
(h)−クロック１０４ａの反転信号
(i)−図４におけるフリップフロップ１２３ｅのQIA信号
(j)−図４におけるフリップフロップ１２３ｆのQIB信号
(k)−図４におけるフリップフロップ１２３ｇのQIC信号
この図に示すように、非同期バス・インタフェース回路１では、マイクロプロセッサ１００の非同期バス１０３を介して、リード制御信号１０８に基づき入力される読み出しアドレス１０６を第１リード・アドレス・バッファ１１２にマクロ回路１０１のクロック１０４aに同期して一時保存し出力する。そして、この第１リード・アドレス・バッファ１１２で一時保存したアドレスを第２リード・アドレス・バッファ１１３にて、さらにクロック１０４ａに同期して一時保存し、出力することでマクロ回路１０１に同期した信号として使用する。同時に、リード制御回路１１０において、リード制御信号１０８を受信し、クロック１０４ａに同期したリード・イネーブル信号１１７を生成し出力する。リード・イネーブル信号１１７がイネーブル(High)のとき、第２リード・アドレス・バッファ１１３から出力されるアドレスのデータを、内部レジスタ１０２のリード・データ・バス１２２から読み出し、クロック１０４ａに同期して非同期バス１０３への読み出し動作を完了する。
すなわち、二つのリード・アドレス・バッファで非同期バス上のアドレスをバス・アクセス毎にバッファリングし、次の読み出しまで保持し、並行して非同期バス・リード制御信号から直ちに、マクロ回路の動作クロックに同期したリード・イネーブル信号を生成し、内部レジスタからの読み出し動作を実行完了しているため、余分なバス・アクセスの待ち時間が生じず、その結果、バス・アクセス・ウエイトを必要以上にマイクロプロセッサに要求することなく最小のバス・アクセス時間で、連続した読み出し動作を実行することができる。このようにして、連続した読み出し時の非同期バス・アクセスであっても、マイクロプロセッサ１００に必要以上のバス・ウエイトを要求することなく、さらにデータの取りこぼしがなく、マイクロプロセッサ１００とマクロ回路１０１とのデータの送受信転送ができるのである。
【００１６】
次に、マイクロプロセッサ１００がマクロ回路１０１に対して読み出し、書き込みを交互に行う場合の詳細を説明する。
本発明では図１に示すように、データ・バス切り替え器１１１を備え、これでタイミングを制御する。データ・バス切り替え器１１１は、制御入力信号としてリード・イネーブル信号１１７が接続されており、入力側にリード・データ・バス１２２が接続されており、出力側に非同期バス１０３のデータ１０７が接続されている。リード・イネーブル信号１１７がイネーブル(High)の場合には、非同期バス１０３へリード・データ・バス１２２からの読み出しデータを出力し、リード・イネーブル信号１１７がディセーブル(Low) の場合には、非同期バス１０３へはハイインピーダンスの出力状態とする。
図６に読み出し、書き込み、読み出しが連続で発生する場合の一連のバス・アクセス動作に関するタイミングチャート図を示す。ここで、（a)〜（g）は以下に記す信号またはデータを示している。
(a)−非同期バスの制御信号１０５
(b)−非同期バス１０３のアドレス１０６、データ１０７
(c)−ライト・アドレス・バッファ１１４、ライト・データ・バッファ１１６
(d)−内部レジスタ１０２からのリード・データ
(e)−内部レジスタ１０２へのライト後データ
(f)−ライト・イネーブル信号１２０
(g)−リード・イネーブル信号１１７
また、図７に書き込み、読み出し、書き込みが連続で発生する場合の一連のバス・アクセス動作に関するタイミングチャート図を示す。ここで、（a)〜（g）は図６と同じ信号またはデータを示している。
すなわち、リード・イネーブル信号がイネーブルの場合には、非同期バスへリード・データ・バスからの読み出しデータを出力し、リード・イネーブル信号がディセーブルの場合には、非同期バスへはハイインピーダンスの出力状態とする、データ・バス切り替え器を備え非同期バスとの読み出しバス・アクセスに対応しているため、マイクロプロセッサは、連続した書き込み、読み出しに関わらずマクロ回路とのバス・アクセス動作を実行することができる。このような構成とすることで、マイクロプロセッサ１００は、読み出し、書き込みに関わらず、非同期バス１０３上でのデータの衝突を回避でき、マクロ回路１０１とのバス・アクセスを正常に動作完了させることができる。
【実施例２】
【００１７】
実施例２として、ライト・アドレス・バッファ１１４、ライト・データ・バッファ１１６に同期型メモリを使用する例を説明する。
これまで説明してきたように、ライト・アドレス・バッファ１１４は、ライト制御信号１０９の立ち上がりで、非同期バス１０３のアドレス１０６を一時保存し、出力する動作となっている。また、ライト・データ・バッファ１１６は、ライト制御信号１０９の立ち上がりで、非同期バス１０３のデータ１０７を一時保存し、出力する動作となっている。
このとき、ライト・アドレス・バッファ１１４、ライト・データ・バッファ１１６は共にマイクロプロセッサ１００の非同期バス１０３のバス・クロック信号１３４を動作クロックとせずに動作する非同期型のメモリ、例えばSRAMから構成されるバッファとなっている。
一般にマイクロプロセッサ１００は、マイクロプロセッサ１００内部でバス・クロック信号１３４を生成し、これに同期して、制御信号１０５、アドレス１０６、データ１０７を非同期バス１０３に出力している。このことから、ライト・アドレス・バッファ１１４は、バス・クロック信号１３４を動作クロックとし、ライト制御信号１０９をメモリの動作イネーブル信号とし、非同期バス１０３のアドレス１０６を入力とする同期型メモリの構成とするバッファであっても良い(図示せず)。同様に、ライト・データ・バッファ１１６は、バス・クロック信号１３４を動作クロックとし、非同期バス・ライト制御信号１０９をメモリの動作イネーブル信号とし、非同期バス１０３のデータ１０７を入力とする同期型メモリの構成とするバッファであっても良い(図示せず)。
このように、ライト・アドレス・バッファ１１４、ライト・データ・バッファ１１６が同期型か非同期型かを選択できるようにすることで、チップ・ダイ・サイズ、消費電力やパフォーマンスの観点から何れかのバッファを選択し、非同期バス・インタフェース回路１を構成できるようになる。
【産業上の利用可能性】
【００１８】
マイクロプロセッサとしてＣＰＵやＤＳＰに外部バス・インタフェースとして新たに非同期バス・インタフェース回路１を内蔵することによって、異なるプロセッサ同士の共有データの管理を高速に行うことができ、マルチプロセスデータ処理という用途にも適用できる。
【符号の説明】
【００１９】
１、１４      非同期バス・インタフェース回路
１１、１００  マイクロプロセッサ
１２、１０３  非同期バス
１３、１０１  マクロ回路
１５          外部レジスタ
１６          同期化バッファ
１７、１０２  内部レジスタ
１８          調停回路
１９          内部レジスタライト信号
２０          内部クロック信号
１０４        クロック発生器
１０４ａ      クロック
１０５        制御信号
１０６        アドレス
１０７        データ
１０８        リード制御信号
１０９        ライト制御信号
１１０        リード制御回路
１１１        データ・バス切り替え器
１１２        第１リード・アドレス・バッファ
１１３        第２リード・アドレス・バッファ
１１４        ライト・アドレス・バッファ
１１５        ライト制御回路
１１６        ライト・データ・バッファ
１１７        リード・イネーブル信号
１１８        リード・アドレス・バス
１１９        ライト・アドレス・バス
１２０        ライト・イネーブル信号
１２１        ライト・データ・バス
１２２        リード・データ・バス
１２３ａ〜１２３ｇ    フリップフロップ
１２４        NOT回路
１２５        AND回路
１２６        OR回路
１２７        Q0A信号
１２８        Q0B信号
１２９        Q0C信号
１３０        Q0D信号
１３１        QIA信号
１３２        QIB信号
１３３        QIC信号
１３４        バス・クロック信号
【図１】
2011065415.tif 000003
【図２】
2011065415.tif 000004
【図３】
2011065415.tif 000005
【図４】
2011065415.tif 000006
【図５】
2011065415.tif 000007
【図６】
2011065415.tif 000008
【図７】
2011065415.tif 000009
【図８】
2011065415.tif 000010