(57)【特許請求の範囲】
【請求項１】
データ記憶エリアが複数のバンクに分割されているとともに各バンクが複数のページに分割されているダイナミックランダムアクセスメモリに対するアクセス要求を受けたときに、前記アクセス要求を基にアクセス対象のページをアクティブ化し、前記アクティブ化されたページに対してアクセスを実行するに先だって、その後アクセス対象となるバンクに対して先行プリチャージを実行するメモリ制御手段を備えてなるメモリコントローラ。
【請求項２】
データ記憶エリアが複数のバンクに分割されているとともに各バンクが複数のページに分割されているダイナミックランダムアクセスメモリに対するアクセス要求を受けたときに、前記アクセス要求を基にアクセス対象のページをアクティブ化し、前記アクティブ化されたページに対してアクセスを実行するに先だって、次にアクセス対象となるバンクに対して先行プリチャージを実行するメモリ制御手段を備えてなるメモリコントローラ。
【請求項３】
データ記憶エリアが複数のバンクに分割されているとともに各バンクが複数のページに分割され、各ページが相隣接するページとは異なるバンクに割り付けられているダイナミックランダムアクセスメモリに対するアクセス要求を受けたときに、前記アクセス要求を基にアクセス対象のバンクのページをアクティブ化し、前記アクティブ化されたページに対してアクセスを実行するに先だって、その後アクセス対象となるバンクに対して先行プリチャージを実行するメモリ制御手段を備えてなるメモリコントローラ。
【請求項４】
データ記憶エリアが複数のバンクに分割されているとともに各バンクが複数のページに分割され、各ページが相隣接するページとは異なるバンクに割り付けられているダイナミックランダムアクセスメモリに対するアクセス要求を受けたときに、前記アクセス要求を基にアクセス対象のバンクのページをアクティブ化し、前記アクティブ化されたページに対してアクセスを実行するに先だって、次にアクセス対象となるバンクに対して先行プリチャージを実行するメモリ制御手段を備えてなるメモリコントローラ。
【請求項５】
データ記憶エリアが複数のバンクに分割されているとともに各バンクが複数のページに分割され、各ページが相隣接するページとは異なるバンクに割り付けられているダイナミックランダムアクセスメモリに対するアクセス要求を受けたときに、前記アクセス要求を基にアクセス対象のバンクのページをアクティブ化し、この直後に次にアクセス対象となるバンクに対して先行プリチャージを実行し、その後前記アクティブ化されたページに対してリードまたはライトによるアクセスを実行するメモリ制御手段を備えてなるメモリコントローラ。
【請求項６】
データ記憶エリアが複数のバンクに分割されているとともに各バンクが複数のページに分割され、各ページが相隣接するページとは異なるバンクに割り付けられているダイナミックランダムアクセスメモリと少なくとも一つ以上の処理装置に接続されて、前記処理装置から前記ダイナミックランダムアクセスメモリに対するアクセス要求を受けたときに、前記アクセス要求を基にアクセス対象のバンクのページをアクティブ化し、この直後に次にアクセス対象となるバンクに対して先行プリチャージを実行し、その後前記アクティブ化されたページに対してリードまたはライトによるアクセスを実行するメモリ制御手段を備えてなるメモリコントローラ。
【請求項７】
データ記憶エリアが複数のバンクに分割されているとともに各バンクが複数のページに分割され、各ページが相隣接するページとは異なるバンクに割り付けられているダイナミックランダムアクセスメモリと複数の処理装置にそれぞれ接続されて、前記いずれかの処理装置から前記ダイナミックランダムアクセスメモリに対するアクセス要求を受けたときに、前記アクセス要求を基にアクセス対象のバンクのページをアクティブ化し、この直後に次にアクセス対象となるバンクに対して先行プリチャージを実行し、その後前記アクティブ化されたページに対してリードまたはライトによるアクセスを実行するメモリ制御手段を備えてなるメモリコントローラ。
【請求項８】
請求項７に記載のメモリコントローラにおいて、前記複数の処理装置から出力されるアクセス要求のうちいずれか一つのアクセス要求を選択して前記メモリ制御手段に出力するアクセス調停手段を備え、前記アクセス調停手段は、前記選択したアクセス要求によるアクセスが前記メモリ制御手段により実行されているときに、前記選択したアクセス要求よりも優先度の高いアクセス要求が新たに入力されたときには前記選択したアクセス要求によるアクセスの中断を前記メモリ制御手段に指令するとともに、前記新たに入力されたアクセス要求によるアクセスを前記メモリ制御手段に指令してなることを特徴とするメモリコントローラ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、メモリコントローラに係り、特に、画像データなどを記憶するダイナミック・ランダムアクセスメモリ（ＤＲＡＭ）をアクセスするに好適なメモリコントローラに関する。
【０００２】
【従来の技術】
近年、パーソナルコンピュータなどの急激な普及に伴い、パーソナルコンピュータの主記憶メモリとして使用されているＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）の供給量が増大するとともに価格が下がり、これによりパーソナルコンピュータ以外の電子機器にもＤＲＡＭが採用されている。このＤＲＡＭには、インタフェースのクロックに同期して連続した書き込みや読み出し（以下、バースト転送）を高速化したシンクロナスＤＲＡＭ（以下、ＳＤＲＡＭ）や、ＳＤＲＡＭのバースト転送をクロック信号の立上りと立ち下がりの両エッジに同期して実行することにより、バースト転送を２倍に高速化したダブルデータレートＳＤＲＡＭ（以下、ＤＤＲ−ＳＤＲＡＭ）やラムバスＤＲＡＭ（以下、ＲＤＲＡＭ）などがある。これらＤＲＡＭのうち特に、ＳＤＲＡＭは安価で大容量のメモリを構成できるため、利用する機器は増加している。またディスプレイに表示する画像データを一時的に保持するフレームメモリとして、これまで使用されてきた高価な専用メモリ（ＶＲＡＭ）の代わりに、ＳＤＲＡＭを使用するようになってきている。なお、ＳＤＲＡＭの規格は、ＪＥＤＥＣ規格２１−Ｃで定められている。
【０００３】
ＣＤＲＡＭの画像データをアクセスするデバイスとしては、例えば、画像データを読み出してディスプレイに転送する表示処理装置や、任意の図形を描画するために、それらの図形データを生成して画像データとして書き込む描画処理装置がある。またＳＤＲＡＭにデータを記憶するに際しては、ビデオ入力装置によって生成された画像データを書き込むこともできる。さらに、ＳＤＲＡＭを構成するに際しては、画像データを記憶するフレームメモリとメインメモリとを統合して一つのメモリにしたユニファイドメモリをＳＤＲＡＭで実現することもできる。ＳＤＲＡＭをユニファイドメモリとして構成した場合、ユニファイドメモリに対しては、画像データのアクセスの他に、プロセッサによる命令コードや各種データのアクセスが実行されるため、メモリアクセスを効率良く行う必要がある。
【０００４】
画像データをフレームメモリに記憶するに際して、フレームメモリには、画像データをデータ記憶エリアに保持するために、水平方向および垂直方向に有限な二次元のアドレス空間が割り当てられている。画像データは、ディスプレイ装置の表示画面（表示画素）に対応して、水平方向および垂直方向に配列された状態で保持される。表示画面に対応する各画素の画像データはそれぞれ数ビットないし数十ビットで構成されており、１画素の画像データのビット長はデータの形式によって決定される。
【０００５】
またフレームメモリとしてのＳＤＲＡＭに画像データを記憶するに際しては、データ記憶エリアを複数のバンク、例えば、４バンクに分割するとともに、各バンクを複数のページに分割し、各ページにロウアドレスが割り当てられている。このように構成されたフレームメモリに対してアドレスを設定するに際しては、リニアアドレスマッピングとタイルアドレスマッピングが採用されている。
【０００６】
リニアアドレスマッピングは、水平方向の画素データの並びをラインとしたときに、水平方向に配列された画素データ（表示画面の画素のうち水平方向に並んだ画素に対応した画像データ）に対して、水平方向に連続したアドレスを割り当てて、１ライン内の表示画素に対して全て同一のロウアドレス、すなわち同一ページのロウアドレスを割り当てる方式である。この場合、各ラインの画素データは、それぞれ同一バンクであるが別のロウアドレスが割り当てられるか、もしくは別のバンクのロウアドレスが割り当てられる。すなわち各ラインの画素データにライン毎に異なるページが割り当てられている。
【０００７】
一方、タイルアドレスマッピングは、例えば、水平方向に３２バイト、垂直方向に１６ラインの方形（以下、タイル）内の画素データに対して連続したアドレスを割り当てるとともに、１タイル内の画素データに対しては全て同一のロウアドレス、すなわち同一ページを割り当てる方式である。この場合、各タイルの画素データ（画像データ）はそれぞれ同一バンクであるが別のロウアドレスが割り当てられるかもしくは別のバンクのロウアドレスが割り当てられる。すなわち各タイルの画素データにはタイル毎に異なるページが割り当てられている。
【０００８】
ところで、ＳＤＲＡＭは、データを保持するためにリフレッシュ動作が必要であり、ＳＤＲＡＭをアクセスするに際しては、アクセス対象のページをロウアドレスで指定し、指定されたページに属する全てのデータをセンスアンプに転送して増幅するアクティブ化を行い、その後アクティブ化されたデータのうちカラムアドレスで指定されたデータに対してのみリードまたはライトによるアクセスを実行するようになっている。この場合、同一ページのデータに対しては連続したアクセスを行うことができる。しかし、ページが異なるときには、センスアンプにある全てのデータを元のページに戻すプリチャージを行い、その後アクセス対象のページに属する全てのデータをセンスアンプに転送して増幅するアクティブ化を実行することが必要である。
【０００９】
すなわち、同じページに属するデータをアクセスするときには連続したアクセスが可能であるあるため、アクセス効率を高めることができる。しかし、異なるページにアクセスするときにはページミスヒットとなり、アクセス対象のページに対してプリチャージを行った後、アクティブ化を行い、その後アクセス対象のページにアクセスする処理が必要であり、メモリアクセスの効率が低下することになる。このため、ＳＤＲＡＭをアクセスするに際しては、ページミスヒットの発生を少なくすることが望ましく、ＳＤＲＡＭにアドレスマッピングを設定するに際しては、装置の機能に合わせる必要がある。
【００１０】
すなわち、表示処理装置に用いるＳＤＲＡＭに対してリニアアドレスマッピングを適用した場合、表示処理装置は、ライン方向に左側から右側または右側から左側のいずれか一方向に連続してアクセスするため、１ラインをアクセスする間はページミスヒットが生じることはなく、ページミスヒットの発生を抑制することができる。しかし、表示処理装置に用いるＳＤＲＡＭに対してタイルアドレスマッピングを適用した場合、ページミスヒットの発生が多くなる。これは、表示処理装置においては、アクセスを開始するアドレスが任意であって、表示する画像のスクロールや複数の表示画像面（以下、プレーンと称する。）の境界が任意の位置に設定されることに起因している。このため、タイルアドレスマッピングを用いたＳＤＲＡＭに対して表示処理装置からアクセスを行うと、ライン方向に連続した画素データをアクセスするときにはタイル境界（タイルとタイルとの境界）を跨いてアクセスすることになるので、タイル境界を跨ぐ毎にページミスヒットが発生し、メモリアクセスの効率が低下する。
【００１１】
これに対して、リニアアドレスマッピングを用いたＳＤＲＡＭに対して描画処理装置からアクセスした場合、水平方向の描画であれば連続アクセスが可能であってページミスヒットの発生を少なくすることはできるが、水平方向や斜め方向の描画であれば、各サイクルごとに異なるページにアクセスすることになるので、描画サイクルごとにページミスヒットが発生し、メモリアクセスの効率が低下する。
【００１２】
すなわち、描画処理装置は、与えられた描画命令コードにしたがって任意の図形を生成し、生成した図形に関する画像データをＳＤＲＡＭの二次元のアドレス空間に書き込むようになっており、しかも描画する図形は任意の角度の直線や曲線で構成されているため、アクセス対象のアドレスは水平方向に連続であったり、垂直方向に連続であったり、あるいは斜め方向に連続あったりする。このため、描画処理装置に用いるＳＤＲＡＭにタイルアドレスマッピングを設定すれば、水平方向、垂直方向、斜め方向のいずれの方向にアクセスするときでも、タイル境界を超えるときにのみページミスヒットが発生するので、リニアアドレスマッピングを用いたときよりもページミスヒットの発生を少なくすることができる。従って、描画処理のためには、タイルアドレスマッピングが好ましく、フレームメモリをＳＤＲＡＭで実現する多くの機器にはタイルアドレスマッピング方式が採用されている。
【００１３】
また、表示処理装置による画像データの読み出しは一種のリアルタイム性が要求されている。すなわち、画像データの読み出しがある一定の期間内に完了しなければディスプレイ装置に表示される画像にちらつきが生じる。このような画像のちらつきを防止するためには、ＳＤＲＡＭのページミスヒットの発生を抑制することにより、画像データのアクセス効率の向上を図る他に、ＳＤＲＡＭへのアクセスの調停が重要になる。特に、ユニファイドメモリ構成では描画処理装置によるアクセスとプロセッサなど他のデバイスからのアクセスとの競合が頻発するため、アクセス競合による画像データのアクセス遅延をいかに抑えるかが重要となる。
【００１４】
そこで、フレームメモリとしてのＳＤＲＡＭを効率良くアクセスするに際して、特開平８−２５５１０７号公報に記載されているように、アクセス対象のアドレスと前回アクセスしたアドレスとを比較してページヒットの判定を行い、ページミスヒットが発生したときにはバンクのプリチャージと新しいページのアクティブ化を実行した後に、ライトもしくはリードを実行し、ページヒットしたときにはバンクのプリチャージやアクティブ化を行うことなく直ちにライトもしくはリードを実行し、さらに、ＳＤＲＡＭの連続的なアクセスを実行できるように、所定単位で順次増分するアドレスカウンタを備え、且つ、同一ページを連続的にアクセスしている途中で異なるページをアクセスする場合には、異なるページにアクセスする直前にアクセスを中断し、表示処理装置による画像データの読み出しを効率良く行うようにしたものが提案されている。
【００１５】
【発明が解決しようとする課題】
しかし、従来技術においては、ＳＤＲＡＭのページヒットを判定するに際して、アクセス対象のアドレスと前回アクセスしたアドレスとを単に比較しているので、アクセス効率を高めるにも、ＳＤＲＡＭの特徴である複数バンクによるインタリーブアクセス（２または４つのバンクのうち各バンクのページを個別にアクティブ化することを利用し、アクセスを複数のバンクに分散し、アクセス効率を高めるアクセス方法）を活用することができない。
【００１６】
また、表示処理装置による画像データの読み出しにおいて、同一ページのデータに対して連続的なアクセスを行っている途中で異なるページにアクセスするときにはアクセスを中断してページミスヒットの発生を防止しているが、その後、後続のアクセスを実行するときには結局ページミスヒットが発生することになり、バンクに対するプリチャージとアクティブ化は避けられない。
【００１７】
さらに、従来技術においては、複数のアクセスが競合するときに、表示処理装置によるアクセスのリアルタイム性を考慮して調停することは考慮されていない。
【００１８】
本発明の課題は、ダイナミックランダムアクセスメモリに対するアクセスを効率良く行うことができるメモリコントローラを提供することにある。
【００１９】
【課題を解決するための手段】
前記課題を解決するために、本発明は、データ記憶エリアが複数のバンクに分割されているとともに各バンクが複数のページに分割されているダイナミックランダムアクセスメモリに対するアクセス要求を受けたときに、前記アクセス要求を基にアクセス対象のページをアクティブ化し、前記アクティブ化されたページに対してアクセスを実行するに先だって、その後または次にアクセス対象となるバンクに対して先行プリチャージを実行するメモリ制御手段を備えてなるメモリコントローラを構成したものである。
【００２１】
さらに、前記各メモリコントローラを構成するに際しては、ダイナミックランダムアクセスメモリとしては、データ記憶エリアが複数のバンクに分割されているとともに各バンクが複数のページに分割され、各ページが相隣接するページとは異なるバンクに割付けられているものを対象とすることもできる。
【００２２】
また、メモリコントローラをダイナミックランダムアクセスメモリと少なくとも一つ以上の処理装置に接続したり、あるいはメモリコントローラをダイナミックアクセスメモリと複数の処理装置にそれぞれ接続構成を採用することもできる。この場合、メモリコントローラとしては、以下の機能を有するもので構成することができる。
【００２３】
（１）ダイナミックランダムアクセスメモリに対するアクセス要求を受けたときに、前記アクセス要求をもとにアクセス対象のバンクのページをアクティブ化し、前記アクティブ化されたページに対してアクセスを実行するに先立って、その後アクセス対象となるバンクに対して先行プリチャージを実行するメモリ制御手段を備えてなる。

