JP4699858B2 - メモリ装置およびメモリ制御方法 - Google Patents

メモリ装置およびメモリ制御方法 Download PDF

Info

Publication number
JP4699858B2
JP4699858B2 JP2005298992A JP2005298992A JP4699858B2 JP 4699858 B2 JP4699858 B2 JP 4699858B2 JP 2005298992 A JP2005298992 A JP 2005298992A JP 2005298992 A JP2005298992 A JP 2005298992A JP 4699858 B2 JP4699858 B2 JP 4699858B2
Authority
JP
Japan
Prior art keywords
write
memory
read
request
buffer
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
JP2005298992A
Other languages
English (en)
Other versions
JP2007108996A (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.)
Sharp Corp
Original Assignee
Sharp 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 Sharp Corp filed Critical Sharp Corp
Priority to JP2005298992A priority Critical patent/JP4699858B2/ja
Publication of JP2007108996A publication Critical patent/JP2007108996A/ja
Application granted granted Critical
Publication of JP4699858B2 publication Critical patent/JP4699858B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、リード要求またはライト要求を制御するメモリ装置およびメモリ制御方法に関し、より詳しくは、リード要求またはライト要求のピークを管理して、ピーク超過を解消するメモリ装置およびメモリ制御方法に関する。
パーソナルコンピュータ(以下、パソコン)やデジタル複写機(いわゆる、MFP(Multi Function Peripheral))を初めとして、多くの電子機器は、記憶手段としてSDRAM(Synchronous Dynamic RAM)、高速アクセスが可能なDDR−SDRAM(Double Data Rate SDRAM)のようなDRAMおよびSRAMやフラッシュメモリを使用する。これらメモリは、仕様、性能によってリード要求またはライト要求の帯域が決まっており、その帯域以上にリード要求またはライト要求が出力されると、必要な時間内に処理することができない。このためメモリは、その前段に備えられるバッファの容量を大きくして、ライト要求が一時に大量に発生しないように吸収するか、リード要求が大量に発生しないようリード要求を抑えなければならない。しかし、ライト要求対策のためにバッファ容量を大きくすることは、大容量バッファを必要とし、望ましくない。またリード対策のためにリード要求を抑える場合は、リード要求を発生するモジュールの動作を制限することになり、望ましくない。
DDR−SDRAMのメモリ制御装置が、例えば特許文献1に開示されている。
特許文献1は、複数のDDR−SDRAMを制御するメモリ制御部が、読出しDMAコントローラと、書込みDMAコントローラと、セルフリフレッシュ制御部と、これらからの要求に対するアービトレーションを行うメモリアービタとを有し、メモリアービタは読出しDMAコントローラ及び書込みDMAコントローラが複数の要求信号を発した場合、それらを調停して、それぞれの要求を満たすように制御するものである。更にこの特許文献1は、DDR−SDRAMが省エネルギーモードから復帰する場合のDMA転送を迅速にするために、読出しDMAコントローラから次回アクセス予定の次回アドレスを出力して、メモリアービタに入力することにより、次回アドレスされる対象メモリに対してはセルフリフレッシュを実行せず、それ以外の対象外メモリセルに対してのみセルフリフレッシュを実行する技術を開示している。
また、VCSDRAM(virtual channel synchronous DRAM)の制御方法が特許文献2に開示されている。特許文献2は、VCSDRAMが、内部に複数の高速レジスタ(バーチャルチャネル、「チャネル」と言う)を持ち、メモリ外部からのリード・ライト動作はフォアグランド処理としてチャネルとの間で直接行い、一方、メモリセルーチャネル間のデータ転送やメモリセルのプリチャージ、リフレッシュなどのメモリの内部動作はバックグランド処理として行うことにより、フォアグランド処理とバックグランド処理とを並行して独立した制御を可能にする技術を開示している。更に特許文献2では、フォアグランド動作とバックグランド動作を分離し、バックグランド動作発生時には優先的にバックグランド動作を実施させることにより、コマンド実行順序の最適化が実施され、VCSDRAMの転送レートを低下させないようにする技術を示している。
また特許文献3は、メモリとSCSIインターフェース間の処理速度に比べ、メモリと光磁気ディスク間の処理速度が遅いため、記録データ量がメモリの容量を超過したとき、予備のメモリに超過データを一時的に蓄え、その後の空き時間にメモリに転送する技術を開示している。
特開2004−102808号公報 特開2002−116950号公報 特開平07−295759号公報
特許文献1によれば、メモリアービタが読出しDMAコントローラと書込みDMAコントローラの複数の要求をそれぞれ満たすように調停を行い、省エネルギーモードから復帰する場合に、次回アドレスされる対象メモリに対してはセルフリフレッシュを実行せず、それ以外の対象外メモリセルに対してのみセルフリフレッシュを実行することによりDMA転送を迅速に行うことができる。また特許文献2によれば、フォアグランド動作とバックグランド動作を分離し、バックグランド動作発生時には優先的にバックグランド動作を実施させることにより、コマンド実行順序の最適化が実施され、VCSDRAMの転送レートを低下させないようにすることができる。しかし、これら特許文献1及び2は、要求信号がメモリ帯域以上になった場合の処理について説明がない。
また特許文献3では、記録データ量がメモリの容量を超過したとき、予備のメモリに超過データを一時的に蓄え、その後の空き時間にメモリに転送するが、データ転送速度の遅い光磁気ディスクを対象とする技術である。
本発明は、リード要求またはライト要求のピークを管理し、ピーク超過を解消するメモリ装置およびメモリ制御方法を提供することを目的とするものである。またこのようにピークを管理し、ピーク超過を解消するために、安全にリード要求またはライト要求を処理するメモリ装置およびメモリ制御方法を提供することを目的とするものである。
本発明のメモリ装置は、メモリと、ライト要求またはリード要求を出力するモジュールと、前記メモリを制御するメモリコントローラと、バッファとからなり、前記メモリコントローラは、前記モジュールのリード要求またはライト要求を蓄えるキューと、前記キューに蓄えられたリード要求またはライト要求が予め設定したピーク値を超過するか否かを監視するピーク管理部と、前記ピーク管理部が前記超過を検出しない場合は、前記ライト要求またはリード要求に対するアービトレーションを行い、前記ピーク管理部が前記超過を検出した場合は、前記キューに蓄えられたライト要求に基づいてライトデータを前記バッファに書き込み処理させるアビ−タとを備えることにより、前記課題を解決する。
前記モジュールはライト要求を出力するライトモジュールと、リード要求を出力するリードモジュールを備え、前記ピーク管理部は前記ライトモジュールが出力するライト要求と前記リードモジュールが出力するリード要求に対応して、それぞれ予めピーク値を設定するピーク算出部を備えることが望ましい。
前記ピーク管理部は、更に前記ライトモジュールが出力するライト要求とリードモジュールが出力するリード要求の合計が、予め設定したピーク値を超過するか否かを監視するメモリ帯域ピーク算出部を備えることが望ましい。
前記ライト要求に基づいてライトデータをバッファに書き込んだライトデータのアドレスと、メモリに書き込むときのアドレスを関連付けて記憶する変換テーブルを更に備えることが望ましい。
前記アービタは、前記キューに蓄えられた最先のライト要求に基づいてライトデータを前記バッファに書き込み処理させることが望ましい。また前記アビ−タは、前記ピーク管理部が前記超過を検出しなくなるまでライト要求に基づいてライトデータをバッファに書き込み処理させることが望ましい。また前記アービタは、ライト要求に基づいてライトデータを前記バッファに書き込み処理させるのと並行して、他のリード要求またはライト要求を処理させることが望ましい。また前記アービタは、リード要求を受けたとき、前記変換テーブルを参照して、リードすべきデータが前記バッファにある場合、前記バッファからデータを読み出し処理させることが望ましい。また前記アービタは、前記変換テーブルを参照して、ライトすべきライトデータが前記バッファにある場合、前記ライトデータを前記メモリに書き込み処理させ、前記バッファ上のライトデータを消去処理させることが望ましい。
前記ピーク管理部が前記超過を検出しないとき、前記アービタは前記バッファに記憶されているライトデータを前記メモリに転送処理させることが望ましい。
前記バッファからメモリに転送後、前記変換テーブルに記憶したアドレスデータを消去することが望ましい。
更に、本発明は別の観点によれば、メモリと、ライト要求またはリード要求を出力するモジュールと、前記メモリを制御するメモリコントローラと、バッファを備えるメモリ装置の制御方法であって、前記リード要求またはライト要求を蓄えるステップと、前記蓄えられたリード要求またはライト要求が、予め設定したピーク値を超過するか否かを監視するピーク管理ステップと、前記ピーク管理ステップで、前記ピーク管理部が前記超過を検出しない場合は、前記ライト要求またはリード要求に対するアービトレーションを行い、前記超過を検出した場合に、前記蓄えられたライト要求に基づいてライトデータを前記バッファに書き込み処理させる書込みステップとを備え、前記課題を解決する。
本発明のメモリ制御装置は、キューに蓄えられたリード要求またはライト要求が予め設定したピーク値を超過するか否かを監視するピーク管理部と、このピーク管理部が前記超過を検出した場合に、キューに蓄えられたライト要求に基づいてライトデータをバッファに書き込み処理させるアビ−タを備えるので、予め設定したピーク値の超過を解消することができる。これにより、ピーク値を超過するリード要求またはライト要求は、安全にキューに保存することができ、データが破壊されることがない。
また本発明のメモリ装置は、ライト要求を出力するライトモジュールと、リード要求を出力するリードモジュールを備え、前記ライトモジュールが出力するライト要求と前記リードモジュールが出力するリード要求に対応して、それぞれ予めピーク値を設定するピーク算出部を備えるので、ライトモジュールまたはリードモジュールごとに、ピーク値の超過を監視することができる。更に前記ライトモジュールが出力するライト要求とリードモジュールが出力するリード要求の合計が、予め設定したピーク値を超過するか否かを監視するメモリ帯域ピーク算出部を備えるので、メモリ帯域の超過を解消することができる。
また本発明のメモリ装置は、ライト要求に基づいてライトデータをバッファに書き込んだアドレスと、前記メモリに書き込むときのアドレスを関連付けて記憶する変換テーブルを更に備えるので、バッファに書き込んだライトデータをメモリの本来のアドレスに転送する場合、及びメモリに転送する前にそのアドレスのリード要求があった場合に備えることができる。
また本発明のメモリ装置は、アービタがキューに蓄えられた最先のライト要求に基づいてライトデータを前記バッファに書き込み処理させるので、処理が簡単になる。
また本発明のメモリ装置は、ピーク値の超過を検出しなくなるまでアービタがライト要求に基づいてライトデータをバッファに書き込み処理させるので、確実にピーク超過を解消することができる。またアービタがライト要求に基づいてライトデータを前記バッファに書き込み処理させるのと並行して、他のリード要求またはライト要求を処理させるので、安全にデータを処理することができる。
また本発明のメモリ装置は、アービタがリード要求を受けたとき、変換テーブルを参照して、リードすべきデータが前記バッファにある場合、前記バッファからデータを読み出し処理させるので、必要なデータを素早く読み出すことができる。
また本発明のメモリ装置は、アービタが変換テーブルを参照して、ライトすべきライトでーたがバッファにある場合、ライトデータをメモリに書き込み処理させ、前記バッファ上のライトデータを消去処理させるので、バッファの空き容量を確保することができる。
また本発明のメモリ装置は、前記ピーク管理部が前記超過を検出しないたとき、バッファに記憶されているライトデータをメモリに転送処理させるので、またバッファからメモリに転送後、前記変換テーブルに記憶したアドレスデータを消去するので、次にピークを超過した場合に備えて、バッファ及び変換テーブルの空き容量を確保することができる。
本発明のメモリ装置は、パソコン、デジタル複写機、プリンタ、ファクシミリのような画像形成装置、その他電子機器に使用される書換え可能のメモリ装置およびメモリ制御方法である。
本発明のメモリ装置は、図1に示すように、メモリ1と、メモリコントローラ2と、ライトモジュール3と、リードモジュール4と、ピーク管理部5と、バッファ6と、アドレス保存部7からなる。
上記メモリ1は、例えばSDRAMや高速アクセスが可能なDDR−SDRAMのようなDRAMおよびSRAMやフラッシュメモリ、あるいはDIMM(Dual Inline Memory Module)である。図1は1個のDDR−SDRAMを示しているが、SRAMやフラッシュメモリであってもよい。また1個以上何個備えていても構わない。
メモリコントローラ2は、ライトモジュール3と、リードモジュール4にそれぞれ対応して、リード要求またはライト要求を蓄積するキュー11、12を備える。図1ではライトモジュール3が2個、リードモジュール4が2個であるので、キュー11、12はこれに対応して計4個備えている。キューは先に入力したデータを先に出力するデータ構造である。キュー11、12がライト要求またはリード要求を蓄える数は、各ライトモジュール3、各リードモジュール4が発生するライト要求またはリード要求の数に対応させる。つまり、要求数の多い、または頻度の多い、または速度の速いライトモジュール3またはリードモジュール4に対しては数多くのライト要求またはリード要求を蓄えられるキューを使用する。逆に要求数の少ない、または頻度の少ない、または速度の遅いライトモジュール3、リードモジュール4対しては数少ないライト要求またはリード要求を蓄えられるキューを使用するとよい。図1ではキューを明示するため小さい箱を積み重ねた模式的構造で示す。キュー11aはライトモジュール3aに対して備えられ、箱を6個有する。キュー11bはライトモジュール3bに対して備えられ、箱を4個有する。キュー12aはリードモジュール4aに対応し5個、キュー12bはリードモジュール4bに対応し5個備える。勿論、経済的な問題がないのであれば、最大の要求数を発生するライトモジュール3またはリードモジュール4に対応して、全部のライトモジュール3またはリードモジュール4に同数のキューを備えても構わない。
またメモリコントローラ2はアビ−タ13を備え、ライトモジュール3、リードモジュール4からのそれぞれの要求信号がある場合に、それぞれの要求に対するアービトレーションを行い、要求信号を出力したライトモジュール3またはリードモジュール4に応答信号(ACK)を出力する。ここで、アービトレーションとは要求信号が複数ある場合に、それらを調停して順番を決め、メモリ1またはバッファ6への書き込みを制御することにより、それぞれの要求を満たして行くことを言う。
ライトモジュール3、リードモジュール4は、DMAC(Direct memory Access Controller)よりなり、パソコン、デジタル複写機、プリンタ、スキャナ、ファクシミリ、画像形成装置、その他電子機器を構成するメモリ装置周辺からのライト要求、リード要求を受け、メモリ1にデータとアドレスの出し入れをする。例えば、パソコンあるいはスキャナからライト要求を受け、メモリ1にデータとアドレスを書き込む。またパソコンあるいは複写機からリード要求を受け、メモリ1からデータを読み出してレーザスキャンニングユニットを駆動し感光体上に画像を形成する。この図1では、ライトモジュール3と、リードモジュール4を2個ずつ示しているが、1個でもそれ以上でも構わない。ライトモジュール3、リードモジュール4は、書き込みまたは読み出しの前に、書き込み要求または読み出し要求を出力する。
ピーク管理部5は、各キュー11、12に蓄えられたリード要求の数またはライト要求の数がそれぞれのピーク設定値を超過したか否かを監視する。またリード要求の数とライト要求の数の合計数がメモリ帯域のピーク設定値を超過したか否かを監視する。ピーク管理部5は、図1ではメモリコントローラ2の外に描いているが、メモリコントローラ5の内部に備えられていてもよい。図2にピーク管理部5の構成図を示すように、ピーク管理部5は、各キュー11、各キュー12に対応して、ピーク算出部14、15を備える。図1ではキュー11が2個、キュー12が2個であるので、ピーク算出部14、15もそれぞれ2個備える。またリード要求数とライト要求数の合計数がメモリ帯域のピーク設定値を超過したか否かを監視するため、メモリ帯域ピーク算出部16を備える。図2ではライトモジュール14aのライト要求数をクロック数に換算して、そのクラック数がピーク設定値以下の場合を示している。またリードモジュール15aのリード要求数をクロック数に換算して、そのクロック数がピーク設定値を超過している場合を示している。またメモリ帯域ピーク算出部16はピーク設定値以下である場合を示している。
ここで、ピーク算出部14、15および16は、リード要求数またはライト要求数をそのままパラメータとしてもよいし、メモリ1で要求するデータ転送に使用されるクロック数に換算してもよい。本発明の説明では、リード要求数またはライト要求数をそのままパラメータとする場合、およびメモリ1で要求するデータ転送に使用されるクロック数に換算したパラメータを使用する場合を含めて、リード要求数またはライト要求数として説明する。
ライト要求数またはリード要求数と、クロック数のパラメータ換算は、例えば次のようにして行われる。
メモリ1が266MHzで1ミリ秒間のクロック数換算を行う場合を説明する。
1ミリ秒間のクロック数 Allclk=266028
1ミリ秒間のリフレッシュクロック数 Ref=2176
1ライトコマンドのクロック数 WC=18
1リードコマンドのクロック数 RC=12
ライトコマンドの回数 WCN=R/W要求で決まる
ライトの平均バースト数 WB=32
リードコマンドの回数 RCN=R/W要求で決まる
ライトの平均バースト数 RB=32
とすると、
Allclk−Ref−(WC+WB)×WCN−(RC+RB)×RCN<0・・・・・(1)
上記(1)式のとき、ピーク値を検出する。
バッファ6は、SRAM(Static RAM)のような高速動作メモリよりなり、メモリコントローラ2に対して1個備えられ、ピーク対応として使用される。したがって、キュー11a〜12bのいずれか1つがピーク超過した場合または合計の要求数がピーク超過した場合、共通に使用される。SRAMの外にDRAMやフラッシュメモリも使用することができる。バッファ6の記憶容量は大きいほど好ましく、また動作速度は速いほど好ましいが、このメモリ装置において、ピーク時にオーバーフローする最大ライト要求数、最大リード要求数を勘案して決めればよい。特に複写機とスキャナとプリンタを備えるデジタル複合機やパソコンからの印字データ、スキャナで読み込んだデータは、データ量が多く、待機させることができないので、その頻度、印字データ量やスキャナの読み込み速度に応じて決めるとよく、以下の実施例の説明で明らかになるように少なくとも新たに追加されるライト要求またはリード要求の発生速度よりも速い動作速度が必要である。
アドレス保存部7は、バッファ6にデータを格納した場合にそのアドレスを格納するメモリである。アドレス保存部7もSRAMにより構成するのが好ましいが、DRAMやフラッシュメモリも使用することができる。アドレス保存部7は、バッファ6に書き込んだライトデータのアドレスと、ライトデータをメモリ1に書き込むときのアドレスと、データサイズを関連付けて記憶する。この場合に好ましくはテーブルを作成するのが好ましい。図1では、バッファ6とアドレス保存部7は、別のメモリとして示しているが、一体的であってもよい。またバッファ6に格納するデータと、アドレス保存部7のテーブルは、明示的には分離して示すが、データとテーブルは連続的であってもかまわない。
本発明のメモリ装置は以上のように構成され、次のように動作する。
ライトモジュール3a、3bは、例えばデジタル複写機、スキャナまたはパソコンのような外部機器よりライト要求信号を受ける。またリードモジュール4a、4bはデジタル複写機、パソコンのような外部機器よりリード要求信号を受ける。このライト要求信号またはリード要求信号はメモリコントローラ2に出力され、各キュー11a、11b、12a、12bに格納される。そして、各リード要求信号またはライト要求信号は、アービタ13によりアービトレーションが行われる。つまり各リード要求信号またはライト要求信号は、衝突しないようにアービタ13により調停され、リード要求信号により要求されたアドレスのデータをメモリ1から読み出し処理をさせる。またはライト要求信号により要求されたアドレスにデータを書き込み処理をさせる。
ここで、ピーク管理部5は各キューに予め設定したピーク値を超過しないか、各ピーク算出部14a〜15bが監視する。また各キューの合計要求数がメモリ帯域を超過しないか、メモリ帯域ピーク算出部16が監視する。各キューの要求数または合計要求数がピーク値を超過しない場合は、アービタ13がリード要求信号またはライト要求信号を調停することにより、読み出し処理または書き込み処理が順次実施される。
以下には、本発明のメモリ装置の動作を、第1にリードモジュールのリード要求がピーク設定値を超過した場合、その超過したリード要求を優先的に処理する場合、第2にライトモジュール3aのライト要求がピーク設定値を超過した場合、その超過したライト要求をキューに蓄え、ライトデータをバッファに書き込む場合、第3にメモリ帯域のピークが設定値を超過した場合、第4にピーク超過の解消後、バッファからメモリへデータを移動させる場合について順次説明する。
図3は、第1のリードモジュール4aのリード要求がピーク設定値を超過した場合を説明する図である。リードモジュール4bのリード要求がピーク設定値を超過した場合も同様に動作する。
リードモジュール4aが外部機器よりリード要求信号を受け、そのリード要求信号をメモリコントローラ2に出力すると、アービタ13が調停してメモリ1からリード要求信号により指定されたアドレスのデータを読み出す。
ここで、キュー12aはリード要求信号を一時的に蓄え、そのリード要求数が予め設定したピーク値を超過したか否かをピーク管理部5のピーク算出部15aが監視する。超過しない場合は、アービタ13が調停することにより、必要なデータがメモリ1から読み出される。しかし、キュー12aに蓄えられたリード要求数が予め設定したピーク値より超過したことを、ピーク算出部15aが検出した場合、そのリード要求の実行される時間を早める必要がある。そのために、次のような手順によりリード要求を優先させる。
まず、ピーク管理部5のピーク算出部15aが予め定めたピーク値よりキュー12aに蓄えられたリード要求数の超過を検出すると、アービタはキュー11a〜12bの一番処理順の早い要求順のデータをバッファ6の空いている部分に格納させる。この場合、図3に示すようにキュー11aに処理順1があり、キュー11bに処理順2があり、キュー12aに処理順3と処理順5があり、キュー12bに処理順4がある。従って、キュー11aにあるライト要求が処理順1であり、一番早い処理順であるので、そのライト要求のデータをバッファ6の空いている部分に格納させる。またそのライト要求のメモリ1でのアドレスと、バッファ6のアドレスと、データサイズを、アドレス保存部7にテーブルとして格納する。例えば、図4に示すように、1列目にメモリ1のアドレスを格納する。2列目にはバッファ6のアドレスを格納する。さらに3列目にはデータサイズを格納する。このテーブルにおいて、行方向が1つのライト要求に対応し、メモリ1のアドレスと、バッファ6のアドレスを対応付け、アドレス変換を可能にする。
このようにして、処理順が一番早いライト要求に基づいてライトデータをバッファ6に格納することにより、実質的にメモリ1へのアクセスが減少したことになる。ここで、リードモジュール4aのリード要求の処理順3を、処理順1にアクセス順を置き換える。 その結果、処理順3のリード要求が優先され、1番に実行されることになる。
この説明では、一番処理順が早いライト要求のライトデータをバッファ6に格納したが、バッファ6に格納するライトデータは一番遅いライトデータであってもよく、またデータサイズの大きい順であってもよい。しかし上記説明のように、一番処理順の早いライト要求のライトデータをバッファに格納する場合は、キュー11aに蓄えられた順番にバッファ6へ転送すればよいので、処理が簡単である。
このように本発明のメモリ装置は、リード要求をライト要求に入れ替えるだけで、一部の入れ替わりを除くと、全体の処理順序には影響なく、ピーク超過を発生しているリードモジュールに対して、ピーク解消を行うことができる。この結果、ピーク値を超過したリード要求は、安全にキューに保存することができる。これによりピーク値の超過を実質的に解消することができ、データが破壊されることがない。
次に、リードモジュール4aのリード動作について説明する。
初めに、リードモジュール4aより発せられたリード要求信号のアドレスが、アドレス保存部7に存在するか否かアドレスの調査を行う。リード要求信号のアドレスがアドレス保存部7に存在しない場合は、通常のメモリ1の読み出し動作を実行する。図5に示すように、リード要求信号のアドレスがアドレス保存部7に存在する場合は、バッファ6の読み出し動作を実行する。ここでは、バッファ6に格納しているデータおよびアドレス保存部7に格納しているアドレス、サイズのテーブルはそのまま保存しておく。この場合は、メモリ1の帯域を使用しないので、帯域に余裕を生じさせることができる。
もし、リード要求信号のアドレスがメモリ1と、アドレス保存部7に分散して格納されている場合は、図5(a)に示すようにメモリ1とバッファ6からデータを読み出して、それらを合成して出力する。例えば、リード要求が、アドレス50番地と51番地のデータを要求している場合に、アドレス50のデータはメモリ1に存在し、アドレス51番地のデータがバッファ6に存在するときは、アドレス50番地のデータはメモリ1から読み出し、アドレス51番地のデータはバッファ6から読み出す。そして、この両者のデータを合成してリードモジュール4aに出力する。
この場合のメモリ1の空間的イメージ図を図5(b)に示す。図5(b)の四角い点線はメモリ1の空間的な配置図を示し、アドレス50番地と、アドレス51番地がこの空間に存在する様子を示している。このとき、バッファ6に格納しているデータおよびアドレス保存部7のテーブルに格納しているアドレス、サイズはそのまま保存しておく。
この説明はリード要求のアドレスが2つであるが、2以上のアドレスがメモリ1とバッファ6に分散している場合も同様にして実行することができる。
このようにして、本発明ではバッファ6からメモリ1に転送する前にリード要求があった場合、バッファ6に格納されているデータを活用して、リード要求に素早く対応することができる。
図6は、第2のライトモジュール3aのライト要求がピーク設定値を超過した場合を説明する図である。ライトモジュール3bのライト要求がピーク設定値を超過した場合も同様に動作する。
ライトモジュール3aが外部機器よりライト要求信号を受け、そのライト要求信号をメモリコントローラ2に出力すると、アービタ13が調停してメモリ1へライト要求信号により指定されたアドレスにデータを書き込み処理をさせる。
ここで、キュー11aはライト要求を一時的に蓄え、そのライト要求数が予め設定したピーク値を超過したか否かをピーク管理部5のピーク算出部14aが監視する。超過しない場合は、アービタ13が調停することにより、メモリ1にデータを書き込む。しかしもし、キュー11aに蓄えられたライト要求数が予め設定したピーク値より超過したことを、ピーク算出部14aが検出した場合、ピーク値の超過を解消する必要がある。そのために、次のような手順により一番早い処理順のデータを一時的にバッファ6へデータを格納し、ピーク値の超過を解消する。
まず、ピーク算出部14aがキュー11aに蓄えられたライト要求の数が設定されたピーク値より超過したことを検出すると、キュー11aの一番処理順の早いデータをバッファ6の空いている部分に格納する。この場合、キュー11aがピーク値を超過しているので、キュー11aに蓄えられているライト要求を少なくしなければならない。図6に示すようにキュー11aには処理順2と処理順5のライト要求があるので、一番前にある処理順2のライト要求のデータをバッファ6の空いている部分に格納する。またそのライト要求のメモリ1でのアドレスと、バッファ6のアドレスと、データサイズをアドレス保存部7に格納する。図7はアドレス保存部7に格納されるテーブルを示し、図4に示したテーブルと同様のフォーマットで、1列目にメモリ1のアドレス、2列目にバッファ6のアドレス、3列目にデータサイズを格納する。行方向が1つのライト要求を示す。
このようにして、キュー11aの一番処理順の早いライト要求(処理順2)のデータをバッファ6に格納して、書き込み済みとすることにより、実質的にメモリ1へのアクセスを減少させる。これにより、ライトモジュール3aに加えられたライト要求をキュー11aに追加することができる。もし処理順2のリード要求をバッファ6に格納するだけでは、まだピーク算出部14aが超過を検出する場合は、キュー11aの次のライト要求である処理順5のデータをバッファ6に格納して、ピークを解消する。
次に、ライトモジュール3aのライト動作について説明する。
ライトモジュール3aより出力されたライト要求信号のアドレスが、アドレス保存部7に存在するか否かアドレスの比較を行う。ライト要求信号のアドレスがアドレス保存部7に存在しない場合は、通常のメモリ1の書き込み処理を実行する。しかしライト要求信号のアドレスがアドレス保存部7に存在する場合は、メモリ1に書き込み処理を実行するとともに、バッファ6に格納されているデータと、アドレス保存部7に格納されているそのアドレスおよびデータサイズを消去する。これにより、古いデータを消去する。
もし、ライト要求信号のアドレスの一部がアドレス保存部7に存在し、他の一部がアドレス保存部7に存在しない場合は、ライト要求されたデータをメモリ1に書き込む。同時に重複している部分をメモリ1に移動済みとするために、バッファ6に格納されているデータを修正し、アドレス保存部7アドレスとデータサイズを保存する。
図8は、第3のメモリ帯域のピークが設定値を超過した場合を説明する図である。
ピーク管理部5は、キュー11a、11b、12aおよび12bの各キュー数を合計するメモリ帯域ピーク算出部16を備える。もしメモリ帯域ピーク算出部16が予め設定したピーク値より超過したことを検出した場合、次のような手順により一番処理順の早いデータを一時的にバッファ6へデータを格納し、ピーク値の超過を解消する。
まず、ピーク管理部5のメモリ帯域ピーク算出部16がピーク超過を検出したとき、キュー11a〜12bの一番処理順の早いデータをバッファ6の空いている部分に格納する。この場合、図8に示すようにキュー11aに処理順1があり、キュー11bに処理順4があり、キュー12aに処理順2があり、キュー12bに処理順3がある。従って、処理順1が一番早い処理順であり、そのライト要求のデータをバッファ6の空いている部分に格納する。またそのライト要求のメモリ1でのアドレスと、バッファ6のアドレスを、アドレス保存部7に格納する。アドレス保存部7に格納するフォーマットは、図4、図6と同様のテーブルであるので、説明を省略する。
このようにして、一番処理順の早いライト要求(処理順1)のデータをバッファ6に格納することにより、実質的にメモリ1へのアクセスを減少させる。これにより、メモリ帯域のピーク超過を解消することができる。もし処理順1のライト要求のデータをバッファ6に格納するだけでは、まだメモリ帯域ピーク算出部16が超過を検出する場合は、キュー11bにある処理順4のライト要求のデータをバッファ6に格納して、ピークを解消する。
図9は、以上に説明したようにしてピーク超過を解消した後、バッファ6からメモリ1へデータを転送する場合を説明する図である。
ピーク管理部5は、キュー11a、11b、12aおよび12bの各キューの数が予め設定したピーク値を超過するか否か監視するピーク算出部14a〜15bと、キュー11a、11b、12aおよび12bの各キュー数を合計するメモリ帯域ピーク算出部16を備える。これら全てのピーク算出部14a〜15bと16がピーク値の超過を検出しない場合、アービタ13はバッファ6に格納されているデータをメモリ1に移動させるため、メモリ1に書き込み処理をさせる。
ここで、図10に示すように、バッファ6からメモリ1へ移動する場合に、メモリ1へ移動させるデータ量を加えても予め設定されているピーク値を超過しないように、転送時のピーク値を設定するのが好ましい。図10はライト要求数とリード要求数の合計をクロック数に換算して、そのクロック数がピーク設定値以下の場合を示しているが、ライト要求数とリード要求数の合計数によってピーク値を監視してもよい。
以上のように、バッファ6からメモリ1へデータ移動後、バッファ6のそのデータを消去するとともに、アドレス保存部7のそのアドレスおよびデータサイズを消去する。これにより、次にピークを超過した場合に備えて、バッファ6の空き容量を確保する。
メモリ装置の構成図を示す。 ピーク管理部の構成図を示す。 ピークモジュールがリードモジュールである場合を説明するメモリ装置の構成図を示す。 アドレス保存部に格納されるテーブルを示す。 ピークモジュールがリードモジュールである場合に、データを読み出す場合の動作説明図を示す。 ピークモジュールがライトモジュールである場合を説明するメモリ装置の構成図を示す。 アドレス保存部に格納されるテーブルを示す。 メモリ帯域がピーク値を超過した場合の説明図を示す。 バッファからメモリへデータ移動させる場合を説明するメモリ装置の構成図を示す。 バッファからメモリへデータ移動させる場合を説明するピーク管理部の構成図を示す。
符号の説明
1 メモリ
2 メモリコントロール
3 ライトモジュール
4 リードモジュール
5 ピーク管理部
6 バッファ
7 アドレス収納部
11、12 キュー
13 アービタ
14,15 ピーク算出部
16 メモリ帯域ピーク算出部

