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