【００２４】
（２）ダイナミックランダムアクセスメモリに対するアクセス要求を受けたときに、前記アクセス要求を基にアクセス対象のバンクのページをアクティブ化し、前記アクティブ化されたページに対してアクセスを実行するに先だって、次にアクセス対象となるバンクに対して先行プリチャージを実行するメモリ制御手段を備えてなる。
【００２５】
（３）ダイナミックランダムアクセスメモリに対するアクセス要求を受けたときに、前記アクセス要求を基にアクセス対象のバンクのページをアクティブ化し、この直後に次にアクセス対象となるバンクに対して先行プリチャージを実行し、その後前記アクティブ化されたページに対してリードまたはライトによるアクセスを実行するメモリ制御手段を備えてなる。
【００２８】
前記メモリコントローラのうち複数の処理装置に接続されたメモリコントローラを構成するに際しては、以下の要素を付加することができる。
【００２９】
（１）前記複数の処理装置から出力されるアクセス要求のうちいずれか一つのアクセス要求を選択して前記メモリ制御手段に出力するアクセス調停手段を備え、前記アクセス調停手段は、前記選択したアクセス要求によるアクセスが前記メモリ制御手段により実行されているときに、前記選択したアクセス要求よりも優先度の高いアクセス要求が新たに入力されたときには前記選択したアクセス要求によるアクセスの中断を前記メモリ制御手段に指令するとともに、前記新たに入力されたアクセス要求によるアクセスを前記メモリ制御手段に指令してなる。
【００３２】
前記した手段によれば、アクセス対象のページをアクティブ化した後、アクティブ化されたページに対してアクセスを実行するに先立って、その後あるいは次にアクセス対象となるバンクに対して先行プリチャージを行っているため、その後あるいは次にアクセス対象となるバンクに対してアクセスを行うときにプリチャージを行うことなく、アクティブ化を行った後、リードまたはライトのアクセスを行うことができ、ページミスヒットによって異なるページにアクセスするときでも、プリチャージをした後、アクティブ化するまでの時間が不要となり、むだ時間を短縮することができ、効率良くアクセスすることができる。このため、単位時間当たりのアクセス可能なデータ量を増加することができ、バンド幅の向上に寄与することができる。
【００３３】
また、ある処理装置からのアクセス要求を選択してアクセスを実行しているといに、優先度の高いアクセス要求、例えば、リアルタイム性の高いアクセス要求が新たに入力され、複数の処理装置（デバイス）からのアクセス要求が競合したときには、選択したアクセス要求によるアクセスを中断し、新たに入力されたアクセス要求によるアクセスを実行するようにしているため、複数のアクセス要求が競合したときでも、優先度の高いアクセス要求（リアル性の高いアクセス要求）を優先して実行することができ、アクセス競合による画像データのアクセス遅延を抑制することができる。
【００３５】
【発明の実施の形態】
以下、本発明の一実施形態を図面に基づいて説明する。図１は本発明に係るメモリコントローラを画像処理システムに適用したときのシステム構成図である。図１において、画像処理システムは、例えば、パーソナルコンピュータに内蔵されるグラフィックスカードや自動車に搭載されるカーナビゲーションシステムに該当し、メモリコントローラ１とともに、複数の処理装置と単一のメモリを備えて構成されている。
【００３６】
複数の処理装置は、例えば、シーケンス処理やデータ処理を実行するプロセッサ（以下、ＣＰＵと称する。）２、二次元や三次元の図形描画処理を実行する描画処理装置（以下、ＲＵと称する。）３、ディスプレイ装置８１に表示画像データを転送する表示処理装置（以下、ＤＵと称する。）４、ビデオカメラ装置８２からビデオ画像データを取り込むビデオ処理装置（以下、ＢＵと称する。）５、外部記憶装置８３や通信装置８４などの周辺装置とのデータ転送を制御する入出力制御装置（以下、ＩＯＵと称する。）６から構成されており、各処理装置共通のメモリ７はＳＤＲＡＭで構成されている。なお、メモリ７としては、ＳＤＲＡＭよりも高速アクセスが可能なダブルデータレート（ＤＤＲ）ＤＲＡＭを用いることも可能である。
【００３７】
メモリ（ダイナミックランダムアクセスメモリ）７は、例えば、データ記憶エリアが複数のバンクに分割されているとともに、各バンクが複数のページに分割され、各ページが相隣接するページとは異なるバンクに割付けられている。そしてメモリ７の各ページには、ＣＰＵ２で処理される命令コードやデータ、ＲＵ３で処理される描画命令コードや描画データ、ＤＵ４から読み出される表示画像データ、ＶＵ５から書き込まれるビデオ画像データなどが記憶される。また命令コードやデータはＩＯＵ６によって周辺装置から書き込まれたり読み出されたりするようになっている。
【００３８】
システムの構成としては、メモリコントローラ１と、ＲＵ３、ＤＵ４、ＶＵ５、ＩＯＵ６をそれぞれ統合して１つのＬＳＩで実現することもできる。またこれらにＣＰＵ２を加えて１つのＬＳＩで実現することもできる。さらにメモリ７を加えて１つのＬＳＩで実現することもできる。なお、メモリアクセス元となるＣＰＵ２、ＲＵ３、ＤＵ４、ＶＵ５、ＩＯＵ６などの処理装置を以下説明のためにデバイスと称することにする。
【００３９】
メモリコントローラ１は、各デバイスからアクセス要求を受けたときに、いずれか１つのアクセス要求を選択するための調停を行い、アクセス要求を基にコマンドを生成し、このコマンドにしたがってメモリ７に対して読み出しや書き込みの処理（アクセス）を実行するようになっている。具体的には、メモリコントローラ１は、アクセス調停部１０、メモリ制御部１１、バンク管理およびアドレス生成部１２、マルチプレクス（以下、ＭＵＸと称する。）１４、データ制御部１５を備えて構成されている。
【００４０】
アクセス調停部１０は、各デバイスからのアクセス要求を受け、複数のデバイスからのアクセス要求が競合したときには、予め定められたれた優先度に基づいてメモリアクセスの順番を決定するように構成されている。メモリ制御部１１は、アクセス調停部１０によって決定されたデバイスからのアクセス要求を基にコマンドを生成し、このコマンドに基づいた制御信号にしたがってメモリ７の読み出しおよび書き込みを制御するようになっている。この場合、メモリ７は、ＳＤＲＡＭを前提としているので、この制御はＳＤＲＡＭの読み出しおよび書き込みシーケンスにしたがって行われる。バンク管理およびアドレス生成部１２は、メモリ制御部１１からコマンドを受け、このコマンドにしたがってメモリ７の状態を管理するとともに、アクセス調停部１０によって選択されたデバイスからのアクセス要求を基にアクセス対象となるバンクおよびページを選択するために、バンクアドレス、ロウアドレス、カラムアドレスを生成するとともに、メモリ７に対するアクセスを最適化するのに必要となる情報を保持し、この保持した情報をメモリ制御部１１に出力するようになっている。ＭＵＸ１４はアクセス調停部１０が選択したデバイスのアドレスやデータを選択し、選択したデータをバンク管理およびアドレス生成部１２などに出力するようになっている。データ制御部１５はメモリ７に書き込むためのデータやメモリ７から読み出されたデータを一時的に保持するように構成されている。
【００４１】
メモリ７のアドレス空間には、描画データ、表示画像データおよびビデオ画像データを保持するために、それぞれ水平方向および垂直方向に有限な二次元のアドレス空間が割り当てられている。描画データ、表示画像データおよびビデオ画像データはそれぞれ数ビットないし数十ビットで１画素を表すデータとして構成されており、これらのデータがメモリ７に記憶されるときには、ディスプレイ装置の画面上に画像が表示されるときのように、水平方向および垂直方向に沿って整列され、１画素データのビット長はデータの形式によって決まる。
【００４２】
メモリ７に描画データ、表示画像データおよびビデオ画像データを記憶するに際しては、リニアアドレスマッピング方式またはタイルアドレスマッピング方式を採用することができる。メモリ７を、例えば、４つのバンク（バンクアドレス０〜３）に分割し、各バンクのページをｎ個に分割し、リニアアドレスマッピング方式を採用したときには、図２に示すように、各ラインがページに割り当てられ、各ラインには水平方向に連続したアドレスが割り当てられ、１ライン内の画素データは同一のロウアドレス、すなわち同一ページに割り当てられる。ただし各ラインにはそれぞれ同一バンクの別のロウアドレスもしくは別のバンクのロウアドレスが割り当てられる。すなわち各ラインには異なるページが割り当てられる。なお、この場合、カラムアドレス（０〜５１１）は画面の各画素に対応したアドレスとなる。
【００４３】
一方、メモリ７を４つのバンクに分割し、タイルアドレスマッピング方式を採用したときには、図３に示すように、ページは、水平方向に３２バイト、垂直方向に１６ラインの方形（以下、タイルと称する。）に対応して設定され、各タイル内では連続したアドレス（０〜５１１）が割り当てられ、各タイル内の画素データは全て同一のロウアドレス、すなわち同一ページに割り当てられる。ただし、各タイルはそれぞれ同一バンクであるが別のロウアドレス、もしくは別のバンクのロウアドレスが割り当てられる。すなわち各ページは相隣接するタイルとは個となるページが割り当てられることになる。
【００４４】
ここで、リニアアドレスマッピング方式またはタイルアドレスマッピング方式のいずれかを採用するに際しては、各デバイスの機能を考慮する必要がある。
【００４５】
例えば、ＲＵ３は、描画命令コードにしたがって任意の図形を生成し、メモリ７の二次元のアドレス空間に書き込むようになっており、描画する図形は任意の角度の直線や曲線で構成されているため、アクセス対象のアドレスは水平方向に連続だったり、垂直方向に連続であったり、あるいは斜め方向に連続であったりする。このため、リニアアドレスマッピングでは、水平方向の描画であれば連続したアクセスは可能であるが、垂直方向や斜め方向の描画であれば、サイクルごとにメモリ７の異なるページにアクセスすることとなり、サイクルごとにページミスヒットが発生し、メモリアクセス効率が低下することになる。
【００４６】
一方、図３に示すタイルアドレスマッピング方式を用いたときには、水平方向、垂直方向および斜め方向のいずれの方向にアクセスするときでもタイル境界を超えたときのにみページミスヒットが発生することになる。したがって、描画処理のためには、図３のタイルアドレスマッピングを用いることが好ましい。
【００４７】
また、ＤＵ４によるメモリ７からの表示画像データの読み出しおよびＶＵ５によるメモリ７へのビデオ画像データの書き込みは一定の規則性を持っている。すなわち両者はいずれもライン方向に、しかも左側から右側または右側から左側のいずれか１方向に連続してアクセスするようになっている。しかし、アクセスを開始するアドレスは任意である。これは、表示画像のスクロールやＤＵ４、またはＶＵ５の内部での転送データバッファの制御などに起因している。このため、ＤＵ４とＶＵ５に対してタイルアドレスマッピングを採用したときには、タイル境界を跨ぐライン方向に連続したアクセスが要求されたときには、タイル境界を跨ぐごとにページミスヒットが発生するので、ページミスヒット時におけるアクセスを効率良く行わなければ、メモリアクセス効率が低下することになる。
【００４８】
また、ＤＵ４による表示画像データの読み出しやＶＵ５のビデオ画像データの書き込みは一種のリアルタイム性が要求される。すなわち、表示画像データの読み出しがある一定の期間内に完了しなければ、ディスプレイ装置に表示される画像にはちらつきが生じる。一方、ビデオ画像データの書き込みがある一定の期間内に完了しなければディスプレイ装置に表示されるビデオ画像が一時的に静止してしまう。このため、メモリ７にアクセスするにも、ページミスヒットの影響を抑制することによって、表示画像データやビデオ画像データのアクセス効率の向上を図る他に、各デバイスからのアクセス要求を調停することが重要となる。
【００４９】
特に、メモリ７を各デバイスの共有メモリとしてユニファイドメモリ構成としたときには、各デバイスからのアクセス要求の競合が頻発するため、アクセス競合による表示画像データやビデオ画像データのアクセス遅延をいかに抑えるかが重要なポイントとなる。
【００５０】
このため、本実施形態におけるメモリコントローラ１は、ページミスヒットの影響を抑制するための処理を行うとともに複数のデバイスからのアクセスが競合したときに、表示画像データやビデオ画像データのアクセス遅延を抑制するための処理を行うようになっており、メモリコントローラ１には、図４に示すように各デバイスからインタフェースを介して各種の信号が入力されている。メモリコントローラ１と各デバイスはそれぞれ独立したインタフェースで接続されているが、各インタフェースの仕様は同一である。インタフェースは次の信号で実現されており、ｉ（ｉ＝ａ，・・・ｅ）は各デバイスの識別子である。
【００５１】
アクセス調停部１０には、図４に示すように、各デバイスからレディ信号（ＲＤＹｉ）、ライト／リード識別信号ＷＲｉ、最終サイクル識別信号ＥＮＤｉが入力されており、アクセス調停部１０から各デバイスに対してはアクノリッジ信号（ＡＣＫｉ）が出力されるようになっている。ＭＵＸ１４には各デバイスからバイトイネーブル信号ＢＥｉ〔３：０〕、アクセス先アドレスＡＤＲｉ〔２５：２〕、ライトデータＷＤＴｉ〔３１：０〕が入力されている。一方、メモリ制御部１１から各デバイスに対してはリードデータストローブ信号ＲＳＴＢｉが出力され、データ制御部１５から各デバイスにはリードデータＲＤＴｉ〔３１：０〕が出力されるようになっている。さらに、メモリコントローラ１とメモリ７はＳＳＤＲＡＭインタフェイスを介して接続されており、メモリ制御部１１からメモリ７に対して、コマンドを指定するための制御信号として、チップセレクト信号ＣＳ＃、ロウアドレスストローブ信号ＲＡＳ＃、カラムアドレスストローボ信号ＣＡＳ＃、ライトイネーブル信号ＷＥ＃が出力されているとともに、特定のデータをマスクするためのデータマスク信号ＤＱＭ〔３：０〕が出力されている。また、バンク管理およびアドレス生成部１２からメモリ７に対しては、アクセス対象のバンクおよびページを選択するために、バンクアドレスＢＡ〔１：０〕、ロウ／カラムアドレスＡ〔１２：０〕が出力されており、データ制御部１５とメモリ７との間ではリード／ライトデータＤＱ〔３１：０〕の授受が行われるようになっている。なお、＃は負論理の信号であることを示している。また本実施形態では、説明に必要な最小限の信号のみを示している。
【００５２】
各デバイスからメモリコントローラ１に対してメモリリードアクセスおよびメモリライトアクセスを示す信号をアクセス要求として出力するに際しては、図２１に示すように、クロックに同期して出力されるようになっている。この場合、メモリアクセスはデータ幅と同じ４バイト単位で実行され、４バイトメモリアクセスを実行するサイクルをアクセスサイクルと呼ぶ。アクセスサイクルは最短で１クロックサイクルであるが、他のデバイスとの競合が生じたとき、あるいはメモリ７のバンクアクティブまたはプリチャージにより２クロックサイクル以上要する場合もある。また、メモリアクセスアドレスの送受（ライトアクセスの場合にはライトデータとバイトイネーブルも含む）とリードデータの送受は独立して実行される。このため、リードデータの返送を待つことなく、次のアクセス要求を受け付けることができる。また各デバイスはメモリアクセスを要求するときに、レディ信号ＲＤＹｉをアサート（ハイレベル＝“１”の信号）にするとともに、最初のアクセスアドレスＡＤＲｉを出力する。アクセスの長さが４バイト以下である場合には最初のアクセスサイクルが最後のアクセスサイクルとなるので、レディ信号ＲＤＹｉとともに、最終サイクル識別信号ＥＮＤｉもアサートする。そしてライトアクセスの場合には、レディ信号ＲＤＹｉをアサートするとともに、ライト／リード識別信号ＷＲｉをアサートし、且つ最初のライトデータＷＤＴｉとバイトイネーブルＢＥｉを出力する。一方、リードアクセスの場合には、レディ信号ＲＤＹｉをアサートするとともに、ライト／リード識別信号ＷＲｉをネゲート（ロウレベル＝“０”の信号）にする。なお、リードアクセスの場合にはライトデータＷＤＴｉとバイトイネーブル信号ＢＥｉを出力する必要はない。
【００５３】
メモリコントローラ１は、各デバイスからのレディ信号ＲＤＹｉがアサートされたことを検知して調停を行い、複数のデバイスのうち１つのデバイスからのアクセスを選択してそのアクセス先アドレスＡＤＲｉを取り込む。そして、リード／ライト識別信号ＷＲｉがアサートされているときには、ライトデータＷＤＴｉとバイトイネーブル信号ＢＥｉも取り込む。そして、選択したデバイスに対してアクノリッジ信号ＡＣＫｉをアサートする。アクノリッジ信号ＡＣＫｉのアサートは最短でレディ信号ＲＤＹｉのアサート開始と同一クロックサイクル内で行われるが、上述したように、他のデバイスとの競合やメモリ７のバンクアクティブまたはプリチャージによりアクノリッジ信号ＡＣＫｉのアサートが１クロックサイクル以上遅れる場合もある。このような場合、デバイスは各信号の出力状態をアクノリッジ信号ＡＣＫｉがアサートされるまで保持する。デバイスアクノリッジ信号ＡＣＫｉがアサートされたときには、次のクロックサイクルにレディ信号ＲＤＹｉをアサートした状態で、次のアクセスアドレスＡＤＲｉを出力する（Ａ１）。ＷＲｉ、ＷＤＴｉ、ＢＥｉも同様である。アクセスアドレスＡＤＲｉは前のアドレス値と連続してなくても良い。また最終アクセスサイクルであれば最終サイクル識別信号ＥＮＤｉもアサートする。
【００５４】
メモリコントローラ１は最終サイクル識別信号ＥＮＤｉがアサートされている最終アクセスサイクルを受け付ける（アクノリッジ信号ＡＣＫｉをアサートする。）とともに、他のデバイスのレディ信号ＲＤＹｉのアサートを検知したときには調停を行い、次のクロックサイクルにはこのアクセスサイクルを受け付けることが可能である。最終アクセスサイクルが受け付けられたデバイスは、この調停の対象には入らない。ただし、引き続きレディ信号ＲＤＹｉをアサートして次のアクセスを要求することは可能である。
【００５５】
またメモリコントローラ１は、基本的に１つのデバイスのアクセスを選択したときには最終サイクル識別信号ＥＮＤｉがアサートされるまで同一デバイスのアクセスのみを受け付ける。そしてメモリコントローラ１があるデバイスのアクセスを選択してから最終サイクル識別信号ＥＮＤｉがアサートされた最終アクセスサイクルを受け付ける（アクノリッジ信号ＡＣＫｉをアサートする。）までの期間をトランザクションと呼ぶ。１トランザクションの間に実行する複数のアクセスサイクルのアドレスはそれぞれ任意であり、１トランザクションの期間に複数のページに跨るアドレスにアクセスすることは可能である。なお、各デバイスは１トランザクションの間にレディ信号ＲＤＹｉをネゲートしてメモリアクセスを一時的に停止することも可能であり、また、１トランザクションの間にリードアクセスとライトアクセスを混在して要求することも可能であるが、メモリアクセスの効率を悪化させるので、このような要求を行うときには、最終サイクル識別信号ＥＮＤｉをアサートしてトランザクションを一旦終了することが望ましい。
【００５６】
次に、アクセス調停部１０の具体的内容を図５ないし図１０を用いて説明する。アクセス調停部１０は、図５に示すように、モードレジスタ部１００、デバイス選択部１０１、カウンタ１０２を備えて構成されており、レジスタバスＲＥＧＢＵＳが各デバイスに接続されている。
【００５７】
モードレジスタ部１００は、メモリアクセス調停における優先度や、メモリ７のカラムレイテンシ（ＳＤＲＡＭのリードコマンド発行からリードデータ出力までのクロックサイクル数）、プリチャージモードなどを設定するレジスタである。このモードレジスタ部１００には、レジスタバスＲＥＧＢＵＳを経由してカラムレイテンシや優先度などに関するデータが設定されるようになっている。
【００５８】
例えば、図６に示すように、モードレジスタ部１００には、各デバイスのメモリアクセスの優先度ＰＲｉ〔２：０〕が設定され、カラムレイテンシＣＬ２が設定され、各デバイスからの要求に対して先行プリチャージを実行するか否かを示すプリチャージモードＰＤｉが設定されるようになっている。カラムレイテンシについては２サイクルか３サイクルかが設定され、ＣＬ２が０であればカラムレイテンシは３サイクルであり、ＣＬ２が１であればカラムレイテンシは２サイクルである。またＰＤｉが０であれば、このデバイスに対する先行プリチャージは実行せず、ＰＤｉが１のときには、このデバイスからの要求に対しては先行プリチャージを実行することを示している。
【００５９】
また優先度ＰＲｉ〔２：０〕＝「０００」〜「１１１」については、図７に示すように、ＰＲｉ〔２：０〕の値が小さい程、優先度は高くなる。そして複数のデバイスが同一の優先度に設定された場合、それらのデバイスの間ではラウンドロビンでアクセスが調停される。すなわち、ラウンロビンでは、調停を実行するタイミングを基準として、このタイミングに最も近いときにアクセスを受け付けられたデバイスが同一優先度のデバイス間では最下位の優先度となる。なお、優先度が「０００」場合には、特権モードと呼び、特権モードに設定されたデバイスがメモリアクセスを要求した場合、実行中の他のデバイスのトランザクションを中断して（本トランザクションが特権モードで実行している場合は中断しない）、特権モードのデバイスのトランザクションを実行し、且つ、後述するカウンタ１０２からのＡＢＯＲＴ（中断）信号は無視される。
【００６０】
デバイス選択部１０１は、各デバイスからのレディ信号ＲＤＹｉのアサートを検知したときには、レディＲＤＹをアサートし、モードレジスタ部１００に設定された優先度にしたがって１つのデバイスを選択し、そのデバイスを識別する信号を保持するとともに、その番号をＤＥＶＳＥＬ〔３：０〕として出力し、選択したデバイスのライト／リード識別信号ＷＲｉをＷＲとして出力し、モードレジスタ部１００の選択したデバイスの先行プリチャージＰＤｉが１に設定されていれば、先行プリチャージＰＤＥＶをアサートする。ＲＤＹのアサートおよびＤＥＶＳＥＬ〔３：０〕、ＷＲ、ＰＤｉの出力は、選択したデバイスのＲＤＹｉアサート期間中継続される。
【００６１】
またデバイス選択部１０１は、メモリ制御部１１からのアクノリッジ信号ＡＣＫのアサートを検知すると、選択したデバイスに対してアクノリッジ信号ＡＣＫｉをアサートし、選択したデバイスが同一サイクルに最終サイクル識別信号ＥＮＤｉをアサートしているならば、トランザクションの完了と判断し、カウンタ１０２にＥＮＤ信号を１クロックサイクルアサートするとともに、次のクロックサイクルからアクセスの調停を再開する。
【００６２】
カウンタ１０２は、最終サイクル識別信号ＥＮＤ信号のアサートによりカウント値をクリアし、アクノリッジ信号ＡＣＫ信号がアサートされている間、クロックサイクルに同期してカウント値を順次インクリメントし、カウント値が所定の設定値と一致したときにＡＢＯＲＴ信号をアサートするようになっている。すなわち、カウンタ１０２は、あるトランザクションにおけるアクセスサイクル数をカウントするカウンタである。そしてあるデバイスによるトランザクションのアクセスサイクル数が極端に長い場合、他のデバイスのメモリアクセスに支障が生じてしまうため、１トランザクションのアクセスサイクル数に上限を設け、カウンタ１０２によってアクセスサイクル数が上限に達したことが検知されたときには、メモリコントローラ１側で一旦トランザクションを中断し（これをアボートと呼ぶ。）、他のデバイスのメモリアクセスを受け付けるようにしている。１トランザクションのアクセスサイクル数の上限はレジスタバスＲＥＧＢＵＳを経由してカウンタ１０２に任意の値で設定することが可能である。
【００６３】
デバイス選択部１０１はカウンタ１０２のＡＢＯＲＴ信号のアサートを検知すると、トランザクションの中断と判断してカウンタ１０２にＥＮＤ信号を１クロックサイクルの間アサートするとともに、次のクロックルサイクルからアクセスの調停を再開する。なお、デバイスからはアボートによってメモリアクセスが中断されたことは認識されず、単にメモリコントローラ１のアクノリッジＡＣＫｉのアサートが遅れているように見えるため、レディ信号ＲＤＹｉのアサートを継続する。このように、メモリコントロール１は、アボートによって中断したトランザクションの後続を次のトランザクションの終了直後またはそれ以降に優先度に基づいて選択して実行することになる。
【００６４】
次に、アクセス調停部１０の動作を図８ないし図１０にしたがって説明する。図８では、デバイスａはライトアクセスで、アクセスサイクル数は２を示しており、デバイスｂはリードアクセスでアクセスサイクル数は１、優先度はデバイスａの方がデバイスｂよりも高いときを示している。またＤＥＶＳＥＬ〔３：０〕の値はデバイスａが０００１、デバイスｂは００１０とする。
【００６５】
まず、図８において、クロックサイクルＴ０においてデバイスａとデバイスｂが同時にレディ信号ＲＤＹｉをアサートすると、アクセス選択部１１は優先度に基づいてデバイスａを選択する。メモリ制御部１１はクロックサイクルＴ２にデバイスａの最初のアクセスサイクルに対するアクノリッＡＣＫをアサートし、クロックサイクルＴ３に次のアクセスサイクルに対するアクノリッジＡＣＫをアサートする。さらにクロックサイクルＴ３で最終サイクル識別信号ＥＮＤａがアサートされた後は、クロックサイクルＴ４からデバイスｂが選択され、リードアクセスが実行され、クロックサイクルＴ８ではデバイスｂの最初で最後のアクセスサイクルに対するアクノリッジＡＣＫがアサートされる。
【００６６】
一方、デバイスａのトランザクションがアボートによって中断されるときには、図９に示すように、デバイスａのトランザクションはクロックサイクルＴ０から開始されているが、クロックサイクルＴ３でＡＢＯＲＴがアサートされるため、トランザクションが中断され、次のクロックサイクルＴ４ではデバイスｂのトランザクションが実行される。このとき、デバイスｂのトランザクションはアクセスサイクル数が１であるため、クロックサイクルＴ４で終了し、次のクロックサイクルＴ５からはデバイスａのトランザクションが再開される。
【００６７】
また、デバイスａのトランザクションが実行されているときに、特権モードのデバイスｂからメモリアクセスが要求されたときには、図１０に示すように、デバイスａのトランザクションはクロックサイクルＴ０から開始されているが、クロックサイクルＴ３で特権モードのデバイスｂからのレディ信号ＲＤＹｉがアサートされるため、デバイスａのトランザクションが中断され、次のクロックサイクルＴ４ではデバイスｂのトランザクションが実行される。デバイスｂのトランザクションはアクセスサイクル数が１であるため、デバイスｂのトランザクションはクロックサイクルＴ４で終了し、次のクロックサイクルＴ５からはデバイスａのトランザクションが再開される。
【００６８】
次に、バンク管理およびアドレス生成部１２の構成を図１１に示す。バンク管理およびアドレス生成部１２は、アドレス生成部１２０、バンク状態管理部１２１、バンクアドレスラッチ１４０、ロウ／カラムアドレスラッチ１４１で構成されている。アドレス生成部１２０とバンク状態管理部１２１には、メモリ制御部１１の生成による各種のコマンドが入力されており、アドレス生成部１２０にはアクセスアドレスＡＤＲ〔２５：２〕、モード信号ＣＯＮＦ〔３：０〕が入力されている。
【００６９】
アクティブコマンドＡＴＣＩＳＳは、メモリ制御部１１からメモリ７に対して、アクティブコマンドを発行したことを示す信号として入力され、プリチャージコマンドＰＲＥＩＳＳはメモリ制御部１１からメモリ７に対して、プリチャージコマンドが発行されたことを示す信号として入力され、先行プリチャージコマンドＰＰＲＥＩＳＳはメモリ制御部１１からメモリ７に対して、先行プリチャージモードにおける先行的なプリチャージコマンドを発行したことを示す信号として入力されている。また全バンクプリチャージコマンドＰＡＬＬＩＳＳはメモリ制御部１１からメモリ７に対して、全てのバンクに対してプリチャージを実行するためのプリチャージコマンドが発行されたことを示す信号として入力され、モードレジスタセットコマンドＭＲＳＩＳＳはモードレジスタセットコマンドが発行されたことを示す信号として入力されている。
【００７０】
アドレス生成部１２０は、ＭＵＸ１４によって選択されたデバイスのアドレスを示すアクセスアドレスＡＤＲ〔２５：２〕と、メモリ７の構成（メモリ容量）を示すモード信号ＣＯＮＦ〔３：０〕と、各種のコマンドを基に、バンクアドレスＢＡＤＲ〔１：０〕、ロウアドレスＲＡ〔１２：０〕、ロウアドレスまたはカラムアドレスＭＡＤＲ〔１２：０〕を生成して出力するようになっている。ＭＡＤＲ〔１２：０〕がロウアドレスまたはカラムアドレスのうちどちらを出力するかは発行するコマンドの種類によって決まる。なお、４バンクのうち１バンクを選択するためのＢＡ〔１：０〕＝「００」〜「１１」はバンクアドレスＢＡＤＲ〔１：０〕をラッチ１４０でラッチした信号であり、ロウ／カラムアドレスＡ〔１２：０〕はＭＡＤＲ〔１２：０〕をラッチ１４１でラッチした信号である。すなわちアドレス生成部１２０はメモリ制御手段の１要素として、アクセス要求を基にメモリ７のバンクのうちアクセス対象のバンクとページおよびページの中の特定のデータを選択するためのバンクアドレスＢＡ〔１：０〕、ロウ／カラムアドレスＡ〔１２：０〕を出力するようになっている。
【００７１】
バンク状態管理部１２１は、メモリ制御部１１から発行された各種のコマンドを基にメモリ７の各バンクの状態を保持し、メモリ７へのアクセスを最適に行うための情報をメモリ制御部１１に提供するようになっている。すなわち、バンク状態管理部１２１は、以下のバンク状態情報をバンク別に保持するようになっている。
【００７２】
（１）アクティブ状態か非アクティブ状態か。
【００７３】
（２）アクティブ状態のカラムアドレス。
【００７４】
（３）アクティブ−プリチャージ間最小サイクルが経過したか。
【００７５】
（４）プリチャージ−アクティブ間最小サイクルが経過したか。
【００７６】
バンク状態管理部１２１は以上の情報に基づいてアクセスサイクルごとに以下の情報をメモリ制御部１１に提供する。
【００７７】
（１）ＢＡＣＴ：アクセス対象のバンクがアクティブ状態である。
【００７８】
（２）ＰＨＩＴ：アクセス対象のページがアクティブ状態である（ページヒットであることを示す）。
【００７９】
（３）ＩＲＡＳ：アクセス対象のバンクにおいてアクティブ−プリチャージ間最小サイクルが経過した。
【００８０】
（４）ＩＲＰ：アクセス対象のバンクにおいてプリチャージ−アクティブ間最小サイクルが経過した。
【００８１】
（５）ＩＲＡＳＡＬＬ：バンクにおいてアクティブ−プリチャージ間最小サイクルが経過した。
【００８２】
以上の情報は、例えば、ハイレベルの信号としてメモリ制御部１１に提供される。
【００８３】
また、アドレス生成部１２０において各種のアドレスを生成するに際しては、図１２に示すように、メモリ７の構成（メモリ容量）にしたがってアドレスが生成される。モード信号ＣＯＮＦ〔３：０〕はメモリ７の構成を示すものであり、ＣＯＮＦ〔３：０〕が０のメモリ構成は、メモリ７のバンクは４バンク構成（バンク０〜バンク３）で１バンク当たり４０９６ページ、１ページ当たり２５６ワードである。またＣＯＮＦ〔３：０〕が１のメモリ構成のときには、メモリ７が４バンク構成で１バンク当たり４０９６ページ、１ページ当たり５１２ワードとなる。さらに、ＣＯＮＦ〔３：０〕が２のメモリ構成のときには、メモリ７が４バンク構成で１バンク当たり８１１９２ページ、１ページ当たり５１２ワードとなる。なお、１ワードはメモリデータバスＤＱ〔３１：０〕の幅と同じ３２ビット（４バイト）である。
【００８４】
ここで、ＣＯＮＦ〔３：０〕が０の場合、各コマンドの発行の有無によってアドレスが生成される。例えば、アクティブコマンド発行時（ＡＣＴＩＳＳ＝１）のときには、アクセスアドレス〔２５：２〕のうちＡＤＲ〔１１：１０〕をバンクアドレスＢＡＤＲ〔１：０〕として選択し、ＡＤＲ〔２３：１２〕をロウアドレスＡ〔１１：０〕として選択する。この場合、最上位のビットであるＲＡ〔１２：〕は０となる。さらにロウまたはカラムアドレスＭＡＤＲ〔１２：０〕は、ロウアドレスであるＡＤＲ〔２３：１２〕が選択され、最上位のビットは０である。また先行プリチャージコマンド発行時（ＰＰＲＥＩＳＳ＝１）のときにはＡＤＲ〔１１：０〕＋１がバンクアドレスＢＡＤＲ〔１：０〕として選択される。すなわちアクティブコマンドで指定されたバンクに隣接するバンクに対するアドレスが出力される。また全プリチャージコマンド発行時（ＰＡＬＬＩＳＳ＝１）のときにはアクティブコマンド発行時と同じバンクアドレスが生成され、ＰＰＲＥＩＳＳ、ＰＡＬＬＩＳＳ発行時にはＭＡＤＲ〔１２：０〕としては、ページの中の特定のデータ（バイト）を選択するために、カラムアドレスＡＤＲ〔９：２〕が生成される。
【００８５】
次に、図１３にバンク状態管理部１２１の構成を示す。バンク状態管理部１２１はバンク０からバンク３までの４バンクの状態をそれぞれ保持するためのバンクｎ状態管理部１２２ａ、１２２ｂ、１２２ｃ、１２２ｄを備えて構成されている。なお、各バンク状態管理部は同一の構成であるため、以下バンク０状態管理部１２２ａについて説明する。バンク０状態管理部１２２ａは、アクセス先のバンクがバンク０であるか否かを判定するための一致検出回路１３０ａ、論理和回路１３１ａ、１３４ａ、論理積回路１３２ａ、１３３ａ、モードレジスタ１３５ａ、バンク０内でアクティブ状態になったページのロウアドレスを保持するロウアドレスバッファ１３６ａ、バンク０のうちいずれかのページがアクティブになっていることを示すアクティブフラグ１３７ａ、アクティブ−プリチャージ間最小サイクル数をカウントするＲＡＳカウンタ１３８ａ、プリチャージ−アクティブ間最小サイクル数をカウントするＲＰカウンタ１３９ａで構成されており、ロウアドレスバッファ１３６ａはセクレタ１２３に接続され、アクティブフラグ１３７ａはセレクタ１２４に接続され、ＲＡＳカウンタ１３８ａはセレクタ１２５と論理積回路１２６に接続され、ＲＰカウンタ１３９ａはセレクタ１２７に接続されている。セレクタ１２３、１２４、１２５、１２７はバンクアドレスによって指定されたバンク状態管理部からの信号のみを選択して出力するようになっている。
【００８６】
モードレジスタ１３５ａはアクティブ−プリチャージ間最小サイクル数およびプリチャージ−アクティブ間最小サイクル数を設定するレジスタであり、設定値はレジスタバスＲＥＧＢＵＳを経由して任意の値で設定されるようになっている。
【００８７】
一致検出回路１３０ａはバンクアドレスによってバンク０が指定されたときにハイレベル＝“１”の信号を出力するようになっており、論理積回路１３２ａはアクティブコマンドの発行に伴ってＡＣＴＩＳＳ＝１となったときにハイレベル＝“１”の信号をロウアドレスバッファ１３６ａ、アクティブフラグ１３７ａ、ＲＡＳカウンタ１３８ａに出力するようになっている。また論理積回路１３３ａは、バンクアドレスによって０バンクが指定されたときに、ＰＲＥＩＳＳまたはＰＰＲＥＩＳＳの発行に伴っていずれかのコマンドが１になったときにハイレベル＝“１”の信号を論理和回路１３４ａに出力するようになっている。論理和回路１３４ａは論理積回路１３３ａからハイレベル＝“１”の信号が出力されたとき、あるいはＰＡＬＬＩＳＳ＝１になったときに、すなわちプリチャージが行われたことを条件に、アクティブフラグ１３７ａにハイレベル＝“１”のリセット信号を出力するとともに、ＲＰカウンタ１３９ａにハイレベル＝“１”のスタート信号を出力するようになっている。
【００８８】
ロウアドレスバッファ１３６ａは、バンク０へのアクセスサイクルで且つアクティブコマンドが発行されたとき（ＡＣＴＩＳＳがアサートされたとき）にロウアドレスＲＡ〔１２：０〕を保持し、それ以降同じバンクを対象とするアクセスサイクルごとにそのロウアドレスと、保持したロウアドレスとを比較して両者が一致した場合にページヒットＰＨＩＴＯをアサートし、ハイレベル＝“１”の信号をセレクタ１２３に出力するようになっている。すなわち、ロウアドレスバッファ１３６ａはページヒットを判定する機能を備えて構成されている。さらにロウアドレスバッファ１３６ａは、セレクタ１２３とともにアクセス対象のページがアクティブ状態にあるか否かを判定するページヒット判定手段として構成されている。
【００８９】
アクティブフラグ１３７ａは、バンク０へのアクセスサイクルで且つアクティブコマンドが発行されたとき（ＡＣＴＩＳＳがアサートされたとき）に１にセットされてバンクアクティブＢＡＣＴＯをアサートし、ハイレベル＝“１”の信号をセレクタ１２４に出力し、バンク０のプリチャージコマンドが発行されたとき（ＰＲＥＩＳＳ、ＰＰＲＥＩＳＳ、ＰＡＬＬＩＳＳのいずれ１つのコマンドがアサートされたとき）に０にクリアされてＰＡＣＴ０をネゲート（ロウレベル＝“０”の信号を出力）するようになっている。すなわち、アクティブフラグ１３７ａは、セレクタ１２４とともにアクセス対象のバンクがアクティブ化されているか否かを判定するバンクアクティブ化判定手段として構成されている。
【００９０】
ＲＡＳカウンタ１３８ａは通常ＩＲＡＳＯをアサートしているが、バンク０へのアクセスサイクルで且つアクティブコマンドが発行されたとき（ＡＣＴＩＳＳがアサートされたとき）にカウントを開始するとともにＩＲＡＳ０をネゲートし、モードレジスタ１３５ａに設定されたアクティブ−プリチャージ間最小サイクル数が経過した後に、ＩＲＡＳＯを再びアサートし、ハイレベル＝“１”の信号をセレクタ１２５と論理積回路１２６に出力するようになっている。すなわち、ＲＡＳカウンタ１３８ａは、セレクタ１２５とともにアクティブ−プリチャージ間最小サイクル数判定手段として構成されている。
【００９１】
ＲＰカウンタ１３９ａは通常ＩＲＰをアサートしているが、バンク０のプリチャージコマンドが発行されたとき（ＰＲＥＩＳＳ、ＰＰＲＥＩＳＳ、ＰＡＬＬＩＳＳのいずれかのコマンドがアサートされたとき）にカウントを開始するとともに、ＩＲＰＯをネゲートし、ロウレベル＝“０”の信号をセレクタ１２７に出力し、モードレジスタ１３５ａに設定されたプリチャージ−アクティブ間最小サイクル数が経過した後に、ＩＲＰＯを再びアサートしてハイレベル＝“１”の信号をセレクタ１２７に出力するようになっている。すなわち、ＩＲＰカウンタ１３９ａは、セレクタ１２７とともにプリチャージ−アクティブ間最小サイクル判定手段を構成するようになっている。
【００９２】
上記構成によるバンク状態管理部１２１においては、バンクアクティブ化判定手段によりアクセス対象のバンクがアクティブ化されていないと判定されたときに（アクティブフラグ１３７ａの出力が“０”のとき）、プリチャージ−アクティブ間最小サイクル判定手段から肯定の判定結果が出力されたことを条件に（ＲＰカウンタ１３９ａの出力が“１”のとき）、アクセス対象のページをアクティブ化するとともに、アクティブ化した後、ライトまたはリードによるアクセスの実行をメモリ７に指令するための情報が生成される。また、バンクアクティブ化判定手段によるアクセス対象のバンクがアクティブ化されていると判定されたときには（アクティブフラグ１３７ａの出力が“１”のとき）、ページヒット判定手段により肯定の判定結果が得られたときに（ロウアドレスバッファ１３６ａの出力が“１”のとき）、直ちにライトまたはリードによるアクセスの実行を指令するための情報が生成される。さらに、バンクアクティブ化判定手段によりアクセス対象のバンクがアクティブ化されていると判定されたときに、ページヒット判定手段による否定の判定結果が得られたときには（ロウアドレスバッファ１３６ａの出力が“０”のとき）アクティブ−プリチャージ間最小サイクル判定手段から肯定の判定結果が出力されたことを条件に（ＲＡＳカウンタ１３９ａの出力が“１”のとき）アクセス対象のバンクをプリチャージし、次にアクセス対象となるページに対してアクティブ化を実行した後にライトまたはリードによるアクセスの実行を指令するための情報が生成され、これらの情報はメモリ制御部１１に出力される。
【００９３】
次に、メモリ制御部１１の具体的内容を図１４ないし図１９にしたがって説明する。メモリ制御部１１は、図１４に示すように、コマンド生成部１１０、ＤＱＭ生成部１１１、リードデータ制御部１１２、ラッチ１１３、１１４、１１５、１１６で構成されている。
【００９４】
コマンド生成部１１０は、アクセス調停部１０からＣＬ２、ＲＤＹ、ＷＲ、ＤＥＶＳＥＬ〔３：０〕、ＰＤＥＶに関する信号を入力したときに、これらの信号を基にメモリ７をアクセスするための各種のコマンドを生成し、各種のコマンドをバンク管理およびアドレス生成部１２に出力するとともに、コマンドに対応した制御信号（ＲＡＳ＃、ＣＡＳ＃、ＷＥ＃、ＣＳ＃）をメモリ７に出力してメモリ７に対するアクセスを制御するようになっている。
【００９５】
ここで、図１５にコマンド生成部１１０におけるコマンド発行制御の状態遷移を示し、図１６に、図１５の状態遷移における各状態遷移の条件を示し、図１７に、図１５の状態遷移による出力信号の状態（コマンドに対応した制御信号の状態）を示す。
【００９６】
図１５において、ＩＤＬＥ状態１１００においては、各デバイスからのアクセス要求がなく、アクセス要求待ちサイクルであり、ＲＤＹが出力され、ＩＲＰの出力がないとの遷移条件が満たされたときには（図１６の＃ａ）、遷移先としてアクティブ化を行うための処理に移行する。ＡＣＴＶ状態１１０１はバンクアクティブコマンド（ＡＣＴＶ）発行サイクルであり、先行プリチャージがアサートされていることを条件に（図１６の＃ｃ）、ＰＲＥ−Ａに移行し、先行プリチャージがネゲートされていて且つＲＣＤ２として２サイクルまたは３サイクルが指定されたときには（図１６の＃ｄ）、ＷＡＩＴ−Ｂに移行し、それ以外の条件のときには（図１６の＃ｅ）、ＷＡＩＴ−Ａに移行する。ＷＡＩＴ−Ａ状態１１０２はカラムレイテンシが３サイクルである場合のＡＣＴＶとＷＲＩＴＥとの間またはＡＣＴＶとＲＥＡＤとの間のウエイトサイクル（１サイクルの待ちサイクル）であり、ＷＡＩＴ−Ｂ状態１１０３はライトコマンドまたはリードコマンドを発行するまでのウエイトサイクル（１サイクルの待ちサイクル）である。またＰＲＥ−Ａ状態１１０４においては、先行プリチャージＰＤＥＶがアサートされ、先行プリチャージモードのトランザクションにおいて、バンクｎに対するアクティブコマンドＡＣＴＶを発行した直後に、隣接するバンクｎ＋１に対するプリチャージコマンド（ＰＲＥ）を発行するサイクルである。ＷＲＹＴＥ状態１１０５はライトコマンド（ＷＲＩＴＥ）を発行するサイクルであり、ＲＥＡＤ状態１１０６はリードコマンド（ＲＥＡＤ）を発行するサイクルであり、ＷＡＩＴ−Ｃ状態１１０７はプリチャージコマンドまたは全バンクプリチャージコマンドを発行するまでのウエートサイクル（１サイクル）であり、ＰＲＥ−Ｂ状態１１０８はプリチャージコマンド（ＰＲＥ）を発行するサイクルであり、ＰＡＬＬ状態１１０９は全バンクプリチャージコマンド（ＰＡＬＬ）を発行するサイクルである。すなわち、各状態おいては、遷移条件が満たされたときに遷移先に移動するためのコマンドが発行されることになる。また、ｏｔｈｅｒｗｉｓｅは常に行われることを示し、遷移元と遷移先が同じときには同じ処理が繰り返されることを示している。
【００９７】
メモリ制御部１１において各種のコマンドが生成されると、コマンドの発行の有無が「１」、「０」で表され、コマンドが発行されないときには出力値はロウレベル＝“０”となり、コマンドが発行されたときにハイレベル＝“１”となる。そして各コマンドＡＣＴＩＳＳ、ＰＲＥＩＳＳ、ＰＰＲＥＩＳＳ、ＰＡＬＬＩＳＳ、ＷＲＩＴＥ、ＲＥＡＤはそれぞれ次のクロックサイクルの状態がＡＣＴＶ状態、ＰＲＥ−Ｂ状態、ＰＲＥ−Ａ状態、ＰＡＬＬ状態、ＷＲＩＴＥ状態、ＲＥＡＤ状態になる場合にアサートされる。そして各種コマンドが発行されると、コマンドに対応した制御信号が負論理の信号としてメモリ７に出力される。
【００９８】
例えば、アクティブコマンドＡＣＴＶが発行されたときには、ＣＳ＃“０”、ＲＡＳ＃“０”、ＣＡＳ＃“１”、ＷＥ＃’１”の信号が制御信号としてメモリ７に出力される。また先行プリチャージコマンド（ＰＲＥ−Ａ）が発行されたときには、ＣＳ＃として“０”、ＲＡＳ＃として“０”、ＣＡＳ＃として“１”、ＷＥ＃として“０”の制御信号が負論理の信号としてメモリ７に出力される。これらの制御信号はコマンドに対応しているため、コマンドに基づいてメモリ７を制御することができることになる。
【００９９】
ＤＱＭ生成部１１１には、書き込むべきバイトを指定するバイトイネーブル信号ＢＥ〔３：０〕が入力れており、ＤＱＭ生成部１１１は、バイトイネーブルＢＥを基に、図１８に示すように、コマンド生成部１１０からＷＲＩＴＥＩＳＳが発行されたときに、書き込むべきバイトに対してのみ“０”の信号を出力し、書き込みを禁止されているバイトに対しては“１”の信号をマスク信号ｄｑｍ〔３：０〕として出力するようになっている。すなわち、ＷＲＩＴＥＩＳＳがアサートされたとき、次のサイクルでＷＲＩＴＥコマンドが発行されたときに、バイトイネーブルＢＥ〔３：０〕の極性反転信号をｄｑｍ〔３：０〕として出力し、それ以外のときにはロウレベルにネゲートするようになっている。ｄｑｍ〔３：０〕はラッチ１１７によってラッチされてＤＱＭ〔３：０〕としてメモリ７に出力される。
【０１００】
リードデータ制御部１１２は、図１９に示すように、ラッチ１１２０、１１２１、１２２２、１１２３、１１２４、リードデータストローブ信号（ＲＳＴＢｉ）生成回路（ＲＳＴＢＧＥＮ）１１２５、リードデータセット信号（ＤＱＳＥＴ）生成回路（ＤＱＳＥＴＧＥＮ）１１２６、ＤＱ出力イネーブル信号（ＯＵＴＥＮＢ）生成回路（ＯＵＴＥＮＢＧＥＮ）１１２７で構成されている。
【０１０１】
ラッチ１１２０、１１２１、１１２２、１１２３、１１２４はＲＥＡＤＩＳＳおよびＤＥＶＳＥＬ〔３：０〕をクロックサイクルに同期して逐次ラッチするようになっている。これは、リードコマンドを発行してからカラムレイテンシ後にメモリ７がリードデータを出力するタイミングに合わせてＲＳＴＢｉ、ＤＱＳＥＴ、ＯＵＴＥＮＢを生成するためである。
【０１０２】
リードデータストローブ信号生成回路１１２５は、メモリ７から受信したリードデータを取り込んでＲＤＴ〔３１：０〕としてデバイスに出力すると同時に、ＲＳＴＢｉをアサートするために、ＣＬ２が０（カラムレイテンシが３サイクル）の場合にはＲＳＴＢＤ５のアサート時にＤＥＶＤ５〔３：０〕が示すデバイスに対するＲＳＢｉをアサートし、ＣＬ２が１（カラムレイテンシが２サイクル）の場合にはＲＳＴＢＤ４のアサート時にＤＥＶＤ４〔３：０〕が示すデバイスに対するＲＳＴＢｉをアサートする。
【０１０３】
すなわち、リードデータストローブ信号生成回路１１２５は、以下に示すように、
ＲＳＴＢａ＝ＣＬ２＆ＲＳＴＢＤ４＆（ＤＥＶＤ４＝ＤＥＶａ）｜ＣＬ２＆ＲＳＴＢＤ４＆（ＤＥＶＤ５＝ＤＥＶａ）
ＲＳＴＢｂ＝ＣＬ２＆ＲＳＴＢＤ４＆（ＤＥＶＤ４＝ＤＥＶｂ）｜ＣＬ２＆ＲＳＴＢＤ４＆（ＤＥＶＤ５＝ＤＥＶｂ）
………………
ＲＳＴＢｅ＝ＣＬ２＆ＲＳＴＢＤ４＆（ＤＥＶＤ４＝ＤＥＶｅ）｜ＣＬ２＆ＲＳＴＢＤ４＆（ＤＥＶＤ５＝ＤＥＶｅ）
上記式に従ってリードデータストローブ信号ＲＳＴＢｉを生成するように構成されている。なお、＆は論理積を示し、｜は論理和を示す。
【０１０４】
リードデータセット信号生成回路１１２６は、メモリ７がリードデータを出力すると同時にＤＱＳＥＴをアサートすることにより、データ制御部１５のラッチを保持させるために、ＣＬ２が０（カラムレイテンシが３サイクル）の場合にはＲＳＴＢＤ４のアサート時にＤＱＳＥＴをアサートし、ＣＬ２が１（カラムレイテンシが２サイクル）の場合にはＲＳＴＢＤ３のアサート時にＤＱＳＥＴをアサートする。
【０１０５】
すなわち、リードデータセット信号生成回路１１２６は、以下に示すように、
ＤＱＳＥＴ＝ＣＬ２＆ＲＳＴＤ３｜（￣ＣＬ２＆ＲＳＴＢＤ４）
上記式に従ってリードデータセット信号を生成するように構成されている。なお、￣は反転を示す。
【０１０６】
ＤＱ出力イネーブル信号生成回路１１２７は、メモリ７がリードデータを出力するクロックサイクルだけではなく、メモリ７がリードデータを出力する１クロックサイクル前からメモリ７がリードデータを出力した１クロックサイクル後までメモリコントローラ１によるＤＱ〔３１：０〕の出力を抑止するために、データ制御部１５のＤＱ〔３１：０〕出力ドライブのイネーブル信号ＯＵＴＥＮＢ（ただし、データ制御部１５で一旦ラッチされるので、ＤＱ〔３１：０〕出力よりも１クロックサイクル速い）をメモリ７がリードデータを出力する１クロックサイクル前からメモリ７がリードデータを出力した１クロックサイクル後までの間はネゲートし、それ以外のときにはアサートする。すなわち、ＣＬ２が０（カラムレイテンシが３サイクル）の場合にはＲＳＴＢＤ３、ＲＳＴＢＤ４のいずれかがアサートされているときにＯＵＴＥＮＢをアサートし、ＣＬ２が１（カラムレイテンシが３サイクル）の場合にはＲＳＴＢＤ１、ＲＳＴＢＤ２、ＲＳＴＢＤ３のいずれかがアサートされているときにＯＵＴＥＮＢをアサートする。
【０１０７】
すなわち、ＤＱ出力イネーブル信号生成回路１１２７は、以下に示すように、
0003918145.tif 000002
上記式に従ってＤＱ出力イネーブル信号を生成するように構成されている。
【０１０８】
一方、データ制御部１５は、図２０に示すように、データ出力イネーブル信号ＯＵＴＥＮＢをラッチするラッチ１５０、ライトデータＷＤＴ〔３１：０〕をラッチするラッチ１５１、メモリ７が出力するリードデータＤＱ〔３１：０〕をＤＱセット信号アサート時に保持するラッチ１５２、ＤＱ〔３１：０〕への出力バッファ１５３、ＤＱ〔３１：０〕からの入力バッファ１５４で構成されている。
【０１０９】
ラッチ１５０は、データ出力イネーブル信号ＯＵＴＥＮＢをラッチしてその極性反転信号ＯＵＴＥＮＢ＃を出力する。出力バッファ１５３は、ＯＵＴＥＮＢ＃がロウレベルであるときにラッチ１５１でラッチされたライトデータＷＤＴ〔３１：０〕をＤＱ〔３１：０〕に出力する。またラッチ１５２はＤＱＳＥＴがアサートされたときにメモリ７が出力するリードデータＤＱ〔３１：０〕を保持してそれを全デバイスにＲＤＴｉ〔３１：０〕として出力する。ただし、リードデータストローブ信号ＲＳＴＢｉは１つのデバイスにのみアサートされるので、リードデータを取り込むデバイスは１つである。
【０１１０】
次に、メモリコントローラ１によるメモリアクセスの作用を図２１および図２２にしたがって説明する。先行プリチャージを行わないときの処理を図２１に従って説明し、先行プリチャージを行うときの処理を図２２にしたがって説明する。なお、ＲＣＤ２は１（ＲＡＳ−ＣＡＳレイテンシ：２サイクル）、ＣＬ２は０（カラムレイテンシ：３サイクル）とする。
【０１１１】
図２１において、先行プリチャージを行わないときには、ＰＤａはロウレベルに設定されており、メモリコントローラ１は、クロックサイクルＴ０でデバイスａからのレディ信号ＲＤＹａがアサートされていることを検知すると、クロックサイクルＴ１においてＡＣＴＶコマンドを発行し、クロックサイクルＴ２において最初のアクセスサイクルａ０に対するアクノリッジＡＣＫａをアサートし、クロックサイクルＴ３においてＲＥＡＤコマンドを発行する。このときバンク０を指定するためのバンクアドレスｂ０とバンク０のうち特定のページを指定するためのロウアドレスｒａ０が生成され、バンク０のうちロウアドレスｒａ０で指定されたページをアクセス対象として、このページをアクティブ化するための処理が実行されることになる。さらに、ＲＥＡＤコマンドの発行に伴って、アクティブ化されたページのうち指定のデータ（バイト）をリードするためにカラムアドレスｃａ０が出力され、指定のデータをリードするためのアクセスがクロックサイクルＴ３において行われる。
【０１１２】
この後、同一ページに対するリードアクセスが継続されるときには、第２のアクセスサイクルａ１に対するアクノリッジＡＣＫａをクロックサイクルＴ３においてアサートしてクロックサイクルＴ４にＲＥＡＤコマンドを発行し、第３のアクセスサイクルａ２に対するアクノリッジＡＣＫａをクロックサイクルＴ４にアサートし、クロックサイクルＴ５においてＲＥＡＤコマンドを発行する。これにより、カラムアドレスｃａ０、ｃａ１、ｃａ２で指定されたデータがリードデータｒｄａ０、ｒｄａ１、ｒｄａ２として順次読み出される。
【０１１３】
同一ページに対するリードアクセスが継続されている過程で、第４のアクセスサイクルａ３でページミスヒットが発生すると（ロウアドレスｒａ０で指定されたページとはことなるページにアクセスするとき）、クロックサイクルＴ５以降、アクノリッジＡＣＫａは一時、ネゲートされ、クロックサイクルＴ６においてメモリ制御部１１からＰＲＥコマンドが発行され、バンク１を選択するためのバンクアドレスｂ１が出力され、この後、１クロックサイクル待って、クロックサイクルＴ８においてバンク１をアクセス対象とするためにＡＣＴＶコマンドが発行され、バンク１のうち指定のページを選択するためのロウアドレスｒａ１が出力される。これによりロウアドレスｒａ１で指定されたページに対するアクティブ化が実行され、クロックサイクルＴ９においてアクノリッジＡＣＫａがアサートされた後、クロックサイクルＴ１０においてＲＥＡＤコマンドが発行される。これにより、バンク１に属するページであって、ロウアドレスｒａ１で指定されたページのうち指定のデータを選択するためにカラムアドレスｃａ３、ｃａ４が順次出力される。これによりクロックサイクルＴ１２、Ｔ１３においてリードデータｒｄａ３、ｒｄａ４が順次読み出され、リードデータストローブ信号ＲＳＴＢａにしたがってリードデータｒｄａ３、ｒｄａ４が順次デバイスに転送される。
【０１１４】
そして最初のアクセスサイクルａ０に対するリードデータｒｄａ０はメモリ７からクロックサイクルＴ５に出力され、クロックサイクルＴ６においてメモリコントローラ１によってリードデータストローブ信号ＲＳＴＢａがアサートされると同時にリードデータＲＤＴａ〔３１：０〕がデバイスａに出力される。
【０１１５】
同様に、第２、第３、第４、第５のアクセスサイクルａ１、ａ２、ａ３、ａ４に対するリードデータＲＤＴａ〔３１：０〕はそれぞれクロックサイクルＴ７、Ｔ８、Ｔ１３、Ｔ１４にリードデータストローブ信号ＲＳＴＢａがアサートされると同時にデバイスに出力される。この場合、ページミスヒットによりリードトランザクションが４クロックサイクル（Ｔ６〜Ｔ９）遅延することになる。
【０１１６】
一方、デバイスａが先行プリチャージを必要とするデバイス、例えば、デバイスａが描画処理装置であって、デバイスａからアクセス要求が出力されるときには、先行プリチャージを示すＰＤａがアサートされているため、アクセス対象のページをアクティブ化するためのコマンドを生成するとともに、アクティブ化されたページに対してリードまたはライトのアクセスを実行するに先立って、次にアクセス対象となるページまたはその後アクセス対象となるページに対して先行プリチャージを実行するためのコマンドを生成する処理が実行される。
【０１１７】
すなわち、デバイスａから、クロックサイクルＴ０においてＲＤＹａがアサートされるとともにＰＤａがアサートされているときには、クロックサイクルＴ１においてＡＣＴＶコマンドを発行し、バンク０を選択するためのバンクアドレスｂ０、バンク０のうち特定のページを選択するためのロウアドレスｒａ０を出力し、次のクロックサイクルＴ２において先行プリチャージを行うためのコマンドＰＲＥを発行する。
【０１１８】
この場合、先行プリチャージコマンドは通常のプリチャージコマンドと同様に、アクティブ化されたバンクに隣接するバンクであって、クロックサイクルＴ１でＡＣＴＶコマンドによってアクティブ化されたバンクのアドレスに１を加算したアドレスのバンクが指定される。例えば、クロックサイクルＴ１でＡＣＴＶコマンドのバンクアドレスが１の場合は、クロックサイクルＴ２のＰＲＥコマンドのバンクアドレスは２となり、クロックサイクルＴ１のＡＣＴＶコマンドのバンクアドレスが０の場合はクロックサイクルＴ２のＰＲＥコマンドのバンクアドレスは１となり、クロックサイクルＴ１のＡＣＴＶコマンドのバンクアドレスが３の場合はクロックサイクルＴ２のＰＲＥコマンドバンクアドレスは０となる。
【０１１９】
バンクアドレスｂ１で指定されたバンクに対するプリチャージが実行される（既にセンスアンプに転送されているページのデータは、どのバンクのどのページのデータであるかは前の処理で分かっているため、バンクの指定により、既にセンスアンプに転送されているデータを元のページに戻すための処理が実行される。）と、クロックサイクルＴ３、Ｔ４、Ｔ５においてはＲＥＡＤコマンドが発行され、バンクアドレスｂ０で指定されたバンクであって、ロウアドレスｒａ０で指定されたページのうちカラムアドレスｃａ０、ｃａ１、ｃａ２で指定されたバイトに対するリードアクセスが行われる。
【０１２０】
この後、第４のアクセスサイクルａ３でページミスヒットが発生したときには（描画により、タイル境界を跨ぐアクセスが実行されたとき）、バンクアドレスｂ１で指定されたバンクをアクセス対象とする処理に移行する。この場合、バンクアドレスｂ１で指定されたバンクに対するプリチャージはクロックサイクルＴ２において既に実行され、このバンクに属するページのデータは既に元のページに戻されているため、このバンクに属するページに対してはＡＣＴＢコマンドの発行によってアクティブ化が即座に実行される。この後、バンクアドレスｂ１で指定されたバンクに属するページであって、ロウアドレスｒａ１で指定されページの中から指定のデータを読み出すために、第５のアクセスサイクルａ４で発行されたＲＥＡＤコマンドにしたがってカラムアドレスｃａ３、ｃａ４が出力され、カラムアドレスｃａ３、ｃａ４で指定されたデータ（バイト）に対するリードアクセスが実行される。
【０１２１】
このように、ページミスヒットはアクセスがページ境界を跨ぐことによって発生するため、ページミスヒットが発生するに先立って次にアクセスすべきバンクに対して予め先行プリチャージを実行することで、第４のアクセスサイクルａ３でページミスヒットが発生しても、クロックサイクルＴ６でＡＣＴＶコマンドを発行し、クロックサイクルＴ７にアクノリッジＡＣＫａをアサートして、クロックサイクルＴ８にＲＥＡＤコマンドを発行することができ、ページミスヒットによるリードトランザクションの遅延は２クロックサイクル（Ｔ６〜Ｔ７）となり、図２１に示すケースに比べて、先行プリチャージを実行することで、リードトランザクションの遅延を削減することができ、むだ時間の短縮により、単位時間当たりアクセス可能なデータ量が増加し、バンド幅の向上に寄与することができる。
【０１２２】
また、図２１、図２２における処理では、リードトランザクションの処理について述べたが、ライトトランザクションのときでも先行プリチャージを実行することで、ライトトランザクションの遅延を削減することができる。
【０１２３】
このように、本実施形態においては、メモリ７に画像データをタイルアドレスマッピングで且つ横方向に隣接するタイルをそれぞれ別バンクでしかもバンクアドレスが増加する順序に配置し、画像データの読み出しまたは画像データの書き込みを実行する場合に、アクセス対象であるバンクアドレスｎの所定のページをアクティブ化した直後に、バンクアドレスｎ＋１のバンクに対して先行プリチャージを実行するようにしているため、画像データの読み出しまたは書き込みの途中でタイル境界を超えてページミスヒットが発生しても、次にアクセスすべきタイルが配置されているバンクは必ずプリチャージがされているので、ページミスヒットによるメモリアクセスのオーバーヘッドを削減することができる。
【０１２４】
また、本実施形態によれば、メモリコントローラ１は、各デバイスからのメモリアクセスを選択するときに、優先度にしたがって１つのデバイスを選択し、選択したデバイスに対するアクセスを実行中に、優先度の高いデバイスからのアクセスが要求されたときには、実行中のアクセスを中断し、優先度の高いデバイスからのメモリアクセスを実行するようにしているため、複数のデバイスからのアクセス要求が競合しても、リアルタイム性の高いデバイスからのアクセス要求を選択してメモリ７にアクセスを実行することができ、アクセス競合による画像データのアクセス遅延を抑制することができる。
【０１２５】
また、前記実施形態によれば、先行プリチャージを実行しないときには、アクティブフラグとロウアドレスバッファＲＡＳカウンタおよびＲＰカウンタの情報を参照し、ページミスヒットが発生した場合には、アクティブ−プリチャージ間最小サイクルおよびプリチャージ−アクティブ間最小サイクルを満たす範囲で最短のタイミングでプリチャージとアクティブ化を実行することができる。
【０１２６】
【発明の効果】
以上説明したように、本発明によれば、アクセス対象のページをアクティブ化した後、アクティブ化されたページに対してアクセスを実行するに先立って、その後あるいは次にアクセス対象となるバンクまたはページに対して先行プリチャージを行っているため、その後あるいは次にアクセス対象となるバンクまたはページに対してアクセスを行うときにプリチャージを行うことなく、アクティブ化を行った後、リードまたはライトのアクセスを行うことができ、ページミスヒットによって異なるページにアクセスするときでも、プリチャージをした後、アクティブ化するまでの時間が不要となり、むだ時間を短縮することができ、効率良くアクセスすることができる。
【図面の簡単な説明】
【図１】本発明に係るメモリコントローラを適用した画像処理システムのブロック構成図である。
【図２】画像データのリニアアドレスマッピングの構成を説明すための構成図である。
【図３】画像データのタイルアドレスマッピングの構成を説明するための構成図である。
【図４】本発明に係るメモリコントローラのブロック構成図である。
【図５】アクセス調停部のブロック構成図である。
【図６】アクセス調停部のモードレジスタの設定例を示す図である。
【図７】アクセス調停部における優先度の構成説明図である。
【図８】アクセス調停部の動作を説明するためのタイムチャートである。
【図９】アクセス調停部の動作を説明するためのタイムチャートである。
【図１０】アクセス調停部の動作を説明するためのタイムチャートである。
【図１１】バンク管理およびアドレス生成部のブロック構成図である。
【図１２】アドレス生成部におけるアドレスの生成例を示す図である。
【図１３】バンク状態管理部のブロック構成図である。
【図１４】メモリ制御部のブロック構成図である。
【図１５】コマンド生成部におけるコマンド発行制御の状態遷移図である。
【図１６】コマンド生成部におけるコマンド発行制御の状態遷移条件を説明するための図である。
【図１７】コマンド生成部におけるコマンド発行制御の状態遷移による出力信号の状態を説明するための図である。
【図１８】ＤＱＭ生成部におけるバイトイネーブル信号の生成例を説明するための図である。
【図１９】リードデータ制御部のブロック構成図である。
【図２０】データ制御部のブロック構成図である。
【図２１】本発明に係るメモリコントローラにおいて先行プリチャージを実行しないときのメモリアクセスのタイムチャートである。
【図２２】本発明に係るメモリコントローラにおいて先行プリチャージを行うときのメモリアクセスのタイムチャートである。
【符号の説明】
１  メモリコントローラ
２  プロセッサ
３  描画処理装置
４  表示処理装置
５  ビデオ処理装置
６  入出力制御装置
７  メモリ
１０  アクセス調停部
１１  メモリ制御部
１２  バンク管理およびアドレス生成部
１４  マルチプレクス
１５  データ制御部
８１  ディスプレイ装置
８２  ビデオカメラ装置
８３  外部記憶装置
８４  通信装置
【図１】
0003918145.tif 000003
【図２】
0003918145.tif 000004
【図３】
0003918145.tif 000005
【図４】
0003918145.tif 000006
【図５】
0003918145.tif 000007
【図６】
0003918145.tif 000008
【図７】
0003918145.tif 000009
【図８】
0003918145.tif 000010
【図９】
0003918145.tif 000011
【図１０】
0003918145.tif 000012
【図１１】
0003918145.tif 000013
【図１２】
0003918145.tif 000014
【図１３】
0003918145.tif 000015
【図１４】
0003918145.tif 000016
【図１５】
0003918145.tif 000017
【図１６】
0003918145.tif 000018
【図１７】
0003918145.tif 000019
【図１８】
0003918145.tif 000020
【図１９】
0003918145.tif 000021
【図２０】
0003918145.tif 000022
【図２１】
0003918145.tif 000023
【図２２】
0003918145.tif 000024