(57)【要約】【課題】ＣＰＵからのメモリリードを高速に行なうメモリ制御装置を低コストで提供するものである。【解決手段】アドレスを設定した時点でメモリへのリードアクセスを開始し，読み出したデータを信号処理装置内のＦＩＦＯに格納することによって，ＣＰＵからのメモリリードアクセスを高速に行なうことができる。また，メモリライトをＦＩＦＯ経由で行ない，ＦＩＦＯに空き領域がない時のみＣＰＵに対するウェイト信号を有効にすることによりＣＰＵからのメモリライトを高速に行なう。【選択図】  図１
2004220486.tif 000002
【特許請求の範囲】
【請求項１】
ＣＰＵとメモリとの間のアクセスを制御するメモリ制御装置において、前記ＣＰＵが所定のメモリアドレスを書き込むアドレス格納手段と、前記メモリから読み出されたデータを格納するリードデータ格納手段と、前記メモリとのアクセス信号を生成するメモリインタフェース手段と、前記ＣＰＵが前記メモリインタフェース手段に対するメモリアクセス要求信号を生成するメモリアクセス要求手段とを備え、前記メモリアクセス要求手段は、前記アドレス格納手段にメモリアドレスが書き込まれると、前記メモリインタフェース手段にメモリリードアクセス要求を行うことを特徴とするメモリ制御装置。
【請求項２】
前記メモリアドレスの最下位バイトが前記ＣＰＵから前記アドレス格納手段に書き込まれた時、前記メモリアクセス要求手段が、前記メモリインタフェース手段にメモリリードアクセス要求を行うことを特徴とする請求項１記載のメモリ制御装置。
【請求項３】
前記ＣＰＵからの前記メモリへのアクセスの一つ前のアクセスがメモリリードアクセスである場合のみ、前記ＣＰＵが前記アドレス格納手段にアドレスを書き込むことにより、前記メモリアクセス要求手段は、前記メモリインタフェース手段にメモリリードアクセス要求を行うことを特徴とする、請求項１記載のメモリ制御装置。
【請求項４】
前記アドレス格納手段は、前記ＣＰＵにより前記メモリに対するアドレスが書き込まれ、前記メモリインタフェース手段が前記メモリからデータを読み出す毎に、前記アドレス格納手段のメモリアドレスに所定の値を加算することを特徴とする、請求項１記載のメモリ制御装置。
【請求項５】
前記アドレス格納手段は、前記メモリに対するアドレスが前記ＣＰＵにより書き込まれ、前記メモリインタフェース手段が前記メモリからデータを読み出す毎に、前記アドレス格納手段のメモリアドレスに所定の値を減算することを特徴とする、請求項１記載のメモリ制御装置。
【請求項６】
前記リードデータ格納手段は、１バイト以上のＦＩＦＯから構成され、前記ＣＰＵからのメモリリード後に前記ＦＩＦＯ内にリードデータを格納する為の空き領域が生じた時は、前記メモリアクセス要求手段が、前記メモリインタフェース手段にメモリリードアクセス要求を行うことを特徴とする請求項１記載のメモリ制御装置。
【請求項７】
前記ＣＰＵが書き込んだデータを格納するライトデータ格納手段を備え、前記ＣＰＵが前記ライトデータ格納手段にライトデータを書き込み、ライトデータ格納手段に格納されたデータが、所定のライトアクセス条件を満たす時、前記メモリアクセス要求手段が、前記メモリインタフェース手段に対してメモリライトアクセス要求を行うことを特徴とする、請求項１記載のメモリ制御装置。
【請求項８】
前記リードデータ格納手段は、前記ライトデータ格納手段を兼用していることを特徴とする、請求項７記載のメモリ制御装置。
【請求項９】
前記ライトデータ格納手段は、バーストライトデータ格納手段とランダムライトデータ格納手段を備え、前記メモリアクセス要求手段は、前記ＣＰＵが前記バーストライトデータ格納手段にデータをライトした時、前記ライトアクセス条件を満たした場合にメモリライトアクセス要求を行い、前記ＣＰＵが前記ランダムライトデータ格納手段にデータをライトした場合は、即座にメモリライトアクセス要求を行なうことを特徴とする、請求項７記載のメモリ制御装置。
【請求項１０】
前記バーストライトデータ格納手段は、前記ランダムライトデータ格納手段を兼用していることを特徴とする請求項９記載のメモリ制御装置。
【請求項１１】
前記ライトアクセス条件は、所定のバイト数のライトデータを前記ライトデータ格納手段に格納完了時であることを特徴とする、請求項７、請求項９または請求項１０記載のメモリ制御装置。
【請求項１２】
前記ライトアクセス条件は、２のＮ乗（Ｎは所定の値の自然数）から１を引いた値のメモリアドレスにライトすべきライトデータを前記ライトデータ格納手段に格納完了時でであることを特徴とする、請求項７、請求項９または請求項１０記載のメモリ制御装置。
【請求項１３】
前記ライトアクセス条件は、前記ＣＰＵのメモリライトアクセスとその一つ前のメモリライトアクセスとの経過時間を計測する経過時間計測手段を備え、所定の時間内に前記ＣＰＵからのメモリアクセスが発生しない場合とすることを特徴とする、請求項７、請求項９または請求項１０記載のメモリ制御装置。
【請求項１４】
前記アドレス格納手段は、メモリアドレス発生手段と設定アドレス保持手段を備え、前記ＣＰＵから前記設定アドレス保持手段にメモリアドレスが設定された時、前記ライトデータ格納手段にライトデータが格納されている場合は、前記メモリアクセス要求手段が前記メモリインタフェース手段に対してメモリライトアクセス要求を行うことを特徴とする、請求項７、請求項９または請求項１０記載のメモリ制御装置。
【請求項１５】
前記ＣＰＵに対して、ウェイト信号を出力するウェイト信号生成手段を備え、前記ＣＰＵからの前記アドレス格納手段に対するメモリアドレスを設定した時に前記メモリへのライトデータが前記ライトデータ格納手段に格納されている場合、または前記ＣＰＵからの前記ライトデータ格納手段に対するデータ書き込みを行なった時に前記ライトデータ格納手段にライトデータを格納する空間がない場合に前記ウェイト信号生成手段は前記ＣＰＵに対してウェイト信号を生成することを特徴とする、請求項７、請求項９または請求項１０記載のメモリ制御装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、例えばコンピュータの外部記憶装置等に適用し得るメモリ制御装置に関する。
【０００２】
【従来の技術】
従来のメモリ制御装置は、先読みアドレスを作るためのアドレスカウンタと、このアドレスカウンタによりカウントアップされたカウンタアドレスとリクエストアドレスとを比較するアドレスコンパレータと、前記アドレスカウンタと前記アドレスコンパレータを制御するカウンタコントローラと、前記カウンタアドレスと前記リクエストアドレスをセレクトして出力を行うアドレスセレクトドライバとを備え、一回目のＣＰＵからのメモリリードアクセス時に、アクセスアドレスを前記アドレスカウンタにロードし、メモリアドレスとすることによってＣＰＵが次のリクエストを発生するまでの間に、連続したメモリアドレスに格納されたデータを先読みすることができるので、無駄なアイドル状態を削減してメモリへのアクセス性能を向上することができた。（例えば、特許文献１参照）
また、他の方法として画像メモリアクセス制御方式は、画像メモリに対して、ＣＰＵがリードアクセスを行う場合には、ＣＰＵからメモリへのアドレスをあらかじめ設定しておき、リードアクセスの有無にかかわらず、ＣＰＵリードモード信号の切り替えにより、ＦＩＦＯコントローラがメモリコントローラに対してリードアクセス要求を出し、メモリコントローラの制御により先に設定しておいたアドレスを更新しながら画像メモリから読み込んだデータをＦＩＦＯに格納しておく。コンピュータがリードアクセスを行う際のデータの転送は、このＦＩＦＯから行う事により、処理の高速化をはかっていた。（例えば、特許文献２参照）さらに他の方法として、ＣＰＵからのリードアクセスを開始する際に、アクセスアドレスの下位桁の一部をカウンタにセットして、ＣＰＵがデータを読み込むタイミングで更新する。前記カウンタの出力をメモリへのアドレスとして用いて、メモリアクセスを行い、得たデータはラッチに記憶する。このようにすると、メモリからデータを先読みすることになり、高速なアクセスを実現できた。（例えば特許文献３参照）
【０００３】
【特許文献１】
特開平６−１６１８６８号公報（第２頁、第１図）
【特許文献２】
特開平７−４４６９７号公報（第１−２頁、第１図）
【特許文献３】
特開平９−３４８２７号公報（第１−２頁、第１図）
【０００４】
【発明が解決しようとする課題】
ＣＰＵからメモリへのライトアクセスの場合は、メモリ制御装置がライトデータをＣＰＵから受け取った時点で、ＣＰＵのバスを開放できるので、ある程度のＦＩＦＯをメモリ制御装置内に持つことによって、ＣＰＵから見れば高速にメモリにアクセスすることができる。しかし、メモリリードアクセスの場合、ＣＰＵからのメモリリードアドレスを受け取ってから、メモリ制御装置はメモリにリードアクセスし、メモリから出力されるリードデータをＣＰＵバスに出力するまで、ＣＰＵのバスを開放できないので、ＣＰＵからメモリへのリードアクセスには、ライトアクセスに比べ長いアクセス時間が必要であった。そこで、ＣＰＵからのメモリリード時、特許文献１〜３では、メモリからあらかじめリードデータをメモリ制御装置内のＦＩＦＯに先読みしておくことによって、ＣＰＵからのメモリリードアクセスを高速に行っていた。
【０００５】
しかし、特許文献１及び３におけるメモリリードデータの先読み方法では、ＣＰＵのメモリへのアクセスがバーストアクセス時には有効であるが、ランダムアクセス時はメモリへのアクセスアドレスが不連続となる為、ＣＰＵがメモリリードアクセスを開始してから、メモリ制御装置がメモリに対してＣＰＵから受け取ったアドレスを出力し、メモリが出力したリードデータをメモリ制御装置経由でＣＰＵに転送して、ＣＰＵのメモリリードアクセスが終了となるので、ＣＰＵからメモリへのリードアクセスには長い時間が必要であった。
【０００６】
また、特許文献２では、ＣＰＵからのリードモード信号の切り換えによってメモリからデータをリードする為、メモリリードを行う期間と、メモリライトの期間が明確に分離されている場合は有効であるが、メモリへのリードアクセスとライトが混在するようなシステムにおいては、適用することができなかった。
【０００７】
さらに近年、メモリの大容量化が進み、メモリのアドレスバスやデータバスのビット幅が、ＣＰＵのアドレスバスやデータバスのビット幅より広くなる為、ＣＰＵからメモリのアドレスやデータを直接出力できないという問題や、ＣＰＵからのメモリのアドレスやデータを直接メモリ制御装置経由でメモリと接続すると、メモリ制御装置の端子数が多くなり、メモリ制御装置のコストが高くなるという問題が生じている。
【０００８】
本発明は、前記従来の課題を解決するもので、ＣＰＵからのメモリリードアクセスを高速化し、ＣＰＵのアドレスバスのビット幅によるメモリ容量の制限を無くすとともに、メモリ制御装置の端子数を削減して低コストなメモリ制御装置を提供する。
【０００９】
【課題を解決するための手段】
前記従来の課題を解決する為に、本発明は、信号処理手段から書き込まれたメモリアドレスを格納するアドレス格納手段と、メモリから読み出されたデータを格納するリードデータ格納手段と、前記信号処理手段からのメモリアクセス要求信号の調停及び、メモリとのインタフェース信号を生成する前記メモリインタフェース手段と、前記メモリインタフェース手段に対して前記信号処理手段のメモリアクセス要求信号を生成するメモリアクセス要求手段を備え、前記信号処理手段が前記アドレス格納手段にアドレスを書き込むことにより、前記メモリアクセス要求手段が、前記メモリインタフェース手段に対してメモリリードアクセス要求を行うことを特徴としたものである。
【００１０】
本発明によれば、前記信号処理手段からのメモリリードアクセスの高速化をはかるとともに、前記信号処理手段とメモリ制御装置間のバス信号の本数を削減して、低コストのメモリ制御装置を提供できる。
【００１１】
【発明の実施の形態】
請求項１に記載の発明は、ＣＰＵとメモリとの間のアクセスを制御するメモリ制御装置において、前記ＣＰＵが所定のメモリアドレスを書き込むアドレス格納手段と、前記メモリから読み出されたデータを格納するリードデータ格納手段と、前記メモリとのアクセス信号を生成するメモリインタフェース手段と、前記ＣＰＵが前記メモリインタフェース手段に対するメモリアクセス要求信号を生成するメモリアクセス要求手段とを備え、前記メモリアクセス要求手段は、前記アドレス格納手段にメモリアドレスが書き込まれると、前記メモリインタフェース手段にメモリリードアクセス要求を行うことを特徴とするメモリ制御装置であり、ＣＰＵが前記メモリにアクセスする際に、ＣＰＵからのメモリリードアクセスの高速化をはかるとともに、ＣＰＵとメモリ制御装置間のバス信号の本数を削減して、低コストのメモリ制御装置を提供できる。
【００１２】
請求項２に記載の発明は、前記メモリアドレスの最下位バイトが前記ＣＰＵから前記アドレス格納手段に書き込まれた時、前記メモリアクセス要求手段が、前記メモリインタフェース手段にメモリリードアクセス要求を行うことを特徴とする請求項１記載のメモリ制御装置であり、無駄な先読みの為のメモリアクセスを減少させることができる。
【００１３】
請求項３に記載の発明は、前記ＣＰＵからの前記メモリへのアクセスの一つ前のアクセスがメモリリードアクセスである場合のみ、前記ＣＰＵが前記アドレス格納手段にアドレスを書き込むことにより、前記メモリアクセス要求手段は、前記メモリインタフェース手段にメモリリードアクセス要求を行うことを特徴とする、請求項１記載のメモリ制御装置であり、無駄な先読みの為のメモリアクセスを減少させることができる。
【００１４】
請求項４に記載の発明は、前記アドレス格納手段は、前記ＣＰＵにより前記メモリに対するアドレスが書き込まれ、前記メモリインタフェース手段が前記メモリからデータを読み出す毎に、前記アドレス格納手段のメモリアドレスに所定の値を加算することを特徴とする請求項１記載のメモリ制御装置であり、メモリアドレスが自動的に生成されるので、ＣＰＵは前記メモリの連続するアドレスにアクセスする際には、アクセスするメモリアドレスを毎回設定する必要がなくなり、ＣＰＵのメモリアクセスに要する時間を短縮することができる。
【００１５】
請求項５に記載の発明は、前記アドレス格納手段は、前記メモリに対するアドレスが前記ＣＰＵにより書き込まれ、前記メモリインタフェース手段が前記メモリからデータを読み出す毎に、前記アドレス格納手段のメモリアドレスに所定の値を減算することを特徴とする、請求項１記載のメモリ制御装置であり、ＣＰＵは前記メモリの連続するアドレスにアクセスする際には、アクセスするメモリアドレスを毎回設定する必要がなくなるので、ＣＰＵのメモリアクセスに要する時間を短縮することができる。
【００１６】
請求項６に記載の発明は、前記リードデータ格納手段は、１バイト以上のＦＩＦＯから構成され、前記ＣＰＵからのメモリリード後に前記ＦＩＦＯ内にリードデータを格納する為の空き領域が生じた時は、前記メモリアクセス要求手段が、前記メモリインタフェース手段にメモリリードアクセス要求を行うことを特徴とする請求項１記載のメモリ制御装置であり、ＣＰＵのメモリアクセスに要する時間を短縮することができる。
【００１７】
請求項７に記載の発明は、前記ＣＰＵが書き込んだデータを格納するライトデータ格納手段を備え、前記ＣＰＵが前記ライトデータ格納手段にライトデータを書き込み、ライトデータ格納手段に格納されたデータが、所定のライトアクセス条件を満たす時、前記メモリアクセス要求手段が、前記メモリインタフェース手段に対してメモリライトアクセス要求を行うことを特徴とする、請求項１記載のメモリ制御装置であり、複数バイトのライトデータを前記メモリに対してバーストライトできるので、メモリライトに要する時間を短縮できる。
【００１８】
請求項８に記載の発明は、前記リードデータ格納手段は、前記ライトデータ格納手段を兼用していることを特徴とする請求項７記載のメモリ制御装置であり、低コストでデータ格納手段を構成することができる。
【００１９】
請求項９に記載の発明は、前記ライトデータ格納手段は、バーストライトデータ格納手段とランダムライトデータ格納手段を備え、前記メモリアクセス要求手段は、前記ＣＰＵが前記バーストライトデータ格納手段にデータをライトした時、前記ライトアクセス条件を満たした場合にメモリライトアクセス要求を行い、前記ＣＰＵが前記ランダムライトデータ格納手段にデータをライトした場合は、即座にメモリライトアクセス要求を行なうことを特徴とする、請求項７記載のメモリ制御装置であり、データ格納手段に格納されたライトデータをすべて、前記メモリに書き込むことができる。
【００２０】
請求項１０に記載の発明は、前記バーストライトデータ格納手段は、前記ランダムライトデータ格納手段を兼用していることを特徴とする請求項９記載のメモリ制御装置であり、データ格納手段の回路規模を小さくすることができる。
【００２１】
請求項１１に記載の発明は、前記ライトアクセス条件は、所定のバイト数のライトデータを前記ライトデータ格納手段に格納完了時であることを特徴とする、請求項７、請求項９または請求項１０記載のメモリ制御装置であり、複数バイトのライトデータを前記メモリに対してバーストライトできるので、前記メモリを占有する時間を短縮できる。
【００２２】
請求項１２に記載の発明は、前記ライトアクセス条件は、２のＮ乗（Ｎは所定の値の自然数）から１を引いた値のメモリアドレスにライトすべきライトデータを前記ライトデータ格納手段に格納完了時でであることを特徴とする、請求項７、請求項９または請求項１０記載のメモリ制御装置であり、前記メモリを占有する時間を短縮でき、高速なメモリ制御装置を提供できる。
【００２３】
請求項１３に記載の発明は、前記ライトアクセス条件は、前記ＣＰＵのメモリライトアクセスとその一つ前のメモリライトアクセスとの経過時間を計測する経過時間計測手段を備え、所定の時間内に前記ＣＰＵからのメモリアクセスが発生しない場合とすることを特徴とする、請求項７、請求項９または請求項１０記載のメモリ制御装置であり、データ格納手段に格納されたライトデータはすべて、前記メモリに書き込むことができる。
【００２４】
請求項１４に記載の発明は、前記アドレス格納手段は、メモリアドレス発生手段と設定アドレス保持手段を備え、前記ＣＰＵから前記設定アドレス保持手段にメモリアドレスが設定された時、前記ライトデータ格納手段にライトデータが格納されている場合は、前記メモリアクセス要求手段が前記メモリインタフェース手段に対してメモリライトアクセス要求を行うことを特徴とする、請求項７、請求項９または請求項１０記載のメモリ制御装置であり、データ格納手段に格納されたライトデータはすべて、前記メモリに書き込むことができる。
【００２５】
請求項１５に記載の発明は、前記ＣＰＵに対して、ウェイト信号を出力するウェイト信号生成手段を備え、前記ＣＰＵからの前記アドレス格納手段に対するメモリアドレスを設定した時に前記メモリへのライトデータが前記ライトデータ格納手段に格納されている場合、または前記ＣＰＵからの前記ライトデータ格納手段に対するデータ書き込みを行なった時に前記ライトデータ格納手段にライトデータを格納する空間がない場合に前記ウェイト信号生成手段は前記ＣＰＵに対してウェイト信号を生成することを特徴とする、請求項７、請求項９または請求項１０記載のメモリ制御装置であり、データ格納手段にメモリデータを書き込むことができる時には、ＣＰＵに対するウェイト信号が有効にならないので、ＣＰＵは高速にメモリライトアクセスすることができる。
【００２６】
以下に本発明の実施の形態について、図面を参照しながら説明する。
【００２７】
（実施の形態１）
本発明の請求項１、請求項２、請求項４、請求項５、請求項６、請求項８、請求項１４に記載された発明の実施の形態について図１、図２および図３を用いて説明する。図１はメモリ、ＣＰＵ、メモリ制御装置の接続を示しており、１はＣＰＵ、２はデータを格納するメモリ、３はＣＰＵ１からメモリ２へのアクセスを制御するメモリ制御装置、３１はＣＰＵ１から入力される信号を内部のシステムクロックに同期化する同期化回路、３２はメモリ２に対する制御信号を生成するメモリインタフェースブロック、３３は同期化回路３１経由でＣＰＵ１によって設定されたアドレスをもとにメモリインタフェースブロック３２へのアドレスを生成するアドレス生成ブロック、３４はメモリインタフェースブロック３２に対するメモリアクセス要求信号を生成するリクエスト生成ブロック、３５はＣＰＵ１によって書き込まれたライトデータや、メモリ２から読み出されたメモリリードデータを格納する１２バイトのデータＦＩＦＯである。
【００２８】
図２は、アドレス生成ブロック３３のブロック図を示しており、３３１はＣＰＵ１から書き込まれたメモリ２への下位アドレスを一時的に格納する下位アドレスレジスタ、３３２はＣＰＵ１から書き込まれたメモリ２への上位アドレスを一時的に格納する上位アドレスレジスタ、３３３はメモリインタフェースブロック３２へ出力するメモリアクセスアドレスの下位アドレスを生成する下位アドレスカウンタ、３３４はメモリインタフェースブロック３２へ出力するメモリアクセスアドレスの上位アドレスを生成する上位アドレスカウンタであり、上位アドレスレジスタ３３２、下位アドレスレジスタ３３１およびデータＦＩＦＯ３５は、ＣＰＵ１のアドレス空間にマッピングされている。
【００２９】
図３は、下位アドレスレジスタ３３１に対してＣＰＵ１がメモリ２に対する下位アドレスを設定した時を起点とするメモリアクセスアドレス信号生成のフローチャートを示している。
【００３０】
ＣＰＵ１からメモリ２へのリードアクセスに関して説明する。ＣＰＵ１はメモリ２への上位アドレスを上位アドレスレジスタ３３２に設定後、メモリ２への下位アドレスを下位アドレスレジスタ３３１に設定する。図３の処理１に示すように、ＣＰＵ１から下位アドレスレジスタ３３１にアドレスが設定された時にメモリ２に書き込まれていないライトデータがデータＦＩＦＯ３５に例えば４バイト存在している場合、リクエスト生成ブロック３４はメモリインタフェースブロック３２に対してメモリライトの為にメモリアクセス要求信号を有効にし、メモリインタフェースブロック３２によってアクセス調停後、メモリアクセスが許可されると、メモリインタフェースブロック３２に対して下位アドレスカウンタ３３３および上位アドレスカウンタ３３４からメモリアドレス、データＦＩＦＯ３５から４バイトのメモリライトデータを転送後、上位アドレスレジスタ３３２、下位アドレスレジスタ３３１に格納されている値を上位アドレスカウンタ３３４、下位アドレスカウンタ３３３にそれぞれロードし、リクエスト生成ブロック３４はメモリリードの為にメモリアクセス要求信号を有効にする。
【００３１】
また、ＣＰＵ１から下位アドレスレジスタ３３１にアドレスが設定された時にデータＦＩＦＯ３５にメモリ２へのライトデータが格納されていない場合は、上位アドレスレジスタ３３２、下位アドレスレジスタ３３１に格納されている値を上位アドレスカウンタ３３４、下位アドレスカウンタ３３３にそれぞれロードし、リクエスト生成ブロック３４はメモリインタフェースブロック３２に対して、メモリリードの為にメモリアクセス要求信号を有効にする。メモリインタフェースブロック３２は、リクエスト生成ブロック３４からのメモリリード要求信号を優先順位に従って調停後、リクエスト生成ブロック３４に対してメモリリード許可信号を有効にする。メモリアクセスが許可されると、上位アドレスカウンタ３３４及び下位アドレスカウンタ３３３は、メモリリードアドレスをメモリインタフェースブロック３２に出力する。メモリインタフェースブロック３２は、受け取ったメモリリードアドレスをもとにメモリ２に対して８バイトのメモリリードアクセスを行う。メモリ２から読みだされた８バイトのリードデータは、メモリインタフェースブロック３２によって、データＦＩＦＯ３５に転送され、データＦＩＦＯ３５に格納される。ＣＰＵ１がメモリリードデータを読み出す際は、データＦＩＦＯ３５がＣＰＵ１のアドレス空間にマッピングされているので、データＦＩＦＯ３５に対応するＣＰＵ１のアドレス空間に対してリード命令を発行すれば、データＦＩＦＯ３５に格納されているメモリリードデータを２バイトずつメモリ制御装置３から読み出すことができる。ＣＰＵ１がデータＦＩＦＯ３５に格納されているデータを読み出すことによって、ＣＰＵ１のメモリアクセスがメモリリードであることが確定するので、上位アドレスカウンタ３３４及び、下位アドレスカウンタ３３３は、アクセスアドレスを８バイト分、カウントアップして、次のメモリリードアクセスの為のメモリリードアドレスを準備する。
【００３２】
また、図３において処理２として、処理１に続くＣＰＵ１からデータＦＩＦＯ３５へのリードアクセスを示す。ＣＰＵ１がメモリ制御装置３からデータを読み出すことにより、データＦＩＦＯ３５に格納されているリードデータが読み出された結果、データＦＩＦＯ３５に８バイト以上の空き領域が発生した場合には、リクエスト生成ブロック３４はメモリインタフェースブロック３２に対してメモリリードの為にメモリアクセス要求信号を有効にする。メモリインタフェースブロック３２によって、メモリアクセスが許可されると、上位アドレスカウンタ３３４及び、下位アドレスカウンタ３３３は、アドレスをメモリインタフェースブロック３２に転送後、８バイト分カウントアップして次のメモリリードアクセスの為のメモリリードアドレスを準備する。本実施例に示すとおり、メモリに格納されているデータを先読みすることによって、ＣＰＵ１からのメモリ２に対するリードアクセスを高速に行うことができる。
【００３３】
なお、本実施例においては、上位アドレスカウンタ３３４及び下位アドレスカウンタ３３３は、次のメモリリードアクセスの為に８バイト分インクリメントしているが、次のメモリリードアクセスの為に８バイト分デクリメントしてもよい。
【００３４】
また、ＣＰＵ１によってデータＦＩＦＯ３５から一度に読み出されるバイト数、データＦＩＦＯ３５のバイト数、メモリ２に対してメモリインタフェースブロック３２が一度にアクセスするバイト数などは、本実施例と異なっていてもよい。
【００３５】
（実施の形態２）
本発明の請求項１、請求項２、請求項３に記載された発明の実施の形態について図１、図２、図４を用いて説明する。図４はリクエスト生成ブロック３４のブロック図である。３４１は、ＣＰＵ１が最後にメモリにアクセスした方向がメモリリード方向であるか、ライト方向であるかを記憶するアクセス方向レジスタ、３４２はメモリインタフェースブロック３２に対して出力するメモリアクセス要求信号を生成する、ＲＥＱ生成回路である。
【００３６】
ＣＰＵ１がデータＦＩＦＯ３５に対してライトまたはリードした時、アクセス方向レジスタ３４１にＣＰＵ１がリードしたかライトしたかの情報が格納される。アクセス方向レジスタ３４１に格納されている情報が、メモリリード方向である時、実施の形態１と同様な動作を行うので説明は省略し、アクセス方向レジスタ３４１に格納される情報が、メモリライト方向である時、つまり前のＣＰＵ１からメモリ２に対するアクセスがメモリライトである場合の動作について、以下に説明する。
【００３７】
ＣＰＵ１からメモリ２へのメモリリードアクセス時、ＣＰＵ１はメモリ２への上位アドレスを上位アドレスレジスタ３３２に設定後、メモリ２への下位アドレスを下位アドレスレジスタ３３１に設定する。下位アドレスレジスタ３３１にアドレスが設定された時、メモリ２にまだ書き込まれていないライトデータがデータＦＩＦＯ３５に例えば２バイト存在している場合は、ＲＥＱ生成回路３４２はメモリインタフェースブロック３２に対してメモリライトの為にメモリアクセス要求信号を有効にし、メモリインタフェースブロック３２によってアクセス調停後、メモリアクセスが許可されると、メモリインタフェースブロック３２に対してデータＦＩＦＯ３５、上位アドレスカウンタ３３４及び下位アドレスカウンタ３３３から、２バイトのメモリライトデータおよびメモリリードアドレスをメモリインタフェースブロック３２に転送し、上位アドレスレジスタ３３２、下位アドレスレジスタ３３１に格納されている値を上位アドレスカウンタ３３４、下位アドレスカウンタ３３３にそれぞれロードする。
【００３８】
また、下位アドレスレジスタ３３１にアドレスが設定された時、データＦＩＦＯ３５にメモリ２へのライトデータが格納されていない場合は、上位アドレスレジスタ３３２、下位アドレスレジスタ３３１の値をそれぞれ上位アドレスカウンタ３３４、下位アドレスカウンタ３３３にロードする。次にＣＰＵ１からデータＦＩＦＯ３５へのリードアクセスが発生すると、ＲＥＱ生成回路３４２はメモリインタフェースブロック３２に対してメモリリードの為にメモリアクセス要求信号を有効にし、アクセスが許可されると、上位アドレスレジスタ３３２、下位アドレスレジスタ３３１からメモリインタフェースブロック３２に対してメモリアドレスが転送される。メモリインタフェースブロック３２は転送されたメモリアドレス及び連続するアドレスに格納されている計８バイトのデータをメモリ２から読み出して、データＦＩＦＯ３５に転送する。データＦＩＦＯ３５に格納されたメモリリードデータのうち、２バイトのメモリリードデータがＣＰＵ１によって読み出されると同時にアクセス方向レジスタ３４１にＣＰＵ１のアクセス方向としてリードアクセス方向が格納される。この後の動作は実施の形態１と同様にＣＰＵ１からのデータＦＩＦＯ３５のリードによって、データＦＩＦＯ３５に８バイト以上の空き領域が発生した場合には、ＲＥＱ生成回路３４２はメモリインタフェースブロック３２に対してメモリリードアクセスの為にメモリアクセス要求信号を有効にする。本実施例に示すとおり、ＣＰＵ１からのアクセス方向（リードもしくはライト）が連続するようなシステムにおいては、メモリライトアクセスの次のメモリアクセスは、ライトアクセスである可能性が高いので、アドレス設定時に、データを先読み機能を無効にすることでＣＰＵ１からの無駄なメモリリードアクセスを減らすことができる。
【００３９】
（実施の形態３）
本発明の請求項１、請求項７、請求項９、請求項１０、請求項１１に記載された発明の実施の形態について図１、図２を用いて説明する。
データＦＩＦＯ３５はＣＰＵ１の２個所のアドレス空間にマッピングされている。
片方のアドレスをバーストアクセス用アドレスとし、他方のアドレスをランダムアクセス用アドレスとする。ＣＰＵ１からメモリ２に対して連続するアドレスにデータを格納する場合、バーストアクセス用アドレスに対してＣＰＵ１がデータをライトすると、ライトデータはデータＦＩＦＯ３５に格納される。ＣＰＵ１からバーストアクセス用アドレスに対してライト命令を４回発行することによって、８バイトのデータがデータＦＩＦＯ３５に格納されると、リクエスト生成ブロック３４は、メモリインタフェースブロック３２に対してメモリライトの為にメモリアクセス要求信号を有効にする。メモリインタフェースブロック３２でメモリアクセスの調停が行われ、メモリアクセスが許可されると、データＦＩＦＯ３５は、格納された８バイトのデータを順次、メモリインタフェースブロック３２に対して出力する。メモリインタフェースブロック３２は、受け取ったライトデータをメモリ２に書き込む。また、連続するデータの最後のバイトをライトする時や、連続していないアドレスへライトする場合には、ランダムアクセス用アドレスに対してＣＰＵ１がライト命令を発行する。ＣＰＵ１がランダムアクセス用アドレスに対してライト命令を発行すると、リクエスト生成ブロック３４は、データＦＩＦＯ３５に格納されているバイト数に関係なく、メモリインタフェースブロック３２に対してメモリライトの為にメモリアクセス要求信号を有効にする。メモリインタフェースブロック３２でメモリアクセスの調停が行われ、メモリアクセスが許可されると、データＦＩＦＯ３５はランダムアクセス用アドレスに対してＣＰＵ１がライトしたデータを含むデータＦＩＦＯ３５に格納されているデータをメモリインタフェースブロック３２に転送する。メモリインタフェースブロック３２は、受け取ったライトデータを、メモリ２のアドレス生成ブロック３３から転送されたメモリアドレスが示す場所に書き込む。
【００４０】
（実施の形態４）
本発明の請求項１、請求項７、請求項９、請求項１０、請求項１２、請求項１３に記載された発明の実施の形態について図１、図５を用いて説明する。
【００４１】
図５はリクエスト生成ブロック３４のブロック図である。３４２はメモリインタフェースブロック３２に対して出力するメモリアクセス要求信号を生成するＲＥＱ生成回路、３４３はＣＰＵ１がデータＦＩＦＯ３５にデータをライトした際にクリアされ、一定時間毎にカウントアップされるライトアクセスタイマーである。
【００４２】
データＦＩＦＯ３５はＣＰＵ１のアドレス空間の２個所にマッピングされている。片方のアドレスをバーストアクセス用アドレスとし、他方のアドレスをランダムアクセス用アドレスとする。ＣＰＵ１からメモリ２に対して連続するアドレスにデータを格納する場合、バーストアクセス用アドレスに対してＣＰＵ１がデータをライトし、ライトデータはデータＦＩＦＯ３５に格納される。アドレスの下位の３ビット全てが１であるようなメモリアドレスに対応するライトデータがデータＦＩＦＯ３５に格納された時に、メモリインタフェースブロック３２に対してリクエスト生成ブロック３４はメモリライトアクセスの為にメモリアクセス要求信号を有効にする。メモリインタフェースブロック３２は調停後、アクセスを許可するとともに、アドレス生成ブロック３３からメモリアクセスアドレスを、データＦＩＦＯ３５からメモリライトデータを受け取り、メモリ２に対してアドレスの下位の３ビットが０であるメモリアドレスから８バイトのアクセスを開始する。この時、バーストアクセスの開始時にアクセス開始アドレスの下位の３ビットが０でない場合やランダムアクセス時にもアドレスの下位の３ビットが０であるアドレスからメモリ２にアクセスする。ただし、本来データをライトすべきアドレス以外は、メモリ２に対するライトコマンドをマスクすることによって、目的のデータのみメモリ２に格納する。
【００４３】
また、ＣＰＵ１がライトデータをデータＦＩＦＯ３５にライトすると、ライトアクセスタイマー３４３が０にクリアされ、カウントアップを開始する。ライトアクセスタイマー３４３が所定の値までカウントアップしたにもかかわらず、データＦＩＦＯ３５にライトされたデータが、メモリ２に書き込まれていない時、ＲＥＱ生成回路３４２はメモリインタフェースブロック３２に対するメモリアクセス要求信号を有効にして、データＦＩＦＯ３５に格納されたデータをメモリ２に書き込む。
【００４４】
なお、ＣＰＵ１によってデータＦＩＦＯ３５に一度に書き込まれるバイト数、データＦＩＦＯ３５のバイト数、メモリアクセス要求信号を有効する時の判断にもちいるアドレスのビット数などは、本実施例と異なっていてもよい。
【００４５】
（実施の形態５）
本発明の請求項１５に記載された発明の実施の形態について図６を用いて説明する。１はＣＰＵ、２はデータを格納するメモリ、３はＣＰＵ１からメモリへのアクセスを制御するメモリ制御装置、３１はＣＰＵ１から入力される信号を内部のシステムクロックに同期化する同期化回路、３２はメモリ２に対する制御信号を生成するメモリインタフェースブロック、３３は同期化回路３１経由でＣＰＵ１によって設定されたアドレスをもとにメモリインタフェースブロック３２へのアドレスを生成するアドレス生成ブロック、３４はメモリインタフェースブロック３２に対するメモリアクセス要求信号を生成するリクエスト生成ブロック、３５はＣＰＵ１によって書き込まれたライトデータや、メモリ２から読み出されたメモリリードデータを格納する１２バイトのデータＦＩＦＯであり、アドレス生成ブロック３３とデータＦＩＦＯ３５はＣＰＵ１のアドレス空間にマッピングされている。３６は、ＣＰＵ１に対するウェイト信号を生成するウェイト生成回路である。ＣＰＵ１からメモリ２へのライトアクセスに関して説明する。ＣＰＵ１はメモリ２へのアドレスをメモリ生成ブロック３３に設定する。
【００４６】
次にＣＰＵ１はメモリ２へのライトデータをデータＦＩＦＯ３５にライトする。
データＦＩＦＯ３５に８バイトのライトデータが格納されると、リクエスト生成ブロック３４はメモリインタフェースブロック３２に対するメモリライトアクセスの為にメモリアクセス要求信号を有効にする。メモリインタフェースブロック３２によって調停後、メモリアクセスが許可されると、アドレス生成ブロック３３、データＦＩＦＯ３５はメモリ２に対するアドレス、８バイトのライトデータをメモリインタフェースブロック３２に転送し、メモリインタフェースブロック３２はメモリ２に対してデータを８バイトライトする。リクエスト生成ブロック３４がメモリアクセス要求信号を有効にしてから、メモリアクセスが許可されるまでの間に、ＣＰＵ１からのデータＦＩＦＯ３５への連続するライト命令によって、データＦＩＦＯ３５にデータを格納する為の領域が無くなった場合、ＣＰＵ１がデータＦＩＦＯ３５に対するライト命令に対してウェイト生成回路３６は、ウェイト信号を有効にする。メモリインタフェースブロック３２によってメモリアクセスが許可されると、メモリ２へのライトデータをデータＦＩＦＯ３５からメモリインタフェースブロック３２に転送できるので、データＦＩＦＯ３５の格納領域に空きができる。データＦＩＦＯ３５の格納領域に空きができると、ウェイト生成回路３６はＣＰＵ１に対するウェイト信号を無効にする。ＣＰＵ１は、ウェイト信号が無効になると、データＦＩＦＯ３５へのライト動作を完了する。
【００４７】
【発明の効果】
以上のように本発明によれば、前記信号処理手段からのメモリリードアクセスの高速化をはかるとともに、前記信号処理手段とメモリ制御装置間のバス信号の本数を削減して、低コストのメモリ制御装置を提供できる。
【図面の簡単な説明】
【図１】本発明の実施の形態１〜４におけるメモリ制御装置のブロック図
【図２】本発明の実施の形態１〜３におけるアドレス生成ブロックのブロック図
【図３】本発明の実施の形態１におけるメモリリード時のフローチャート
【図４】本発明の実施の形態２におけるリクエスト生成ブロックのブロック図
【図５】本発明の実施の形態４におけるリクエスト生成ブロックのブロック図
【図６】本発明の実施の形態５におけるメモリ制御装置のブロック図
【符号の説明】
１  ＣＰＵ
２  メモリ
３  メモリ制御装置
３１  同期化回路
３２  メモリインタフェース
３３  アドレス生成ブロック
３４  リクエスト生成ブロック
３５  データＦＩＦＯ
３６  ウェイト生成回路
３３１  下位アドレスレジスタ
３３２  上位アドレスレジスタ
３３３  下位アドレスカウンタ
３３４  上位アドレスカウンタ
３４１  アクセス方向レジスタ
３４２  ＲＥＱ生成回路
３４３  ライトアクセスタイマー
【図１】
2004220486.tif 000003
【図２】
2004220486.tif 000004
【図３】
2004220486.tif 000005
【図４】
2004220486.tif 000006
【図５】
2004220486.tif 000007
【図６】
2004220486.tif 000008