JP2015064758A - メモリ制御装置、メモリ制御方法、情報機器及びプログラム - Google Patents

メモリ制御装置、メモリ制御方法、情報機器及びプログラム Download PDF

Info

Publication number
JP2015064758A
JP2015064758A JP2013198330A JP2013198330A JP2015064758A JP 2015064758 A JP2015064758 A JP 2015064758A JP 2013198330 A JP2013198330 A JP 2013198330A JP 2013198330 A JP2013198330 A JP 2013198330A JP 2015064758 A JP2015064758 A JP 2015064758A
Authority
JP
Japan
Prior art keywords
memory
ram
cpu
data
nonvolatile
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2013198330A
Other languages
English (en)
Other versions
JP6165008B2 (ja
JP2015064758A5 (ja
Inventor
賀久 野村
Shigehisa Nomura
賀久 野村
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2013198330A priority Critical patent/JP6165008B2/ja
Priority to KR1020140125697A priority patent/KR101762242B1/ko
Priority to CN201410491575.8A priority patent/CN104464813A/zh
Priority to US14/494,943 priority patent/US10268257B2/en
Priority to EP14186091.6A priority patent/EP2857979B1/en
Publication of JP2015064758A publication Critical patent/JP2015064758A/ja
Publication of JP2015064758A5 publication Critical patent/JP2015064758A5/ja
Application granted granted Critical
Publication of JP6165008B2 publication Critical patent/JP6165008B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3287Power saving characterised by the action undertaken by switching off individual functional units in the computer system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1694Configuration of memory controller to different memory types
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/30Means for acting in the event of power-supply failure or interruption, e.g. power-supply fluctuations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3051Monitoring arrangements for monitoring the configuration of the computing system or of the computing system component, e.g. monitoring the presence of processing resources, peripherals, I/O links, software programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/875Monitoring of systems including the internet
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System (AREA)
  • Record Information Processing For Printing (AREA)
  • Power Sources (AREA)
  • Accessory Devices And Overall Control Thereof (AREA)

Abstract

【課題】情報機器が備える不揮発性メモリの特性を確実に発揮させることができるメモリ制御装置を提供する。【解決手段】情報機器の一例であるMFP100は、全体的な動作制御を司るCPU112と、データの書き込みと読み出しが可能な半導体メモリである第1のRAM120及び第2のRAM121を備える。CPU112は、第1のRAM120及び第2のRAM121が不揮発性メモリであるか揮発性メモリであるかを検出し、揮発性メモリと不揮発性メモリとで異なる設定を行う。例えば、揮発性メモリであることを検出した第1のRAM120を電源OFFによりデータが消失しても構わないワークメモリに設定し、不揮発性メモリであることを検出した第2のRAM121をファームウェア等の電源をOFFしても保持したいデータを格納するメモリに設定する。【選択図】図1

Description

本発明は、半導体メモリに対して種々の制御を行うメモリ制御装置及びメモリ制御方法、このメモリ制御装置を備える情報機器、このメモリ制御方法をコンピュータに実行させるためのプログラムに関する。
近年、CPUや周辺回路用LSIの処理速度の高速化に伴い、半導体メモリのデータ転送速度にも高速化が要求されている。種々の半導体メモリのうちの1つに同期型半導体メモリであるSDRAMがある。SDRAMは、LSIのシステムクロックに同期した制御とデータの入出力を行う。SDRAMでは、RASやCAS、WE等の制御信号がシステムクロックであるCLKの立ち上りエッジに同期して入力され、これらの入力信号のHighレベルとLowレベルの組み合わせによって制御命令(コマンド)が決まる。また、SDRAMでは、アドレスとデータもCLKの立ち上りエッジに同期して入力される。このような同期型半導体メモリを実現することにより、メモリに対するデータの入出力転送速度を大幅に向上させることができる。
しかしながら、半導体メモリのデータ転送速度の高速化に伴い、CLKとの同期化に対して、各種の入力信号のセットアップタイム及びホールドタイムが短くなるという問題が生じる。同期型半導体メモリにおいて必要なセットアップタイム及びホールドタイムを実現するためには、制御命令にかかわらず、常にアドレスやデータ入力の初段回路を活性化状態にしておく必要がある。そこで、高速データ通信を実現するために、データストローブ信号(DQS)を採用した半導体メモリに関する技術が知られている。データストローブ信号を採用した半導体メモリとして、例えば、DDR2 SDRAMやDDR3 SDRAM等がある。
ところで、複合機(MFP)をはじめとした各種の情報機器では、内部のLSIや半導体メモリの消費電力の増大が深刻化しており、低電力化が求められている。低電力化の方法としては、LSI等を局所的に省電力モード(スリープモード)へ移行させる方法や供給する電源を遮断する方法等がある。しかし、揮発性メモリに記憶されたデータは電源遮断により消失するため、電源遮断前に揮発性メモリに記憶されたデータを不揮発性メモリへ退避させる必要が生じる。また、次に電源を投入したときには、退避したデータの移行を行う必要が生じるため、データ移行に時間を要してしまうことで起動時間が長くなってしまうという新たな問題が生じる。
この問題に対して、DDR3 SDRAM等の揮発性メモリの代替として、磁気抵抗メモリ(以下「MRAM」と記す)等の不揮発性メモリを用いる技術が提案されている(例えば、特許文献1参照)。MRAMは、装置電源を遮断しても磁気によってデータを保持することができ、高速アクセスも可能であるため、装置電源を遮断するに際して、前述のデータを退避する必要が無くなる。また、MRAMを用いた情報機器では、最初の電源投入時に起動プログラムをMRAMに格納し、その後に電源が遮断され、再度電源が投入されたときには、MRAMから起動プログラムを実行することができ、これにより高速起動が可能になる。
特開2013−4043号公報
しかしながら、MRAMは、揮発性メモリであるDDR3 SDRAMと互換性を持つ構成となっている。そのため、複数のメモリデバイスを搭載することができるように複数のメモリスロットを備える情報機器では、ユーザがメモリデバイスを追加、交換することができるため、1台の情報機器内にDDR3 SDRAMとMRAMとが混在する可能性がある。この場合、起動プログラムをMRAMに格納すべきところをDDR3 SDRAMに格納してしまう可能性があり、MRAMの特性を有効に活用することができない。
本発明は、情報機器が備える不揮発性メモリの特性を確実に発揮させることができるメモリ制御装置を提供することを目的とする。
本発明に係るメモリ制御装置は、データの書き込みと読み出しが可能な半導体メモリが不揮発性メモリであるか揮発性メモリであるかを検出する検出手段と、前記検出手段が検出した不揮発性メモリに対して、揮発性メモリとは異なる設定を行う設定手段とを備えることを特徴とする。
本発明では、情報機器の起動時にメモリ情報を検出し、不揮発性メモリを特定する。これにより、検出結果に応じてメモリマッピングや電源制御を設定、変更することができるため、不揮発性メモリの特性を確実に発揮させることができる。
本発明の実施形態に係るMFPを含むネットワークシステムの概略構成と、MFPのハードウェアの概略構成とを示す図である。 図1のMFPが備えるコントローラ部におけるCPUとメモリコントローラとの関係を示すブロック図である。 図1のMFPにおけるライトレベリング中のメモリバス上でのメモリコントローラと第1のRAMのclk,dqsのタイミングチャートである。 図1のMFPにおけるメモリデバイス(第1のRAM及び第2のRAM)の初期化シーケンスのフローチャートである。 図1のMFPが備える第1のRAM及び第2のRAM(メモリモジュール)のSPDから読み取ることができるメモリ情報の一例を示す図である。 図1のMFPが備える第1のRAM及び第2のRAMの初期化キャリブレーションの結果の一例を示す図である。 図1のMFPのワークメモリリストの一例を示す図である。 図1のMFPが備えるメモリデバイス(第1のRAM及び第2のRAM)が揮発性メモリであるか不揮発性メモリであるかをリフレッシュコマンド間隔の変更を利用して検出する方法のフローチャートである。 図1のMFPのコントローラ部において第1のRAM及び第2のRAMの電源制御を行う構成を示すブロック図である 図9の構成において、不揮発性メモリを検出して電源制御を行うための電源制御メモリリストの初期化シーケンスのフローチャートである。 図10のフローチャートの処理により作成される電源制御メモリリストの一例を示す図である。 図9の構成において、MFPが省電力モードに入るときの電源制御シーケンスのフローチャートである。 図9の構成において、MFPが備えるメモリデバイス(第1のRAM及び第2のRAM)が揮発性メモリであるか不揮発性メモリであるかを電源の遮断を利用して検出する方法のフローチャートである。 図1及び図9の構成を備えるMFPの動作時における電源制御シーケンスのフローチャートである。
以下、本発明の実施形態について、添付図面を参照して詳細に説明する。ここでは、メモリ制御装置を備える情報機器としてMFP(Multifunction Peripheral)を取り上げることとするが、本発明はこれに限定されるものではない。
<第1実施形態>
図1は、本発明の実施形態に係るMFPを含むネットワークシステムの概略構成と、MFPのハードウェアの概略構成とを示す図である。このネットワークシステムは、ホストコンピュータ150とMFP100とが外部ネットワーク190を介して接続されることによって構成されている。例えば、ホストコンピュータ150は描画コマンド(印刷データ)をMFP100へ送り、描画コマンドを受け取ったMFP100は出力(印刷)可能な画像データに変換して紙面に印刷する処理を行う。
ホストコンピュータ150は、アプリケーション151、プリンタドライバ152及びネットワークI/F153を備える。アプリケーション151は、ホストコンピュータ150上で動作するアプリケーション(ソフトウェア)であり、所定のアプリケーションを実行することで、ページレイアウト文書やワードプロセッサ文書、グラフィック文書等の作成が可能となる。アプリケーション151で作成されたデジタル文書データは、プリンタドライバ152に送信され、デジタル文書に基づいた描画コマンドが生成される。プリンタドライバ152で生成される描画コマンドには、例えば、PDL(Page Description Language)と呼ばれるページ画像データを作成するためのプリンタ記述言語が用いられる。描画コマンドには、通常、文字やグラフィックス、イメージ等のデータの描画命令が含まれており、プリンタドライバ152で生成された描画コマンドは、ネットワークI/F153と外部ネットワーク190とを介してMFP100に送信される。
MFP100は、コントローラ部101、プリンタ部102、不図示のスキャナ部及びモデムを備える。コントローラ部101は、ネットワークI/F110、CPU112、ROM113、メモリコントローラ114、操作部115、表示部116、インタプリタ117、レンダラ118、画像処理部119、第1のRAM120及び第2のRAM121を含む。コントローラ部101に含まれるこれらのモジュールは、システムバス111を介して接続されている。
ネットワークI/F110は、MFP100を外部ネットワーク190に接続するためのインタフェースである。ネットワークI/F110は、イーサネット(登録商標)等の通信プロトコルに基づき、外部ネットワーク190を介してホストコンピュータ150をはじめとして外部ネットワーク190に接続された不図示の外部機器から描画コマンドを受信する。また、ネットワークI/F110を介して、MFP100のデバイス情報(例えば、ジャム情報や紙サイズ情報等)や画像データが、外部ネットワーク190に接続されたホストコンピュータ150や不図示の外部機器へ送信される。
ROM113には、MFP100の動作を制御するための、後述する初期化シーケンスや電源制御シーケンス等を含む各種のプログラムが格納されている。CPU112は、ROM113に格納されている各種のプログラムやデータを第1のRAM120又は第2のRAM121のワークエリアに展開、実行して、MFP100を構成する各種モジュールの動作を制御する。これにより、MFP100の全体的な動作が制御される。
半導体メモリである第1のRAM120及び第2のRAM121について、ここでは一般的な使用方法について説明することとし、本実施形態における具体的な使用方法については後述する。第1のRAM120及び第2のRAM121は、前述の通り、一時的な記憶デバイスとしてCPU112のワークエリアとして用いられる他、CPU112が各種プログラムを実行する際に生成する各種のデータを一時的に記憶する。また、第1のRAM120及び第2のRAM121は、プリンタ部102での処理時には、後述する中間言語データやラスター画像データ等のデータを一時的に記憶する。なお、MFP100が備えるRAMは、第1のRAM120及び第2のRAM121に制限されるものではなく、より多くのメモリデバイス(RAMに限る)を備えていてもよい。
メモリコントローラ114は、第1のRAM120及び第2のRAM121と、コントローラ部101に含まれる他のモジュールとの間のデータ送受信制御を行う。操作部115は、ユーザからの入力を受け付けるためのインタフェースであり、各種のハードボタンやタッチパネルからなる。表示部116は、ユーザへの指示やMFP100の状態を表示するUI(User Interface)画面を表示するものであり、具体的には、液晶ディスプレイ等であり、液晶ディスプレイは操作部115のタッチパネルであってもよい。
インタプリタ117は、ネットワークI/F110を介して受信した描画コマンドを解釈して、中間言語データを生成する。レンダラ118は、インタプリタ117で生成された中間言語データからラスター画像を生成する。画像処理部119は、レンダラ118で生成されたラスター画像に対して、色変換処理やルックアップテーブルによるγ補正処理、擬似中間調処理等の画像処理を行い、プリンタ部102に供給する画像データを生成する。プリンタ部102は、画像処理部119で生成された画像データに基づき、トナー等を用いて紙面上への画像形成を行う。
MFP100において、第1のRAM120及び第2のRAM121に不揮発性メモリであるMRAMと揮発性メモリであるDRAM又はSDRAMとが混在する場合がある。本実施形態では、CPU112は、不揮発性メモリを検出し、検出した不揮発性メモリにファームウェア(以下「F/W」と記す)を格納するメモリマッピングを行う。以下、その詳細について説明する。
図2は、MFP100のコントローラ部101におけるCPU112とメモリコントローラ114との関係を示すブロック図である。CPU112は、ROM113に格納された起動プログラムを実行することにより、第1のRAM120及び第2のRAM121を始めとして、システムバス111に接続される各モジュールの初期化シーケンスを実行する。また、CPU112は、ROM113又は不図示のハードディスク(HDD)からF/Wを第1のRAM120及び第2のRAM121に展開したプログラムによって様々な数値計算(情報処理)を行い、MFP100の動作を制御する。CPU112は更に、コントローラ部101を構成する各種モジュールの情報を第1のRAM120若しくは第2のRAM121又は不図示のHDDに格納して保持する。
第1のRAM120及び第2のRAM121の制御を行うメモリコントローラ114は、メモリバス201を介して、第1のRAM120及び第2のRAM121に対してコマンドを発行し、メモリアクセスを行う。また、メモリコントローラ114は、第1のRAM120及び第2のRAM121と高速通信を行うためのライトアクセスやリードアクセスのタイミングを調整するキャリブレーションを実行する。このキャリブレーションには、周知の技術を用いることができ、以下に簡単に説明する。
RAMに対して高速でデータの読み書きを行うためには、一般的に、遅延調整の設計を適切に行うことが求められる。例えば、RAMから出力されたリードデータを内部のフリップフロップによりキャプチャーする部分や、そのフリップフロップからシステムクロックに同期化させる部分の設計を行う必要がある。
同期化したデータの有効範囲を決定するために、メモリコントローラから出力したクロックがRAMを経由してデータストローブ信号DQSとしてメモリコントローラに戻ってくるまでの遅延量を算出する技術が知られている。遅延値は、ラウンドトリップディレイ(Round Trip Delay)と呼ばれている。例えば、DDR3 SDRAMには、半導体技術協会(JEDEC)の仕様において、リード/ライト(read/write)のアクセスタイミングを調整するためのライトレベリング(Write Leveling)やリードレベリング(Read Leveling)の機能が盛り込まれている。ライトレベリングは、RAMのMR1レジスタのライトレベリングエナブル(Write Leveling Enable)に「1」を設定すると、clk−dqs間のSkew情報を出力する。具体的には、メモリコントローラが発行するdqsの立ち上がりエッジに対してclkをサンプリングし、dq信号にHighレベルを返す。メモリコントローラは、clkとdqsを少しずつ位相をずらして、dqの結果から最もタイミングに余裕が生じるようにタイミング調整を行う。
図3は、ライトレベリング中のメモリバス201上でのメモリコントローラ114と第1のRAM120のclk,dqsのタイミングチャートである。なお、図3の説明では、第1のRAM120は、DDR3 SDRAMであるとする。
メモリコントローラ114からclk信号とdqs信号が同時に出力されても、第1のRAM120では、配線長、配線負荷等の影響によりclkとdqsの立ち上がりタイミングが異なる。図3(a)では、clk,dqsが同時に到達していないため、第1のRAM120はdqに「0」を返す。メモリコントローラ114は、clk,dqsの出力タイミングをずらしていき、dqの変化ポイントを探す。これに対して、図3(b)では、dq=1となっているため、dqsの立ち上がりエッジでclkサンプリングが行われている。
一方、リードレベリングにおいてMPR(Multi Purpose Register)を有効にすると、第1のRAM120から予め決められたデータパターンが出力される。メモリコントローラ114は、このデータパターンを受信可能なタイミングを知ることができ、リードコマンドを発行してからの、リードデータを受信するレイテンシ(Latency)を調整する。リードアクセス時には、第1のRAM120がdqsを出力する。
先ず、メモリコントローラ114は、リードコマンドを発行してからデータを受信するまでのサイクル数を検出する。メモリコントローラ114は、リードコマンドを発行してからの第1のRAM120のリードレイテンシ(Read Latency)時間に、コマンド及びデータ転送遅延時間を加味したサイクル数を1サイクルずつ加算し、MPRの値を読むことができるタイミングを検出する。メモリコントローラ114は、サイクル数を検出すると、clkとdqsスキューを調整するために、内部のdqsを検出してからリードデータを読み込むタイミングを少しずつずらして、最も良い変化ポイントを検出する。
第1のRAM120及び第2のRAM121に対しては、所定のプロトコルに則ってデータの書き込みと読み出しを行うことができる。本実施形態では、第1のRAM120及び第2のRAM121はそれぞれ、複数のメモリデバイスとSPD(Serial Presence Detect)から成るメモリモジュールであるものとする。また、本実施形態では、第1のRAM120は揮発性メモリであり、揮発性メモリはDDR3 SDRAMであるとする。但し、揮発性メモリは、これに限定されず、SDRAM、DDR SDRAM、DDR2 SDRAM、DDR4 SDRAM、SRAM等であってもよい。また、本実施形態では、第2のRAM121は不揮発性メモリであり、不揮発性メモリはDDR3 MRAMであるとするが、これに限定されず、その他の不揮発性メモリであってもよい。
図2の説明に戻る。メモリバス201は、メモリコントローラ114と第1のRAM120及び第2のRAM121とを接続するための高速通信バスである。CPU112は、MFP100に電源が投入されると、システムバス111を介してROM113に格納されている起動プログラムを読み出し、MFP100を初期化するための初期化シーケンスを実行する。以下、起動プログラムによる第1のRAM120及び第2のRAM121の初期化シーケンスについて、図4のフローチャートを参照して説明する。
図4は、MFP100に実装された第1のRAM120及び第2のRAM121の初期化シーケンスのフローチャートである。図4のフローチャートの各処理は、CPU112がROM113に格納されている起動プログラムを読み出し、第1のRAM120又は第2のRAM121に展開し、実行することによって実現される。なお、本実施形態では、第1のRAM120及び第2のRAM121以外のモジュールの初期化シーケンス及び制御シーケンスについての説明は省略する。また、ここでは、第1のRAM120及び第2のRAM121に限定されず、メモリデバイス(RAMに限る)としての説明を行い、適宜、第1のRAM120及び第2のRAM121に対する処理結果について説明することとする。
先ず、ステップS401において、CPU112は、シリアルバスを介して制御信号0,1(図2参照)により、メモリデバイスのメモリ情報を取得する。例えば、メモリモジュールに実装されているSPDからスペック情報を取得し、これにより、各メモリデバイスの電源制御が可能になる。なお、スペック情報とは、例えば、揮発性メモリか又は不揮発性メモリかに関する情報、最大クロック周波数、容量、信号タイミング等である。
図5は、メモリモジュールのSPDから読み取ることができるメモリ情報の一例を示す図である。なお、図5に示したアドレスや値は一例であり、タイミングパラメータについても全ては記載されていない。CPU112は、SPDから読みとったメモリ情報の中から必要な情報を、例えば、不図示のHDDに記憶する。
図5(a)は、第1のRAM120について取得したメモリ情報を示しており、読み取ったアドレスと値から、第1のRAM120は、DDR3 SDRAM、1066MHz、1Gbit、8bank、揮発性であることがわかる。図5(b)は、第2のRAM121について取得したメモリ情報を示しており、第2のRAM121は、DDR3 MRAM、1066MHz、1Gbit、8bank、不揮発性であることがわかる。
次に、CPU112は、メモリコントローラ114に対してメモリ初期化のキャリブレーションの実行命令を発行する。これにより、ステップS402において、メモリコントローラ114は、メモリデバイスを初期化するキャリブレーションを実行する。具体的には、CPU112は、ステップS401での取得情報に基づき、メモリコントローラ114により、メモリ初期化時に実装されているメモリデバイスに対して、順次、アドレスをマッピングする。そして、CPU112は、メモリコントローラ114により、各メモリデバイスに対して、ライトレベリングとリードレベリングの両方のタイミング調整を行う。CPU112は、各メモリデバイスの各バンクのライトアクセス及びリードアクセス時のclk−dqs間のSkew情報とリードレイテンシを記憶する。
図6は、第1のRAM120及び第2のRAM121の初期化キャリブレーションの結果の一例を示す図である。メモリコントローラ114による第1のRAM120及び第2のRAM121の初期化キャリブレーションが完了すると、CPU112は第1のRAM120及び第2のRAM121へアクセス可能となる。
ステップS402の終了後、CPU112は、チップセレクト(以下「CS」と記す)毎にメモリマッピング処理を開始し、ステップS403において、メモリマッピング処理がなされていない残りのCSが有るか否かを判断する。CPU112は、残りCSが有る場合(S403でYES)、処理をステップS404へ進め、残りCSが無い場合(S403でNO)、処理をステップS410へ進める。
ステップS404において、CPU112は、ステップS403において選択したCSのメモリデバイスがDDR3 MRAM(不揮発性メモリ)であるか否かを、ステップS401で取得したメモリ情報に基づいて判断する。CPU112は、DDR3 MRAMである(不揮発性メモリである(S404でYES))場合、処理をステップS405へ進め、DDR3 MRAMではない(揮発性メモリである(S404でNO))場合、処理をステップS409へ進める。
ステップS405において、CPU112は、選択したCSにF/W格納フラグが有るか否かを判断する。例えば、この判断は、メモリデバイスの先頭番地0x0に予め定めたフラグ値が格納されているか否かにより行われる。CPU112は、F/W格納フラグが有る場合(S405でYES)、処理をステップS406へ進め、F/W格納フラグが無い場合(S405でNO)、処理をステップS407へ進める。
ステップS406において、CPU112は、F/W格納リスト及びF/W格納可能リストにCS情報を追加、格納する。その後、処理はステップS403へ戻される。
ステップS407において、CPU112は、F/W格納容量が有るか否かを判断する。具体的には、CPU112は、ステップS401で取得したメモリ容量情報とROM113に予め格納されているF/W容量情報とを比較する。CPU112は、F/W格納容量が有る場合(S407でYES)、処理をステップS408へ進め、F/W格納容量が無い場合(S407でYES)、処理をステップS409へ進める。
ステップS408において、CPU112は、F/W格納可能リストにCS情報を追加、格納する。ステップS409において、CPU112は、ワークメモリリストにCS情報を追加、格納する。ステップS408,S409の終了後、処理はステップS403へ戻される。
図7は、MFP100のワークメモリリストの一例を示す図である。ステップS403〜S409の処理が全てのCSに対して終了すると、図7に示すワークメモリリストが得られる。本実施形態では、CS0及びCS1はそれぞれ、第1のRAM120及び第2のRAM121に該当するものとし、第2のRAM121にF/W格納フラグが書き込まれているものとする。第1のRAM120は揮発性メモリであるため、F/W格納リスト及びF/W格納可能リストのCS0に「No」が、ワークメモリリストのCS0に「Yes」がそれぞれ書き込まれる。一方、第2のRAM121は不揮発性メモリであり、F/W格納フラグが有るため、F/W格納リスト及びF/W格納可能リストのCS1に「Yes」が、ワークメモリリストのCS1に「No」がそれぞれ書き込まれる。
ステップS403の判断がNoとなった後のステップS410において、CPU112は、図7のワークメモリリストからF/W格納リストに追加されたメモリが有る否かを判断する。CPU112は、追加されたメモリが有る場合(S410でYES)、処理をステップS411へ進め、追加されたメモリが無い場合(S410でNO)、処理をステップS415へ進める。
ステップS411において、CPU112は、図7のワークメモリリストからF/W格納可能リストに追加されたメモリが有る否かを判断する。CPU112は、追加されたメモリが有る場合(S411でYES)、処理をステップS412へ進め、追加されたメモリが無い場合(S411でNO)、処理をステップS414へ進める。
ステップS412において、CPU112は、F/W格納可能リストで「Yes」になっているCSを1つ選択し、F/W格納リストにそのCSのメモリデバイスを追加する。続くステップS413において、CPU112は、ステップS412で選択したCSのメモリデバイスの先頭番地0x0に予め定めたフラグ値を格納する。これにより、ステップS412においてF/W格納リストに追加されたメモリデバイスは、MFP100の次回の起動時には、ステップS405においてF/W格納フラグ有りとして検出されることとなる。
ステップS414において、CPU112は、F/W格納フラグの有るメモリデバイスにF/Wを格納する。なお、F/Wは、ROM113又は不図示のHDD等の記憶媒体や、外部ネットワーク190のストレージに外部ネットワーク190経由で格納してもよい。ステップS414の後、処理はステップS415へ進められる。
ステップS415において、CPU112は、図7のワークメモリリストにあるように、アドレスマッピングを実施する。具体的には、ステップS415では、F/Wが格納されているメモリデバイス(CS)に対して、起動プログラムがF/Wを実行する際に指定されているアドレス領域を割り当てる。本実施形態では、F/W実行アドレスが0x0000_0000であるとし、図7に示すように、CS1のDDR3 MRAM(第2のRAM121)に0x0000_0000が割り当てられる。F/W実行アドレスが割り当てられたメモリデバイス以外のメモリデバイスに対しては、ワークメモリとして使用されるアドレス領域が割り当てられる。本実施形態では、図7に示すように、CS0のDDR3 SDRAM(第1のRAM120)に0x8000_0000が割り当てられる。
続くステップS416において、CPU112は、ステップS415で指定したアドレスからF/Wを実行し、その後、本処理は終了となる。
なお、本実施形態では、F/Wを不揮発性メモリ(DDR3 MRAM(第2のRAM121))に格納されるようにメモリマッピングを実施した。これに対して、例えば、MFP100において保持していなければならないファクシミリ画像データやページカウントデータ、トナー残量等のデータについても、同様の手法により不揮発性メモリに格納するようにしてもよい。また、揮発性メモリ(DDR3 SDRAM(第1のRAM120))には、一時的に使用される中間画像データ(例えば、MFP100が備える不図示のスキャナ部により読み取られたスキャンデータ)が格納されるようにしてもよい。
ところで、不揮発性メモリである第2のRAM121の容量がF/Wを格納するのに十分でない場合が想定される。この場合、F/Wやその他の保持しておかなければならないプログラムやデータは、その他の不揮発性メモリ(例えば、フラッシュメモリ)やHDDがある場合には、これらにマッピングするようにする。また、第1のRAM120及び第2のRAM121の双方が揮発性メモリである場合、つまり、不揮発性メモリを備えない場合も想定される。この場合も、前述の不揮発性メモリの容量が足りない場合と同様の対処法が採られる。
以上の説明の通り、本実施形態によれば、MFP100に不揮発性メモリと揮発性メモリとが混在して実装されていても、どのメモリデバイスが不揮発性メモリであるかを知ることができる。これにより、F/Wを不揮発性メモリにマッピングすることができるため、例えば、MFP100の省電力モード(スリープモード)への移行と省電力モードからの復帰に要する時間を短縮することができる。
<第2実施形態>
上記第1実施形態では、初期化シーケンスのステップS401において、CPU112は、メモリモジュールに実装されているSPDからメモリデバイスのメモリ情報を入手し、そのメモリデバイスが不揮発性メモリであるか揮発性メモリであるかを判断している。これに対して、本実施形態では、SPDからのメモリ情報が無い場合に、リフレッシュコマンド間隔を変更することによりメモリデバイスが不揮発性メモリであるか揮発性メモリであるかを判断する。より具体的には、CPU112は、メモリデバイスに対して、一定時間以上、リフレッシュコマンドを発行しないことで、メモリデバイスが揮発性メモリであるか不揮発性メモリであるかを検出する。
図8は、リフレッシュコマンド間隔の変更を利用した不揮発性/揮発性メモリ検出シーケンスのフローチャートである。ここでも、第1のRAM120及び第2のRAM121に限定されず、メモリデバイス(RAMに限る)としての説明を行い、適宜、第1のRAM120及び第2のRAM121についての処理結果について説明することとする。
ステップS801に先立って、図4のステップS402の処理が実行されるが、ステップS402の処理内容についてのここでの説明は省略する。ステップS402の後のステップS801において、CPU112は、CS毎にメモリタイプの判断(ステップS806)を実施していない残りのCSが有るか否かを判断する。CPU112は、残りCSが有る場合(S801でYES)、処理をステップS802へ進め、残りCSがない場合(S801でNO)、処理を終了させる。
ステップS802において、CPU112は、ステップS801で残りCSとして選択したCSのメモリデバイスに対してテストデータを書き込む。例えば、複数のアドレスに特定パターンを書き込む。続くステップS803において、CPU112は、メモリコントローラ114に対してリフレッシュコマンドの発行間隔を変更する処理を実行する。例えば、揮発性メモリであるDDR3 SDRAMにおいては、放電で失った電荷を定期的に再充電する必要がある。そのために、JEDECのAverage Periodic Refresh Interval tREFI(0℃≦Tcase≦85℃)によれば、平均7.8μs以内にリフレッシュコマンドを発行しなければならない。この規定外ではデータを保持することは保証されないため、メモリコントローラ114は、平均で7.8μsに1度、リフレッシュコマンドを発行する。しかしながら、不揮発性メモリでは、リフレッシュコマンドを発行しなくてもデータを保持することができる。したがって、CPU112は、リフレッシュコマンドの発行を停止し又は発行間隔を10msのように十分大きい値に設定する。
次に、ステップS804において、CPU112は、ステップS803で設定した時間以上の一定時間経過したか否かを判断する。CPU112は、一定時間が経過するまで待機し(S804でNO)、一定時間が経過すると(S804でYES)、処理をステップS805へ進める。ステップS805において、CPU112は、選択したCSのメモリデバイスから、ステップS802で書き込みを行ったアドレスの値を読み出して、書き込みデータと比較する。
次いで、ステップS806において、CPU112は、選択したCSのメモリタイプ判断、つまり、メモリデバイスが不揮発性メモリであるか否かの判断を行う。CPU112は、ステップS805での比較の結果、選択したCSのメモリデバイスは、全ての書き込みデータと読み出しデータとが一致している場合には不揮発性メモリであると判断し、一致しない場合は揮発性メモリであると判断する。その後、処理はステップS801へ戻される。
このような処理により、DDR3 SDRAMである第1のRAM120については、揮発性メモリであるとの判断がなされ、DDR3 MRAMである第2のRAM121については、不揮発性メモリであるとの判断がなされる。
以上のリフレッシュコマンド間隔の変更を利用した不揮発性/揮発性メモリ検出シーケンスによれば、メモリデバイスが不揮発性か否かを判断することが可能となる。よって、MFP100に実装されたメモリデバイスに不揮発性メモリと揮発性メモリとが混在して実装されていても、F/Wを不揮発性メモリに確実にマッピングすることができる。これにより、第1実施形態と同じ効果が得られる。
<第3実施形態>
本実施形態では、CPU112が、MFP100に実装されたメモリデバイス(第1のRAM120及び第2のRAM121)を検出した後に、省電力モード(スリープモード)に移行する際に、各メモリデバイスに対して行う電源制御処理について説明する。
図9は、MFP100のコントローラ部101において第1のRAM120及び第2のRAM121の電源制御を行う構成を示すブロック図である。図9に示す構成は、図2に示した構成に対して第1の電源スイッチ901及び第2の電源スイッチ902を付加した構成となっており、よって、図2と重複する部分の説明は省略する。
第1の電源スイッチ901及び第2の電源スイッチ902はそれぞれ、設定によって第1のRAM120及び第2のRAM121に対する電源のON/OFFを切り替えることができる。CPU112は、第1実施形態での処理に加えて、制御信号2及び制御信号3により第1の電源スイッチ901及び第2の電源スイッチ902の設定を行うことで、第1のRAM120及び第2のRAM121の電源制御を行う。
図9に示した構成において、CPU112が、不揮発性メモリを検出して電源制御を行う方法について、図10及び図11を参照して説明する。図10は、電源制御メモリリストの初期化シーケンスのフローチャートである。また、図11は、図10のフローチャートの処理により作成される電源制御メモリリストの一例を示す図である。図10のフローチャートの各処理は、CPU112がROM113に格納されている起動プログラムを読み出し、第1のRAM120又は第2のRAM121に展開し、実行することによって実現される。
なお、ここでも、第1のRAM120及び第2のRAM121に限定されず、メモリデバイス(RAMに限る)としての説明を行い、適宜、第1のRAM120及び第2のRAM121についての処理結果について説明することとする。また、ここでは、メモリデバイス以外の制御シーケンスについての説明は省略する。
ステップS1001,S1002の処理は、先に図4を参照して説明したステップS401,402の処理と同じである。即ち、CPU112は、MFP100に電源が投入されると、第1実施形態で説明したように、システムバス111を介してROM113にある起動プログラムを実行する。これにより、CPU112は、メモリ情報を取得し、初期化シーケンスを実行する。このとき、第1の電源スイッチ901及び第2の電源スイッチ902は、常に電源ONの状態になっているものとする。
ステップS1003において、CPU112は、電源制御設定が行われていない残りのCSがあるか否かを判断する。CPU112は、残りCSが有る場合(S1003でYES)、処理をステップS1004へ進め、残りCSがない場合(S1003でNO)、処理を終了させる。ステップS1004において、CPU112は、ステップS1003において選択したCSにメモリモジュールが実装されているか否かを判断する。CPU112は、メモリモジュールが実装されている場合(S1004でYES)、処理をステップS1005へ進め、メモリモジュールが実装されていない場合(S1004でNO)、処理をステップS1009へ進める。
ステップS1005において、CPU112は、選択したCSのメモリデバイスがDDR3 MRAM(不揮発性メモリ)であるか否かを、ステップS1001で取得したメモリ情報に基づいて判断する。CPU112は、DDR3 MRAMである(不揮発性メモリである(S1005でYES))場合、処理をステップS1006へ進め、DDR3 MRAMではない(揮発性メモリである(S1005でNO))場合、処理をステップS1007へ進める。ステップS1007において、CPU112は、選択したCSのメモリデバイスにデータを格納するか否か(保持させるデータが有るか否か)を判断する。CPU112は、保持させるデータが有る場合(S1007でYES)、処理をステップS1008へ処理を進め、保持させるデータが無い場合(S1007でNO)、処理をステップS1006へ進める。
ステップS1006において、CPU112は、電源制御メモリリストの電源OFFメモリリスト欄に選択したCSのCS情報を追加(格納)する。ステップS1008において、CPU112は、電源制御メモリリストのセルフリフレッシュメモリリストに選択したCSのCS情報を追加する。ステップS1009において、CPU112は、選択したCSにメモリデバイスは実装されていないため、電源制御メモリリストの電源制御なしメモリリストにCS情報を追加する。CPU112は、ステップS1006,S1008,S1009の後、処理をステップS1003へ戻す。
本実施形態では、CS0及びCS1はそれぞれ第1のRAM120及び第2のRAM121に該当し、それ以外のCSにはメモリデバイスはなく、第1のRAM120がDDR3 SDRAMであって、第2のRAM121はDDR3 MRAMである。よって、図10の電源制御メモリリストの作成シーケンスによれば、図11に示す電源制御メモリリストが得られる。なお、電源制御メモリリストは、例えば、不図示のHDDに格納される。ここでは、ステップS1007の保持させるデータが有るか否かを起動時に判断したが、F/W起動後に同判断を行って、電源制御メモリリストを変更するようにしてもよい。
上述の電源制御シーケンスは、MFP100に電源が投入されたときに、CPU112がメモリデバイスに対して実行するものであり、MFP100が省電力モードに入るときの電源制御シーケンスについて図12を参照して説明する。図12は、MFP100が省電力モードに入るときの電源制御シーケンスのフローチャートである。
先ず、ステップS1201において、CPU112は、図10のフローチャートに従う初期化シーケンスで作成した電源制御メモリリストを参照して、メモリ情報を取得する。続くステップS1202において、CPU112は、CS毎に電源制御設定(ステップS1204,S1206,S1207のいずれか)が行われていない残りのCSが有るか否かを判断する。CPU112は、残りCSが有る場合(S1202でYES)、処理をステップS1203へ進め、残りCSが無い場合(S1202でNO)、本処理を終了させる。
ステップS1203において、CPU112は、選択したCSのメモリデバイスに対する電源OFFが可能か否かを、ステップS1201で取得したメモリ情報に基づき判断する。CPU112は、不揮発性メモリであるために電源OFFが可能な場合(S1203でYES)、処理をステップS1204へ進め、揮発性メモリであるために電源OFFが不可能な場合(S1203でNO)、処理をステップS1205へ進める。
ステップS1205において、CPU112は、選択したCSのメモリデバイスにセルフリフレッシュ設定が必要か否かを判断する。CPU112は、セルフリフレッシュ設定が必要な場合(S1205でYES)、処理をステップS1206へ進め、セルフリフレッシュ設定が不要な場合(S1205でNO)、処理をステップS1207へ進める。
ステップS1204において、CPU112は、選択したCSのメモリデバイスの電源をOFFにするために、電源スイッチ(第1の電源スイッチ901又は第2の電源スイッチ902)の設定を行う。これにより、MFP100が省電力モードに入るときには、選択したCSのメモリデバイスの電源はOFFにされる。
ステップS1206において、CPU112は、選択したCSのメモリデバイスをセルフリフレッシュモードに移行させるための設定をメモリコントローラ114に対して行う。これによりMFP100が省電力モードに入るときには、選択したCSのメモリデバイスは、セルフリフレッシュモードに移行される。なお、セルフリフレッシュを行わずに、メモリデバイスに保持されていたデータを不図示のHDD等に退避させて、電源をOFFにしてもよい。
ステップS1207において、CPU112は、選択したCSにはメモリデバイスが実装されておらず、電力消費が無いため、電源制御は行わない。ステップS1204,S1206,S1207の後、CPU112は、処理をステップS1202に戻す。
なお、MFP100が省電力モードから通常の動作モードに復帰するときには、CPU112は、電源OFFのメモリデバイスの電源スイッチに対して、電源をONにする設定を行う。よって、図11の電源制御メモリリストの場合、不揮発性メモリ(DDR3 MRAM)である第2のRAM121の電源スイッチ902の電源がONされる。また、MFP100が省電力モードから通常の動作モードに復帰するときには、CPU112は、メモリコントローラ114を介して、セルフリフレッシュのメモリデバイス(図11の電源制御メモリリストではなし)を通常動作に復帰させる。
本実施形態では、上述の通りに電源制御を行うことにより、MFP100が省電力モードにあるときの消費電力を小さく抑えることができる。
<第4実施形態>
第3実施形態では、第1実施形態と同様に、初期化シーケンスのステップS1001において、CPU112は、メモリモジュールに実装されているSPDからメモリ情報を入手し、メモリモジュールが不揮発性メモリであるか揮発性メモリであるかを判断している。これに対して、本実施形態では、実装されているメモリデバイスに対して電源を遮断し、一定時間経過後に再度、電源を通電したときにデータが保持されているかを確認することで、メモリデバイスが不揮発性メモリであるか揮発性メモリであるかを判断する。
図13は、電源の遮断を利用した不揮発性/揮発性メモリ検出シーケンスのフローチャートである。図13の不揮発性/揮発性メモリ検出シーケンスは、初期化シーケンスのステップS1002(図10参照)の実行後に、起動プログラムによって実行される。なお、ここでも、第1のRAM120及び第2のRAM121に限定されず、メモリデバイス(但し、RAMに限る)としての説明を行い、適宜、第1のRAM120及び第2のRAM121についての処理結果について説明することとする。
先ず、ステップS1301において、CPU112は、メモリタイプの判断(ステップS1307)を行っていない残りのCSが有るか否かを判断する。CPU112は、残りCSが有る場合(S1301でYES)、処理をステップS1302へ進め、残りCSが無い場合(S1301でNO)、本処理を終了させる。ステップS1302において、CPU112は、ステップS1301で選択した残りCSのメモリデバイスに対してテストデータを書き込む。例えば、残りCSのメモリデバイスの複数のアドレスに特定パターンを書き込む。
続くステップS1303において、CPU112は、選択したCSのメモリデバイスの電源スイッチに電源OFFの設定を実行し、その結果、選択したCSのメモリデバイスに対する通電は停止される。その後、ステップS1304において、CPU112は、ステップS1303で設定した時間以上の一定時間が経過したかを判断し、一定時間が経過するまで待機する(S1304でNO)。CPU112は、一定時間が経過すると(S1304でYES)、処理をステップS1305へ進める。ステップS1305において、CPU112は、選択したCSのメモリデバイスの電源スイッチに電源ONの設定を実行し、これにより、選択したCSのメモリデバイスに対する通電が再開される。
次に、ステップS1306において、CPU112は、選択したCSのメモリデバイスからステップS1302で書き込みを行ったアドレスの値を読み出し、書き込みデータと比較する。そして、ステップS1307において、CPU112は、選択したCSのメモリデバイスのメモリタイプを判断する。具体的には、CPU112は、ステップS1306での比較の結果に基づき、全ての書き込みデータと読み込みデータとが一致している場合には、選択したCSのメモリデバイスは不揮発性メモリであると判断する。一方、CPU112は、全ての書き込みデータと読み込みデータとが一致しない場合には、選択したCSのメモリデバイスは揮発性メモリデバイスであると判断する。ステップS1307の後、処理はステップS1301へ戻される。
このような処理により、DDR3 SDRAMである第1のRAM120については、揮発性メモリであるとの判断がなされ、DDR3 MRAMである第2のRAM121については、不揮発性メモリであるとの判断がなされる。
以上の電源の遮断を利用した不揮発性/揮発性メモリ検出シーケンスによれば、メモリデバイスが不揮発性か否かを判断することが可能となる。よって、MFP100に実装されたメモリデバイスに不揮発性メモリと揮発性メモリとが混在して実装されていても、省電力モードにあるときの消費電力を小さく抑えることができる。
<第5実施形態>
上記第1及び第2実施形態では、MFP100の起動時におけるメモリデバイスに対するマッピングについて、また、上記第3及び第4実施形態では、MFP100の起動時及び省電力モードへの移行時の電源制御処理について説明した。これに対して、本実施形態では、MFP100が備える各種機能(コピー機能、プリント機能、送信機能)の実行時における電源制御について、図14を参照して説明する。
図14は、MFP100の動作時における電源制御シーケンスのフローチャートである。図14のフローチャートの各処理は、CPU112がROM113に格納されている起動プログラムを読み出し、第1のRAM120又は第2のRAM121に展開し、実行することによって実現される。
MFP100が実行可能なコピー動作やプリント動作、送信動作等の各動作では、中間画像データ等を格納するためのワークメモリとして必要なメモリ容量が異なる。したがって、本実施形態では、各動作に必要なメモリ容量に応じて、メモリデバイスに対する電源の切り替え動作を実施することとし、図14のフローチャートは、そのキャリブレーション方法を示している。
MFP100に電源が投入されると、先ず、ステップS1401において、CPU112は、第1実施形態及び第3実施形態で説明した初期化シーケンスを実施する。これにより、F/Wが所定のメモリデバイスに格納され、また、電源制御メモリリストが作成(更新)されて、MFP100はスタンバイ状態となる。本実施形態では、第1のRAM120が揮発性メモリであるため、第1のRAM120に一時的に使用される中間画像データ等が保持されるものとする。また、第2のRAM121は不揮発性メモリであるため、第2のRAM121にF/Wが格納されるものとする。
続くステップS1402において、CPU112は、ジョブが投入されたか否かを判定し、ジョブが投入されるまで待機し(S1402でNO)、ジョブが投入されると(S1402でYES)、処理をステップS1403へ進める。ステップS1403において、CPU112は、ジョブがコピー動作か否かを判断する。CPU112は、コピー動作である場合(S1403でYES)、処理をステップS1406へ進め、コピー動作ではない場合(S1403でNO)、処理をステップS1404へ進める。なお、コピー動作とは、MFP100のフィーダにセットされた原稿の画像をスキャナ部で取り込み、色変換や濃度変換、エッジ強調処理、スクリーン処理等の画像処理を施して、プリンタ部102で紙(シート)面上に画像形成し、出力する動作である。
ステップS1404において、CPU112は、ジョブがプリント動作か否かを判断する。CPU112は、プリント動作である場合(S1404でYES)、処理をステップS1406へ進め、プリント動作ではない場合(S1404でNO)、処理をステップS1405へ進める。なお、プリント動作とは、ホストコンピュータ150や不図示のUSB等の外部装置から受信したPDLやJPEG等の画像データに対して、レンダリング処理や色変換、濃度変換、エッジ強調処理、スクリーン処理等の画像処理を実行し、プリンタ部102で紙(シート)面上に画像形成し、出力する動作である。
ステップS1405において、CPU112は、ジョブが送信動作か否かを判断する。CPU112は、送信動作である場合(S1405でYES)、処理をステップS1406へ進め、送信動作ではない場合(S1405でNO)、処理をステップS1411へ進める。なお、送信動作では、先ず、MFP100のフィーダにセットされた原稿の画像がスキャナ部で読み取られ、色変換や濃度変換、エッジ強調処理、圧縮処理等の画像処理が施されて、JPEG形式等のファイルが作成される。その後、作成されたファイルは、指定された電子メールアドレスにネットワークを介して送信され、或いは、モデムに接続された電話回線を通じて外部のファクシミリ装置へ送信される。なお、ステップS1403〜1405の各処理(判断)は、順序を問わず、どの判断が先に行われてもよい。
ステップS1406において、CPU112は、ステップS1403〜S1405のいずれかの処理に対して必要なワークメモリ領域(メモリ使用量)を計算する。CPU112は、コピー動作及び送信動作の場合には、中間画像データであるスキャンデータを一時保持するために、用紙サイズ等に基づきワークメモリ領域を計算する。プリント動作の場合、CPU112は、中間言語データやラスター画像データ等を一時保持するためのワークメモリ領域とプリント時に必要なワークメモリ領域とを、用紙サイズ等に基づいて計算する。その結果として、CPU112は、ステップS1401の初期化シーケンスで実行したメモリマッピングの結果に従って使用すべきメモリデバイスを選択する。
続くステップS1407において、CPU112は、第3実施形態に従って全てのCSのメモリデバイスに対して電源制御の設定を更新する処理を行い、処理が行われていない残りのCSが有るか否かを判断する。CPU112は、残りCSが有る場合(S1407でYES)、処理をステップS1408へ進め、残りCSが無い場合(S1407でNO)、処理をステップS1411へ進める。
ステップS1408において、CPU112は、ステップS1407で選択したCSのメモリデバイスが、ステップS1406において使用するメモリデバイスとして選択されているか否かを判断する。CPU112は、使用するメモリデバイスとして選択されていない場合(S1408でNO)、処理をステップS1409へ進め、使用するメモリデバイスとして選択されている場合(S1408でYES)、処理をステップS1410へ進める。
ステップS1409において、CPU112は、選択したCSのメモリデバイスは使用されないと判断し、第3実施形態のステップS1203〜S1207で実行した省電力モードへの移行処理を実施する。なお、このとき、各CSのメモリデバイスに対して電源がOFFされたとしても、他のメモリデバイスが動作することができるように、例えば、信号タイミングの調整等が行われる。ステップS1410において、CPU112は、選択したCSのメモリデバイスが省電力モードに入っていて電源がOFFとなっている場合には、省電力モードから通常の動作モードへ復帰させる。なお、ステップS1410では、選択したCSのメモリデバイスが通常の動作モードにあるときには、特に処理がおこなわれることはない。ステップS1409,S1410の後、CPU112は、処理をステップS1407へ戻す。
ステップS1411において、CPU112は、実行したジョブが終了したか否かを判断する。CPU112は、ジョブが終了するまで待機し(S1411でNO)、ジョブが終了すると(S1411でYES)、処理をステップS1412へ進める。ステップS1412において、CPU112は、次のジョブが有るか否かを判断する。CPU112は、次のジョブが有る場合(S1412でYES)、処理をステップS1403へ戻し、次のジョブが無い場合(S1412でNO)、処理をステップS1413へ進める。
ステップS1413において、CPU112は、全てのメモリデバイスに対して第3実施形態のステップS1203〜S1207で実行した省電力モードへの移行処理を実施する。その後、処理はステップS1402へ戻される。
以上の電源制御方法を用いて、ジョブが投入されたときでも不要なメモリデバイスを省電力モードに移行するようにすることで、MFP100の消費電力を低く抑えることができる。
<その他の実施形態>
以上、本発明をその好適な実施形態に基づいて詳述してきたが、本発明はこれら特定の実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の様々な形態も本発明に含まれる。更に、上述した各実施形態は本発明の一実施形態を示すものにすぎず、各実施形態を適宜組み合わせることも可能である。
なお、第1実施形態では、MFP100を構成するモジュールをハードウェアとしてサポートした(図1参照)。これに対して、画像処理部119等の所定のモジュールについては、ROM113に格納されたプログラムをCPU112が実行することで、その機能が実現されるようにしてもよい。その場合、例えば、インタプリタ117、レンダラ118及び画像処理部119の機能を実現する各プログラムは、揮発性メモリへの各種データの読み込み/書き込み機能をサポートするものとする。
本発明は以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)をネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(又はCPUやMPU等)がプログラムコードを読み出して実行する処理である。この場合、そのプログラム、及び該プログラムを記憶した記憶媒体は本発明を構成することになる。
100 MFP
112 CPU
113 ROM
114 メモリコントローラ
120 第1のRAM
121 第2のRAM
901 第1の電源スイッチ
902 第2の電源スイッチ

Claims (8)

  1. データの書き込みと読み出しが可能な半導体メモリが不揮発性メモリであるか揮発性メモリであるかを検出する検出手段と、
    前記検出手段が検出した不揮発性メモリに対して、揮発性メモリとは異なる設定を行う設定手段とを備えることを特徴とするメモリ制御装置。
  2. 前記設定手段は、前記検出手段が検出した不揮発性メモリに対して、所定のデータを格納するアドレスをマッピングするマッピング手段を有することを特徴とする請求項1記載のメモリ制御装置。
  3. 前記設定手段は、前記不揮発性メモリを通常の動作モードから省電力モードに移行する際に前記不揮発性メモリの電源をOFFとし、前記省電力モードから前記通常の動作モードへ復帰させる際に前記不揮発性メモリの電源をONとする電源制御手段を有することを特徴とする請求項1又は2に記載のメモリ制御装置。
  4. 前記検出手段は、前記半導体メモリの所定のアドレスに対して所定のデータの書き込みを行った後、前記アドレスに対して、一定時間以上、リフレッシュコマンドを発行しなかったときに、前記アドレスのデータが変化していない場合に前記半導体メモリは不揮発性メモリであると判断することを特徴とする請求項1乃至3のいずれか1項に記載のメモリ制御装置。
  5. 前記検出手段は、前記半導体メモリの所定のアドレスに対して所定のデータの書き込みを行った後、前記半導体メモリの電源を遮断し、再度、前記半導体メモリに通電を行ったときに前記アドレスのデータが変化していない場合に前記半導体メモリは不揮発性メモリであると判断することを特徴とする請求項1乃至3のいずれか1項に記載のメモリ制御装置。
  6. コンピュータによって実行されるメモリ制御方法であって、
    データの書き込みと読み出しが可能な半導体メモリが不揮発性メモリであるか揮発性メモリであるかを検出する検出ステップと、
    前記検出ステップで検出した不揮発性メモリに対して、揮発性メモリとは異なる設定を行う設定ステップとを有することを特徴とするメモリ制御方法。
  7. 半導体メモリと、前記半導体メモリの動作を制御するメモリ制御装置とを備える情報機器であって、
    前記メモリ制御装置は、
    前記半導体メモリが不揮発性メモリであるか揮発性メモリであるかを検出する検出手段と、
    前記検出手段が検出した不揮発性メモリに対して、揮発性メモリとは異なる設定を行う設定手段とを備えることを特徴とする情報機器。
  8. 半導体メモリを備える情報機器が有するコンピュータに前記半導体メモリに対する制御方法を実行させるためのプログラムであって、
    前記制御方法は、
    前記半導体メモリが不揮発性メモリであるか揮発性メモリであるかを検出する検出ステップと、
    前記検出ステップで検出した不揮発性メモリに対して、揮発性メモリとは異なる設定を行う設定ステップとを有することを特徴とするプログラム。
JP2013198330A 2013-09-25 2013-09-25 メモリ制御装置、メモリ制御方法、情報機器及びプログラム Active JP6165008B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2013198330A JP6165008B2 (ja) 2013-09-25 2013-09-25 メモリ制御装置、メモリ制御方法、情報機器及びプログラム
KR1020140125697A KR101762242B1 (ko) 2013-09-25 2014-09-22 정보처리장치, 정보처리장치의 제어방법 및 제어 프로그램을 기억하는 비일시 컴퓨터 판독가능한 기억매체
CN201410491575.8A CN104464813A (zh) 2013-09-25 2014-09-23 存储器控制设备、存储器控制方法及信息设备
US14/494,943 US10268257B2 (en) 2013-09-25 2014-09-24 Memory control device that control semiconductor memory, memory control method, information device equipped with memory control device, and storage medium storing memory control program
EP14186091.6A EP2857979B1 (en) 2013-09-25 2014-09-24 Memory control device that controls semiconductory memory, memory control method, information device equipped with memory control device, and storage medium storing memory control program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013198330A JP6165008B2 (ja) 2013-09-25 2013-09-25 メモリ制御装置、メモリ制御方法、情報機器及びプログラム

Publications (3)

Publication Number Publication Date
JP2015064758A true JP2015064758A (ja) 2015-04-09
JP2015064758A5 JP2015064758A5 (ja) 2016-11-10
JP6165008B2 JP6165008B2 (ja) 2017-07-19

Family

ID=51655549

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013198330A Active JP6165008B2 (ja) 2013-09-25 2013-09-25 メモリ制御装置、メモリ制御方法、情報機器及びプログラム

Country Status (5)

Country Link
US (1) US10268257B2 (ja)
EP (1) EP2857979B1 (ja)
JP (1) JP6165008B2 (ja)
KR (1) KR101762242B1 (ja)
CN (1) CN104464813A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017157206A (ja) * 2016-03-03 2017-09-07 三星電子株式会社Samsung Electronics Co.,Ltd. ハイブリッドメモリ制御器及びその制御方法並びに格納ノード
JP2018147490A (ja) * 2017-03-07 2018-09-20 三星電子株式会社Samsung Electronics Co.,Ltd. パフォーマンスケイパビリティを自己報告できる不揮発性メモリー貯蔵装置、パフォーマンスケイパビリティを報告する方法、及びデータを適切な不揮発性メモリーエクスプレス名前空間プロファイルに割り当てる方法

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017107164A1 (zh) * 2015-12-25 2017-06-29 研祥智能科技股份有限公司 异构混合内存架构的计算机系统及其控制方法、内存检测系统
US10650899B2 (en) * 2017-04-27 2020-05-12 Everspin Technologies, Inc. Delayed write-back in memory with calibration support
JP7406895B2 (ja) * 2019-10-23 2023-12-28 キヤノン株式会社 情報処理装置および情報処理装置の制御方法
CN111190540B (zh) * 2019-12-25 2021-06-04 晶晨半导体(上海)股份有限公司 内存接口写入均衡的控制方法及装置

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS58125125A (ja) * 1982-01-21 1983-07-26 Toshiba Corp プログラムの起動方法
JPH04248641A (ja) * 1991-02-05 1992-09-04 Sanyo Electric Co Ltd メモリ制御装置
US5918242A (en) * 1994-03-14 1999-06-29 International Business Machines Corporation General-purpose customizable memory controller
US20090144577A1 (en) * 2007-11-30 2009-06-04 Symbol Technologies, Inc. Dynamic battery capacity allocation for data retention among mobile computers and electronic devices
US8051253B2 (en) * 2006-09-28 2011-11-01 Virident Systems, Inc. Systems and apparatus with programmable memory control for heterogeneous main memory
JP2012033002A (ja) * 2010-07-30 2012-02-16 Toshiba Corp メモリ管理装置およびメモリ管理方法
US20120324251A1 (en) * 2011-05-26 2012-12-20 Sony Mobile Communications Ab Optimized hibernate mode for wireless device

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR0158489B1 (ko) * 1995-12-20 1998-12-15 김광호 반도체 메모리 디바이스의 구분방법
US6681286B2 (en) * 2000-01-25 2004-01-20 Via Technologies, Inc. Control chipset having dual-definition pins for reducing circuit layout of memory slot
TW493119B (en) * 2001-03-28 2002-07-01 Via Tech Inc Method for automatically identifying the type of memory and motherboard using the same
US6989861B2 (en) * 2001-09-14 2006-01-24 Hewlett-Packard Development Company, L.P. User selection of power-on configuration
US7627464B2 (en) * 2002-04-18 2009-12-01 Standard Microsystems Corporation Bootable solid state floppy disk drive
EP1408510A3 (en) * 2002-05-17 2005-05-18 Matsushita Electric Industrial Co., Ltd. Memory control apparatus, method and program
US7296171B2 (en) * 2004-11-10 2007-11-13 Microsoft Corporation Selecting a power state based on predefined parameters
US20060245230A1 (en) * 2005-04-29 2006-11-02 Ambroggi Luca D Memory module and method for operating a memory module
GB2426360A (en) * 2005-05-18 2006-11-22 Symbian Software Ltd Reorganisation of memory for conserving power in a computing device
US7321524B2 (en) * 2005-10-17 2008-01-22 Rambus Inc. Memory controller with staggered request signal output
US7594073B2 (en) * 2006-09-29 2009-09-22 Intel Corporation Method and apparatus for caching memory content on a computing system to facilitate instant-on resuming from a hibernation state
JP2008129351A (ja) * 2006-11-21 2008-06-05 Toshiba Corp 画像表示装置及び画像表示方法
US8738840B2 (en) * 2008-03-31 2014-05-27 Spansion Llc Operating system based DRAM/FLASH management scheme
TWI375888B (en) * 2008-05-16 2012-11-01 Phison Electronics Corp Method, apparatus and controller for managing memories
US8977831B2 (en) * 2009-02-11 2015-03-10 Stec, Inc. Flash backed DRAM module storing parameter information of the DRAM module in the flash
US8169839B2 (en) * 2009-02-11 2012-05-01 Stec, Inc. Flash backed DRAM module including logic for isolating the DRAM
US8255620B2 (en) * 2009-08-11 2012-08-28 Texas Memory Systems, Inc. Secure Flash-based memory system with fast wipe feature
US9110568B2 (en) * 2009-10-13 2015-08-18 Google Inc. Browser tab management
JP5623090B2 (ja) 2010-01-29 2014-11-12 キヤノン株式会社 情報処理装置、情報処理装置の制御方法及び制御プログラム
US8510598B2 (en) * 2010-03-29 2013-08-13 Dot Hill Systems Corporation Buffer management method and apparatus for power reduction during flush operation
JP5857549B2 (ja) * 2010-10-29 2016-02-10 株式会社リコー 画像処理装置、省電力復帰制御方法、省電力復帰制御プログラム及び記録媒体
JP2013004043A (ja) 2011-06-22 2013-01-07 Fuji Xerox Co Ltd 情報処理装置、画像形成装置およびプログラム
US20130046934A1 (en) * 2011-08-15 2013-02-21 Robert Nychka System caching using heterogenous memories
US9069551B2 (en) * 2011-12-22 2015-06-30 Sandisk Technologies Inc. Systems and methods of exiting hibernation in response to a triggering event
EP2620838B1 (en) * 2012-01-26 2015-04-22 ST-Ericsson SA Automatic partial array self-refresh
KR20140026889A (ko) * 2012-08-23 2014-03-06 삼성전자주식회사 선택적으로 리프레쉬를 수행하는 저항성 메모리 장치 및 저항성 메모리장치의 리프레쉬 방법
JP5787852B2 (ja) * 2012-09-07 2015-09-30 株式会社東芝 制御装置、情報処理装置、制御方法およびプログラム
KR20150098649A (ko) * 2012-12-22 2015-08-28 퀄컴 인코포레이티드 비-휘발성 메모리의 이용을 통한 휘발성 메모리의 전력 소비 감소
US9032139B2 (en) * 2012-12-28 2015-05-12 Intel Corporation Memory allocation for fast platform hibernation and resumption of computing systems
KR20140093505A (ko) * 2013-01-18 2014-07-28 삼성전자주식회사 단말기의 메모리 확장 장치 및 방법
US9286985B2 (en) * 2013-02-12 2016-03-15 Kabushiki Kaisha Toshiba Semiconductor device with power mode transitioning operation
JP6087662B2 (ja) * 2013-02-28 2017-03-01 株式会社東芝 制御装置、制御プログラム及び情報処理システム
US20140281148A1 (en) * 2013-03-15 2014-09-18 Kabushiki Kaisha Toshiba Memory system

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS58125125A (ja) * 1982-01-21 1983-07-26 Toshiba Corp プログラムの起動方法
JPH04248641A (ja) * 1991-02-05 1992-09-04 Sanyo Electric Co Ltd メモリ制御装置
US5918242A (en) * 1994-03-14 1999-06-29 International Business Machines Corporation General-purpose customizable memory controller
US8051253B2 (en) * 2006-09-28 2011-11-01 Virident Systems, Inc. Systems and apparatus with programmable memory control for heterogeneous main memory
US20090144577A1 (en) * 2007-11-30 2009-06-04 Symbol Technologies, Inc. Dynamic battery capacity allocation for data retention among mobile computers and electronic devices
JP2012033002A (ja) * 2010-07-30 2012-02-16 Toshiba Corp メモリ管理装置およびメモリ管理方法
US20120324251A1 (en) * 2011-05-26 2012-12-20 Sony Mobile Communications Ab Optimized hibernate mode for wireless device

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017157206A (ja) * 2016-03-03 2017-09-07 三星電子株式会社Samsung Electronics Co.,Ltd. ハイブリッドメモリ制御器及びその制御方法並びに格納ノード
JP2018147490A (ja) * 2017-03-07 2018-09-20 三星電子株式会社Samsung Electronics Co.,Ltd. パフォーマンスケイパビリティを自己報告できる不揮発性メモリー貯蔵装置、パフォーマンスケイパビリティを報告する方法、及びデータを適切な不揮発性メモリーエクスプレス名前空間プロファイルに割り当てる方法

Also Published As

Publication number Publication date
KR101762242B1 (ko) 2017-07-27
JP6165008B2 (ja) 2017-07-19
EP2857979B1 (en) 2016-08-31
EP2857979A1 (en) 2015-04-08
US20150089267A1 (en) 2015-03-26
CN104464813A (zh) 2015-03-25
KR20150034096A (ko) 2015-04-02
US10268257B2 (en) 2019-04-23

Similar Documents

Publication Publication Date Title
JP6165008B2 (ja) メモリ制御装置、メモリ制御方法、情報機器及びプログラム
US10109328B2 (en) Memory controller for adjusting timing based on memory power states
JP5725695B2 (ja) データ記憶装置、及びデータ記憶装置の制御方法
JP2011040041A (ja) 書き込みレベリング動作を行うためのメモリ装置の制御方法、メモリ装置の書き込みレベリング方法、及び書き込みレベリング動作を行うメモリコントローラ、メモリ装置、並びにメモリシステム
JP2010194811A (ja) 印刷装置用コントローラーおよび印刷装置
TWI317519B (en) Semiconductor memory, memory controller and control method for semiconductor memory
SG186531A1 (en) Data processing apparatus and image forming apparatus
TW581966B (en) Data processor
US10754415B2 (en) Control apparatus that controls memory and control method thereof
US20130222851A1 (en) Information processor, control device, and image forming apparatus
US20110292448A1 (en) Program execution control method
JP6700739B2 (ja) コントローラおよび制御方法
JP4882807B2 (ja) Sdram制御回路及び情報処理装置
JP6274774B2 (ja) メモリインターフェース装置及びその制御方法
US8631214B2 (en) Memory control circuit, control method therefor, and image processing apparatus
JP5895640B2 (ja) データ処理装置およびメモリ制御装置
JP2008152315A (ja) 信号処理回路
JP2006172059A (ja) 情報処理装置および情報処理方法
KR102441459B1 (ko) 신호 처리 회로
JP5919973B2 (ja) 電子機器、及びメモリー制御方法
JP2006262099A (ja) 電子機器
JP2010181998A (ja) データ処理装置
CN112711548A (zh) 内存装置、图像处理芯片以及内存控制方法
CN115525586A (zh) 一种ddr扩展装置及控制方法、装置、介质
JP2012234502A (ja) メモリ制御装置、画像処理装置、メモリ制御方法、メモリ制御プログラム及び記録媒体

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160923

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160923

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170516

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20170523

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170620

R151 Written notification of patent or utility model registration

Ref document number: 6165008

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151