(57)【要約】【課題】連続処理ユニットと非連続処理ユニットを含む複数のアクセスユニットからのアクセス要求があった場合において、メモリバンド幅をあげることができるようにする。【解決手段】メモリ制御装置は複数のバンクを有するメモリを制御する。メモリ制御装置は、第１のアクセスユニットから出される第１のアクセス要求を受け付けた後に第２のアクセスユニットから出される第２のアクセス要求を受け付けるように制御するアクセス制御手段を有する。このアクセス制御手段は、第２のアクセス要求のうち、第１のアクセス要求でアクセスされたバンクと相違し、かつ第１のアクセスユニットが続けてアクセスする可能性の少ない非アクセスバンクへのアクセス要求を受け付けるように制御する。【選択図】図１
2008269348.tif 000002
【特許請求の範囲】
【請求項１】
複数のバンクを有するメモリを制御するメモリ制御装置であって、
第１のアクセスユニットから出される第１のアクセス要求を受け付けた後に第２のアクセスユニットから出される第２のアクセス要求を受け付けるように制御するアクセス制御手段を有し、
該アクセス制御手段は、前記第２のアクセス要求のうち、前記第１のアクセス要求でアクセスされたバンクと相違し、かつ第１のアクセスユニットが続けてアクセスする可能性の低い非アクセスバンクへのアクセス要求を受け付けるように制御するメモリ制御装置。
【請求項２】
前記第１のアクセスユニットが前記第１のアクセス要求後に続けてアクセスしようとするバンクを予測するバンク予測手段を更に有し、
該アクセス制御手段は、前記バンク予測手段が予測した予測バンクと異なるバンクを前記非アクセスバンクとみなして前記アクセス要求を受け付けるように制御する請求項１記載のメモリ制御装置。
【請求項３】
前記バンク予測手段は、前記第１のアクセスユニットが前記第１のアクセス要求でアクセスした第１のバンクを前記予測バンクとする請求項２記載のメモリ制御装置。
【請求項４】
前記バンク予測手段は、前記第１のアクセスユニットが前記第１のアクセス要求でアクセスした第１のバンクおよび該第１のバンクの隣のバンクを前記予測バンクとする請求項２記載のメモリ制御装置。
【請求項５】
前記第２のアクセス要求によって、前記メモリから読み出したデータの前記第２のアクセスユニットに備えられたバッファメモリへの書き込みを制御する書込制御手段を更に有する請求項１〜４のいずれか一項記載のメモリ制御装置。
【請求項６】
中央処理装置を前記第１のアクセスユニットとし、連続したアドレスを指定して前記メモリからデータを読み出す連続処理モジュールを前記第２のアクセスユニットとして作動する請求項１〜５のいずれか一項記載のメモリ制御装置。
【請求項７】
前記複数のバンクとして少なくとも４つのバンクを有するメモリを制御する請求項１〜６のいずれか一項記載のメモリ制御装置。
【請求項８】
前記メモリは、同期式メモリである請求項１〜７のいずれか一項記載のメモリ制御装置。
【請求項９】
表示パネルにおける映像表示を制御する請求項１〜８のいずれか一項記載のメモリ制御装置。
【請求項１０】
複数のバンクを有するメモリを制御するメモリ制御方法であって、
第１のアクセスユニットから出される第１のアクセス要求を受け付けた後に第２のアクセスユニットから出される第２のアクセス要求を受け付けるように制御し、
前記第２のアクセス要求のうち、前記第１のアクセス要求でアクセスされたバンクと相違し、かつ第１のアクセスユニットが続けてアクセスする可能性の低い非アクセスバンクへのアクセス要求を受け付けるように制御するメモリ制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のバンクを有するメモリを制御するメモリ制御装置およびメモリ制御方法に関する。
【背景技術】
【０００２】
従来、パーソナルコンピュータ等の情報処理装置のメインメモリとして、シンクロナスダイナミックランダムアクセスメモリ（以下、ＳＤＲＡＭという）が使用されている。ＳＤＲＡＭは、キャッシュメモリのバースト転送をクロックに同期して高速に行えるようにした同期式メモリである。
【０００３】
このＳＤＲＡＭは、連続したアドレスを指定して、データの読み書きを行うバーストアクセスでは、連続したクロック毎にデータの読み書きを行える。この場合、メモリバンド幅（１秒間に読み出しできるデータの量）の最大値はクロック周波数×ビット幅として求められる。
【０００４】
ところが、２つのバーストアクセスの間の期間は、ＳＤＲＡＭにアクセスすることできない。そのため、２つのバーストアクセスの間に時間が空くと、メモリバンド幅を低下させてしまう。
【０００５】
そこで、従来、ＳＤＲＡＭの内部を複数（２つないし４つ）のバンクに分割して行う連続アクセスモードがあった。この連続アクセスモードでは、クロック制御によりアクセスするバンクを切り替えながら各バンクに連続してアクセスするようにしている。
【０００６】
また、このバンク分割による連続アクセスモードでは、同じバンクへのアクセス要求が連続すると、そのバンクへのプリチャージ動作が終了するまでの無駄な時間が生じる。そのため、同じバンクへのアクセス要求が連続しないようにアクセス要求の順序を入れ替える技術がすでに知られていた。
【０００７】
これによると、バーストアクセスの実行中にそのバーストアクセスでアクセスされているバンクとは別のバンクへのアクセス要求を受け付け、先のバーストアクセスの直後から連続して次のバーストアクセスを実行することができる。
【０００８】
そして、ＳＤＲＡＭにアクセス要求を出すアクセスユニットが単一の場合は上記の技術で対応できる。
【０００９】
しかし、複数のアクセスユニットがＳＤＲＡＭにアクセスするときは各アクセスユニットがアクセス要求を出すバンクを相互に制御することが困難であるため、同じバンクに連続してアクセスする可能性が生じる。
【００１０】
そこで、従来、特許文献１に次のようなメモリ制御装置が開示されていた。このメモリ制御装置は、複数のアクセスユニットがＳＤＲＡＭにアクセス要求を出す場合において、異なるバンクに対するアクセス要求を出力するアクセスユニットの優先順位を上げることによって、異なるバンクに連続してアクセスできるようにしている。
【特許文献１】特許第３８１９００４号公報
【発明の開示】
【発明が解決しようとする課題】
【００１１】
ところで、複数のアクセスユニットが異なるバンクを対象として交互にアクセス要求が出すのであれば、メモリバンド幅の低下（バンド効率の低下）はない。
【００１２】
一般に、ＳＤＲＡＭにアクセスする場合において、バースト長（クロック数）を長くするとメモリバンド幅を高くすることができるが、その反面、バーストアクセス中に他のモジュール（例えばＣＰＵ）がＳＤＲＡＭにアクセスすることができなくなってしまう。そのため、バースト長は使用するＳＤＲＡＭの仕様に従った最も短いデータサイズに設定される。
【００１３】
しかし、バースト長を単に短くするだけでは、データの転送されない時間が増えるだけになってしまい、メモリバンド幅が低下してしまう。
【００１４】
一方、映像処理モジュールのように、連続したアドレスを指定してデータを読み出すことが予め決まっているアクセスユニット（連続処理ユニットともいう）については、アクセスの対象となるバンクが交互になるようにアクセス要求の優先順位を変更するなどしてメモリバンド幅をあげることができる。
【００１５】
しかし、連続処理ユニットに加えて、連続したアドレスを指定してデータを読み出すことが予め決まっていないアクセスユニット（非連続処理ユニットといい、例えばＣＰＵ）がＳＤＲＡＭにアクセスする場合があり、このような場合には次のような問題を生じる。
【００１６】
例えば、Ａ、Ｂ、Ｃ、Ｄの４つのバンクがあった場合において、ある連続処理ユニットからバンクＡへのアクセス要求があったとする。この場合、従来技術によると、他の連続処理ユニットからのアクセス要求がバンクＡ以外のバンク（例えばバンクＢ）を対象としているときは、そのアクセス要求の優先順位を上げることになるので、異なるバンクに連続してアクセスできるようになる。
【００１７】
ところが、上記の場合において、非連続処理ユニットがバンクＢへのアクセス要求を出すことが考えられる。つまり、優先順位を上げたアクセス要求でアクセスされるバンクと、非連続処理ユニットがアクセスしようとしているバンクとが同じになることが考えられる。そうすると、非連続処理ユニットからのアクセス要求があることによって、メモリバンド幅をあげることができなくなってしまう。
【００１８】
そのため、特許文献１に示した従来技術のように、異なるバンクへのアクセス要求を出すアクセスユニットの優先順位を上げるだけでは、メモリバンド幅をあげることができない場合があった。
【００１９】
そこで、本発明は上記課題を解決するためになされたもので、連続処理ユニットと非連続処理ユニットを含む複数のアクセスユニットからのアクセス要求があった場合において、メモリバンド幅をあげることができるようにしたメモリ制御装置およびメモリ制御方法を提供することを目的とする。
【課題を解決するための手段】
【００２０】
上記課題を解決するため、本発明は、複数のバンクを有するメモリを制御するメモリ制御装置であって、第１のアクセスユニットから出される第１のアクセス要求を受け付けた後に第２のアクセスユニットから出される第２のアクセス要求を受け付けるように制御するアクセス制御手段を有し、そのアクセス制御手段は、第２のアクセス要求のうち、第１のアクセス要求でアクセスされたバンクと相違し、かつ第１のアクセスユニットが続けてアクセスする可能性の低い非アクセスバンクへのアクセス要求を受け付けるように制御するメモリ制御装置を特徴とする。
【００２１】
また、本発明は複数のバンクを有するメモリを制御するメモリ制御方法であって、第１のアクセスユニットから出される第１のアクセス要求を受け付けた後に第２のアクセスユニットから出される第２のアクセス要求を受け付けるように制御し、第２のアクセス要求のうち、第１のアクセス要求でアクセスされたバンクと相違し、かつ第１のアクセスユニットが続けてアクセスする可能性の低い非アクセスバンクへのアクセス要求を受け付けるように制御するメモリ制御方法を提供する。
【発明の効果】
【００２２】
以上詳述したように、本発明によれば、連続処理ユニットと非連続処理ユニットを含む複数のアクセスユニットからのアクセス要求があった場合において、メモリバンド幅をあげることができるようにしたメモリ制御装置およびメモリ制御方法が得られる。
【発明を実施するための最良の形態】
【００２３】
以下、本発明の実施の形態について説明する。なお、同一要素には同一符号を用い、重複する説明は省略する。
【００２４】
図１は、本発明の実施の形態に係るメモリ制御システム１の構成を示すブロック図である。メモリ制御システム１は、ＳＤＲＡＭ１００と、ＳＤＲＡＭ１００へのアクセスを制御するメモリ制御装置１０１と、メモリ制御装置１０１で制御された信号を用いて映像を表示する表示パネル１１５とを有している。
【００２５】
また、メモリ制御システム１はＣＰＵ（Central  Processing  Unit）１０２と、ＭＰＥＧ（Moving  Picture  Experts  Group）デコーダ１０３と、複数（ｎ個）の映像処理モジュール１０４ａ，１０４ｂ・・・１０４ｃとを有している。
【００２６】
そして、メモリ制御システム１では、非連続処理モジュールとしてのＣＰＵ１０２およびＭＰＥＧデコーダ１０３が出すアクセス要求と、連続処理モジュールとしての映像処理モジュール１０４ａ，１０４ｂ・・・１０４ｃが出すアクセス要求とをメモリ制御装置１０１が制御して異なるバンクへのアクセスが連続するようにしている。
【００２７】
なお、非連続処理モジュールは第１のアクセスユニットであり、ここから出されるアクセス要求が第１のアクセス要求である。また、連続処理モジュールは第２のアクセスユニットであり、ここから出されるアクセス要求は第２のアクセス要求である。
【００２８】
ＳＤＲＡＭ１００は同期式メモリであって、内部がＡ，Ｂ，Ｃ，Ｄの４つのバンクに分けられている。ＳＤＲＡＭ１００は図２に示すように、２５６ｂｙｔｅ毎に１バンクとなるようにバンクＡ，Ｂ，Ｃ，Ｄとアドレスとの関係が定義されている。
【００２９】
なお、このバンクＡ，Ｂ，Ｃ，Ｄとアドレスとの関係は、上記のように２５６ｂｙｔｅ毎に限定されるものではない。また、ＳＤＲＡＭ１００はＡ，Ｂ，Ｃ，Ｄの４つのバンクに分けられているが、少なくとも４つに分けられていればよく、４つより多くてもよい。
【００３０】
メモリ制御装置１０１は、アクセス制御部１１０と、バンク予測部１１１と、書込制御部１１２とを有している。また、メモリ制御装置１０１は、制御した信号を用いた表示パネル１１５による映像表示を制御する。
【００３１】
アクセス制御部１１０は、ＣＰＵ１０２、ＭＰＥＧデコーダ１０３および映像処理モジュール１０４ａ，１０４ｂ・・・１０４ｃからのアクセス要求の順序を異なるバンクへのアクセス要求が連続するように制御する。
【００３２】
この場合、アクセス制御部１１０は、非連続処理モジュール（例えば、ＣＰＵ１０２）からのアクセス要求を受け付けた後に連続処理モジュール（例えば、映像処理モジュール１０４ａ）からのアクセス要求を受け付けつけるようにしてアクセス要求の順序を制御する。
【００３３】
バンク予測部１１１は、非連続処理モジュール（例えば、ＣＰＵ１０２）がアクセス要求をした後のアクセス要求によって続けてアクセスしようとするバンクを予測する。
【００３４】
書込制御部１１２は、映像処理モジュール１０４ａ，１０４ｂ・・・１０４ｃからのアクセス要求によって、ＳＤＲＡＭ１００から読み出したデータの後述するバッファメモリ１０５ａ，１０５ｂ・・・１０５ｃへの書き込みを制御する。
【００３５】
ＣＰＵ１０２はＳＤＲＡＭ１００に記憶されたプログラムを実行する装置で、図示しない入力装置や記憶装置からデータを受け取り、演算・加工した上で、出力装置や記憶装置に出力する。また、ＣＰＵ１０２はこれらの動作を実行する際にメモリ制御装置１０１を通じてＳＤＲＡＭ１００にアクセス要求を出力する。
【００３６】
ＭＰＥＧデコーダ１０３は、ＭＰＥＧ方式で符号化されているデータの復号化処理を施して映像信号を再生する。また、ＭＰＥＧデコーダ１０３は復号化処理を実行する際にメモリ制御装置１０１を通じてＳＤＲＡＭ１００にアクセス要求を出力する。
【００３７】
映像処理モジュール１０４ａ，１０４ｂ・・・１０４ｃは同じ構成を有しているので、映像処理モジュール１０４ａについて図４を参照して説明する。図４に示すように、映像処理モジュール１０４ａはバッファメモリ１０５ａと、グラフィックス回路１０６を有している。バッファメモリ１０５ａはＳＤＲＡＭ１００の各バンクに割り当てられた４つの記憶部ＭＡ，ＭＢ，ＭＣ，ＭＤを有している。
【００３８】
バッファメモリ１０５ａにはＳＤＲＡＭ１００から読み出したデータが記憶される。グラフィックス回路１０６はバッファメモリ１０５のＭＡ，ＭＢ，ＭＣ，ＭＤからこの順にデータを読み出して所定の映像信号処理を行い、映像データを出力する。
【００３９】
次に、メモリ制御システム１の動作内容について、メモリ制御装置１０１の動作内容を中心に説明する。
【００４０】
以下の説明では、ＣＰＵ１０２と、映像処理モジュール１０４ａとがともにＳＤＲＡＭ１００にアクセス要求を出す場合を想定している。
【００４１】
メモリ制御装置１０１は、複数のバンクにアクセスしようとするアクセス要求をＣＰＵ１０２および映像処理モジュール１０４ａのそれぞれから受け付ける。その場合、アクセス制御部１１０がＣＰＵ１０２からのアクセス要求の後に、映像処理モジュール１０４ａからのアクセス要求を受け付けるようにしてアクセス要求の順序を入れ替える。
【００４２】
ここで、仮に、メモリ制御装置１０１が映像処理モジュール１０４ａからのアクセス要求のうち、ＣＰＵ１０２がアクセスしたバンクと異なるバンクへのアクセス要求であればいずれでもよいとし、そのようなアクセス要求を受け付けるとする。すると、ＣＰＵ１０２が再びアクセス要求を出したときに映像処理モジュール１０４ａからのアクセス要求とバンクが同じになることがある。
【００４３】
例えば、ＣＰＵ１０２のアクセス要求がバンクＡへのアクセス要求であったため、映像処理モジュール１０４ａのアクセス要求はバンクＡとは異なるバンクＢ，Ｃ，Ｄへのアクセス要求ならどれでもよいとする。すると、ＣＰＵ１０２が次にアクセスする可能性の高いバンク（例えばバンクＢ）へのアクセス要求までも受け付けてしまうことがある。そうすると、映像処理モジュール１０４ａのアクセス要求とバンクが同じになってしまう。
【００４４】
そこで、アクセス制御部１１０はＣＰＵ１０２からのアクセス要求を受け付けた後に、映像処理モジュール１０４ａからのアクセス要求のうち、ＣＰＵ１０２がアクセスしそうもないバンク（ＣＰＵ１０２が続けてアクセスする可能性の低い（少ない）バンク、以下「非アクセスバンク」という）にアクセスしようとするアクセス要求を受け付ける。
【００４５】
その際、メモリ制御装置１０１では、バンク予測部１１１によってＣＰＵ１０２がアクセス要求を出した後の事後アクセス要求でアクセスしようとするバンクを予測している。バンク予測部１１１が予測するバンクを予測バンクという。
【００４６】
そして、アクセス制御部１１０はバンク予測部１１１の予測結果に基づいて、ＣＰＵ１０２のアクセス要求の後に映像処理モジュール１０４ａからのアクセス要求のうち、どのバンクへのアクセス要求を受け付けるかを決定する。
【００４７】
この場合、アクセス制御部１１０は映像処理モジュール１０４ａからのアクセス要求のうち、バンク予測部１１１が予測した予測バンクとは異なるバンクを非アクセスバンクとみなし、そのバンクにアクセスしようとするアクセス要求をＣＰＵ１０２のアクセス要求の後に受け付ける。
【００４８】
ＣＰＵ１０２は非連続処理ユニットであるため、映像処理モジュール１０４ａとは異なり、ＳＤＲＡＭ１００にアクセスする際に、連続したバンクにアクセスすることが予め決まっているとはいえない。そのため、ＣＰＵ１０２が連続したアクセス要求でアクセスしようとする一連のバンクに映像処理モジュール１０４ａのアクセス要求のような規則性が現われることは少ない。
【００４９】
しかしながら、ＣＰＵ１０２の連続したアクセス要求では、一度アクセスされたバンクから、ＣＰＵ１０２が次にアクセスする可能性の高いバンクを予測することが可能である。
【００５０】
また、この予測したバンクをはずせば、同じバンクへのアクセス要求が連続する事態を少なくすることができる。
【００５１】
さらに、ＣＰＵ１０２が続けてアクセスしようとするバンクは、ＣＰＵ１０２からのアクセス要求を一旦受け付けてみないと明確にならない。
【００５２】
そのため、メモリ制御装置１０１では、一旦ＣＰＵ１０２のアクセス要求を受け付けて、そのアクセス要求に基づき、バンク予測部１１１によって次にＣＰＵ１０２がアクセスしそうなバンクを予測し、その予測したバンク（予測バンク）とは異なるバンクを非アクセスバンクとみなしている。
【００５３】
こうすることで、ＣＰＵ１０２が再びアクセス要求をしたときに映像処理モジュール１０４ａのアクセス要求とバンクが同じになる事態を回避することができる。
【００５４】
そして、ＣＰＵ１０２が連続してアクセスするときは同じバンクか、その両隣のバンクに再びアクセスすることが多いと考えられる。したがって、例えば、ＣＰＵ１０２がバンクＡへのアクセス要求を出したとき、バンク予測部１１１では、ＣＰＵ１０２がその後の事後アクセス要求で同じバンクＡか、その両隣のバンクＢ，Ｄに再びアクセスするであろうと予測して、バンクＡ，Ｂ，Ｄを予測バンクとする。この場合、バンクＡが第１のバンクになる。
【００５５】
すると、アクセス制御部１１０はＣＰＵ１０２からのバンクＡへのアクセス要求を受け付けた後、映像処理モジュール１０４ａからのアクセス要求のうち、バンクＡ，Ｂ，Ｄとは異なるバンクＣへのアクセス要求を受け付けることになる。
【００５６】
ここで、このようなバンク予測部１１１におけるバンクの予測と、アクセス制御部１１０におけるアクセス要求の決定とを模式的に図示すると、図６（ａ）のようになる。図６（ａ）は正方形の領域の４隅にバンクＡ，Ｂ，Ｃ，Ｄが配置された様子が描かれている。
【００５７】
映像処理モジュール１０４ａは連続処理ユニットであるため、時計回りの指定ラインＬに沿って、アクセスしようとするバンクをバンクＡ，Ｂ，Ｃ，Ｄと順次切り替えながらアクセス要求を出すとする。
【００５８】
これに対し、ＣＰＵ１０２からのアクセス要求にはこのような規則性が現われることが少ない。そこで、ＣＰＵ１０２が再びアクセスしそうなバンク（ＣＰＵ１０２がアクセスしやすいバンク）をバンク予測部１１１が予測して、アクセス制御部１１０がその予測で決まったバンクを避ける形を取っている。
【００５９】
つまり、アクセス制御部１１０はＣＰＵ１０２の次回のアクセス要求を先取りして、そのアクセス要求でアクセスされるであろうバンクを避ける形で、映像処理モジュール１０４ａからのアクセス要求を受け付ける。
【００６０】
具体的には、バンク予測部１１１がバンクＡを予測バンクとする予測Ｐ１またはバンクＢ、Ｄをそれぞれ予測バンクとする予測Ｐ２、Ｐ３を実行し、アクセス制御部１１０は映像処理モジュール１０４ａからのアクセス要求のうち、バンクＣへのアクセス要求を受け付けるための決定Ｄ１を実行する。したがって、アクセス制御部１１０はＣＰＵ１０２がアクセスしようとしたバンクの対角位置に配置されるバンクへのアクセスを受け付けている。
【００６１】
また、ＳＤＲＡＭ１００がバンクＡ、Ｂ、Ｃ、Ｄ、Ｅの５つのバンクを有するとした場合は図６（ｂ）に示すようになる。この場合、バンク予測部１１１は上記予測Ｐ１、予測Ｐ２を実行するとともに、バンクＥを予測バンクとする予測Ｐ４を実行する。アクセス制御部１１０が決定Ｄ１に加えて、バンクＤへのアクセス要求を受け付けるための決定Ｄ２を実行する。
【００６２】
次に、以上の動作について、図３，５を参照して具体的に説明する。ここで、ＣＰＵ１０２は、バンクＡに２回、バンクＢに２回、バンクＣに２回、バンクＤに１回、というようにアクセスするとする。すなわち、ＣＰＵ１０２は図３に示すアクセス要求ｒ１１、ｒ１２，ｒ１３、ｒ１４、ｒ１５、ｒ１６、ｒ１７を出すとする。
【００６３】
また、映像処理モジュール１０４ａはアクセス要求ｒ２１、ｒ２２，ｒ２３、ｒ２４およびアクセス要求ｒ３１、ｒ３２，ｒ３３、ｒ３４を出すとする。アクセス要求ｒ２１、ｒ２２，ｒ２３、ｒ２４と、アクセス要求ｒ３１、ｒ３２，ｒ３３、ｒ３４とは、それぞれアクセスしようとするバンクがバンクＡ、Ｂ、Ｃ、Ｄの順に切り替えられている。
【００６４】
そして、アクセス制御部１１０はＣＰＵ１０２からのアクセス要求ｒ１１を受け付けた後に、映像処理モジュール１０４ａからのアクセス要求ｒ２１、ｒ２２，ｒ２３、ｒ２４のいずれかを受け付ける。
【００６５】
この場合、ＣＰＵ１０２が続けてアクセスしようとするバンクは、アクセス要求ｒ２１でアクセスしようとしたバンクと同じバンクおよびその両隣のバンクである。そのため、バンク予測部１１１はバンクＡ，Ｂ，Ｄを予測バンクとし、その予測結果をアクセス制御部１１０に通知する。
【００６６】
すると、アクセス制御部１１０は、映像処理モジュール１０４ａからのアクセス要求のうち、バンクＡ，Ｂ，Ｄへのアクセス要求を除いたバンクＣへのアクセス要求ｒ２３を受け付ける。そうすると、ＣＰＵ１０２からのアクセス要求ｒ２１と、映像処理モジュール１０４ａからのアクセス要求ｒ２３とが連続する。しかもこれらのアクセス要求は異なるバンクへのアクセス要求となる。
【００６７】
次に、アクセス制御部１１０はＣＰＵ１０２からのアクセス要求ｒ１２を受け付けた、その後に、映像処理モジュール１０４ａからのアクセス要求ｒ２１，ｒ２２，ｒ２４、ｒ３１、ｒ３２，ｒ３３、ｒ３４のいずれかを受け付ける。この場合も、予測バンクはバンクＡ，Ｂ，Ｄである。
【００６８】
そのため、アクセス制御部１１０はＣＰＵ１０２からのアクセス要求ｒ１２を受け付けた後に、映像処理モジュール１０４ａからのアクセス要求ｒ３３を受け付ける。そうすると、この場合も、異なるバンクへのアクセス要求が連続する。
【００６９】
さらに、アクセス制御部１１０はＣＰＵ１０２からのアクセス要求ｒ１３を受け付け、その後に、映像処理モジュール１０４ａからのアクセス要求ｒ２１，ｒ２２，ｒ２４、ｒ３１、ｒ３２、ｒ３４のいずれかを受け付ける。この場合、アクセス要求ｒ１３はバンクＢ１へのアクセス要求なので、予測バンクはバンクＢ，Ａ，Ｃである。
【００７０】
そのため、アクセス制御部１１０はＣＰＵ１０２からのアクセス要求ｒ１３を受け付けた後に、映像処理モジュール１０４ａからのアクセス要求ｒ２４を受け付ける。そうすると、この場合も、異なるバンクへのアクセス要求が連続する。
【００７１】
以下同様に、アクセス制御部１１０はＣＰＵ１０２からのアクセス要求ｒ１３、ｒ１４、ｒ１５、ｒ１６、ｒ１７を受け付け、その後に、映像処理モジュール１０４ａからのアクセス要求のうち、アクセス要求ｒ１３、ｒ１４、ｒ１５、ｒ１６、ｒ１７でＣＰＵ１０２がアクセスしたバンクと同じバンクおよびその両隣のバンク以外のバンクへのアクセス要求を受け付ける。なお、映像処理モジュール１０４ａからのそのほかのアクセス要求はＣＰＵ１０２からのアクセス要求に続けて他のユニットからのアクセスを挟まずに連続して受け付ける。
【００７２】
以上のようにすることによって、ＣＰＵ１０２からのアクセス要求と、映像処理モジュール１０４ａからのアクセス要求とが連続する。しかも、双方からのアクセス要求は異なるバンクへのアクセス要求となる。
【００７３】
ＣＰＵ１０２は非連続処理ユニットであるため、連続したアクセス要求で連続したアドレスを指定することが少なく、アクセスしようとするバンクがランダムになりやすい。したがって、映像処理モジュール１０４ａからのアクセス要求に加えてＣＰＵ１０２からのアクセス要求が出されることによって、異なるバンクへのアクセス要求を連続して処理し難くなる。
【００７４】
そこで、メモリ制御装置１０１は先にＣＰＵ１０２からのアクセス要求を受け付けた上で、その後に映像処理モジュール１０４ａからのアクセス要求を受け付けるように、アクセス要求の順序を制御する。しかも、ＣＰＵ１０２からのアクセス要求を受け付けた後に、ＣＰＵ１０２が再びアクセスしそうなバンクを予測して、その予測した予測バンクとは異なるバンクへのアクセス要求を受け付けている。
【００７５】
こうして、メモリ制御装置１０１はＣＰＵ１０２からのアクセス要求と、映像処理モジュール１０４ａからのアクセス要求の双方のバンクが同じにならないようにしている。
【００７６】
これに対し、ＣＰＵ１０２のバンクＡへのアクセス要求を受け付けたあと、映像処理モジュール１０４ａのアクセス要求はバンクＡとは異なるバンクＢ，Ｃ，Ｄのどれでもよいとしてしまうと、図５のようになる。
【００７７】
図５に示すように、ＣＰＵ１０２からのアクセス要求ｒ１１、ｒ１２の後にそれぞれ映像処理モジュール１０４ａからのアクセス要求ｒ２２、ｒ３２を受け付ける。すると、各アクセス要求では、アクセスしようとするバンクがバンクＡ１、Ｂ、Ａ２、Ｂとなるため、異なるバンクへのアクセス要求が連続する。
【００７８】
しかし、映像処理モジュール１０４ａからのアクセス要求ｒ３２を受け付けた時点でＣＰＵ１０２がアクセス要求ｒ１３を出すと、バンクがどちらもバンクＢになり同じになってしまう。
【００７９】
そうなると、異なるバンクへのアクセス要求が連続しなくなり、メモリバンド幅をあげることができなくなってしまう。この場合は映像処理モジュール１０４ａからのアクセス要求ｒ２１を受け付ける格好になり、その後にＣＰＵ１０２のアクセス要求ｒ１３が受け付けられる。そのため、ＣＰＵ１０２の処理速度が遅くなり、ＣＰＵ１０２のレーテンシが悪化する。
【００８０】
以上のように、メモリ制御装置１０１はＣＰＵ１０２が続けてアクセスしそうなバンク（このバンクが予測バンクである）をＣＰＵ１０２からのアクセス要求に先回りして空けるようにして、映像処理モジュール１０４ａからのアクセス要求を受け付けるようにしている。
【００８１】
そのため、ＣＰＵ１０２からみると、自らがアクセスしようとしたバンクが他のユニット（例えば映像処理モジュール１０４ａ）によってアクセスされずにいつも空いているようにみえることになる。
【００８２】
一方、メモリ制御装置１０１では、アクセス制御部１１０によって、ＣＰＵ１０２からのアクセス要求にしたがい映像処理モジュール１０４ａからのアクセス要求の順序を変更している。そのため、映像処理モジュール１０４ａからの連続したアクセス要求はバンクが連続しなくなる。映像処理モジュール１０４ａがバンクＡ，Ｂ，Ｃ，Ｄから順にデータを読み出せるとは限られなくなる。
【００８３】
そこで、メモリ制御装置１０１では、映像処理モジュール１０４ａからのアクセス要求で読み出されたデータの書き込みを書込制御部１１２が次のように制御している。
【００８４】
バッファ１０５ａはＳＤＲＡＭ１００の各バンクに対応した割り当てがなされている。そのため、書込制御部１１２は各バンクから読み出したデータをバッファ１０５の対応する記憶部（ＭＡ，ＭＢ，ＭＣ，ＭＤのいずれか）に記憶させる。
【００８５】
そうすると、映像処理モジュール１０４ａでは、グラフィックス処理回路１０６がバッファ１０５ａの対応する記憶部（ＭＡ，ＭＢ，ＭＣ，ＭＤのいずれか）から順次データを読み出すことによって、連続したアドレスを指定した場合と同じようにして処理を行える。
【００８６】
なお、以上の実施の形態では、ＳＤＲＡＭ１００を例にとって説明したが、本発明はＳＤＲＡＭに限らず他の同期式メモリについても適用することができ、ＳＤＲＡＭ１００の場合と同様の効果が得られる。
【００８７】
また、ＣＰＵ１０２が連続してアクセスしようとするバンクを予測するにあたって、次のようにしてもよい。ＣＰＵ１０２の過去のアクセス実績を保持しておき、そのアクセス実績に基づき、バンク予測部１１１によってＣＰＵ１０２が次にアクセスしそうなバンクを予測する。アクセス実績は各バンクの累計したアクセス回数でもよいし、単位時間当たりのアクセス頻度でもよい。こうしたアクセス実績に基づいて次にアクセスしそうなバンクを予測すると、予測の精度を高めることができる。
【００８８】
さらに、予測バンクは、アクセスしようとしたバンクと同じバンクおよびその両隣のバンクとしなくてもよい。例えば、予測バンクは、アクセスしようとしたバンクと同じバンクおよび片側隣のバンクとしてもよい。
【００８９】
さらにまた、ＣＰＵ１０２が連続してアクセスしようとするバンクを予測せずに決めておき、そのバンクへのアクセス要求をはずして映像処理モジュール１０４ａからのアクセス要求を受け付けてもよい。例えば、ＣＰＵ１０２が続けてアクセスしようとするバンクは、アクセス要求でアクセスしようとしたバンクと同じバンクおよびその両隣のバンクと決めておき、これらのバンクへのアクセス要求をはずして映像処理モジュール１０４ａからのアクセス要求を受け付けてもよい。
【００９０】
以上の説明は、本発明の実施の形態についての説明であって、この発明の装置及び方法を限定するものではなく、様々な変形例を容易に実施することができる。又、各実施形態における構成要素、機能、特徴あるいは方法ステップを適宜組み合わせて構成される装置又は方法も本発明に含まれるものである。
【図面の簡単な説明】
【００９１】
【図１】本発明の実施の形態に係るメモリ制御システムの構成を示すブロック図である。
【図２】ＳＤＲＡＭのバンクとアドレスとの関係を示す図である。
【図３】本発明の実施の形態に係るメモリ制御システムにおけるＣＰＵおよび映像処理モジュールからのアクセス要求と、ＳＤＲＡＭのバンクとの関係を模式的に示す図である。
【図４】映像処理モジュールの構成を示すブロック図である。
【図５】本発明の実施の形態に係るメモリ制御システムと比較するためのＣＰＵおよび映像処理モジュールからのアクセス要求と、ＳＤＲＡＭのバンクとの関係を模式的に示す図である。
【図６】バンク予測部におけるバンクの予測と、アクセス制御部におけるアクセス要求の決定とを模式的に示す図で、（ａ）はバンクが４つの場合、（ｂ）はバンクが５つの場合である。
【符号の説明】
【００９２】
１…メモリ制御システム、１００…ＳＤＲＡＭ、１０１…メモリ制御装置、１０２…ＣＰＵ、１０３…ＭＰＥＧデコーダ、１０４ａ，１０４ｂ，１０４…映像処理モジュール、１０５…バッファメモリ、１１０…アクセス制御部、１１１…バンク予測部、１１２…書込制御部
【図１】
2008269348.tif 000003
【図２】
2008269348.tif 000004
【図３】
2008269348.tif 000005
【図４】
2008269348.tif 000006
【図５】
2008269348.tif 000007
【図６】
2008269348.tif 000008