JP2011100295A - メモリ制御回路 - Google Patents
メモリ制御回路 Download PDFInfo
- Publication number
- JP2011100295A JP2011100295A JP2009254459A JP2009254459A JP2011100295A JP 2011100295 A JP2011100295 A JP 2011100295A JP 2009254459 A JP2009254459 A JP 2009254459A JP 2009254459 A JP2009254459 A JP 2009254459A JP 2011100295 A JP2011100295 A JP 2011100295A
- Authority
- JP
- Japan
- Prior art keywords
- memory access
- access
- memory
- bank
- command
- 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.)
- Granted
Links
Images
Abstract
【解決手段】メモリデバイスの各バンクの活性化状態を管理し、バスマスタからのアクセス要求に係るメモリアクセスに対してリードとライトとを検出し、メモリアクセスに対して次のメモリアクセスとのバンクの依存関係を検出し、次のメモリアクセスのページミスの判定を行い、メモリアクセスがリードであり、次のメモリアクセスとのバンクの依存関係がなく、次のメモリアクセスがページミスであると判定された場合に、最大のバースト長で次のメモリアクセスのコマンドを発行し、次のメモリアクセスに対して余分に読み出したデータをプリフェッチのデータとして処理することによって課題を解決する。
【選択図】図1
Description
しかしながら、同一バンク内で活性化されているページ以外の別のページへメモリアクセスする場合には、一旦バンク内の活性化されているページを非活性化するコマンド(プリチャージコマンド)を発行する。その後に、アクセス対象のページオープンに係る処理を行った後に、メモリアクセスコマンドを発行する必要がある。このように、活性化されているページ以外の別のページへメモリアクセスすることは、ページミスと称され、それに要するプリチャージコマンドの発行とページオープンに係る処理とに要する期間は、ページミスペナルティと称される。
近年、主流となっているDDR(Double Data Rate)と称されるクロックの立ち上がりと立ち下がりとの双方に同期してデータ転送するメモリデバイスでは、メモリアクセス帯域が大幅に改善されている。しかしながら、メモリデバイスへのアクセス応答時間は、改善されていない。LSI内部の動作周波数の向上に対し、メモリデバイスへのアクセス時間が変わらない場合、特に読み出し(リード)を中心に行う処理においては、その応答に要するクロック数が増加する傾向にあり、周波数向上分の性能改善が困難となっている。
このようなリード時の応答時間の性能への影響を回避する手法としてプリフェッチと称される手法が一般的に用いられている。プリフェッチとは、データが必要となるサイクルに先立って必要となるデータを保持し、データを必要となったタイミングで、保持されたデータを使用する手法である。プリフェッチを用いることによりメモリデバイスへのアクセス応答時間を隠蔽し、バスマスタは見かけ上、短時間でリードに係る処理を終了することが可能となるため、プリフェッチは、システムでの処理性能の向上に寄与し得る。
DDR2−SDRAMでは、メモリデバイス内のプリフェッチの段数を4段、DDR3−SDRAMでは、メモリデバイス内のプリフェッチの段数を8段とする。これにより、メモリデバイスへのアクセス速度の向上が困難な状況下で、見かけ上のアクセス速度を向上させ、メモリデバイスへのアクセス帯域を向上させている。
DDRタイプのDRAMを用いた場合には、単一のメモリデバイスのアクセスに対して複数段のプリフェッチを行っている。このため本来転送として必要としないアドレスに対するデータ転送が発生してしまう可能性があり、DDR3−SDRAMでは、プリフェッチの段数が8段と大きいためその傾向が顕著に表れる。ここで、DDR3−SDRAMでは、通常は8段のプリフェッチであるので、8ビートのデータ転送が行われる。しかし、バーストチョップというメモリアクセスコマンド発行時にバースト長を動的に切り替える機能により4ビートと8ビートとを選択することができるようになっている。
また、特許文献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サイクルの空白サイクルが生じてしまう。このような空白サイクルにより、メモリアクセスの効率を低下させる問題がある。
メモリコントローラ100は、バスマスタ103のメモリアクセス要求を受信するバスインターフェース109を有する。メモリアクセス要求は、コマンドバッファ108を介して、メモリアクセス制御部104に順次転送される。
コマンドバースト制御部107は、現メモリアクセスがリード転送であり、次のメモリアクセスについて、バンクの依存関係がなく、ページミスであると判定した場合、最大バースト長を指定する。すなわち、コマンドバースト制御部107は、最大バースト長でメモリデバイス101に対してメモリアクセスコマンドを発行するようメモリアクセス制御部104に指示する。また、コマンドバースト制御部107は、次のメモリアクセスについて、バンクの依存関係があると判定した場合、最大バースト長でメモリデバイス101に対してメモリアクセスコマンドを発行するようにメモリアクセス制御部104に指示する。
他方、コマンドバースト制御部107は、現メモリアクセスがライト転送である場合や、次のメモリアクセスについて、バンクの依存関係があるがページヒットである(ページミスでない)場合は、バスマスタ103より要求されたバースト長を指定する。すなわち、コマンドバースト制御部107は、バスマスタ103より要求されたバースト長にてメモリアクセスコマンドを発行するようにメモリアクセス制御部104に指定する。ここでいう、該当バンクと依存関係がないバンクとは、該当バンクのデータフェーズ期間に列コマンド(列アドレスコマンド)が発行可能なバンクのことである。なお、最大バースト長としてメモリアクセスコマンドが発行されたリード転送で余分に読み出したデータと該当アドレスとは、プリフェッチバッファ110に保持される。
より具体的には、メモリアクセスが読み出し方向であり、アクセス対象のアドレスがプリフェッチバッファ110に保持されているアドレスと同一であった場合は、コマンドバッファ108は、該当メモリアクセス要求をコマンドバッファ108から削除する。なお、上記の場合、当該アドレスに対応付けられているデータは、プリフェッチバッファ110より読み出されてバスインターフェース109を介してバスマスタ103に送信される構成を採用してもよい。
また、メモリアクセスが書き込み方向であり、アクセス対象のアドレスがプリフェッチバッファ110に保持されているアドレスと同一である場合、コマンドバッファ108は、プリフェッチバッファ110に保持されている該当エントリーを廃棄又は無効化を行う。このとき、該当メモリアクセス要求は、コマンドバッファ108に一旦保持され、あるタイミングでメモリアクセス制御部104に伝達される。上記2つの場合に該当しないときは、メモリアクセス要求は、コマンドバッファ108に一旦保持され、あるタイミングでメモリアクセス制御部104に伝達される。
また、メモリアクセス制御部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に保持されているアクセス対象のバンクに対応する活性化されている行アドレスとに係る比較を行う。
また、例えば、バス転送の最大サイズがDDR3−SDRAMの8段プリフェッチ分の転送サイズに満たない場合、複数のバス転送を結合する複雑な制御なしにメモリアクセスの効率を向上させることができる。特に、ハードウエアの連続領域へのアクセス時やメモリアクセスの局所性が存在する場合においては、プリフェッチされたデータへのヒット率が向上するため、システムの性能の向上を図ることができる。
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
Claims (3)
- バースト長の制御が可能なメモリデバイスに対して、バスマスタからのアクセス要求を受けてコマンドを発行するメモリ制御回路であって、
前記メモリデバイスの各バンクの活性化状態を管理する手段と、
前記バスマスタからのアクセス要求に係るメモリアクセスに対してリードとライトとを検出する手段と、
前記メモリアクセスに対して次のメモリアクセスとのバンクの依存関係を検出する手段と、
前記次のメモリアクセスのページミスの判定を行う手段と、
前記メモリアクセスがリードであり、前記次のメモリアクセスとのバンクの依存関係がなく、前記次のメモリアクセスがページミスであると判定された場合に、最大のバースト長で前記次のメモリアクセスのコマンドを発行する手段と、
前記次のメモリアクセスに対して余分に読み出したデータをプリフェッチのデータとして処理する手段と
を有することを特徴とするメモリ制御回路。 - 前記メモリアクセスがリードであり、前記次のメモリアクセスとのバンクの依存関係がある場合に、最大のバースト長で前記次のメモリアクセスのコマンドを発行する手段を更に有することを特徴とする請求項1記載のメモリ制御回路。
- 前記メモリデバイスはDDR3−SDRAMであることを特徴とする請求項1又は2記載のメモリ制御回路。
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 true JP2011100295A (ja) | 2011-05-19 |
JP5393405B2 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) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001229074A (ja) * | 2000-02-16 | 2001-08-24 | Nec Ibaraki Ltd | メモリ制御装置と情報処理装置及びメモリ制御チップ |
JP2008052878A (ja) * | 2006-08-28 | 2008-03-06 | Elpida Memory Inc | 半導体記憶装置 |
JP2008210088A (ja) * | 2007-02-26 | 2008-09-11 | Fujitsu Ltd | メモリコントローラ、半導体メモリのアクセス制御方法およびシステム |
WO2009130888A1 (ja) * | 2008-04-22 | 2009-10-29 | パナソニック株式会社 | メモリ制御装置、メモリシステム、半導体集積回路およびメモリ制御方法 |
-
2009
- 2009-11-05 JP JP2009254459A patent/JP5393405B2/ja active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001229074A (ja) * | 2000-02-16 | 2001-08-24 | Nec Ibaraki Ltd | メモリ制御装置と情報処理装置及びメモリ制御チップ |
JP2008052878A (ja) * | 2006-08-28 | 2008-03-06 | Elpida Memory Inc | 半導体記憶装置 |
JP2008210088A (ja) * | 2007-02-26 | 2008-09-11 | Fujitsu Ltd | メモリコントローラ、半導体メモリのアクセス制御方法およびシステム |
WO2009130888A1 (ja) * | 2008-04-22 | 2009-10-29 | パナソニック株式会社 | メモリ制御装置、メモリシステム、半導体集積回路およびメモリ制御方法 |
Also Published As
Publication number | Publication date |
---|---|
JP5393405B2 (ja) | 2014-01-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100610730B1 (ko) | 메모리 액세스 대기시간을 감소시키기 위한 메모리 액세스스케쥴링 방법 및 장치 | |
KR100724557B1 (ko) | 아웃 오브 오더 dram 시퀀서 | |
EP1110151B1 (en) | Buffering system bus for external-memory accesses | |
US6272609B1 (en) | Pipelined memory controller | |
US6622228B2 (en) | System and method of processing memory requests in a pipelined memory controller | |
US7260685B2 (en) | Memory hub and access method having internal prefetch buffers | |
JP4786209B2 (ja) | メモリアクセス装置 | |
US6963516B2 (en) | Dynamic optimization of latency and bandwidth on DRAM interfaces | |
JP2002530731A (ja) | 異常メモリアクセスまたは異なる時間のメモリアクセス実行の際のデータバス上のデータ衝突を検出するための方法および装置 | |
TWI236591B (en) | Method and apparatus for determining a dynamic random access memory page management implementation | |
US9069489B1 (en) | Dynamic random access memory front end | |
JP2007073052A (ja) | 集積回路から外部メモリへのアクセス | |
US8356143B1 (en) | Prefetch mechanism for bus master memory access | |
WO2017206000A1 (zh) | 内存访问方法及内存控制器 | |
JP4370063B2 (ja) | 半導体記憶装置の制御装置および半導体記憶装置の制御方法 | |
US20080098176A1 (en) | Method and Apparatus for Implementing Memory Accesses Using Open Page Mode for Data Prefetching | |
US20040068615A1 (en) | Apparatus, method, and system for reducing latency of memory devices | |
JP4791714B2 (ja) | ダイナミック周波数スケーリングキャッシュメモリの休止時間を利用する方法、回路及びシステム | |
JP5911548B1 (ja) | 共有メモリへのアクセス要求をスケジューリングするための装置、方法およびコンピュータプログラム | |
JP4250989B2 (ja) | メモリアクセス制御装置 | |
JP2006251923A (ja) | 先読み制御方法 | |
JP5393405B2 (ja) | メモリ制御回路 | |
US8484411B1 (en) | System and method for improving access efficiency to a dynamic random access memory | |
JP2011100273A (ja) | メモリ制御回路 | |
JP2006107245A (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 |