説明

メモリ制御装置

【課題】セルフリフレッシュ機能を有するメモリを制御するメモリ制御装置において、電源電圧が低下した場合でも、メモリの記憶内容を正確に保持すること。
【解決手段】+24Vの電源電圧が低下すると、検出信号sdbkupnがHIGHとなり(1)、それに応じてリブート信号req_rebootがHIGHとなる(2)。すると、信号self_refleshがHIGHとなり(3)、SDRAMコントローラ33を介してSDRAM9にセルフリフレッシュ動作が指示される。また、リブート信号req_rebootに応じて信号reboot_output_nもLOWとなる(4)。すると、信号b_watch_in_n,信号rst_rstctl_n,信号rst_cpu_nが順次LOWとなって、監視ブロック35,リセットコントローラ37,CPU31が順次リセットされる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、メモリを制御するメモリ制御装置に関し、詳しくは、セルフリフレッシュ機能を有するメモリを制御するメモリ制御装置に関する。
【背景技術】
【0002】
従来より、SDRAM(Synchronous Dynamic Random Access Memory)等のメモリは、メモリセルの構成上、リフレッシュ動作を必要としている。また、省電力モードなどメモリの読み書きが行われないときは、セルフリフレッシュと呼ばれるリフレッシュモードで記憶内容を保持している。また、この種のメモリを制御するメモリ制御装置としては、パワーダウン信号によって省電力モードが設定されたときに、SDRAMに対してセルフリフレッシュ動作を指示し、続いてCPU等への電源供給を停止するものも提案されている(例えば、特許文献1参照)。
【0003】
この場合、CPU等への電源供給が停止されることでそのCPU等によるSDRAMへのアクセスも停止される省電力モードの設定時には、SDRAMに対してセルフリフレッシュ動作が指示されるので、低電力で記憶内容を保持することができる。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2006−4108号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
ところが、特許文献1では、省電力モードの設定時にCPUの処理を介してSDRAMにセルフリフレッシュ動作を指示している。その場合、異常等によって電源の電圧の低下がCPUに伝達されると、CPUがSDRAM等にアクセスして割り込み処理を行うことによって、CPUがSDRAMにセルフリフレッシュ動作を指示する。
【0006】
そのCPUが割り込み処理に要する時間が、電源の電圧がCPUを駆動するのに必要な電圧まで低下するまでの時間より長い場合、CPUがSDRAMにセルフリフレッシュ動作を指示することができず、SDRAMは記憶内容を保持することができない。
【0007】
そこで、本発明は、セルフリフレッシュ機能を有するメモリを制御するメモリ制御装置において、電源の電圧が低下した場合でも、メモリの記憶内容を正確に保持することを目的としてなされた。
【課題を解決するための手段】
【0008】
上記目的を達するためになされた本発明は、セルフリフレッシュ機能を有するメモリを制御するメモリ制御装置であって、電源から一定値の駆動電圧を生成する駆動電圧生成部と、上記駆動電圧生成部によって生成された駆動電圧によって駆動され、上記メモリにアクセス可能なCPUと、上記駆動電圧生成部が上記電源から上記一定値の駆動電圧を生成するのに必要な値以上であって、かつ、その電源の電圧の値の誤差範囲における最低電圧未満である閾値が設定され、その設定された閾値未満の上記電源の電圧を検出したときに検出信号を出力する電源電圧検出部と、上記電源電圧検出部が上記検出信号を出力したとき、上記メモリにセルフリフレッシュ動作を指示するリフレッシュ信号と上記CPUに停止を指示する停止信号とを出力する制御部と、を備えたことを特徴としている。
【0009】
このように構成された本発明のメモリ制御装置では、駆動電圧生成部は、電源から一定値の駆動電圧を生成し、その駆動電圧によって、メモリにアクセス可能なCPUが駆動される。また、電源電圧検出部は、上記電源の電圧が所定の閾値未満となったときに検出信号を出力する。なお、上記閾値は、上記駆動電圧生成部がその電源から上記一定値の駆動電圧を生成するのに必要な値以上であって、かつ、その電源の電圧の値の誤差変動範囲における最低電圧未満である閾値が設定される。そして、制御部は、上記電源電圧検出部が上記検出信号を出力したとき、上記メモリにセルフリフレッシュ動作を指示するリフレッシュ信号と上記CPUに停止を指示する停止信号とを出力する。
【0010】
このように、本発明では、電源の電圧が上記閾値未満となったときに、上記制御部を介して、上記メモリにセルフリフレッシュ動作を指示すると共に上記CPUを停止することができる。また、この制御部は、上記メモリにアクセス可能な上記CPUとは独立している。このため、本発明のメモリ制御装置では、電源の電圧が上記閾値未満に低下した場合でも、SDRAMに対してセルフリフレッシュ動作を指示することによって上記メモリの記憶内容を正確に保持することができ、かつ、上記CPUを停止する停止信号を出力することによって、CPUが上記メモリにアクセスすることによる誤動作を防止することができる。
【0011】
なお、上記制御部は、上記電源電圧検出部が上記検出信号を一定期間出力したとき、リブート信号を出力する監視部と、上記監視部が上記リブート信号を出力したとき、上記リフレッシュ信号及び上記停止信号を出力するリセットコントローラ部と、を備えてもよい。この場合、上記電源電圧検出部が上記検出信号を一定期間出力したとき、監視部がリブート信号を出力し、それに応じてリセットコントローラ部が上記リフレッシュ信号及び上記停止信号を出力する。このため、何らかのエラーやノイズにより上記検出信号が一時的に出力された場合には、上記リフレッシュ信号及び上記停止信号が出力されず、当該メモリ制御装置による制御の安定性を確保することができる。
【0012】
そして、その場合、上記リセットコントローラ部は、上記監視部が上記リブート信号を出力したとき、上記リフレッシュ信号と上記監視部をリセットする監視部リセット信号とを出力し、上記監視部は、上記リセットコントローラ部が上記監視部リセット信号を出力したとき、上記リセットコントローラ部をリセットするコントローラリセット信号を出力し、かつ、自身を初期化して停止し、上記リセットコントローラ部は、上記監視部が上記コントローラリセット信号を出力したとき、上記停止信号を出力し、かつ、自身を初期化して停止してもよい。
【0013】
この場合、上記検出信号が一定期間出力されて上記監視部が上記リブート信号を出力したとき、上記リセットコントローラ部は、上記リフレッシュ信号と、上記監視部をリセットする監視部リセット信号とを出力する。すると、上記監視部は、その監視部リセット信号に応じて、上記リセットコントローラ部をリセットするコントローラリセット信号を出力し、かつ、自身を初期化して停止する。このため、上記リブート信号の出力時には、前述のリフレッシュ信号が出力されるのは勿論のこと、上記監視部は初期化された状態で停止することになる。また、上記監視部が上記コントローラリセット信号を出力したとき、上記リセットコントローラ部は、上記停止信号を出力し、かつ、自身を初期化して停止する。このため、上記リブート信号の出力時には、前述の停止信号が出力されるのは勿論のこと、上記リセットコントローラ部は初期化された状態で停止することになる。
【0014】
従って、上記リブート信号が出力されて、上記セルフリフレッシュ動作及び上記CPUの停止がなされた後、当該メモリ制御装置が再起動されるときは、上記監視部及び上記リセットコントローラ部は初期化された状態から再起動される。よって、その再起動時の処理を一層円滑に実行することができる。また、上記駆動電圧生成部は、DC/DCコンバータで構成されてもよい。
【図面の簡単な説明】
【0015】
【図1】本発明を適用したメモリ制御装置の構成を概略的に表すブロック図である。
【図2】そのメモリ制御装置の電源電圧低下時の動作を表す図で、(A)は電源電圧の変化を例示する説明図、(B)は各信号の変化を例示するタイムチャートである。
【発明を実施するための形態】
【0016】
[メモリ制御装置の構成]
次に、本発明の実施の形態を図面と共に説明する。図1は、本発明が適用されたメモリ制御装置1の構成を概略的に表すブロック図である。なお、本発明が適用されたメモリ制御装置1は、例えば、電子写真方式等で用紙等に画像を形成する画像形成装置に使用されるメモリを制御するのに用いられる。
【0017】
図1に示すように、本実施の形態のメモリ制御装置1はASIC3を中心に構成されており、そのASIC3には、+24Vの直流電源(電源の一例)からDC/DCコンバータ5(駆動電圧生成部の一例)によって生成された駆動電圧の一例としての+3.3Vの直流電圧が供給されている。なお、上記+24Vの直流電源は、商用交流電源から整流されて生成されたものであってもよく、その+24Vの電圧は、上述した画像形成装置のプリンタエンジン等(図示省略)の駆動電圧として供給されてもよい。
【0018】
また、上記+24Vの電源には、電源電圧検出回路7(電源電圧検出部の一例)が接続されており、次のような検出信号sdbkupnをASIC3に入力している。すなわち、図2(A),(B)に示すように、検出信号sdbkupnは、上記電源の電圧が予め設定された所定の閾値VTHよりも高いときはHIGH、上記電源の電圧がその閾値VTHよりも低いときはLOWとなる信号である。ここで、上記閾値VTHは、上記電源からDC/DCコンバータ5が+3.3Vの直流電圧を生成するのに必要な値以上であって、かつ、その電源の電圧の値の通常の変動範囲の最低電圧であるVM未満の値に設定されている。
【0019】
画像形成装置の場合、プリンタエンジンが画像形成するのに必要な電圧が24Vであり、その電圧を基にメモリ制御装置1が動作している。メモリ制御装置1は、クロック信号に従い動作し、そのクロック信号が変わる瞬間に多くの論理回路が動作する為に、電源は瞬間的に多くの電流をメモリ制御装置1に供給する必要がある。それが電源の電圧変動が生じる原因であって、その変動の範囲が電源の電圧の誤差範囲である。
【0020】
また、ASIC3には、セルフリフレッシュ機能を有し、上記電源とは独立した二次電源から+3.3Vの直流電圧を印加されたメモリの一例としてのSDRAM9が接続される。ASIC3に内蔵されたCPU31は、同じくASIC3に内蔵されたSDRAMコントローラ(SDRAMCTL)33を介してSDRAM9にアクセス可能に構成されている。SDRAM9は、CPU31から読み書きされた内容を記憶しているが、SDRAMのメモリセルの構造上、リフレッシュ動作を必要としている。省電力モードでは、SDRAM9は、SDRAMコントローラ33からセルフリフレッシュ制御信号を受信すると、二次電源から供給される電圧によって電荷を補充し、記憶内容を保持する。SDRAM9がセルフリフレッシュ状態であると、CPU31は、SDRAM9にアクセスすることができず、記憶内容を読み書きすることができない。
【0021】
更に、ASIC3は、リセット,SDBKUPN監視ブロック(監視部の一例:以下単に監視ブロックという)35と、リセットコントローラ37(リセットコントローラ部の一例)とを備えている。なお、監視ブロック35とリセットコントローラ37とはいずれも論理回路によって構成され、両者で制御部の一例に相当する。
【0022】
また、DC/DCコンバータ5によって生成された+3.3Vの直流電圧は、リセットIC41にも入力されている。リセットIC41は信号output_rsticを出力しており、その信号output_rsticは、電源投入後、リセットIC41への入力電圧が3.3Vを超えると所定の遅延時間の後にHIGHとなる。そして、この信号output_rsticは、リセットコントローラ37が出力する後述の信号reboot_output_nと共に、負論理の論理和であるAND43に入力されている。
【0023】
このAND43の出力は、信号b_watch_in_nとして、前述の電源電圧検出回路7が出力する検出信号sdbkupnと共に監視ブロック35に入力されている。なお、この信号b_watch_in_nは、監視ブロック35に対するLOWアクティブのリセット信号でもある。そして、監視ブロック35は、検出信号sdbkupnに基づいてリブート信号req_rebootを、信号b_watch_in_nに基づいて、信号rst_rstctl_n(コントローラリセット信号の一例)をそれぞれリセットコントローラ37へ出力する。すなわち、リブート信号req_rebootは、検出信号sdbkupnが一定期間継続してLOWとなると一定期間HIGHとなる信号である。また、信号rst_rstctl_nは、リセットコントローラ37をリセットするためのLOWアクティブの信号であって、検出信号sdbkupn及び信号b_watch_in_nが共にLOWであるとLOWとなり、他の場合はHIGHとなる。
【0024】
リセットコントローラ37は、リブート信号req_reboot及び信号rst_rstctl_nに基づいて、次のような信号reboot_output_n(監視部リセット信号の一例),信号self_reflesh(リフレッシュ信号の一例)を出力する。すなわち、信号reboot_output_nは、前述のAND43に入力されるLOWアクティブの再起動用リセット信号である。リブート信号req_rebootがHIGHになると信号reboot_output_nは、LOWとなる。信号self_refleshは、SDRAMコントローラ33へ入力されるセルフリフレッシュ制御信号である。リブート信号req_rebootがHIGHになると、信号self_refleshは、一定期間HIGHとなる。更に、リセットコントローラ37は、自身がリセット状態となるとLOWとなる信号rst_cpu_n(停止信号の一例)をCPU31に入力している。この信号rst_cpu_nは、CPU31に対するLOWで有効となるCPU31を初期化するLOWアクティブのリセット信号である。
【0025】
[メモリ制御装置の動作]
次に、このメモリ制御装置1の動作を、電源の遮断若しくはなんらかの異常で電源の電圧が低下した場合を例にとって説明する。図2(A)は、その場合の電源の電圧の変化を例示する説明図であり、図2(B)は、その場合の上記各信号の変化を例示するタイムチャートである。
【0026】
図2(A),(B)に示すように、電源の電圧(供給電圧)が+24Vに維持されているときは、検出信号sdbkupn,信号reboot_output_n,信号b_watch_in_n,信号rst_rstctl_n,信号rst_cpu_n,信号output_rsticはHIGHとされ、リブート信号req_reboot,信号self_refleshはLOWとされる。また、このとき、CPU31は動作しており、CPU31は、SDRAM9にアクセス可能である。
【0027】
そして、電源の電圧が低下して閾値VTHを下回ると、検出信号sdbkupnがLOWとなる(1)。そして、検出信号sdbkupnが一定期間継続してLOWとなると、リブート信号req_rebootが一定期間HIGHとなる(2)。なお、(1)〜(2)に至る一定期間は数msec程度の時間である(図2(B)参照)。
【0028】
すると、そのリブート信号req_rebootがHIGHになることにより、信号self_refleshが一定期間HIGHとなる(3)。こうして、セルフリフレッシュ制御信号としてSDRAMコントローラ33へ入力されている信号self_refleshがHIGHとなると、SDRAM9にセルフリフレッシュ動作が指示され、SDRAM9はセルフリフレッシュ状態となってCPU31はアクセス不可となる。
【0029】
また、前述のようにリブート信号req_rebootがHIGHとされると、信号reboot_output_nもLOWとなる(4)。すると、信号b_watch_in_nがLOWとなり(5)、監視ブロック35がリセットされ、リセットコントローラ37をリセットするための信号rst_rstctl_n(LOWアクティブ)もLOWとなる(6)。この結果、リセットコントローラ37もリセットされ、CPU31をリセットするための信号rst_cpu_n(LOWアクティブ)もLOWとなる(7)。このため、CPU31は、それまでの動作状態からリセット状態へと移行する。
【0030】
また、このようにリセットコントローラ37がリセットされることによって、信号reboot_output_nは初期状態であるHIGHとなり(7)、それに応じて信号b_watch_in_nも初期状態であるHIGHとなる(8)。そして、更に電源の電圧が低下して、VDCを下回ると、DC/DCコンバータ5でASIC3を駆動する+3.3Vの電圧が生成できなくなるので、信号reboot_output_n,信号b_watch_in_nと共に、信号output_rsticもLOWとなる。
【0031】
[本実施の形態の効果及びその変形例]
このように、本実施の形態では、電源の電圧が閾値VTH未満となったときに、SDRAM9がセルフリフレッシュを行い、CPU31がリセット(初期化)されて停止することができる。また、そのような処理を行う監視ブロック35,リセットコントローラ37は、SDRAM9にアクセス可能なCPU31とは独立している。このため、本実施の形態のメモリ制御装置1では、電源の電圧が閾値VTH未満に低下した場合、SDRAM9がセルフリフレッシュ状態となり、そのSDRAM9の記憶内容を正確に保持することができる。
【0032】
また、CPU31自身がSDRAM9に対してセルフリフレッシュ状態となるように指示したのではなく、電源電圧検出回路7が出力する検出信号sdbkupnに基づいてSDRAM9がセルフリフレッシュ状態になる。本実施の形態では、CPU31がセルフリフレッシュ中のSDRAM9にアクセスすることによる誤動作を防止するために、SDRAM9はセルフリフレッシュ動作を行い、かつ、CPU31がリセット(初期化)され停止する。
【0033】
しかも、上記セルフリフレッシュ動作及びCPU31のリセットは、電源の電圧が閾値VTH未満となったときにLOWとなる検出信号sdbkupnが一定期間継続してLOWとなったときに実行される。このため、何らかのエラーやノイズにより検出信号sdbkupnが一時的にLOWとなった場合には、上記セルフリフレッシュ動作及びCPU31の停止がなされず、当該メモリ制御装置1による制御の安定性を確保することができる。
【0034】
また、検出信号sdbkupnが一定期間継続してLOWとなってリブート信号req_rebootが出力されたときは、前述のセルフリフレッシュ動作やCPU31のリセットが実行されるのは勿論のこと、監視ブロック35,リセットコントローラ37もリセット(初期化)された状態で停止することになる。従って、リブート信号req_rebootが出力されて、上記セルフリフレッシュ動作及びCPU31のリセットがなされた後、当該メモリ制御装置1が再起動されるときは、監視ブロック35,リセットコントローラ37は初期化された状態から再起動される。よって、その再起動時の処理を一層円滑に実行することができる。
【0035】
なお、本発明は上記実施の形態に何等限定されるものではなく、本発明の要旨を逸脱しない範囲で種々の形態で実施することができる。例えば、上記駆動電圧生成部は、必ずしもDC/DCコンバータで構成される必要はなく、レギュレータ等を用いて構成されてもよい。また、監視ブロック35,リセットコントローラ37は一体の素子として構成されてもよい。但し、上記実施の形態のように、監視ブロック35,リセットコントローラ37を別体の素子で構成し、それらをリセットするための信号を互いに出力し合う場合、前述のように各部が初期化された状態から再起動されるようにして処理を円滑にするといった効果が一層確実に得られる。
【符号の説明】
【0036】
1…メモリ制御装置 3…ASIC
5…DC/DCコンバータ 7…電源電圧検出回路
9…SDRAM 33…SDRAMコントローラ
35…リセット,SDBKUPN監視ブロック 37…リセットコントローラ
41…リセットIC 43…AND
31…CPU

