(57)【要約】【課題】ＤＲＡＭのリフレッシュに要する時間を短縮する。【解決手段】ＤＲＡＭ１２に対しライトアクセスした複数のライト済みのロウアドレスを保持するロウアドレス保持ユニット２３と、複数のライト済みのロウアドレスの内、リフレッシュサイクル内にライトアクセスおよびリードアクセスのない、未アクセスのライト済みのロウアドレスに対しダミーリードコマンドを発行するダミーリードユニット３０と、複数のライト済みのロウアドレスの内、最終のリードアクセスが行われたライト済みのロウアドレスをロウアドレス保持ユニット２３から消去する更新ユニット２５とを有するリフレッシュ制御ユニット２０を提供する。【選択図】図２
2010129123.tif 000002
【特許請求の範囲】
【請求項１】
第１のアドレスおよび第２のアドレスを含むアドレスデータによりアクセス可能な多数のメモリセルを含む揮発性メモリ装置に対しライトアクセスした複数のライト済みの前記第１のアドレスを保持する第１のアドレス記憶部と、
前記複数のライト済みの第１のアドレスの内、リフレッシュ操作を要する第１の時間内にライトアクセスおよびリードアクセスのない、未アクセスのライト済みの第１のアドレスに対しダミーリードを行うダミーリードコマンドを発行するダミーリードユニットと、
前記複数のライト済みの第１のアドレスの内、リードアクセスが行われたライト済みの第１のアドレスを前記第１のアドレス記憶部から消去する更新ユニットとを有するリフレッシュ制御装置。
【請求項２】
請求項１において、前記更新ユニットは、前記リードアクセスが最終のリードアクセスであることを判断する機能を含み、前記最終のリードアクセスが行われたライト済みの第１のアドレスのみを前記第１のアドレス記憶部から消去する、リフレッシュ制御装置。
【請求項３】
請求項１において、前記更新ユニットは、前記リードアクセスが、同一のアドレスに対する再リードを確保するためのデータ保持型リードアクセスであることを判断する機能を含み、前記データ保持型リードアクセスが行われたライト済みの第１のアドレスは前記第１のアドレス記憶部に保持する、リフレッシュ制御装置。
【請求項４】
請求項１ないし３のいずれかにおいて、前記揮発性メモリ装置に対して前記第１の時間内に所定の回数のオートリフレッシュコマンドを発行するオートリフレッシュユニットと、
前記第１のアドレス記憶部に保持されている前記複数のライト済みの第１のアドレスに対しダミーリードを行うために要する第１の消費時間および前記オートリフレッシュユニットにより前記揮発性メモリ装置をオートリフレッシュするために要する第２の消費時間を比較し、前記第１の消費時間が前記第２の消費時間と同じまたは短いときは、前記ダミーリードユニットを有効、前記オートリフレッシュユニットを無効とし、前記第１の消費時間が前記第２の消費時間より長いときは、前記ダミーリードユニットを無効、前記オートリフレッシュユニットを有効とする監視ユニットとを、さらに有するリフレッシュ制御装置。
【請求項５】
請求項１ないし４のいずれかにおいて、前記揮発性メモリ装置はＤＲＡＭであり、前記第１のアドレスはロウアドレスである、リフレッシュ制御装置。
【請求項６】
請求項１ないし５のいずれかに記載のリフレッシュ制御装置と、
前記揮発性メモリ装置に対するライト用のアドレスデータおよびライトコマンドを含むライトアクセス命令、または、リード用のアドレスデータおよびリードコマンドを含むリードアクセス命令に基づき前記揮発性メモリ装置にアクセス要求を発行するアクセス要求ユニットであって、前記リフレッシュ制御装置に前記ライト用のアドレスデータおよび前記リード用のアドレスデータを供給するアクセス要求ユニットとを有するメモリ制御装置。
【請求項７】
請求項６において、前記アクセス要求および前記ダミーリードコマンドの、前記揮発性メモリ装置に対するアクセスを調停する調停ユニットを、さらに有するメモリ制御装置。
【請求項８】
請求項６または７に記載のメモリ制御装置と、
前記メモリ制御装置により制御される揮発性メモリ装置と、
前記ライトアクセス命令により前記揮発性メモリ装置に書き込まれるデータを生成し、前記リードアクセス命令により前記揮発性メモリ装置から読み出されるデータによる処理を実行するためのデータ処理部とを有するデータ処理装置。
【請求項９】
第１のアドレスおよび第２のアドレスを含むアドレスデータによりアクセス可能な多数のメモリセルを含む揮発性メモリ装置に対しライトアクセスした複数のライト済みの前記第１のアドレスを第１のアドレス記憶部に保持することと、
前記複数のライト済みの第１のアドレスの内、リフレッシュ操作を要する第１の時間内にライトアクセスおよびリードアクセスのない、未アクセスのライト済みの第１のアドレスに対しダミーリードを行うダミーリードコマンドを発行することと、
前記複数のライト済みの第１のアドレスの内、リードアクセスが行われたライト済みの第１のアドレスを前記第１のアドレス記憶部から消去することとを有するメモリの制御方法。
【請求項１０】
請求項９において、前記消去することは、前記リードアクセスが最終のリードアクセスであることを判断することと、前記最終のリードアクセスが行われたライト済みの第１のアドレスのみを前記第１のアドレス記憶部から消去することとを含む、制御方法。
【請求項１１】
請求項９において、前記消去することは、前記リードアクセスが、同一のアドレスに対する再リードを確保するためのデータ保持型リードアクセスであることを判断することと、前記データ保持型リードアクセスが行われたライト済みの第１のアドレスは前記第１のアドレス記憶部に保持することとを含む、制御方法。
【請求項１２】
請求項９ないし１１のいずれかにおいて、前記揮発性メモリ装置に対して前記第１の時間内に所定の回数のオートリフレッシュコマンドを発行することと、
前記第１のアドレス記憶部に保持されている前記複数のライト済みの第１のアドレスに対しダミーリードを行うために要する第１の消費時間および前記オートリフレッシュコマンドにより前記揮発性メモリ装置をオートリフレッシュするために要する第２の消費時間を比較し、前記第１の消費時間が前記第２の消費時間と同じまたは短いときは、前記ダミーリードコマンドを発行することを選択し、前記第１の消費時間が前記第２の消費時間より長いときは、前記オートリフレッシュコマンドを発行することを選択することとを、さらに有する制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＤＲＡＭなどの揮発性メモリのリフレッシュを含むメモリの制御方法および装置に関するものである。
【背景技術】
【０００２】
ダイナミックランダムアクセスメモリ（ＤＲＡＭ）セルのような揮発性メモリセルに貯蔵されたデータは短時間に消失する。このため、メモリセルを周期的にリフレッシュしてデータを保持しなければならない。したがって、ＤＲＡＭ、ＳＤＲＡＭのような多数の揮発性メモリセルを含む集積回路は、周期的にリフレッシュサイクルを実行するための機能（オートリフレッシュ機能）を備えている。
【０００３】
特許文献１は、所定間隔でオートリフレッシュリクエストを発生させるオートリフレッシュリクエスト発生回路と、オートリフレッシュリクエスト発生のタイミングで、アイドル状態でない場合にはダイナミックランダムアクセスメモリに対するオートリフレッシュ要求をホールドしてホールド回数をカウントするホールド回数カウント回路と、アイドル状態を検出した時に、ホールドされた回数に達するまでダイナミックランダムアクセスメモリに対しホールドされたオートリフレッシュ要求を行う回路とを含むオートリフレッシュ制御回路が開示されている。このオートリフレッシュ制御回路を含むメモリコントローラでは、ホールドされたオートリフレッシュ要求が実行されると、実行した回数に基づきホールド回数を更新する。
【特許文献１】特開２００５−３１０２４５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ＳＤＲＡＭに対するリフレッシュタイミングは、ＳＤＲＡＭの容量によって変化する。例えば、６４Ｍｂｉｔｓ、１２８Ｍｂｉｔｓの場合は４０９６回／６４ｍｓで、２５６Ｍｂｉｔｓ、５１２Ｍｂｉｔｓの場合は８１９２回／６４ｍｓのアクセスが必要である。さらに、リフレッシュサイクルはアイドル状態で行われる必要がある。したがって、特許文献１では、アイドル状態でない場合にはオートリフレッシュ要求をホールドするようにしている。
【０００５】
また、リフレッシュサイクルの間はメモリにアクセスできない。１回のリフレッシュサイクルに要する時間が、たとえば、１４０ｎｓとすると、６４ｍｓの間に８１９２回のリフレッシュサイクルを実行すると１．１５ｍｓがリフレッシュのために費やされ、メモリにアクセスできない。メモリ転送レートを向上するためにはリフレッシュの頻度を下げることが必要であるが、データの消失を防ぐためにはリフレッシュの頻度を下げることができない。
【課題を解決するための手段】
【０００６】
本発明の一態様は、第１のアドレスおよび第２のアドレスを含むアドレスデータによりアクセス可能な多数のメモリセルを含む揮発性メモリ装置に対しライトアクセスした複数のライト済みの第１のアドレスを保持する第１のアドレス記憶部と、複数のライト済みの第１のアドレスの内、リフレッシュ操作を要する第１の時間内にライトアクセスおよびリードアクセスのない、未アクセスのライト済みの第１のアドレスに対しダミーリードを行うダミーリードコマンドを発行するダミーリードユニットと、複数のライト済みの第１のアドレスの内、リードアクセスが行われたライト済みの第１のアドレスを第１のアドレス記憶部から消去する更新ユニットとを有するリフレッシュ制御装置である。典型的な揮発性メモリ装置はＤＲＡＭであり、第１のアドレスはロウアドレスであり、第２のアドレスはカラムアドレスである。
【０００７】
同一のアドレスにリードが繰り返される可能性があるアプリケーションに対しては、更新ユニットは、リードアクセスが最終のリードアクセスであることを判断する機能を含み、最終のリードアクセスが行われたライト済みの第１のアドレスのみを第１のアドレス記憶部から消去することが望ましい。または、更新ユニットは、リードアクセスが、同一のアドレスに対する再リードを確保するためのデータ保持型リードアクセスであることを判断する機能を含み、データ保持型リードアクセスが行われたライト済みの第１のアドレスは第１のアドレス記憶部に保持することが望ましい。
【０００８】
オートリフレッシュコマンドを発行する方法では、どのロウアドレスをリフレッシュしているのかはＤＲＡＭ外部からは知る手段が無い。このため、ＤＲＡＭの全領域に対してリフレッシュを実行する必要があり、一定期間内に決まった回数のオートリフレッシュコマンドを発行しなくてはならない。したがって、リフレッシュに要する一定の時間はＤＲＡＭにアクセスできない。ＤＲＡＭなどの揮発性メモリ装置のメモリセルは、メモリリード、メモリライトでもリフレッシュされる。さらに、揮発性メモリ装置に含まれる多数のメモリセルのうち、データを保持する必要のあるメモリセルだけリフレッシュすればよい。このため、本発明においては、ライト済みのロウアドレスを記憶し、そのライト済みのロウアドレスに対しライトまたはリードアクセスがリフレッシュサイクルの間にない場合にダミーリードを行うことにより、データ保持を保証するとともにリフレッシュの回数を抑制する。さらに、ライト済みのロウアドレスのデータを破棄できるリードアクセス（または最終のリードアクセス）があると、リードされたライト済みのロウアドレスを消去することによりリフレッシュの回数を抑制する。
【０００９】
この方式は、ダミーリード用のロウアドレスを生成するので、ダミーリードの頻度が高くなるリフレッシュに要する時間（第１の消費時間）が、オートリフレッシュを用いたリフレッシュに要する時間（第２の消費時間）よりも長くなる可能性がある。しかしながら、理論的な第１の消費時間と第２の消費時間とが同じ場合は、リードアクセスがあったロウアドレスに対するダミーリードが発行されない分だけ実際の第１の消費時間は短くなる。したがって、本発明のリフレッシュ制御装置は、揮発性メモリ装置に対して第１の時間内に所定の回数のオートリフレッシュコマンドを発行するオートリフレッシュユニットと、ダミーリードユニットおよびオートリフレッシュユニットのいずれか一方を有効とする監視ユニットとをさらに有することが望ましい。監視ユニットは、第１のアドレス記憶部に保持されている複数のライト済みの第１のアドレスに対しダミーリードを行うために要する第１の消費時間およびオートリフレッシュユニットにより揮発性メモリ装置をオートリフレッシュするために要する第２の消費時間を比較し、第１の消費時間が第２の消費時間と同じまたは短いときは、ダミーリードユニットを有効、オートリフレッシュユニットを無効とし、第１の消費時間が前記第２の消費時間より長いときは、ダミーリードユニットを無効、オートリフレッシュユニットを有効とする。
【００１０】
このリフレッシュ制御装置は、メモリ制御装置に組み込むことができる。すなわち、本発明の他の態様の１つは、メモリ制御装置であり、リフレッシュ制御装置と、アクセス要求ユニットとを含む。アクセス要求ユニットは、揮発性メモリ装置に対するライト用のアドレスデータおよびライトコマンドを含むライトアクセス命令、または、リード用のアドレスデータおよびリードコマンドを含むリードアクセス命令に基づき、揮発性メモリ装置にアクセス要求を発行する。アクセス要求ユニットは、また、リフレッシュ制御装置のアドレスデータとして、リフレッシュ制御装置にライト用のアドレスデータおよびリード用のアドレスデータを供給する。メモリ制御装置は、アクセス要求と、ダミーリードコマンドまたはオートリフレッシュコマンドとの、揮発性メモリ装置に対するアクセスを調停する調停ユニットを有することが望ましい。
【００１１】
本発明の他の態様の１つは、上記のメモリ制御装置と、このメモリ制御装置により制御される揮発性メモリ装置と、データ処理部とを有するデータ処理装置である。データ処理部は、ライトアクセス命令により揮発性メモリ装置に書き込まれるデータを生成し、リードアクセス命令により揮発性メモリ装置から読み出されるデータによる処理を実行する機能を含む。典型的なデータ処理装置は、ＡＳＩＣ、プロセッサ、マイクロコンピュータなどの半導体集積回路装置である。データ処理装置は、プリンタ、パーソナルコンピュータ、携帯電話、ＰＤＡなどの情報処理端末であってもよい。
【００１２】
本発明の他の態様の１つは、メモリの制御方法であり、以下のステップを含む。
（１）第１のアドレスおよび第２のアドレスを含むアドレスデータによりアクセス可能な多数のメモリセルを含む揮発性メモリ装置に対しライトアクセスした複数のライト済みの第１のアドレスを第１のアドレス記憶部に保持すること。
（２）複数のライト済みの第１のアドレスの内、リフレッシュ操作を要する第１の時間内にライトアクセスおよびリードアクセスのない、未アクセスのライト済みの第１のアドレスに対しダミーリードを行うダミーリードコマンドを発行すること。
（３）複数のライト済みの第１のアドレスの内、リードアクセスが行われたライト済みの第１のアドレスを第１のアドレス記憶部から消去すること。
【００１３】
メモリの制御方法は、さらに以下のステップを含むことが望ましい。
（４）揮発性メモリ装置に対して第１の時間内に所定の回数のオートリフレッシュコマンドを発行すること。
（５）第１のアドレス記憶部に保持されている複数のライト済みの第１のアドレスに対しダミーリードを行うために要する第１の消費時間およびオートリフレッシュコマンドにより揮発性メモリ装置をオートリフレッシュするために要する第２の消費時間を比較し、第１の消費時間が第２の消費時間と同じまたは短いときは、ダミーリードコマンドを発行することを選択し、第１の消費時間が第２の消費時間より長いときは、オートリフレッシュコマンドを発行することを選択すること。
【発明を実施するための最良の形態】
【００１４】
図１に、プリンタの概略構成を示している。プリンタ１は、インクジェットヘッドなどの印刷機構、紙送り機構などを含む印刷機構（プリンタメカ）２と、プリンタコントローラ３とを含む。プリンタコントローラ３は、プリンタメカ２の制御を行うプリンタメカコントローラ４と、ＣＰＵ５と、ＣＰＵ５で稼働するプログラムを格納したＲＯＭ６と、パーソナルコンピュータ（ＰＣ）９などのホスト装置と適当な媒体、たとえば、ＬＡＮインターフェイス、ＵＳＢなどのシリアルインターフェイスなどにより接続するためのインターフェイス７と、印刷データを処理するためのデータ処理ユニット１０と、これらを接続するバス８とを含む。データ処理ユニット１０は、データの解凍・伸長、色変換、誤差拡散などの印刷用のデータを生成するために必要な種々の処理を実行するようにユーザにより設計されたデータ処理部（ＡＳＩＣ）１１と、作業用のデータ格納領域を提供するメモリ（ＤＲＡＭ）１２と、ＡＳＩＣ１１とＤＲＡＭ１２との間の入出力を制御するメモリコントローラ（ＤＲＡＭコントローラ）１３とを含む。メモリコントローラ１３は、ＡＳＩＣ１１に搭載されており、ＤＲＡＭ１２とはメモリインタフェイス１４により接続されている。
【００１５】
ＤＲＡＭコントローラ１３は、ＡＳＩＣ１１から供給される、ライトアドレスデータ（ライト用のアドレスデータ）およびライトコマンドを含むライトアクセス命令、リードアドレスデータ（リード用のアドレスデータ）およびリードコマンドを含むリードアクセス命令を、ＤＲＡＭ１２に対するアクセス要求に変換して発行する。ＡＳＩＣ１１は、ライトアクセス命令によりＤＲＡＭ１２に書き込まれるデータを生成し、また、リードアクセス命令によりＤＲＡＭ１２から読み出されるデータによる処理を実行する。ＤＲＡＭ１２は、多数の揮発性メモリセルを含む揮発性メモリ装置の１つの例である。ＤＲＡＭ１２は、たとえば、ＤＤＲ、ＤＤＲ２、ＤＤＲ３などのＳＤＲＡＭである。ＤＲＡＭコントローラ１３は、さらにＤＲＡＭ１２のリフレッシュを行うリフレッシュ制御ユニット２０を含む。
【００１６】
図２に、ＤＲＡＭコントローラ１３の構成をさらに詳しく示している。ＤＲＡＭコントローラ１３は、ＡＳＩＣ１１のアクセス制御部１８から発行されるライトアクセス命令φ１およびリードアクセス命令φ２をデコードして、ＤＲＡＭ１２に対するアクセス要求を発行するアクセス要求ユニット２８と、ＤＲＡＭ１２のリフレッシュを行うリフレッシュ制御ユニット２０と、これらのユニットからＤＲＡＭ１２に対する入出力を調停する調停ユニット（アービタ）２９とを含む。アクセス要求ユニット２８は、アクセス命令φ１およびφ２の含まれるアドレスデータ（ライト用のアドレスデータおよびリード用のアドレスデータ、以降ではアドレス）をＤＲＡＭ１２にアクセスするためのロウアドレス（行アドレス、第１のアドレス）Ａｒとカラムアドレス（列アドレス、第２のアドレス）Ａｃとに分けて、ＤＲＡＭ１２に発行する機能を含む。ＤＲＡＭ１２に含まれる多数のメモリセルは、まず、ロウアドレスＡｒにより行、たとえば２ｋバイトのメモリセルが指定され、次にカラムアドレスＡｃにより列が指定されることにより所定のメモリセルにデータを書き込んだり、メモリセルからデータを読み出すことができる。
【００１７】
アクセス要求ユニット２８は、さらに、ＤＲＡＭ１２にデータを書き込み、または、ＤＲＡＭ１２からデータを読み出すために、コマンド、たとえば、ＲＡＳ（ローアドレスストローブ）信号、ＣＡＳ（カラムアドレスストローブ）信号、ＷＥ（ライトイネーブル）信号などを用いてＤＲＡＭ１２を制御する。また、アクセス要求ユニット２８は、アドレスおよびデータをＤＲＡＭ１２に供給するタイミング調整用のＦＦ（フリップフロップ）２７などを含む。アクセス要求ユニット２８は、さらに、アクセス命令φ１およびφ２を受信すると、リフレッシュ制御ユニット２０に対して、それらの命令φ１またはφ２に含まれている、ロウアドレスＡｒと、コマンド、すなわち、ライトコマンドＣｗおよびリードコマンドＣｒを供給する。
【００１８】
リフレッシュ制御ユニット２０は、ライトコマンドＣｗによりライト（書き込み）を検出するライト検出ユニット２１と、リードコマンドＣｒによりリード（読み出し）を検出するリード検出ユニット２２と、ライトコマンドＣｗとともに供給されたロウアドレスＡｒを、ライト済みのロウアドレスとして格納するロウアドレス保持ユニット（ロウアドレス記憶部）２３とを含む。ロウアドレス保持ユニット２３は、ＳＲＡＭ２３ｍを備えている。
【００１９】
リフレッシュ制御ユニット２０は、ロウアドレス保持ユニット２３に格納される複数のロウアドレスＡｒの登録２５ａおよび削除２５ｄを制御する更新ユニット２５を含む。登録する機能２５ａは、ライト検出ユニット２１がライトコマンドＣｗを検出すると、ロウアドレスＡｒをロウアドレス保持ユニット２３に登録する。削除する機能２５ｄは、リード検出ユニット２２がリードコマンドＣｒを検出し、さらに、最終リード判断ユニット２４により最終リードであることが判明すると、そのときのロウアドレスＡｒをロウアドレス保持ユニット２３から削除する。最終リード判断ユニット２４は、リードコマンドＣｒと、ＡＳＩＣ１１のデータ破棄有効判断ユニット１９から供給されるデータ破棄有効信号φ３との論理積により最終リードを検出し、リード後はリフレッシュを要しないデータになることを判断する。
【００２０】
最終リード判断ユニット２４は、同じアドレスにリードが繰り返される可能性があるアプリケーションを実装するのに有効である。一方、同じアドレスにリードが繰り返されないアプリケーションを実装する場合は、最終リード判断ユニット２４を省略し、リードアクセスのロウアドレスＡｒをロウアドレス保持ユニット２３から削除してもよい。また、同じアドレスにリードが繰り返される可能性がゼロではないアプリケーションを実装する場合は、ＡＳＩＣ１１にデータ保持判断ユニットを設け、それから供給されるデータ保持信号とリードコマンドＣｒとの論理積によりデータ保持型リードアクセスであることを判断するユニットを設けることが望ましい。そして、データ保持型リードアクセスの場合は、ロウアドレス保持ユニット２３からリードアクセスされたロウアドレスを削除せずに保持することが望ましい。
【００２１】
リフレッシュ制御ユニット２０は、さらに、ダミーリードユニット３０を含む。ダミーリードユニット３０は、ロウアドレス保持ユニット２３に格納された複数のライト済みのロウアドレスＡｒの内、リフレッシュ操作を要するリフレッシュサイクル（第１の時間）ｔｒ内にライトアクセスおよびリードアクセスのない、未アクセスのライト済みのロウアドレスＡｒに対しダミーリードを行うダミーリードコマンドＣｄｒを発行する。ダミーリードユニット３０は、ロウアドレス保持ユニット２３に保持されている複数のロウアドレスＡｒのそれぞれについて最終のアクセスからの時間をカウントするリフレッシュカウンタ３１と、リフレッシュカウンタ３１がリフレッシュサイクルｔｒに達するとダミーリードコマンドを発行するユニット（ダミーリードコマンド発行ユニット）３２とを含む。
【００２２】
リフレッシュカウンタ３１は、ライト検出ユニット２１およびリード検出ユニット２２によりライトコマンドＣｗまたはリードコマンドＣｒが検出されると、そのロウアドレスＡｒのカウントをリセットする。また、ダミーリードコマンド発行ユニット３２からダミーリードコマンドＣｄｒが発行されると、そのロウアドレスＡｒのカウントをリセットする。リフレッシュカウンタ３１は、たとえば、６４ｍｓのリフレッシュサイクルｔｒをダウンカウントしてもアップカウントしてもよい。したがって、まず、あるロウアドレスＡｒにライトアクセスがあり、データが書き込まれると、カウンタ３１はリセットされるので、リフレッシュサイクルｔｒの間は、そのロウアドレスＡｒにダミーリードは行われない。また、リフレッシュサイクルｔｒの間にリードアクセスがあると、カウンタ３１は再びリセットされるので、その後のリフレッシュサイクルｔｒの間は、ダミーリードは行われない。
【００２３】
ＤＲＡＭ１２に対するライトアクセス、リードアクセスおよびダミーリードアクセスが同時に行われることはないので、複数のロウアドレスＡｒについてリフレッシュサイクルｔｒが同時にカウントアップ（カウントダウン）されることはなく、複数のロウアドレスＡｒに対して同時にダミーリードコマンドＣｄｒが発行されることはない。しかしながら、リードアクセスあるいはライトアクセスと、ダミーリードアクセス（ダミーリードコマンド）とが競合する可能性はあり、そのようなアクセスの競合は調停ユニット（アービタ）２９により調整される。
【００２４】
リフレッシュ制御ユニット２０はさらに、ＤＲＡＭ１２に対してリフレッシュサイクル（第１の時間）ｔｒ内に所定の回数のオートリフレッシュコマンドＣａｒを発行するオートリフレッシュユニット４０と、オートリフレッシュユニット４０およびダミーリードユニット３０の有効無効を選択する監視ユニット５０とを含む。オートリフレッシュユニット４０が有効になると、たとえば、５１２ＭｂｉｔｓのＤＲＡＭ１２に対して８１９２回／６４ｍｓのオートリフレッシュコマンドＣａｒを発行する。
【００２５】
監視ユニット５０は、オートリフレッシュによりリフレッシュサイクルｔｒの間にロスする時間（第２の消費時間）Ｔｂがセットされるレジスタ５１と、１回のダミーリードに要する時間がセットされるレジスタ５２と、ロウアドレス保持ユニット２３に保持されているロウアドレスＡｒの数をカウントするカウンタ５３と、レジスタ５２の時間とカウンタ５３のカウント値によりリフレッシュサイクルｔｒの間にダミーリードに要する時間（第１の消費時間）Ｔａを計算する乗算器５５とを含む。カウンタ５３は、更新ユニット２５において登録２５ａが選択されると１つアップし、削除２５ｄが選択されると１つダウンすることによりロウアドレス保持ユニット２３に保持されているロウアドレスＡｒの数（セット数）をカウントする。
【００２６】
監視ユニット５０は、さらにコンパレータ５６を含み、第２の消費時間Ｔｂが第１の消費時間Ｔａより小さいと選択信号φｓを「１」にセットしてセレクタ５７を制御し、オートリフレッシュユニット４０から出力されるオートリフレッシュコマンドＣａｒを有効にする。一方、コンパレータ５６は、第１の消費時間Ｔａが第２の消費時間Ｔｂと等しいか、または小さいときは、選択信号φｓを「０」にセットしてセレクタ５７を制御し、ダミーリードユニット３０から出力されるダミーリードコマンドＣｄｒを有効にする。したがって、このリフレッシュ制御ユニット２０においては、ロウアドレス保持ユニット２３に保持されている複数のライト済みのロウアドレスＡｒに対しダミーリードを行うために要する第１の消費時間Ｔａと、オートリフレッシュユニット４０によりＤＲＡＭ１２をオートリフレッシュするために要する第２の消費時間Ｔｂとを比較し、第１の消費時間Ｔａが第２の消費時間Ｔｂと同じまたは短いときは、ダミーリードユニット３０を有効、オートリフレッシュユニット４０を無効とする。逆に、第１の消費時間Ｔａが第２の消費時間Ｔｂより長いときは、ダミーリードユニット３０を無効、オートリフレッシュユニット４０を有効とする。
【００２７】
図３に、リフレッシュ制御ユニット２０の動作をフローチャートにより示している。ステップ７１でコマンドの有無を確認する。ＡＳＩＣ１１からコマンドが供給され、ステップ８１においてライト検出ユニット２１がライトを検出すると、ステップ８２で更新ユニット２５によりロウアドレスＡｒをロウアドレス保持ユニット２３に登録する（ステップ（１））。次に、ステップ８３で、監視ユニット５０により第１の消費時間Ｔａと第２の消費時間Ｔｂとを計算し、ステップ８４で比較した結果、第２の消費時間Ｔｂが第１の消費時間Ｔａよりも短ければ、ステップ８５でオートリフレッシュユニット４０を有効にする。逆に、第１の消費時間Ｔａが第２の消費時間Ｔｂと同じまたは短ければ、ステップ８６でダミーリードユニット３０を有効にする（ステップ（５））。
【００２８】
ダミーリードユニット３０が選択されている場合、ＤＲＡＭ１２に対するライトアクセスおよび／またはリードアクセスにより、ロウアドレス保持ユニット２３に保持されているロウアドレスＡｒのすべてに対してダミーリードコマンドＣｄｒが発行される可能性は少ない。したがって、ダミーリードを行うことにより消費される時間（第１の消費時間）Ｔａは計算値または最大値であり、実際に消費される時間は第１の消費時間Ｔａより短くなる。一方、オートリフレッシュにより消費される時間（第２の消費時間）Ｔｂは、オートリフレッシュコマンドＣａｒによりどのロウアドレスＡｒがリフレッシュされているかＤＲＡＭコントローラ１３ではわからないため、所定の数だけ発行する必要があり、第２の消費時間Ｔｂは必ず消費される。したがって、監視ユニット５０は、第１の消費時間Ｔａと第２の消費時間Ｔｂとが等しい場合は、ダミーリードユニット３０を選択し、リフレッシュに要する時間が短縮されるようにする。
【００２９】
ステップ８１において、リード検出ユニット２２がリードを検出すると、ステップ８７で最終リード判断ユニット２４により最終リードか否かを判断する。検出されたリードが最終リードの場合は、そのリードアドレスのＤＲＡＭ１２のデータはリードされた後に破棄されてもよいので、リフレッシュの必要はない。したがって、ステップ８８で更新ユニット２５によりロウアドレス保持ユニット２３に保持されているロウアドレスＡｒを削除（消去）する（ステップ（３））。最終リードを判断せずに、同じアドレスにリードが繰り返される可能性があるアプリケーションの場合はリードアクセスで該当するロウアドレスＡｒを削除してもよい。一方、再リードされる頻度が少ない場合は、データ保持型リードアクセスであることを判断して、データ保持型リードアクセスの場合は、ロウアドレス保持ユニット２３からリードアクセスされたロウアドレスを削除せずに保持するようにしてもよい。
【００３０】
ステップ８１において、ライトを検出した場合も、リードを検出した場合もＤＲＡＭ１２に対するアクセスが発生する。したがって、ステップ７６においてリフレッシュカウンタ３１をリセットする。これにより、ダミーリードユニット３０が有効になっている場合は、最終アクセスからリフレッシュサイクルｔｒが経過した後でなければ、そのロウアドレスＡｒにはダミーリードコマンドＣｄｒが発行されない。すなわち、ロウアドレス保持ユニット２３に保持されている複数のライト済みのロウアドレスＡｒの内、リフレッシュ操作を要するリフレッシュサイクル（第１の時間）ｔｒのサイクル内（時間内）にライトアクセスおよびリードアクセスのない、未アクセスのライト済みのロウアドレスＡｒに対してのみダミーリードを行うダミーリードコマンドＣｄｒが発行される（ステップ（２））。したがって、リフレッシュによるＤＲＡＭ１２の転送レートの低下を抑制できる。
【００３１】
ステップ７１においてコマンドが検出されない場合は、ステップ７２において、セレクタ５７でダミーリードユニット３０が有効になっていれば、ステップ７４でリフレッシュカウンタ３１がカウントアップしたか否かが判断される。リフレッシュカウンタ３１のカウントによりリフレッシュサイクルｔｒが経過している場合は、ステップ７５でダミーリードユニット３０から、リフレッシュを要するロウアドレスＡｒに対してダミーリードコマンドＣｄｒが発行される。ライトアクセスされ、データが破棄されていないロウアドレスＡｒに対しては、リフレッシュサイクルｔｒが経過すればダミーリードコマンドＣｄｒが発行される。したがって、ダミーリードにより、ＤＲＡＭ１２に書き込まれ、後でリードされる可能性のあるデータは有効に保持される。
【００３２】
ステップ７２においてオートリフレッシュユニット４０が選択されている場合は、ステップ７３においてオートリフレッシュユニット４０から所定のタイミングでオートリフレッシュコマンドＣａｒが発行される（ステップ（４））。したがって、オートリフレッシュにより、ＤＲＡＭ１２に書き込まれ、後でリードされる可能性のあるデータは有効に保持される。さらに、このリフレッシュ制御ユニット２０においては、ダミーリードユニット３０が選択されることにより、リフレッシュサイクルｔｒ中にリフレッシュのために消費される時間が短くなることがあっても、リフレッシュにより消費される時間が最大でオートリフレッシュにより消費される時間Ｔｂを超えることはない。
【００３３】
このように、リフレッシュ制御ユニット２０を採用することにより、ＤＲＡＭ１２に書き込まれているデータ量がそれほど多くない場合は、ＤＲＡＭ１２に対してオートリフレッシュコマンドＣａｒを発行する必要がなく、オートリフレッシュの実行によるＤＲＡＭ１２に対する転送レートの低下を抑制できる。たとえば、オートリフレッシュの実行により、６４ｍｓのリフレッシュサイクルｔｒの間に１．１５ｍｓ（８１９２回×１４０ｎｓ）のＤＲＡＭ１２へアクセスできない時間（無駄時間）が発生するが、その無駄時間のすべて、または一部の発生を抑制できる。
【００３４】
さらに、リフレッシュ制御ユニット２０においては、ダミーリードの対象となるロウアドレスＡｒを常にアップデートすることにより、ＤＲＡＭ１２のメモリセルのうち、必要最小限のセル（ロウアドレス）に対してリフレッシュを行う。このため、ＤＲＡＭ１２を、キャッシュのように局所的に利用し、頻繁にライトアクセスおよびリードアクセスを繰り返すアプリケーションをＡＳＩＣ１１において実行している場合は、ダミーリードコマンドＣｄｒの発行も抑制できる。したがって、ＤＲＡＭ１２をリフレッシュすることによる転送レートの低下をさらに抑制できる。ベストケースでは、リフレッシュのためのダミーリードコマンドＣｄｒが発行されず、ＤＲＡＭ１２をリフレッシュするために消費される時間をゼロにすることも可能である。
【００３５】
また、ダミーリードコマンドＣｄｒの発行頻度が少ない場合は、調停ユニット２９により、リードアクセスあるいはライトアクセスを優先させることが可能である。したがって、ダミーリードコマンドＣｄｒが発行される条件であっても、ダミーリードはＤＲＡＭアクセスが発生していない期間で実行することで転送レートの低下を抑制する、または転送レートの低下が発生しないようにすることが可能となる。
【００３６】
一方、ダミーリードを発行するためのロウアドレスの数が数万個に増えることで、オートリフレッシュコマンド制御よりも転送レートの低下が大きくなることも考えられる。このリフレッシュ制御ユニット２０では、監視ユニット５０において、ダミーリードによるリフレッシュサイクルの消費時間Ｔａを常に監視し、消費時間が長くなったときはオートリフレッシュコマンド制御に自動で切り替える。したがって、オートリフレッシュコマンドによる消費時間Ｔｂよりリフレッシュ時間が長くなることはない。このため、ダミーリードによるリフレッシュを採用しても、オートリフレッシュコマンド制御を採用したときの転送レートは担保される。
【００３７】
なお、上記の例では、ダミーリードを発行するサイクルをリフレッシュカウンタ３１によりカウントすることにより監視しているが、リフレッシュサイクルの監視手段には公知のさまざまな方式を採用できる。また、データ処理ユニット１０はＡＳＩＣ１１に限定されることはなく、汎用タイプのプロセッサ、マイクロコンピュータであってもよい。さらに、リフレッシュ制御ユニットによりリフレッシュの対象となる揮発性メモリ装置は、ＤＲＡＭに限らず、他のリフレッシュを要するメモリに適用できる。また、上記ではプリンタおよびプリンタコントローラを例に説明しているが、コンピュータおよびその他の情報端末におけるメモリ制御にも本発明は適用できる。
【図面の簡単な説明】
【００３８】
【図１】プリンタの概略構成を示すブロック図である。
【図２】ＤＲＡＭコントローラの構成を示すブロック図である。
【図３】リフレッシュ制御ユニットの動作を示すフローチャートである。
【符号の説明】
【００３９】
１０  データ処理装置、  １１  ＡＳＩＣ、  １２  ＤＲＡＭ
１３  ＤＲＡＭコントローラ
２０  リフレッシュ制御ユニット
【図１】
2010129123.tif 000003
【図２】
2010129123.tif 000004
【図３】
2010129123.tif 000005