(57)【特許請求の範囲】
【請求項１】
ＤＲＡＭの動作を制御するメモリコントローラと、該ＤＲＡＭに対するメイン電源またはバックアップ用のバッテリ電源による電源供給を制御するパワーコントローラとを有し、通常の動作中でのメイン電源の停電時、前記パワーコントローラはメイン電源の電圧低下に応じて前記ＤＲＡＭの電源を前記メイン電源から前記バッテリ電源に切り替えるとともに、前記メモリコントローラに対して出力するセルフリフレッシュモードの指示信号をアクティブにし、該指示信号に応じて前記メモリコントローラは前記ＤＲＡＭをセルフリフレッシュモードにするよう制御するメモリ制御装置において、
前記メモリコントローラから前記ＤＲＡＭへ出力され、該ＤＲＡＭの前記セルフリフレッシュモードを維持するためにローレベルにするクロックイネーブル信号を、前記セルフリフレッシュモードでローレベルにされた状態から前記メモリコントローラへの電源供給が停止されてもローレベルにプルダウンするプルダウン抵抗を設け、
前記メイン電源の停電時に、前記パワーコントローラは、前記メイン電源の電圧低下に応じて前記メモリコントローラの電源を前記メイン電源から前記バッテリ電源に切り替え、前記メモリコントローラは、前記ＤＲＡＭを前記セルフリフレッシュモードにした後に、該セルフリフレッシュモードに入ったことを前記パワーコントローラに通知し、前記パワーコントローラは、該通知を受けると、前記メモリコントローラの電源を前記バッテリ電源から停電している前記メイン電源に切り替えて、前記メモリコントローラに対する電源供給が前記メイン電源の復活まで停止されるようにしたことを特徴とするメモリ制御装置。
【請求項２】
前記パワーコントローラは、前記通常の動作中でのメイン電源の停電時にメイン電源の電圧低下に応じて前記セルフリフレッシュモードの指示信号をアクティブにした後、前記メイン電源が復活してシステムリセットが解除される直後まで前記指示信号をアクティブに保持するものとし、
前記メモリコントローラは、前記メイン電源の復活時に前記指示信号がアクティブである間は前記クロックイネーブル信号をローレベルに保って前記ＤＲＡＭの前記セルフリフレッシュモードを維持することを特徴とする請求項１に記載のメモリ制御装置。
【請求項３】
前記メモリコントローラは、通常のメイン電源オン時は、システムリセット解除後に、前記ＤＲＡＭに対してパワーオンイニシャルシーケンスを行なって通常動作に入り、
前記メモリコントローラは、前記メイン電源の停電後の復活時は、システムリセット解除後に、前記ＤＲＡＭに対してパワーオンイニシャルシーケンスを行なわずにオートリフレッシュコマンドを発行して通常動作に入ることを特徴とする請求項１または２に記載のメモリ制御装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ＳＤＲＡＭ（シンクロナス・ダイナミック・ランダム・アクセス・メモリ）などのメモリの動作を制御するメモリコントローラ、及びこれとメモリの電源の制御を行なうパワーコントローラとからなるメモリ制御装置に関するものである。
【０００２】
【従来の技術】
ＳＤＲＡＭは半導体プロセスの進歩に伴って、その動作周波数を高めてきた。しかし、ＳＤＲＡＭの動作周波数が高くなるということは、ＳＤＲＡＭを制御するメモリコントローラやメモリコントローラとＳＤＲＡＭを接続するプリント基板の設計の観点からみると、メモリリード時のセットアップマージン、すなわちリードデータを取り込むためのクロック信号のエッジ例えば立ち上がり以前にリードデータの信号を安定させていなければならない準備時間のマージンがますます厳しくなるということである。
【０００３】
例えば、１００ＭＨｚで動作するＳＤＲＡＭのクロック信号からのリードデータのアクセスタイムは大抵６ｎｓであり、リードデータを受け取るためにはプリント基板とメモリコントローラのセットアップを含めて４ｎｓ以下でメモリコントローラのリードデータを取り込むフリップフロップまで信号が到達しなければならない。このような状況下で正確に動作させるため、従来では、
（１）基板上の配線長を可能な限り短くし、基板上の配線による信号ディレイをできるだけ小さくする。あるいは、
（２）高価なクロックドライバ素子等を用いてＳＤＲＡＭへの供給クロックとメモリコントローラへの供給クロックに意図的にスキューすなわちタイミングずれを生じさせ、セットアップマージンを稼ぐ。
といった手法がとられてきた。
【０００４】
一方、従来、コンピュータなどの電子回路において、停電時など外部より電源供給が停止した時、ＳＤＲＡＭをバッテリバックアップする必要のあるシステムにおいては、
（３）停電時においてもメモリコントローラ自体はバッテリにより電源供給され、バックアップすべきＳＤＲＡＭへのインターフェイスを制御し続ける。あるいは、
（４）メモリコントローラ自体の電源供給を停止する場合は、メモリコントローラとＳＤＲＡＭの間の制御信号をスイッチ等で切り替え、メモリコントローラ以外のコントローラがバックアップすべきＳＤＲＡＭを制御する。
といった手法がとられていた。
【０００５】
【発明が解決しようとする課題】
しかしながら、上述したセットアップマージンの問題に関して、最近ではＳＤＲＡＭの動作周波数は１３３ＭＨｚ（クロックサイクルタイム７．５nsec）にまで高くなり、ますますセットアップマージンを確保するのは難しくなっており、上記従来の（１）の手法のように基板上の配線長だけでは対処することが難しくなってきた。また従来の（２）の手法のように特殊なクロックドライバを使用すると、その分コストアップにつながるという欠点がある。
【０００６】
また、バッテリバックアップに関して、従来の（３）の手法では、バックアップすべきＳＤＲＡＭに加えメモリコントローラ自体によりバッテリが消費されるのでバックアップ可能時間が短いという欠点があった。特に、システム・オン・シリコンのような大規模ＡＳＩＣにメモリコントローラが内蔵される場合は、ＡＳＩＣ全体にバッテリ電源が供給されることになり、バックアップ可能時間がますます短くなる。
【０００７】
また、従来の（４）の手法においては、メモリコントローラの電源を停止することができるので（３）の手法のような問題は解消されるが、メモリコントローラとＳＤＲＡＭの間にスイッチ等の付加回路が必要なので、その分だけ制御信号のディレイが生じ、ＳＤＲＡＭの動作周波数を上げることが非常に難しくなるという欠点がある。なお、この問題はＳＤＲＡＭに限らずＤＲＡＭに共通することは勿論である。
【０００８】
そこで本発明の課題は、ＳＤＲＭなどのメモリを制御するメモリコントローラにおいて、簡単安価な構成により、リード時にメモリの動作周波数が高くてもリードデータを確実に取り込んで出力できるようにすること、及びメモリコントローラとＤＲＡＭ間にスイッチ等の付加回路を設けずに、ＤＲＡＭのバッテリバックアップ時にメモリコントローラへの電源供給を停止してメモリコントローラの消費電力を最小にできるようにすることにある。
【０００９】
【課題を解決するための手段】
上記課題を解決するために、本発明によれば、
ＤＲＡＭの動作を制御するメモリコントローラと、該ＤＲＡＭに対するメイン電源またはバックアップ用のバッテリ電源による電源供給を制御するパワーコントローラとを有し、通常の動作中でのメイン電源の停電時、前記パワーコントローラはメイン電源の電圧低下に応じて前記ＤＲＡＭの電源を前記メイン電源から前記バッテリ電源に切り替えるとともに、前記メモリコントローラに対して出力するセルフリフレッシュモードの指示信号をアクティブにし、該指示信号に応じて前記メモリコントローラは前記ＤＲＡＭをセルフリフレッシュモードにするよう制御するメモリ制御装置において、
前記メモリコントローラから前記ＤＲＡＭへ出力され、該ＤＲＡＭの前記セルフリフレッシュモードを維持するためにローレベルにするクロックイネーブル信号を、前記セルフリフレッシュモードでローレベルにされた状態から前記メモリコントローラへの電源供給が停止されてもローレベルにプルダウンするプルダウン抵抗を設け、
前記メイン電源の停電時に、前記パワーコントローラは、前記メイン電源の電圧低下に応じて前記メモリコントローラの電源を前記メイン電源から前記バッテリ電源に切り替え、前記メモリコントローラは、前記ＤＲＡＭを前記セルフリフレッシュモードにした後に、該セルフリフレッシュモードに入ったことを前記パワーコントローラに通知し、前記パワーコントローラは、該通知を受けると、前記メモリコントローラの電源を前記バッテリ電源から停電している前記メイン電源に切り替えて、前記メモリコントローラに対する電源供給が前記メイン電源の復活まで停止されるようにした。
【００１１】
【発明の実施の形態】
以下、図を参照して本発明の実施の形態を説明する。
【００１２】
［第１の実施形態］
図１は、本発明の第１の実施形態におけるメモリコントローラのＳＤＲＡＭからのリードデータの取り込みに関わる構成を示している。同図において、１はメモリコントローラ、２はメモリコントローラ１により制御されるＳＤＲＡＭ、３はメモリコントローラ１とＳＤＲＡＭ２にクロック信号を供給するクロックドライバである。４以下はメモリコントローラ１の構成であり、４はＩＯ（入出力）端子、５はＩＯバッファ、６はクロック信号CLK_Aにより動作してＳＤＲＡＭ２からのリードデータRamDataを取り込むフリップフロップ、７はクロック信号CLK_Bにより動作してＳＤＲＡＭ２からのリードデータRamDataを取り込むフリップフロップ、８はセレクト信号RdDSelにより切り替えられるセレクタ、９はクロック信号CLK_Aにより動作してセレクタ８の出力を取り込むフリップフロップ、１０はクロック信号CLK_Aを遅延させてクロック信号CLK_Aと同一周期で変化（立ち上がり、立下り）のタイミングが異なるクロック信号CLK_Bを形成するためのディレイ素子である。
【００１３】
この構成において、ＳＤＲＡＭ２からのリードデータRamDataの信号はＩＯ端子４とＩＯバッファ５を経由して、クロック信号CLK_Aで動作するフリップフロップ６と、クロック信号CLK_Bで動作するフリップフロップ７のＤ入力に到達する。フリップフロップ６はクロック信号CLK_Aの立ち上がり時のＤ入力を取り込んでDataIn_Aとして出力し、フリップフロップ７はクロック信号CLK_Bの立ち上がり時のＤ入力を取り込んでDataIn_Bとして出力するよう動作する。セレクタ８はメモリコントローラ１の内部あるいは外部で設定されたセレクト信号RdDSelによりDataIn_AとDataIn_Bのいずれか一方を選択してフリップフロップ９のＤ入力へ出力する。そしてそれを取り込んだフリップフロップ９の出力信号がリードデータRdDataとして、メモリコントローラ１が接続された不図示のＣＰＵバスに出力される。
【００１４】
次に、図２と図３のタイミングチャートにより上記動作の詳細を説明する。
【００１５】
図２のタイミングチャートは、ＳＤＲＡＭ２から４ビートのリードを行なった場合の動作を示し、RdData１，RdData２，RdData３，RdData４はそれぞれ１から４ビート目のリードデータであり、セレクタ８によりDataIn_Bを選択した場合に有効な動作を示したものである。
【００１６】
１ビート目のリード動作を説明する。ＳＤＲＡＭ２から出力されるリードデータRamDataは、本来はクロック信号CLK_Aが立ちあがるＴ２０１Ａの時点でメモリコントローラ１内で取り込まれなくてはならない。しかしながら、メモリコントローラ１とＳＤＲＡＭ２が実装された基板上の配線によるディレイやメモリコントローラ１内部のＩＯバッファ５等でのディレイにより、ＩＯバッファ５を介して入力されたリードデータの信号がDataInとして示すようにＴ２０１Ａの時点ではまだ確定していないとする。
【００１７】
この場合、クロック信号CLK_Aで動作するフリップフロップ６はＴ２０１Ａの時点で不定値Ｘを取り込んでDataIn_Aとして出力する。これに対し、DataInはクロック信号CLK_Bが立ちあがるＴ２０１Ｂの時点ではRdData１に確定しているので、CLK_Bで動作するフリップフロップ７はＴ２０１Ｂ時点でRdData１を取り込んでDataIn_Bとして出力する。このときセレクタ８のセレクト信号RdDSelがDataIn_Bを選択する（すなわちフリップフロップ７を選択する）よう設定してあれば、フリップフロップ９のＤ入力に正しくRdData１が入力されることになり、その結果、１ビート目のリードデータとしてRdData１が正しくリードされ、フリップフロップ９から不図示のＣＰＵバスに出力される。２から４ビート目も同様である。
【００１８】
一方、図３のタイミングチャートは、ＳＤＲＡＭ２から４ビートのリードをおこなった場合で、上記と逆にセレクタ８によりDataIn_Aを選択した場合に有効な動作を示したものである。
【００１９】
１ビート目のリード動作を説明する。ＳＤＲＡＭ２から出力されるリードデータRamDataは基板上の配線によるディレイやメモリコントローラ１内部のＩＯバッファ５等でのディレイにより、ＩＯバッファ５の後段にDataInとして図示するようにあらわれるとする。
【００２０】
この場合、Ｔ３０１Ａの時点で立ち上がるクロック信号CLK_Aで動作するフリップフロップ６はＴ３０１Ａの時点で確定しているRdData１を取り込んでDataIn_Aとして出力する。これに対し、DataInはＴ３０１Ｂの時点ではすでに不定値Ｘになっており、Ｔ３０１Ｂの時点で立ち上がるCLK_Bで動作するフリップフロップ７はＴ３０１Ｂ時点で不定値Ｘを取り込んでDataIn_Bとして出力する。このときセレクタ８のセレクト信号RdDSelがDataIn_Aを選択する（すなわちフリップフロップ６を選択する）よう設定してあれば、フリップフロップ９のＤ入力に正しくRdData１が入力されることになり、その結果、１ビート目のリードデータとしてRdData１が正しくリードされ、フリップフロップ９から不図示のＣＰＵバスに出力される。２から４ビート目も同様である。
【００２１】
以上のように、本実施形態のメモリコントローラ１によれば、ＳＤＲＡＭ２からのリード時に、それぞれ同一周期で変化のタイミングが異なるクロック信号CLK_A，CLK_Bで動作するフリップフロップ６，７により異なるタイミングでＳＤＲＡＭ２からのリードデータを取り込み、セレクタ８によりフリップフロップ６，７のいずれか一方の出力を選択してリードデータとしてＣＰＵバスに出力する。したがって、ＳＤＲＡＭ２からリードデータを取り込むタイミングを最適なタイミングに選択して確実にリードデータを取り込むことができ、ＳＤＲＡＭ２の動作周波数が高くても確実にリードデータを取り込むことができる。またメモリコントローラ１とＳＤＲＡＭ２を実装したプリント基板上の配線などによるリードデータ信号のディレイに対して、メモリコントローラ１内でリードデータを取り込むタイミングを変更して対応することができるので、プリント基板の設計が容易になり、その設計の日程の短縮及びコスト低減が図れる。さらに、フリップフロップ６，７，９、セレクタ８、ディレイ素子１０を設ける構成は簡単で安価に実現することができる。
【００２２】
ところで、以上説明した実施形態では、２つのフリップフロップ６，７と１つのディレイ素子１０を用いて２種類のタイミングでリードデータを取り込むものとしたが、３つ以上のフリップフロップと２つ以上のディレイ素子を用いて３種類以上のタイミングでリードデータを取り込み、いずれか１つを選択して出力することも可能である。
【００２３】
［第２の実施形態］
次に、本発明の第２の実施形態を図４及び図５により説明する。
【００２４】
図４は第２の実施形態におけるメモリコントローラのＳＤＲＡＭからのリードデータの取り込みに関わる構成を示している。同図において、第１の実施形態の図１中と共通の部分には共通の符号を付してあり、その共通部分の説明は省略する。
【００２５】
図４に示すように、本実施形態のメモリコントローラ１では、インバータ１１が第１の実施形態のディレイ素子１０の代わりに設けられている。このインバータ１１はクロックドライバ３からのクロック信号CLK_Aを反転して反転クロック信号CLK_Ｉを形成する。フリップフロップ７は、この反転クロック信号CLK_Ｉにより動作する。これ以外の部分の構成は第１の実施形態と共通とする。
【００２６】
次に、本実施形態の動作を図５のタイミングチャートにより説明する。図５は、ＳＤＲＡＭ２から４ビートのリードを行なった場合の動作を示し、RdData１，RdData２，RdData３，RdData４はそれぞれ１から４ビート目のリードデータであり、セレクタ８によりフリップフロップ７の出力DataIn_Iを選択した場合に有効な動作を示したものである。
【００２７】
１ビート目のリード動作を説明する。ＳＤＲＡＭ２から出力されるリードデータRamDataは、本来ならばクロック信号CLK_Aが立ち上がるＴ５０１Ａの時点で取り込まれなくてはならない。しかしながら、基板上の配線によるディレイやメモリコントローラ１内部のＩＯバッファ５等でのディレイにより、ＩＯバッファ５を介して入力されたリードデータの信号がDataInとして示すようにＴ５０１Ａの時点ではまだ確定していないとする。
【００２８】
この場合、クロック信号CLK_Aで動作するフリップフロップ６はＴ５０１Ａの時点で不定値Ｘを取り込んでDataIn_Aとして出力する。これに対し、DataInは反転クロック信号CLK_Iが立ち上がるＴ５０１Ｂの時点ではRdData１に確定しているので、反転クロック信号CLK_Iで動作するフリップフロップ７はＴ５０１Ｂの時点でRdData１を取り込んでDataIn_Iとして出力する。このときセレクタ８のセレクト信号RdDSelがDataIn_Iを選択する（すなわちフリップフロップ７を選択する）よう設定していればフリップフロップ９のＤ入力に正しくRdData１が入力されることになり、その結果、１ビート目のリードデータとしてRdData１が正しくリードされる。２から４ビート目も同様である。
【００２９】
このような本実施形態によれば、第１の実施形態と同様にＳＤＲＡＭ１からリードデータを取り込むタイミングを最適に選択することができ、同様の効果が得られる。
【００３０】
ところで、以上に説明した本発明に係るリードデータを取り込むタイミングを選択できるようにしたメモリコントローラの構成は、メモリからリードデータを取り込んで外部に出力する機能を有するメモリコントローラならばＳＤＲＡＭのメモリコントローラに限らず、ＳＤＲＡＭ以外のＤＲＡＭのメモリコントローラ、さらにはＤＲＡＭ以外の半導体メモリのメモリコントローラにも適用できることは勿論である。
【００３１】
［第３の実施形態］
次に、本発明の第３の実施形態を図６及び図７により説明する。まず、図６は、第３の実施形態におけるＳＤＲＡＭのメモリコントローラとパワーコントローラからなるメモリ制御装置の構成を示している。
【００３２】
図６において、２１はメモリ（ＳＤＡＲＭ２２）の動作を制御するメモリコントローラ、２２はＳＤＲＡＭ、２３はメモリコントローラ２１とＳＤＲＡＭ２２の電源VccとVbattの監視と制御を行うパワーコントローラ、２４はパワーコントローラ２３の制御によりメモリコントローラ２１への電源をVccまたはVbattに切り替えるスイッチ、２５はパワーコントローラ２３の制御によりＳＤＲＡＭ２２への電源をVccまたはVbattに切り替えるスイッチ、２６はメモリコントローラ２１からＳＤＲＡＭ２２に印加されるClkE（クロックイネーブル）信号をプルダウンするプルダウン抵抗である。なお、電源Vccは家庭用商用電源の１００Ｖの交流を不図示の電源ユニットにより所定電圧の直流に変換したメイン電源であり、電源Vbattはバックアップ用のバッテリより供給されるバッテリ電源である。
【００３３】
Cs_L，Ras_L，Cas_L，We_L，addr,ClkEは，メモリコントローラ２１からＳＤＲＡＭ２２に対して出力されるＳＤＲＡＭ２２を制御するコントロール信号であり、Cs_Lはチップセレクト信号、Ras_Lはローアドレスストローブ信号、Cas_Lはコラムアドレスストローブ信号、We_Lはライトイネーブル信号、addrはアドレス信号、ClkEは上記のクロックイネーブル信号である。なお、_Lの符号を付した信号は勿論ローアクティブ、すなわちローレベルでアクティブ（有効）な信号である。ClkEはハイアクティブの信号である。また、メモリコントローラ２１とＳＤＲＡＭ２２間でやり取りされるDataは勿論データ信号である。
【００３４】
また、Clkはメモリコントローラ２１とＳＤＲＡＭ２２に供給されるクロック信号であり、Reset_Lはシステムリセット信号である。RamBackUpはパワーコントローラ２３から出力されるメモリコントローラ２１に対してメモリバックアップのためにＳＤＲＡＭ２２をセルフリフレッシュモードにすることを指示するハイアクティブの信号であり、SelfRefOKは、メモリコントローラ２１からパワーコントローラ２３に対して出力されるＳＤＲＡＭ２２がセルフリフレッシュモードに入ったことを知らせるハイアクティブの信号である。
【００３５】
次に、図６の構成の動作について説明する。まず、通常のパワーアップ（バックアップ無し）の場合の動作を説明する。
【００３６】
メイン電源Vccがオンされると、システムリセット信号Reset_Lがローレベルになる。メモリコントローラ２１はReset_Lがローレベル時にRamBackUpがローレベルであるので、Cs_L，Ras_L，Cas_L，We_L，ClkEの各信号をハイレベルに保持する。そしてReset_Lの解除後、RamBackUpがローレベルであるのでＳＤＲＡＭ２２のパワーオンイニシャルシーケンス（Pre-Charge All Commandを発行し、その後Auto Refresh Commandを８回発行し、Mode Set Commandを発行する）を行い、その後通常動作に入り、要求があればＳＤＲＡＭ２２のリード／ライトを行う。
【００３７】
次に、通常動作中にメイン電源Vccの供給が停止（停電）し、バッテリ電源VbattによってＳＤＲＡＭ２２の内容をバックアップする動作を説明する。
【００３８】
図６において、パワーコントローラ２３は、不図示の電源ユニットから供給されるメイン電源Vccの電圧を常に監視しており、通常動作中にメイン電源Vccの電圧があらかじめ規定された電圧よりも低くなった場合、メモリコントローラ２１に対してRamBackUp信号をアクティブ（ハイレベル）にして、ＳＤＲＡＭ２２をセルフリフレッシュモードに入れるよう指示を出す。同時に、スイッチ２４，２５を切り替えることにより、メモリコントローラ２１への電源とＳＤＲＡＭ２２への電源をメイン電源Vccからバッテリ電源Vbattへ切り替える。
【００３９】
メモリコントローラ２１は、RamBackUp信号を受け取ると、ただちに、ClkE、Cs_L、Ras_L、及びCas_Lをローレベル、We_Lをハイレベルにし、ＳＤＲＡＭ２２に対してSelf Refresh Entry Commandを発行し、ＳＤＲＡＭ２２をセルフリフレッシュモードに入れ、その後もClkEをローレベルに保つことによりセルフリフレッシュモードを継続させる。また同時にSelfRefOK信号をアクティブにし、パワーコントローラ２３に対してＳＤＲＡＭ２２がセルフリフレッシュモードに入ったことを知らせる。
【００４０】
SelfRefOKを受け取ったパワーコントローラ２３は、スイッチ２４を切り替える事によってメモリコントローラ２１の電源をバッテリ電源Vbattから停止（停電）しているメイン電源Vccに戻す。すなわちメモリコントローラ２１への電源供給を停止する。ここでメモリコントローラ２１から出力されるＳＤＲＡＭ２２の制御信号Cs_L，Ras_L，Cas_L，We_Lは不定となるが、クロックイネーブル信号ClkEだけは、プルダウン抵抗２６を通じてプルダウンされているのでローレベルを保持される。したがってＳＤＲＡＭ２２はセルフリフレッシュモードのままとなり、バッテリの容量が続く限り最小消費電力でＳＤＲＡＭ２２の内容をバックアップし続けることができる。
【００４１】
次に、メイン電源Vccの停電後、メイン電源Vccの供給が復活してバックアップから通常動作に戻る場合の動作を説明する。
【００４２】
メイン電源Vccの供給が復活し、その電圧がある決められた電圧より高くなると、パワーコントローラ２３はＳＤＲＡＭ２２の電源をバッテリ電源Vbattからメイン電源Vccへ切り替える。メモリコントローラ２１へのRamBackUp信号は、システムリセット信号Reset_Lが解除（ハイレベル）されるまで、アクティブ（ハイレベル）のままに保持される。メモリコントローラ２１はReset_Lがローレベルの間RamBackUpがハイレベルであれば、クロックイネーブル信号ClkEをローレベルにし続けることによって、ＳＤＲＡＭ２２のセルフリフレッシュモードを保持させる。Reset_L解除後、RamBackUpがハイレベルであれば、ClkEをハイレベルにし、ＳＤＲＡＭ２２をセルフリフレッシュモードから抜けさせ、ＳＤＲＡＭ２２のパワーオンイニシャルシーケンスを実行すること無しに直ちにAuto Refresh Commandを発行する。その後、通常の動作モードに入り、要求があればＳＤＲＡＭ２２のリード／ライトを行う。
【００４３】
次に、上記の動作をさらにわかりやすように図７のタイミングチャートを用いて改めて説明する。
【００４４】
図７において、上段が通常のメイン電源オン時の動作を示し、下段が通常動作からメイン電源が停電（バッテリバックアップ）し、その後、メイン電源が復活した場合の動作を示している。
【００４５】
まず図７の上段に示す通常のメイン電源オン時の動作について説明する。Ｔ１の時点でメイン電源Vccがオンされる。この時システムリセット信号Reset_Lがローレベルになり、パワーコントローラ２３の出力RamBackUpはローレベルとなり、バックアップ状態からの復帰ではないことを示す。したがってメモリコントローラ２１はClkEをハイレベルにドライブする。その後、時点Ｔ２のReset_L解除時、RamBackUpがローレベルであるのでメモリコントローラ２１はＳＤＲＡＭ２２のパワーオンイニシャルシーケンスを実行する。すなわち、時点Ｔ３でパワーオンイニシャルシーケンスの最初であるPre-Charge All Commandを発行する。この後、図７には示されていないが、Auto-Refresh Commandを８回、Mode Set Commandを発行し、リード／ライト可能な状態になる。
【００４６】
次に、図７の下段に示す通常動作状態からメイン電源が停電（ＳＤＲＡＭバックアップ）し、その後、メイン電源が復活する場合の動作を説明する。通常動作状態からまずＴ４の時点でパワーコントローラ２３がメイン電源Vccの電圧低下を検出すると、メモリコントローラ２１に対してRamBackUpをハイレベルにしてＳＤＲＡＭ２２をセルフリフレッシュモードにするよう指示を出す。同時にスイッチ２４，２５の切り替えにより、メモリコントローラ２１とＳＤＲＡＭ２２の電源をメイン電源Vccからバッテリ電源Vbattに切り替える。
【００４７】
メモリコントローラ２１はＴ５の時点でSelf-Refresh Entry Commandを発行する（Self-Refresh Entry Commandの前に必要に応じてPre-Charge All Command/Auto-Refresh Commandが発行される）。同時にSelfRefOKをハイレベルにし、パワーコントローラ２３に対してＳＤＲＡＭ２２がセルフリフレッシュモードに入った事を知らせる。そしてClkEをローレベルに保ちＳＤＲＡＭ２２のセルフリフレッシュモードを保持する。
【００４８】
SelfRefOKを受け取ったパワーコントローラ２３は、Ｔ６の時点でスイッチ２４の切り替えにより、メモリコントローラ２１の電源をバッテリ電源Vbattから停電しているメイン電源Vccに戻す。すなわちメモリコントローラ２１の電源供給を停止し、ＳＤＲＡＭ２２だけにバッテリ電源Vbattを供給し続ける。この時RamBackUpはハイレベルを保持したままである。また、メモリコントローラ２１の電源供給が停止されても、ClkEはプルダウン抵抗２６によってローレベルに保持されるので、ＳＤＲＡＭ２２はセルフリフレッシュモードのままである。
【００４９】
その後、Ｔ７の時点でメイン電源Vccが復活し、パワーコントローラ２３はスイッチ２５の切り替えにより、ＳＤＲＡＭ２２の電源をバッテリ電源Vbattからメイン電源Vccに戻す。時点Ｔ４からこの時点Ｔ７までバッテリバックアップがなされたことになる。
【００５０】
ここで、図７上段に示した通常のメイン電源オン時と同様にシステムリセット信号Reset_Lがローレベルになるが、RamBackUp信号がハイレベルであるので、メモリコントローラ２１はClkEをローレベルに保つ。Ｔ８の時点でシステムリセット信号Reset_Lが解除（ハイレベル）されるが、RamBackUpがハイレベルであるため、メモリコントローラ２１は通常のパワーオンイニシャルシーケンスを発行せず、Ｔ９の時点でAuto-Refresh Commandを発行し、リード／ライト可能な状態になる。
【００５１】
以上のように、本実施形態によれば、図７の下段に示したように、メイン電源Vccが通常の通電状態からオフ（停電）した場合（時点Ｔ４）、メモリコントローラ２１とＳＤＲＡＭ２２の電源がメイン電源Vccからバッテリ電源Vbattに切り替えられるが、その後、メモリコントローラ２１がＳＤＲＡＭ２２をセルフリフレッシュモードにした（時点Ｔ５）後、メモリコントローラ２１の電源がバッテリ電源Vccから停電しているメイン電源Vccに切り替えられ、メモリコントローラ２１への電源供給が停止される（時点Ｔ６）。そしてメイン電源Vccの復活（時点Ｔ７）まで、メモリコントローラ２１への電源供給は停止される。
【００５２】
したがって、バッテリバックアップ時の消費電流を最小とすることができ、より長時間のバッテリバックアップが可能となる。またバッテリバックアップの必要時間が定められているシステムにおいては、より小さいバッテリ容量で所望のバックアップ時間を満たすことができ、コストダウンを図ることができる。また、メモリコントローラ２１とＳＤＲＡＭ２２の間にスイッチなどの付加回路が必要ないので、制御信号のディレイが最小となり、容易にＳＤＲＡＭの動作周波数の向上をはかる事が可能となる。
【００５３】
［第４の実施形態］
次に、本発明の第４の実施形態を図８及び図９により説明する。まず、図８は、第４の実施形態におけるＳＤＲＡＭのメモリコントローラとパワーコントローラからなるメモリ制御装置の構成を示している。図８において、第３の実施形態の図６中と共通の部分には共通の符号を付してあり、その共通部分の説明は省略する。
【００５４】
図８に示すように、本実施形態の構成では、第３の実施形態の図６中のスイッチ２４が設けられておらず、メモリコントローラ２１に対する電源供給はメイン電源Vccのみによってなされ、メモリコントローラ２１の電源の切り替えはなされないようになっている。また、第３の実施形態ではメモリコントローラ２１からパワーコントローラ２３に対してSelfRefOk信号が出力されるものとしたが、本実施形態では同信号を廃止している。本実施形態のこれ以外の部分の構成は第３の実施形態と共通とする。
【００５５】
次に、図９のタイミングチャートにより本実施形態の動作を説明する。なお、図９の上段に示す通常のメイン電源オン時の動作は、第３の実施形態の図７上段の動作と共通であるので、説明を省略し、図９下段に示すメイン電源が通常の通電状態から停電し、その後に復活する場合の動作を説明する。
【００５６】
第３の実施形態では、図７中の時点Ｔ４でパワーコントローラ３がメイン電源Vccの電圧低下を検出すると、メモリコントローラ１とＳＤＲＡＭ２の電源をバッテリ電源Vbattに切り替えたが、本実施形態では、図９中でパワーコントローラ３がメイン電源Vccの電圧低下を検出した時点Ｔ１３からその後の時点Ｔ１５までメイン電源Vccによるメモリコントローラ２１への電源供給が保証されるものとし、その間の時点Ｔ１４でメモリコントローラ２１がクロックイネーブル信号ClkEをローレベルにしてSelf-Refresh Entry Commandを発行し、ＳＤＲＡＭ２２をセルフリフレッシュモードにする。その後の動作は第３の実施形態と同様である。
【００５７】
本実施形態によれば、時点Ｔ１３からＴ１５までの間、メイン電源Vccによるメモリコントローラ２１への電源供給が保証されるので、その間にメモリコントローラ２１の電源をバッテリ電源Vbattに切り替える必要は無い。またSelfRefOK信号も必要ない。
【００５８】
なお、本実施形態では、時点Ｔ１５からメイン電源Vccが復活する時点Ｔ１６まで、メモリコントローラ２１に対する電源供給はオフされるが、その間、プルダウン抵抗２６によりClkEがローレベルに保持されるので、ＳＤＲＡＭ２２はセルフリフレッシュモードを維持し、バッテリバックアップがなされることは勿論である。
【００５９】
このような本実施形態によれば、メイン電源Vccが通常の通電状態から停電してＳＤＲＡＭ２２のバッテリバックアップを行なう場合、バッテリ電源Vbattによるメモリコントローラ２１への電源供給は行わないので、バッテリバックアップ時の消費電流を最小とすることができ、第３の実施形態と同様の効果が得られる。
【００６０】
なお、第３と第４の実施形態に示した本発明に係るメモリ制御装置の構成は、ＳＤＲＡＭ以外のＤＲＡＭのメモリコントローラとパワーコントローラからなるメモリ制御装置にも適用できることは勿論である。
【００６１】
【発明の効果】
以上の説明から明らかなように、本発明によれば、メモリからリードデータを取り込んで外部に出力する機能を有するメモリコントローラにおいて、簡単安価な構成により、リード時にメモリからリードデータを取り込むタイミングを複数の内で最適なタイミングに選択することができ、メモリの動作周波数が高くても確実にリードデータを取り込んで出力することができる。またメモリコントローラとメモリを実装したプリント基板上の配線などによるリードデータ信号のディレイに対して、メモリコントローラ内でリードデータを取り込むタイミングを変更して対応することができるので、プリント基板の設計が容易になり、その設計の日程の短縮及びコスト低減が図れる。
【００６２】
また、本発明によれば、ＤＲＡＭのメモリコントローラとパワーコントローラからなるメモリ制御装置において、メイン電源の停電に応じたＤＲＡＭのバッテリバックアップ時に、メモリコントローラの電源供給を停止することができるので、バッテリバックアップ時の消費電流を最小とすることができ、より長時間のバッテリバックアップが可能となる。またバッテリバックアップの必要時間が定められているシステムにおいては、より小さいバッテリ容量で所望のバックアップ時間を満たすことができ、コストダウンを図ることができる。また、メモリコントローラとＤＲＡＭの間にスイッチなどの付加回路が必要ないので、制御信号のディレイが最小となり、容易にＤＲＡＭの動作周波数の向上をはかる事が可能となるという優れた効果が得られる。
【図面の簡単な説明】
【図１】本発明の第１の実施形態におけるメモリコントローラのリードデータ取り込みに関わる構成を示すブロック図である。
【図２】同実施形態におけるリードデータの取り込み動作のタイミングチャート図である。
【図３】取り込みタイミングが異なるリードデータの取り込み動作のタイミングチャート図である。
【図４】本発明の第２の実施形態におけるメモリコントローラのリードデータ取り込みに関わる構成を示すブロック図である。
【図５】同実施形態におけるリードデータの取り込み動作のタイミングチャート図である。
【図６】本発明の第３の実施形態におけるＳＤＲＡＭのメモリコントローラとパワーコントローラからなるメモリ制御装置の構成を示すブロック図である。
【図７】同実施形態の動作を説明する信号のタイミングチャート図である。
【図８】本発明の第４の実施形態におけるメモリ制御装置の構成を示すブロック図である。
【図９】同実施形態の動作を説明する信号のタイミングチャート図である。
【符号の説明】
１  メモリコントローラ
２  ＳＤＲＡＭ
３  クロックドライバ
４  ＩＯ端子
５  ＩＯバッファ
６，７，９  フリップフロップ
８  セレクタ
１０  ディレイ素子
１１  インバータ
２１  メモリコントローラ
２２  ＳＤＲＡＭ
２３  パワーコントローラ
２４  メモリコントローラ２１の電源を切り替えるスイッチ
２５  ＳＤＲＡＭ２２の電源を切り替えるスイッチ
２６  プルダウン抵抗
【図１】
0004817510.tif 000002
【図２】
0004817510.tif 000003
【図３】
0004817510.tif 000004
【図４】
0004817510.tif 000005
【図５】
0004817510.tif 000006
【図６】
0004817510.tif 000007
【図７】
0004817510.tif 000008
【図８】
0004817510.tif 000009
【図９】
0004817510.tif 000010