JP2011197707A - メモリー制御装置、メモリー制御システム、記録装置及びメモリー制御方法 - Google Patents

メモリー制御装置、メモリー制御システム、記録装置及びメモリー制御方法 Download PDF

Info

Publication number
JP2011197707A
JP2011197707A JP2010060278A JP2010060278A JP2011197707A JP 2011197707 A JP2011197707 A JP 2011197707A JP 2010060278 A JP2010060278 A JP 2010060278A JP 2010060278 A JP2010060278 A JP 2010060278A JP 2011197707 A JP2011197707 A JP 2011197707A
Authority
JP
Japan
Prior art keywords
page
access
masters
memory control
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.)
Pending
Application number
JP2010060278A
Other languages
English (en)
Inventor
Keiji So
慶治 荘
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.)
Seiko Epson Corp
Original Assignee
Seiko Epson Corp
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 Seiko Epson Corp filed Critical Seiko Epson Corp
Priority to JP2010060278A priority Critical patent/JP2011197707A/ja
Publication of JP2011197707A publication Critical patent/JP2011197707A/ja
Pending legal-status Critical Current

Links

Images

Abstract

【課題】ダイナミックRAMにアクセスする際のレイテンシーを改善することができるメモリー制御装置、メモリー制御システム、記録装置及びメモリー制御方法を提供する。
【解決手段】複数のマスターM1〜MnとDRAMとの間に介在するメモリーコントローラー37は、メモリーシーケンス制御回路64とレイテンシー改善回路67等を備える。レイテンシー改善回路67は、マスター数判定回路71と、ページヒット率判定回路72と、ページ制御回路73とを備える。マスター数判定回路71は特定時間におけるアクセスマスター数が有効バンク数(例えば「8」)以下であるか否かを判定し、ページヒット率判定回路72はページヒット率が設定値Q(本例では50%)以上であるか否かを判定する。ページ制御回路73は両条件成立時にページオープン制御信号Sopenを出力し、一方の条件でも不成立であるとページクローズ制御信号Scloseを出力する。
【選択図】図5

Description

