JP5393405B2 - メモリ制御回路 - Google Patents

メモリ制御回路 Download PDF

Info

Publication number
JP5393405B2
JP5393405B2 JP2009254459A JP2009254459A JP5393405B2 JP 5393405 B2 JP5393405 B2 JP 5393405B2 JP 2009254459 A JP2009254459 A JP 2009254459A JP 2009254459 A JP2009254459 A JP 2009254459A JP 5393405 B2 JP5393405 B2 JP 5393405B2
Authority
JP
Japan
Prior art keywords
memory access
memory
access
command
bank
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.)
Active
Application number
JP2009254459A
Other languages
English (en)
Other versions
JP2011100295A (ja
Inventor
公平 村山
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2009254459A priority Critical patent/JP5393405B2/ja
Publication of JP2011100295A publication Critical patent/JP2011100295A/ja
Application granted granted Critical
Publication of JP5393405B2 publication Critical patent/JP5393405B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、メモリ制御回路に関する。
DRAMの内部は、複数のバンクで構成され、各バンクは、ページと称される複数の領域に分割されている。図4に、DRAMへのメモリアクセス時の処理に係るフローチャートを示す。DRAMに対するメモリアクセスでは、バンク及び行アドレスを指定し、ページを活性化させるコマンド(アクティブコマンド)を発行することによりページの選択が行われる(以下、ページオープンと称する。)。その後に、列アドレスを指定し、リードコマンド又はライトコマンドといった列コマンド(メモリアクセスコマンド)を発行することでDRAMに対するメモリアクセスが実現される。継続して同一のページ内のアドレスに対してメモリアクセスする場合には、再度ページオープン処理を行う必要は無く、列アドレスを指定し、メモリアクセスコマンドを発行することによりアクセス可能である。
しかしながら、同一バンク内で活性化されているページ以外の別のページへメモリアクセスする場合には、一旦バンク内の活性化されているページを非活性化するコマンド(プリチャージコマンド)を発行する。その後に、アクセス対象のページオープンに係る処理を行った後に、メモリアクセスコマンドを発行する必要がある。このように、活性化されているページ以外の別のページへメモリアクセスすることは、ページミスと称され、それに要するプリチャージコマンドの発行とページオープンに係る処理とに要する期間は、ページミスペナルティと称される。
一般にLSIを用いて構築されるシステムは、内部にCPUやハードウエア処理モジュールを搭載すると共に、外部記憶デバイスを主記憶としてDRAMを搭載し、システムとしての機能を実現している。半導体に関する技術の向上に伴い、LSI内部の動作周波数が高速化しており、LSI内部の処理を高速に行うことが可能になっている。しかしながら、LSI内部の処理において高速化が進む一方、DRAMといった外部記憶デバイスへのアクセス時間の向上は少ない。
近年、主流となっているDDR(Double Data Rate)と称されるクロックの立ち上がりと立ち下がりとの双方に同期してデータ転送するメモリデバイスでは、メモリアクセス帯域が大幅に改善されている。しかしながら、メモリデバイスへのアクセス応答時間は、改善されていない。LSI内部の動作周波数の向上に対し、メモリデバイスへのアクセス時間が変わらない場合、特に読み出し(リード)を中心に行う処理においては、その応答に要するクロック数が増加する傾向にあり、周波数向上分の性能改善が困難となっている。
このようなリード時の応答時間の性能への影響を回避する手法としてプリフェッチと称される手法が一般的に用いられている。プリフェッチとは、データが必要となるサイクルに先立って必要となるデータを保持し、データを必要となったタイミングで、保持されたデータを使用する手法である。プリフェッチを用いることによりメモリデバイスへのアクセス応答時間を隠蔽し、バスマスタは見かけ上、短時間でリードに係る処理を終了することが可能となるため、プリフェッチは、システムでの処理性能の向上に寄与し得る。
そこで、メモリデバイスに対するアクセス履歴やアクセス特性情報を参照して、連続領域アクセスの傾向がある場合は、バスマスタからのリード要求(メモリアクセスコマンドの発行)に先立ちプリフェッチを行う技術が開示されている(特許文献1参照。)。また、過去のアクセス履歴と過去のアクセスのアドレス差分とを保持して参照し、過去のアドレス差分と同一であった場合に、そのアドレス差分を持つメモリ領域についてプリフェッチする技術が開示されている(特許文献2参照。)。これらの先行技術では、バスマスタからのメモリアクセスに先立ちプリフェッチコマンドを発行してデータを保持することで、短期間でリードに係る処理を終了することが可能となる。
また前述の通り、近年のLSI内部の動作周波数の向上に伴い、メモリデバイスへのアクセス帯域は、LSIとメモリデバイスとの間のデータ転送をDDRで行うことにより大幅に改善されている。従来のSingle Data Rateと称されるメモリデバイスでは、単一のメモリデバイスのアクセスに対してアクセスされるメモリアドレスが単一であった。これに対し、DDR−SDRAMでは、単一のメモリデバイスのアクセスに対して2つのメモリアドレスに対して並列にアクセスできる(これを2段プリフェッチと称する。)。これにより、メモリデバイスへのアクセス速度の向上無しに、見かけ上のアクセス速度の向上を実現することでアクセス帯域を向上させている。
DDR2−SDRAMでは、メモリデバイス内のプリフェッチの段数を4段、DDR3−SDRAMでは、メモリデバイス内のプリフェッチの段数を8段とする。これにより、メモリデバイスへのアクセス速度の向上が困難な状況下で、見かけ上のアクセス速度を向上させ、メモリデバイスへのアクセス帯域を向上させている。
DDRタイプのDRAMを用いた場合には、単一のメモリデバイスのアクセスに対して複数段のプリフェッチを行っている。このため本来転送として必要としないアドレスに対するデータ転送が発生してしまう可能性があり、DDR3−SDRAMでは、プリフェッチの段数が8段と大きいためその傾向が顕著に表れる。ここで、DDR3−SDRAMでは、通常は8段のプリフェッチであるので、8ビートのデータ転送が行われる。しかし、バーストチョップというメモリアクセスコマンド発行時にバースト長を動的に切り替える機能により4ビートと8ビートとを選択することができるようになっている。
特開平09−198300号公報 特開平11−167520号公報
従来のプリフェッチの手法においては、プリフェッチのためのプリフェッチコマンドが特定の事象やタイミングにて発行される。このため、複数のバスマスタや複数のプロセスからのメモリアクセスがプリフェッチアクセスと競合した場合、メモリアクセスのアクセス時間を増加させるといった問題が生じていた。例えば、あるバスマスタからのメモリアクセスが競合した場合は、バスマスタからのメモリアクセスが行われる以前にプリフェッチアクセス(リード処理)が行われることになる。よって、バスマスタからの明示的なメモリアクセスの応答時間が長くなりバスマスタの処理性能を低下させてしまう。
また、特許文献2に記載の技術おいては、更にページミスペナルティが印加され、更なるバスマスタの処理性能を低下させるおそれがある。図5に、バスマスタからのメモリアクセスとプリフェッチアクセスとの競合に関する影響を表す波形図を示す。ここでは、a及びbのメモリアクセスがバスマスタからのアクセスであり、a及びbともに、ページヒットのアクセスであると仮定する。
図5(a)では、プリフェッチコマンドが発行されていない場合を示し、図5(b)では、aとbとの転送間でcというプリフェッチアクセスが挿入された場合を示している。このときcは、a及びbのページに対してページミスとなるアドレス空間へのアクセスとする。図5(a)では、3サイクルでメモリアクセスコマンドの発行が行われているのに対して、図5(b)では、aとbとの間にcのプリフェッチコマンドを発行するために、ページミスペナルティが発生した上でリードコマンドが発行される。更にbへのアクセス発行時には再度ページミスペナルティが加えられるために、本来バスマスタが必要とするアクセスに対して余分なメモリアクセスの応答時間が加算されてしまう。
このように、将来使用されることが予想されるアドレスへのプリフェッチアクセスが、現在必要とされるメモリアクセスを阻害してしまう。よって、ある処理モジュールの性能の向上を引き出すためのプリフェッチが他の処理の性能を低下させる問題がある。
また、例えば、DDR3−SDRAMでは、前述の通りプリフェッチの段数が8段であるので、バンク依存関係があるメモリアクセス間のサイクルは、8段分のデータ転送時間である4サイクル以上間隔を空ける必要がある。例えば、バスマスタからの要求転送サイズがDDR3−SDRAMの4段プリフェッチ以下のサイズであり、バンク依存関係があるメモリアクセスが続いた場合にはデータ転送サイクルは2サイクルで終了する。コマンドが発行される間隔は、4サイクルであるためにメモリデバイス間のデータバス上、2サイクルの空白サイクルが生じてしまう。このような空白サイクルにより、メモリアクセスの効率を低下させる問題がある。
本発明はこのような問題点に鑑みなされたもので、メモリアクセスをより効率的にすることを目的とする。
そこで、本発明は、バースト長の制御が可能なメモリデバイスに対して、バスマスタからのアクセス要求を受けてコマンドを発行するメモリ制御回路であって、前記メモリデバイスの各バンクの活性化状態を管理する手段と、前記バスマスタからのアクセス要求に係るメモリアクセスに対してリードとライトとを検出する手段と、前記メモリアクセスに対して次のメモリアクセスとのバンクの依存関係を検出する手段と、前記次のメモリアクセスのページミスの判定を行う手段と、前記メモリアクセスがリードであり、前記次のメモリアクセスとのバンクの依存関係がなく、前記次のメモリアクセスがページミスであると判定された場合に、最大のバースト長で前記次のメモリアクセスのコマンドを発行する手段と、前記次のメモリアクセスに対して余分に読み出したデータをプリフェッチのデータとして処理する手段とを有することを特徴とする。
本発明によれば、メモリアクセスをより効率的にすることができる。
メモリ制御回路を含むシステムに係る構成の例を示す図である。 メモリ制御回路の処理に係るフローチャートを示す図である。 メモリバンク管理機構で管理されるバンク管理情報の例を示す図である。 メモリアクセス制御の処理に係るフローチャートを示す図である。 メモリアクセス波形の例を示す図である。
以下、本発明の実施形態について図面に基づいて説明する。
図1に、本実施形態に係るシステムの構成の例を示す。複数のバスマスタ103は、バス102を介してメモリコントローラ100(メモリ制御回路)に接続され、メモリコントローラ100を介して外部に接続されるメモリデバイス101へのメモリアクセス要求(コマンド等)を発行する。本実施形態では、メモリデバイス101としては、行コマンド及び列コマンドに分割してアクセスされるDRAMで、かつメモリアクセスコマンド発行時にバースト長を制御可能なDDR3−SDRAMタイプのメモリデバイスを想定する。
メモリコントローラ100は、バスマスタ103のメモリアクセス要求を受信するバスインターフェース109を有する。メモリアクセス要求は、コマンドバッファ108を介して、メモリアクセス制御部104に順次転送される。
コマンドバースト制御部107は、コマンドバッファ108に保持されている次に処理するメモリアクセス要求のアドレスより、ページミス判定とバンク依存関係の判定とを行う。図2に、コマンドバースト制御部107の処理に係るフローチャートを示す。
コマンドバースト制御部107は、現メモリアクセスがリード転送であり、次のメモリアクセスについて、バンクの依存関係がなく、ページミスであると判定した場合、最大バースト長を指定する。すなわち、コマンドバースト制御部107は、最大バースト長でメモリデバイス101に対してメモリアクセスコマンドを発行するようメモリアクセス制御部104に指示する。また、コマンドバースト制御部107は、次のメモリアクセスについて、バンクの依存関係があると判定した場合、最大バースト長でメモリデバイス101に対してメモリアクセスコマンドを発行するようにメモリアクセス制御部104に指示する。
他方、コマンドバースト制御部107は、現メモリアクセスがライト転送である場合や、次のメモリアクセスについて、バンクの依存関係があるがページヒットである(ページミスでない)場合は、バスマスタ103より要求されたバースト長を指定する。すなわち、コマンドバースト制御部107は、バスマスタ103より要求されたバースト長にてメモリアクセスコマンドを発行するようにメモリアクセス制御部104に指定する。ここでいう、該当バンクと依存関係がないバンクとは、該当バンクのデータフェーズ期間に列コマンド(列アドレスコマンド)が発行可能なバンクのことである。なお、最大バースト長としてメモリアクセスコマンドが発行されたリード転送で余分に読み出したデータと該当アドレスとは、プリフェッチバッファ110に保持される。
バスマスタ103より発行されたメモリアクセス要求は、バスインターフェース109を介してコマンドバッファ108へ伝達される。コマンドバッファ108は、メモリアクセス要求について、リード(読み出しアクセス)又はライト(書き込みアクセス)のアクセス方向を検出する。コマンドバッファ108は、アクセス対象のアドレスと、アクセス方向と、プリフェッチバッファ110に保持されているプリフェッチされたデータのアドレスとに係る比較を行う。
より具体的には、メモリアクセスが読み出し方向であり、アクセス対象のアドレスがプリフェッチバッファ110に保持されているアドレスと同一であった場合は、コマンドバッファ108は、該当メモリアクセス要求をコマンドバッファ108から削除する。なお、上記の場合、当該アドレスに対応付けられているデータは、プリフェッチバッファ110より読み出されてバスインターフェース109を介してバスマスタ103に送信される構成を採用してもよい。
また、メモリアクセスが書き込み方向であり、アクセス対象のアドレスがプリフェッチバッファ110に保持されているアドレスと同一である場合、コマンドバッファ108は、プリフェッチバッファ110に保持されている該当エントリーを廃棄又は無効化を行う。このとき、該当メモリアクセス要求は、コマンドバッファ108に一旦保持され、あるタイミングでメモリアクセス制御部104に伝達される。上記2つの場合に該当しないときは、メモリアクセス要求は、コマンドバッファ108に一旦保持され、あるタイミングでメモリアクセス制御部104に伝達される。
メモリアクセス制御部104は、バスマスタ103からのメモリアクセス要求について、外部のメモリデバイス101との通信のためのアクセスプロトコルに適した変換を行い、メモリアクセスコマンドの発行処理を実施する。なお、メモリアクセス制御部104によるメモリアクセスに係る処理としては、公知の処理(例えば、図4に示すフローチャートの処理)を適宜採用してもよい。
また、メモリアクセス制御部104は、メモリバンク管理機構105を有している。メモリバンク管理機構105は、発行されたメモリアクセス要求のアドレスよりメモリデバイス101のバンクアドレス、行アドレス、及び列アドレスを算出すると共に、メモリデバイス101の各バンクの活性化状態を参照する。そして、メモリバンク管理機構105は、接続されるメモリデバイス101の各バンクについて、現在活性化されている行アドレス情報(バンク管理情報)を保持している。
図3に、メモリバンク管理機構105におけるバンク管理情報を示す。図3では、2つのデバイスで各デバイスが4バンクの構成のメモリデバイス101に関するバンク管理情報を示している。デバイス(Device)とバンク(Bank)との組み合わせに対して、ページがオープン状態であるか否かを示すOpenFlag(Open Flag)とオープンとなる行アドレス(Row Address)とをテーブルとして保持している。
例えば、デバイス0のバンク0の組は、ページがクローズされた状態であり、デバイス0のバンク1の組は、行アドレス(0x1234)がオープン状態であることを示している。メモリアクセス制御部104は、メモリアクセス要求のアドレスより算出されたバンクアドレス及び行アドレスと、メモリバンク管理機構105に保持されているアクセス対象のバンクに対応する活性化されている行アドレスとに係る比較を行う。
例えば、メモリアクセス制御部104は、まず、バスマスタ103より発行されたメモリアクセス要求に係るデバイス及びバンクの組み合わせと、バンク管理情報とを参照する。当該デバイス及びバンクの組について、ページオープンの状態で保持されている行アドレスと、発行されたメモリアクセス要求の行アドレスとが同一であれば、メモリアクセス制御部104は、ページヒットとして列コマンドを発行してメモリアクセスを行う。他方、異なる行アドレスである場合は、メモリアクセス制御部104は、ページミスのアクセスであるとして、プリチャージコマンドを発行する。
上述した構成によれば、メモリデバイス101(DDR3−SDRAM等)で発生するメモリアクセスの効率の低下を低減し、メモリアクセスの効率の向上が可能となる。加えて、メモリデバイス101で間隔が空いてしまう空白のデータバス期間をプリフェッチデータ転送に使用することが可能となり、メモリアクセスの効率の向上を図ることができる。
また、例えば、バス転送の最大サイズがDDR3−SDRAMの8段プリフェッチ分の転送サイズに満たない場合、複数のバス転送を結合する複雑な制御なしにメモリアクセスの効率を向上させることができる。特に、ハードウエアの連続領域へのアクセス時やメモリアクセスの局所性が存在する場合においては、プリフェッチされたデータへのヒット率が向上するため、システムの性能の向上を図ることができる。
<その他の実施形態>
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
以上、本発明の好ましい実施形態について詳述したが、本発明は係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
100 メモリ制御回路、104 メモリアクセス制御部、105 メモリバンク管理機構、107 コマンドバースト制御部、108 コマンドバッファ、109 バスインターフェース、110 プリフェッチバッファ

Claims (3)

  1. バースト長の制御が可能なメモリデバイスに対して、バスマスタからのアクセス要求を受けてコマンドを発行するメモリ制御回路であって、
    前記メモリデバイスの各バンクの活性化状態を管理する手段と、
    前記バスマスタからのアクセス要求に係るメモリアクセスに対してリードとライトとを検出する手段と、
    前記メモリアクセスに対して次のメモリアクセスとのバンクの依存関係を検出する手段と、
    前記次のメモリアクセスのページミスの判定を行う手段と、
    前記メモリアクセスがリードであり、前記次のメモリアクセスとのバンクの依存関係がなく、前記次のメモリアクセスがページミスであると判定された場合に、最大のバースト長で前記次のメモリアクセスのコマンドを発行する手段と、
    前記次のメモリアクセスに対して余分に読み出したデータをプリフェッチのデータとして処理する手段と
    を有することを特徴とするメモリ制御回路。
  2. 前記メモリアクセスがリードであり、前記次のメモリアクセスとのバンクの依存関係がある場合に、最大のバースト長で前記次のメモリアクセスのコマンドを発行する手段を更に有することを特徴とする請求項1記載のメモリ制御回路。
  3. 前記メモリデバイスはDDR3−SDRAMであることを特徴とする請求項1又は2記載のメモリ制御回路。
JP2009254459A 2009-11-05 2009-11-05 メモリ制御回路 Active JP5393405B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009254459A JP5393405B2 (ja) 2009-11-05 2009-11-05 メモリ制御回路

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009254459A JP5393405B2 (ja) 2009-11-05 2009-11-05 メモリ制御回路

Publications (2)

Publication Number Publication Date
JP2011100295A JP2011100295A (ja) 2011-05-19
JP5393405B2 true JP5393405B2 (ja) 2014-01-22

Family

ID=44191420

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009254459A Active JP5393405B2 (ja) 2009-11-05 2009-11-05 メモリ制御回路

Country Status (1)

Country Link
JP (1) JP5393405B2 (ja)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001229074A (ja) * 2000-02-16 2001-08-24 Nec Ibaraki Ltd メモリ制御装置と情報処理装置及びメモリ制御チップ
JP4470183B2 (ja) * 2006-08-28 2010-06-02 エルピーダメモリ株式会社 半導体記憶装置
JP5034551B2 (ja) * 2007-02-26 2012-09-26 富士通セミコンダクター株式会社 メモリコントローラ、半導体メモリのアクセス制御方法およびシステム
JP5351145B2 (ja) * 2008-04-22 2013-11-27 パナソニック株式会社 メモリ制御装置、メモリシステム、半導体集積回路およびメモリ制御方法

Also Published As

Publication number Publication date
JP2011100295A (ja) 2011-05-19

Similar Documents

Publication Publication Date Title
KR100610730B1 (ko) 메모리 액세스 대기시간을 감소시키기 위한 메모리 액세스스케쥴링 방법 및 장치
EP1110151B1 (en) Buffering system bus for external-memory accesses
KR100724557B1 (ko) 아웃 오브 오더 dram 시퀀서
US8127081B2 (en) Memory hub and access method having internal prefetch buffers
EP1546885B1 (en) Memory hub and access method having internal row caching
JP4786209B2 (ja) メモリアクセス装置
US6963516B2 (en) Dynamic optimization of latency and bandwidth on DRAM interfaces
CN108139994B (zh) 内存访问方法及内存控制器
US9069489B1 (en) Dynamic random access memory front end
US8356143B1 (en) Prefetch mechanism for bus master memory access
JP2007073052A (ja) 集積回路から外部メモリへのアクセス
TW200416535A (en) Method and apparatus for determining a dynamic random access memory page management implementation
US20080098176A1 (en) Method and Apparatus for Implementing Memory Accesses Using Open Page Mode for Data Prefetching
JP4370063B2 (ja) 半導体記憶装置の制御装置および半導体記憶装置の制御方法
US20040068615A1 (en) Apparatus, method, and system for reducing latency of memory devices
JP2005038427A (ja) ダイナミック周波数スケーリングキャッシュメモリの休止時間を利用する方法、回路及びシステム
JP4250989B2 (ja) メモリアクセス制御装置
JP5911548B1 (ja) 共有メモリへのアクセス要求をスケジューリングするための装置、方法およびコンピュータプログラム
JP5393405B2 (ja) メモリ制御回路
JP2006251923A (ja) 先読み制御方法
US8484411B1 (en) System and method for improving access efficiency to a dynamic random access memory
JP2011100273A (ja) メモリ制御回路
JP2006107245A (ja) メモリコントローラ
JP2006107614A (ja) メモリコントローラ
JP2003173291A (ja) メモリ制御装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20121030

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130904

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: 20130917

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131015

R151 Written notification of patent or utility model registration

Ref document number: 5393405

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151