Claims (12)

  1. メモリと、ライト要求またはリード要求を出力するモジュールと、前記メモリを制御するメモリコントローラと、バッファとからなり、
    前記メモリコントローラは、前記モジュールのリード要求またはライト要求を蓄えるキューと、前記キューに蓄えられたリード要求またはライト要求が予め設定したピーク値を超過するか否かを監視するピーク管理部と、前記ピーク管理部が前記超過を検出しない場合は、前記ライト要求またはリード要求に対するアービトレーションを行い、前記ピーク管理部が前記超過を検出した場合は、前記キューに蓄えられたライト要求に基づいてライトデータを前記バッファに書き込み処理させるアビ−タと
    を備えることを特徴とするメモリ装置。
  2. 前記モジュールはライト要求を出力するライトモジュールと、リード要求を出力するリードモジュールを備え、前記ピーク管理部は前記ライトモジュールが出力するライト要求と前記リードモジュールが出力するリード要求に対応して、それぞれ予めピーク値を設定するピーク算出部を備えることを特徴とする請求項1に記載のメモリ装置。
  3. 前記ピーク管理部は、更に前記ライトモジュールが出力するライト要求とリードモジュールが出力するリード要求の合計が、予め設定したピーク値を超過するか否かを監視するメモリ帯域ピーク算出部を備えることを特徴とする請求項1または2に記載のメモリ装置。
  4. 前記ライト要求に基づいてライトデータをバッファに書き込んだアドレスと、前記メモリに書き込むときのアドレスを関連付けて記憶する変換テーブルを更に備えることを特徴とする請求項1乃至3のいずれか1項に記載のメモリ装置。
  5. 前記アービタは、前記キューに蓄えられた最先のライト要求に基づいてライトデータを前記バッファに書き込み処理させることを特徴とする請求項1乃至4のいずれか1項に記載のメモリ装置。
  6. 前記アビ−タは、前記ピーク管理部が前記超過を検出しなくなるまでライト要求に基づいてライトデータをバッファに書き込み処理させることを特徴とする請求項1乃至5のいずれか1項に記載のメモリ装置。
  7. 前記アービタは、ライト要求に基づいてライトデータを前記バッファに書き込み処理させるのと並行して、他のリード要求またはライト要求を処理させることを特徴とする請求項1乃至6のいずれか1項に記載のメモリ装置。
  8. 前記アービタは、リード要求を受けたとき、前記変換テーブルを参照して、リードすべきデータが前記バッファにある場合、前記バッファからデータを読み出し処理させることを特徴とする請求項4に記載のメモリ装置。
  9. 前記アービタは、前記変換テーブルを参照して、ライトすべきライトデータが前記バッファにある場合、前記ライトデータを前記メモリに書き込み処理させ、前記バッファ上のライトデータを消去処理させることを特徴とする請求項4に記載のメモリ装置。
  10. 前記ピーク管理部が前記超過を検出しないとき、前記アービタは前記バッファに記憶されているライトデータを前記メモリに転送処理させることを特徴とする請求項1乃至9のいずれか1項に記載のメモリ装置。
  11. 前記バッファからメモリに転送後、前記変換テーブルに記憶したアドレスデータを消去することを特徴とする請求項10に記載のメモリ装置。
  12. メモリと、ライト要求またはリード要求を出力するモジュールと、前記メモリを制御するメモリコントローラと、バッファを備えるメモリ装置の制御方法であって、
    前記リード要求またはライト要求を蓄えるステップと、
    前記蓄えられたリード要求またはライト要求が、予め設定したピーク値を超過するか否かを監視するピーク管理ステップと、
    前記ピーク管理ステップで、前記超過を検出しない場合は、前記ライト要求またはリード要求に対するアービトレーションを行い、前記超過を検出した場合に、前記蓄えられたライト要求に基づいてライトデータを前記バッファに書き込み処理させる書込みステップと
    を備えることを特徴とするメモリ制御方法。