本発明は、複数のマスターとダイナミックRAMとの間に介在し、マスターからの要求に基づいてダイナミックRAMに対するアクセス制御を行うメモリー制御装置、メモリー制御システム、記録装置及びメモリー制御方法に関する。
例えば特許文献1には、CPUやハードデバイスなどの複数のマスターと、ダイナミックRAM(DRAM)との間にメモリーコントローラー(メモリー制御装置)が介在する構成が開示されている。マスターはメモリーコントローラーに対してリード/ライドリクエストを行うことにより、DRAMに対してデータの読出し/書込みを行う。この種のメモリーコントローラーでは、DRAMへのアクセスの高速化が望まれている。
DRAMは、複数(4つ又は8つ)のメモリーバンク(以下、単に「バンク」という)を備える。メモリーコントローラーはマスターから要求されたロウアドレスとカラムアドレスを指定して、対応するバンクからのデータの読出し又は書込み動作を行う。このとき、要求されたアドレスに対応する1つのバンクが選択(活性化)され、その選択されたバンク中のロウアドレスで指定された1行分のデータ(ページともいう)をセンスアンプに保持する。そして、センスアンプに保持されたページ中のカラムアドレスで指定された箇所に対しデータの読出し又は書込みを行う。
次回のアクセス時に同一ページが指定されればその開かれたページに直ぐにアクセスできるが、異なるページ(異ページ)が指定された場合は、ページを一旦閉じるページクローズ動作(プリチャージ動作)と、異ページを開くページオープン動作とが必要になる。このプリチャージ動作は比較的時間がかかるので、メモリーコントローラーのアクセス時のレイテンシー(遅延)の増大の原因になる。
例えば特許文献1、2には、ページヒット判定を行う技術が知られている。前回のメモリーアクセス時におけるCPUからのメモリーアドレスと、今回のメモリーアクセス時におけるCPUからのメモリーアドレスとを比較して一致したときに、同一バンクかつ同一ページであることを示すページヒット信号を出力する。そして、ページヒットであれば、そのページを保持し、ページヒットでなければプリチャージ動作を行う。
一方、アクセス終了時の動作を予めオープンとクローズのうち一方に固定しておく固定方式も知られている。例えばオープン固定方式ではアクセス終了後はページオープン状態に保持するので、次のアクセスが異ページであった場合、プリチャージ動作(ページクローズ動作)から開始しなければならず、レイテンシー(遅延)が増大する。一方、クローズ固定方式ではアクセス終了の度にプリチャージ動作を行うので、次のアクセスが異ページであった場合はよいが、同一ページであった場合はプリチャージ動作及びページオープン動作が余分になり、次回のアクセスの開始がその分遅延し、この場合もレイテンシーが増大する。
また、特許文献3には、複数のコマンドキューを溜めておける構成も知られている。このような構成であれば、複数のコマンドキューの中に同一ページにアクセスするキューがあればそのキューを優先処理することで、プリチャージ動作を低減できる。
一方、特許文献4には、複数のマスターのそれまでのアクセスの傾向からオープンかクローズかを予測し、アクセスの競合の調停ばかりでなくマスターの性格に応じた制御を行う技術が開示されている。すなわち、マスターからDRAMに対するアクセスは、ランダムアクセスであっても、現在アクセスしたアドレスやその近くのアドレスは、近い将来に、頻繁に、再度アクセスされる可能性が高いという性質(「空間的局所性」という)がある。従って、空間的局所性を有するマスターからのDRAMへのアクセスは同一ページ内へ頻繁に生じることになる。
そこで、マスターからの識別信号によりマスターを識別し、アクセスの最初にメモリーのページを閉じるか閉じないかを決めるその識別したマスターに応じた制御モードに切り替えて、これに従ってアクセスの最後にページの開閉動作を行う。空間的局所性のあるマスターからアクセス要求があったときは、ページオープン状態でアクセスを終了するので、ページヒットが現れやすくアクセスが高速化される。
また、サーバーとノードを備えたシステムにおいてメモリーアクセスの効率化を図るために、ヒストグラムを生成する技術(特許文献5)が知られている。また、試験でヒストグラムを生成する技術(特許文献6)などが知られている。
特開2007−233633号公報 特開2008−117242号公報 特開2007−249837号公報 WO01/059573号 特開2008−71237号公報 特開2009−104605号公報
しかしながら、特許文献1、2に記載された構成では、次回のアクセス要求を受け付けた段階で、今回のアドレスが前回のアドレスと一致するか否かを判定してページヒット判定を行う構成であるため、ページヒットであるか否かを確認してからオープン/クローズの選択が行われる。このため、例えばクローズする必要があるときには、次回のアクセス要求を受け付けた時点からページクローズ動作(プリチャージ動作)を開始するので、ページクローズ固定方式であれば回避できたページクローズ動作分の時間的な遅れが発生する。この場合、次回アクセスがその分遅れ、メモリーコントローラーのDRAMにアクセスする際のレイテンシー(遅延)が増大するという問題がある。
また、特許文献3のように複数のキューを溜めておける構成では、多段のコマンドキューが必要になるうえ、その段数が増えるに連れてゲート数が増加し、かつ段数に反比例してキュー内アドレスに基づきページを判定するページ判定回路の高速化が困難になる問題や、キュー内に次のコマンドがまだ到達していない場合に判定できないなどの問題があった。
さらに特許文献4では、次回のアクセス要求を受け付ける前に、マスターの性質から次回のアクセスが同一ページか異ページかを予測できるものの、マスター識別手段が必要であるという問題があった。例えば、複数のマスターとメモリコントローラー(メモリー制御装置)との間にインターコネクトが介在する構成のメモリー制御システムの場合は、インターコネクトがマスターの要求を調停した調停結果の要求を受け付けるので、受け付けた要求からはマスターを識別できない。このため、この種のメモリー制御システムには適用できないという問題があった。
本発明は、上記課題に鑑みてなされたものであり、その目的は、ダイナミックRAMにアクセスする際のレイテンシーを改善することができるメモリー制御装置、メモリー制御システム、記録装置及びメモリー制御方法を提供することにある。
上記目的を達成するために、本発明は、マスターとダイナミックRAMとの間に介在して前記マスターからのアクセス要求に基づいて前記ダイナミックRAMに対するアクセスを制御するメモリー制御装置であって、前記ダイナミックRAMにおいてアクセス中の対象バンクのページヒット率が設定値以上であるか否かを判定する判定手段と、前記ページヒット率が設定値以上と判定された場合に前記ダイナミックRAMに対してアクセス中の対象ページを保持するページオープンを指示し、前記ページヒット率が設定値未満と判定された場合に前記ダイナミックRAMに対してアクセス中の対象ページを閉じるページクローズを指示する指示手段と、を備えたことを要旨とする。
この発明によれば、判定手段が、アクセス中の対象バンクのページヒット率が設定値以上と判定し、次回アクセスも同一ページになる可能性が高い(つまり局所性がある)と予測される場合、指示手段はダイナミックRAMにページオープンを指示し、アクセス中の対象ページをオープン状態に保持する。一方、判定手段が、アクセス中の対象バンクのページヒット率が設定値未満と判定し、次回アクセスが同一ページとならない可能性が高い(つまり局所性がない)と予測される場合、指示手段はダイナミックRAMにページクローズを指示し、アクセス中の対象ページを閉じる。つまり、対象バンクのページヒット率が設定値以上か未満かによって局所性の有無を判定し、局所性がある場合に同一ページを保持し、局所性がない場合にページを閉じる。よって、同一ページの可能性が高い場合に不要なページクローズ動作を高確率で回避しつつ、異ページの可能性が高い場合にページクローズ動作を次回のアクセスに先立って行っておくことで、次回のアクセス要求受け付け時に高確率で前回のページを閉じるページクローズ動作からの開始を回避して異ページのページオープン動作から開始すればよいので、次回アクセスを早期に開始できる。この結果、メモリー制御装置においてダイナミックRAMにアクセスする際のレイテンシーを改善できる。
本発明のメモリー制御装置では、前記判定手段を第1判定手段とし、直前の特定時間内にアクセスした異なるマスターの数であるアクセスマスター数が、前記ダイナミックRAMを構成する全バンク数以下の値の設定バンク数以下であるか否かを判定する第2判定手段を更に備え、前記指示手段は、前記ページヒット率が設定値以上と判定され、かつ前記アクセスマスター数が前記設定バンク数以下と判定された場合に前記ページオープンを指示し、それ以外の判定結果の場合には前記ページクローズを指示する。
この発明によれば、第1判定手段によりページヒット率が設定値以上と判定され、かつ第2判定手段によりアクセスマスター数が設定バンク数以下と判定された場合、指示手段はページオープンを指示する。一方、それ以外の判定結果の場合、指示手段はページクローズを指示する。このようにページヒット率だけでなくアクセスマスター数も判定要素に入れて判定するので、局所性の有無を一層的確に判定でき、ダイナミックRAMにアクセスする際のレイテンシーを一層改善できる。
本発明のメモリー制御装置では、前記設定値は50%以上である。
この発明によれば、ページヒット率が50%以上であるか否かを判定するので、局所性の有無を一層的確に判定できる。
本発明のメモリー制御装置では、前記ページヒット率で判定する前記判定手段は、全アクセス数を計数する第1カウンターと、ページヒット数を計数する第2カウンターと、前記両カウンターがそれぞれ計数した全アクセス数とページヒット数とに基づいて前記ページヒット率を演算して当該ページヒット率が前記設定値以上であるか否かを判定する第1の判定回路とを備える。
この発明によれば、第1及び第2カウンターと第1の判定回路とを用いるので、第1の判定回路は、第1及び第2カウンターの各計数値に基づいてページヒット率を演算し、そのページヒット率が設定値以上であるか否かの判定を高速に行うことができる。
本発明のメモリー制御装置では、前記第2判定手段は、前記特定時間を計時する計時用カウンターと、前記アクセスマスター数を計数する第3カウンターと、設定バンク数が格納される格納手段と、前記計時用カウンターが計時する前記特定時間内に前記第3カウンターが計数したアクセスマスター数を取得し、当該アクセスマスター数が前記設定バンク数以下であるか否かを判定する第2の判定回路とを備える。
この発明によれば、計時用カウンターと第3カウンターと第2の判定回路とを用いるので、第2の判定回路は計時用及び第3カウンターの各計数値に基づいて取得した特定時間内のアクセスマスター数が設定バンク数以下であるか否かの判定を高速に行うことができる。
本発明は、メモリー制御システムであって、複数のマスターと、上記発明の前記メモリー制御装置とを備え、前記複数のマスターは前記メモリー制御装置に対して個々に接続されていることを要旨とする。
この発明によれば、複数のマスターとメモリー制御装置との間にインターコネクトが介在しないメモリー制御システムにおいて、上記メモリー制御装置に係る発明と同様の効果が得られる。特にインターコネクトが介在しないので、第2判定手段による判定が可能となり、指示手段は第1判定手段と第2判定手段との両判定結果に基づく指示を行うことができる。
本発明は、メモリー制御システムであって、複数のマスターと、請求項1に記載の前記メモリー制御装置とを備え、前記複数のマスターと前記メモリー制御装置との間には前記複数のマスターからの要求を調停可能なインターコネクトが介在する。
この発明によれば、複数のマスターとメモリー制御装置との間にインターコネクトが介在するメモリー制御システムにおいて、上記メモリー制御装置に係る発明と同様の効果が得られる。この場合、対象バンクのページヒット率を用いる第1判定手段による判定方法は、インターコネクトが介在しても可能なので、対象ページを保持するか否かのページヒット率(つまり局所性の有無)に応じた適切な指示を出すことができる。
本発明は、メモリー制御システムであって、N個(但しN≧2)のマスターと、請求項1又は2に記載の前記メモリー制御装置とを備え、前記N個のうちP個(但しP<N)のマスターは前記メモリー制御装置に対して個々に接続されており、前記N個のうちQ個(但しQ=N−P)のマスターは前記メモリー制御装置に対して、当該Q個のマスターからの要求を調停可能なインターコネクトを介して接続されている。
この発明によれば、対象バンクのページヒット率に応じた適切な指示を行うことができる。また、メモリー制御装置に個々に接続されたP個のマスターに限れば、P個のマスターを対象とするバンク毎のアクセスマスター数の計数が可能である。例えばP個のマスターが全体の一部であることを考慮してマスター数割合(P/N)に応じた設定値を設定すれば、アクセスマスター数を用いた第2判定手段による判定を比較的適切に行うことができる。
本発明は、記録装置であって、上記発明のメモリー制御システムと、媒体を搬送する搬送手段と、前記搬送手段により搬送される媒体に記録を施す記録手段と、前記ダイナミックRAMから読み出した処理前の画像データに画像処理を施して前記記録手段を制御する制御データを生成して当該制御データを前記ダイナミックRAMに格納する画像処理手段とを備え、前記画像処理手段を前記マスターのうちの1つとすることを要旨とする。この発明によれば、上記メモリー制御装置に係る発明と同様の効果を得ることができる。
本発明は、マスターとダイナミックRAMとの間に介在するメモリー制御装置が、前記マスターからの要求に基づいて前記ダイナミックRAMに対するデータの読出し及び書込みを制御するメモリー制御方法であって、前記ダイナミックRAMにおいて選択中の対象バンクのページヒット率が設定値以上であるか否かを判定する判定ステップと、前記ページヒット率が設定値以上と判定された場合に前記ダイナミックRAMに対してオープン中の対象ページを保持するページオープンを指示し、前記ページヒット率が前記設定値未満と判定された場合に前記ダイナミックRAMに対してオープン中の対象ページを閉じるページクローズを指示する指示ステップと、を備えたことを要旨とする。この発明によれば、上記メモリー制御装置に係る発明と同様の効果を得ることができる。
第1実施形態における複合機の斜視図。 メモリー制御システムを含むSOC及び外部メモリーを示すブロック図。 複合機の電気的構成を説明するブロック図。 メモリーコントローラー及びDRAMの構成を示すブロック図。 メモリーコントローラーの要部構成を示すブロック図。 メモリーコントローラー内のデバイスの処理を説明するフローチャート。 (a)(b)レイテンシーに対する効果を説明するシーケンス図。 第2実施形態におけるメモリー制御システムを示すブロック図。 メモリーコントローラー内のデバイスの処理を説明するフローチャート。
(第1実施形態)
以下、本発明を具体化した第1実施形態を図1〜図7に基づいて説明する。図1は、スキャナー機能を備えた印刷装置である複合機11の斜視図である。記録装置の一例としての複合機11は本体12とカバー13とを備え、本体12の下側部分が例えばインクジェット記録方式のプリンター部14、上側部分がスキャナー部15になっている。また、本体12には前側上段部に操作パネル17が設けられ、前側下部に印刷済みの用紙Pが排出される排紙部18が設けられている。さらに本体12の前面端部にはメモリーカード19を挿抜可能なカードスロット20が設けられている。
図1に示すように、操作パネル17にはその幅方向中央部に配置された表示部21と、電源ボタン22、モード選択ボタン23、印刷/スキャンを開始するスタートボタン24、選択ボタン25等を含む操作部26とが設けられている。モード選択ボタン23の操作によって選択された「メモリーカード」「コピー」「スキャン」等のモードに応じて、メモリーカード19から読み取った写真画像の印刷や、原稿のコピー印刷、原稿のスキャニングなどを行うことができる。
図3は、複合機11の電気的構成を示すブロック図である。複合機11は、全体的な制御を司り、プリンター部14及びスキャナー部15を駆動制御する制御装置30を備える。制御装置30は、プリンター部14を構成するキャリッジモーター27、搬送モーター28及び印刷ヘッド29を駆動制御することにより、プリンター部14に用紙P(媒体)への印刷を行わせる。搬送モーター28は用紙Pの給送を行う給送装置及び用紙Pの搬送を行う搬送機構の動力源となっており、搬送モーター28の駆動によって用紙Pの給送・搬送(紙送り)・排出が行われる。また、キャリッジモーター27の駆動によって不図示のキャリッジが主走査方向に移動し、この移動過程でキャリッジの下部に固定された印刷ヘッド29が用紙Pに印刷を施す。なお、本実施形態では、搬送モーター28等により搬送手段の一例が構成され、キャリッジモーター27及び印刷ヘッド29等により記録手段の一例が構成される。
この制御装置30には、SOC31(System-on-a-Chip)、ROM32及びDRAM33(Dynamic Random Access Memory)を備えている。なお、DRAM33としては、SDRAM(Synchronous DRAM)、DDR SDRAM(Double-Data-Rate SDRAM)、DDR2 SDRAM、DDR3 SDRAMなどが用いられているが、その他、EDO DRAM(Extended Data Out DRAM)、バーストEDO DRAMなどを用いることもできる。
SOC31は、CPU35(中央処理装置)、スタティックメモリーコントローラー36、ダイナミックメモリーコントローラー(メモリーコントローラー)37、表示駆動回路38、スキャナー入力回路39、メモリーカード入出力回路40、JPEG解凍回路41、画像処理回路42、縦横変換回路43、ヘッド制御ユニット44及びモーター駆動回路45を内蔵している。
また、複合機11は、例えば不図示のホスト装置(パーソナルコンピューター等)から転送されてきた印刷データを受信する通信インターフェイス(以下、「通信I/F46」という)を備える。この通信I/F46が接続された不図示の外部バスにはROM32、DRAM33及びSOC31が接続されている。SOC31内では、CPU35及び各回路38〜45が、それぞれ直接又は内部バス47を介して各メモリーコントローラー36,37に接続されている。本実施形態では、CPU35及び各回路38〜45が複数のマスターであり、これらがメモリーコントローラー37を介して外部のDRAM33にアクセスする構成となっている。
また、表示駆動回路38には表示部21が接続され、スキャナー入力回路39にはスキャナー部15が接続されている。さらにメモリーカード入出力回路40にはカードスロット20に挿着されたメモリーカード19が接続されるようになっている。
ROM32には、プログラムや各種制御に必要な設定データ、メニュー画面等の画面表示用の画像データなどが記憶されている。ROM32に記憶されたプログラム等はDRAM33に一旦格納され、CPU35は、DRAM33にアクセスしてプログラム等を実行する。CPU35はプログラム(例えばファームウェア用プログラム)を実行してコマンド及び指令値をモーター駆動回路45に与え、キャリッジモーター27及び搬送モーター28を駆動制御する。DRAM33は、ROM32からのプログラム等の格納領域の他、画像データ格納用の入力バッファー33aと中間バッファー33bと出力バッファー33cとを備える。
スキャナー部15は、原稿を光学的に読み取るラインセンサー15aと、ラインセンサー15aからの読取信号(アナログ信号)をA/D変換して多階調のRGB画像データ(ラインデータ)として出力するA/D変換回路15bとを備える。スキャナー入力回路39は、CPU35の制御の下、スキャナー部15から入力されるRGB画像データに対しライン間補正処理及び解像度変換処理を施す。そして、これらの処理が施されたRGB画像データはSOC31内の不図示の圧縮回路によりJPEG画像データに圧縮された後、DRAM33内の入力バッファー33aに格納される。
また、メモリーカード入出力回路40は、カードスロット20に挿着されたメモリーカード19から例えばJPEG画像データを読み出し、DRAM33内の入力バッファー33aに所定サイズずつ格納する。また、通信I/F46を介してホスト装置から受信した印刷データも、DRAM33内の入力バッファー33aに所定転送サイズずつ格納される。
JPEG解凍回路41は、入力バッファー33aから読み出したJPEG画像データを解凍(伸張)してRGB画像データに展開し、その展開したRGB画像データを所定サイズずつ中間バッファー33bに格納する。
画像処理回路42は、中間バッファー33bから読み出したRGB画像データに対して、解像度変換処理、色変換処理、ハーフトーン処理等を含む公知の画像処理を施す。このとき、画像処理回路42は、これらの画像処理を行う際、中間バッファー33bから画像データを所定サイズずつ読み出し、画像処理を終えた画像データを中間バッファー33bに格納する。
縦横変換回路43は、中間バッファー33bから読み出した画像処理後の画像データ(印刷イメージデータ)に、その画素の並び順を、表示用の横方向(ライン方向)から、印刷ヘッド29のノズル列に対応する縦方向(ラスター方向)に変換する縦横変換処理を施す。そして、縦横変換処理後の画像データ(ヘッドイメージデータ)は出力バッファー33c(イメージバッファー)に格納される。
ヘッド制御ユニット44は、出力バッファー33cから読み出したヘッドイメージデータを、印刷ヘッド29による印刷制御(噴射制御)が可能なヘッド制御データに変換し、例えば1パス分(印刷ヘッドの1走査分)ずつ印刷ヘッド29へ転送する。印刷ヘッド29は不図示のヘッド駆動回路を内蔵し、ヘッド駆動回路がヘッド制御データに基づきインクの噴射制御を行う。印刷ヘッド29は、キャリッジモーター27の駆動により主走査方向に移動するキャリッジの移動途中で、ノズルから所定タイミング毎にインク滴を噴射することにより、用紙Pに印刷を施す。
例えば画像処理回路42や縦横変換回路43等は、メモリーコントローラー37に対して画像データを複数回に分けて所定サイズずつバースト転送を要求するので、今回アクセスされた位置の近傍位置に次回アクセスする可能性が高い。このため、画像処理回路42や縦横変換回路43等がマスターとして、メモリーコントローラー37に読み出し又は書き込みのアクセス要求をする場合は空間的局所性がある。
また、モーター駆動回路45は、印刷時にDRAM33にアクセスして、各モーター27,28を速度制御する際に参照する速度テーブルを読み出す。さらに、表示駆動回路38は、ユーザーによる操作部26の操作に応じた画面(メニュー画面等)を表示部21に表示させるために、DRAM33にアクセスして画面用の画像データを読み出す。
このように、これらの回路38〜45は、CPU35を介することなくDRAM33にダイレクト・メモリー・アクセス(DMA)をする。このため、各回路38〜38は、DRAM33に直接アクセスするDMAマスターM2〜Mnとなる。そして、CPU35はメモリーコントローラー37に対してDRAM33に読出し又は書込みを要求するマスターM1となる。なお、図3においてSOC31内のCPU35及び各回路38〜45と各メモリーコントローラー36,37との接続構成は模式的に示したもので、必ずしも全てがバス47を介して接続されている訳ではない。
図2は、メモリー制御システムを含むSOC及び外部メモリーを示すブロック図である。本実施形態では、図2に示すように、CPU35(マスターM1)はバス47を介してスタティックメモリーコントローラー36と、メモリーコントローラー37と、周辺回路49を制御する周辺制御コントローラー48とに接続されている。また、DMAマスターM2,…,Mnは、メモリーコントローラー37と直接接続されている。つまり、本実施形態のメモリー制御システムでは、N個のマスターM1〜Mn(マスターM)は、メモリーコントローラー37との間にバスインターコネクトを介在していない構成(非バスインターコネクト介在構成)となっている。
図4は、メモリーコントローラー37とDRAM33の詳細な構成を示す。メモリーコントローラー37は、アドレスバスAB及びデータバスDBを介してDRAM33と接続されている。DRAM33は、コマンドデコーダー50、制御論理回路51、モードレジスター52、ロウアドレスバッファー53、カラムアドレスバッファー54、複数のメモリーバンクブロックMBi(i=0〜K(但しK=2−1))、データ制御回路55、及び入出力バッファー56を備えている。
複数のメモリーバンクブロックMBiは、それぞれメモリーバンクBi(以下単に「バンクBi」と称す)と、ロウデコーダー57と、カラムデコーダー58と、センスアンプ59(センスアンプ回路)とを備えている。実際のメモリチップ上ではDRAM33は、互いに物理的に独立した4個又は8個(同図の例では8個)のメモリーバンクBi(i=0〜7)が配置された構成である。
データ制御回路55は、各バンクBi毎に、バンクアドレスにより制御される不図示のバンクスイッチを内蔵し、スイッチで選択された1つのバンクBを活性化させることにより、各バンクBiとデータバスDBとの間のデータ転送が制御される。なお、データバスDBはメモリーコントローラー37とDRAM33内の入出力バッファー56と接続されている。
DRAM33が備える複数のバンクBi(セルアレイ)は、複数のメモリセル(図示省略)をマトリクス配列して構成される。各メモリセルは互いに交差する複数本のワード線と複数本のビット線の交差部に配置されている。
一本のワード線に沿った複数のメモリセルの集合がデータ読み出し及び書き込みの単位である1ページとなる。
ロウデコーダー57は、ワード線ドライバーを含み、バンクBiの選択及びワード線の選択駆動等を行う。センスアンプ59は、選択中のバンクBiにおけるビット線データをセンスする1ページ分のセンスアンプ素子列を備える。
1ページ分の読み出しデータは、カラムデコーダー58により選択されて、入出力バッファー56を介してデータ制御回路55に出力される。データ制御回路55から供給される書き込みデータは、カラムデコーダー58により選択されてセンスアンプ59にロードされる。メモリーコントローラー37からアドレスバスABを介して転送されるアドレス信号Addのうちロウアドレスがロウアドレスバッファー53に送られ、カラムアドレスがカラムアドレスバッファー54に送られる。さらにモードがモードレジスター52に格納される。そして、ロウアドレスバッファー53からロウアドレスがロウデコーダー57に転送され、カラムアドレスバッファー54からカラムアドレスがカラムデコーダー58に転送される。
コマンドデコーダー50には、メモリーコントローラー37から、書込イネーブル信号WE、読出イネーブル信号RE、ロウアドレスストローブ信号RAS、カラムアドレスストローブ信号CAS、チップセレクト信号CS等の制御信号が入力される。コマンドデコーダー50は各信号CS,RAS,CAS,WEをデコードして制御論理回路51に転送する。制御論理回路51は、モードレジスター52から読み出した設定モードに応じて、RAS信号、CAS信号、CS信号等の制御信号に基づいて、読み出し/書き込み及び消去動作のタイミング信号を出力する。そして、制御論理回路51は、これらのタイミング信号に基づいてシーケンス制御を行い、ロウアドレスバッファー53からロウデコーダー57へのロウアドレスの供給、カラムアドレスバッファー54からカラムデコーダー58へのカラムアドレスの供給、データ読出し動作及びデータ書込み動作等の制御を行う。
メモリーコントローラー37は、マスターMから読出し要求を受け付けた場合、DRAM33に対して読出し命令(リード命令)を送り、DRAM33はこの命令をデコードして所望のデータの読出し制御を行なう。また、メモリーコントローラー37は、マスターMから書込み要求を受け付けた場合、DRAM33に対して書込み命令(ライト命令)を送り、DRAM33はこの命令をデコードして所望のデータの書込み制御を行なう。
詳しくは、メモリーコントローラー37は、要求されたアドレスから同一バンクか否かを判定する。そして、メモリーコントローラーは、異なるバンクへのアクセスの場合は、先ず最初に、バンクアクティブ命令とロウアドレスをDRAM33へ送る。この命令とロウアドレスによって、DRAM33内の特定のバンクが選択され、かつその選択されたバンクにおけるロウアドレスに対応するワード線が選択され、このワード線上の一行分のデータが、センスアンプ59に転送及び増幅されて保持される。一方、要求されたアドレスから同一バンクへのアクセスの場合は、バンクアクティブ命令を送らず、ロウアドレスをDRAM33に送る。このロウアドレスによって、選択中のバンクにおけるロウアドレスに対応するワード線が選択され、このワード線上の一行分のデータが、センスアンプ59に転送及び増幅されて保持される。
次に、メモリーコントローラー37は、読み出しの際は、リード命令とカラムアドレスを送り、この命令とカラムアドレスによって、データ制御回路55内のカラムスイッチが選択され、センスアンプ59で保持されているページのうちカラムアドレスに対応するデータが読み出される。一方、書き込みの際は、メモリーコントローラー37は、ライト命令とカラムアドレスを送り、この命令とカラムアドレスによって、データ制御回路55内のカラムスイッチが選択され、センスアンプ59で保持されているページのうちカラムアドレスに対応するデータが書き替えられる。
ところで、DRAM33においてはワード線上の1行分のデータ(ページ)をセンスアンプ59に一旦保持してしまえば、同一ワード線上のアクセスつまり同一ページのアクセスは比較的短時間で行うことができる。また、現在、選択されているワード線とは異なるワード線上のデータ、つまり異ページにアクセスする場合は、センスアンプ59に保持されているデータを一旦消去するプリチャージ動作と、新しいワード線上の1行分のデータ(異ページ)をセンスアンプ59に転送及び増幅して保持させるページオープン動作とが必要になる。このため、異ページにアクセスする場合は、データの読み出し又は書き込みを開始できるまでに比較的長い待ち時間が発生する。
マスターMからDRAM33に対するアクセスは、ランダムアクセスであっても、例えば同一マスターMのアクセスが連続する場合には、現在アクセスしたアドレスやその近くのアドレスに、近い将来に頻繁に再度アクセスされる可能性が高いという性質(「空間的局所性」という)がある。従って、同一マスターMからのDRAM33へのアクセスが、同一ページになるページヒットが頻繁に生じることになる。なお、以下においては、空間的局所性と時間的局所性を含め単に「局所性」と呼ぶ。
そこで、本実施形態のメモリーコントローラー37は、今回のアクセス中に次回のアクセスが同一ページか異ページかを予測する。そして、メモリーコントローラー37は、同一ページと予測した場合はセンスアンプ59に現在保持されている1行分のデータ(現ページ)を保持すべくページオープン状態の保持を指示し、異ページと予測した場合はページクローズ動作(プリチャージ動作)を指示する。このページオープンの指示とページクローズの指示は、今回のアクセスが終了するまでに行われる。このため、次回のアクセスを異ページと予測した場合は、今回のアクセス終了前にプリチャージ動作が開始され、今回と次回のアクセス要求を連続的に受け付けた場合でも、今回のアクセス終了時点でほぼプリチャージ動作が終了しているので、次回のアクセスは異ページのページオープン動作から開始すればよいようになっている。
DRAM33の場合に、「ページ」とは特定のバンクにおける複数のワード線のうちの一つのワード線上の1行分のデータを意味し、「ページオープン」とは特定のバンクのワード線を選択状態にしたまま1ページ分のデータをセンスアンプ59に保持しておくことを指す。一方、「ページクローズ」とはセンスアンプ59に保持されたデータを消去するプリチャージ動作を行うことでバンク内のワード線を非選択状態にして、このバンクに対するワード線の選択要求があったときどのワード線でもすぐに選択できるようにしておくことを指す。
アクセスの局所性のあるマスターMからアクセス要求があったときは、ページオープンの状態でアクセスを終了しておくと、次回のアクセスにおいても同じページをアクセスする確率が高いため、ページヒットが現れやすくアクセスが高速化される。
一方、アクセスの局所性が低いマスターMからアクセス要求があったときは、ページクローズでアクセスを終了する。このようなマスターMの場合、次回のアクセスは異ページである確率が高いため、ページオープンとしておくと一旦そのページを閉じて別のページを開き直す分時間がかかってしまう。このため、ページヒットの確率が低いと予測された場合(つまりページミスの確率が高いと予測される場合)は、ページクローズでアクセスを終了する。
このようなメモリー制御を実現するために、メモリーコントローラー37は、調停回路61及び制御回路62を備える。調停回路61は、複数のマスターMからのアクセス要求を調停する。制御回路62は、調停回路61によって調停された読出し要求又は書込み要求を受け付けて、その要求に従ってDRAM33を制御する。
制御回路62は、コマンドキュー回路63、メモリーシーケンス制御回路64、制御レジスター回路65、データ制御回路66及びレイテンシー改善回路67を備える。
コマンドキュー回路63は、コマンドのキューを例えばFIFOで格納する回路である。
メモリーシーケンス制御回路64は、アクセス要求に応じたDRAM33に対するシーケンス制御を行う。
制御レジスター回路65には、メモリーシーケンスを実行するうえで必要な設定値等の各種データが格納される。
データ制御回路66は、書込み要求時にマスターMからの書込みデータDwriteをデータバスDBを介してDRAM33内の入出力バッファー56へ出力する転送制御と、読出し要求時にDRAM33内の入出力バッファー56から読出しデータDreadをデータバスDBを介して入力する転送制御とを行う。
レイテンシー改善回路67は、次回のアクセスが同一ページか異ページかを予測して、その予測結果に基づきDRAM33に対する現在(今回)のアクセスをページオープンで終了するかページクローズで終了するか決定し、その決定したページオープン/ページクローズの指示信号をメモリーシーケンス制御回路64に送る。
図5は、メモリーコントローラー37のレイテンシー改善に係る部分の詳細構成を示すブロック図である。なお、図5では、メモリーコントローラー37の構成要素のうち、レイテンシー改善機能に直接は関係ないコマンドキュー回路63、制御レジスター回路65及びデータ制御回路66は省略している。
図5に示すように、マスターM1〜Mnからのアクセス要求は調停回路61が受け付ける。調停回路61が調停したマスターMからのメモリーアクセス情報(モード、アドレスを含む)はメモリーシーケンス制御回路64へ送られる。
レイテンシー改善回路67は、第2判定手段の一例であるアクセスマスター数判定回路(以下、「マスター数判定回路71」と称す)、第1判定手段の一例であるページヒット率判定回路72、及び指示手段の一部を構成するページ制御回路73を備える。
マスター数判定回路71は、特定時間内にアクセスのあったマスター数を判定する。この判定のために、マスター数判定回路71は、第3カウンターの一例であるアクセスマスター数カウンター75、計時用カウンターの一例である特定時間カウンター76、格納手段の一例である有効バンク数レジスター77、及び第2の判定回路の一例である第2判定回路78を備える。
アクセスマスター数カウンター75は、マスターM1〜Mnから調停回路61に対して入力される要求情報から要求元のマスターを識別可能なマスター識別信号を入力し、特定時間カウンター76が計時する特定時間T内にアクセスのあったマスター数(以下、「アクセスマスター数Nm」という)を計数する。ここで、アクセスマスター数カウンター75は、特定時間内で重複するマスターは計数しないので、アクセスマスター数カウンター75には特定時間内にアクセス要求を受け付けた異なるマスター数がアクセスマスター数Nmとして計数される。また、特定時間カウンター76は、アクセスマスター数Nmを計数する期間である特定時間Tを計時する。
この特定時間カウンター76が、例えば特定時間T+1サイクルクロック分の時間を計時する度にアクセスマスター数カウンター75はリセットされ、このリセットと同時に特定時間カウンター76もリセットされて特定時間Tの計時を最初から開始する。特定時間カウンター76は、計時開始時間を所定クロック数(例えば1サイクルクロック)ずつずらしつつ複数の計時カウンターでそれぞれ特定時間Tを計時しており、アクセスマスター数カウンター75は複数の計時カウンターにそれぞれ対応する複数の計数カウンターで複数のアクセスマスター数をそれぞれ計数している。このため、複数の計時カウンターのうち特定時間Tに達したばかりの計時カウンターに対応する計数カウンターが計数したアクセスマスター数は、その直近の特定時間Tにおけるアクセスマスター数Nmを示すことになる。
有効バンク数レジスター77は、設定値の一例である有効バンク数Neを設定するためのレジスターである。ここで、本実施形態では、有効バンク数Neとして、DRAM33中のバンクBiの個数である「8」を採用する(Ne=8)。この有効バンク数レジスター77には、CPU35によるレジスターアクセスによって有効バンク数Neが設定される。本実施形態のDRAM33におけるバンクBiの個数は「8個」なので、CPU35は有効バンク数レジスター77に有効バンク数Neとして「8」を設定する。なお、バンクBiが4個のDRAM33を採用する場合、有効バンク数Neは「4」に設定される。ここで、有効バンク数Neとして、DRAM33のバンク数に等しい値を設定するのは、アクセスマスター数NmがDRAM33のバンク数「8」以下であれば、次回も同一のマスターMがアクセスし、異ページにアクセスするより同一ページにアクセスする確率が高いと推測できるからである。
第2判定回路78は、アクセスマスター数カウンター75が特定時間T内に計数したアクセスマスター数Nmが、有効バンク数Ne以下であるか否かを判定する。このとき、第2判定回路78は、アクセスマスター数カウンター75から特定時間Tに達したばかり計時カウンターに対応する計数カウンターの計数値をアクセスマスター数Nmとして読み込む。第2判定回路78は、N>NeのときにLow、N≦NeのときにHighとなる第2判定信号S2をページ制御回路73へ出力する。
一方、ページヒット率判定回路72は、各バンクBi毎に、今回のアクセスが前回のアクセスと同一ページであったページヒットの発生率を示すページヒット率Rhを判定する。この判定のために、ページヒット率判定回路72は、バンクBi毎に全アクセス数Aiをそれぞれ計数する8個のアクセス数カウンターACi(i=0〜7)と、バンクBi毎にページヒット数Hiをそれぞれ計数する8個のページヒット数カウンターHCi(i=0〜7)と、バンクBi毎のページヒット率をそれぞれ判定する8個の第1判定回路81とを備える。なお、本実施形態では、アクセス数カウンターACiにより第1カウンターの一例が構成され、ページヒット数カウンターHCiにより第2カウンターの一例が構成され、第1判定回路81により第1の判定回路の一例が構成される。
各第1判定回路81は、対応するバンクBiのアクセス数カウンターACiから全アクセス数Aiを入力するとともに、対応するバンクBiのページヒット数カウンターHCiからページヒット数Hiを入力する。そして、各第1判定回路81は、全アクセス数Aiとページヒット数カウンターHCiとに基づきページヒット率Rhi(%)(=Hi/Ai×100(%))を算出し、その算出したページヒット率Rhi(%)が設定値Q(%)以上であるか否かを判定する。各第1判定回路81は、Rhi<QのときにLowになり、Rhi≧QのときにHighになる第1判定信号S1をページ制御回路73に出力する。なお、また、ページヒット率判定回路72は、メモリーアクセス情報を入力する度に、そのうちのアドレス情報からバンクを特定し、特定したバンクに対応するアクセス数カウンターACに「1」を加算する。また、ページヒット率判定回路72は入力したメモリーアクセス情報のうちロウアドレスを格納するレジスター(図示せず)をバンク毎に内蔵する。そして、次回のアクセス要求で入力したメモリーアクセス情報から取得したロウアドレスと、同一バンクに対応するレジスターに格納された前回のロウアドレスとが一致すると、対応するバンクのページヒット数カウンターHCiに「1」を加算する。なお、ページヒット率Rhiの実際の演算は、Rhi=Hi/Aiの比を演算することより行っている。
本実施形態では、設定値Qを50%に設定している。ここで、Q=50(%)に設定しているのは、ページヒット率Rhiが50%以上であれば、次回のアクセスにおいてページミス率以上のページヒット率が確保されると推定できるからである。もちろん、設定値Qは50%に限定されず、50%を超える値(例えば75%)を設定してもよい。ここで、第1判定回路の判定処理は今回のアクセス終了前に終える必要があるため、判定処理速度を高速に行う必要がある。設定値Q=50%であれば、ページヒット率Rhiを「2」で1回除算すればよいが、設定値Q=75%であれば除算回数が増えて判定所要時間が長くなる。さらにその他の設定値(Q>50かつQ≠75)にすると、判定所要時間が長くなって、場合によっては判定の遅れからプリチャージ動作が遅れ、これが原因でDRAM33に対する次回のアクセス動作開始までの待ち時間が比較的長くなる虞がある。このため、ページヒット率を「2」で除算する演算を行う回路構成の場合は、除算回数がなるべく少なく済む設定値Qを設定することが好ましい。
ページ制御回路73は第3判定回路82を備える。第3判定回路82は、マスター数判定回路71からの第2判定信号S2と、ページヒット率判定回路72からの第1判定信号S1とを入力する。そして、ページ制御回路73は、第2判定信号S2が、アクセスマスター数Nmが有効バンク数Ne以下であることを示すHighであり、かつバンクBi毎の各第1判定回路81からの第1判定信号S1が、ページヒット率Rhkが設定値Q(%)以上であることを示すHighであるか否かを判定する。そして、第3判定回路82は、第2判定信号S2がHighである場合、第1判定信号S1がHighであるというページオープン条件が成立したか否かをバンクBi毎に判定する。第3判定回路82がページオープン条件が成立したと判定したバンクBiについては、ページ制御回路73はメモリーシーケンス制御回路64にそのバンクBiを指定してページオープン制御信号Sopenを出力する。一方、第3判定回路82が、前記ページオープン条件が不成立と判定したバンクBiについては、ページ制御回路73はメモリーシーケンス制御回路64にそのバンクBiを指定してページクローズ制御信号Scloseを出力する。
メモリーシーケンス制御回路64は、ページオープン制御信号Sopen又はページクローズ制御信号ScloseをバンクBi毎に入力する。そして、メモリーシーケンス制御回路64は、レイテンシー改善回路67からのバンクBk毎の信号入力が、ページオープン制御信号Sopenであれば、対応するバンクBiを指定してページオープンコマンドを出力する。一方、メモリーシーケンス制御回路64は、レイテンシー改善回路67からのバンクBi毎の信号入力が、ページクローズ制御信号Scloseであれば、対応するバンクBiを指定してページクローズコマンド(プリチャージコマンド)を出力する。
メモリーシーケンス制御回路64から出力されたコマンドは、DRAM33内のコマンドデコーダー50でデコードされてから制御論理回路51に入力される。そして、制御論理回路51は、ページオープンコマンドに基づき指定のバンクBiのセンスアンプ59にページオープンを指令し、ページクローズコマンドに基づき指定のバンクBiのセンスアンプ59にプリチャージを指令する。もちろん、全てのバンクに対応するセンスアンプ59にコマンドを指令するのではなく、現在選択中(活性化状態)にあるバンクに対応するセンスアンプ59のみにページオープン/ページクローズのコマンドを指令する方式を採用することもできる。
図6は、レイテンシー改善回路67が行う処理をフローチャートで示したものである。以下、図4〜図6を用いて、レイテンシー改善回路67によるレイテンシー改善処理を説明する。
まずステップS10では、特定時間T内のアクセスマスター数Nmが有効バンク数Ne以下であるか否かを判定する。この判定は、マスター数判定回路71及びページ制御回路73が行う。ページ制御回路73は、マスター数判定回路71の判定結果に基づき、N≦Neが成立したと判定するとステップS20に進み、N≦Neが不成立(つまりN>Ne)であると判定するとステップS30に進む。
ステップS20では、バンク毎のページヒット率Rhが50%以上であるか否かを判定する。この判定は、ページヒット率判定回路72及びページ制御回路73が行う。ページ制御回路73は、ページヒット率判定回路72の判定結果に基づき、Rh≧50%が成立したと判定するとステップS40に進み、Rh≧50%が不成立(つまりRh<50%)であると判定するとステップS30に進む。このステップS20の判定処理は、本実施形態では、バンクBi毎に行われる。
ステップS30では、対象ページをクローズする。すなわち、ページ制御回路73はバンクBi毎にページクローズ制御信号Scloseをメモリーシーケンス制御回路64に出力する。そして、メモリーシーケンス制御回路64は、ページクローズ制御信号Scloseに基づきバンクBiを指定してプリチャージコマンドを出力する。この結果、DRAM33内では指定のバンクBi毎に対応するセンスアンプ59がプリチャージされる。
一方、ステップS40では、対象ページをオープンに保持する。すなわち、ページ制御回路73はバンクBi毎にページオープン制御信号Sopenを出力する。そして、メモリーシーケンス制御回路64は、ページオープン制御信号Sopenに基づきバンクBiを指定してページオープンコマンドを出力する。この結果、DRAM33内において指定のバンクBiに対応するセンスアンプ59はプリチャージされない。
こうして、特定時間T内のアクセスマスター数Nmが有効バンク数Ne以下であり、かつバンク毎のページヒット率Rhが50%以上であるバンクBiについては、ページオープン状態に保持される。
例えば、同一のマスターMがDRAM33にアクセスするときには同一バンクの同一ページがアクセスされ易い「局所性」があり、このように局所性のある同一のマスターMがアクセスする場合は、上記のアクセスマスター数条件とページヒット率条件が共に成立する。このため、同一のマスターMがアクセスするときには、ページオープン状態に保持される。この結果、同一のマスターMが同一ページにアクセス要求すれば、今回のアクセス終了後直ぐに次回のアクセスを開始できる。このとき、不要なプリチャージ動作が省かれるので、高速にアクセスすることができる。この場合、次回のアクセス要求が異ページへのアクセスである場合もあるが、ページミスによりペナルティーが発生してプリチャージ動作から開始する事態は確率から低いので、平均的にみれば次回のアクセスを高速に行える。
一方、局所性の低いマスターMがアクセスする場合、上記のアクセスマスター数条件とページヒット率条件のうち少なくとも一方が不成立になる。このため、センスアンプ59がプリチャージされてページをクローズして今回のアクセスを終了する。このとき、次回のアクセスが異ページになる確率が高いので、プリチャージ動作を終えている分、次回のアクセス要求を受け付けると、直ぐに異ページのオープンを開始させることができる。このため、この場合も、DRAM33に相対的に高速にアクセスすることができる。
図7は、今回と次回のアクセス間におけるレイテンシー改善の効果を説明する模式タイミングチャートである。図7(a)はページオープンの場合、同図(b)はページクローズの場合である。なお、図7において、「tRP」(Row precharge Time)は、オープンしたページをクローズして別ページをオープンするために待たなければならない時間であり、「tRCD」(RAS-CAS Delay Time)は、ロウアドレスを実行してカラムアドレスを実行するために待たなければならない時間を指す。
アクセスマスター数条件とページヒット率条件の両方が成立した場合、図7(a)に示すページオープンを指示することになる。この場合、今回のアクセス終了から次回のアクセス開始までの待ち時間は、次回のアクセスが同一ページ(ページヒット)であれば「0」、異なるページ(ページミス)であれば「tRP+tRCD」になる。ここで、図7(a)に示すように上記両条件成立時でページオープンを指示するときは局所性が高く、次回のアクセスにおけるページヒットの確率がページミスの確率よりも高いので(Hnext≧0.5)、レイテンシーを改善できる。ここで、次回のアクセスが同一ページになるページヒットの確率をHnextとおくと、待ち時間Twait1の期待値Tk1は次式で表される。
Tk1=(tRP+tRCD)・(1−Hnext) …(1)
ここで、上記両条件成立の場合、次回アクセスが同一ページになる確率Hnextは0.5以上になると予測できるので、待ち時間は短縮される。例えば「tRP」と「tRCD」が共に15ナノ秒と仮定すると、確率Hnext≧0.5のときは、待ち時間Twaitの期待値は15ナノ秒以下になる。
一方、図7(b)に示すように上記両条件不成立であった場合は、局所性が低く、次回のアクセスが異ページになるページミスの確率がページヒットの確率よりも高い(Hnext<0.5)ため、ページクローズを指示する。この場合、図7(b)に示すように、今回のアクセスはプリチャージ動作をして終えるので、次回のアクセスが異ページのときも同一ページのときも共に待ち時間Twait2は、Twait2=tRCDになる。待ち時間Twait2の期待値Tk2は次式で表される。
Tk2=tRCD・Hnext+tRCD・(1−Hnext)=tRCD …(2)
待ち時間の期待値が、Tk1<Tk2となる条件は、確率Hnext>0.5である。このため、本実施形態において、アクセスマスター数条件とページヒット率条件の両条件成立のときに図7(a)に示すようにページオープンを指示し、両条件不成立のときに図7(b)に示すようにページクローズを指示することにより、今回のアクセス終了から次回のアクセス開始までの平均的な待ち時間を効果的に短くできる。この結果、メモリーコントローラー37のDRAM33にアクセスする際のレイテンシーを改善できる。
以上詳述したように、本実施形態では、以下に示す効果を得ることができる。
(1)ページヒット率条件が成立したときにはページオープン状態を保持したままアクセスを終了し、ページヒット率条件が不成立のときは、プリチャージ動作を行ってページをクローズさせてアクセスを終了する。よって、局所性のあるマスターMからのアクセス時には同一ページに早期にアクセスでき、局所性のないマスターMからのアクセス時には異ページに早期にアクセスできる。この結果、ページミスによるペナルティーの発生頻度は低くなり、DRAM33に高速にアクセスすることができる。
(2)アクセスマスター数Nmが設定バンク数Nb以下であるか否かを判定するアクセスマスター数条件の判定に用いる設定値(設定バンク数Nb)として、DRAM33のバンク数である有効バンク数Neを採用したので、ページミスによるペナルティーの発生頻度を低減できる。
(3)アクセスマスター数条件とページヒット率条件が共に成立したときには、ページオープン状態に保持してアクセスを終了し、アクセスマスター数条件とページヒット率条件のうち少なくとも一方が不成立になると、プリチャージ動作を行ってページをクローズさせてアクセスを終了する。よって、局所性のあるマスターMからのアクセス時には同一ページに早期にアクセスでき、局所性のないマスターMからのアクセス時には異ページに早期にアクセスできる。この結果、ページミスによりペナルティーが発生する頻度は低くなり、高速にアクセスすることができる。
(4)バンク毎のページヒット率の設定値を「50%」に設定したので、ページミスによるペナルティーの発生頻度を効果的に低減できる。
(5)判定手段(第1判定手段)の一例であるページヒット率判定回路72は、バンク毎のアクセス数カウンターACiと、バンク毎のページヒット数カウンターHCi、バンク毎の第1判定回路81とを備えた回路構成なので、バンク毎のページヒット率Rhiが設定値Q%以上であるか否かの判定を高速に行うことができる。
(6)第2判定手段の一例であるマスター数判定回路71は、アクセスマスター数カウンター75、特定時間カウンター76、有効バンク数レジスター77及び第2判定回路78を備えた回路構成なので、アクセスマスター数Nmが設定数Nb以下であるか否かの判定を高速に行うことができる。
(7)複合機11によれば、画像データに施すべき画像処理や縦横変換処理時にDRAM33に高速でアクセスできるので、画像処理や縦横変換処理などを高速に行うことができる。よって、複合機11の印刷スループットを向上させることができる。
(第2実施形態)
次に第2の実施形態を図8及び図9を用いて説明する。図8は、メモリー制御システムを含むSOC及び外部メモリーを示す。この第2実施形態では、図8に示すように、複数のマスターM1〜Mnは、インターコネクトの一例であるバスBSを介して接続されている。このバスBSは、複数のマスターM1〜Mnからの要求が重なったときに各要求を調停し、その調停した1つの要求をメモリーコントローラー37に渡す機能を有している。このため、メモリーコントローラー37は要求を受け付けてもどのマスターMからの要求であるかを識別できない。この場合、特定時間T内のアクセスマスター数を計数できないので、メモリーコントローラー37は、マスター数判定回路71を備えていない。すなわち、本実施形態のメモリーコントローラー37は、図5においてマスター数判定回路71が廃止された構成であり、ページヒット率判定回路72及びページ制御回路73を備えている。
メモリーコントローラー37では、ページヒット率判定回路72が、ページヒット率Rhiが設定値Q(本例では50%)以上であるか否かを判定し、バンクBi毎の判定結果が第1判定信号S1としてページ制御回路73に出力される。ページ制御回路73は、バンクBi毎の第1判定信号S1に基づいて、第1判定信号S1がHigh(つまりRh≧50%)のときにはページオープン制御信号Sopenを出力し、第1判定信号S1がLow(つまりRh<50%)のときにはページクローズ制御信号Scloseを出力する。このように前記第1実施形態と同様にバンク毎にページオープン/ページクローズを制御しているが、現在選択中のバンクのみ対象にページオープン/ページクローズを制御してもよい。
図9は、メモリーコントローラー37が行う処理をフローチャートで示したものである。図9に示すように、ステップS110では、バンク毎のページヒット率が50%以上であるか否かを判断する。この判定は、ページヒット率判定回路72が行う。すなわち、第1判定回路81が、バンクBi毎のページヒット数カウンターHC0〜HC7の計数値であるページヒット数Hiと、バンク毎のアクセス数カウンターAC0〜AC7の計数値である全アクセス数Aiとを用いて、バンクBi毎のページヒット率Rhiを演算する。そして、その演算したページヒット率Rhiが設定値Q(本例では50%)以上であるか否かをバンクBi毎に判定する。各第1判定回路81はそれぞれの判定結果を第1判定信号S1としてページ制御回路73に出力する。このとき、バンク毎のページヒット率Rhiが50%以上であれば、ステップS120に進んで、対象ページのオープンを指示する。一方、バンク毎のページヒット率Rhiが50%未満であれば、ステップS130に進んで、対象ページのクローズを指示する。詳しくは、ページ制御回路73は、各第1判定信号S1の信号値に応じてバンク毎にページオープン制御信号Sopen又はページクローズ制御信号Scloseをメモリーシーケンス制御回路64へ出力する。
そして、メモリーシーケンス制御回路64は、ページオープン制御信号Sopen又はページクローズ制御信号Scloseに基づきシーケンス動作する。このシーケンス動作では、ページオープン制御信号Sopenに対応するバンクを指定してDRAM33にページオープンコマンドを送り、ページクローズ制御信号Scloseに対応するバンクを指定してDRAM33にプリチャージコマンド(ページクローズコマンド)を送る。
このように、現在選択中のバンクにおけるページヒット率Rhが50%以上であれば、次回のアクセスで同一ページにアクセスされ易い局所性があるため、ページオープンが指示される。一方、現在選択中のバンクにおけるページヒット率が50%未満であれば、局所性がなく次回のアクセスが異ページになる確率が高いと予測されるため、ページクローズ動作(プリチャージ動作)が指示される。
このように、複数のマスターM1〜Mnとメモリーコントローラー37との間にインターコネクトが介在して、要求元のマスターが識別不能な構成であっても、バンク毎のページヒット率Rhは演算できるので、ページヒット率Rhが設定値Q(例えば50%)以上であるか否かの判定結果により局所性の有無を判定できる。そして、局所性がある場合(Rh≧50%)は、対象ページのオープンを指示し、局所性がない場合(Rh<50%)は、対象ページのクローズを指示できる。よって、複数のマスターM1〜Mnとメモリーコントローラー37間にインターコネクトが介在するメモリー制御システムであっても、メモリーコントローラー37のレイテンシーを改善できる。
なお、上記実施形態は以下のような形態に変更することもできる。
・設定バンク数Nbは、DRAM33を構成する全バンク数(8個又は4個)を指す有効バンク数Neに限定されない。設定バンク数Nbは、例えば1≦Nb<Neを満たす自然数であってもよい。設定バンク数Nbは、有効バンク数Neよりも少ないほど、アクセスマスター数条件を満たしたときに次回のアクセスで同一ページになる確率は一層高まり、一層高いレイテンシー改善効果を期待できる。例えば設定バンク数Nbを有効バンク数Neの1/2以下の自然数に設定したり、さらには「1」を設定してもよい。もちろん、設定バンク数Nbは有効バンク数Ne以下であることが好ましいが、例えば設定バンク数Nbは、Ne<Nb≦1.5・Neの範囲内の自然数でもよい。
・ページヒット率Rhの設定値Qは50%に限定されない。50%より大きな値を設定してもよいし、50%より小さな値を設定してもよい。例えば設定値として、60%、75%を設定してもよいし、40%を設定してもよい。例えばアクセスマスター数Nmの設定バンク数Nbを有効バンク数Neより小さな値に設定した場合は、設定値Qが50%未満でも局所性の有無を適正に判定できる。要するに、アクセスマスター数条件とページヒット率条件の両方で判定する場合は、一方の条件設定を緩くした場合に他方の条件設定をきつくすれば、局所性の有無を適正に判定できる。
・アクセスマスター数Nmの値に応じて、ページヒット率の設定値Qを動的に変化させる構成としてもよい。また、これとは逆に、ページヒット率Rhiの値に応じて、アクセスマスター数判定用の設定バンク数Nbを動的に変化させる構成としてもよい。例えばページヒット率Rhiが50%以上であればNb=Neとし、ページヒット率Rhiが75%以上であればNb=1.5・Neとし、ページヒット率Rhiが25%以上であればNb=0.5・Neとするなどの構成を採用できる。
・ページヒット率は、特定時間におけるページヒット率Rhiとしてもよい。この場合、特定時間は、アクセスマスター数で使用した特定時間Tと同じ時間を設定してもよいし、特定時間Tと異なる時間を設定してもよい。
・全アクセス数Aiに一定の値Ao(但しAoは2以上の自然数)を設定し、直近Ao回のアクセス数におけるページヒット数Hiの比率からページヒット率を求める構成も採用できる。
・ページヒット率Rhiは、ページヒットとページミスのヒストグラムを取り、このヒストグラムから求める構成としてもよい。
メモリー制御システムは、図2及び図8の構成に限定されない。例えばN個のマスターM1〜MnのうちP個(但しP<N)のマスターは、メモリーコントローラー37に対して個々に接続され、Q個(但しQ=N−P)のマスターはメモリーコントローラー37に対して、Q個のマスターからの要求を調停する調停機能を有するバスBSよりなるインターコネクトを介して接続された構成でもよい。この構成のメモリー制御システムにおいても、バンク毎のページヒット率に応じた判定を行うことができる。さらにメモリーコントローラー37に個々に接続されたP個のマスターを対象に特定時間T内のアクセスマスター数を計数し、その計数結果である特定時間内のアクセスマスター数に応じた指示を出す構成でもよい。この場合、N個全てのマスターを対象としている訳ではないので、その分を見込んだ小さめの設定値が好ましい。例えば有効バンク数NeにP/Nを乗じた値付近の設定値が好ましく、一例として[Ne・P/N]以下の設定値が好ましい(但し、上記式における[ ]はガウス記号であり、[X]はXを超えない最大の整数を示す。)。このような構成でも、ページヒット率は判定するので、空間的局所性は反映される。
・予測結果が正しかったか否かその予測の適正度を判定する予測適正度判定手段を設け、予測適性度に応じて予測の外れ度合が大きければ、設定値Qと設定バンク数Nbのうち少なくとも一方をCPU35が予測を当たり易くする方向へシフトさせる構成を採用できる。この構成によれば、設定値を動的に切り替えることで、メモリーコントローラー37のレイテンシーを改善できる。
・今回のアクセスより前の特定時間T内のアクセスマスター数としたが、今回アクセスの要求元のマスターをアクセスマスター数に計数する構成としてもよい。
・ページヒット率に替えて、ページミス率を採用し、ページミス率が設定値以下であるか否かを判断し、ページミス率が設定値以下のときにページオープンを指示し、ページミス率が設定値以下でないときにページクローズを指示する構成とし、間接的にページヒット率が設定値を超えるか否かを判定する構成も採用できる。
・前記各実施形態では、スキャナー機能を備えたカラーインクジェット式のプリンター部14が採用されているが、ワイヤインパクト式記録装置、熱転写式記録装置、電子写真式記録装置等の記録装置を採用してもよい。また、これらの記録装置は、モノクロ記録装置を採用しても良い。また、スキャナー機能を備えない記録装置を採用してもよい。
・前記各実施形態では、記録装置の一例である複合機に適用したが、記録装置にも限定されない。例えばプロジェクター、テレビ、デジタルフォトフレーム、デジタルカメラ、オーディオ機器などの電子機器に広く適用できる。
11…記録装置の一例としての複合機、14…プリンター部、27…記録手段を構成するキャリッジモーター、28…搬送手段の一例である搬送モーター、29…記録手段を構成する印刷ヘッド、33…ダイナミックRAM(DRAM)、35…マスターの一例であるCPU、36…スタティックメモリーコントローラー、37…メモリー制御システムを構成するとともにメモリー制御装置の一例であるダイナミックメモリーコントローラー(メモリーコントローラー)、38…表示駆動回路、39…スキャナー入力回路、40…メモリーカード入出力回路、41…JPEG解凍回路、42…画像処理手段の一例である画像処理回路、43…画像処理手段の一例である縦横変換回路、44…ヘッド制御ユニット、45…モーター駆動回路、50…コマンドデコーダー、51…制御論理回路、55…データ制御回路、56…入出力バッファー、57…ロウデコーダー、58…カラムデコーダー、59…センスアンプ、61…調停回路、62…制御回路、63…コマンドキュー回路、64…指示手段を構成するメモリーシーケンス制御回路、65…制御レジスター回路、66…データ制御回路、67…レイテンシー改善回路、71…第2判定手段の一例であるマスター数判定回路、72…第1判定手段の一例であるページヒット率判定回路、73…指示手段を構成するページ制御回路、75…第3カウンターの一例であるアクセスマスター数カウンター、76…計時用カウンターの一例である特定時間カウンター、77…格納手段の一例である有効バンク数レジスター、78…第2の判定回路の一例である第2判定回路、81…第1の判定回路の一例である第1判定回路、82…第3判定回路、M,M1〜Mn…メモリー制御システムを構成するマスター、B,B0〜B7…バンク、BS…インターコネクトの一例であるバス、HC0〜HC7…第2カウンターの一例であるページヒット数カウンター、AC0〜AC7…第1カウンターの一例であるアクセス数カウンター、Rh,Rhi…ページヒット率、Q…設定値、T…特定時間、Ai…全アクセス数、Hi…ページヒット数、Nm…アクセスマスター数、Nb…設定バンク数、Ne…設定バンク数の一例である有効バンク数、P…媒体の一例である用紙。

