(57)【特許請求の範囲】
【請求項１】
一連のコマンドを発行して半導体メモリを制御するメモリ制御装置であって、
発行すべきコマンドと該コマンドを発行してから次のコマンドを発行するまで待機すべき時間とが外部制御装置によって書き込まれるレジスタと、
前記レジスタに書き込まれたコマンドを発行した後、前記レジスタに書き込まれた前記待機すべき時間が経過するまで次のコマンドの発行を停止するコマンド発行部とを備え、
第１のコマンドを発行してから第１の時間の経過後に第２のコマンドを発行する場合に、前記発行すべきコマンドおよび前記待機すべき時間として、前記第１のコマンドおよび第２の時間、ＮＯＰコマンドおよび第３の時間、前記第２のコマンドおよび第４の時間が前記レジスタに順次書き込まれ、前記第１の時間は前記第２および第３の時間の和である、メモリ制御装置。
【請求項２】
前記第１の時間は前記レジスタに書き込み可能な第５の時間よりも長く、
前記第２〜第４の時間の各々は前記第５の時間よりも短い、請求項１に記載のメモリ制御装置。
【請求項３】
前記待機すべき時間は浮動小数点方式で示されている、請求項１または請求項２に記載のメモリ制御装置。
【請求項４】
前記コマンド発行部は、前記待機すべき時間として予め定められた値が書き込まれた場合、前記レジスタに書き込まれたコマンドによって決まる時間が経過するまで次のコマンドの発行を停止する、請求項１から請求項３までのいずれかに記載のメモリ制御装置。
【請求項５】
さらに、前記レジスタに書き込まれたコマンドの発行が完了したか否かを判定する判定部を備える、請求項１から請求項４までのいずれかに記載のメモリ制御装置。
【請求項６】
前記外部制御装置から特定アドレスへのアクセス要求があった場合、前記コマンドの発行が完了するまで応答しない、請求項５に記載のメモリ制御装置。
【請求項７】
前記判定部は、前記外部制御装置から前記コマンドの発行が完了したか否かの問合せがあった場合、前記コマンドの発行が完了したか否かを応答する、請求項５に記載のメモリ制御装置。
【請求項８】
前記判定部は、前記外部制御装置からの問合せの有無に関係なく、前記コマンドの発行が完了したか否かを示す信号を前記外部制御装置に出力する、請求項５に記載のメモリ制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明はメモリ制御装置に関し、特に、一連のコマンドを発行して半導体メモリを制御するメモリ制御装置に関する。
【背景技術】
【０００２】
従来より、画像圧縮や画像伸長を行なう画像処理装置には、大容量データを記憶するＳＤＲＡＭ（Synchronous Dynamic Random Access Memory）と、それを制御するＳＤＲＡＭコントローラとが設けられている（たとえば、特許文献１参照）。
【０００３】
ＳＤＲＡＭの制御においては、電源投入時の初期化、駆動周波数の変更、低電力モードからの復帰、キャリブレーションなどの際、十分な間隔を開けながら一連のＳＤＲＡＭコマンドを発行するコマンド発行シーケンスを実行する必要がある。コマンドの間隔についての制約としては、通常、最小値のみが規定される。最小間隔の具体的な長さは、数サイクル程度の場合もあれば、数百マイクロ秒（数万サイクル）に及ぶ場合もある。
【０００４】
このようなコマンド発行シーケンスを実行する第１の方法としては、ＳＤＲＡＭコントローラに専用ハードウェア（ステートマシン）で構成された制御器を設け、その制御器によって自動的に実行する方法がある。
【０００５】
また、コマンド発行シーケンスを実行する第２の方法としては、外部制御器からＳＤＲＡＭコントローラにＳＤＲＡＭコマンドの発行指示を与えて、ＳＤＲＡＭコントローラにＳＤＲＡＭコマンドを発行させる方法がある。この第２の方法では、外部制御器からコマンド発行の指示を繰り返し与えてもらうことにより、コマンド発行シーケンスを実行する。
【特許文献１】特開２０００−１０８５６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかし、上記第１の方法では、複数種類のＳＤＲＡＭに対応しようとした場合に不利である。コマンド発行シーケンスは、ＳＤＲＡＭの種類によって異なり、またＳＤＲＡＭのメーカによっても少しずつ異なる場合があるからである。
【０００７】
また、キャリブレーションなどのシーケンスは、複雑であり、また採用すべき戦略も組み込むシステムによって異なると考えられ、固定的なハードウェアによる制御器では柔軟性に乏しい。
【０００８】
また、上記第２の方法では、ＳＤＲＡＭコマンド間の間隔を正確に設定する方法が問題となる。あるＳＤＲＡＭコマンドから次のＳＤＲＡＭコマンドまでの間隔を外部制御器側で測るようにすると、次のような問題がある。
【０００９】
まず、十分なコマンド間隔を保証するために考慮すべき要因が多く、かつ多数のモジュールに分散してしまう。このため外部制御器の仕様が複雑化し、検証も難しくなる。また、ソフトウェアが過度に複雑化し、可読性・メンテナンス性の低下を招く。また、外部制御器の処理負担が大きくなる。また、予測できない部分が大きいため、十分なマージンを確保すると、実際には必要以上に待機してしまうこととなる。
【００１０】
それゆえに、この発明の主たる目的は、複数種類の半導体メモリに柔軟に対応することが可能なメモリ制御装置を提供することである。
【課題を解決するための手段】
【００１１】
この発明に係るメモリ制御装置は、一連のコマンドを発行して半導体メモリを制御するメモリ制御装置であって、レジスタとコマンド発行部を備える。レジスタには、発行すべきコマンドとコマンドを発行してから次のコマンドを発行するまで待機すべき時間とが外部制御装置によって書き込まれる。コマンド発行部は、レジスタに書き込まれたコマンドを発行した後、レジスタに書き込まれた待機すべき時間が経過するまで次のコマンドの発行を停止する。第１のコマンドを発行してから第１の時間の経過後に第２のコマンドを発行する場合に、発行すべきコマンドおよび待機すべき時間として、第１のコマンドおよび第２の時間、ＮＯＰコマンドおよび第３の時間、第２のコマンドおよび第４の時間がレジスタに順次書き込まれ、第１の時間は第２および第３の時間の和である。
【発明の効果】
【００１３】
この発明に係るメモリ制御装置では、発行すべきコマンドと、コマンドを発行してから次のコマンドを発行するまで待機すべき時間とがＣＰＵのような外部制御装置によってレジスタに書き込まれると、レジスタに書き込まれたコマンドを発行した後、レジスタに書き込まれた待機すべき時間が経過するまで次のコマンドの発行を停止する。また、第１のコマンドを発行してから第１の時間の経過後に第２のコマンドを発行する場合に、発行すべきコマンドおよび待機すべき時間として、第１のコマンドおよび第２の時間、ＮＯＰコマンドおよび第３の時間、第２のコマンドおよび第４の時間がレジスタに順次書き込まれ、第１の時間は第２および第３の時間の和である。したがって、外部制御装置のソフトウェアを変更することにより複数種類の半導体メモリに柔軟に対応することができる。また、コマンドの間隔はメモリ制御装置によって管理されるので、外部制御装置の負担の軽減化を図ることができる。
【発明を実施するための最良の形態】
【００１４】
図１は、この発明の一実施の形態によるメモリシステムの要部を示すブロック図である。図１において、このメモリシステムは、ＣＰＵ（Central Processing Unit）１、システムバス２、およびＳＤＲＡＭコントローラ３を含む半導体装置４と、ＳＤＲＡＭ５とを備える。ここで、「ＳＤＲＡＭ」とは、ＳＤＲ（Single Data Rate）、ＤＤＲ（Double Data Rate）、ＬＰ（LOW Power）−ＤＤＲ、ＤＤＲ２、ＤＤＲ３などの各種ＳＤＲＡＭの総称を言うものとする。
【００１５】
ＳＤＲＡＭコントローラ３とＳＤＲＡＭ５の間の信号は、図２に示すように、クロック、コマンド系、データ系、その他に分類できる。クロックは、ＳＤＲＡＭ５の動作タイミングの基準となる信号である。コマンド系の信号としては、クロックイネーブル信号ＣＫＥ、チップセレクト信号ＣＳ＃、ロウアドレス・ストローブ信号ＲＡＳ＃、コラムアドレス・ストローブ信号ＣＡＳ＃、ライトイネーブル信号ＷＥ＃、アドレス信号Ａ、バンクアドレス信号ＢＡなどがある。データ系の信号としては、データ信号ＤＱ、データ信号ＤＱの出力タイミングを示す信号ＤＱＳ、データマスク信号ＤＭなどがある。その他の信号としては、電源オン時に制御回路を初期化するためのリセット信号ＲＥＳＥＴ＃、データ出力線の終端抵抗をオン／オフするための信号ＯＤＴなどがある。
【００１６】
ＳＤＲＡＭコマンドとは、クロックに同期してＳＤＲＡＭへ入力される、コマンド系の信号の組合せで表現されるＳＤＲＡＭ５への指示である。背景技術の欄でも述べたように、電源投入時や低電力モードからの復帰の際、ＳＤＲＡＭコントローラ３は一連のＳＤＲＡＭコマンドを十分な時間間隔を開けながらＳＤＲＡＭ５に出力しなければならない。間隔についての制約としては、通常、最小値のみが規定される。最小間隔の具体的な長さは、数サイクル程度の場合もあれば、数百マイクロ秒（数万サイクル）に及ぶ場合もある。
【００１７】
本発明が対象とするコマンド発行シーケンスで必要となるＳＤＲＡＭコマンドの種類は、モードレジスタ・セット（Mode Register Set）、プリチャージ・オールバンク（Precharge all banks）、リフレッシュ（Refresh）、ＺＱキャリブレーション（Calibration）、ＣＫＥ操作などである。ＣＫＥ操作としては、パワーダウン・エントリ（Power down entry）、パワーダウン・エグジット（Power down exit）、セルフリフレッシュ・エントリ（Self-refresh entry）、セルフリフレッシュ・エグジット（Self-refresh exit)などがある。この他、場合によってはＲＥＳＥＴ＃端子の操作も必要になる。
【００１８】
図３は、ＳＤＲＡＭコントローラ３の原理的構成を示す図である。図３において、ＳＤＲＡＭコントローラ３は、レジスタ部６とコマンド発行部９を含む。レジスタ部６は、発行すべきＳＤＲＡＭコマンドを示す第１の信号を記憶する第１の記憶部７と、第１の記憶部７に書き込まれた第１の信号で示されるＳＤＲＡＭコマンドを発行してから次のＳＤＲＡＭコマンドを発行するまで待機すべき最小間隔を示す第２の信号を記憶する第２の記憶部８とを含む。第１および第２の信号の各々は、複数ビットのデータ信号を含む。なお、記憶部７，８は、ハードウェア的な記憶素子で構成されていてもよいし、ＣＰＵ１から読み書きされる特定のアドレスに割り当てられたソフトウェア的な記憶領域であってもよい。
【００１９】
ＣＰＵ１は、図示しないメモリに格納されたプログラムに従い、一連のＳＤＲＡＭコマンドをＳＤＲＡＭコントローラ３に発行させるため、複数組の第１および第２の信号をレジスタ部６に順次書き込んで行く。なお、レジスタ部６とシステムバス２のビット幅が同じ場合、ＣＰＵ１は、コマンドと「最小間隔」とを結合したまま一度にレジスタ部６に書き込みを行なう。たとえば、レジスタ部６のビット幅が６４ビットであり、システムバス２のビット幅が３２ビットである場合は、ＣＰＵ１は、結合が維持されるように、３２ビットずつ続けて２度に分けてレジスタ部６に書き込みを行なう。レジスタ部６では、コマンドと「最小間隔」とを結合したまま保持する。
【００２０】
ただし、レジスタ部６の記憶容量は限られているので、記憶部７，８が空いていない場合は、レジスタ部６側からＣＰＵ１を待たせる必要がある。このため、ＣＰＵ１は、まずレジスタ部６にライト要求を行なう。レジスタ部６は、記憶部７，８が空いている場合は、ＣＰＵ１のライト要求を受理し、第１および第２の信号をそれぞれ記憶部７，８に書き込む。また、レジスタ部６は、記憶部７，８が空いていない場合は、空きが生じるまでＣＰＵ１のライト要求を受理せず、ＣＰＵ１を待たせる。
【００２１】
コマンド発行部９は、第１の記憶部７に書き込まれた第１の信号で示されるＳＤＲＡＭコマンドを発行し、そのＳＤＲＡＭコマンドを発行してから次のＳＤＲＡＭコマンドを発行するまで、第２の記憶部８に書き込まれた第２の信号で示される最小間隔の時間だけ待機する。待機している間は、コマンド発行部９は、一切の有効なＳＤＲＡＭコマンドの出力を行なわない。有効でないＳＤＲＡＭコマンドとしては、ノー・オペレーション・コマンドＮＯＰや、チップセレクト信号ＣＳ＃を非活性化レベルに固定するデバイス・デセレクト・コマンドＤＥＳがある。
【００２２】
換言すると、コマンド発行部９は、レジスタ部６へのｎ回目の書き込みによって投入されたコマンド発行要求を処理する際は、レジスタ部６へのｎ−１回目の書き込みによるＳＤＲＡＭコマンド発行の時点からｎ−１回目の書き込みで指定された「最小間隔」が経過しているかどうかをチェックする。そして、指定された間隔が確保されるまで待ってから、ｎ回目の書き込みで指定されたコマンドを発行する。
【００２３】
ＳＤＲＡＭ５は、コマンド発行部９で発行されたＳＤＲＡＭコマンドを受け、受けたＳＤＲＡＭコマンドの内容に応じた動作を行なう。
【００２４】
図４（ａ）（ｂ）は、このメモリシステムのコマンド発行シーケンスを例示するタイムチャートである。レジスタ部６に対する１回目の書き込みでは、コマンドの種類としてＣ１が書き込まれ、最小間隔としてＴ１が書き込まれたものとする。コマンド発行部９は、レジスタ部６に書き込まれた種類のコマンドＣ１をＳＤＲＡＭ５に出力する。このとき、レジスタ部６への書き込みからＳＤＲＡＭ５の出力までに数サイクルの時間がかかる可能性があるが、このことは大きな問題とはならない。
【００２５】
次に、１回目のコマンド出力から時間Ｔ１が経過するより前に、レジスタ部６への２回目の書き込み（コマンド種類Ｃ２、最小間隔Ｔ２）が行なわれたものとする。この場合、２回目のコマンド発行は、１回目のコマンド発行から間隔Ｔ１が確保されるまで、遅延される。
【００２６】
さらに、レジスタ部６への３回目の書き込み（コマンド種類Ｃ３、最小間隔Ｔ３）が行なわれたものとする。３回目の書き込みのタイミングが、図４に示すように、２回目のコマンド出力から時間Ｔ２が経過した時点よりも後である場合は、指定されたコマンドＣ３は直ちに出力される。このような制御を行なうことにより、少なくとも指定された最小間隔以上の間隔を確保することができる。
【００２７】
また、図５（ａ）（ｂ）に示すように、コマンドの種類として、ＮＯＰコマンドを選択することも可能である。ＮＯＰコマンドを選択することにより、電源やクロックの供給を開始してから初めて有効なコマンドを出すまでの待ち時間の確保が可能となる。また、指定したい最小間隔がレジスタ部６で用意されているビット幅では表現できないほど長い場合に、間隔を継ぎ足すことが可能となる。たとえば、５０万サイクルの待ち時間を確保したいが、レジスタ部６で最小間隔として指定できる値は６万サイクルまでであるとする。この場合、コマンド種類がＮＯＰで、最小間隔が５万サイクルと言う内容でレジスタ部６に１０回の書込を行なえば、所望の時間を確保することができる。
【００２８】
図６は、ＳＤＲＡＭコントローラ３の具体的構成を示す図である。図６において、ＳＤＲＡＭコントローラ３は、バスインターフェイス部１１、内部バス１２、内部バッファ１３、コマンド発行レジスタ１４、ダウンカウンタ１５、制御部１６、マルチプレクサ１７、完了判定部１８、および操作完了待ちレジスタ１９を備える。バスインターフェイス部１１、内部バス１２、内部バッファ１３、コマンド発行レジスタ１４、完了判定部１８、および操作完了待ちレジスタ１９は、レジスタ部６を構成する。ダウンカウンタ１５、制御部１６、およびマルチプレクサ１７は、コマンド発行部９を構成する。
【００２９】
ＣＰＵ１は、システムバス２を介してＳＤＲＡＭコントローラ３にライト要求を行なう。ライト要求は、バスインターフェイス部１１および内部バス１２を介して内部バッファ１３に与えられる。内部バッファ１３は、コマンド発行要求（ＳＤＲＡＭコマンドと最小間隔）を保持する余裕がある場合はライト要求を受理し、余裕がない場合は余裕が生じるまでライト要求を受理しない。
【００３０】
ライト要求が受理されると、発行すべきＳＤＲＡＭコマンドと、そのＳＤＲＡＭコマンドを発行してから次のＳＤＲＡＭコマンドを発行するまでの最小間隔（待機時間）とが、ＣＰＵ１からシステムバス２、バスインターフェイス部１１、および内部バス１２を介して内部バッファ１３に書き込まれる。
【００３１】
内部バッファ１３は、バスプロトコルのハンドシェイクなどによる時間的なロスを減らすために設けられており、複数組のコマンド発行要求（ＳＤＲＡＭコマンドと最小間隔）をバッファリングする。内部バッファ１３に保持されたコマンド発行要求は、コマンド発行レジスタ１４が空いていれば、コマンド発行レジスタ１４に移される。コマンド発行レジスタ１４は、発行のタイミングを待っているコマンド発行要求を保持する。なお、コマンド発行レジスタ１４は、１段構成のレジスタで構成してもよいし、ＦＩＦＯなどの多段構成のレジスタで構成してもよい。ここでは、１段構成のレジスタで構成するものとして説明する。コマンド発行レジスタ１４に保持された「最小間隔」および「ＳＤＲＡＭコマンド」はそれぞれダウンカウンタ１５およびマルチプレクサ１７に与えられる。
【００３２】
ダウンカウンタ１５は、前回のコマンド発行で指定された間隔が終わるまでの残り時間を保持しており、そのカウント値は１サイクル毎にデクリメントされる。残り時間が０になれば、それ以上のデクリメントはされない。制御部１６は、コマンド発行レジスタ１４にコマンド発行要求があり、かつダウンカウンタ１５の出力する残り時間が０ならば（もしくは十分に小さければ）、コマンド発行のタイミングを示すパルス信号を出力する。
【００３３】
このパルス信号に応答して、ダウンカウンタ１５はコマンド発行レジスタ１４に保持されている「最小間隔」の値をロードし、次のコマンド発行に備えてダウンカウントを開始する。また、マルチプレクサ１７は、コマンド発行レジスタ１４からのＳＤＲＡＭコマンドを受け、パルス信号に応答して１サイクルだけコマンド発行レジスタ１４からのＳＤＲＡＭコマンドを出力し、それ以外のサイクルでは無効なＳＤＲＡＭコマンド（たとえばＮＯＰコマンド）を出力する。また、コマンド発行レジスタ１４は、パルス信号に応答して、記憶内容を消去して空き状態となる。
【００３４】
また、完了判定部１８は、ＳＤＲＡＭコントローラ３に投入されたコマンド発行要求が全て捌けて、ＳＤＲＡＭ５に出力済みであるかどうかを判定するものである。内部バッファ１３およびコマンド発行レジスタ１４が両方とも空になった後、所定の時間（コマンド発行レジスタ１４からＳＤＲＡＭまでのレイテンシに相当する時間）が経過すれば、完了判定部１８の出力信号は真（たとえば「Ｈ」レベル）になる。また、内部バッファ１３またはコマンド発行レジスタ１４に新たなコマンド発行要求が投入されれば、完了判定部１８の出力信号は偽（たとえば「Ｌ」レベル）となる。操作完了待ちレジスタ１９は、ＣＰＵ１からのリード要求に対し、完了判定回路１８の出力信号が真であればすぐに応答を返すが、偽である間は応答を返さない。これにより、ＳＤＲＡＭコントローラ３が制御していないタイミング（クロックや電源の停止など）とＳＤＲＡＭコマンド発行の間の間隔についても、正しく確保することが可能になる。
【００３５】
なお、操作完了待ちレジスタ１９の代わりに、ＣＰＵ１からのリード要求に対し、完了判定回路１８の出力信号が真であるか偽であるかを示す信号を直ぐに応答するステータスレジスタを設けてもよい。また、操作完了待ちレジスタ１９を除去し、完了判定部１８の出力信号をＣＰＵ１に直接与えてもよい。
【００３６】
図７（ａ）〜（ｇ）は、図６に示したメモリシステムのコマンド発行シーケンスを例示するタイムチャートである。時刻ｔ１において、内部バッファ１３からコマンド発行レジスタ１４にライト要求が行なわれ、コマンド発行レジスタ１４が空いているので、内部バッファ１３からコマンド発行レジスタ１４に発行すべきＳＤＲＡＭコマンドＣ１と最小間隔Ｔ１＝６とが書き込まれる。このとき、ダウンカウンタ１５のカウント値が０であるので、発行タイミングを示すパルス信号が出力され、ＳＤＲＡＭコマンドＣ１がＳＤＲＡＭ５に出力される。また、発行タイミングを示すパルス信号に応答して、最小間隔Ｔ１＝６がダウンカウンタ１５にロードされてダウンカウンタ１５がダウンカウントを開始し、コマンド発行レジスタ１４の内容が消去されてレジスタ１４が空き状態になり、レジスタ１４が空いていないことを示すビジー信号が非活性化レベルの「Ｌ」レベルとなる。
【００３７】
次に、１回目のコマンド出力から最小間隔Ｔ１＝６が経過するより前の時刻ｔ２に、内部バッファ１３からコマンド発行レジスタ１４にライト要求が行なわれ、レジスタ１４への２回目の書き込み（コマンド種類Ｃ２、最小間隔Ｔ２＝４）が行なわれたものとする。この場合、２回目のコマンド発行は、１回目のコマンド発行から最小間隔Ｔ１＝６が確保されるまで、遅延される。
【００３８】
さらに、２回目のコマンド出力から最小間隔Ｔ２＝４が経過した時点よりも後の時刻ｔ３に、内部バッファ１３からコマンド発行レジスタ１４にライト要求が行なわれ、レジスタ１４への３回目の書き込み（コマンド種類Ｃ３、最小間隔Ｔ３＝１０）が行なわれたものとする。この場合は、２回目のコマンド出力から最小間隔Ｔ２が既に経過しているので、指定されたコマンドＣ３は直ちに出力される。このような制御を行なうことにより、少なくとも指定された最小間隔以上の間隔を確保することができる。
【００３９】
この実施の形態では、ＣＰＵ１がプログラム（ソフトウェア）に従って一連のＳＤＲＡＭコマンドを順次指定し、ハードウェア（ＳＤＲＡＭコントローラ３）がＳＤＲＡＭコマンドの間隔を計時するので、ハードウェアの仕様をあまり複雑化することなく、ソフトウェアの変更で種々の品種・制御方式のＳＤＲＡＭ５に対応できる。このソフトウェアは、レジスタ部６に連続して書き込みを行なうだけの単純なものでよく、タイマーやウェイトループを用いてソフトウェア側で時間を測る必要はない。したがって、本願発明は、多種類のＳＤＲＡＭに対応したいＬＳＩでは特に有効であるが、そうでない場合でも、ハードウェアの再利用性を向上し、設計・検証の工数を減らす効果がある。
【００４０】
また図８は、この実施の形態の変更例を示す図であって、図３と対比される図である。図８を参照して、この変更例では、コマンド間の最小間隔が浮動小数点方式でレジスタ部６に書き込まれる。浮動小数点方式では、最小間隔Ｔは数式Ｔ＝Ｂ×２ＫＡで表わされる。ここで、Ｋは定数であり、たとえば４である。Ａは指数部であり、Ｂは仮数部である。レジスタ部６の第２の記憶部８は、最小間隔Ｔの指数部Ａが書き込まれる第１の記憶領域８ａと、最小間隔Ｔの仮数部Ｂが書き込まれる第２の記憶領域８ｂとを含む。この変更例では、少ないビット幅で、広い範囲の待機時間Ｔを設定することができる。
【００４１】
また図９は、この実施の形態の他の変更例を示すブロック図である。図９において、この変更例では、図６の内部バッファ１３が内部バッファ２０で置換される。ＳＤＲＡＭ５は、ＳＤＲＡＭコマンドの種類（モードレジスタ・セット、リフレッシュ、ＺＱキャリブレーションなど）によっては、ＳＤＲＡＭコマンドが発行されてから所定の期間、新たなＳＤＲＡＭコマンドを受け付けなくなる。そこで、この変更例では、ＣＰＵ１からの書込によって「間隔」フィールドに指定された値が特別な値（たとえば、全ビット０）である場合は、これをデフォルト値に置き換えた上でコマンド発行レジスタ１４に書き込む。ここで、デフォルト値は、当該書込で指定されたコマンドの種類によって選択される。
【００４２】
すなわち、内部バッファ２０は、バスプロトコル制御部２１、形式変換部２２、およびバッファ２３を含む。バスプロトコル制御部２１は、ＣＰＵ１からライト要求があった場合、バッファ２３が空いている場合はライト要求を受理し、バッファ２３が空いていない場合は空きが生じるまでライト要求を受理しない。ライト要求が受理された場合、形式変換部２２にコマンドと最小間隔が書き込まれる。
【００４３】
形式変換部２２は、書き込まれたコマンドと最小間隔を調べ、最小間隔が特別な値であった場合には、コマンドの種類によって決まるデフォルト値を最小間隔としてバッファ２３に出力する。デフォルト値は、回路の柔軟性および再利用性を高めるため、内部バッファ２０の外部（たとえば、ＣＰＵ１）から与えるようにしている。また、形式変換部２２は、コマンドについては、そのままバッファ２３に出力する。バッファ２３に保持された最小間隔は、図６で示したように、ダウンカウンタ１５に与えられ、コマンドはマルチプレクサ１７に与えられる。この変更例では、回路の柔軟性および再利用性を一層高めることができる。なお、コマンドについても形式変換部２２を経由して出力する様に構成しているが、これは、コマンドと最小間隔とを、バッファ２３への入力タイミングを揃えて出力することを意図して構成するものであり、たとえばフリップフロップ等の簡易な回路によりタイミング調整を図ることもできる。
【００４４】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【図面の簡単な説明】
【００４５】
【図１】この発明の一実施の形態によるメモリシステムの要部を示すブロック図である。
【図２】図１に示したＳＤＲＡＭコントローラとＳＤＲＡＭの間で授受される信号を説明するためのブロック図である。
【図３】図１に示したＳＤＲＡＭコントローラの原理的構成を示すブロック図である。
【図４】図１〜図３に示したメモリシステムの動作を示すタイムチャートである。
【図５】図１〜図３に示したメモリシステムの動作を示す他のタイムチャートである。
【図６】図３に示したＳＤＲＡＭコントローラの具体的構成を示すブロック図である。
【図７】図６に示したＳＤＲＡＭコントローラの動作を示すタイムチャートである。
【図８】実施の形態の変更例を示すブロック図である。
【図９】実施の形態の他の変更例を示すブロック図である。
【符号の説明】
【００４６】
１  ＣＰＵ、２  システムバス、３  ＳＤＲＡＭコントローラ、４  半導体装置、５  ＳＤＲＡＭ、６  レジスタ部、７  第１の記憶部、８  第２の記憶部、８ａ  第１の記憶領域、８ｂ  第２の記憶領域、９  コマンド発行部、１１  バスインターフェイス部、１２  内部バス、１３，２０  内部バッファ、１４  コマンド発行レジスタ、１５  ダウンカウンタ、１６  制御部、１７  マルチプレクサ、１８  完了判定部、１９  操作完了待ちレジスタ、２１  バスプロトコル制御部、２２  形式変換部、２３  バッファ。
【図１】
0005103663.tif 000002
【図２】
0005103663.tif 000003
【図３】
0005103663.tif 000004
【図４】
0005103663.tif 000005
【図５】
0005103663.tif 000006
【図６】
0005103663.tif 000007
【図７】
0005103663.tif 000008
【図８】
0005103663.tif 000009
【図９】
0005103663.tif 000010