JP2005298992A 2005-10-13 2005-10-13 メモリ装置およびメモリ制御方法 Active JP4699858B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005298992A JP4699858B2 (ja) 2005-10-13 2005-10-13 メモリ装置およびメモリ制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005298992A JP4699858B2 (ja) 2005-10-13 2005-10-13 メモリ装置およびメモリ制御方法

Publications (2)

Publication Number Publication Date
JP2007108996A JP2007108996A (ja) 2007-04-26
JP4699858B2 true JP4699858B2 (ja) 2011-06-15

Family

ID=38034820

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005298992A Active JP4699858B2 (ja) 2005-10-13 2005-10-13 メモリ装置およびメモリ制御方法

Country Status (1)

Country Link
JP (1) JP4699858B2 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5074820B2 (ja) * 2007-05-22 2012-11-14 ルネサスエレクトロニクス株式会社 画像処理装置および画像処理方法
JP5428653B2 (ja) * 2009-08-28 2014-02-26 日本電気株式会社 メモリアクセス処理装置及び方法
KR20110032606A (ko) * 2009-09-23 2011-03-30 삼성전자주식회사 전자 디바이스의 성능 개선을 위한 전자 디바이스 컨트롤러
JP5998814B2 (ja) 2012-10-03 2016-09-28 株式会社ソシオネクスト 半導体記憶装置
JP7381603B2 (ja) * 2019-12-05 2023-11-15 オリンパス株式会社 データ転送装置およびデータ転送方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06175911A (ja) * 1992-12-08 1994-06-24 Nec Eng Ltd メモリ制御方式
JP2000222226A (ja) * 1999-01-27 2000-08-11 Matsushita Electric Ind Co Ltd アクセス制御装置及びアクセス方法
JP2003337741A (ja) * 2002-05-21 2003-11-28 Sony Corp データ転送システム及び方法、並びに、アクセスモニタ装置
JP2005092630A (ja) * 2003-09-18 2005-04-07 Sony Corp メモリ制御装置及び制御方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1856778A (zh) * 2003-07-07 2006-11-01 皇家飞利浦电子股份有限公司 数据处理系统和数据处理方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06175911A (ja) * 1992-12-08 1994-06-24 Nec Eng Ltd メモリ制御方式
JP2000222226A (ja) * 1999-01-27 2000-08-11 Matsushita Electric Ind Co Ltd アクセス制御装置及びアクセス方法
JP2003337741A (ja) * 2002-05-21 2003-11-28 Sony Corp データ転送システム及び方法、並びに、アクセスモニタ装置
JP2005092630A (ja) * 2003-09-18 2005-04-07 Sony Corp メモリ制御装置及び制御方法