Claims (10)

  1. マスターとダイナミックRAMとの間に介在して前記マスターからのアクセス要求に基づいて前記ダイナミックRAMに対するアクセスを制御するメモリー制御装置であって、
    前記ダイナミックRAMにおいてアクセス中の対象バンクのページヒット率が設定値以上であるか否かを判定する判定手段と、
    前記ページヒット率が設定値以上と判定された場合に前記ダイナミックRAMに対してアクセス中の対象ページを保持するページオープンを指示し、前記ページヒット率が設定値未満と判定された場合に前記ダイナミックRAMに対してアクセス中の対象ページを閉じるページクローズを指示する指示手段と、
    を備えたことを特徴とするメモリー制御装置。
  2. 前記判定手段を第1判定手段とし、
    直前の特定時間内にアクセスした異なるマスターの数であるアクセスマスター数が、前記ダイナミックRAMを構成する全バンク数以下の値の設定バンク数以下であるか否かを判定する第2判定手段を更に備え、
    前記指示手段は、前記ページヒット率が設定値以上と判定され、かつ前記アクセスマスター数が前記設定バンク数以下と判定された場合に前記ページオープンを指示し、それ以外の判定結果の場合には前記ページクローズを指示することを特徴とする請求項1に記載のメモリー制御装置。
  3. 前記設定値は50%以上であることを特徴とする請求項1又は2に記載のメモリー制御装置。
  4. 前記ページヒット率で判定する前記判定手段は、全アクセス数を計数する第1カウンターと、ページヒット数を計数する第2カウンターと、前記両カウンターがそれぞれ計数した全アクセス数とページヒット数とに基づいて前記ページヒット率を演算して当該ページヒット率が前記設定値以上であるか否かを判定する第1の判定回路とを備えることを特徴とする請求項1又は2に記載のメモリー制御装置。
  5. 前記第2判定手段は、前記特定時間を計時する計時用カウンターと、前記アクセスマスター数を計数する第3カウンターと、設定バンク数が格納される格納手段と、前記計時用カウンターが計時する前記特定時間内に前記第3カウンターが計数したアクセスマスター数を取得し、当該アクセスマスター数が前記設定バンク数以下であるか否かを判定する第2の判定回路とを備えることを特徴とする請求項2乃至4のうちいずれか一項に記載のメモリー制御装置。
  6. 複数のマスターと、
    請求項1乃至5のいずれか一項に記載の前記メモリー制御装置とを備え、
    前記複数のマスターは前記メモリー制御装置に対して個々に接続されていることを特徴とするメモリー制御システム。
  7. 複数のマスターと、
    請求項1、3乃至4のいずれか一項に記載の前記メモリー制御装置とを備え、
    前記複数のマスターと前記メモリー制御装置との間には前記複数のマスターからの要求を調停可能なインターコネクトが介在することを特徴とするメモリー制御システム。
  8. N個(但しN≧2)のマスターと、
    請求項1乃至5のいずれか一項に記載の前記メモリー制御装置とを備え、
    前記N個のうちP個(但しP<N)のマスターは前記メモリー制御装置に対して個々に接続されており、前記N個のうちQ個(但しQ=N−P)のマスターは前記メモリー制御装置に対して、当該Q個のマスターからの要求を調停可能なインターコネクトを介して接続されていることを特徴とするメモリー制御システム。
  9. 請求項6乃至8のいずれか一項に記載のメモリー制御システムと、
    媒体を搬送する搬送手段と、
    前記搬送手段により搬送される媒体に記録を施す記録手段と、
    前記ダイナミックRAMから読み出した処理前の画像データに画像処理を施して前記記録手段を制御する制御データを生成して当該制御データを前記ダイナミックRAMに格納する画像処理手段とを備え、
    前記画像処理手段を前記マスターのうちの1つとすることを特徴とする記録装置。
  10. マスターとダイナミックRAMとの間に介在するメモリー制御装置が、前記マスターからの要求に基づいて前記ダイナミックRAMに対するデータの読出し及び書込みを制御するメモリー制御方法であって、
    前記ダイナミックRAMにおいて選択中の対象バンクのページヒット率が設定値以上であるか否かを判定する判定ステップと、
    前記ページヒット率が設定値以上と判定された場合に前記ダイナミックRAMに対してオープン中の対象ページを保持するページオープンを指示し、前記ページヒット率が前記設定値未満と判定された場合に前記ダイナミックRAMに対してオープン中の対象ページを閉じるページクローズを指示する指示ステップと、
    を備えたことを特徴とするメモリー制御方法。
