JP3918145B2 - メモリコントローラ - Google Patents
メモリコントローラ Download PDFInfo
- Publication number
- JP3918145B2 JP3918145B2 JP2001151223A JP2001151223A JP3918145B2 JP 3918145 B2 JP3918145 B2 JP 3918145B2 JP 2001151223 A JP2001151223 A JP 2001151223A JP 2001151223 A JP2001151223 A JP 2001151223A JP 3918145 B2 JP3918145 B2 JP 3918145B2
- Authority
- JP
- Japan
- Prior art keywords
- access
- bank
- memory
- page
- access request
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/161—Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Dram (AREA)
- Memory System (AREA)
Description
【発明の属する技術分野】
本発明は、メモリコントローラに係り、特に、画像データなどを記憶するダイナミック・ランダムアクセスメモリ(DRAM)をアクセスするに好適なメモリコントローラに関する。
【0002】
【従来の技術】
近年、パーソナルコンピュータなどの急激な普及に伴い、パーソナルコンピュータの主記憶メモリとして使用されているDRAM(Dynamic Random Access Memory)の供給量が増大するとともに価格が下がり、これによりパーソナルコンピュータ以外の電子機器にもDRAMが採用されている。このDRAMには、インタフェースのクロックに同期して連続した書き込みや読み出し(以下、バースト転送)を高速化したシンクロナスDRAM(以下、SDRAM)や、SDRAMのバースト転送をクロック信号の立上りと立ち下がりの両エッジに同期して実行することにより、バースト転送を2倍に高速化したダブルデータレートSDRAM(以下、DDR−SDRAM)やラムバスDRAM(以下、RDRAM)などがある。これらDRAMのうち特に、SDRAMは安価で大容量のメモリを構成できるため、利用する機器は増加している。またディスプレイに表示する画像データを一時的に保持するフレームメモリとして、これまで使用されてきた高価な専用メモリ(VRAM)の代わりに、SDRAMを使用するようになってきている。なお、SDRAMの規格は、JEDEC規格21−Cで定められている。
【0003】
CDRAMの画像データをアクセスするデバイスとしては、例えば、画像データを読み出してディスプレイに転送する表示処理装置や、任意の図形を描画するために、それらの図形データを生成して画像データとして書き込む描画処理装置がある。またSDRAMにデータを記憶するに際しては、ビデオ入力装置によって生成された画像データを書き込むこともできる。さらに、SDRAMを構成するに際しては、画像データを記憶するフレームメモリとメインメモリとを統合して一つのメモリにしたユニファイドメモリをSDRAMで実現することもできる。SDRAMをユニファイドメモリとして構成した場合、ユニファイドメモリに対しては、画像データのアクセスの他に、プロセッサによる命令コードや各種データのアクセスが実行されるため、メモリアクセスを効率良く行う必要がある。
【0004】
画像データをフレームメモリに記憶するに際して、フレームメモリには、画像データをデータ記憶エリアに保持するために、水平方向および垂直方向に有限な二次元のアドレス空間が割り当てられている。画像データは、ディスプレイ装置の表示画面(表示画素)に対応して、水平方向および垂直方向に配列された状態で保持される。表示画面に対応する各画素の画像データはそれぞれ数ビットないし数十ビットで構成されており、1画素の画像データのビット長はデータの形式によって決定される。
【0005】
またフレームメモリとしてのSDRAMに画像データを記憶するに際しては、データ記憶エリアを複数のバンク、例えば、4バンクに分割するとともに、各バンクを複数のページに分割し、各ページにロウアドレスが割り当てられている。このように構成されたフレームメモリに対してアドレスを設定するに際しては、リニアアドレスマッピングとタイルアドレスマッピングが採用されている。
【0006】
リニアアドレスマッピングは、水平方向の画素データの並びをラインとしたときに、水平方向に配列された画素データ(表示画面の画素のうち水平方向に並んだ画素に対応した画像データ)に対して、水平方向に連続したアドレスを割り当てて、1ライン内の表示画素に対して全て同一のロウアドレス、すなわち同一ページのロウアドレスを割り当てる方式である。この場合、各ラインの画素データは、それぞれ同一バンクであるが別のロウアドレスが割り当てられるか、もしくは別のバンクのロウアドレスが割り当てられる。すなわち各ラインの画素データにライン毎に異なるページが割り当てられている。
【0007】
一方、タイルアドレスマッピングは、例えば、水平方向に32バイト、垂直方向に16ラインの方形(以下、タイル)内の画素データに対して連続したアドレスを割り当てるとともに、1タイル内の画素データに対しては全て同一のロウアドレス、すなわち同一ページを割り当てる方式である。この場合、各タイルの画素データ(画像データ)はそれぞれ同一バンクであるが別のロウアドレスが割り当てられるかもしくは別のバンクのロウアドレスが割り当てられる。すなわち各タイルの画素データにはタイル毎に異なるページが割り当てられている。
【0008】
ところで、SDRAMは、データを保持するためにリフレッシュ動作が必要であり、SDRAMをアクセスするに際しては、アクセス対象のページをロウアドレスで指定し、指定されたページに属する全てのデータをセンスアンプに転送して増幅するアクティブ化を行い、その後アクティブ化されたデータのうちカラムアドレスで指定されたデータに対してのみリードまたはライトによるアクセスを実行するようになっている。この場合、同一ページのデータに対しては連続したアクセスを行うことができる。しかし、ページが異なるときには、センスアンプにある全てのデータを元のページに戻すプリチャージを行い、その後アクセス対象のページに属する全てのデータをセンスアンプに転送して増幅するアクティブ化を実行することが必要である。
【0009】
すなわち、同じページに属するデータをアクセスするときには連続したアクセスが可能であるあるため、アクセス効率を高めることができる。しかし、異なるページにアクセスするときにはページミスヒットとなり、アクセス対象のページに対してプリチャージを行った後、アクティブ化を行い、その後アクセス対象のページにアクセスする処理が必要であり、メモリアクセスの効率が低下することになる。このため、SDRAMをアクセスするに際しては、ページミスヒットの発生を少なくすることが望ましく、SDRAMにアドレスマッピングを設定するに際しては、装置の機能に合わせる必要がある。
【0010】
すなわち、表示処理装置に用いるSDRAMに対してリニアアドレスマッピングを適用した場合、表示処理装置は、ライン方向に左側から右側または右側から左側のいずれか一方向に連続してアクセスするため、1ラインをアクセスする間はページミスヒットが生じることはなく、ページミスヒットの発生を抑制することができる。しかし、表示処理装置に用いるSDRAMに対してタイルアドレスマッピングを適用した場合、ページミスヒットの発生が多くなる。これは、表示処理装置においては、アクセスを開始するアドレスが任意であって、表示する画像のスクロールや複数の表示画像面(以下、プレーンと称する。)の境界が任意の位置に設定されることに起因している。このため、タイルアドレスマッピングを用いたSDRAMに対して表示処理装置からアクセスを行うと、ライン方向に連続した画素データをアクセスするときにはタイル境界(タイルとタイルとの境界)を跨いてアクセスすることになるので、タイル境界を跨ぐ毎にページミスヒットが発生し、メモリアクセスの効率が低下する。
【0011】
これに対して、リニアアドレスマッピングを用いたSDRAMに対して描画処理装置からアクセスした場合、水平方向の描画であれば連続アクセスが可能であってページミスヒットの発生を少なくすることはできるが、水平方向や斜め方向の描画であれば、各サイクルごとに異なるページにアクセスすることになるので、描画サイクルごとにページミスヒットが発生し、メモリアクセスの効率が低下する。
【0012】
すなわち、描画処理装置は、与えられた描画命令コードにしたがって任意の図形を生成し、生成した図形に関する画像データをSDRAMの二次元のアドレス空間に書き込むようになっており、しかも描画する図形は任意の角度の直線や曲線で構成されているため、アクセス対象のアドレスは水平方向に連続であったり、垂直方向に連続であったり、あるいは斜め方向に連続あったりする。このため、描画処理装置に用いるSDRAMにタイルアドレスマッピングを設定すれば、水平方向、垂直方向、斜め方向のいずれの方向にアクセスするときでも、タイル境界を超えるときにのみページミスヒットが発生するので、リニアアドレスマッピングを用いたときよりもページミスヒットの発生を少なくすることができる。従って、描画処理のためには、タイルアドレスマッピングが好ましく、フレームメモリをSDRAMで実現する多くの機器にはタイルアドレスマッピング方式が採用されている。
【0013】
また、表示処理装置による画像データの読み出しは一種のリアルタイム性が要求されている。すなわち、画像データの読み出しがある一定の期間内に完了しなければディスプレイ装置に表示される画像にちらつきが生じる。このような画像のちらつきを防止するためには、SDRAMのページミスヒットの発生を抑制することにより、画像データのアクセス効率の向上を図る他に、SDRAMへのアクセスの調停が重要になる。特に、ユニファイドメモリ構成では描画処理装置によるアクセスとプロセッサなど他のデバイスからのアクセスとの競合が頻発するため、アクセス競合による画像データのアクセス遅延をいかに抑えるかが重要となる。
【0014】
そこで、フレームメモリとしてのSDRAMを効率良くアクセスするに際して、特開平8−255107号公報に記載されているように、アクセス対象のアドレスと前回アクセスしたアドレスとを比較してページヒットの判定を行い、ページミスヒットが発生したときにはバンクのプリチャージと新しいページのアクティブ化を実行した後に、ライトもしくはリードを実行し、ページヒットしたときにはバンクのプリチャージやアクティブ化を行うことなく直ちにライトもしくはリードを実行し、さらに、SDRAMの連続的なアクセスを実行できるように、所定単位で順次増分するアドレスカウンタを備え、且つ、同一ページを連続的にアクセスしている途中で異なるページをアクセスする場合には、異なるページにアクセスする直前にアクセスを中断し、表示処理装置による画像データの読み出しを効率良く行うようにしたものが提案されている。
【0015】
【発明が解決しようとする課題】
しかし、従来技術においては、SDRAMのページヒットを判定するに際して、アクセス対象のアドレスと前回アクセスしたアドレスとを単に比較しているので、アクセス効率を高めるにも、SDRAMの特徴である複数バンクによるインタリーブアクセス(2または4つのバンクのうち各バンクのページを個別にアクティブ化することを利用し、アクセスを複数のバンクに分散し、アクセス効率を高めるアクセス方法)を活用することができない。
【0016】
また、表示処理装置による画像データの読み出しにおいて、同一ページのデータに対して連続的なアクセスを行っている途中で異なるページにアクセスするときにはアクセスを中断してページミスヒットの発生を防止しているが、その後、後続のアクセスを実行するときには結局ページミスヒットが発生することになり、バンクに対するプリチャージとアクティブ化は避けられない。
【0017】
さらに、従来技術においては、複数のアクセスが競合するときに、表示処理装置によるアクセスのリアルタイム性を考慮して調停することは考慮されていない。
【0018】
本発明の課題は、ダイナミックランダムアクセスメモリに対するアクセスを効率良く行うことができるメモリコントローラを提供することにある。
【0019】
【課題を解決するための手段】
前記課題を解決するために、本発明は、データ記憶エリアが複数のバンクに分割されているとともに各バンクが複数のページに分割されているダイナミックランダムアクセスメモリに対するアクセス要求を受けたときに、前記アクセス要求を基にアクセス対象のページをアクティブ化し、前記アクティブ化されたページに対してアクセスを実行するに先だって、その後または次にアクセス対象となるバンクに対して先行プリチャージを実行するメモリ制御手段を備えてなるメモリコントローラを構成したものである。
【0021】
さらに、前記各メモリコントローラを構成するに際しては、ダイナミックランダムアクセスメモリとしては、データ記憶エリアが複数のバンクに分割されているとともに各バンクが複数のページに分割され、各ページが相隣接するページとは異なるバンクに割付けられているものを対象とすることもできる。
【0022】
また、メモリコントローラをダイナミックランダムアクセスメモリと少なくとも一つ以上の処理装置に接続したり、あるいはメモリコントローラをダイナミックアクセスメモリと複数の処理装置にそれぞれ接続構成を採用することもできる。この場合、メモリコントローラとしては、以下の機能を有するもので構成することができる。
【0023】
(1)ダイナミックランダムアクセスメモリに対するアクセス要求を受けたときに、前記アクセス要求をもとにアクセス対象のバンクのページをアクティブ化し、前記アクティブ化されたページに対してアクセスを実行するに先立って、その後アクセス対象となるバンクに対して先行プリチャージを実行するメモリ制御手段を備えてなる。
【0024】
(2)ダイナミックランダムアクセスメモリに対するアクセス要求を受けたときに、前記アクセス要求を基にアクセス対象のバンクのページをアクティブ化し、前記アクティブ化されたページに対してアクセスを実行するに先だって、次にアクセス対象となるバンクに対して先行プリチャージを実行するメモリ制御手段を備えてなる。
【0025】
(3)ダイナミックランダムアクセスメモリに対するアクセス要求を受けたときに、前記アクセス要求を基にアクセス対象のバンクのページをアクティブ化し、この直後に次にアクセス対象となるバンクに対して先行プリチャージを実行し、その後前記アクティブ化されたページに対してリードまたはライトによるアクセスを実行するメモリ制御手段を備えてなる。
【0028】
前記メモリコントローラのうち複数の処理装置に接続されたメモリコントローラを構成するに際しては、以下の要素を付加することができる。
【0029】
(1)前記複数の処理装置から出力されるアクセス要求のうちいずれか一つのアクセス要求を選択して前記メモリ制御手段に出力するアクセス調停手段を備え、前記アクセス調停手段は、前記選択したアクセス要求によるアクセスが前記メモリ制御手段により実行されているときに、前記選択したアクセス要求よりも優先度の高いアクセス要求が新たに入力されたときには前記選択したアクセス要求によるアクセスの中断を前記メモリ制御手段に指令するとともに、前記新たに入力されたアクセス要求によるアクセスを前記メモリ制御手段に指令してなる。
【0032】
前記した手段によれば、アクセス対象のページをアクティブ化した後、アクティブ化されたページに対してアクセスを実行するに先立って、その後あるいは次にアクセス対象となるバンクに対して先行プリチャージを行っているため、その後あるいは次にアクセス対象となるバンクに対してアクセスを行うときにプリチャージを行うことなく、アクティブ化を行った後、リードまたはライトのアクセスを行うことができ、ページミスヒットによって異なるページにアクセスするときでも、プリチャージをした後、アクティブ化するまでの時間が不要となり、むだ時間を短縮することができ、効率良くアクセスすることができる。このため、単位時間当たりのアクセス可能なデータ量を増加することができ、バンド幅の向上に寄与することができる。
【0033】
また、ある処理装置からのアクセス要求を選択してアクセスを実行しているといに、優先度の高いアクセス要求、例えば、リアルタイム性の高いアクセス要求が新たに入力され、複数の処理装置(デバイス)からのアクセス要求が競合したときには、選択したアクセス要求によるアクセスを中断し、新たに入力されたアクセス要求によるアクセスを実行するようにしているため、複数のアクセス要求が競合したときでも、優先度の高いアクセス要求(リアル性の高いアクセス要求)を優先して実行することができ、アクセス競合による画像データのアクセス遅延を抑制することができる。
【0035】
【発明の実施の形態】
以下、本発明の一実施形態を図面に基づいて説明する。図1は本発明に係るメモリコントローラを画像処理システムに適用したときのシステム構成図である。図1において、画像処理システムは、例えば、パーソナルコンピュータに内蔵されるグラフィックスカードや自動車に搭載されるカーナビゲーションシステムに該当し、メモリコントローラ1とともに、複数の処理装置と単一のメモリを備えて構成されている。
【0036】
複数の処理装置は、例えば、シーケンス処理やデータ処理を実行するプロセッサ(以下、CPUと称する。)2、二次元や三次元の図形描画処理を実行する描画処理装置(以下、RUと称する。)3、ディスプレイ装置81に表示画像データを転送する表示処理装置(以下、DUと称する。)4、ビデオカメラ装置82からビデオ画像データを取り込むビデオ処理装置(以下、BUと称する。)5、外部記憶装置83や通信装置84などの周辺装置とのデータ転送を制御する入出力制御装置(以下、IOUと称する。)6から構成されており、各処理装置共通のメモリ7はSDRAMで構成されている。なお、メモリ7としては、SDRAMよりも高速アクセスが可能なダブルデータレート(DDR)DRAMを用いることも可能である。
【0037】
メモリ(ダイナミックランダムアクセスメモリ)7は、例えば、データ記憶エリアが複数のバンクに分割されているとともに、各バンクが複数のページに分割され、各ページが相隣接するページとは異なるバンクに割付けられている。そしてメモリ7の各ページには、CPU2で処理される命令コードやデータ、RU3で処理される描画命令コードや描画データ、DU4から読み出される表示画像データ、VU5から書き込まれるビデオ画像データなどが記憶される。また命令コードやデータはIOU6によって周辺装置から書き込まれたり読み出されたりするようになっている。
【0038】
システムの構成としては、メモリコントローラ1と、RU3、DU4、VU5、IOU6をそれぞれ統合して1つのLSIで実現することもできる。またこれらにCPU2を加えて1つのLSIで実現することもできる。さらにメモリ7を加えて1つのLSIで実現することもできる。なお、メモリアクセス元となるCPU2、RU3、DU4、VU5、IOU6などの処理装置を以下説明のためにデバイスと称することにする。
【0039】
メモリコントローラ1は、各デバイスからアクセス要求を受けたときに、いずれか1つのアクセス要求を選択するための調停を行い、アクセス要求を基にコマンドを生成し、このコマンドにしたがってメモリ7に対して読み出しや書き込みの処理(アクセス)を実行するようになっている。具体的には、メモリコントローラ1は、アクセス調停部10、メモリ制御部11、バンク管理およびアドレス生成部12、マルチプレクス(以下、MUXと称する。)14、データ制御部15を備えて構成されている。
【0040】
アクセス調停部10は、各デバイスからのアクセス要求を受け、複数のデバイスからのアクセス要求が競合したときには、予め定められたれた優先度に基づいてメモリアクセスの順番を決定するように構成されている。メモリ制御部11は、アクセス調停部10によって決定されたデバイスからのアクセス要求を基にコマンドを生成し、このコマンドに基づいた制御信号にしたがってメモリ7の読み出しおよび書き込みを制御するようになっている。この場合、メモリ7は、SDRAMを前提としているので、この制御はSDRAMの読み出しおよび書き込みシーケンスにしたがって行われる。バンク管理およびアドレス生成部12は、メモリ制御部11からコマンドを受け、このコマンドにしたがってメモリ7の状態を管理するとともに、アクセス調停部10によって選択されたデバイスからのアクセス要求を基にアクセス対象となるバンクおよびページを選択するために、バンクアドレス、ロウアドレス、カラムアドレスを生成するとともに、メモリ7に対するアクセスを最適化するのに必要となる情報を保持し、この保持した情報をメモリ制御部11に出力するようになっている。MUX14はアクセス調停部10が選択したデバイスのアドレスやデータを選択し、選択したデータをバンク管理およびアドレス生成部12などに出力するようになっている。データ制御部15はメモリ7に書き込むためのデータやメモリ7から読み出されたデータを一時的に保持するように構成されている。
【0041】
メモリ7のアドレス空間には、描画データ、表示画像データおよびビデオ画像データを保持するために、それぞれ水平方向および垂直方向に有限な二次元のアドレス空間が割り当てられている。描画データ、表示画像データおよびビデオ画像データはそれぞれ数ビットないし数十ビットで1画素を表すデータとして構成されており、これらのデータがメモリ7に記憶されるときには、ディスプレイ装置の画面上に画像が表示されるときのように、水平方向および垂直方向に沿って整列され、1画素データのビット長はデータの形式によって決まる。
【0042】
メモリ7に描画データ、表示画像データおよびビデオ画像データを記憶するに際しては、リニアアドレスマッピング方式またはタイルアドレスマッピング方式を採用することができる。メモリ7を、例えば、4つのバンク(バンクアドレス0〜3)に分割し、各バンクのページをn個に分割し、リニアアドレスマッピング方式を採用したときには、図2に示すように、各ラインがページに割り当てられ、各ラインには水平方向に連続したアドレスが割り当てられ、1ライン内の画素データは同一のロウアドレス、すなわち同一ページに割り当てられる。ただし各ラインにはそれぞれ同一バンクの別のロウアドレスもしくは別のバンクのロウアドレスが割り当てられる。すなわち各ラインには異なるページが割り当てられる。なお、この場合、カラムアドレス(0〜511)は画面の各画素に対応したアドレスとなる。
【0043】
一方、メモリ7を4つのバンクに分割し、タイルアドレスマッピング方式を採用したときには、図3に示すように、ページは、水平方向に32バイト、垂直方向に16ラインの方形(以下、タイルと称する。)に対応して設定され、各タイル内では連続したアドレス(0〜511)が割り当てられ、各タイル内の画素データは全て同一のロウアドレス、すなわち同一ページに割り当てられる。ただし、各タイルはそれぞれ同一バンクであるが別のロウアドレス、もしくは別のバンクのロウアドレスが割り当てられる。すなわち各ページは相隣接するタイルとは個となるページが割り当てられることになる。
【0044】
ここで、リニアアドレスマッピング方式またはタイルアドレスマッピング方式のいずれかを採用するに際しては、各デバイスの機能を考慮する必要がある。
【0045】
例えば、RU3は、描画命令コードにしたがって任意の図形を生成し、メモリ7の二次元のアドレス空間に書き込むようになっており、描画する図形は任意の角度の直線や曲線で構成されているため、アクセス対象のアドレスは水平方向に連続だったり、垂直方向に連続であったり、あるいは斜め方向に連続であったりする。このため、リニアアドレスマッピングでは、水平方向の描画であれば連続したアクセスは可能であるが、垂直方向や斜め方向の描画であれば、サイクルごとにメモリ7の異なるページにアクセスすることとなり、サイクルごとにページミスヒットが発生し、メモリアクセス効率が低下することになる。
【0046】
一方、図3に示すタイルアドレスマッピング方式を用いたときには、水平方向、垂直方向および斜め方向のいずれの方向にアクセスするときでもタイル境界を超えたときのにみページミスヒットが発生することになる。したがって、描画処理のためには、図3のタイルアドレスマッピングを用いることが好ましい。
【0047】
また、DU4によるメモリ7からの表示画像データの読み出しおよびVU5によるメモリ7へのビデオ画像データの書き込みは一定の規則性を持っている。すなわち両者はいずれもライン方向に、しかも左側から右側または右側から左側のいずれか1方向に連続してアクセスするようになっている。しかし、アクセスを開始するアドレスは任意である。これは、表示画像のスクロールやDU4、またはVU5の内部での転送データバッファの制御などに起因している。このため、DU4とVU5に対してタイルアドレスマッピングを採用したときには、タイル境界を跨ぐライン方向に連続したアクセスが要求されたときには、タイル境界を跨ぐごとにページミスヒットが発生するので、ページミスヒット時におけるアクセスを効率良く行わなければ、メモリアクセス効率が低下することになる。
【0048】
また、DU4による表示画像データの読み出しやVU5のビデオ画像データの書き込みは一種のリアルタイム性が要求される。すなわち、表示画像データの読み出しがある一定の期間内に完了しなければ、ディスプレイ装置に表示される画像にはちらつきが生じる。一方、ビデオ画像データの書き込みがある一定の期間内に完了しなければディスプレイ装置に表示されるビデオ画像が一時的に静止してしまう。このため、メモリ7にアクセスするにも、ページミスヒットの影響を抑制することによって、表示画像データやビデオ画像データのアクセス効率の向上を図る他に、各デバイスからのアクセス要求を調停することが重要となる。
【0049】
特に、メモリ7を各デバイスの共有メモリとしてユニファイドメモリ構成としたときには、各デバイスからのアクセス要求の競合が頻発するため、アクセス競合による表示画像データやビデオ画像データのアクセス遅延をいかに抑えるかが重要なポイントとなる。
【0050】
このため、本実施形態におけるメモリコントローラ1は、ページミスヒットの影響を抑制するための処理を行うとともに複数のデバイスからのアクセスが競合したときに、表示画像データやビデオ画像データのアクセス遅延を抑制するための処理を行うようになっており、メモリコントローラ1には、図4に示すように各デバイスからインタフェースを介して各種の信号が入力されている。メモリコントローラ1と各デバイスはそれぞれ独立したインタフェースで接続されているが、各インタフェースの仕様は同一である。インタフェースは次の信号で実現されており、i(i=a,・・・e)は各デバイスの識別子である。
【0051】
アクセス調停部10には、図4に示すように、各デバイスからレディ信号(RDYi)、ライト/リード識別信号WRi、最終サイクル識別信号ENDiが入力されており、アクセス調停部10から各デバイスに対してはアクノリッジ信号(ACKi)が出力されるようになっている。MUX14には各デバイスからバイトイネーブル信号BEi〔3:0〕、アクセス先アドレスADRi〔25:2〕、ライトデータWDTi〔31:0〕が入力されている。一方、メモリ制御部11から各デバイスに対してはリードデータストローブ信号RSTBiが出力され、データ制御部15から各デバイスにはリードデータRDTi〔31:0〕が出力されるようになっている。さらに、メモリコントローラ1とメモリ7はSSDRAMインタフェイスを介して接続されており、メモリ制御部11からメモリ7に対して、コマンドを指定するための制御信号として、チップセレクト信号CS#、ロウアドレスストローブ信号RAS#、カラムアドレスストローボ信号CAS#、ライトイネーブル信号WE#が出力されているとともに、特定のデータをマスクするためのデータマスク信号DQM〔3:0〕が出力されている。また、バンク管理およびアドレス生成部12からメモリ7に対しては、アクセス対象のバンクおよびページを選択するために、バンクアドレスBA〔1:0〕、ロウ/カラムアドレスA〔12:0〕が出力されており、データ制御部15とメモリ7との間ではリード/ライトデータDQ〔31:0〕の授受が行われるようになっている。なお、#は負論理の信号であることを示している。また本実施形態では、説明に必要な最小限の信号のみを示している。
【0052】
各デバイスからメモリコントローラ1に対してメモリリードアクセスおよびメモリライトアクセスを示す信号をアクセス要求として出力するに際しては、図21に示すように、クロックに同期して出力されるようになっている。この場合、メモリアクセスはデータ幅と同じ4バイト単位で実行され、4バイトメモリアクセスを実行するサイクルをアクセスサイクルと呼ぶ。アクセスサイクルは最短で1クロックサイクルであるが、他のデバイスとの競合が生じたとき、あるいはメモリ7のバンクアクティブまたはプリチャージにより2クロックサイクル以上要する場合もある。また、メモリアクセスアドレスの送受(ライトアクセスの場合にはライトデータとバイトイネーブルも含む)とリードデータの送受は独立して実行される。このため、リードデータの返送を待つことなく、次のアクセス要求を受け付けることができる。また各デバイスはメモリアクセスを要求するときに、レディ信号RDYiをアサート(ハイレベル=“1”の信号)にするとともに、最初のアクセスアドレスADRiを出力する。アクセスの長さが4バイト以下である場合には最初のアクセスサイクルが最後のアクセスサイクルとなるので、レディ信号RDYiとともに、最終サイクル識別信号ENDiもアサートする。そしてライトアクセスの場合には、レディ信号RDYiをアサートするとともに、ライト/リード識別信号WRiをアサートし、且つ最初のライトデータWDTiとバイトイネーブルBEiを出力する。一方、リードアクセスの場合には、レディ信号RDYiをアサートするとともに、ライト/リード識別信号WRiをネゲート(ロウレベル=“0”の信号)にする。なお、リードアクセスの場合にはライトデータWDTiとバイトイネーブル信号BEiを出力する必要はない。
【0053】
メモリコントローラ1は、各デバイスからのレディ信号RDYiがアサートされたことを検知して調停を行い、複数のデバイスのうち1つのデバイスからのアクセスを選択してそのアクセス先アドレスADRiを取り込む。そして、リード/ライト識別信号WRiがアサートされているときには、ライトデータWDTiとバイトイネーブル信号BEiも取り込む。そして、選択したデバイスに対してアクノリッジ信号ACKiをアサートする。アクノリッジ信号ACKiのアサートは最短でレディ信号RDYiのアサート開始と同一クロックサイクル内で行われるが、上述したように、他のデバイスとの競合やメモリ7のバンクアクティブまたはプリチャージによりアクノリッジ信号ACKiのアサートが1クロックサイクル以上遅れる場合もある。このような場合、デバイスは各信号の出力状態をアクノリッジ信号ACKiがアサートされるまで保持する。デバイスアクノリッジ信号ACKiがアサートされたときには、次のクロックサイクルにレディ信号RDYiをアサートした状態で、次のアクセスアドレスADRiを出力する(A1)。WRi、WDTi、BEiも同様である。アクセスアドレスADRiは前のアドレス値と連続してなくても良い。また最終アクセスサイクルであれば最終サイクル識別信号ENDiもアサートする。
【0054】
メモリコントローラ1は最終サイクル識別信号ENDiがアサートされている最終アクセスサイクルを受け付ける(アクノリッジ信号ACKiをアサートする。)とともに、他のデバイスのレディ信号RDYiのアサートを検知したときには調停を行い、次のクロックサイクルにはこのアクセスサイクルを受け付けることが可能である。最終アクセスサイクルが受け付けられたデバイスは、この調停の対象には入らない。ただし、引き続きレディ信号RDYiをアサートして次のアクセスを要求することは可能である。
【0055】
またメモリコントローラ1は、基本的に1つのデバイスのアクセスを選択したときには最終サイクル識別信号ENDiがアサートされるまで同一デバイスのアクセスのみを受け付ける。そしてメモリコントローラ1があるデバイスのアクセスを選択してから最終サイクル識別信号ENDiがアサートされた最終アクセスサイクルを受け付ける(アクノリッジ信号ACKiをアサートする。)までの期間をトランザクションと呼ぶ。1トランザクションの間に実行する複数のアクセスサイクルのアドレスはそれぞれ任意であり、1トランザクションの期間に複数のページに跨るアドレスにアクセスすることは可能である。なお、各デバイスは1トランザクションの間にレディ信号RDYiをネゲートしてメモリアクセスを一時的に停止することも可能であり、また、1トランザクションの間にリードアクセスとライトアクセスを混在して要求することも可能であるが、メモリアクセスの効率を悪化させるので、このような要求を行うときには、最終サイクル識別信号ENDiをアサートしてトランザクションを一旦終了することが望ましい。
【0056】
次に、アクセス調停部10の具体的内容を図5ないし図10を用いて説明する。アクセス調停部10は、図5に示すように、モードレジスタ部100、デバイス選択部101、カウンタ102を備えて構成されており、レジスタバスREGBUSが各デバイスに接続されている。
【0057】
モードレジスタ部100は、メモリアクセス調停における優先度や、メモリ7のカラムレイテンシ(SDRAMのリードコマンド発行からリードデータ出力までのクロックサイクル数)、プリチャージモードなどを設定するレジスタである。このモードレジスタ部100には、レジスタバスREGBUSを経由してカラムレイテンシや優先度などに関するデータが設定されるようになっている。
【0058】
例えば、図6に示すように、モードレジスタ部100には、各デバイスのメモリアクセスの優先度PRi〔2:0〕が設定され、カラムレイテンシCL2が設定され、各デバイスからの要求に対して先行プリチャージを実行するか否かを示すプリチャージモードPDiが設定されるようになっている。カラムレイテンシについては2サイクルか3サイクルかが設定され、CL2が0であればカラムレイテンシは3サイクルであり、CL2が1であればカラムレイテンシは2サイクルである。またPDiが0であれば、このデバイスに対する先行プリチャージは実行せず、PDiが1のときには、このデバイスからの要求に対しては先行プリチャージを実行することを示している。
【0059】
また優先度PRi〔2:0〕=「000」〜「111」については、図7に示すように、PRi〔2:0〕の値が小さい程、優先度は高くなる。そして複数のデバイスが同一の優先度に設定された場合、それらのデバイスの間ではラウンドロビンでアクセスが調停される。すなわち、ラウンロビンでは、調停を実行するタイミングを基準として、このタイミングに最も近いときにアクセスを受け付けられたデバイスが同一優先度のデバイス間では最下位の優先度となる。なお、優先度が「000」場合には、特権モードと呼び、特権モードに設定されたデバイスがメモリアクセスを要求した場合、実行中の他のデバイスのトランザクションを中断して(本トランザクションが特権モードで実行している場合は中断しない)、特権モードのデバイスのトランザクションを実行し、且つ、後述するカウンタ102からのABORT(中断)信号は無視される。
【0060】
デバイス選択部101は、各デバイスからのレディ信号RDYiのアサートを検知したときには、レディRDYをアサートし、モードレジスタ部100に設定された優先度にしたがって1つのデバイスを選択し、そのデバイスを識別する信号を保持するとともに、その番号をDEVSEL〔3:0〕として出力し、選択したデバイスのライト/リード識別信号WRiをWRとして出力し、モードレジスタ部100の選択したデバイスの先行プリチャージPDiが1に設定されていれば、先行プリチャージPDEVをアサートする。RDYのアサートおよびDEVSEL〔3:0〕、WR、PDiの出力は、選択したデバイスのRDYiアサート期間中継続される。
【0061】
またデバイス選択部101は、メモリ制御部11からのアクノリッジ信号ACKのアサートを検知すると、選択したデバイスに対してアクノリッジ信号ACKiをアサートし、選択したデバイスが同一サイクルに最終サイクル識別信号ENDiをアサートしているならば、トランザクションの完了と判断し、カウンタ102にEND信号を1クロックサイクルアサートするとともに、次のクロックサイクルからアクセスの調停を再開する。
【0062】
カウンタ102は、最終サイクル識別信号END信号のアサートによりカウント値をクリアし、アクノリッジ信号ACK信号がアサートされている間、クロックサイクルに同期してカウント値を順次インクリメントし、カウント値が所定の設定値と一致したときにABORT信号をアサートするようになっている。すなわち、カウンタ102は、あるトランザクションにおけるアクセスサイクル数をカウントするカウンタである。そしてあるデバイスによるトランザクションのアクセスサイクル数が極端に長い場合、他のデバイスのメモリアクセスに支障が生じてしまうため、1トランザクションのアクセスサイクル数に上限を設け、カウンタ102によってアクセスサイクル数が上限に達したことが検知されたときには、メモリコントローラ1側で一旦トランザクションを中断し(これをアボートと呼ぶ。)、他のデバイスのメモリアクセスを受け付けるようにしている。1トランザクションのアクセスサイクル数の上限はレジスタバスREGBUSを経由してカウンタ102に任意の値で設定することが可能である。
【0063】
デバイス選択部101はカウンタ102のABORT信号のアサートを検知すると、トランザクションの中断と判断してカウンタ102にEND信号を1クロックサイクルの間アサートするとともに、次のクロックルサイクルからアクセスの調停を再開する。なお、デバイスからはアボートによってメモリアクセスが中断されたことは認識されず、単にメモリコントローラ1のアクノリッジACKiのアサートが遅れているように見えるため、レディ信号RDYiのアサートを継続する。このように、メモリコントロール1は、アボートによって中断したトランザクションの後続を次のトランザクションの終了直後またはそれ以降に優先度に基づいて選択して実行することになる。
【0064】
次に、アクセス調停部10の動作を図8ないし図10にしたがって説明する。図8では、デバイスaはライトアクセスで、アクセスサイクル数は2を示しており、デバイスbはリードアクセスでアクセスサイクル数は1、優先度はデバイスaの方がデバイスbよりも高いときを示している。またDEVSEL〔3:0〕の値はデバイスaが0001、デバイスbは0010とする。
【0065】
まず、図8において、クロックサイクルT0においてデバイスaとデバイスbが同時にレディ信号RDYiをアサートすると、アクセス選択部11は優先度に基づいてデバイスaを選択する。メモリ制御部11はクロックサイクルT2にデバイスaの最初のアクセスサイクルに対するアクノリッACKをアサートし、クロックサイクルT3に次のアクセスサイクルに対するアクノリッジACKをアサートする。さらにクロックサイクルT3で最終サイクル識別信号ENDaがアサートされた後は、クロックサイクルT4からデバイスbが選択され、リードアクセスが実行され、クロックサイクルT8ではデバイスbの最初で最後のアクセスサイクルに対するアクノリッジACKがアサートされる。
【0066】
一方、デバイスaのトランザクションがアボートによって中断されるときには、図9に示すように、デバイスaのトランザクションはクロックサイクルT0から開始されているが、クロックサイクルT3でABORTがアサートされるため、トランザクションが中断され、次のクロックサイクルT4ではデバイスbのトランザクションが実行される。このとき、デバイスbのトランザクションはアクセスサイクル数が1であるため、クロックサイクルT4で終了し、次のクロックサイクルT5からはデバイスaのトランザクションが再開される。
【0067】
また、デバイスaのトランザクションが実行されているときに、特権モードのデバイスbからメモリアクセスが要求されたときには、図10に示すように、デバイスaのトランザクションはクロックサイクルT0から開始されているが、クロックサイクルT3で特権モードのデバイスbからのレディ信号RDYiがアサートされるため、デバイスaのトランザクションが中断され、次のクロックサイクルT4ではデバイスbのトランザクションが実行される。デバイスbのトランザクションはアクセスサイクル数が1であるため、デバイスbのトランザクションはクロックサイクルT4で終了し、次のクロックサイクルT5からはデバイスaのトランザクションが再開される。
【0068】
次に、バンク管理およびアドレス生成部12の構成を図11に示す。バンク管理およびアドレス生成部12は、アドレス生成部120、バンク状態管理部121、バンクアドレスラッチ140、ロウ/カラムアドレスラッチ141で構成されている。アドレス生成部120とバンク状態管理部121には、メモリ制御部11の生成による各種のコマンドが入力されており、アドレス生成部120にはアクセスアドレスADR〔25:2〕、モード信号CONF〔3:0〕が入力されている。
【0069】
アクティブコマンドATCISSは、メモリ制御部11からメモリ7に対して、アクティブコマンドを発行したことを示す信号として入力され、プリチャージコマンドPREISSはメモリ制御部11からメモリ7に対して、プリチャージコマンドが発行されたことを示す信号として入力され、先行プリチャージコマンドPPREISSはメモリ制御部11からメモリ7に対して、先行プリチャージモードにおける先行的なプリチャージコマンドを発行したことを示す信号として入力されている。また全バンクプリチャージコマンドPALLISSはメモリ制御部11からメモリ7に対して、全てのバンクに対してプリチャージを実行するためのプリチャージコマンドが発行されたことを示す信号として入力され、モードレジスタセットコマンドMRSISSはモードレジスタセットコマンドが発行されたことを示す信号として入力されている。
【0070】
アドレス生成部120は、MUX14によって選択されたデバイスのアドレスを示すアクセスアドレスADR〔25:2〕と、メモリ7の構成(メモリ容量)を示すモード信号CONF〔3:0〕と、各種のコマンドを基に、バンクアドレスBADR〔1:0〕、ロウアドレスRA〔12:0〕、ロウアドレスまたはカラムアドレスMADR〔12:0〕を生成して出力するようになっている。MADR〔12:0〕がロウアドレスまたはカラムアドレスのうちどちらを出力するかは発行するコマンドの種類によって決まる。なお、4バンクのうち1バンクを選択するためのBA〔1:0〕=「00」〜「11」はバンクアドレスBADR〔1:0〕をラッチ140でラッチした信号であり、ロウ/カラムアドレスA〔12:0〕はMADR〔12:0〕をラッチ141でラッチした信号である。すなわちアドレス生成部120はメモリ制御手段の1要素として、アクセス要求を基にメモリ7のバンクのうちアクセス対象のバンクとページおよびページの中の特定のデータを選択するためのバンクアドレスBA〔1:0〕、ロウ/カラムアドレスA〔12:0〕を出力するようになっている。
【0071】
バンク状態管理部121は、メモリ制御部11から発行された各種のコマンドを基にメモリ7の各バンクの状態を保持し、メモリ7へのアクセスを最適に行うための情報をメモリ制御部11に提供するようになっている。すなわち、バンク状態管理部121は、以下のバンク状態情報をバンク別に保持するようになっている。
【0072】
(1)アクティブ状態か非アクティブ状態か。
【0073】
(2)アクティブ状態のカラムアドレス。
【0074】
(3)アクティブ−プリチャージ間最小サイクルが経過したか。
【0075】
(4)プリチャージ−アクティブ間最小サイクルが経過したか。
【0076】
バンク状態管理部121は以上の情報に基づいてアクセスサイクルごとに以下の情報をメモリ制御部11に提供する。
【0077】
(1)BACT:アクセス対象のバンクがアクティブ状態である。
【0078】
(2)PHIT:アクセス対象のページがアクティブ状態である(ページヒットであることを示す)。
【0079】
(3)IRAS:アクセス対象のバンクにおいてアクティブ−プリチャージ間最小サイクルが経過した。
【0080】
(4)IRP:アクセス対象のバンクにおいてプリチャージ−アクティブ間最小サイクルが経過した。
【0081】
(5)IRASALL:バンクにおいてアクティブ−プリチャージ間最小サイクルが経過した。
【0082】
以上の情報は、例えば、ハイレベルの信号としてメモリ制御部11に提供される。
【0083】
また、アドレス生成部120において各種のアドレスを生成するに際しては、図12に示すように、メモリ7の構成(メモリ容量)にしたがってアドレスが生成される。モード信号CONF〔3:0〕はメモリ7の構成を示すものであり、CONF〔3:0〕が0のメモリ構成は、メモリ7のバンクは4バンク構成(バンク0〜バンク3)で1バンク当たり4096ページ、1ページ当たり256ワードである。またCONF〔3:0〕が1のメモリ構成のときには、メモリ7が4バンク構成で1バンク当たり4096ページ、1ページ当たり512ワードとなる。さらに、CONF〔3:0〕が2のメモリ構成のときには、メモリ7が4バンク構成で1バンク当たり81192ページ、1ページ当たり512ワードとなる。なお、1ワードはメモリデータバスDQ〔31:0〕の幅と同じ32ビット(4バイト)である。
【0084】
ここで、CONF〔3:0〕が0の場合、各コマンドの発行の有無によってアドレスが生成される。例えば、アクティブコマンド発行時(ACTISS=1)のときには、アクセスアドレス〔25:2〕のうちADR〔11:10〕をバンクアドレスBADR〔1:0〕として選択し、ADR〔23:12〕をロウアドレスA〔11:0〕として選択する。この場合、最上位のビットであるRA〔12:〕は0となる。さらにロウまたはカラムアドレスMADR〔12:0〕は、ロウアドレスであるADR〔23:12〕が選択され、最上位のビットは0である。また先行プリチャージコマンド発行時(PPREISS=1)のときにはADR〔11:0〕+1がバンクアドレスBADR〔1:0〕として選択される。すなわちアクティブコマンドで指定されたバンクに隣接するバンクに対するアドレスが出力される。また全プリチャージコマンド発行時(PALLISS=1)のときにはアクティブコマンド発行時と同じバンクアドレスが生成され、PPREISS、PALLISS発行時にはMADR〔12:0〕としては、ページの中の特定のデータ(バイト)を選択するために、カラムアドレスADR〔9:2〕が生成される。
【0085】
次に、図13にバンク状態管理部121の構成を示す。バンク状態管理部121はバンク0からバンク3までの4バンクの状態をそれぞれ保持するためのバンクn状態管理部122a、122b、122c、122dを備えて構成されている。なお、各バンク状態管理部は同一の構成であるため、以下バンク0状態管理部122aについて説明する。バンク0状態管理部122aは、アクセス先のバンクがバンク0であるか否かを判定するための一致検出回路130a、論理和回路131a、134a、論理積回路132a、133a、モードレジスタ135a、バンク0内でアクティブ状態になったページのロウアドレスを保持するロウアドレスバッファ136a、バンク0のうちいずれかのページがアクティブになっていることを示すアクティブフラグ137a、アクティブ−プリチャージ間最小サイクル数をカウントするRASカウンタ138a、プリチャージ−アクティブ間最小サイクル数をカウントするRPカウンタ139aで構成されており、ロウアドレスバッファ136aはセクレタ123に接続され、アクティブフラグ137aはセレクタ124に接続され、RASカウンタ138aはセレクタ125と論理積回路126に接続され、RPカウンタ139aはセレクタ127に接続されている。セレクタ123、124、125、127はバンクアドレスによって指定されたバンク状態管理部からの信号のみを選択して出力するようになっている。
【0086】
モードレジスタ135aはアクティブ−プリチャージ間最小サイクル数およびプリチャージ−アクティブ間最小サイクル数を設定するレジスタであり、設定値はレジスタバスREGBUSを経由して任意の値で設定されるようになっている。
【0087】
一致検出回路130aはバンクアドレスによってバンク0が指定されたときにハイレベル=“1”の信号を出力するようになっており、論理積回路132aはアクティブコマンドの発行に伴ってACTISS=1となったときにハイレベル=“1”の信号をロウアドレスバッファ136a、アクティブフラグ137a、RASカウンタ138aに出力するようになっている。また論理積回路133aは、バンクアドレスによって0バンクが指定されたときに、PREISSまたはPPREISSの発行に伴っていずれかのコマンドが1になったときにハイレベル=“1”の信号を論理和回路134aに出力するようになっている。論理和回路134aは論理積回路133aからハイレベル=“1”の信号が出力されたとき、あるいはPALLISS=1になったときに、すなわちプリチャージが行われたことを条件に、アクティブフラグ137aにハイレベル=“1”のリセット信号を出力するとともに、RPカウンタ139aにハイレベル=“1”のスタート信号を出力するようになっている。
【0088】
ロウアドレスバッファ136aは、バンク0へのアクセスサイクルで且つアクティブコマンドが発行されたとき(ACTISSがアサートされたとき)にロウアドレスRA〔12:0〕を保持し、それ以降同じバンクを対象とするアクセスサイクルごとにそのロウアドレスと、保持したロウアドレスとを比較して両者が一致した場合にページヒットPHITOをアサートし、ハイレベル=“1”の信号をセレクタ123に出力するようになっている。すなわち、ロウアドレスバッファ136aはページヒットを判定する機能を備えて構成されている。さらにロウアドレスバッファ136aは、セレクタ123とともにアクセス対象のページがアクティブ状態にあるか否かを判定するページヒット判定手段として構成されている。
【0089】
アクティブフラグ137aは、バンク0へのアクセスサイクルで且つアクティブコマンドが発行されたとき(ACTISSがアサートされたとき)に1にセットされてバンクアクティブBACTOをアサートし、ハイレベル=“1”の信号をセレクタ124に出力し、バンク0のプリチャージコマンドが発行されたとき(PREISS、PPREISS、PALLISSのいずれ1つのコマンドがアサートされたとき)に0にクリアされてPACT0をネゲート(ロウレベル=“0”の信号を出力)するようになっている。すなわち、アクティブフラグ137aは、セレクタ124とともにアクセス対象のバンクがアクティブ化されているか否かを判定するバンクアクティブ化判定手段として構成されている。
【0090】
RASカウンタ138aは通常IRASOをアサートしているが、バンク0へのアクセスサイクルで且つアクティブコマンドが発行されたとき(ACTISSがアサートされたとき)にカウントを開始するとともにIRAS0をネゲートし、モードレジスタ135aに設定されたアクティブ−プリチャージ間最小サイクル数が経過した後に、IRASOを再びアサートし、ハイレベル=“1”の信号をセレクタ125と論理積回路126に出力するようになっている。すなわち、RASカウンタ138aは、セレクタ125とともにアクティブ−プリチャージ間最小サイクル数判定手段として構成されている。
【0091】
RPカウンタ139aは通常IRPをアサートしているが、バンク0のプリチャージコマンドが発行されたとき(PREISS、PPREISS、PALLISSのいずれかのコマンドがアサートされたとき)にカウントを開始するとともに、IRPOをネゲートし、ロウレベル=“0”の信号をセレクタ127に出力し、モードレジスタ135aに設定されたプリチャージ−アクティブ間最小サイクル数が経過した後に、IRPOを再びアサートしてハイレベル=“1”の信号をセレクタ127に出力するようになっている。すなわち、IRPカウンタ139aは、セレクタ127とともにプリチャージ−アクティブ間最小サイクル判定手段を構成するようになっている。
【0092】
上記構成によるバンク状態管理部121においては、バンクアクティブ化判定手段によりアクセス対象のバンクがアクティブ化されていないと判定されたときに(アクティブフラグ137aの出力が“0”のとき)、プリチャージ−アクティブ間最小サイクル判定手段から肯定の判定結果が出力されたことを条件に(RPカウンタ139aの出力が“1”のとき)、アクセス対象のページをアクティブ化するとともに、アクティブ化した後、ライトまたはリードによるアクセスの実行をメモリ7に指令するための情報が生成される。また、バンクアクティブ化判定手段によるアクセス対象のバンクがアクティブ化されていると判定されたときには(アクティブフラグ137aの出力が“1”のとき)、ページヒット判定手段により肯定の判定結果が得られたときに(ロウアドレスバッファ136aの出力が“1”のとき)、直ちにライトまたはリードによるアクセスの実行を指令するための情報が生成される。さらに、バンクアクティブ化判定手段によりアクセス対象のバンクがアクティブ化されていると判定されたときに、ページヒット判定手段による否定の判定結果が得られたときには(ロウアドレスバッファ136aの出力が“0”のとき)アクティブ−プリチャージ間最小サイクル判定手段から肯定の判定結果が出力されたことを条件に(RASカウンタ139aの出力が“1”のとき)アクセス対象のバンクをプリチャージし、次にアクセス対象となるページに対してアクティブ化を実行した後にライトまたはリードによるアクセスの実行を指令するための情報が生成され、これらの情報はメモリ制御部11に出力される。
【0093】
次に、メモリ制御部11の具体的内容を図14ないし図19にしたがって説明する。メモリ制御部11は、図14に示すように、コマンド生成部110、DQM生成部111、リードデータ制御部112、ラッチ113、114、115、116で構成されている。
【0094】
コマンド生成部110は、アクセス調停部10からCL2、RDY、WR、DEVSEL〔3:0〕、PDEVに関する信号を入力したときに、これらの信号を基にメモリ7をアクセスするための各種のコマンドを生成し、各種のコマンドをバンク管理およびアドレス生成部12に出力するとともに、コマンドに対応した制御信号(RAS#、CAS#、WE#、CS#)をメモリ7に出力してメモリ7に対するアクセスを制御するようになっている。
【0095】
ここで、図15にコマンド生成部110におけるコマンド発行制御の状態遷移を示し、図16に、図15の状態遷移における各状態遷移の条件を示し、図17に、図15の状態遷移による出力信号の状態(コマンドに対応した制御信号の状態)を示す。
【0096】
図15において、IDLE状態1100においては、各デバイスからのアクセス要求がなく、アクセス要求待ちサイクルであり、RDYが出力され、IRPの出力がないとの遷移条件が満たされたときには(図16の#a)、遷移先としてアクティブ化を行うための処理に移行する。ACTV状態1101はバンクアクティブコマンド(ACTV)発行サイクルであり、先行プリチャージがアサートされていることを条件に(図16の#c)、PRE−Aに移行し、先行プリチャージがネゲートされていて且つRCD2として2サイクルまたは3サイクルが指定されたときには(図16の#d)、WAIT−Bに移行し、それ以外の条件のときには(図16の#e)、WAIT−Aに移行する。WAIT−A状態1102はカラムレイテンシが3サイクルである場合のACTVとWRITEとの間またはACTVとREADとの間のウエイトサイクル(1サイクルの待ちサイクル)であり、WAIT−B状態1103はライトコマンドまたはリードコマンドを発行するまでのウエイトサイクル(1サイクルの待ちサイクル)である。またPRE−A状態1104においては、先行プリチャージPDEVがアサートされ、先行プリチャージモードのトランザクションにおいて、バンクnに対するアクティブコマンドACTVを発行した直後に、隣接するバンクn+1に対するプリチャージコマンド(PRE)を発行するサイクルである。WRYTE状態1105はライトコマンド(WRITE)を発行するサイクルであり、READ状態1106はリードコマンド(READ)を発行するサイクルであり、WAIT−C状態1107はプリチャージコマンドまたは全バンクプリチャージコマンドを発行するまでのウエートサイクル(1サイクル)であり、PRE−B状態1108はプリチャージコマンド(PRE)を発行するサイクルであり、PALL状態1109は全バンクプリチャージコマンド(PALL)を発行するサイクルである。すなわち、各状態おいては、遷移条件が満たされたときに遷移先に移動するためのコマンドが発行されることになる。また、otherwiseは常に行われることを示し、遷移元と遷移先が同じときには同じ処理が繰り返されることを示している。
【0097】
メモリ制御部11において各種のコマンドが生成されると、コマンドの発行の有無が「1」、「0」で表され、コマンドが発行されないときには出力値はロウレベル=“0”となり、コマンドが発行されたときにハイレベル=“1”となる。そして各コマンドACTISS、PREISS、PPREISS、PALLISS、WRITE、READはそれぞれ次のクロックサイクルの状態がACTV状態、PRE−B状態、PRE−A状態、PALL状態、WRITE状態、READ状態になる場合にアサートされる。そして各種コマンドが発行されると、コマンドに対応した制御信号が負論理の信号としてメモリ7に出力される。
【0098】
例えば、アクティブコマンドACTVが発行されたときには、CS#“0”、RAS#“0”、CAS#“1”、WE#’1”の信号が制御信号としてメモリ7に出力される。また先行プリチャージコマンド(PRE−A)が発行されたときには、CS#として“0”、RAS#として“0”、CAS#として“1”、WE#として“0”の制御信号が負論理の信号としてメモリ7に出力される。これらの制御信号はコマンドに対応しているため、コマンドに基づいてメモリ7を制御することができることになる。
【0099】
DQM生成部111には、書き込むべきバイトを指定するバイトイネーブル信号BE〔3:0〕が入力れており、DQM生成部111は、バイトイネーブルBEを基に、図18に示すように、コマンド生成部110からWRITEISSが発行されたときに、書き込むべきバイトに対してのみ“0”の信号を出力し、書き込みを禁止されているバイトに対しては“1”の信号をマスク信号dqm〔3:0〕として出力するようになっている。すなわち、WRITEISSがアサートされたとき、次のサイクルでWRITEコマンドが発行されたときに、バイトイネーブルBE〔3:0〕の極性反転信号をdqm〔3:0〕として出力し、それ以外のときにはロウレベルにネゲートするようになっている。dqm〔3:0〕はラッチ117によってラッチされてDQM〔3:0〕としてメモリ7に出力される。
【0100】
リードデータ制御部112は、図19に示すように、ラッチ1120、1121、1222、1123、1124、リードデータストローブ信号(RSTBi)生成回路(RSTBGEN)1125、リードデータセット信号(DQSET)生成回路(DQSETGEN)1126、DQ出力イネーブル信号(OUTENB)生成回路(OUTENBGEN)1127で構成されている。
【0101】
ラッチ1120、1121、1122、1123、1124はREADISSおよびDEVSEL〔3:0〕をクロックサイクルに同期して逐次ラッチするようになっている。これは、リードコマンドを発行してからカラムレイテンシ後にメモリ7がリードデータを出力するタイミングに合わせてRSTBi、DQSET、OUTENBを生成するためである。
【0102】
リードデータストローブ信号生成回路1125は、メモリ7から受信したリードデータを取り込んでRDT〔31:0〕としてデバイスに出力すると同時に、RSTBiをアサートするために、CL2が0(カラムレイテンシが3サイクル)の場合にはRSTBD5のアサート時にDEVD5〔3:0〕が示すデバイスに対するRSBiをアサートし、CL2が1(カラムレイテンシが2サイクル)の場合にはRSTBD4のアサート時にDEVD4〔3:0〕が示すデバイスに対するRSTBiをアサートする。
【0103】
すなわち、リードデータストローブ信号生成回路1125は、以下に示すように、
RSTBa=CL2&RSTBD4&(DEVD4=DEVa)|CL2&RSTBD4&(DEVD5=DEVa)
RSTBb=CL2&RSTBD4&(DEVD4=DEVb)|CL2&RSTBD4&(DEVD5=DEVb)
………………
RSTBe=CL2&RSTBD4&(DEVD4=DEVe)|CL2&RSTBD4&(DEVD5=DEVe)
上記式に従ってリードデータストローブ信号RSTBiを生成するように構成されている。なお、&は論理積を示し、|は論理和を示す。
【0104】
リードデータセット信号生成回路1126は、メモリ7がリードデータを出力すると同時にDQSETをアサートすることにより、データ制御部15のラッチを保持させるために、CL2が0(カラムレイテンシが3サイクル)の場合にはRSTBD4のアサート時にDQSETをアサートし、CL2が1(カラムレイテンシが2サイクル)の場合にはRSTBD3のアサート時にDQSETをアサートする。
【0105】
すなわち、リードデータセット信号生成回路1126は、以下に示すように、
DQSET=CL2&RSTD3|( ̄CL2&RSTBD4)
上記式に従ってリードデータセット信号を生成するように構成されている。なお、 ̄は反転を示す。
【0106】
DQ出力イネーブル信号生成回路1127は、メモリ7がリードデータを出力するクロックサイクルだけではなく、メモリ7がリードデータを出力する1クロックサイクル前からメモリ7がリードデータを出力した1クロックサイクル後までメモリコントローラ1によるDQ〔31:0〕の出力を抑止するために、データ制御部15のDQ〔31:0〕出力ドライブのイネーブル信号OUTENB(ただし、データ制御部15で一旦ラッチされるので、DQ〔31:0〕出力よりも1クロックサイクル速い)をメモリ7がリードデータを出力する1クロックサイクル前からメモリ7がリードデータを出力した1クロックサイクル後までの間はネゲートし、それ以外のときにはアサートする。すなわち、CL2が0(カラムレイテンシが3サイクル)の場合にはRSTBD3、RSTBD4のいずれかがアサートされているときにOUTENBをアサートし、CL2が1(カラムレイテンシが3サイクル)の場合にはRSTBD1、RSTBD2、RSTBD3のいずれかがアサートされているときにOUTENBをアサートする。
【0107】
すなわち、DQ出力イネーブル信号生成回路1127は、以下に示すように、
上記式に従ってDQ出力イネーブル信号を生成するように構成されている。
【0108】
一方、データ制御部15は、図20に示すように、データ出力イネーブル信号OUTENBをラッチするラッチ150、ライトデータWDT〔31:0〕をラッチするラッチ151、メモリ7が出力するリードデータDQ〔31:0〕をDQセット信号アサート時に保持するラッチ152、DQ〔31:0〕への出力バッファ153、DQ〔31:0〕からの入力バッファ154で構成されている。
【0109】
ラッチ150は、データ出力イネーブル信号OUTENBをラッチしてその極性反転信号OUTENB#を出力する。出力バッファ153は、OUTENB#がロウレベルであるときにラッチ151でラッチされたライトデータWDT〔31:0〕をDQ〔31:0〕に出力する。またラッチ152はDQSETがアサートされたときにメモリ7が出力するリードデータDQ〔31:0〕を保持してそれを全デバイスにRDTi〔31:0〕として出力する。ただし、リードデータストローブ信号RSTBiは1つのデバイスにのみアサートされるので、リードデータを取り込むデバイスは1つである。
【0110】
次に、メモリコントローラ1によるメモリアクセスの作用を図21および図22にしたがって説明する。先行プリチャージを行わないときの処理を図21に従って説明し、先行プリチャージを行うときの処理を図22にしたがって説明する。なお、RCD2は1(RAS−CASレイテンシ:2サイクル)、CL2は0(カラムレイテンシ:3サイクル)とする。
【0111】
図21において、先行プリチャージを行わないときには、PDaはロウレベルに設定されており、メモリコントローラ1は、クロックサイクルT0でデバイスaからのレディ信号RDYaがアサートされていることを検知すると、クロックサイクルT1においてACTVコマンドを発行し、クロックサイクルT2において最初のアクセスサイクルa0に対するアクノリッジACKaをアサートし、クロックサイクルT3においてREADコマンドを発行する。このときバンク0を指定するためのバンクアドレスb0とバンク0のうち特定のページを指定するためのロウアドレスra0が生成され、バンク0のうちロウアドレスra0で指定されたページをアクセス対象として、このページをアクティブ化するための処理が実行されることになる。さらに、READコマンドの発行に伴って、アクティブ化されたページのうち指定のデータ(バイト)をリードするためにカラムアドレスca0が出力され、指定のデータをリードするためのアクセスがクロックサイクルT3において行われる。
【0112】
この後、同一ページに対するリードアクセスが継続されるときには、第2のアクセスサイクルa1に対するアクノリッジACKaをクロックサイクルT3においてアサートしてクロックサイクルT4にREADコマンドを発行し、第3のアクセスサイクルa2に対するアクノリッジACKaをクロックサイクルT4にアサートし、クロックサイクルT5においてREADコマンドを発行する。これにより、カラムアドレスca0、ca1、ca2で指定されたデータがリードデータrda0、rda1、rda2として順次読み出される。
【0113】
同一ページに対するリードアクセスが継続されている過程で、第4のアクセスサイクルa3でページミスヒットが発生すると(ロウアドレスra0で指定されたページとはことなるページにアクセスするとき)、クロックサイクルT5以降、アクノリッジACKaは一時、ネゲートされ、クロックサイクルT6においてメモリ制御部11からPREコマンドが発行され、バンク1を選択するためのバンクアドレスb1が出力され、この後、1クロックサイクル待って、クロックサイクルT8においてバンク1をアクセス対象とするためにACTVコマンドが発行され、バンク1のうち指定のページを選択するためのロウアドレスra1が出力される。これによりロウアドレスra1で指定されたページに対するアクティブ化が実行され、クロックサイクルT9においてアクノリッジACKaがアサートされた後、クロックサイクルT10においてREADコマンドが発行される。これにより、バンク1に属するページであって、ロウアドレスra1で指定されたページのうち指定のデータを選択するためにカラムアドレスca3、ca4が順次出力される。これによりクロックサイクルT12、T13においてリードデータrda3、rda4が順次読み出され、リードデータストローブ信号RSTBaにしたがってリードデータrda3、rda4が順次デバイスに転送される。
【0114】
そして最初のアクセスサイクルa0に対するリードデータrda0はメモリ7からクロックサイクルT5に出力され、クロックサイクルT6においてメモリコントローラ1によってリードデータストローブ信号RSTBaがアサートされると同時にリードデータRDTa〔31:0〕がデバイスaに出力される。
【0115】
同様に、第2、第3、第4、第5のアクセスサイクルa1、a2、a3、a4に対するリードデータRDTa〔31:0〕はそれぞれクロックサイクルT7、T8、T13、T14にリードデータストローブ信号RSTBaがアサートされると同時にデバイスに出力される。この場合、ページミスヒットによりリードトランザクションが4クロックサイクル(T6〜T9)遅延することになる。
【0116】
一方、デバイスaが先行プリチャージを必要とするデバイス、例えば、デバイスaが描画処理装置であって、デバイスaからアクセス要求が出力されるときには、先行プリチャージを示すPDaがアサートされているため、アクセス対象のページをアクティブ化するためのコマンドを生成するとともに、アクティブ化されたページに対してリードまたはライトのアクセスを実行するに先立って、次にアクセス対象となるページまたはその後アクセス対象となるページに対して先行プリチャージを実行するためのコマンドを生成する処理が実行される。
【0117】
すなわち、デバイスaから、クロックサイクルT0においてRDYaがアサートされるとともにPDaがアサートされているときには、クロックサイクルT1においてACTVコマンドを発行し、バンク0を選択するためのバンクアドレスb0、バンク0のうち特定のページを選択するためのロウアドレスra0を出力し、次のクロックサイクルT2において先行プリチャージを行うためのコマンドPREを発行する。
【0118】
この場合、先行プリチャージコマンドは通常のプリチャージコマンドと同様に、アクティブ化されたバンクに隣接するバンクであって、クロックサイクルT1でACTVコマンドによってアクティブ化されたバンクのアドレスに1を加算したアドレスのバンクが指定される。例えば、クロックサイクルT1でACTVコマンドのバンクアドレスが1の場合は、クロックサイクルT2のPREコマンドのバンクアドレスは2となり、クロックサイクルT1のACTVコマンドのバンクアドレスが0の場合はクロックサイクルT2のPREコマンドのバンクアドレスは1となり、クロックサイクルT1のACTVコマンドのバンクアドレスが3の場合はクロックサイクルT2のPREコマンドバンクアドレスは0となる。
【0119】
バンクアドレスb1で指定されたバンクに対するプリチャージが実行される(既にセンスアンプに転送されているページのデータは、どのバンクのどのページのデータであるかは前の処理で分かっているため、バンクの指定により、既にセンスアンプに転送されているデータを元のページに戻すための処理が実行される。)と、クロックサイクルT3、T4、T5においてはREADコマンドが発行され、バンクアドレスb0で指定されたバンクであって、ロウアドレスra0で指定されたページのうちカラムアドレスca0、ca1、ca2で指定されたバイトに対するリードアクセスが行われる。
【0120】
この後、第4のアクセスサイクルa3でページミスヒットが発生したときには(描画により、タイル境界を跨ぐアクセスが実行されたとき)、バンクアドレスb1で指定されたバンクをアクセス対象とする処理に移行する。この場合、バンクアドレスb1で指定されたバンクに対するプリチャージはクロックサイクルT2において既に実行され、このバンクに属するページのデータは既に元のページに戻されているため、このバンクに属するページに対してはACTBコマンドの発行によってアクティブ化が即座に実行される。この後、バンクアドレスb1で指定されたバンクに属するページであって、ロウアドレスra1で指定されページの中から指定のデータを読み出すために、第5のアクセスサイクルa4で発行されたREADコマンドにしたがってカラムアドレスca3、ca4が出力され、カラムアドレスca3、ca4で指定されたデータ(バイト)に対するリードアクセスが実行される。
【0121】
このように、ページミスヒットはアクセスがページ境界を跨ぐことによって発生するため、ページミスヒットが発生するに先立って次にアクセスすべきバンクに対して予め先行プリチャージを実行することで、第4のアクセスサイクルa3でページミスヒットが発生しても、クロックサイクルT6でACTVコマンドを発行し、クロックサイクルT7にアクノリッジACKaをアサートして、クロックサイクルT8にREADコマンドを発行することができ、ページミスヒットによるリードトランザクションの遅延は2クロックサイクル(T6〜T7)となり、図21に示すケースに比べて、先行プリチャージを実行することで、リードトランザクションの遅延を削減することができ、むだ時間の短縮により、単位時間当たりアクセス可能なデータ量が増加し、バンド幅の向上に寄与することができる。
【0122】
また、図21、図22における処理では、リードトランザクションの処理について述べたが、ライトトランザクションのときでも先行プリチャージを実行することで、ライトトランザクションの遅延を削減することができる。
【0123】
このように、本実施形態においては、メモリ7に画像データをタイルアドレスマッピングで且つ横方向に隣接するタイルをそれぞれ別バンクでしかもバンクアドレスが増加する順序に配置し、画像データの読み出しまたは画像データの書き込みを実行する場合に、アクセス対象であるバンクアドレスnの所定のページをアクティブ化した直後に、バンクアドレスn+1のバンクに対して先行プリチャージを実行するようにしているため、画像データの読み出しまたは書き込みの途中でタイル境界を超えてページミスヒットが発生しても、次にアクセスすべきタイルが配置されているバンクは必ずプリチャージがされているので、ページミスヒットによるメモリアクセスのオーバーヘッドを削減することができる。
【0124】
また、本実施形態によれば、メモリコントローラ1は、各デバイスからのメモリアクセスを選択するときに、優先度にしたがって1つのデバイスを選択し、選択したデバイスに対するアクセスを実行中に、優先度の高いデバイスからのアクセスが要求されたときには、実行中のアクセスを中断し、優先度の高いデバイスからのメモリアクセスを実行するようにしているため、複数のデバイスからのアクセス要求が競合しても、リアルタイム性の高いデバイスからのアクセス要求を選択してメモリ7にアクセスを実行することができ、アクセス競合による画像データのアクセス遅延を抑制することができる。
【0125】
また、前記実施形態によれば、先行プリチャージを実行しないときには、アクティブフラグとロウアドレスバッファRASカウンタおよびRPカウンタの情報を参照し、ページミスヒットが発生した場合には、アクティブ−プリチャージ間最小サイクルおよびプリチャージ−アクティブ間最小サイクルを満たす範囲で最短のタイミングでプリチャージとアクティブ化を実行することができる。
【0126】
【発明の効果】
以上説明したように、本発明によれば、アクセス対象のページをアクティブ化した後、アクティブ化されたページに対してアクセスを実行するに先立って、その後あるいは次にアクセス対象となるバンクまたはページに対して先行プリチャージを行っているため、その後あるいは次にアクセス対象となるバンクまたはページに対してアクセスを行うときにプリチャージを行うことなく、アクティブ化を行った後、リードまたはライトのアクセスを行うことができ、ページミスヒットによって異なるページにアクセスするときでも、プリチャージをした後、アクティブ化するまでの時間が不要となり、むだ時間を短縮することができ、効率良くアクセスすることができる。
【図面の簡単な説明】
【図1】本発明に係るメモリコントローラを適用した画像処理システムのブロック構成図である。
【図2】画像データのリニアアドレスマッピングの構成を説明すための構成図である。
【図3】画像データのタイルアドレスマッピングの構成を説明するための構成図である。
【図4】本発明に係るメモリコントローラのブロック構成図である。
【図5】アクセス調停部のブロック構成図である。
【図6】アクセス調停部のモードレジスタの設定例を示す図である。
【図7】アクセス調停部における優先度の構成説明図である。
【図8】アクセス調停部の動作を説明するためのタイムチャートである。
【図9】アクセス調停部の動作を説明するためのタイムチャートである。
【図10】アクセス調停部の動作を説明するためのタイムチャートである。
【図11】バンク管理およびアドレス生成部のブロック構成図である。
【図12】アドレス生成部におけるアドレスの生成例を示す図である。
【図13】バンク状態管理部のブロック構成図である。
【図14】メモリ制御部のブロック構成図である。
【図15】コマンド生成部におけるコマンド発行制御の状態遷移図である。
【図16】コマンド生成部におけるコマンド発行制御の状態遷移条件を説明するための図である。
【図17】コマンド生成部におけるコマンド発行制御の状態遷移による出力信号の状態を説明するための図である。
【図18】DQM生成部におけるバイトイネーブル信号の生成例を説明するための図である。
【図19】リードデータ制御部のブロック構成図である。
【図20】データ制御部のブロック構成図である。
【図21】本発明に係るメモリコントローラにおいて先行プリチャージを実行しないときのメモリアクセスのタイムチャートである。
【図22】本発明に係るメモリコントローラにおいて先行プリチャージを行うときのメモリアクセスのタイムチャートである。
【符号の説明】
1 メモリコントローラ
2 プロセッサ
3 描画処理装置
4 表示処理装置
5 ビデオ処理装置
6 入出力制御装置
7 メモリ
10 アクセス調停部
11 メモリ制御部
12 バンク管理およびアドレス生成部
14 マルチプレクス
15 データ制御部
81 ディスプレイ装置
82 ビデオカメラ装置
83 外部記憶装置
84 通信装置
Claims (8)
- データ記憶エリアが複数のバンクに分割されているとともに各バンクが複数のページに分割されているダイナミックランダムアクセスメモリに対するアクセス要求を受けたときに、前記アクセス要求を基にアクセス対象のページをアクティブ化し、前記アクティブ化されたページに対してアクセスを実行するに先だって、その後アクセス対象となるバンクに対して先行プリチャージを実行するメモリ制御手段を備えてなるメモリコントローラ。
- データ記憶エリアが複数のバンクに分割されているとともに各バンクが複数のページに分割されているダイナミックランダムアクセスメモリに対するアクセス要求を受けたときに、前記アクセス要求を基にアクセス対象のページをアクティブ化し、前記アクティブ化されたページに対してアクセスを実行するに先だって、次にアクセス対象となるバンクに対して先行プリチャージを実行するメモリ制御手段を備えてなるメモリコントローラ。
- データ記憶エリアが複数のバンクに分割されているとともに各バンクが複数のページに分割され、各ページが相隣接するページとは異なるバンクに割り付けられているダイナミックランダムアクセスメモリに対するアクセス要求を受けたときに、前記アクセス要求を基にアクセス対象のバンクのページをアクティブ化し、前記アクティブ化されたページに対してアクセスを実行するに先だって、その後アクセス対象となるバンクに対して先行プリチャージを実行するメモリ制御手段を備えてなるメモリコントローラ。
- データ記憶エリアが複数のバンクに分割されているとともに各バンクが複数のページに分割され、各ページが相隣接するページとは異なるバンクに割り付けられているダイナミックランダムアクセスメモリに対するアクセス要求を受けたときに、前記アクセス要求を基にアクセス対象のバンクのページをアクティブ化し、前記アクティブ化されたページに対してアクセスを実行するに先だって、次にアクセス対象となるバンクに対して先行プリチャージを実行するメモリ制御手段を備えてなるメモリコントローラ。
- データ記憶エリアが複数のバンクに分割されているとともに各バンクが複数のページに分割され、各ページが相隣接するページとは異なるバンクに割り付けられているダイナミックランダムアクセスメモリに対するアクセス要求を受けたときに、前記アクセス要求を基にアクセス対象のバンクのページをアクティブ化し、この直後に次にアクセス対象となるバンクに対して先行プリチャージを実行し、その後前記アクティブ化されたページに対してリードまたはライトによるアクセスを実行するメモリ制御手段を備えてなるメモリコントローラ。
- データ記憶エリアが複数のバンクに分割されているとともに各バンクが複数のページに分割され、各ページが相隣接するページとは異なるバンクに割り付けられているダイナミックランダムアクセスメモリと少なくとも一つ以上の処理装置に接続されて、前記処理装置から前記ダイナミックランダムアクセスメモリに対するアクセス要求を受けたときに、前記アクセス要求を基にアクセス対象のバンクのページをアクティブ化し、この直後に次にアクセス対象となるバンクに対して先行プリチャージを実行し、その後前記アクティブ化されたページに対してリードまたはライトによるアクセスを実行するメモリ制御手段を備えてなるメモリコントローラ。
- データ記憶エリアが複数のバンクに分割されているとともに各バンクが複数のページに分割され、各ページが相隣接するページとは異なるバンクに割り付けられているダイナミックランダムアクセスメモリと複数の処理装置にそれぞれ接続されて、前記いずれかの処理装置から前記ダイナミックランダムアクセスメモリに対するアクセス要求を受けたときに、前記アクセス要求を基にアクセス対象のバンクのページをアクティブ化し、この直後に次にアクセス対象となるバンクに対して先行プリチャージを実行し、その後前記アクティブ化されたページに対してリードまたはライトによるアクセスを実行するメモリ制御手段を備えてなるメモリコントローラ。
- 請求項7に記載のメモリコントローラにおいて、前記複数の処理装置から出力されるアクセス要求のうちいずれか一つのアクセス要求を選択して前記メモリ制御手段に出力するアクセス調停手段を備え、前記アクセス調停手段は、前記選択したアクセス要求によるアクセスが前記メモリ制御手段により実行されているときに、前記選択したアクセス要求よりも優先度の高いアクセス要求が新たに入力されたときには前記選択したアクセス要求によるアクセスの中断を前記メモリ制御手段に指令するとともに、前記新たに入力されたアクセス要求によるアクセスを前記メモリ制御手段に指令してなることを特徴とするメモリコントローラ。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001151223A JP3918145B2 (ja) | 2001-05-21 | 2001-05-21 | メモリコントローラ |
US09/962,257 US6745279B2 (en) | 2001-05-21 | 2001-09-26 | Memory controller |
US10/824,504 US20040193779A1 (en) | 2001-05-21 | 2004-04-15 | Memory controller |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001151223A JP3918145B2 (ja) | 2001-05-21 | 2001-05-21 | メモリコントローラ |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2002342159A JP2002342159A (ja) | 2002-11-29 |
JP3918145B2 true JP3918145B2 (ja) | 2007-05-23 |
Family
ID=18996111
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001151223A Expired - Fee Related JP3918145B2 (ja) | 2001-05-21 | 2001-05-21 | メモリコントローラ |
Country Status (2)
Country | Link |
---|---|
US (2) | US6745279B2 (ja) |
JP (1) | JP3918145B2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9333193B2 (en) | 2010-09-20 | 2016-05-10 | University Of Virginia Patent Foundation | Compositions and methods for treating tuberculosis |
Families Citing this family (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003216130A (ja) * | 2002-01-28 | 2003-07-30 | Nec Viewtechnology Ltd | ひずみ補正機能を備えた投写型表示装置 |
US6806883B2 (en) * | 2002-03-11 | 2004-10-19 | Sun Microsystems, Inc. | System and method for handling display device requests for display data from a frame buffer |
US6993637B1 (en) * | 2002-11-07 | 2006-01-31 | Lsi Logic Corporation | Unified memory system for multiple processors and method for controlling the same |
US7928997B2 (en) * | 2003-02-06 | 2011-04-19 | Nvidia Corporation | Digital image compositing using a programmable graphics processor |
JP4624715B2 (ja) * | 2004-05-13 | 2011-02-02 | ルネサスエレクトロニクス株式会社 | システムlsi |
JP4786209B2 (ja) * | 2005-03-18 | 2011-10-05 | パナソニック株式会社 | メモリアクセス装置 |
KR100726101B1 (ko) * | 2005-04-29 | 2007-06-12 | (주)씨앤에스 테크놀로지 | 메모리 제어 시스템 |
CN100370436C (zh) * | 2005-09-07 | 2008-02-20 | 深圳市海思半导体有限公司 | 一种提高存储器访问效率的方法及存储器控制器 |
KR100761833B1 (ko) * | 2006-01-13 | 2007-09-28 | 삼성전자주식회사 | 화면의 라인들을 픽셀 단위로 교대로 저장하는 비디오디코딩 장치, 비디오 디코딩 방법 및 기준화면 저장 방법 |
US7755961B2 (en) * | 2006-07-07 | 2010-07-13 | Rao G R Mohan | Memories with selective precharge |
US7724593B2 (en) * | 2006-07-07 | 2010-05-25 | Rao G R Mohan | Memories with front end precharge |
JP4895183B2 (ja) * | 2006-07-21 | 2012-03-14 | キヤノン株式会社 | メモリコントローラ |
US8271746B1 (en) * | 2006-11-03 | 2012-09-18 | Nvidia Corporation | Tiering of linear clients |
JP5034551B2 (ja) * | 2007-02-26 | 2012-09-26 | 富士通セミコンダクター株式会社 | メモリコントローラ、半導体メモリのアクセス制御方法およびシステム |
JP5133073B2 (ja) * | 2007-07-23 | 2013-01-30 | ルネサスエレクトロニクス株式会社 | 半導体記憶装置及びデータの格納方法 |
US7995409B2 (en) * | 2007-10-16 | 2011-08-09 | S. Aqua Semiconductor, Llc | Memory with independent access and precharge |
US8095853B2 (en) | 2007-10-19 | 2012-01-10 | S. Aqua Semiconductor Llc | Digital memory with fine grain write operation |
WO2009125572A1 (ja) * | 2008-04-08 | 2009-10-15 | パナソニック株式会社 | メモリ制御回路及びメモリ制御方法 |
JP5233541B2 (ja) * | 2008-09-17 | 2013-07-10 | セイコーエプソン株式会社 | メモリ制御回路、電子機器制御装置、および、複合機 |
US8380916B2 (en) * | 2009-06-04 | 2013-02-19 | Micron Technology, Inc. | Control of page access in memory |
KR101639574B1 (ko) * | 2009-12-30 | 2016-07-14 | 삼성전자주식회사 | 적응적 뱅크 어드레스를 제공하는 디스플레이 시스템 및 그것의 어드레스 맵핑 방법 |
JP2012128627A (ja) * | 2010-12-15 | 2012-07-05 | Toshiba Corp | データ転送システム |
CN102543159B (zh) | 2010-12-29 | 2014-06-25 | 炬才微电子(深圳)有限公司 | 一种ddr控制器及其实现方法和芯片 |
JP5454618B2 (ja) * | 2012-05-28 | 2014-03-26 | 富士通セミコンダクター株式会社 | メモリ装置,メモリコントローラ及びメモリシステム |
TWI710899B (zh) * | 2015-10-14 | 2020-11-21 | 南韓商三星電子股份有限公司 | 計算系統以及其操作方法 |
JP2018005389A (ja) | 2016-06-29 | 2018-01-11 | 株式会社リコー | 画像変形回路、画像処理装置、及び画像変形方法 |
US11210019B2 (en) * | 2017-08-23 | 2021-12-28 | Micron Technology, Inc. | Memory with virtual page size |
JP6905195B2 (ja) * | 2017-11-16 | 2021-07-21 | 富士通株式会社 | データ転送装置、演算処理装置及びデータ転送方法 |
JP7197998B2 (ja) * | 2018-05-02 | 2022-12-28 | キヤノン株式会社 | メモリコントローラおよびメモリコントローラで実施される方法 |
US12265630B2 (en) * | 2022-01-27 | 2025-04-01 | Micron Technology, Inc. | Row access strobe (RAS) clobber and row hammer failures using a deterministic protocol |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5301278A (en) * | 1988-04-29 | 1994-04-05 | International Business Machines Corporation | Flexible dynamic memory controller |
EP0809252B1 (en) * | 1992-09-18 | 2003-11-26 | Hitachi, Ltd. | Data processing system with synchronous dynamic memory in integrated circuit technology |
US5732236A (en) * | 1993-05-28 | 1998-03-24 | Texas Instruments Incorporated | Circuit and method for controlling access to paged DRAM banks with request prioritization and improved precharge schedule |
JP3579461B2 (ja) * | 1993-10-15 | 2004-10-20 | 株式会社ルネサステクノロジ | データ処理システム及びデータ処理装置 |
JPH08255107A (ja) | 1994-11-29 | 1996-10-01 | Toshiba Corp | ディスプレイコントローラ |
US5748551A (en) * | 1995-12-29 | 1998-05-05 | Micron Technology, Inc. | Memory device with multiple internal banks and staggered command execution |
US5745913A (en) * | 1996-08-05 | 1998-04-28 | Exponential Technology, Inc. | Multi-processor DRAM controller that prioritizes row-miss requests to stale banks |
TW329487B (en) * | 1996-10-29 | 1998-04-11 | Mitsubishi Electric Corp | Device for processing data and method therefor |
JPH10134025A (ja) * | 1996-10-30 | 1998-05-22 | Mitsubishi Electric Corp | 半導体集積回路 |
US6009489A (en) * | 1997-03-14 | 1999-12-28 | Advanced Micro Devices, Inc. | Method and system for supporting non-deterministic burst lengths in a memory system employing extended data out(EDO)DRAM |
US6247138B1 (en) * | 1997-06-12 | 2001-06-12 | Fujitsu Limited | Timing signal generating circuit, semiconductor integrated circuit device and semiconductor integrated circuit system to which the timing signal generating circuit is applied, and signal transmission system |
US5881016A (en) * | 1997-06-13 | 1999-03-09 | Cirrus Logic, Inc. | Method and apparatus for optimizing power consumption and memory bandwidth in a video controller using SGRAM and SDRAM power reduction modes |
US6233661B1 (en) * | 1998-04-28 | 2001-05-15 | Compaq Computer Corporation | Computer system with memory controller that hides the next cycle during the current cycle |
US6130843A (en) * | 1998-09-02 | 2000-10-10 | Micron Technology, Inc. | Method and circuit for providing a memory device having hidden row access and row precharge times |
US6181619B1 (en) * | 1998-12-04 | 2001-01-30 | Intel Corporation | Selective automatic precharge of dynamic random access memory banks |
US6470418B1 (en) * | 1999-01-15 | 2002-10-22 | Integrated Device Technology, Inc. | Pipelining a content addressable memory cell array for low-power operation |
TW457430B (en) * | 1999-03-02 | 2001-10-01 | Via Tech Inc | Memory access control device |
-
2001
- 2001-05-21 JP JP2001151223A patent/JP3918145B2/ja not_active Expired - Fee Related
- 2001-09-26 US US09/962,257 patent/US6745279B2/en not_active Expired - Fee Related
-
2004
- 2004-04-15 US US10/824,504 patent/US20040193779A1/en not_active Abandoned
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9333193B2 (en) | 2010-09-20 | 2016-05-10 | University Of Virginia Patent Foundation | Compositions and methods for treating tuberculosis |
Also Published As
Publication number | Publication date |
---|---|
JP2002342159A (ja) | 2002-11-29 |
US6745279B2 (en) | 2004-06-01 |
US20040193779A1 (en) | 2004-09-30 |
US20020174292A1 (en) | 2002-11-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3918145B2 (ja) | メモリコントローラ | |
US5819105A (en) | System in which processor interface snoops first and second level caches in parallel with a memory access by a bus mastering device | |
US6104417A (en) | Unified memory computer architecture with dynamic graphics memory allocation | |
US6298424B1 (en) | Computer system including priorities for memory operations and allowing a higher priority memory operation to interrupt a lower priority memory operation | |
US6275885B1 (en) | System and method for maintaining ownership of a processor bus while sending a programmed number of snoop cycles to the processor cache | |
US6076139A (en) | Multimedia computer architecture with multi-channel concurrent memory access | |
US9904489B2 (en) | Processing systems, memory controllers and methods for controlling memory access operations | |
US8032715B2 (en) | Data processor | |
JP3976342B2 (ja) | 複数のエージェントから共用メモリに同時にアクセスできるようにする方法および装置 | |
US6330645B1 (en) | Multi-stream coherent memory controller apparatus and method | |
US8977811B2 (en) | Scalable schedulers for memory controllers | |
JP4786209B2 (ja) | メモリアクセス装置 | |
US6820142B2 (en) | Token based DMA | |
JPH02223091A (ja) | コンピュータメモリシステム | |
WO1997029430A1 (en) | Fast access to a shared resource on a computer bus | |
KR102428563B1 (ko) | 수눕 작동을 관리하는 코히런트 인터커넥트와 이를 포함하는 데이터 처리 장치들 | |
US6233661B1 (en) | Computer system with memory controller that hides the next cycle during the current cycle | |
JPH08255107A (ja) | ディスプレイコントローラ | |
JP3455535B2 (ja) | バス処理を行う装置および方法 | |
US5802581A (en) | SDRAM memory controller with multiple arbitration points during a memory cycle | |
US6209052B1 (en) | System and method for suppressing processor cycles to memory until after a peripheral device write cycle is acknowledged by the memory arbiter | |
JPH1153254A (ja) | データ処理システム | |
JPH06325570A (ja) | ダイナミックメモリリフレッシュ回路 | |
JP3720872B2 (ja) | システムメモリとpciマスタ装置との間のデータの転送を最適化するための方法、およびコンピュータにおけるメモリアクセス時間を最適化するためのシステム | |
JP2000035778A (ja) | メモリ制御システム、メモリ制御方法及びメモリ制御装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20060207 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060314 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060515 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20070109 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20070201 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110223 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110223 Year of fee payment: 4 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313111 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110223 Year of fee payment: 4 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110223 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120223 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130223 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140223 Year of fee payment: 7 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
LAPS | Cancellation because of no payment of annual fees |