(57)【特許請求の範囲】
【請求項１】
メモリシステムであって、
システムバスと、
リフレッシュを必要とするメモリセルアレイと、リフレッシュ制御回路とを有する、前記システムバスに接続されたメモリブロックであって、前記リフレッシュ制御回路は、前記システムバス上の１以上の制御信号に応じて前記メモリセルアレイのアイドルサイクルを検出し、周期的にリフレッシュリクエストを発生し、かつ前記メモリセルアレイのアイドルサイクルを検出したことに応じて未処理のリフレッシュリクエストを実行するように構成された、該メモリブロックと、
第１の時間に前記システムバス上でアイドルサイクル数をモニタするべく構成され、前記第１の時間にモニタされたアイドルサイクル数が所定のアイドルサイクル数よりも少ない場合、前記システムバス上に１つ若しくは複数のアイドルサイクルを強制するリフレッシュマネージャを含む前記システムバスに接続されたメモリコントローラであって、前記所定のアイドルサイクル数が２以上で、前記第１の時間に実行されるべき必要なリフレッシュ操作の数に一致するように選択される、該メモリコントローラとを有し、
前記リフレッシュ制御回路は、前記システムバス上に強制された１つ若しくは複数のアイドルサイクルのそれぞれを、前記メモリセルアレイの１つのアイドルサイクルとして検出し、それによって前記リフレッシュ制御回路は前記システムバス上に強制された１つ若しくは複数のアイドルサイクルに応じて未処理のリフレッシュリクエストを実行するように構成されていることを特徴とするメモリシステム。
【請求項２】
前記モニタされたアイドルサイクル数と前記強制されたアイドルサイクルの数の和が、前記所定アイドルサイクル数に等しいことを特徴とする請求項１に記載のメモリシステム。
【請求項３】
前記メモリコントローラが前記メモリブロックに対して外部アクセスを開始させ、前記リフレッシュ制御回路が、常に前記外部アクセスを未処理のリフレッシュリクエストより優先させるアクセスアービタを有することを特徴とする請求項１に記載のメモリシステム。
【請求項４】
前記リフレッシュコントローラが、
前記第１の時間を前記所定アイドルサイクル数で除して与えられる第２の時間の終点にて制御信号をアサートするリフレッシュタイマと、
前記リフレッシュタイマが前記制御信号をアサートする度に第１の方向にカウントし、前記メモリセルアレイにリフレッシュリクエストが実行される度に第２の方向にカウントするカウンタとを有することを特徴とする請求項１に記載のメモリシステム。
【請求項５】
前記カウンタが、前記制御信号のアサーションの数を、前記所定数に至るまで蓄積するべく構成されることを特徴とする請求項４に記載のメモリシステム。
【請求項６】
前記リフレッシュマネージャが、
前記システムバス上のアイドルサイクル数が前記所定アイドルサイクル数に等しい時フル信号を生成するような、前記システムバス上のアイドルサイクルの数をカウントするためのアイドルサイクルカウンタと、
前記リフレッシュカウンタが、前記アイドルサイクルカウンタより前記フル信号をレシーブすることなく前記第１の時間カウントした場合、前記システムバス上にアイドルサイクルを強制するべく第１の制御信号をアサートするような、前記第１の時間カウントするためのリフレッシュカウンタとを有することを特徴とする請求項１に記載のメモリシステム。
【請求項７】
前記リフレッシュマネージャが更に、外部アクセスリクエスト信号及び前記第１の制御信号をレシーブするべく接続されたアクセスサスペンダを含み、前記アクセスサスペンダは、前記第１のコントロール信号がアサートされた場合、前記外部アクセスリクエスト信号をディスエーブルにすることを特徴とする請求項６に記載のメモリシステム。
【請求項８】
更に前記システムバスに接続された第２のメモリブロックを有し、
前記第２のメモリブロックが、
リフレッシュを必要とする第２メモリセルアレイと、
前記システムバス上の１以上の制御信号に応じて前記第２メモリセルアレイのアイドルサイクルを検出し、周期的にリフレッシュリクエストを発生し、かつ前記第２メモリセルアレイのアイドルサイクルを検出したことに応じて未処理のリフレッシュリクエストを実行するように構成された第２のリフレッシュ制御回路を有する請求項１に記載のメモリシステム。
【請求項９】
メモリシステムであって、
システムバスと、
それぞれ、リフレッシュを必要とするメモリセルアレイと、リフレッシュ制御回路とを有する、前記システムバスに接続された１つ若しくは複数のメモリブロックからなる第１のメモリブロックのセットであって、前記リフレッシュ制御回路は、前記システムバス上の１以上の制御信号に応じて前記メモリセルアレイのアイドルサイクルを検出し、周期的にリフレッシュリクエストを発生し、かつ前記メモリセルアレイのアイドルサイクルを検出したことに応じて未処理のリフレッシュリクエストを実行するように構成された、該第１のメモリブロックのセットと、
それぞれ、リフレッシュを必要とするメモリセルアレイと、リフレッシュ制御回路とを有する、前記システムバスに接続された１つ若しくは複数のメモリブロックからなる第２のメモリブロックのセットであって、前記リフレッシュ制御回路は、前記システムバス上の１以上の制御信号に応じて前記メモリセルアレイのアイドルサイクルを検出し、周期的にリフレッシュリクエストを発生し、かつ前記メモリセルアレイのアイドルサイクルを検出したことに応じて未処理のリフレッシュリクエストを実行するように構成された、該第２のメモリブロックのセットと、
第１の時間に前記システムバス上でアイドルサイクル数をモニタするべく構成され、前記第１の時間にモニタされたアイドルサイクル数が所定のアイドルサイクル数よりも少ない場合、前記システムバス上に１つ若しくは複数のアイドルサイクルを強制するリフレッシュマネージャを含む前記システムバスに接続されたメモリコントローラであって、前記所定のアイドルサイクル数が２以上で、前記第１の時間に実行されるべき必要なリフレッシュ操作の数に一致するように選択される、該メモリコントローラとを有し、
前記リフレッシュ制御回路は、前記システムバス上に強制された１つ若しくは複数のアイドルサイクルのそれぞれを、前記メモリセルアレイの１つのアイドルサイクルとして検出し、それによって前記リフレッシュ制御回路は前記システムバス上に強制された１つ若しくは複数のアイドルサイクルに応じて未処理のリフレッシュリクエストを実行するように構成されていることを特徴とするメモリシステム。
【請求項１０】
前記リフレッシュマネージャが、前記第１の時間におけるメモリブロックの前記第１のセットのアイドルサイクルの第１の数及び前記第１の時間におけるメモリブロックの前記第２のセットのアイドルサイクルの第２の数をモニタするべく構成され、前記アイドルサイクルのモニタされた第１若しくは第２の数のどちらかが前記所定のアイドルサイクルの数よりも少ない場合のみ、前記システムバス上に１つ若しくは複数のアイドルサイクルを強制することを特徴とする請求項９に記載のメモリシステム。
【請求項１１】
メモリシステムであって、
システムバスと、
リフレッシュを必要とするメモリセルアレイと、リフレッシュ制御回路とを有する、前記システムバスに接続されたメモリブロックであって、前記リフレッシュ制御回路は、前記システムバス上の１以上の制御信号に応じて前記メモリセルアレイのアイドルサイクルを検出し、周期的にリフレッシュリクエストを発生し、かつ前記メモリセルアレイのアイドルサイクルを検出したことに応じて未処理のリフレッシュリクエストを実行するように構成された、該メモリブロックと、
前記システムバスに接続され、所定の時間の後前記システムバス上に所定のアイドルサイクル数を強制するべく構成されたリフレッシュマネージャを有するメモリコントローラであって、前記所定のアイドルサイクル数が２以上で、前記第１の時間に実行されるべき必要なリフレッシュ操作の数に一致するように選択される、該メモリコントローラとを有し、
前記リフレッシュ制御回路は、前記システムバス上に強制された１つ若しくは複数のアイドルサイクルのそれぞれを、前記メモリセルアレイの１つのアイドルサイクルとして検出し、それによって前記リフレッシュ制御回路は前記システムバス上に強制された１つ若しくは複数のアイドルサイクルに応じて未処理のリフレッシュリクエストを実行するように構成されていることを特徴とするメモリシステム。。
【請求項１２】
前記メモリコントローラが前記メモリブロックに対して外部アクセスを開始させ、前記リフレッシュ制御回路が、常に前記外部アクセスを未処理のリフレッシュリクエストより優先させるアクセスアービタを有することを特徴とする請求項１１に記載のメモリシステム。
【請求項１３】
前記リフレッシュマネージャが前記所定の数のアイドルサイクルが前記システムバス上に強制される場合、外部アクセスリクエスト信号をディスエーブルにするべく構成されたアクセスサスペンダを更に含むことを特徴とする請求項１１に記載のメモリシステム。
【請求項１４】
更に前記システムバスに接続された第２のメモリブロックを有し、
前記第２のメモリブロックが、
リフレッシュを必要とする第２メモリセルアレイと、
前記システムバス上の１以上の制御信号に応じて前記第２メモリセルアレイのアイドルサイクルを検出し、周期的にリフレッシュリクエストを発生し、かつ前記第２メモリセルアレイのアイドルサイクルを検出したことに応じて未処理のリフレッシュリクエストを実行するように構成された第２のリフレッシュ制御回路を有する請求項１１に記載のメモリシステム。
【請求項１５】
リフレッシュを必要とするメモリセルのアレイを有するメモリブロックに接続されたシステムバスを有するメモリシステムを動作させる方法であって、
前記システムバス上の１以上の制御信号に応じて前記メモリセルアレイのアイドルサイクルを検出する過程と、
前記メモリブロック内で周期的にリフレッシュリクエストを発生する過程と、
前記メモリセルアレイのアイドルサイクルを検出したことに応じて前記メモリブロックにおいて未処理のリフレッシュリクエストを実行する過程と、
第１の時間に前記システムバス上のアイドルサイクルの数をモニタする過程と、
前記第１の時間に前記モニタされたアイドルサイクルの数が所定のアイドルサイクル数よりも少ない場合、前記システムバス上に１つ若しくは複数のアイドルサイクルを強制する過程であって、前記所定のアイドルサイクル数が２以上で、前記第１の時間に実行されるべき必要なリフレッシュ操作の数に一致するように選択される、該過程と、
前記システムバス上に強制された１つ若しくは複数のアイドルサイクルのそれぞれを、前記メモリセルアレイの１つのアイドルサイクルとして検出する過程であって、それによって前記システムバス上に強制された１つ若しくは複数のアイドルサイクルに応じて未処理のリフレッシュリクエストが実行される、該過程とを有することを特徴とする方法。
【請求項１６】
更に、前記モニタされたアイドルサイクル数と前記強制されたアイドルサイクルの数の和が前記所定アイドルサイクル数に等しいように、前記強制されたアイドルサイクル数を制御する過程とを有する請求項１５に記載の方法。
【請求項１７】
前記システムバス上の前記メモリブロックに対して外部アクセス要求を提供する過程と、
前記メモリブロック中で未処理のリフレッシュリクエストよりも前記外部アクセスリクエストを常に優先する過程とを更に含む請求項１５に記載の方法。
【請求項１８】
前記リフレッシュリクエストを前記所定数まで蓄積する過程を更に有する請求項１５に記載の方法。
【請求項１９】
更に、前記システムバス上の前記アイドルサイクル数をカウントする過程と、
前記システムバス上の前記アイドルサイクル数が前記所定のアイドルサイクル数に等しい場合、フル信号を生成する過程と、
前記第１の時間が終了し前記フル信号が生成されない場合、前記システムバス上にアイドルサイクルを強制する過程とを更に含む請求項１５に記載の方法。
【請求項２０】
アイドルサイクルが前記システムバス上に強制される場合、外部アクセス信号をディスエーブルにする過程を更に有する請求項１９に記載の方法。
【請求項２１】
システムバス、前記システムバスに接続されたリフレッシュを必要とする１つ若しくは複数のメモリブロックの第１のセット、及び前記システムバスに接続されたリフレッシュを必要とする１つ若しくは複数のメモリブロックの第２のセットを有するメモリシステムを操作する方法であって、
前記システムバス上の１以上の制御信号に応じて各メモリブロック内のアイドルサイクルを検出する過程と、
前記メモリブロック内で周期的にリフレッシュリクエストを発生する過程と、
前記メモリブロック内のアイドルサイクルを検出したことに応じて各メモリブロックにおいて未処理のリフレッシュリクエストを実行する過程と、
第１の時間に、前記システムバス上のアイドルサイクル数をモニタする過程と、
前記第１の時間に、前記アイドルサイクルのモニタされた数が所定のアイドルサイクル数よりも少ない場合、前記システムバス上に１つ若しくは複数のアイドルサイクルを強制する過程であって、前記所定のアイドルサイクル数が２以上で、前記第１の時間に実行されるべき必要なリフレッシュ操作の数に一致するように選択される、該過程と、
前記システムバス上に強制された１つ若しくは複数のアイドルサイクルのそれぞれを、各メモリブロック内の１つのアイドルサイクルとして検出する過程であって、それによって前記システムバス上に強制された１つ若しくは複数のアイドルサイクルに応じて各メモリブロック内の未処理のリフレッシュリクエストが実行される、該過程とを有することを特徴とする方法。
【請求項２２】
前記第１の時間に、メモリブロックの前記第１のセットにおけるアイドルサイクルの第１の数をモニタし、
前記第１の時間に、メモリブロックの前記第２のセットにおけるアイドルサイクルの第２の数をモニタし、
前記アイドルサイクルのモニタされた第１の数若しくは第２の数のどちらかが前記所定のアイドルサイクル数よりも少ない場合のみ、前記システムバス上に１つ若しくは複数のアイドルサイクルを強制する過程とを更に有する請求項２４に記載の方法。
【請求項２３】
リフレッシュを必要とするメモリセルのアレイを有するメモリブロックに接続されたシステムバスを有するメモリシステムを動作させる方法であって、
前記システムバス上の１以上の制御信号に応じて前記メモリセルアレイのアイドルサイクルを検出する過程と、
前記メモリブロック内で周期的にリフレッシュリクエストを発生する過程と、
前記メモリセルアレイのアイドルサイクルを検出したことに応じて前記メモリブロックにおいて未処理のリフレッシュリクエストを実行する過程と、
所定の時間後、前記システムバス上に所定のアイドルサイクル数を強制する過程であって、前記所定のアイドルサイクル数が２以上で、前記第１の時間に実行されるべき必要なリフレッシュ操作の数に一致するように選択される、該過程と、
前記システムバス上に強制された１つ若しくは複数のアイドルサイクルのそれぞれを、前記メモリセルアレイの１つのアイドルサイクルとして検出する過程であって、それによって前記システムバス上に強制された１つ若しくは複数のアイドルサイクルに応じて未処理のリフレッシュリクエストが実行される、該過程とを有することを特徴とする方法。
【請求項２４】
前記システムバス上の前記メモリブロックに対して外部アクセス要求を提供する過程と、
前記メモリブロック中で未処理のリフレッシュリクエストよりも前記外部アクセスリクエストを常に優先させる過程とを更に含む請求項２３に記載の方法。
【請求項２５】
前記リフレッシュリクエストを前記所定数まで蓄積する過程を更に有する請求項２３に記載の方法。
【請求項２６】
所定数のアイドルサイクルが前記システムバス上に送り出された場合、更に外部アクセスリクエスト信号をディスエーブルにする過程を有する請求項２３に記載の方法。
【発明の詳細な説明】
【０００１】
（技術分野）
本発明は周期的にリフレッシュされる必要のある半導体メモリに関する。更に詳しくは、本発明はメモリのアイドルサイクルの間に半導体メモリに於いてリフレッシュ動作を実行するための方法及び装置に関する。
【０００２】
（背景技術）
動的ランダムアクセスメモリ（DRAM）のような幾つかの従来の半導体メモリは、有効なデータを保存する目的で周期的にリフレッシュされなければならない。典型的には、リフレッシュ動作中の外部アクセスは許可されない。加えて、機構はメモリコントローラへDRAMがリフレッシュ動作を実行していることを通知することを要求される。どのような保留メモリトランザクションも、リフレッシュ動作が完了するまで遅延されるべきである。リフレッシュ動作はそれ故メモリアクセスのための全体のアクセス時間を延長する。それ故外部メモリアクセスに於けるリフレッシュ動作の影響を最小にするようなメモリシステムを設計することが重要である。
【０００３】
多くのその他の方法がこれら半導体メモリをリフレッシュするために提案されてきた。一般的に「CAS before RAS」として言及されるそれらの方法の１つはロウアクセス信号RAS#をアサートするのに先立ちカラムアクセス信号CAS#をアサートすることによって、外部装置がリフレッシュ動作に合図を送る。通常のアクセス中、カラムアドレスストローブ信号RAS#はカラムアドレスストローブ信号CAS#より前にアサートされる。「CAS before RAS」状態の検出に応じて、メモリはリフレッシュ動作を実行する。リフレッシュ動作は典型的にはリフレッシュされるべきメモリのロウを読み取ることで実行される。「CAS before RAS」リフレッシュスキームは、１９９１年にMemory Products Date Book（uPD424248 262,144x4-Bit Dynamic CMOS RAM, NEC Electronics, pp 6-101 to 6-113）に記述されている。この参考文献はまた「CAS before RAS」リフレッシュ方法のバリエーションである隠されたリフレッシュを図示してもいる。リフレッシュのためのこれらの方法は半導体メモリ及び外部装置との間のハンドシェイクコミュニケーション（handshake communication）を要求し、外部装置にメモリのリフレッシュを制御させる。
【０００４】
周期的にリフレッシュされるべきその他の従来の半導体メモリはシンクロナスDRAM（SDRAM）である。ある従来のSDRAMは外部装置より受信された制御信号（例えばRAS#、CAS#、CS#、WE#、及びCKE）に応じてリフレッシュ動作を開始させる。これらの制御信号はSDRAMのリフレッシュ動作を制御するために用いられるコマンドコードを提供するべくデコードされる。例えば、制御信号RAS#、CAS#、CS#、WE#、及びCKEが０、０、０、１、及び１の値を有する時、自動リフレッシュ動作を開始させるための制御コードが生成される。同時に、同様の制御信号が０、０、０、１、及び０の値を有する場合、自己リフレッシュ動作を開始させるための制御コードが生成される。このSDRAMはその詳細が、IBM0316409C, l6Mbit Synchronous DRAM data sheet（1996, IBM Corporation）に記述されている。
【０００５】
その他のシンクロナスDRAMはメモリリフレッシュの処理のための明示（explicit）コマンドコードを用いて来た。これらはSLDRAM「4M x 18 SLDRAM CONS400.P65 - Rev. 9/22/97, 400 Mb/s/pin SLDRAM SLD4M18DR400 4Mxl8 SLDRAM Data Sheet, SLDRAM Consortium」及びRambus DRAM（RDRAM）を含む。[Direct Rambus Technology Disclosure, 30 10/15/97, Rambus Inc.]上述されたコマンドコードの全ては外部装置によって生成され、またメモリ装置と通信されるべきであって、それによって半導体メモリに対するインタフェースを複雑にする。インタフェースはその時、SRAMのようなよりシンプルな装置のインタフェースと矛盾するようになる。
【０００６】
別の従来のDRAMリフレッシュスキームは特定のリフレッシュ制御信号を組み込む。これらのスキームは拡張DRAM（EDRAM）「DM2202/2212 EDRAM, lMbx4 Enhenced Dynamic RAM, 1994, Ramtron International Corporation」及びキャッシュDRAM（CDRAM）「Dosaka at. al, US Patent No. 5,559,750」によって例証される。EDRAM及びCDRAMの双方に於いて、特定の外部リフレッシュ信号がリフレッシュ動作を開始させるべく用いられる。前述の装置の外部信号に顕著であるが、この追加的な外部信号はSRAM及びその他のシンプルなインタフェース装置と互換性を持たない。
【０００７】
DRAMの用いられていないアイドルメモリサイクル間のリフレッシュ動作を実行するためのスキームが、本発明者により米国特許出願番号第09/076,608号の「Method And Structure For Controlling Operation Of A DRAM Array」、米国特許出願番号第09/037,396号の「Method And Apparatus For l-T SRAM Compatible Memory」、米国特許出願番号第09/165,228号「Method And Apparatus For Complete Hiding Of The Refresh Of A Semiconductor Memory」、及び米国特許出願番号第09/181,840号「Method And Apparatus For Increasing The Time Available For Refresh For l-T SRAM Compatible Devices」で言及されている。
【０００８】
（発明の開示）
それにより本発明はメモリコントローラ及び１つ若しくは複数の一般的にシステムバスへと接続されたメモリブロックとを有するメモリシステムを提供する。各々のメモリブロックは有効なデータを保持するために周期的にリフレッシュされる必要のあるメモリセルのアレイを有する。各々のメモリブロックはまたメモリアレイのアイドルサイクルの間メモリセルをリフレッシュするリフレッシュコントロール回路を有する。
【０００９】
メモリコントローラはリフレッシュ時間に、システムバス上のアイドルサイクルの数をモニタするリフレッシュマネージャを有し、リフレッシュ時間にモニタされた数のアイドルサイクルがアイドルサイクルの所定の数よりも少ない場合、システムバス上に１つ若しくは複数のアイドルサイクルを送り出す。例えば１つの実施例に於いて、メモリセルの８つのロウのためのリフレッシュ時間は20.48μ秒である。リフレッシュマネージャが20.48μ秒のリフレッシュ時間にシステムバス上の８つのアイドルサイクルよりも少ない数を検出した場合、リフレッシュマネージャはリフレッシュ時間の終点（end）に於けるシステムバス上へ適切な数のアイドルサイクルを送り出す。例えばリフレッシュマネージャがリフレッシュ時間にシステムバス上の６つのアイドルサイクルのみを検出する場合、リフレッシュマネージャはリフレッシュ時間の終点に於いてシステムバス上に２つの追加的なアイドルサイクルを送り出してもよい。結果として８つのアイドルサイクルがシステムバス上に提供される。各々のメモリブロックがシステムバス上のアイドルサイクルの間保留リフレッシュ動作を実行する。結果としてメモリセルの８つのロウが常にリフレッシュ時間の終点の８つのサイクル（若しくはより短いサイクル）内で常にリフレッシュされる。リフレッシュマネージャがリフレッシュ時間の終点に於いて幾つかのアイドルサイクルを送り出さなくてもよい確率も比較的高い。更にはアイドルサイクルが送り出されたとしても、これらのアイドルサイクルのために要求される最大の時間はリフレッシュ時間の小部分（例えば0.4％）である。
【００１０】
アイドルサイクルが押しやられている間、リフレッシュマネージャはメモリシステムのアクセスクライアントにメモリアクセスが延期され得ることを通知する制御信号をアサートする。アイドルサイクルが送り出された後、リフレッシュマネージャはアクセスクライアントにメモリアクセスが進行できることを通知するべく制御信号をデアサートする。
【００１１】
特殊な実施例に於いて、リフレッシュマネージャはシステムバス上のアイドルサイクルの数をカウントするためのアイドルサイクルカウンタを有する。システムバス上のアイドルサイクルの数がアイドルサイクルの所定の数と等しい時、アイドルサイクルカウンタはFULL信号を生成する。リフレッシュカウンタはFULL信号をレシーブするために接続される。アイドルサイクルカウンタよりFULL信号をレシーブするのに先立ちリフレッシュ時間が終了することをリフレッシュカウンタが確定した場合、リフレッシュカウンタはシステムバス上にアイドルサイクルを送り出す制御信号をアサートする。リフレッシュカウンタがリフレッシュ時間の満了に先立ってFULL信号をレシーブする場合、リフレッシュカウンタはリセットされ、それにより新しいリフレッシュ時間が開始される。
【００１２】
各々のメモリブロック内で、アクセスアービタは（メモリコントローラにより開始される）外部アクセスリクエスト及び（メモリブロック内で生成される）リフレッシュリクエストをレシーブする。アクセスアービタはどのような保留外部アクセスリクエストも常に優先して許可する。アクセスアービタは保留外部アクセスリクエストが存在しない場合のみリフレッシュリクエストが認可される事を許可する。結果として、リフレッシュリクエストは外部アクセスリクエストを妨げない。リフレッシュ動作は自然に発生するアイドルサイクル若しくは送り出されたアイドルサイクルの間働く。
【００１３】
その他の実施例に於いてメモリブロックは論理的に２つ若しくはそれより多いセットへと分割される。この実施例ではリフレッシュマネージャはリフレッシュ時間にメモリブロックの各々のセット内で発生するアイドルサイクルの数をモニタする。リフレッシュマネージャはリフレッシュ時間にメモリブロックの少なくとも１つのセットに於いて発生するアイドルサイクルの数がアイドルサイクルの所定の数よりも小さい場合のみシステムバスのアイドルサイクルを送り出す。
【００１４】
本発明の更に別の実施例に於いて、リフレッシュマネージャはリフレッシュ時間に発生するアイドルサイクルの数に関係なく、リフレッシュ時間が終了になった後にシステムバス上に所定の数のアイドルサイクルを送り出すべく修正される。例えばリフレッシュマネージャは各リフレッシュ時間の終点で８つのアイドルサイクルを送り出す。
【００１５】
（発明を実施するための最良の形態）
従来技術に照らして、外部メモリアクセスに於けるリフレッシュ操作の影響が最小化されるようなメモリ装置を構築する事が求められた。よって本発明は、リフレッシュ操作の大部分がアイドルメモリサイクル間のメモリ装置に於いて進行するようなメモリシステムを提供する。アイドルメモリサイクルとは、メモリ装置に対する進行中若しくは保留中のメモリアクセスが存在しないクロックサイクルの事である。
【００１６】
飽和は、メモリアクセスがメモリリフレッシュに必要とされる時間よりも長い時間に渡って持続される場合生じ得る。この場合、本発明はメモリアクセスを中断させ、アイドルサイクルにリフレッシュ操作を実行させる。しかし本発明に於いてリフレッシュ操作を実行する機構は、明示的なコマンドコード若しくは信号の使用のような外部信号を要求しない。このことは例えばSRAMと互換可能な単純なメモリインタフェースの具体化を許可する。
【００１７】
図１は本発明の１つの実施例によるメモリシステム１０のブロック図である。メモリシステム１０はメモリブロック１００−１１５及びメモリコントローラ１２０を有する。メモリコントローラ１２０はプロセッサ若しくはシステムロジック（system logic）の一部であり得る。各メモリブロック１００−１１５は、有効なデータを保持するために周期的なリフレッシュを必要とするDRAMセルのアレイを有する。メモリブロック１０２−１１４は簡潔にする目的で図示されていない。本実施例がリフレッシュを必要とするメモリブロック（例えばSRAM装置）を有するとは言え、リフレッシュを必要としないその他のメモリ装置がメモリブロック１００−１１５と同様に同一のバスに接続され得る。各メモリブロック１００−１１５はメモリコントローラ１２０よりも次の信号をレシーブするべく接続されている。その信号とは双方向（bi-directional）データ信号DQ[31:0]、外部アドレス信号EA[22:0]、アドレスストローブ信号ADS#、及び書き込み／読み出し可能信号WR#である。各メモリブロック１００−１１５は専用のチップセレクト信号CS#をレシーブする。例えばメモリブロック１００及び１０１はチップセレクト信号CS#[0]及びCS#[l]をそれぞれレシーブする。クロック信号CLKはメモリブロック１００−１１５及びメモリコントローラ１２０の間のメモリトランザクションを同期させるべく提供される。
【００１８】
記述された実施例に於いて、メモリブロック１００−１１５は同一である。しかしその他の実施例に於いてこれらメモリブロックは異なった回路を含んでもよい。更に１６のメモリブロックが記述されているが、その他の実施例に於いてその他の数のメモリブロックであってもよいことがご理解頂けよう。CS#信号の数はしかるべく変化し得る。加えて、その他の幅を有するデータ及びアドレス信号がその他の実施例に於いて用いられてもよい。
【００１９】
各メモリブロック１００−１１５はDRAMメモリセルの複数のロウ及びカラムを有する１つ若しくは複数のメモリアレイを有する。各メモリブロック１００−１１５はまた、DRAMに関連する全ての従来の回路、例えばワード線ドライバ、センスアンプ及びカラムマルチプレクサ等を含む。その他の実施例に於いてメモリブロック１００−１１５は加えてリフレッシュ操作を必要としないメモリアレイを有する。
【００２０】
図２はメモリブロック１００の略図である。メモリブロック１００は、メモリアレイ２０１、センスアンプ２０２、マルチプレクサ２０３、入／出力バッファ２０４、メモリアレイシーケンサ２０５、アクセスアービタ２０６、リフレッシュコントローラ２０７、外部アクセスコントロール２０８、トランスミッションゲート２０９及び２１０、及びアドレスラッチ２１１を有する。
【００２１】
記述された実施例に於いて、各メモリブロック１００−１１５は、独自のメモリアレイシーケンサ２０５、アクセスアービタ２０６、リフレッシュコントローラ２０７、外部アクセスコントロール２０８、トランスミッションゲート２０９及び２１０、及びアドレスラッチ２１１を有する。アドレスラッチ２１１は交差結合（cross-coupled）されたインバータによって形成された複数のストレージ要素を含む。例えばストレージ要素２１２は、交差結合されたインバータ２１３及び２１４を含み、メモリアレイ２０１へと提供されるべくアドレス値の１ビットをストアする。この実施例に於いて、メモリシステム１０は、複数のバンクシステムとして構成され、パラレルな動作が異なったバンクに於いて同時に動作し得ることを特徴とする。このような多重バンクメモリ構造は本発明者によって"Method And Apparatus For l-T SRAM Compatible Memory"とタイトルされた米国出願番号第09/037,396号に記述されているものと類似する。
【００２２】
その他の実施例に於いて複数のメモリアレイ（例えば２０１のようなもの）は、単一のメモリアレイシーケンサ２０５、アクセスアービタ２０６、リフレッシュコントローラ２０７、外部アクセスコントロール２０８、トランスミッションゲート２０９及び２１０、及びアドレスラッチ２１１によって制御される。
【００２３】
本実施例に於いてメモリアレイ２０１は8K（8192）のロウ及び8Kのカラムを有し、６４メガビットのメモリをもたらす。各メモリ記憶位置にアクセスするため、外部アドレス信号EA[22:0]は各メモリブロック１００−１１５へと提供される。その他の実施例に於いてはメモリアレイ２０１が異なったサイズを有し、それによって異なる数の外部アドレス信号を要求することがご理解頂けよう。データを感知し、復元し、及び書き込み動作を行うセンスアンプ回路２０２に於けるセンスアンプはメモリアレイ２０１に於ける各カラムと関連する。各メモリアクセス間にメモリアレイ２０１の１つのロウが活動化され、そのロウの8Kのメモリセルが各カラムに於けるセンスアンプ２０２へと接続される。センスアンプ２０２はマルチプレクサ２０３を介して入／出力バッファ２０４へと接続される。
【００２４】
記述された実施例に於いて、メモリコントローラ１２０は全体の外部アドレスEA[22:0]をアドレスバスへと一度でドライブ（drive）する。しかし、アドレスが別個のクロックサイクル若しくはクロック位相部分でアドレスバスへと多重送信され、それにより要求された数のアドレス信号を減少させることがご理解頂けよう。好適な実施例に於いて、アドレスストローブ信号ADS#及びシステムクロックCLK信号方式は、ペンティアム（登録商標）プロセッサ3.3VパイプラインBSRAM仕様バージョン2.0（May 25, 1995, Intel）に於いて述べられた同期式（synchronous）静的ランダムアクセスメモリのためのインダストリスタンダード（industry standard）と類似する。
【００２５】
外部アクセスは以下のように働く。外部アクセスコントロール２０８はメモリコントローラ１２０より書き込み／読み出し信号WR#、アドレスストローブ信号ADS#、システムクロック信号CLK、及び外部アドレス信号EA[22:0]をレシーブするために結合される。これらの信号に応じて、外部アクセスコントロール２０８は（外部アドレス信号EA[22:0]と等しい）外部アクセスアドレスEAAを生成し、アクセス保留可能信号EAPEN#をアサートする。
【００２６】
メモリブロック１００へのメモリアクセスを開始するために、メモリコントローラ１２０はアドレスストローブ信号ADS#をローにアサートし、チップ選択信号CS#[0]をローにアサートし、外部アドレスバス上に外部アドレス信号EA[22:0]を提供する。CLK信号の上がりエッジ（rising edge）に於いて、外部アクセスコントロール２０８はアドレスストローブ信号ADS#及びチップ選択信号CS#[0]の状態を評価する。もし両方の信号がローであると検出される場合、外部アクセスコントロール２０８は外部アクセス保留信号EAPEN#をローにアサートすることにより外部アクセスを開始させる。
【００２７】
アクセスアービタ２０６は外部アクセス保留信号EAPEN#をレシーブするために接続されている。ローの外部アクセス保留信号EAPEN#を検出に際して、アクセスアービタ２０６はハイの外部アドレス選択信号EASELをアサートする。ハイの外部アドレス選択信号EASELはトランスミッションゲート２１０に対して外部アクセスコントロール２０８よりアドレスラッチ２１１へと外部アクセスアドレスEAAを経路指定する。アドレスラッチ２１１はメモリアレイ２０１へと外部アクセスアドレスEAAを提供する。ローの外部アクセス保留信号EAPEN#の検出に際し、アクセスアービタ２０６はメモリアレイシーケンサ２０５へと提供される外部アクセス信号EA#をアサートする。ローをアサートされた外部アクセス信号EA#に応じて、メモリアレイシーケンサ２０５はロウアドレスストローブRAS#、カラムアクセスストローブCAS#、センスアンプ可能SEN#、及びプリチャージPRC#のDRAM制御信号を、メモリアレイ２０１へとアレイの動作を制御の為に提供する。セルフタイム法（self-timed manner）でRAS#、CAS#、SEN#、及びPRC#の信号を生成する方法が、本発明者により"Method And Structure For Controlling Operation Of A DRAM Array"とタイトルされた米国特許出願番号第09/076,608号に言及されており、ここで言及したことで本明細書の一部とされたい。この方法でRAS#、CAS#、SEN#、及びPRC#の信号を生成することは、メモリサイクルが１つのクロックサイクル中で完了することを可能とする。
【００２８】
外部メモリアクセスを除く各クロックサイクルはアイドルクロックサイクルと呼ばれる。メモリのリフレッシュ操作はメモリアレイ２０１のロウを読み出すことによってアイドルクロックサイクル間に動作し得る。リフレッシュコントローラ２０７はアクセスアービタ２０６へと提供されるリフレッシュ保留可能信号RFPEN#、及びトランスミッションゲート２０９へと提供されるリフレッシュアドレスRFAを生成する。リフレッシュコントローラ２０７は、アクセスアービタ２０６よりリフレッシュ肯定応答信号RFACK#をレシーブするために接続される。リフレッシュアドレスRFAはリフレッシュされるべきメモリアレイ２０１のロウのアドレスである。メモリアレイ２０１は一度に１つのロウがリフレッシュされ、本実施例に於いては8Kのリフレッシュを要求する。リフレッシュコントローラ２０７はメモリアレイ２０１が適当にリフレッシュされることを確実にするためのリフレッシュリクエストを生成する。このように生成されたリフレッシュリクエストのタイミングはメモリアレイ２０１のシステムクロックスピード及びメモリ保存時間より決定される。１００ＭＨのシステムクロックスピード、及び21.05ミリ秒の総合的なメモリ保存時間の間、リフレッシュコントローラ２０７は少なくとも各2.56ミリ秒毎にリフレッシュリクエストを生成する。一般的にリフレッシュ時間は、メモリアレイ２０１のデータ保存時間が、メモリアレイ２０１の各ロウをリフレッシュするために必要とされる最大限実行可能な時間よりも長くなることを確実にするべく選択される。
【００２９】
メモリアレイ２０１のロウをリフレッシュするリクエストが保留される時、リフレッシュコントローラ２０７はリフレッシュ保留可能信号RFPEN#をローにアサートする。外部アクセス保留シグナルEAPEN#がハイであり外部アクセスが保留されないことを示す場合、アクセスアービタ２０６が、一つのクロックサイクルの間でリフレッシュ肯定応答信号RFACK#をローにし、またリフレッシュアドレス選択信号RASELをハイにすることによって、リフレッシュ操作を開始する。トランスミッションゲート２０９は、ハイのリフレッシュアドレス選択信号RASELをレシーブし、それに応じてリフレッシュアドレスRFAをリフレッシュコントローラ２０７よりアドレスラッチ２１１へと経路指定する。アドレスラッチ２１１はリフレッシュアドレスRFAをメモリアレイ２０１へと提供する。
【００３０】
外部アクセス保留信号EAPEN#のハイの状態及びリフレッシュ保留可能信号RFPEN#のローの状態は、またアクセスアービタ２０６にメモリアレイシーケンサ２０５へと提供されるリフレッシュ信号RF#がローであるとアサートさせる。ローをアサートされたリフレッシュ信号RF#に応じて、メモリアレイシーケンサ２０５は、ロウアドレスストローブ信号RAS#、センスアンプ可能信号SEN#、及びプレチャージ信号PRC#のDRAM制御信号を、メモリアレイ２０１へと、メモリアレイ２０１の動作の制御を目的として提供する。結果として、リフレッシュアクセスは、リフレッシュアドレスRFAにより識別されたロウのアドレスへと実行される。カラムアドレスストローブCAS#はリフレッシュサイクル間、活動化されない。アクセスアービタ２０６は、リフレッシュ動作が実行された事をリフレッシュコントローラ２０７へと示すために、論理ローリフレッシュ肯定応答信号RFACK#をアサートする。これらの動作のタイミングは図３に示されている。
【００３１】
図３は本発明の１つの実施例による様々な信号のタイミングの波形図である。波形図は３つの連続したクロックサイクルT1-T3の間のメモリブロック１００における書き込み、読み出し、及びリフレッシュの動作を図示する。メモリコントローラ１２０は、１つのクロックピリオドにおいてメモリサイクルを完成させる。メモリサイクルが１つのクロックピリオドのみをとるので、メモリブロック１００は各クロックサイクルにおいて１つの外部メモリアクセスもしくはメモリロウリフレッシュを処理しうる。各クロックサイクルは、クロック信号CLKの上がりエッジにおいて開始する。
【００３２】
外部の書き込みアクセスを開始するために、メモリコントローラ１２０はメモリブロック１００へアクセスする目的でアドレスストローブ信号ADS#及びチップ選択信号CS#[0]の両方をローにアサートする。例えば、チップ選択信号CS#[0]はアドレスストローブ信号ADS#と同一でも良い。メモリコントロール１２０はまた、外部アドレスバス上に書き込みアドレスA1を提供し、また外部データバス上に書き込みデータ値を提供する。メモリコントローラ１２０は、更に論理ハイ書き込み/読み出し信号WR#を提供し、それによって外部アクセスが書き込みアクセスであることを表す。サイクルT1の間システムクロック信号CLKの上がりエッジにおいて、外部アクセスコントロール２０８は、アドレスストローブ信号ADS#及びチップ選択信号CS#[0]の状態を評価する。ローのアドレスストローブ信号ADS#、ローのチップ選択信号CS#[0]、及びハイの書き込み/読み出し信号WR#の検出に当たって、外部アクセスコントロール２０８は外部書き込みアクセスを開始させる。外部アクセスコントロール２０８は外部アクセス保留信号EAPEN#をローにアサートする。アクセスアービタ２０６へと提供されるローの外部アクセス保留信号EAPEN#は、アクセスアービタ２０６に対して外部アクセス信号EA#をローにアサートさせる。ローにアサートされた外部アクセス信号EA#に応じて、メモリアレイシーケンサ２０５はアレイの書き込み操作を制御するために、メモリアレイ２０１へとロウアドレスストローブ信号RAS#及びカラムアドレスストローブ信号CAS#のDRAM制御信号を提供する。アクセスアービタ２０６はまた、トランスミッションゲート２１０へ論理ハイ外部アドレス選択信号EASELを提供し、それによってトランスミッションゲート２１０に書き込みアドレスA1をアドレスラッチ２１１へと経路指定させる。アドレスラッチ２１１はメモリアレイ２０１へと書き込みアドレスA1を提供する。
【００３３】
サイクルT2の初期にシステムクロック信号CLKの上がりエッジに先立って、メモリコントローラ１２０は、再びメモリブロック１００へアクセスするためにアドレスストローブ信号ADS#及びチップ選択信号CS#[0]をローにアサートする。メモリコントローラ１２０はまた、外部アドレスバス上の読み出しアドレスA2も提供する。メモリコントローラ１２０は更に、論理ロー書き込み/読み出し信号WR#を提供し、それによって外部アクセスが読み出しアクセスであることを表す。サイクルT2の間システムクロック信号CLKの上がりエッジで、外部アクセスコントロール２０８は再びアドレスストローブ信号ADS#及びチップ選択信号CS#[0]の状態を評価する。ローのアドレスストローブ信号ADS#、ローのチップ選択信号CS#[0]、及びローの書き込み/読み出し信号WR#の検出に際し、外部アクセスコントロール２０８は外部読み出しアクセスを開始する。外部アクセスコントロール２０８は外部アクセス保留信号EAPEN#をローにアサートし続ける。アクセスアービタ２０６へと提供されるローの外部アクセス保留信号EAPEN#は、外部アクセス信号EA#をローに保つ。ローをアサートする外部アクセス信号EA#に応じて、メモリアレイシーケンサ２０５は、アレイの読み出し操作を制御するために、メモリアレイ２０１へとロウアドレスストローブ信号RAS#及びカラムアドレスストローブ信号CAS#のDRAM制御信号を提供する。アクセスアービタ２０６は、クロックサイクルの半分の時間にトランスミッションゲート２１０へ論理ハイ外部アドレス選択信号EASELを提供し、それによって、トランスミッションゲート２１０に読み出しアドレスA2をアドレスラッチ２１１へと経路指定させる。アドレスラッチ２１１はメモリアレイ２０１へ読み出しアドレスA2を提供する。
【００３４】
システムクロックCLKサイクルT1の間、リフレッシュコントローラ２０７は、リフレッシュが要求されていることを示すべくリフレッシュ保留信号RFPEN#をローにアサートする。上述したように、外部アクセスはまたサイクルT2の間も保留される。それ故、２つの異なった要求がサイクルT2の間保留され、信号の衝突が生じることとなる。アクセスアービタ２０６は、アイドルメモリサイクルまでそのような衝突のケースにおいてリフレッシュリクエストを遅らせるべく働く。アイドルメモリサイクルは外部メモリアクセスを伴わないメモリサイクルである。
【００３５】
サイクルT3におけるシステムクロック信号CLKの上がりエッジにおいて、外部アクセスコントロール２０８は、再びアドレスストローブ信号ADS#及びチップ選択信号CS#[0]の状態を評価する。アドレスストローブ信号ADS#もしくはチップ選択信号CS#[0]のどちらかのハイの状態が、サイクルT3の間アイドルメモリサイクルが存在することを表す。アクセスアービタ２０６は、外部アドレス信号EA#をハイにデアサートし、リフレッシュ信号RF#をローにアサートし、また、ハイのリフレッシュアドレス選択信号RASELを提供することによって、このアイドルメモリサイクル中でリフレッシュが生ずることを許可する。リフレッシュアドレス選択信号RASELはクロックサイクルの半分の時間の間ハイになる。これらの条件下で、トランスミッションゲート２０９は、リフレッシュアドレスRFAをアドレスラッチ２１１を介してメモリアレイ２０１へと経路指定し、また、メモリアドレスシーケンサ２０５は、メモリアレイ２０１をリフレッシュするためにロウアドレスストローブ信号RAS#を提供する。結果として、リフレッシュアクセスはリフレッシュコントローラ２０７によって生成されたリフレッシュアドレスRFAへ実行される。
【００３６】
図４は本発明の１つの実施例にあるアクセスアービタ２０６を表している。本実施例において、アクセスアービタ２０６は２つ入力を有するNANDゲート４０１、２つの入力を有するANDゲート４０３及び４０４、及びインバータ４０２及び４０５を有する。リフレッシュ保留信号RFPEN#は、インバータ４０２を介しNANDゲート４０１の第１の入力端子へと提供される。外部アクセス保留信号EAPEN#は、NANDゲート４０１の第２の入力端子、ANDゲート４０３の第１の入力端子、及び外部アドレス信号EA#としてメモリアドレスシーケンサ２０５へもまた提供される。システムクロックCLKは、ANDゲート４０３の第２の入力端子へと提供される。ANDゲート４０３の出力信号は、外部アドレス選択信号EASELとしてトランスミッションゲート２１０へと提供される。NANDゲート４０１の出力信号は、リフレッシュ信号RF#及びリフレッシュ肯定応答信号RFACK#をメモリアレイシーケンサ２０５及びリフレッシュコントローラ２０７へとそれぞれ提供する。加えて、NANDゲート４０１の出力は、インバータ４０５を介し、ANDゲート４０４の第１の入力端子へと提供される。システムクロックCLKは、ANDゲート４０４の第２の入力端子へと提供される。ANDゲート４０４の出力信号は、リフレッシュアドレス選択信号RASELとしてトランスミッションゲート２０９へと提供される。
【００３７】
アクセスアービタ２０６は、保留外部アクセスの欠落を以外のリフレッシュアクセスを妨げるために機能する。保留外部アクセス及び保留リフレッシュアクセス間のアクセスのコンフリクト（conflict）の場合、外部アクセスが常に優先される。外部アクセスを優先することで、外部アクセスはリフレッシュアクセスによって遅延されない。外部アクセス保留信号EAPEN#がローでありこのサイクル中の外部メモリアクセスを表している場合、NANDゲート４０１の出力信号は、リフレッシュ保留信号RFPEN#の状態にかかわらずハイでありうる。外部アドレス信号EA#はローをアサートし、リフレッシュ信号RF#はハイをデアサートし、外部メモリアクセスを表わす。リフレッシュ肯定応答信号RFACK#はハイをデアサートし、メモリサイクルがリフレッシュに用いられてないことを表す。外部アドレス選択信号EASELはハイをアサートし、アドレスラッチ２１１を介してメモリアレイ２０１のアドレスバスへと外部アクセスアドレスEAAを転送（move）する。
【００３８】
保留外部アクセスが存在しない時、EAPEN#はハイをデアサートし、リフレッシュ保留信号RFPEN#がNANDゲート４０１の出力信号をドライブすることを許可する。リフレッシュ保留が存在しない場合、リフレッシュ保留信号RFPEN#がハイをデアサートし、NANDゲートの入力端子へインバータ４０２の出力端子よりロー信号を提供しうる。NANDゲートの出力信号はそれ故ハイであり、このメモリサイクルがリフレッシュに用いられていないことを表すべく、リフレッシュ肯定応答信号RFACK#をハイに保つ。保留のリフレッシュが存在する場合、リフレッシュ肯定応答信号RFPEN#はローであり、インバータ４０２よりNANDゲート４０１の入力端子へハイの出力信号を提供し得る。このハイの信号及び外部アクセス保留信号EAPEN#のハイの状態は、NANDゲート４０１の出力信号をローに強制する。NANDゲート４０１の出力信号は、リフレッシュ信号RF#及びリフレッシュ肯定応答信号RFACK#をローにする。加えて、NANDゲート４０１の出力信号は、インバータ４０５を通過し、システムクロックCLKがハイに向かう場合ANDゲート４０４の出力をハイにする。それ故メモリアレイシーケンサ２０５はローのリフレッシュ信号RF#と共に提供される。トランスミッションゲート２０９はハイのアドレス選択信号RASELと共に提供され、アドレスラッチ２１１へとリフレッシュアドレスRFAを提供する。リフレッシュ肯定応答信号RFACK#はローをアサートし、またリフレッシュコントローラ２０７へと提供され、リフレッシュを目的とするこのクロックサイクルの使用を表す。
【００３９】
図５は本発明の１つの実施例によるリフレッシュコントローラ２０７を表したブロック図である。リフレッシュコントローラ２０７はリフレッシュアドレスカウンタ５０１、リフレッシュタイマ５０２、及びリフレッシュアキュミュレータ５０３を有する。リフレッシュアドレスカウンタ５０１は、リフレッシュ肯定応答信号RFACK#及びシステムクロック信号CLKの両方をレシーブするために接続された１３ビットのバイナリカウンタ５０４を有する。応答として、バイナリカウンタ５０４はトランスミッションゲート２０９へ１３ビットアドレスバス上の現在のリフレッシュアドレスRFAを提供する。アドレスバスのサイズはメモリアレイ２０１の各々のロウにアクセスするべく選択される。システムクロックCLKはバイナリカウンタ５０４の動作を同期させるために提供される。リフレッシュ肯定応答信号RFACK#はメモリのリフレッシュが起こらなければハイであり、１つのクロックサイクルに渡ってリフレッシュ肯定応答信号RFACK#をローにアサートする。各々のローのリフレッシュ肯定応答信号RFACK#はバイナリカウンタ５０４を増加させ、メモリアレイ２０１に於ける各メモリロウを介し連続して転送する。
【００４０】
リフレッシュタイマ５０２は、モジュロ-２５６カウンタ５０７を有する。カウンタ５０７はリフレッシュアキュミュレータ５０３へリフレッシュ時間信号RFTIM#を提供するべく接続される。システム信号RESET及びクロック信号CLKは各々カウンタ５０７の動作を初期化し同期するべく提供される。初期的なパワーアップ（power up）で、カウンタ５０７はシステムのRESETコマンドによりゼロへ初期化される。カウンタはその時２５５のフルカウントまで各クロックサイクル毎に一回増加する。カウンタ５０７の次の増分は、１つのクロックサイクルに渡ってリフレッシュ時間信号RFTIM#をローにアサートし、またゼロへカウントを回転させる。カウンタ５０７は次のCLKサイクルに於いて１をカウントし、カウントを介し再び回転させる。本実施例に於いては、カウンタ５０７によってこのように追跡されるリフレッシュ時間は２５６カウントである。１００MHzのクロックによって分割された２５６のこのカウントは、2.56マイクロ秒毎にリフレッシュ時間信号RFTIM#をローにアサートする。本実施例においてカウンタ５０７がモジュロ２５６カウンタとして記述されているとは言え、その他の時間をトラッキングする方法がその他の実施例で存在することもご理解頂けよう。
【００４１】
リフレッシュアキュミュレータ５０３はリフレッシュ肯定応答信号RFACK#、リフレッシュ時間信号RFTIM#、及びシステムクロック信号CLKを受信するべく接続されたモジュロ-８アップ／ダウンカウンタ５０５を有する。カウンタ５０５のためのゼロでないカウントは、リフレッシュ保留信号RFPEN#がローであるとアサートする。システムクロック信号CLKはカウンタ動作を同期させるために提供される。
【００４２】
本実施例においてカウンタ５０５はモジュロ-８アップ／ダウンカウンタである。各ローのリフレッシュ肯定応答信号RFACK#はカウントを１つずつ減らし、各ローのリフレッシュ時間信号RFTIM#はカウントを１つずつ増やす。カウンタ５０５によってカウントがゼロでなく保たれる場合、リフレッシュ保留RFPEN#のカウンタ５０５よりの出力信号はローであり、アクセスアービタ２０６にメモリアレイ２０１に於ける少なくとも１つのメモリ位置がリフレッシュを実行可能である事を示している。リフレッシュ保留信号RFPEN#は、十分なリフレッシュ肯定応答信号RFACK#がカウンタ５０５のカウントをゼロへ減少させるまでローのままである。カウンタ５０５は８のカウントにおいて満たされる。それ故、カウンタ５０５がフルカウントに達した場合リフレッシュ時間は消失し、カウンタ５０７が別のローのリフレッシュ時間信号RFTIM#をアサートする前に働く連続リフレッシュアクセスは存在しない。
【００４３】
本実施例はモジュロ８リフレッシュアキュミュレータ５０３を利用し、それは８までのリフレッシュ時間信号RFTIM#が蓄積されることを許可する。リフレッシュ時間信号RFTIM#が2.56μ秒毎に生成されるので、リフレッシュアキュミュレータ５０３は20.48μ秒の時間にリフレッシュリクエストを蓄積できる。この20,48μ秒の時間は適切なリフレッシュ時間（proper refresh period）と呼ばれる。適切なリフレッシュ時間とはリフレッシュ動作を要求することなくメモリアレイ２０１が一定の外部メモリアクセス内にあり得るような時間として定義される。本実施例がモジュロ８アキュミュレータを用いるとは言え、異なるカウントを実行可能なアキュミュレータが適切なリフレッシュ時間の持続時間を調整することに用いられ得る。最も簡単な代替実施例に於いては、１ビットのアキュミュレータが用いられ、適切なリフレッシュ時間を個別の時間であるように限定し、その時間は１００MHのクロック周波数間で2.56μ秒である。
【００４４】
発明の開示に於いて、メモリブロック１００は周期的なリフレッシュリクエスト、リフレッシュされるべきロウのアドレスを与えるためのリフレッシュアドレスカウンタ５０１、リフレッシュリクエストの数をストアするためのリフレッシュアキュミュレータ５０３、及びメモリが外部アクセスを処理しているときにリフレッシュ動作を延期するためのアクセスアービタ２０６を生成するためにリフレッシュタイマ５０２を具体化する。
【００４５】
メモリブロック１００は外部アクセスリクエストが存在しないクロックサイクルの間にリフレッシュ操作を行う。メモリブロック１００−１１５が適切にリフレッシュされていることを確実とするために、メモリコントローラ１２０は、システムにおける各々のメモリブロック１００−１１５が、各々のこれらのブロックに於いて関連するリフレッシュアキュミュレータ５０３をオーバーフロー（overflowing）より妨げる目的で、各々の適切なリフレッシュ時間に於ける十分なアイドルサイクルを有することを確実とすることが必要となる。上述したように、リフレッシュアキュミュレータ５０３は８までのリフレッシュリクエストをストアし得る。その結果、８つのアイドルサイクルが20.48μ秒の適切なリフレッシュ時間に必要とされることとなる。
【００４６】
平均して、１つのリフレッシュアクセスは各２５６のクロックサイクル毎に働く。１つのリフレッシュ動作はそれ故利用可能なシステムサイクル若しくはバンド長の２５６分の１若しくは0.4％を占有する。典型的なシステムに於いては、この１つのアイドルサイクルは、メモリコントローラ１２０によるどのような介入もなく典型的に利用可能であってもよく、それは本発明者によって"Method And
Apparatus For 1-T SRAM Compatible memory"というタイトルで米国出願番号第09/037,396号に記されている。このことは本発明者により"Method And Apparatus For Increasing The time Available For Refresh For l-T SRAM Compatible Devices,"のタイトルで米国特許出願番号第09/181,804号に記述されているように、構成に於いて特に正確に形成されている。加えてリフレッシュ操作に必要な平均的なシステムバンド幅は、一つのメモリ装置が適切なリフレッシュ時間よりも長い時間で外部アクセスに占有される確率が下がるように、複数のメモリ装置と共に著しく減少する。
【００４７】
それにも関わらず、適切なリフレッシュ時間よりも長い持続時間に於けるメモリブロックへの連続的なメモリアクセスにより、メモリブロックがリフレッシュされる事がない限定された確率もまだ存在する。全ての条件下でメモリブロック１００−１１５が適切にリフレッシュされることを確実とする為に、メモリコントローラ１２０は適切なリフレッシュ時間の間発生するアイドルサイクルの数だけトラックをキープし、アイドルサイクルの数がリフレッシュ操作のために十分な時間を許可するのに不十分である場合外部メモリアクセスを延期する。
【００４８】
メモリコントローラ１２０は、各メモリブロックがリフレッシュのために十分な時間を有することを確実とするために、メモリブロック１００−１１５に対する外部アクセスを制御する。外部アクセスリクエストは、全体の適切なリフレッシュ時間にメモリブロックを占有し得ることが可能である。そのような事象に於いて、適切なリフレッシュ時間に、リフレッシュのための８つの要求されたアイドルサイクルよりも少ないアイドルサイクルが存在する。これらの条件下で、メモリコントローラ１２０は要求されたメモリリフレッシュ操作が実行されるまで外部アクセスを遅延させ得る。規定された別の方法で、メモリコントローラ１２０は要求された数のアイドルサイクルが適切なリフレッシュ時間に存在するように強制し得る。
【００４９】
図６、７及び８は本発明の別の実施例によるリフレッシュマネージャ６００、７００、及び８００を各々示した略図である。リフレッシュマネージャ６００、７００、及び８００はそれぞれメモリコントローラ１２０の内部に配置される。リフレッシュマネージャ６００、７００、及び８００はアドレスストローブ信号ADS#は勿論のことリフレッシュリクエスト信号RFREQ#も生成する。リフレッシュリクエスト信号RFREQ#は、メモリシステム１０にアクセスするアクセス装置（図示せず）に戻る。アクセス装置はメモリコントローラ１２０のような幾つかのチップに配置されてもよく配置されなくてもよい。リフレッシュリクエスト信号RFREQ#は追加的なアクセスが延期されるべきである事をアクセス装置に通知するためにローをアサートする。アドレスストローブ信号ADS#は上述されるように論理ハイ状態の場合にアイドルサイクルの存在を表す。
【００５０】
メモリコントローラ１２０のリフレッシュマネージャ部分は、適切なリフレッシュ時間に於けるアイドルメモリサイクルの数が各メモリブロック１００−１１５によって要求されるに等しいか若しくはそれを超えることを保証する機構を有する。メモリブロック１００−１１５及びメモリコントローラ１２０の間でこの機構が外部コミュニケーションを要求しないことが顕著である。このスキームの１つの利点は、メモリブロック１００−１１５が、メモリコントローラ１２０内の制御機構のどのような変化を伴うこともなく同一のインタフェースを用いる静的ランダムアクセスメモリSRAM装置の代わりに用いられ得ることである。
【００５１】
図６はリフレッシュカウンタ６０１、アイドルサイクルカウンタ６０２及びアクセスサスペンダ６４０を有するリフレッシュコントローラ６００の略図である。アクセスサスペンダ６４０はNANDゲート６０３を有し、それはアドレスストローブ信号ADS#を提供する。システムクロックCLKは動作を同期させるために提供される。リフレッシュカウンタ６０１は、ゼロよりメモリアレイ２０１のための適切なリフレッシュ時間と量的に等しい時間までカウントする。本実施例に於いて、リフレッシュカウンタ６０１は、リフレッシュアキュミュレータ５０３によってカウントされた20.48μ秒の適切なリフレッシュ時間と等しい2.56μ秒８回分の、リフレッシュアキュミュレータ５０３及びモジュロ２５６カウンタ５０７の最大値までカウントする。リフレッシュカウンタ６０１の出力リフレッシュリクエストRFREQ#信号は、最大のリフレッシュ時間がカウントされることなくハイのままである。リフレッシュリクエスト信号RFREQ#はその時ローをアサートし、リフレッシュカウンタ６０１がアイドルサイクルカウンタ６０２によってリセットされるまでメモリアクセスを遅延させる。
【００５２】
アイドルサイクルカウンタ６０２は３ビットのカウンタで、またアイドルサイクルがリフレッシュのために利用可能であるような各時間に１回増加する。リフレッシュカウンタ６０１は、アイドルサイクルカウンタ６０２がメモリブロック１００−１１５のリフレッシュの為に適切なリフレッシュ時間中で要求される８のアイドルサイクルに到達する各時間ごとに、ゼロからカウントすることを目的としてリセットされる。それ故、リフレッシュカウンタ６０１が適切なリフレッシュ時間をカウントする前にアイドルサイクルカウンタ６０２が８のフルカウントに到達してしまう場合、ハイの信号がリフレッシュカウンタ６０１のためにRESETでアサートされる。このハイのRESETはリフレッシュカウンタ６０１に適切なリフレッシュ時間を０よりカウントさせ始め、アドレスストローブ信号ADS#をハイに保ち、連続したメモリアクセスを許可する。
【００５３】
アクセスサスペンダ６４０はNANDゲート６０３を有し、リフレッシュリクエスト信号RFREQ#及びメモリアクセスリクエスト信号MAREQをレシーブするために接続される。メモリアクセスリクエスト信号MAREQは、メモリ要求がアクセス装置よりメモリコントローラ１２０によってレシーブされた時、ハイをアサートする。メモリコントローラ１２０のアクセス装置はCPU、入/出力プロセッサ、グラフィックプロセッサまたはその他のものであっても良い。メモリコントローラ１２０のこれらの可能なアクセス装置は図示されていない。リフレッシュカウンタ６０１が最大リフレッシュ時間までカウントされていない場合、リフレッシュリクエスト信号RFREQ#はハイであり得る。これらの条件下で、アクセスサスペンダ６４０の出力信号はメモリアクセスリクエスト信号MAREQの状態に依存する。メモリアクセスのための外部要求はメモリアクセスリクエスト信号MAREQをハイにアサートし、結果的にアクセスサスペンダ６４０よりアドレスストローブ信号ADS#のためのローの出力信号となる。アドレスストローブ信号ADS#のローの状態は、メモリアクセスが保留されていることを表している。メモリアクセスの不在下では、メモリアクセスリクエスト信号MAREQはローであってもよく、アクセスサスペンダ６４０のアドレスストローブ信号ADS#の出力をハイにアサートする。ハイのアドレスストローブ信号ADS#は、アイドルメモリサイクルが可能なメモリリフレッシュのために存在していることを表す。このアドレスストローブ信号ADS#はまた、１カウントずつアイドルサイクルカウンタ６０２を増加させる。
【００５４】
８つのアイドルサイクルよりも少ないサイクルが適切なリフレッシュ時間において発生した場合、リフレッシュマネージャ６００は、全ての保留メモリリフレッシュが完了するまで更にメモリアクセスを遅延させうる。リフレッシュカウンタ６０１が、リフレッシュのため要求されたアイドルサイクルを有することなく適切なリフレッシュ時間までカウントされた時、出力リフレッシュリクエスト信号RFREQ#はローをアサートする。リフレッシュリクエスト信号RFREQ#はメモリアクセスを遅延させる目的でアクセス装置へと戻される。ロー状態のリフレッシュリクエスト信号RFREQ#はまた、アクセスサスペンダ６４０のアドレスストローブ信号ADS#の出力をハイにし、アイドルメモリサイクルがメモリリフレッシュのために利用可能であることを表す。ローのアドレスストローブ信号ADS#はまた、アイドルサイクルカウンタ６０２を増加させる。リフレッシュリクエスト信号RFREQ#は、リフレッシュカウンタ６０１がリセットされるまでローのままであり、このように、アドレスストローブ信号ADS#は、アイドルサイクルカウンタ６０２が要求されたアイドルメモリサイクルのフルカウントに到達するまでハイであり得る。アイドルサイクルカウンタ６０２がフルカウントに達すると、その出力信号はリフレッシュカウンタ６０１をリセットする目的で１つのクロックサイクルの間ハイになる。リフレッシュカウンタ６０１のカウントは自動的に０へとラップ（wrap）し、カウントやリフレッシュリクエスト信号RFREQ#のハイのアサートや通常のメモリアクセスの再開を回復する。
【００５５】
アイドルサイクルカウンタ６０２は、全てのメモリブロック100-115の間でリクエストされた最大の数のリフレッシュサイクルまでカウントする。本実施例において、メモリブロック100-115は同一であり、適切なリフレッシュ時間において８つのアイドルサイクルを必要とする。その他の実施例において、１つのメモリブロックが適切なリフレッシュ時間において１０のリフレッシュを必要とするかもしれず、またその他のメモリブロックが５のリフレッシュを必要としてもよい。そのような実施例において、アイドルサイクルカウンタは、両方のブロックが適切なリフレッシュ時間において適切にリフレッシュされることを確実にするために、１０までカウントする必要があり得る。
【００５６】
図６に示された単純なリフレッシュマネージャは、統一の規則でシステム中の全てのメモリデバイスのリフレッシュを管理する。１つの単一メモリデバイスとしてそれらを全て一緒に処理することで、システムにおける個別のメモリ装置を区別することはない。
【００５７】
図７は本発明のその他の実施例によるリフレッシュマネージャ７００の略図である。リフレッシュマネージャ７００はメモリデバイス100-107の１つがアクセスされている時、他のグループのメモリデバイス108-115がメモリリフレッシュを実行しうるという事実を利用する。メモリブロック100-115は同一サイズの２つのグループに分割される。メモリブロックの各々のグループは、別個のリフレッシュカウンタ及びアイドルサイクルカウンタによって管理される。リフレッシュカウンタ７０１及び７１１はリフレッシュカウンタ６０１と同一である。アイドルサイクルカウンタ７０４及び７１４はアイドルサイクルカウンタ６０２と同一である。
【００５８】
図７のリフレッシュマネージャ７００は、リフレッシュカウンタ７０１及び７１１、ANDゲート７０２及び７１２、ORゲート７０３及び７１３、アイドルサイクルカウンタ７０４及び７１４、NANDゲート７３０、及びアクセスサスペンダ７４０を有する。アクセスサスペンダ７４０はNANDゲート７２０を有する。
【００５９】
ANDゲート７０２は、チップ選択信号CS#[0:7]をレシーブするために接続される。メモリブロック100-107の内いずれか１つが外部アクセスを実行する場合、チップ選択信号CS#[0:7]の内１つがローとなっても良く、ANDゲート７０２の出力信号をローにする。ORゲート７０３はアドレスストローブ信号ADS#及びANDゲート７０２の出力信号をレシーブするために接続される。アドレスストローブ信号ADS#は、外部アクセスが保留された時、ローをアサートし、アイドルサイクルが存在する時、ハイをデアサートする。ANDゲート７０２によって提供されたローの信号は、ORゲート７０３の出力信号をアドレスストローブ信号ADS#に追随させ得る。それ故、外部アクセス保留が存在しなければ、アイドルサイクルカウンタ７０４を増加させる。要求された数のアイドルサイクルがカウントされた時、アイドルサイクルカウンタ７０４は、カウンタ７０１をリセットするために、１つのクロックサイクルに渡って出力信号をハイにアサートする。
【００６０】
チップ選択信号CS#[0:7]の１つがローをアサートし、メモリブロック100-107の内１つへのメモリアクセスを表す場合、その時その他のメモリブロック108-115のグループはそのサイクルの間アイドル状態であり得る。チップ選択信号CS#[8:15]はハイの状態でも良く、メモリブロック108-115へのメモリアクセスの欠乏を表し、ANDゲート７１２の出力信号をハイにする。このハイのANDゲート７１２の出力信号は、アドレスストローブ信号ADS#に構うことなく、ORゲート７１３の出力信号をハイにし、アイドルサイクルカウンタ７１４を増加させる。
【００６１】
リフレッシュカウンタ７０１及び７１１は、適切なリフレッシュ時間までカウントアップ（count up）する。どちらかが最大カウントに到達した場合、リフレッシュカウンタの出力信号はローになり、アイドルサイクルをメモリブロックの１つをリフレッシュするように送り出す必要を示す。NANDゲート７３０は、各々のカウンタ７０１及び７１１の出力信号をレシーブするため接続され、リフレッシュリクエスト信号RFREQ#を提供する。加えて、アクセスサスペンダ７４０は、各々のリフレッシュカウンタ７０１及び７１１の出力信号、及びメモリリクエスト信号MAREQをレシーブするために接続される。リフレッシュカウンタ７０１若しくは７１１のどちらかがローの出力信号をアサートする場合、NANDゲート７２０及び７３０の両方の出力信号がハイを強制される。このことは、アドレスストローブ信号ADS#及びリフレッシュリクエスト信号RFREQ#をハイに強制する。ハイのアドレスストローブ信号ADS#は、メモリシステム１０へとアイドルサイクルを押しやり、アイドルサイクルがメモリリフレッシュに容易に利用可能であることを表す。ハイのリフレッシュリクエスト信号RFREQ#は、アクセス装置に対しメモリアクセス要求が遅延されていることを表す。リフレッシュカウンタ７０１及び７１１は、各々アイドルサイクルカウンタ７０４及び７１４よりフルカウントに応じカウントを０にリセットする。
【００６２】
リフレッシュカウンタ７０１及び７１１がどちらもフルでない時、これらのリフレッシュカウンタは論理的ハイの出力信号を提供する。それに応じて、NANDゲート７３０は論理的ローのリフレッシュリクエスト信号RFREQ#を提供する。上述したように、論理的ローのリフレッシュリクエスト信号RFREQ#は外部アクセスが遅延することなく働くことを許可する。アドレスストローブ信号ADS#はアクセスサスペンダ７４０により提供され、メモリアクセスが保留している時ローをアサートし、アイドルサイクル中においてはハイをデアサートする。
【００６３】
本実施例は８つのメモリブロックの２つのグループを表しているが、どのような数のメモリブロックがどのような例でグループ分けされても良いことがお分かり頂けよう。例えば、その他の実施例において、３つのブロックが１つのグループに存在しても良く、また１３のブロックがその他のグループに存在しても良い。適切な変更がアクセスサスペンダ７４０へとなされ得る。本実施例はまた、マルチバンク動作を可能とするメモリ装置の管理を目的として拡張されても良い。とりわけ、装置の一つのバンクが、その他のバンクがリフレッシュを実行する間、外部アクセスにおいて拘束する。そのようなシステムにおいて、メモリ装置の異なったバンクは、リフレッシュマネージャの別個のセットにより管理される。
【００６４】
図８は、本発明のその他の実施例によるメモリコントローラ１２０のリフレッシュマネージャ８００を示す略図である。この実施例においてリフレッシュマネージャ８００はリフレッシュカウンタ８０１、リフレッシュサイクルカウンタ８０２、及びアクセスサスペンダ８４０を有する。アクセスサスペンダ８４０は、NANDゲート８０３を有する。リフレッシュマネージャ８００は、発生したアイドルサイクルの数に関係なく、リフレッシュカウンタ８０１がフルカウントに到達する毎にメモリシステム１０へとアクセスサスペンダ８４０を介し固定された数のアイドルメモリサイクルを送り出すことによって機能する。
【００６５】
リフレッシュカウンタ８０１は、適切なリフレッシュ時間までカウントされる。フルカウントに到達した時、リフレッシュリクエスト信号RFREQ#の出力信号はローをアサートする。ローをアサートしたリフレッシュリクエスト信号RFREQ#は、外部メモリアクセスを保留し、アクセスサスペンダ８４０からのアドレスストローブ信号ADS#の出力をハイにアサートする。それ故、アイドルメモリサイクルを挿入する。リフレッシュサイクルカウンタ８０２は、リフレッシュサイクルカウンタ８０２がフルカウントに到達するまで、リフレッシュリクエスト信号RFREQ#がローであるような各クロックサイクルの間に１回カウントする。記述された実施例において、リフレッシュサイクルカウンタ８０２は８までカウントし、それによってリフレッシュのための８つのアイドルサイクルが挿入される。リフレッシュサイクルカウンタ８０２の出力信号は、その時ハイになり、リフレッシュカウンタ８０１をリセットする。リフレッシュカウンタ８０１は０よりカウントし始め、リフレッシュリクエスト信号RFREQ#の出力信号をハイにデアサートし、再びアクセスサスペンダ８４０が直接メモリアクセスリクエスト信号MAREQに反応する事を許可する。
【００６６】
本実施例において、アクセスサスペンダ６０３、７２０、及び８０３は外部メモリアクセスを保留するためにアドレスストローブ信号ADS#を生成するべく示されてきた。それによって、メモリリフレッシュのためにアイドルサイクルが挿入される。その他の実施例において、アクセスサスペンダ６０３、７２０、及び８０３は、外部メモリアクセスを保留するべくチップ選択信号CS#[15:0]を生成するために構成されても良い。
【００６７】
上記において、本発明の好適な実施の形態について説明したが、本発明の請求範囲を逸脱することなく、当業者は種々の改変をなし得るであろう。例えばメモリアレイ２０１は、異なる実施例に於いて異なる大きさを有しても良い。本発明は以下の実施例にのみ限定される。
【図面の簡単な説明】
【図１】  本発明の１つの実施例によるメモリシステムのブロック図である。
【図２】  本発明の１つの実施例によるメモリアレイへのリフレッシュ及び外部アクセスを制御するためのメモリブロックの略図である。
【図３】  本発明の１つの実施例による書き込み、読み出し、及びリフレッシュ動作中の様々な信号のタイミングを表した波形図である。
【図４】  本発明の１つの実施例によるアクセスアービタの略図である。
【図５】  本発明の１つの実施例によるリフレッシュコントローラの略図である。
【図６】  本発明の１つの実施例による一つのグループのメモリブロックを制御するためのリフレッシュマネージャの略図である。
【図７】  本発明の別の実施例による２つのグループのメモリブロックを制御するためのリフレッシュマネージャの略図である。
【図８】  本発明の別の実施例によるメモリシステムへアイドルサイクルを送り出すためのリフレッシュマネージャの略図である。
【図１】
0004487040.tif 000002
【図２】
0004487040.tif 000003
【図３】
0004487040.tif 000004
【図４】
0004487040.tif 000005
【図５】
0004487040.tif 000006
【図６】
0004487040.tif 000007
【図７】
0004487040.tif 000008
【図８】
0004487040.tif 000009