JP2010060278A 2010-03-17 2010-03-17 メモリー制御装置、メモリー制御システム、記録装置及びメモリー制御方法 Pending JP2011197707A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010060278A JP2011197707A (ja) 2010-03-17 2010-03-17 メモリー制御装置、メモリー制御システム、記録装置及びメモリー制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010060278A JP2011197707A (ja) 2010-03-17 2010-03-17 メモリー制御装置、メモリー制御システム、記録装置及びメモリー制御方法

Publications (1)

Publication Number Publication Date
JP2011197707A true JP2011197707A (ja) 2011-10-06

Family

ID=44875885

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010060278A Pending JP2011197707A (ja) 2010-03-17 2010-03-17 メモリー制御装置、メモリー制御システム、記録装置及びメモリー制御方法

Country Status (1)

Country Link
JP (1) JP2011197707A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013206474A (ja) * 2012-03-29 2013-10-07 Samsung Electronics Co Ltd メモリ装置及びメモリ装置の動作方法
KR20130111188A (ko) * 2012-03-29 2013-10-10 삼성전자주식회사 메모리 장치 및 메모리 장치의 동작방법
US10768859B1 (en) 2019-04-10 2020-09-08 SK Hynix Inc. History-based memory control system and method

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013206474A (ja) * 2012-03-29 2013-10-07 Samsung Electronics Co Ltd メモリ装置及びメモリ装置の動作方法
KR20130111188A (ko) * 2012-03-29 2013-10-10 삼성전자주식회사 메모리 장치 및 메모리 장치의 동작방법
JP2018152112A (ja) * 2012-03-29 2018-09-27 三星電子株式会社Samsung Electronics Co.,Ltd. メモリ装置及びメモリ装置の動作方法
KR102031952B1 (ko) * 2012-03-29 2019-10-14 삼성전자주식회사 메모리 장치 및 메모리 장치의 동작방법
US10768859B1 (en) 2019-04-10 2020-09-08 SK Hynix Inc. History-based memory control system and method
KR20200119633A (ko) 2019-04-10 2020-10-20 에스케이하이닉스 주식회사 히스토리 기반 메모리 시스템 및 그 제어 방법