Also Published As

Publication number Publication date
JP2007108996A (ja) 2007-04-26

Similar Documents

Publication Publication Date Title
JP4593575B2 (ja) 埋め込み型コンピュータシステムの各構成部材のための共通化インターフェース
US20160211006A1 (en) Memory access device for memory sharing among plurality of processors, and access method for same
US20060195647A1 (en) System and method for memory hub-based expansion bus
JP4408263B2 (ja) データ転送システムおよびデータ転送方法
JP4699858B2 (ja) メモリ装置およびメモリ制御方法
US20210109673A1 (en) Memory controller and storage device including the same
US7934044B2 (en) Method for expediting data access of universal serial bus storage device
US20140344512A1 (en) Data Processing Apparatus and Memory Apparatus
CN113641603A (zh) 一种基于axi协议的ddr仲裁与调度方法及系统
JP2013235347A (ja) Ssd(ソリッドステートドライブ)装置
US20080301381A1 (en) Device and method for controlling commands used for flash memory
US7200693B2 (en) Memory system and method having unidirectional data buses
US9455017B2 (en) Storage control device, storage device, information processing system, and storage control method
US6836831B2 (en) Independent sequencers in a DRAM control structure
JP5034551B2 (ja) メモリコントローラ、半導体メモリのアクセス制御方法およびシステム
US8370564B2 (en) Access control device, information processing device, access control program and access control method
EP2998867B1 (en) Data writing method and memory system
JP4846383B2 (ja) 情報処理装置
US10592163B2 (en) Controlling write pulse width to non-volatile memory based on free space of a storage
US8099530B2 (en) Data processing apparatus
JP6233287B2 (ja) メモリーアクセス装置、画像処理装置
JP2011197707A (ja) メモリー制御装置、メモリー制御システム、記録装置及びメモリー制御方法
US20150032885A1 (en) Image processing apparatus and control method
US7535792B2 (en) Data transmission control device, and data transmission control method
JP2007264751A (ja) データ転送制御装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080220

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110223

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110303

R150 Certificate of patent or registration of utility model

Ref document number: 4699858

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150