【特許請求の範囲】
【請求項1】
セルフリフレッシュ機能を有するメモリを制御するメモリ制御装置であって、
電源から一定値の駆動電圧を生成する駆動電圧生成部と、
上記駆動電圧生成部によって生成された駆動電圧によって駆動され、上記メモリにアクセス可能なCPUと、
上記駆動電圧生成部が上記電源から上記一定値の駆動電圧を生成するのに必要な値以上であって、かつ、その電源の電圧の値の誤差範囲における最低電圧未満である閾値が設定され、その設定された閾値未満の上記電源の電圧を検出したときに検出信号を出力する電源電圧検出部と、
上記電源電圧検出部が上記検出信号を出力したとき、上記メモリにセルフリフレッシュ動作を指示するリフレッシュ信号と上記CPUに停止を指示する停止信号とを出力する制御部と、
を備えたことを特徴とするメモリ制御装置。
【請求項2】
上記制御部は、上記電源電圧検出部が上記検出信号を一定期間出力したとき、リブート信号を出力する監視部と、
上記監視部が上記リブート信号を出力したとき、上記リフレッシュ信号及び上記停止信号を出力するリセットコントローラ部と、
を備えたことを特徴とする請求項1記載のメモリ制御装置。
【請求項3】
上記リセットコントローラ部は、上記監視部が上記リブート信号を出力したとき、上記リフレッシュ信号と、上記監視部をリセットする監視部リセット信号とを出力し、
上記監視部は、上記リセットコントローラ部が上記監視部リセット信号を出力したとき、上記リセットコントローラ部をリセットするコントローラリセット信号を出力し、かつ、自身を初期化して停止し、
上記リセットコントローラ部は、上記監視部が上記コントローラリセット信号を出力したとき、上記停止信号を出力し、かつ、自身を初期化して停止することを特徴とする請求項2記載のメモリ制御装置。
【請求項4】
上記駆動電圧生成部は、DC/DCコンバータで構成されていることを特徴とする請求項1〜3のいずれか1項に記載のメモリ制御装置。

【図1】
image rotate

【図2】
image rotate