Similar Documents

Publication Publication Date Title
US11385832B2 (en) Memory controller and method performed by the memory controller
JP2011197707A (ja) メモリー制御装置、メモリー制御システム、記録装置及びメモリー制御方法
US8392630B2 (en) Information processing apparatus having first DMA controller and second DMA controller wherein selection circuit determines which DMA will perform data transfer based on higher data transfer performance
JP4699858B2 (ja) メモリ装置およびメモリ制御方法
JP5418193B2 (ja) 調停装置、画像処理装置、及び画像形成システム
JP2001014212A (ja) メモリ制御装置及び方法とそれを用いた描画装置及び印刷装置
JP2006343946A (ja) メモリアクセス制御装置及びコンピュータプログラム
JP5233541B2 (ja) メモリ制御回路、電子機器制御装置、および、複合機
JP6233287B2 (ja) メモリーアクセス装置、画像処理装置
US7535792B2 (en) Data transmission control device, and data transmission control method
JP4637693B2 (ja) 画像入力装置
JP4804803B2 (ja) メモリアクセス制御装置及びコンピュータプログラム
US20090276553A1 (en) Controller, hard disk drive and control method
JP5594127B2 (ja) 電子機器、及び画像処理装置
JP7081477B2 (ja) 画像処理装置、画像処理装置の制御方法、およびプログラム
US20080028109A1 (en) Direct memory access control method and direct memory access controller
JP2010205002A (ja) 画像処理装置
JP4633078B2 (ja) カラー画像処理装置および画像メモリアクセス制御方法
JP2020087055A (ja) メモリ制御装置
JPH09319657A (ja) 命令読み込み用バッファを備えたプロセッサ
JP2003016438A (ja) 画像生成装置
JP2010181998A (ja) データ処理装置
JP2011013812A (ja) メモリシステム
JP2004258885A (ja) 画像データ拡大/縮小装置
JPH11115258A (ja) 出力制御装置及び方法