(57)【要約】【課題】ＤＲＡＭを用いたシステムにおいて、意図しないシステムリセットや電源切断などが発生した際に、すでにＤＲＡＭ内にあるデータだけでなく、ＤＲＡＭを用いたシステムにおいて設定されているレジスタ値も保持し、ＤＲＡＭを用いたシステムを出来るだけ短い時間で元の状態に復旧させることが可能な、メモリ制御装置を提供すること。【解決手段】リセット要因発生時にシステムリセットを生成するリセット生成部９と、レジスタ１とＤＲＡＭ１６との間で、レジスタ１に記憶されている設定値の転送を制御するレジスタ転送制御部５と、を備え、レジスタ転送制御部５は、リセット生成部９によりシステムリセットが生成されたことを通知されると、ＤＲＡＭ１６にレジスタ１の設定値を転送し、システムリセットが行われた後に、レジスタ１の設定値を、ＤＲＡＭ１６から再びレジスタ１に転送する。【選択図】図１
2008134785.tif 000002
【特許請求の範囲】
【請求項１】
レジスタと、セルフリフレッシュ機能を有するＤＲＡＭで構成されたメモリとを制御するメモリ制御装置において、
リセット要因発生時にシステムリセットを生成するリセット生成部と、
レジスタとＤＲＡＭとの間で、レジスタに記憶されている設定値の転送を制御するレジスタ転送制御部と、
を備え、
前記レジスタ転送制御部は、前記リセット生成部によりシステムリセットが生成されたことを通知されると、前記ＤＲＡＭに前記レジスタの設定値を転送し、システムリセットが行われた後に、前記レジスタの設定値を、ＤＲＡＭから再びレジスタに転送することを特徴とするメモリ制御装置。
【請求項２】
フラグを格納するフラグ格納部を更に備え、
前記レジスタ転送制御部は、前記レジスタの設定値をＤＲＡＭに転送した場合に、前記フラグ格納部にフラグをセットする制御を更に行い、
前記リセット生成部は、前記フラグ格納部にフラグがセットされている場合には、システムをリセットすることを特徴とする請求項１に記載のメモリ制御装置。
【請求項３】
ＤＲＡＭにセルフリフレッシュコマンドを送信するセルフリフレッシュ制御部を更に備え、
前記セルフリフレッシュ制御部は、前記フラグ格納部にフラグがセットされている場合に、セルフリフレッシュコマンドを送信することを特徴とする請求項２に記載のメモリ制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、レジスタと、セルフリフレッシュ機能を有するＤＲＡＭで構成されたメモリとを制御するメモリ制御装置に関する。
【背景技術】
【０００２】
通常ＤＲＡＭ（Ｄｙｎａｍｉｃ Ｒａｎｄｏｍ Ａｃｃｅｓｓ Ｍｅｍｏｒｙ）はコンデンサと同様の構成で記憶素子が作られており、データとして記憶している電荷は時間の経過とともに各種リーク電流などにより失われる。したがってデータを保持するためには、ある一定時間のうちに保持しているデータを読み出し、同じデータを書き込むという、いわゆるリフレッシュ動作が必要になる。
【０００３】
したがって、ＤＲＡＭを使用したシステムにおいてはシステム動作中にＤＲＡＭに対してリフレッシュ動作を行うためのリフレッシュコマンドを定期的に発行する必要がある。
また、ＤＲＡＭには自身でリフレッシュを実行するセルフリフレッシュと呼ばれる機能があり、ＤＲＡＭを用いたシステムにおいて、低消費電力化を目的に利用される場合がある。
【０００４】
ＤＲＡＭを用いたシステムにおいては、プログラムの暴走によるウォッチドッグタイマからのシステムリセットや、意図しない電源の切断などが発生した場合、ＤＲＡＭのリフレッシュ動作が行われず、ＤＲＡＭのデータを保持することが出来なくなってしまう。
【０００５】
そこで、ＤＲＡＭを用いたシステムで、システムがリセットされる前に、ＤＲＡＭをセルフリフレッシュ状態に移行する方法や、意図しない電源切断を検出して主電源の代わりに副電源から電力を供給することにより、ＤＲＡＭをセルフリフレッシュさせてデータを保持する手法が提案されている（例えば、特許文献１参照）。
【特許文献１】特開２００５−４４４６０号広報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、前記従来技術はすでにＤＲＡＭ内にあるデータは保持されるが、ＤＲＡＭを用いたシステムにおいて、その他の回路ブロックのレジスタ設定値などは保持されない。つまり、システムリセット解除後や電源異常からの復旧後は全てのレジスタ設定をやり直さなければならず、元のレジスタ設定値の状態にするまで、多くの時間を要してしまうといった問題点があった。
【０００７】
上述した問題に鑑み、本発明が目的とするところは、ＤＲＡＭを用いたシステムにおいて、意図しないシステムリセットや電源切断などが発生した際に、すでにＤＲＡＭ内にあるデータだけでなく、ＤＲＡＭを用いたシステムにおいて設定されているレジスタ値も保持し、ＤＲＡＭを用いたシステムを出来るだけ短い時間で元の状態に復旧させることが可能な、メモリ制御装置を提供することである。
【課題を解決するための手段】
【０００８】
上述した課題を解決するために、第１の発明は、レジスタと、セルフリフレッシュ機能を有するＤＲＡＭで構成されたメモリとを制御するメモリ制御装置において、リセット要因発生時にシステムリセットを生成するリセット生成部と、レジスタとＤＲＡＭとの間で、レジスタに記憶されている設定値の転送を制御するレジスタ転送制御部と、を備え、前記レジスタ転送制御部は、前記リセット生成部によりシステムリセットが生成されたことを通知されると、前記ＤＲＡＭに前記レジスタの設定値を転送し、システムリセットが行われた後に、前記レジスタの設定値を、ＤＲＡＭから再びレジスタに転送することを特徴とする。
【０００９】
また、第２の発明は、第１の発明のメモリ制御装置において、フラグを格納するフラグ格納部を更に備え、前記レジスタ転送制御部は、前記レジスタの設定値をＤＲＡＭに転送した場合に、前記フラグ格納部にフラグをセットする制御を更に行い、前記リセット生成部は、前記フラグ格納部にフラグがセットされている場合には、システムをリセットすることを特徴とする。
【００１０】
また、第３の発明は、第２の発明のメモリ制御装置において、ＤＲＡＭにセルフリフレッシュコマンドを送信するセルフリフレッシュ制御部を更に備え、前記セルフリフレッシュ制御部は、前記フラグ格納部にフラグがセットされている場合に、セルフリフレッシュコマンドを送信することを特徴とする。
【発明の効果】
【００１１】
以上、説明したように、本発明のメモリ制御装置によれば、セルフリフレッシュ機能を有するＤＲＡＭで構成されたメモリを制御するメモリ制御装置において、リセットが発生する場合に、レジスタの設定値をＤＲＡＭに転送し、システムリセットが行われた後に、前記レジスタの設定値をＤＲＡＭから再びレジスタに転送することとなる。したがって、意図しないシステムリセットや電源以上が発生した場合であっても、レジスタ設定値が保持されることとなり、速やかにシステムの復旧を行うことができるようになる。
【００１２】
また、本発明のメモリ制御装置によれば、レジスタ設定値がＤＲＡＭに転送された場合にはフラグがセットされることとなる。したがって、リセットをする場合に、レジスタ設定値が確実に保持されているかどうかが適切に判定出来ることとなる。
【００１３】
また、本発明のメモリ制御装置によれば、フラグ格納部にフラグがセットされている場合に、セルフリフレッシュコマンドが送信されることとなる。
【発明を実施するための最良の形態】
【００１４】
以下、本発明に係るメモリ制御装置の最良の実施形態について、図面に基づき詳細に説明する。
【００１５】
図１は本発明の実施形態におけるメモリ制御装置を有する半導体装置の構成の一例を示したブロック図である。図１に示す実施形態ではＤＲＡＭ１６と、メモリコントローラ１３と、レジスタ転送ブロック３と、フラグ格納部１８と、レジスタ１と、リセット生成部９とを備えて構成される。
【００１６】
また、レジスタ転送ブロック３は、セルフリフレッシュ制御部６と、レジスタ転送制御部５と、フラグ制御部４とを備えて構成される。また、ＤＲＡＭ１６の一例としては、ＳＤＲＡＭ（Ｓｙｎｃｈｒｏｎｏｕｓ ＤＲＡＭ）、ＤＤＲ（Ｄｏｕｂｌｅ Ｄａｔａ Ｒａｔｅ） ＳＤＲＡＭ、ＤＤＲ２ ＳＤＲＡＭなどが考えられる。また、レジスタ１は複数のレジスタ群であっても構わない。図１における本発明の実施形態においては、同一の半導体装置に集積されたＳｏＣ（Ｓｙｓｔｅｍ ｏｎ Ｃｈｉｐ）や、同一パッケージ内に複数の半導体装置が封入されたＳｉＰ（Ｓｙｓｔｅｍ ｉｎ Ｐａｃｋａｇｅ）の形で実現してもよい。
【００１７】
通常、ＤＲＡＭ１６を用いたシステムにおいて、メモリコントローラ１３から定期的にリフレッシュコマンドを発行し、ＤＲＡＭ１６をリフレッシュしている。意図しないシステムリセットが発生した場合、リセット要因８をリセット生成部９が受け取ると、レジスタ転送制御部５にレジスタ転送命令１０を送る。
【００１８】
レジスタ転送制御部５は、レジスタ転送命令１０を受け取ると、レジスタ１のレジスタ設定値をメモリコントローラ１３を介してＤＲＡＭ１６へ転送する。転送が完了すると、レジスタ転送制御部５は、レジスタ転送完了通知２０をセルフリフレッシュ制御部６へ送ると共に、フラグ制御部４へフラグセット命令１９ａを送る。
【００１９】
そして、フラグセット命令１９ａを受け取ったフラグ制御部４は、フラグ格納部１８にフラグ１５をセットする。また、レジスタ転送完了通知２０を受け取ったセルフリフレッシュ制御部６は、セルフリフレッシュエントリコマンド発行要求１４ａをメモリコントローラ１３のコマンド制御部２１へ送る。
【００２０】
また、セルフリフレッシュエントリコマンド発行要求１４ａを受け取ったコマンド制御部２１は、ＤＲＡＭ１６にセルフリフレッシュエントリコマンドを発行し、ＤＲＡＭ１６をセルフリフレッシュ状態にする。セルフリフレッシュエントリコマンド発行後、セルフリフレッシュ制御部６は、リセット生成部９に対して、セルフリフレッシュエントリコマンド発行完了通知１１を送る。
【００２１】
そして、リセット生成部９は、セルフリフレッシュエントリコマンド発行完了通知を受け取ると、システムリセット７をアサートし、システムをリセットする。ここで、リセット要因８としては、プログラムの暴走によるウォッチドッグタイマからのシステムリセット要求や、電源異常によるシステムリセット要求が挙げられる。
【００２２】
また、ＤＲＡＭ１６とフラグ格納部１８は、システムリセット７によってリセットされることなく、またシステムの主電源に電源異常があった場合、副電源（不図示）から電力の供給を受けることにより、ＤＲＡＭ１６とフラグ格納部１８の内容が消えることはない。
【００２３】
ここで、上記リセット要因発生から、システムリセットに至るまでのタイミングチャートの一例を図２に示す。図２の例ではリセット要因、システムリセットはローアクティブの信号としている。また、レジスタ転送命令、レジスタ転送完了通知、フラグセット命令、フラグ、セルフリフレッシュエントリコマンド発行要求、セルフリフレッシュエントリコマンド発行完了通知は、ハイアクティブの信号としている。
【００２４】
フラグは’Ｌ’から’Ｈ’に変化することで、フラグがセットされている。リフレッシュ状態がオートリフレッシュとなっている時は、メモリコントローラ１３からのリフレッシュコマンドによりＤＲＡＭ１６がリフレッシュされ、セルフリフレッシュとなっている時はＤＲＡＭ１６自身でリフレッシュを行っている。
【００２５】
システムリセット７が解除されると、ＣＰＵ（不図示）がメモリコントローラ１３の設定を行い、設定終了後、メモリコントローラ設定完了通知２５をフラグ制御部４へ送る。フラグ制御部４は、メモリコントローラ設定完了通知２５を受け取ると、フラグ格納部１８からフラグ１５を読み出し、フラグ１５がセットされていればフラグ１５をセルフリフレッシュ制御部６へ送る。
【００２６】
セルフリフレッシュ制御部６は、フラグ２２を受け取った後、ＤＲＡＭ１６がセルフリフレッシュ状態で、データが保持されていると判断し、セルフリフレッシュイグジットコマンド発行要求１４ｂをコマンド制御部２１へ送る。
【００２７】
コマンド制御部２１は、セルフリフレッシュイグジットコマンド発行要求１４ｂを受け取ると、セルフリフレッシュイグジットコマンドをＤＲＡＭ１６に発行する。ＤＲＡＭ１６は、セルフリフレッシュイグジットコマンドを受け取ると、セルフリフレッシュ状態を脱し、通常アクセス可能な状態となる。
【００２８】
セルフリフレッシュ制御部６は、セルフリフレッシュイグジットコマンド発行後、レジスタ転送制御部５にセルフリフレッシュイグジットコマンド発行完了通知２４を送る。レジスタ転送制御部５は、セルフリフレッシュイグジットコマンド発行完了通知２４を受け取ると、メモリコントローラ１３を介してＤＲＡＭ１６内に保持してあったレジスタ設定値をレジスタ１へ転送する。
【００２９】
また、レジスタ転送制御部５は、フラグ制御部４にフラグクリア命令１９ｂを送り、フラグ制御部４はフラグ格納部１８のフラグをクリアする。レジスタ転送制御部５によるレジスタ転送完了後、ＣＰＵ（不図示）へレジスタ転送完了通知２３を送り、ＣＰＵはシステムのレジスタ設定が設定済みと判断し、即座にシステムとしての動作を開始する。セルフリフレッシュ状態を脱した後は、ＤＲＡＭ１６は、メモリコントローラ１３から定期的にリフレッシュコマンドを受け取る。
【００３０】
ここで、上記システムリセット解除から、システムの通常動作開始までのタイミングチャートの一例を図３に示す。図３の例ではシステムリセットはローアクティブの信号としている。また、メモリコントローラ設定完了通知、セルフリフレッシュイグジットコマンド発行要求、セルフリフレッシュイグジットコマンド発行完了通知、フラグクリア命令、フラグ、レジスタ転送完了通知はハイアクティブの信号としている。フラグは’Ｈ’から’Ｌ’に変化することでフラグがクリアされている。
【００３１】
リフレッシュ状態がオートリフレッシュとなっている時は、メモリコントローラ１３からのリフレッシュコマンドによりＤＲＡＭ１６がリフレッシュされ、セルフリフレッシュとなっている時はＤＲＡＭ１６自身でリフレッシュを行っている。
【００３２】
このように、本実施形態によれば、意図しないシステムリセットや電源異常が発生した際に、レジスタ１に設定された設定値を、ＤＲＡＭ１６へ転送してから、ＤＲＡＭ１６をセルフリフレッシュ状態へ移行し、システムが正常に復帰した後、ＤＲＡＭ１６へ転送し保持しておいたレジスタの設定値を、元のレジスタ１へ戻すことによって速やかにシステムの復旧を行うことが可能となる。
【図面の簡単な説明】
【００３３】
【図１】本発明の実施形態におけるメモリ制御装置を有する半導体装置の構成の一例を示すブロック図。
【図２】本発明の実施形態におけるメモリ制御装置について、リセット要因発生からシステムリセット発生に至るまでのタイミングチャートの一例を示した図。
【図３】本発明の実施形態におけるメモリ制御装置について、システムリセット解除からシステムの通常動作開始に至るまでのタイミングチャートの一例を示した図。
【符号の説明】
【００３４】
１  レジスタ
２，１２  レジスタ設定値
３  レジスタ転送ブロック
４  フラグ制御部
５  レジスタ転送制御部
６  セルフリフレッシュ制御部
７  システムリセット
８  リセット要因
９  リセット生成部
１０  レジスタ転送命令
１１  セルフリフレッシュエントリコマンド発行完了通知
１３  メモリコントローラ
１４ａ  セルフリフレッシュエントリコマンド発行要求
１４ｂ  セルフリフレッシュイグジットコマンド発行要求
１５，２２  フラグ
１６  ＤＲＡＭ
１７  ＤＲＡＭインタフェース信号
１８  フラグ格納部
１９ａ  フラグセット命令
１９ｂ  フラグクリア命令
２０，２３  レジスタ転送完了通知
２１  コマンド制御部
２４  セルフリフレッシュイグジットコマンド発行完了通知
２５  メモリコントローラ設定完了通知
【図１】
2008134785.tif 000003
【図２】
2008134785.tif 000004
【図３】
2008134785.tif 000005