(57)【特許請求の範囲】
【請求項１】
マイクロプロセッサとＤＭＡマスターからのメモリアクセスを制御するメモリアクセス制御装置において、
前記マイクロプロセッサと前記ＤＭＡマスターからの読み出し要求を調停するアクセス調停手段と、
該アクセス調停手段の調停結果に従い前記メモリへ送るコマンド信号を生成するコマンド生成手段と、を有し、
前記アクセス調停手段が、前記マイクロプロセッサのみから読み出し要求があり、前記ＤＭＡマスターから読み出し要求がなかったと判断した場合、前記コマンド生成手段は、前記マイクロプロセッサから読み出し要求された第１のデータと該第１のデータに連続する１つ先の第２のデータを要求するコマンド信号を前記メモリへ送り、
前記アクセス調停手段が、前記マイクロプロセッサと前記ＤＭＡマスターから同時に読み出し要求があったと判断した場合、前記コマンド生成手段は、前記マイクロプロセッサから読み出し要求された前記第１のデータのみを要求するコマンド信号と前記ＤＭＡマスター用のコマンド信号を、定められた優先順位に従い連続して前記メモリへ送ることを特徴とするメモリアクセス制御装置。
【請求項２】
前記アクセス調停手段は、前記メモリアクセスの優先順位を定めたマスター信号を生成するマスター信号生成手段と、
前記マイクロプロセッサと前記ＤＭＡマスターからの読み出し要求及び前記マスター信号から前記コマンド信号を生成する手順を制御する選択信号制御手段と、
を有することを特徴とする請求項１記載のメモリアクセス制御装置。
【請求項３】
前記コマンド生成手段は、前記マイクロプロセッサからの読み出しアドレスと、該アドレスに所定値を加算したアドレスと、前記ＤＭＡマスターからの読み出しアドレスとから使用するアドレスを選択するアドレス選択手段を有し、前記選択信号制御手段により該アドレス選択手段を制御して前記コマンド信号を生成することを特徴とする請求項２記載のメモリアクセス制御装置。
【請求項４】
前記メモリから読み出した前記第１のデータを一時的に保持する第１のバッファと、前記データを読み出す際に該データに連続する１つ先の前記第２のデータも読み出して一時的に保持する第２のバッファと、前記第１及び第２のバッファのデータのうちどちらのデータを使用するか選択するデータ選択手段とからなるデータ制御手段を有し、
前記マイクロプロセッサからの読み出しアドレスが連続する場合に、前記第２のバッファの前記第２のデータを使用することを特徴とする請求項１乃至３のいずれかに記載のメモリアクセス制御装置。
【請求項５】
前記マイクロプロセッサからの読み出しアドレスと、前回の読み出しアドレスに所定値を加算したアドレスとを比較するアドレス判定手段を有し、
前記比較による値が一致した場合に、前記第２のバッファの前記第２のデータを使用することを特徴とする請求項４記載のメモリアクセス制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マイクロプロセッサ（ｕＰ）とＤＭＡマスターからのメモリへのアクセスを制御するメモリアクセス制御装置に関するものである。
【背景技術】
【０００２】
図５は従来のメモリアクセス制御装置の構成図である。図５（ａ）はメモリアクセスの動作をブロック図で示しており、図５（ｂ）は図５（ａ）の動作を表で示している。
マイクロプロセッサ１、ＤＭＡ（Direct Memory Access）マスター２がそれぞれメモリ３にアクセスし、コントローラ１０がマイクロプロセッサ１とＤＭＡマスター２のメモリアクセスの調停を行う。
【０００３】
マイクロプロセッサ１がコントローラ１０に対して、メモリ３に格納されているデータの読み出し要求を出す場合は、フロントサイドバスが使用される。
ＤＭＡマスター２がコントローラ１０に対して、メモリ３に格納されているデータの読み出し要求を出す場合は、ＤＭＡバスが使用される。
【０００４】
コントローラ１０の調停器１１は、マイクロプロセッサ１とＤＭＡマスター２からのデータの読み出し要求を受け取り、優先順位の高い方から処理を行い、アドレス，コマンド生成命令をコマンド生成器１２へ送る。コマンド生成器１２は、アドレスや読み出し要求であることを伝えるコマンド（オーバーヘッド）をメモリ３に対して発行し、メモリ３からデータの読み出しを順次実行する。この際、メモリバスが使用される。
【０００５】
マイクロプロセッサ１からのデータの読み出し要求の方がＤＭＡマスター２からのデータの読み出し要求よりも優先順位が高い。図５（ｂ）に示すように、マイクロプロセッサ１とＤＭＡマスター２から同時にデータの読み出し要求があった場合には、マイクロプロセッサ１の処理を優先し、マイクロプロセッサ１の処理が終わり次第ＤＭＡマスター２の処理を実行する。
【０００６】
図６は従来のメモリアクセス制御装置におけるメモリアクセスの動作を説明するタイミングチャートである。
マイクロプロセッサ１とＤＭＡマスター２から同時にデータの読み出し要求があった場合（Ａ部）、マイクロプロセッサ１の処理が優先され、マイクロプロセッサ１用のアドレス，コマンドが生成されてメモリ３に発行される。
メモリ３から読み出されたデータＡは、コントローラ１０を経由してマイクロプロセッサ１へ渡される。これによりマイクロプロセッサ１からのデータの読み出し要求が解除される（Ｂ部）。
【０００７】
このマイクロプロセッサ１からのデータの読み出し要求の解除により、待たされていたＤＭＡマスター２の読み出し要求に移行し、ＤＭＡマスター２用のアドレス，コマンドが生成されてメモリ３に発行される（Ｂ部）。
メモリ３から読み出されたデータＢは、コントローラ１０を経由してＤＭＡマスター２へ渡される。これによりＤＭＡマスター２からのデータの読み出し要求が解除される（Ｃ部）。
【０００８】
【特許文献１】特開昭６１−１２３９６９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
マイクロプロセッサとＤＭＡマスターから同時にメモリに対しアクセスがあった場合、ＤＭＡマスターはマイクロプロセッサよりも優先順位が低いため、ＤＭＡマスターの処理はマイクロプロセッサの処理が終わるまで待たされていた。
一方、ＤＭＡマスターがメモリに対してアクセスする権利を優先して持っていた場合は、マイクロプロセッサの処理がＤＭＡマスターの処理が終わるまで待たされていた。
【００１０】
また、マイクロプロセッサから１つのデータの読み出し要求があると、コントローラはマイクロプロセッサから要求された１回のデータ分だけメモリから読み出しを行う仕組みであるため、マイクロプロセッサがメモリからデータを読み出す頻度が高い場合には、オーバーヘッドが多くなり、マイクロプロセッサの処理性能の低下を引き起こすという問題点があった。
【００１１】
本発明は上述した問題点を解決するためになされたものであり、マイクロプロセッサとＤＭＡマスターのメモリアクセスの際の処理待ち時間を少なくし、高速にメモリ読み出しを実行できるメモリアクセス制御装置を実現することを目的とする。
【課題を解決するための手段】
【００１２】
このような課題を達成するために、本発明は次のとおりの構成になっている。
（１）マイクロプロセッサとＤＭＡマスターからのメモリアクセスを制御するメモリアクセス制御装置において、
前記マイクロプロセッサと前記ＤＭＡマスターからの読み出し要求を調停するアクセス調停手段と、
該アクセス調停手段の調停結果に従い前記メモリへ送るコマンド信号を生成するコマンド生成手段と、を有し、
前記アクセス調停手段が、前記マイクロプロセッサのみから読み出し要求があり、前記ＤＭＡマスターから読み出し要求がなかったと判断した場合、前記コマンド生成手段は、前記マイクロプロセッサから読み出し要求された第１のデータと該第１のデータに連続する１つ先の第２のデータを要求するコマンド信号を前記メモリへ送り、
前記アクセス調停手段が、前記マイクロプロセッサと前記ＤＭＡマスターから同時に読み出し要求があったと判断した場合、前記コマンド生成手段は、前記マイクロプロセッサから読み出し要求された前記第１のデータのみを要求するコマンド信号と前記ＤＭＡマスター用のコマンド信号を、定められた優先順位に従い連続して前記メモリへ送ることを特徴とするメモリアクセス制御装置。
【００１３】
（２）前記アクセス調停手段は、前記メモリアクセスの優先順位を定めたマスター信号を生成するマスター信号生成手段と、
前記マイクロプロセッサと前記ＤＭＡマスターからの読み出し要求及び前記マスター信号から前記コマンド信号を生成する手順を制御する選択信号制御手段と、
を有することを特徴とする（１）記載のメモリアクセス制御装置。
【００１４】
（３）前記コマンド生成手段は、前記マイクロプロセッサからの読み出しアドレスと、該アドレスに所定値を加算したアドレスと、前記ＤＭＡマスターからの読み出しアドレスとから使用するアドレスを選択するアドレス選択手段を有し、前記選択信号制御手段により該アドレス選択手段を制御して前記コマンド信号を生成することを特徴とする（２）記載のメモリアクセス制御装置。
【００１５】
（４）前記メモリから読み出した前記第１のデータを一時的に保持する第１のバッファと、前記データを読み出す際に該データに連続する１つ先の前記第２のデータも読み出して一時的に保持する第２のバッファと、前記第１及び第２のバッファのデータのうちどちらのデータを使用するか選択するデータ選択手段とからなるデータ制御手段を有し、
前記マイクロプロセッサからの読み出しアドレスが連続する場合に、前記第２のバッファの前記第２のデータを使用することを特徴とする（１）乃至（３）のいずれかに記載のメモリアクセス制御装置。
【００１６】
（５）前記マイクロプロセッサからの読み出しアドレスと、前回の読み出しアドレスに所定値を加算したアドレスとを比較するアドレス判定手段を有し、
前記比較による値が一致した場合に、前記第２のバッファの前記第２のデータを使用することを特徴とする（４）記載のメモリアクセス制御装置。
【発明の効果】
【００１７】
本発明によれば次のような効果がある。
マイクロプロセッサとＤＭＡマスターのメモリへのアクセスにおいて、オーバーヘッドが少なくなるようにしたので、高速にメモリ読み出しを実行することができる。
【発明を実施するための最良の形態】
【００１８】
以下、図面を用いて本発明を詳細に説明する。
図１は本発明の一実施例を示す構成図である。図１（ａ）はメモリアクセスの動作をブロック図で示しており、図１（ｂ）は図１（ａ）の動作を表で示している。前出の図と同一のものは同一符号を付ける。
マイクロプロセッサ１、ＤＭＡマスター２がそれぞれメモリ３にアクセスし、コントローラ２０がマイクロプロセッサ１とＤＭＡマスター２のメモリアクセスの調停を行う。メモリ３としては、ＳＤＲＡＭ（Synchronous Dynamic Random Access Memory）やＤＤＲＳＤＲＡＭ（Double Data Rate SDRAM）、ＤＤＲ２ＳＤＲＡＭ等が使用される。
【００１９】
例えば、プラントのフィールド機器を制御するプラント制御システムのプロセッサモジュールでは、マイクロプロセッサ１が演算処理を行い、ＤＭＡマスターは他のプロセッサモジュールとの間でデータの等値化処理を行う。
【００２０】
マイクロプロセッサ１がコントローラ２０に対してメモリ３に格納されているデータの読み出し要求を出す場合は、フロントサイドバスが使用される。
ＤＭＡマスター２がコントローラ２０に対してメモリ３に格納されているデータの読み出し要求を出す場合は、ＤＭＡバスが使用される。
【００２１】
コントローラ２０のアクセス調停手段２１は、マイクロプロセッサ１とＤＭＡマスター２からのデータの読み出し要求を受け取る。アクセス調停手段２１は、マイクロプロセッサ１とＤＭＡマスター２からのデータの読み出し要求の優先順位等の調停条件を利用して、それぞれの読み出し要求のタイミングに合わせた調停処理を行う。
【００２２】
コマンド生成手段２２は、アクセス調停手段２１の調停結果に従い、アドレスと読み出し要求であることを伝えるコマンド（以下、これらをまとめてコマンド信号という）をメモリ３に対して発行する。この際、アクセス調停手段２１は、コマンド信号のオーバーヘッドが小さくなるようにコマンド生成手段２２を制御する。
【００２３】
データ制御手段２３は、メモリ３から読み出されたデータをバッファに一時的に保持する。この際、メモリバスが使用される。
バッファには、通常のバッファとマイクロプロセッサ１の連続読み出し用バッファとがある。マイクロプロセッサ１の連続読み出し用バッファは、次に読み出されるであろうデータを予測して予め保持しておくバッファである。
データ制御手段２３に保持されているデータのうち、どのデータを取り込むかをアクセス調停手段２１により制御し、マイクロプロセッサ１とＤＭＡマスター２へそれぞれデータを渡す。
【００２４】
図１（ｂ）に示すように、マイクロプロセッサ１とＤＭＡマスター２から同時にデータの読み出し要求があった場合には、マイクロプロセッサ１とＤＭＡマスター２の両方の読み出し要求を同時に処理するコマンド信号を生成し、両データの読み出し処理を実行する。
また、マイクロプロセッサ１からの読み出し要求はあるが、ＤＭＡマスター２からの読み出し要求がない場合には、通常のバッファとマイクロプロセッサ１の連続読み出し用バッファを用いた読み出し処理を実行する。
一方、ＤＭＡマスター２からの読み出し要求はあるが、マイクロプロセッサ１からの読み出し要求がない場合には、通常のバッファのみを用いた読み出し処理を実行する。
【００２５】
図２は本発明の具体的な回路例を示した図である。
図１ではマイクロプロセッサ１とＤＭＡマスター２からの読み出し要求の中に、それぞれ読み出しアドレスを含めて記載しているが、図２では具体的な回路を示すため、読み出しアドレスを読み出し要求から分離して記載している。
【００２６】
アクセス調停手段２１は、マイクロプロセッサ１とＤＭＡマスター２からのデータの読み出し要求を受け取ると、マスター信号生成手段２１１において、どちらの読み出し要求を優先させるかを決定して優先順位を定めたマスター信号を生成する。
どちらの読み出し要求を優先させるかの決定方法としては、予め優先順位を設定しておく方法や、過去のマイクロプロセッサ１とＤＭＡマスター２からの読み出し要求の発生状況から優先すべき読み出し要求を決める方法等がある。
【００２７】
選択信号制御手段２１２には、マスター信号生成手段２１１で生成されたマスター信号と、マイクロプロセッサ１とＤＭＡマスター２からの読み出し要求が入力される。選択信号制御手段２１２は、マスター信号と、マイクロプロセッサ１とＤＭＡマスター２からのデータの読み出し要求のタイミングから、コマンド生成手段２２でコマンド信号を生成する手順を制御する。
【００２８】
コマンド生成手段２２には、マイクロプロセッサ１からの読み出しアドレスと、ＤＭＡマスター２からの読み出しアドレスが入力される。マイクロプロセッサ１からの読み出しアドレスはアドレス選択手段２２１に入力されるとともに、このアドレスに加算手段２２４で所定値を加算したアドレスがアドレス選択手段２２２に入力される。また、ＤＭＡマスター２からの読み出しアドレスはアドレス選択手段２２３に入力される。
ここで、加算手段２２４は、マイクロプロセッサ１がメモリ３から読み出すべきデータに連続する１つ先のデータも一緒に読み出せるようにするものであり、読み出すべきデータのアドレスにデータ構造により定まる値（所定値）を加算して、１つ先のデータのアドレスを設定するものである。
【００２９】
アドレス選択手段２２１，２２２，２２３は、選択信号制御手段２１２からそれぞれに対して選択信号を受ける。これによりコマンド生成手段２２は、アドレス選択手段２２１，２２２，２２３のそれぞれに入力されている読み出しアドレスのうち選択信号がアクティブになったアドレスを取り入れてコマンド信号を作成する。
【００３０】
データ制御手段２３は、メモリ３から読み出されたデータをバッファで一時的に保持する。バッファには、通常のデータの読み出しに使用される第１のバッファ２３１と、マイクロプロセッサ１の連続読み出し用に使用される第２のバッファ２３２とがある。第２のバッファ２３２は、マイクロプロセッサ１からのデータの読み出し要求に対し、次に読み出されるであろうデータを予測して予め保持しておくバッファであり、加算手段２２４を経由して設定されたアドレスのデータに該当する。
【００３１】
第１のバッファ２３１に保持されたデータはデータ選択手段２３３を経由してマイクロプロセッサ１又はＤＭＡマスター２に渡され、第２のバッファ２３２に保持されたデータはデータ選択手段２３４を経由してマイクロプロセッサ１に渡される。
データ選択手段２３３，２３４は、アドレス判定手段２１３からそれぞれに対して選択信号を受ける。これによりデータ制御手段２３は、第１のバッファ２３１と第２のバッファ２３２のそれぞれに保持されているデータのうち選択信号がアクティブになったデータをマイクロプロセッサ１やＤＭＡマスター２に渡すことになる。
【００３２】
アドレス判定手段２１３は、マイクロプロセッサ１からの今回の読み出しアドレスと、マイクロプロセッサ１からの前回の読み出しアドレスに加算手段２２４で所定値を加算したアドレスを比較する。比較の結果、アドレスが一致した場合は、データ選択手段２３４への選択信号をアクティブにして、第２のバッファ２３２からのデータを取り込み、アドレスが不一致の場合は、データ選択手段２３３への選択信号をアクティブにして、第１のバッファ２３１からのデータを取り込む。これにより、アドレスが一致した場合にはいきなり第２のバッファ２３２からデータを取り込むことができ、従来よりも早いタイミングで読み出したデータをマイクロプロセッサ１に返すことができる。
【００３３】
図３はマイクロプロセッサとＤＭＡマスターが同時にメモリアクセスした場合の動作を説明するタイミングチャートである。
マイクロプロセッサ１とＤＭＡマスター２から同時にデータの読み出し要求があった場合（Ｄ部）、マイクロプロセッサ１用のコマンド信号とＤＭＡマスター２用のコマンド信号を、定められた優先順位に従い連続してメモリ３へ送る（Ｅ部）。ここでは、マイクロプロセッサ１からの読み出し要求をＤＭＡマスター２からの読み出し要求よりも高い優先順位とした例を示している。
【００３４】
メモリ３はマイクロプロセッサ１とＤＭＡマスター２からの読み出し要求が連続したコマンド信号を受け取るので、マイクロプロセッサ１用のデータＡとＤＭＡマスター２用のデータＢを連続して読み出すことができる（Ｆ部）。
【００３５】
これにより、従来２回必要であったオーバーヘッドが１回で済むことになり、マイクロプロセッサ１とＤＭＡマスター２のメモリアクセスが競合した際の処理待ち時間を少なくすることができる。メモリバスのスピードが、フロントサイドバス、ＤＭＡバスよりも高速なシステムにおいては、さらに高速にメモリ読み出しを実行することができる。
【００３６】
図４はマイクロプロセッサの連続メモリアクセスの動作を説明するタイミングチャートである。
マイクロプロセッサ１からの読み出し要求はあるが、ＤＭＡマスター２からの読み出し要求がない場合には、マイクロプロセッサ１の連続メモリアクセスの動作を実行する。この際、第１のバッファ２３１（通常のバッファ）と第２のバッファ２３２（マイクロプロセッサ１の連続読み出し用バッファ）を用いた読み出し処理が実行される。
【００３７】
マイクロプロセッサ１からデータＡ０の読み出し要求に対し、コントローラ２０はデータＡ０の格納先アドレスを指定したコマンド信号をメモリ３へ送る（Ｇ部）。この際、本来の読み出し目的であるデータＡ０のアドレスと、データＡ０の次のデータＡ１のアドレスをセットにしたコマンド信号をメモリ３へ送ることで、データＡ０の読み出しの際に、データＡ１も先取りして読み出しておき、マイクロプロセッサ１の連続読み出し用バッファに保持しておく（Ｈ部）。
【００３８】
次に、マイクロプロセッサ１からデータＡ１の読み出し要求に対し、コントローラ２０はデータＡ１の格納先アドレスを指定したコマンド信号をメモリ３へ送る（Ｉ部）。ここで、今回指定したアドレスと、前回先取りして読み出しておいたアドレスを比較し、両アドレスが一致すれば、予め先取りしておいたマイクロプロセッサ１の連続読み出し用バッファのデータＡ１を使用する（Ｊ部）。
この際にも、本来の読み出し目的であるデータＡ１のアドレスと、データＡ１の次のデータＡ２のアドレスをセットにしたコマンド信号をメモリ３へ送り、データＡ２を先取りして読み出しておき、マイクロプロセッサ１の連続読み出し用バッファに保持しておく（Ｋ部）。
【００３９】
このように、マイクロプロセッサ１の連続読み出し用バッファに先行して保持していたデータを使用することで、コントローラ２０がメモリ３にアクセスしてデータを読み出すのを待つことなくマイクロプロセッサ１にデータを返すことができ、高速応答をすることができる。
【図面の簡単な説明】
【００４０】
【図１】本発明の一実施例を示す構成図である。
【図２】本発明の具体的な回路例を示した図である。
【図３】マイクロプロセッサとＤＭＡマスターが同時にメモリアクセスした場合の動作を説明するタイミングチャートである。
【図４】マイクロプロセッサの連続メモリアクセスの動作を説明するタイミングチャートである。
【図５】従来のメモリアクセス制御装置の構成図である。
【図６】従来のメモリアクセス制御装置におけるメモリアクセスの動作を説明するタイミングチャートである。
【符号の説明】
【００４１】
１  マイクロプロセッサ
２  ＤＭＡマスター
３  メモリ
２１  アクセス調停手段
２２  コマンド生成手段
２３  データ制御手段
２１１  マスター信号生成手段
２１２  選択信号制御手段
２１３  アドレス判定手段
２２１，２２２，２２３  アドレス選択手段
２３１  第１のバッファ
２３２  第２のバッファ
２３３，２３４  データ選択手段
【図１】
0005104402.tif 000002
【図２】
0005104402.tif 000003
【図３】
0005104402.tif 000004
【図４】
0005104402.tif 000005
【図５】
0005104402.tif 000006
【図６】
0005104402.tif 000007