JP2020071855A - 情報処理装置および情報処理装置の制御方法、ならびにプログラム - Google Patents

情報処理装置および情報処理装置の制御方法、ならびにプログラム Download PDF

Info

Publication number
JP2020071855A
JP2020071855A JP2019025606A JP2019025606A JP2020071855A JP 2020071855 A JP2020071855 A JP 2020071855A JP 2019025606 A JP2019025606 A JP 2019025606A JP 2019025606 A JP2019025606 A JP 2019025606A JP 2020071855 A JP2020071855 A JP 2020071855A
Authority
JP
Japan
Prior art keywords
data size
information processing
unit
data
cumulative total
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
JP2019025606A
Other languages
English (en)
Other versions
JP2020071855A5 (ja
JP7313840B2 (ja
Inventor
義和 佐藤
Yoshikazu Sato
義和 佐藤
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 US16/780,756 priority Critical patent/US11435949B2/en
Publication of JP2020071855A publication Critical patent/JP2020071855A/ja
Publication of JP2020071855A5 publication Critical patent/JP2020071855A5/ja
Application granted granted Critical
Publication of JP7313840B2 publication Critical patent/JP7313840B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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

Abstract

【課題】メモリへの実際の書き込みデータサイズがわからない場合であっても、合計の書き込みデータサイズが上限を超えないように通知をすることが可能な情報処理装置を提供する。【解決手段】情報処理装置は、データを記憶する記憶手段と、記憶手段へのデータの書き込む書き込み制御手段と、書き込み制御手段により書き込みが指示されたデータサイズに基づいて、記憶手段に書き込まれたと推定されるデータサイズを取得する取得手段と、取得手段により取得された前記データサイズの累計に基づいて通知する通知手段と、を有する。【選択図】図4

Description

本発明は情報処理装置および情報処理装置の制御方法、ならびにプログラムに関する。
近年、補助記憶装置としてeMMC(embedded Multi Media Card)やSSD(Solid State Drive)といったNANDフラッシュメモリを備える情報処理装置がある。
NANDフラッシュメモリにおいては、新しいデータを書き込むときの状態によってホストシステムから書き込まれるデータサイズと、実際にNANDフラッシュメモリに書き込まれるデータサイズ(以下、実書き込みデータサイズ)が異なる場合がある。NANDフラッシュメモリのデータの書き込みはページ単位(例えば4KByte)で実行される。一方で、NANDフラッシュメモリのデータの消去は複数のページから成るブロック単位(例えば64KByte)で実行される。すでにデータの書き込まれているページに新しいデータを書き込む場合、NANDフラッシュメモリは当該ページを含むブロック全体を消去し、消去したデータとともに新しく書き込みたいデータを書き込む。そのためホストシステムが書き込みを指示したデータサイズに対して、NANDフラッシュメモリへの実際の書き込みデータサイズが多くなる。ホストシステムにより書き込みが指示されたデータサイズに対する、NANDフラッシュメモリの実際の書き込みデータサイズの比をWAF(Write Amplification Factor)という。
たとえば、ホストシステムから2KByteのデータを書き込む場合、当該データが書き込まれるブロックに62KByteのデータが書き込まれていることがある。このとき、すでに書き込まれている62KByteのデータが削除され、62KByteのデータに2KByteのデータを加えた64KByteのデータがNANDフラッシュメモリに書き込まれる。上記の場合、WAFは31になる。
NANDフラッシュメモリとして組み込みメモリであるeMMCはNANDフラッシュメモリへの実際の書き込みデータサイズを記憶していない。そのため、ホストシステムがNANDフラッシュメモリに実際に書き込まれたデータサイズを取得することができず、ホストシステムはeMMCのNANDフラッシュメモリへどれだけデータを書き込んだかどうかを知ることができない。
上記のような課題に対して、例えば特許文献1では、一定時間内にホストデバイスが書き込みを指示したデータサイズにWAFを乗算することで、一定時間内の書き込み量を推定する。
特開2015−198377号公報
ところで、eMMCのようなNANDフラッシュメモリでは書き込みデータサイズの総量に上限があり、その上限を超えてデータを書き込んだ場合にはそのデータが保証されない。NANDフラッシュメモリに記憶されたデータを保証するためには、NANDフラッシュメモリへの総書き込み量が予め決められた上限を超えないようにしなくてはならない。
しかしながら、上述したように、eMMCは実際の書き込みデータサイズを記憶していないため、ホストシステムがeMMCのNANDフラッシュメモリへの書き込みデータサイズの累計を求めることができない。そのため、ユーザが気付かないうちに、eMMCのNANDフラッシュメモリへの書き込みデータサイズがデータ保証される上限を超えてしまう可能性がある。
本発明は上記課題を解決するためになされたものであり、NANDフラッシュメモリへの実際の書き込みデータサイズがわからない場合であっても、合計の書き込みデータサイズがデータ保証される上限を超えないように通知をすることを目的とする。
上記目的を達成するために、本発明の情報処理装置は、データを記憶する記憶手段と、前記記憶手段にデータの書き込みを指示する書き込み制御手段と、前記書き込み制御手段により書き込みが指示されたデータサイズに基づいて、前記記憶手段に実際に書き込まれると推定されるデータサイズを取得する取得手段と、前記取得手段により取得された前記データサイズの累計に基づいて通知をする通知手段と、を有することを特徴とする。
本発明によれば、メモリへの実際の書き込みデータサイズがわからない場合であっても、合計の書き込みデータサイズが上限を超えないようにユーザに注意を促すことが可能になる。
実施例1および実施例2における画像形成装置100の構成の一例を示す図である。 実施例1および実施例2におけるWAF管理テーブルの構成の一例を示す図である。 実施例1および実施例2におけるWAF管理テーブル選択処理のフローチャートである。 実施例1におけるeMMC書き込み処理のフローチャートを示す図である。 実施例1および実施例2におけるディスクリプタテーブル500の構成の一例を示す図である。 実施例1および実施例2における実書き込みデータサイズ加算処理のフローチャートを示す図である。 実施例1および実施例2における寿命判定処理700のフローチャートである。 実施例2におけるeMMC書き込み処理800のフローチャートである。 実施例2における実書き込みデータサイズ減算処理900のフローチャートである。 実施例3および実施例4における画像形成装置の構成の一例を示す図である。 実施例3におけるeMMC書き込み処理のフローチャートを示す図である。 実施例3および実施例4における書き込みデータサイズカウントアップ処理のフローチャートである。 実施例1および実施例2における実書き込みデータサイズ加算処理のフローチャートである。 実施例3および実施例4におけるタイマ割込み処理、電力状態移行処理、シャット断処理のフローチャートである。 実施例4におけるeMMC書き込み処理のフローチャートである。 実施例4における書き込みデータサイズカウントダウン処理のフローチャートである。
(実施例1)
以下、本発明を実施するための形態について図面を用いて説明する。なお、本実施形態において、情報処理装置の一例として画像形成装置を用いて説明をする。画像形成装置以外のコンピュータやタブレット端末等の情報処理装置が以下の処理を実行するとしても構わない。
図1は、実施例1における画像形成装置100の構成である。
メインSoC101(System on a Chip)は集積回路部品であり、後述するCPU102、画像処理ハードロジック103、メモリI/F104を含んでいる。また、メインSoC101は、後述するRAM106、ROM107、UI108等の制御インターフェースや、それらを接続するシステムバスも含んでいるが、本発明に直接関与しないため図1には図示していない。
CPU102は、画像形成装置100全体を制御するための中央処理装置である。
画像処理ハードロジック103は、スキャナ110から読み込んだ入力画像データに対して、補正、加工、編集等の画像処理を行う。さらに、画像処理ハードロジック103は、メインSoC101がプリンタ109へ出力する出力画像データに対する、色変換、フィルタ処理、解像度変換等の処理を行う。
ホストメモリI/F104は、DMAC105(Direct Memory Accecss Controller)を含むメモリインターフェースである。CPU102がDMAC105を制御することで、eMMC112とRAM106との間のデータ入出力を行うことが可能である。
RAM106は、CPU102が動作するためのシステムワークメモリであり、CPU102の演算データや各種プログラムが記憶される。また、RAM106は、スキャン時やプリント時に画像処理ハードロジック103で様々な画像処理を施された画像データを保持する画像メモリとしても利用される。
ROM107は、ブートROMであり、画像形成装置100のブートプログラムが格納されている。
UI108は、ユーザインターフェースであり、画面を表示する液晶ディスプレイとユーザから入力を受け付けるタッチパネルおよびハードキーなどで構成される。
プリンタ109は、画像データを用紙上に印字するプリンタエンジンであり、レーザースキャナユニットや感光体ドラム、紙搬送ユニットなどを含んでいる。
スキャナ110は、用紙上の画像や文字をCCDセンサやCISセンサで読み取り、画像データに変換するユニットである。
外部I/F111は、電話回線網や有線LAN、無線LAN、USBなどのインターフェースであり、各インターフェースを介して画像形成装置100と外部装置とがデータ通信を行う。
eMMC112は、メモリI/F113、コントローラ114、NANDフラッシュメモリ116を含んで構成される。
メモリI/F113は、コントローラ114の制御によりメインSoC101とコントローラ114との間のデータ入出力を行うインターフェースである。
コントローラ114は、メモリI/F113を介してメインSoC101から受信したコマンドを解釈して、そのコマンドに応じた動作を行うメモリ制御モジュールである。さらにコントローラ114は、CIDレジスタ115を含んでいる。CIDレジスタ115は、JEDECにより定められた標準規格で規定されたレジスタであり、Card IDentification numberレジスタの略称である。CIDレジスタ115はデバイスメーカーを示すマニュファクチャIDや、デバイスを特定するプロダクトネームなどの情報を含んでいる。
NANDフラッシュメモリ116は、データを記録する不揮発性のNANDフラッシュメモリである。NANDフラッシュメモリ116へのデータの書き込みは、コントローラ114の制御によりNANDフラッシュメモリ116内のメモリセルの浮遊ゲートに電子を注入することで行われる。NANDフラッシュメモリ116には、画像処理ハードロジック103により処理が完了した画像データ等が書き込まれる。NANDフラッシュメモリ116において、データ書き込みはページ単位で行われる。さらに、NANDフラッシュメモリ116においてデータ削除は複数のページからなるブロック単位で行われる。コントローラ114はページの途中からデータを書き込む場合に、当該ページを含むブロックのデータを一度、他のメモリに退避させる。そして、コントローラ114はブロックごとデータを削除してから、もともと当該ブロックに書き込まれていたデータと新しく書き込まれるデータとを合わせたデータが新たにNANDフラッシュメモリ116に書き込む。上記のような処理を行うため、NANDフラッシュメモリにおいては、CPU102がDMAC105を介して書き込みを指示したデータサイズとコントローラ114がNANDフラッシュメモリ116に実際に書き込むデータサイズが異なる。
図2は、実施例1において、メインSoC101がNANDフラッシュメモリ116にデータを書き込む際、NANDフラッシュメモリ116に実際に書き込まれるデータ量を推定するためのWAFを管理するためのWAF管理テーブルである。
図2に記載のWAF管理テーブルは、eMMC112に格納される。WAF管理テーブルには、メインSoC101が指示することのできる書き込みデータサイズごとに、推定されるWAFの数値が記憶されている。本実施例においてメインSoC101は、WAF管理テーブルに記憶されたWAFを用いることでNANDフラッシュメモリ116に対する実際の書き込みデータサイズを推定する。なお、WAF管理テーブルは複数種類のeMMCに対してデータサイズごとのWAFを記憶している。異なる種類のeMMC112を用いる場合であっても、新たなWAF管理テーブルを生成することなく、図2に示すWAF管理テーブルを用いてWAFの数値を取得するためである。なお、WAF管理テーブルが記憶される種類のeMMCに対するWAF管理テーブルが格納されていれば十分である。その場合は、マニュファクチャID201やプロダクトネーム202を有さず、ホスト書き込みデータサイズに対するWAFのみ記憶されていてもよい。
WAFはメインSoC101から書きこみが指示されたデータサイズや、現在NANDフラッシュメモリ116に記憶されているデータ量等の状態によって変化する。そのため、WAF管理テーブルに記憶されているWAFは、メインSoC101から書き込みが指示されたデータサイズに基づいて、実際NANDフラッシュメモリに書き込まれると推定されるデータサイズを求めるための数値である。また、WAF管理テーブルに記憶されるWAFは当該eMMCを生産するメーカーによって規定される値等であってもよい。
WAFは一般的に書き込みサイズが小さければ小さいほど、大きな値となる。そのため、図2に示すWAF管理テーブルでは、メインSoC101が書き込みを指定するデータサイズが小さいほどWAFが大きく設定されている。
また、WAFはNANDフラッシュメモリ116がデータの消去を行うときの単位であるブロックの大きさにも依存する。ブロックの大きさは、デバイスメーカーの違いや、同じメーカーでもデバイスによって異なる。そのため、図2に示すWAF管理テーブルは、デバイスメーカーを示すマニュファクチャIDや、デバイスを示すプロダクトネームごとに、WAFを記憶する。
“No”200は、WAF管理テーブルにおける行の通し番号であり、要素の管理に用いられる。
“マニュファクチャID”201は、eMMC112を製造したデバイスメーカーを特定するためのIDであり、標準規格で規定されたeMMCのCIDレジスタのマニュファクチャIDである。
“プロダクトネーム”202は、デバイスを特定するためのIDであり、標準規格で規定されたeMMCのCIDレジスタのプロダクトネームである。
“ホスト書き込みデータサイズ”203は、メインSoC101がeMMC112に対して書き込みを指示するデータサイズである。WAF管理テーブルは、メインSoC101が書き込みを指示する可能性のある全ての書き込みデータサイズが記載されている。本実施例において、ホストシステムであるメインSoC101は、4KByte、8KByte、16KByte、32KByte、64KByteの5種類のデータサイズの書き込みを行うとする。
“WAF”204は、メインSoC101がNANDフラッシュメモリに書き込むデータサイズごとに推定されるWAFの数値である。“WAF”204に記載される数値は、動作シミュレーションやスペックシートの値から算出された値である。
図3は、実施例1において、画像形成装置100の起動時に実行されるWAF管理テーブルの展開に関する処理を示すフローチャートである。図3に記載の処理は、画像形成装置100の電源をオンした後のシステム起動シーケンスの中でCPU102によって実施される。図3に示す処理を実行するためのプログラムは、ROM107に格納されており、CPU102が当該プログラムをRAM106に展開し、実行することで処理が実現される。
CPU102はeMMC112の初期化処理を実行する(S301)。S301においてCPU102が実行する処理の内容は、規格で規定された処理である。たとえば、S301においてCPU102はeMMC112のレジスタ初期化や、メインSoC101とeMMC112間のアクセス速度の設定処理を行う。
eMMC112の処理化が完了した後、CPU102はCIDレジスタの値を読み出す(S302)。前述したようにCIDレジスタ115は、標準規格で規定されたレジスタであり、デバイスメーカーを示すマニュファクチャIDや、デバイスを特定するプロダクトネームなどの情報を含んでいる。S302において、CPU102はCIDレジスタ115から、マニュファクチャIDとプロダクトネームを読み出す。ここで読み出されたマニュファクチャIDやプロダクトネームはCPU102がeMMC112にデータを書き込むときに推定されるWAFを算出するために用いられる。S302で読み出されたマニュファクチャIDやプロダクトネームを使用することで、画像形成装置に内蔵されているeMMC112の種類に対応したWAFを使用することができる。
CPU102はS302で読み出したマニュファクチャIDとプロダクトネームから、eMMC112に格納されたWAF管理テーブルの該当部分のみをRAM106に展開する(S303)。例えば、S302で読み出したマニュファクチャIDが0xEE、プロダクトネームが0x567891234DEFである場合、CPU102は図2のWAF管理テーブルのNo006〜010の行をRAM106に展開する。WAF管理テーブルの展開後、CPU102は図3に記載の処理を終了する。
図4は、実施例1におけるeMMC書き込み処理のフローチャートである。eMMC書き込み処理は、メインSoC101がeMMC112に対してデータを書き込むための処理であり、CPU102、DMAC105、コントローラ114が連携して実施される。CPU102による処理を示すフローチャートはROM107に格納されており、CPU102が当該プログラムをRAM106に展開して実行する。
CPU102はDMAC105を制御するためのディスクリプタテーブル500をRAM106上に生成する(S401)。ディスクリプタテーブル500の詳細は後述する。S401において、CPU102はディスクリプタテーブルを生成するためのデータ領域をRAM106上に確保する。
図5は、実施例1におけるディスクリプタテーブル500の構成である。
前述したようにディスクリプタテーブル500は、CPU102によって生成され、RAM106に格納される。ディスクリプタテーブル500が格納された領域の先頭アドレスはCPU102によって、DMAC105のレジスタに設定される。DMAC105は設定された先頭アドレスに基づいてディスクリプタテーブル500にアクセスし、ディスクリプタテーブル500の内容に従って動作する。
Command Number501は、DMAC105がコントローラ114に対して発行すべきコマンド番号である。本コマンド番号はJEDECにより定められた標準規格で規定されたコマンド番号と同義である。DMAC105はCommand Number501に格納された番号を参照し、処理を決定する。
Command Argument502は、DMAC105がコントローラ114に対して発行すべきコマンド引数である。コマンド引数は標準規格で規定された内容であり、たとえば、DMAC105が発行するコマンドがライトコマンドの場合には、ライト先のアドレス等が含まれる。
Block Length503は、DMAC105とコントローラ114との間で、転送を行うデータの単位ブロック長である。
Block Count504は、DMAC105とコントローラ114との間で、転送を行うブロック数である。
Host Address505は、RAM106上のアドレスであり、DMAC105とコントローラ114との間で転送を行うデータの先頭アドレスを示している。すなわち、RAM106に格納されたデータをeMMC112に書き込むWrite処理を行う場合、Host Address505は転送されるデータが格納されているRAM106のアドレスである。一方で、eMMC112に格納されたデータを読み出すRead処理を行う場合、Host Address505は、eMMC112から読み出したデータの転送先アドレスとなる。
ディスクリプタテーブルの内容のうち、Block Length503の値とBlock Count504の値とを乗じた値が、当該転送によるホスト書き込みデータサイズになる。例えば、Block Length503が512Byte、Block Count504が8だった場合、当該転送によるホスト書き込みデータサイズは4KByteになる。上記の計算により、CPU102はメインSoC101がeMMC112に書き込みを指示するデータサイズを求めることができる。ここで、メインSoC101がDMAC105を介してeMMC112に書き込みを指示するデータサイズは、eMMC112のコントローラ114が実際にNANDフラッシュメモリ116に書き込むデータサイズとは異なる。
CPU102は、S401でRAM106上に格納されたディスクリプタテーブル500の先頭アドレスをDMAC105に設定する(S402)。DMAC105はS402で設定されたアドレスにアクセスすることでディスクリプタテーブル500の内容を取得することができるようになり、当該ディスクリプタデータブル500に設定された内容に応じて動作することができるようになる。
CPU102はDMAC105のイネーブルレジスタをオンに設定する(S403)。CPU102がDMAC105のイネーブルレジスタをオンに設定することで、DMAC105がS402で設定されたアドレスにアクセスし、DMA転送をスタートさせる。
DMAC105はコントローラ114に対して、ディスクリプタテーブル500の内容に基づいて、書き込みデータサイズの設定コマンドを発行する(S404)。S404においてCPU102は、ディスクリプタテーブル500に記憶された単位ブロック長およびブロック数を取得して、コマンドを発行する。CPU102は、eMMC112のコントローラ114にブロック長を設定したコマンドCMD16と、コントローラ114に書き込むデータブロックの数を設定するコマンドCMD23を発行する。
eMMC112内のコントローラ114は、DMAC105からブロック長を設定するためのコマンドと書き込みデータブロック数を示すコマンドを受信する。そして、コントローラ114はそれぞれのコマンドに対応する処理を実行し、処理の結果をDMAC105に対して発行する(S405)。このレスポンスの形式は標準規格で規定されており、コントローラ114は受信したコマンドに対する処理が正常に完了したか否かを示す応答をDMAC105に通知する。
DMAC105はコントローラ114からS404で送信したコマンドに対応する処理が正常に完了したことを示す通知を受け付けるまで待機する。そして、S404で発行したコマンドに対応する処理が正常に完了したことを示す通知を受信したDMAC105はコントローラ114に対して、ディスクリプタテーブル500の内容に基づいて、書き込みコマンドを発行する(S406)。S404においてDMAC105は、ディスクリプタテーブル500に基づいて、CMD24(WRITE_BLOCK)やCMD25(WRITE_MULTILE_BLOCK)を発行する。ここでは、S404で発行したコマンドに対してS405で当該処理が正常に完了したことを示すレスポンスが発行された場合を説明した。S404の後、コントローラ114からS404で発行したコマンドに対応する処理が正常に完了していないことを示すレスポンスが発行された場合に、再度S404に記載の処理を実行する。
コントローラ114はS406でDMAC105が発行したコマンドに対応する処理を実行する。コントローラ114は当該処理を実行した後、処理が正常に完了したか否かを示す情報をDMAC105に対してレスポンスとして通知する(S407)。このレスポンスの形式は標準規格で規定された形式である。S407により受信したコマンドに対するコントローラ114のステータスがDMAC105に通知される。
DMAC105はコントローラ114からS406で発行されたコマンドに対応するレスポンスを受信するまで処理を進まずに待つ。DMAC105はコントローラ114から、S406で発行したコマンドに対応する処理が正常に完了したことを示すレスポンスを受信して、コントローラ114にeMMC112に書き込むデータを転送する(S408)。
S408において、DMAC105は、ディスクリプタテーブル500の内容に基づいて、RAM106からデータを読み出し、eMMC112にデータを転送する(S408)。S408において、DMAC105は、ディスクリプタテーブル500内のHost Address505に基づき、RAM106上のデータにアクセスする。そしてDMAC105は、RAM106から読み出したデータをコントローラ114に転送する。なお、本実施例では、S406で発行されたコマンドに対応する処理が正常に完了し、当該処理が正常に完了したこと示すレスポンスをDMAC105が受信した場合を説明した。S407において、S406で発行したコマンドに対応する処理が正常に完了しなかったことを示すレスポンスが発行された場合、DMAC105は、S408に記載の処理を行うことなくS406に処理を戻すとしてもよい。
eMMC112のNANDフラッシュメモリ116に書き込むデータをDMAC105から取得したコントローラ114は当該データをNANDフラッシュメモリ116に書き込む。NANDフラッシュメモリ116への書き込みが正常に完了した場合、コントローラ114はDMAC105に対して書き込みが正常に完了したことを示すレスポンスを発行する(S409)。このレスポンスの形式は標準規格で規定されており、受信したデータのステータスがDMAC105に通知される。S409でSMAC105に通知されるステータスには、S408で転送されたデータに対する誤り検知の結果等が含まれている。
DMAC105は、コントローラ114からのレスポンスを受信して、CPU102に対して割り込みを発行する(S410)。SMAC105はS409において、コントローラ114から出力された誤り検知結果に基づいて、S408で転送を開始したデータの書き込みが正常に終了したか否かを判定する。NANDフラッシュメモリへのデータの書き込みが正常に終了した場合、DMAC105はCPU102に対してデータ転送が正常に完了したことを示す割り込み信号を出力する。一方で、NANDフラッシュメモリへのデータの書き込みが正常に終了しなかった場合、DMAC105はCPU102に対してデータ転送が正常に完了しなかったことを示す割り込み信号を出力する。
CPU102はDMAC105からの割り込み信号を受信する。そして、DMAC105から受信した割り込み信号が、データ転送が正常に完了したことを示す割り込み信号であるか否かを判定する(S411)。S411において、CPU102が受信した割り込み信号がeMMC112へのデータ転送が正常に完了したことを示す割り込みだと判定された場合、CPU102はS412に記載の処理を実行する。一方で、S411で受信した割り込み信号が、データ転送が正常に完了しなかったことを示す異常割り込み信号であると判定された場合、CPU102はS413に後述する処理を実行する。
S412において、CPU102はコントローラ114がNANDフラッシュメモリ116に実際に書き込まれたデータのデータサイズを推定し、これまでにNANDフラッシュメモリ116に書き込まれたデータサイズとの合計を求める処理を実行する。S412の詳細は後述する。
CPU102がS410で異常割り込みを受け取った場合に実行され、再転送などのリカバリ動作を実行したり、異常状態をUI108に表示したりする(S413)。S413は本発明に直接関与しないため、詳細は省略する。なお、NANDフラッシュメモリ116へのデータの書き込みが失敗した場合は、実際の書き込みデータサイズを求める処理は行わない。
図6は、図4のS412においてCPU102が実行する実書き込みデータサイズ加算処理のフローチャートである。実書き込みデータサイズ加算処理は、実際にeMMC112に書き込まれるデータサイズを計算し、eMMC112への総書き込みデータサイズを求める処理である。図6に示す処理を実行するためのプログラムはROM107に格納されており、CPU102が当該プログラムをRAM106に展開し実行することで処理が実現される。
CPU102はディスクリプタテーブル500に基づいて書き込みが指示されるデータサイズ(Dsize1)に基づいて、WAFを推定する(S601)。S601において、Dsiza1は、ディスクリプタテーブル500のBlock Length503とBlock Count504の積である。CPU102は、RAM106に展開したWAF管理テーブルに基づいてDsize1に対応するWAFを選択する。例えば、S303で、図2におけるNo001〜No005のWAF管理テーブルが展開されていたとして、Dsize1が8KByteであった場合、WAF2.0が選択される。
CPU102は、Dsize1にS601で選択されたWAFを乗算し、eMMC112がNANDフラッシュメモリ116に実際書き込むデータサイズであるDsize2を算出する(S602)。例えば、Dsize1が8KByte、WAFが2.0だった場合、Dsize2は16KByteになる。
CPU102は、S602で求められたDsize2を累積書き込みデータサイズ(Dtotal)に加算する(S603)。例えば、S602において求めたDsize2が16KByteであり、それまでのDtotalが100KByteであった場合、S603で新たに求められるDtotalは116KByteになる。DtotalはeMMC112に書き込まれており、起動時にRAM106に書きだされる。画像形成装置100の動作中は、eMMC112に書き込みがされる度に、RAM106に格納されたDtotalの値を更新する。RAM106に格納されたDtotalは画像形成装置100の電源がオフされるときに、eMMC112に記憶されたDtotalがRAM106に格納された値で更新される。
図7は、累積書き込みデータDtotalを用いて、eMMC112の累積書き込みデータサイズが上限に近くなった場合に、eMMC112の取り付けられたメインコントローラの交換を促すための処理フローである。図7のフローチャートに記載の処理を実行するためのプログラムはROM107に格納されており、当該プログラムをRAM106に展開しCPU102が実行することで処理が実現される。図7に記載のフローチャートは、画像形成装置100の電源をオンした後のシステム起動シーケンスの中に行われるものとする。ただし、画像形成装置100の電源がオンされた後、例えばユーザによって設定されたタイミング等定期的に図7に記載の処理を実行することとしてもよい。
CPU102は、RAM106からDtotalを読み出し、Dtotalが第2基準値(Dth2)以下か否かを判断する(S701)。Dth2は、たとえば、eMMC112の書き込み寿命としてデータシート等に記載されるデータサイズの90%であるとする。例えば、書き込み寿命になる実書き込みデータサイズが100GByteである場合、Dth2は90GByteである。
DtotalがDth2以下である場合、CPU102はS703に処理を進める。一方で、DtotalがDth2以上である場合、CPU102はS702に処理を進める。
CPU102はeMMC112の交換が必要であることをユーザに通知する(S702)。eMMC112への総書き込みデータサイズがeMMC112の書き込みデータの上限に近い場合、これ以上データを書き込むとeMMC112でのデータ保証が出来なくなってしまう。そこで、eMMC112への総書き込みデータサイズとして推定されるデータサイズがDth2を超えた場合には、S702においてeMMC112を有するコントローラ基板の交換をするためにサービスマンへ連絡を促すような通知を行う。サービスマンへの連絡を促す画面のほかに、外部I/F111を利用して自動的にサービスセンターへ部品交換出動連絡を発信する等をしてもよい。このように、eMMC112への総書き込みデータサイズとして推定されたデータサイズが書き込み寿命に近くなったときにはユーザに対して新しいメモリを使用するよう警告する。このようにすることで、気が付かないうちにeMMC112への総書き込みデータサイズが書き込み寿命とされる総書き込みデータサイズを超えてしまい、eMMC112に書き込んだデータを保証することが出来なくなってしまうことを抑制する。
eMMC112への総書き込みデータサイズDtotalがDth2以下である場合、CPU102はDtotalが第1基準値(Dth1)以下か否かを判断する(S703)。本実施例におけるDth1はDth2よりも小さな値である。たとえば、Dth1はeMMC112の書き込み寿命になる書き込みデータサイズの70%に設定される。
DtotalがDth1以下ではない場合、CPU102はS704に記載の処理を実行する。
CPU102はUI108にeMMC112の書き込み寿命が近づいていることをユーザに通知する画面を表示する(S704)。ここで、UI108に表示されるメッセージは、S702で表示されるメッセージと異なるメッセージであり、eMMC112の交換の時期が近付いていることを示すようなメッセージであればよい。Dth2よりも小さなDth1を設けることで、eMMC112の書き込み寿命が近づき、メモリの交換が必要な時期が近づいていることをユーザに知らせることができる。なお、本実施例では、二つの閾値を用いてeMMC112の書き込み寿命が近づいていることを段階的にユーザに通知したが、S703、S704の処理を行わず、交換が必要な状態でのみユーザに通知を行うとしてもよい。
以上本実施例によれば、メインSoC101からeMMC112に書き込む際のデータサイズに応じて適切なWAFを選択し、実際にNANDフラッシュメモリに書き込まれるデータのデータサイズを計算することが可能になる。算出されたデータサイズを累計し、eMMC112の書き込み寿命となるデータサイズと比較することで、実際の書き込みデータサイズを正確に知ることのできないメモリであっても、メモリの寿命が近いことを知ることができるようになる。
(実施例2)
実施例1では、eMMC112への書き込み処理が正常に完了した後に、実書き込みデータサイズ加算処理S412を実施していた。実施例2では、eMMC112へのデータの書き込みが完了する前に、eMMC112のNANDフラッシュメモリに書き込まれる実際の書き込みデータサイズを推定し、総書き込みデータサイズ加算処理を算出する。実施例2では、eMMC112へのデータの書き込みが完了する前に、eMMC112への実際の書き込みデータサイズを予測し、総書き込みデータサイズを算出しておく。このようにすることでeMMC112への書き込み処理が完了した後に必要な処理を減らし、書き込み完了までに必要な時間を短くすることができる。
図1、図2、図3、図5、図6、図7に記載の箇所は実施例1と同様であるため、ここでは説明を省略する。
図8は、実施例2におけるeMMCへの書き込み処理800を示すフローチャートである。eMMC書き込み処理800は、メインSoC101がeMMC112に対してデータを書き込むための処理であり、CPU102、DMAC105、コントローラ114が連携して実施される。なお、CPU102が実行する処理を示すプログラムはROM107に格納されており、当該プログラムをRAM106に展開して実行することにより図8に記載の処理が実現される。なお、図4と同様の処理には同様の番号を付与し、実施例1と異なる箇所のみ説明をする。
S801において、CPU102はS401で生成されたディスクリプタテーブル500の内容に基づいて、eMMC112への実際の書き込みデータサイズを計算し、総書き込みサイズを算出する。S801においてCPU102は、図6に示した実書き込みデータサイズ加算処理と同様の処理を実行する。
S411において、CPU102がDMAC105から受信した割り込み信号がデータの書き込みが正常に完了したことを示す割り込み信号でなかった場合、CPU102はS801で算出した実際の書き込みデータサイズを減算する処理を実行する(S802)。S802において、CPU102が実行する処理の詳細は図9にて後述する。
実施例2では、上述のようにeMMC112へのデータの書き込みが正常に行われたか否かに関わらず、S801においてeMMC112への実際の書き込みデータサイズを推定し、総書き込みデータサイズを予測する。このようにすることで、eMMC112へのデータの書き込み後に実際の書き込みデータサイズを推定する処理を行うことなくデータの書き込み処理を完了することができる。
図9は、図8のS802においてCPU102が実行する実書き込みデータサイズ減算処理900のフローチャートである。図9に示すフローチャートに記載のプログラムはROM107に記憶されており、CPU102がRAM106に展開された当該プログラムを実行することで処理が実現される。
CPU102は、ディスクリプタテーブル500に基づき、CPU102がeMMC112に書き込みを指示したデータサイズを算出する(S901)。CPU102はディスクリプタテーブル500から、Block Length503とBlock Count504とを読み出し、乗算しCPU102がeMMC112への書き込みを指示したデータサイズを算出する。
次に、CPU102はS901で算出したデータサイズと、RAM106に展開したWAF管理テーブルからS901で算出したデータサイズに対応するWAFを選択する(S902)。
CPU102は、S901で算出したデータサイズとS902で選択したWAFからeMMC112への実際の書き込みが予定されていたデータサイズを推定する(S903)。S903において、CPU102はS901で算出されたデータサイズとS902で選択されたWAFを乗算する。
最後に、CPU102はRAM106に記憶されている総書き込みデータサイズからS903で求めた推定された書き込みデータサイズを減算する(S904)。
上記の処理をすることで、eMMC112への書き込みが正常に完了しなかった場合に、実際の書き込み状況に合わせてeMMC112の総書き込みデータサイズを補正することができる。
なお、図9では、ディスクリプタテーブル500を用いて、S801で実書き込みデータサイズに加算されたデータサイズを算出しなおした。S801において、CPU102が加算されるデータサイズをRAM106に格納するとし、S813において、CPU102がRAM106からS801で加算したデータサイズを取得し、総書き込みデータサイズから減算するとしてもよい。
実施例2においても、図8に記載の処理が完了した後は、任意のタイミングで図7に記載の処理を実行する。図7に記載の処理を実行することで、実際の書き込みデータサイズを知ることのできないeMMC112であっても、総書き込みデータサイズを予測し、eMMC112への書き込みデータサイズが上限に近付いていることを通知することができる。
実施例2によれば、メインSoC101からeMMC112に書き込む際のデータサイズに応じて適切なWAFを選択し、実書き込みデータサイズを計算することが可能になる。また、CPU102がDMA転送の完了を待たずに、実書き込みデータサイズの計算を実施できる。そのため、eMMC112へのデータ書き込みが完了した後にCPU102が実際の書き込みデータサイズを推定し、総書き込みデータサイズに追加する処理をしなくてもよくなり、eMMC112へのデータ書き込み後に必要な時間が短くなる。
(実施例3)
実施例1および実施例2では、書き込み処理を行う毎に、実書き込みデータサイズ加算処理を行っていたが、実施例3では、書き込み処理とは異なるタイミングで実書き込みデータサイズ加算処理を行う。具体的なタイミングについては実施例の中で説明する。
図2、図3、図5、図7に記載の箇所は実施例1と同様であるため、ここでは説明を省略する。
図10は、実施例3における画像形成装置1000の構成である。図1と同様の構成については、同様の符号を付して説明を省略する。
タイマ117は、カウント値が閾値に達すると、CPU102に対して割込み信号を送信するモジュールである。カウント周期と閾値はCPU102から任意に設定可能である。
メインスイッチ118は、ユーザが操作するものであり、ユーザが任意に画像系装置100の電源をオンもしくはオフするために用いるスイッチである。CPU102はメインスイッチ118と接続されており、メインスイッチ118がオンもしくはオフされたことを割込み信号で受け取ることができる。
図11は、実施例3におけるeMMC書き込み処理のフローチャートである。eMMC書き込み処理は、メインSoC101がeMMC112に対してデータを書き込むための処理であり、CPU102、DMAC105、コントローラ114が連携して実施される。図3と同様の構成については、同様の符号を付して説明を省略する。なお、図11は、図3とS411以降の処理が異なる。
ステップS411において、CPU102はDMAC105からの割り込み信号を受信する。そして、DMAC105から受信した割り込み信号が、データ転送が正常に完了したことを示す割り込み信号であるか否かを判定する。S411において、CPU102が受信した割り込み信号がeMMC112へのデータ転送が正常に完了したことを示す割り込みだと判定された場合、CPU102はS1112に記載の処理を実行する。一方で、S411で受信した割り込み信号が、データ転送が正常に完了しなかったことを示す異常割り込み信号であると判定された場合、CPU102はS413に後述する処理を実行する。
S1112では、S403〜S410のDMA転送において、DMAC105からコントローラ114に転送された書き込みデータサイズ(すなわち、ホスト書き込みデータサイズ)に基づいて、CPU102がカウントアップ処理を実行する。カウントはホスト書き込みデータサイズごとにWAFが異なることを想定し、データサイズ別にカウンターを用意しカウントアップを行う。ステップS1112の詳細は図12で説明する。
S413は、CPU102がS410で異常割り込みを受け取った場合に実行され、再転送などのリカバリ動作を実行したり、異常状態をUI108に表示したりする。S413は本発明に直接関与しないため、詳細は省略する。
S1114では、CPU102がS1112の処理に用いるカウンターの値が、あらかじめ定めた閾値を超えたか否かを判断する。閾値を超えた場合には、S1115が実行される。ここでの閾値とは、どのような状況においてもカウンターがオーバーフローしないように十分に余裕をもって定められる値となる。閾値を超えていない場合には、書き込み処理1100を終了する。
S1115では、CPU102がカウンターの値に基づいて、累積書き込みデータサイズを計算する。S1115の詳細は図13で説明する。
ここで説明したように、eMMC書き込み処理400では、S1112での書き込みデータサイズカウントアップ処理や、S1114でのカウント値と閾値の比較処理が行われる。これらの処理は、図7で説明する実書き込みデータサイズ加算処理700と比べ、単純なカウントアップ処理と、ビット演算(比較)処理にとどまるため、CPU負荷としては極めて軽いものとなる。
次に図12を用いて、ステップS1112を詳細に説明する。図12は、実施例3における書き込みデータサイズカウントアップ処理1200のフローチャートである。書き込みデータサイズカウントアップ処理1200は、eMMC書き込み処理400のS1112において、CPU102によって実行される処理であり、ホスト書き込みデータサイズ(Dsize1)に基づいて、カウントアップを実行する処理である。
S1201では、CPU102がホスト書き込みデータサイズ(Dsize1)に基づいて、インクリメントすべきカウンターを判断する。ホスト書き込みデータサイズ(Dsize1)は図5で説明したディスクリプタテーブル500の内容にて判断可能である。
S1202は、S1201でホスト書き込みデータサイズ(Dsize1)が4kBであると判断された場合に実行される。S1202では、CPU102が4kB_Counter(4kByte用のカウンター)をインクリメントする。
S1203は、S1201でホスト書き込みデータサイズ(Dsize1)が8kBであると判断された場合に実行される。S1203では、CPU102が8kB_Counter(8kByte用のカウンター)をインクリメントする。
S1204は、S1201でホスト書き込みデータサイズ(Dsize1)が16kBであると判断された場合に実行される。S1204では、CPU102が16kB_Counter(16kByte用のカウンター)をインクリメントする。
S1205は、S1201でホスト書き込みデータサイズ(Dsize1)が32kBであると判断された場合に実行される。S1205では、CPU102が32kB_Counter(32kByte用のカウンター)をインクリメントする。
S1206は、S1201でホスト書き込みデータサイズ(Dsize1)が64kBであると判断された場合に実行される。S1206では、CPU102が64kB_Counter(64kByte用のカウンター)をインクリメントする。
S1202〜S1206を終えると、カウントアップ処理が終了する。
なお、本実施例では4kByte用〜64kByte用のカウンターを用意する例を説明したが、システム構成に応じて、これら以外のデータサイズのカウンターを用意しカウントしてもよい。
次に図13を用いてS1115を詳細に説明する。図13は、実施例3における実書き込みデータサイズ加算処理1300のフローチャートである。実書き込みデータサイズ加算処理1300は、eMMC書き込み処理400のS415において、CPU102によって実行される処理であり、累積書き込みデータサイズ(Dtotal)を算出する処理である。
なお、実書き込みデータサイズ加算処理1300の実施タイミングとして、S1115以外に、システムのシャットダウン時、スリープ(節電状態)移行時、一定時間ごと(タイマ割込み発生時)といったタイミングにおいて実施してもよい。詳細は図14で説明する。
S1301では、CPU102が、データサイズごとに「カウンターの値」と「WAF」と「データサイズ」を乗算し、データサイズごとの実書き込みデータサイズを算出する。例えば、当該eMMCの4kBのWAFに該当する値が、図2に示すうちの8.0という値であり、4kB_Counterの値が500というカウンター値であった場合を考える。この場合の実書き込みデータサイズは、500に8と4を乗じた16000kByteとなる。こうした計算をデータサイズごとに行う。
S1302では、CPU102が、S1301で実施したデータサイズごとの計算結果を累積書き込みデータサイズ(Dtotal)に加算する。例えば、S1301の計算結果が72000kByte、それまでのDtotalが100000kByteの場合、S1302で新たに求められるDtotalは172000kByteになる。
S1303では、CPU102が、データサイズごとのカウンターをすべてリセット(カウント結果を0に初期化)する。S1303を終えると、実書き込みデータサイズ加算処理1300を終了する。
次に図14を用いて、図11のS1114、S1115と異なるタイミングで実書き込みデータサイズ処理を実行する際の実行タイミングを説明する。ここでは、例として3つのタイミングを説明する。なお、図11において、S1114、S115を実行した上で、図14の各タイミングで実書き込みデータサイズ処理を実行してもよい。または、図11において、S1114、S1115を実行しないで、図14の各タイミングで実書き込みデータサイズ処理を実行してもよい。
図14は、本実施例における実書き込みデータサイズ加算処理1300の実施タイミングを表すフローチャート(A)〜(C)である。
図14の(A)は、タイマ割込み処理の中で、実書き込みデータサイズ加算処理1400を実施するためのフローチャートである。タイマは一般的なマイコンやSOCが備えるものであり、設定された時間が経過(カウント値が満了)するとCPUに対して、割込みを発行するモジュールである。本実施例では、SoC101が備えるタイマ117を用いる。
S1401では、CPU102がタイマ117からの割込み信号を待つ。CPU102がタイマ117からの割込み信号を検知すると、CPU102はS1402を実行する。S1402は、図7で説明した実書き込みデータサイズ加算処理1300であるため、ここでは説明を省略する。S1402を終えるとタイム割り込み処理を終了する。
図14の(B)は、電力状態移行処理の中で、実書き込みデータサイズ加算処理1300を実施するためのフローチャートである。
S1411では、CPU102がシステム全体として電力状態移行条件を満たしているかを判断する。通常状態(スタンバイ状態、アイドル状態とも呼ばれる)から、通常状態よりも消費電力が低い節電状態(スリープ状態、休止状態)へ移行する際は、移行条件を満たしている必要がある。例えば、プリントジョブやスキャンジョブを実施している最中に節電状態に移行すると、ジョブが中断してしまう。そのため、これらのジョブ中は節電状態には移行しない(すなわち、電力状態移行条件を満たしていない)、とCPU102は判断する。電力状態移行条件の詳細については、本実施例には直接関与しないため、詳細な説明は省略する。
CPU102がシステム全体として電力状態移行条件を満たしていると判断した場合、S1412が実行される。S1412は、図13で説明した実書き込みデータサイズ加算処理1300であるため、ここでは説明を省略する。
S1413では、CPU102がシステムを節電状態に移行させる。具体的には、例えば、プリンタ109やスキャナ110の電源をOFFにする制御を実施する。S1413を終えると電力状態移行処理を終了する。
図14の(C)は、シャットダウン処理の中で、実書き込みデータサイズ加算処理1300を実施するためのフローチャートである。
S1421では、CPU102がメインスイッチ118からのオフ割込み信号を待つ。CPU102がメインスイッチ118からのオフ割込み信号を検知すると、CPU102はS1422を実行する。
S1422は、図7で説明した実書き込みデータサイズ加算処理1300であるため、ここでは説明を省略する。
S1423では、CPU102がシステムをシャットダウン状態に移行させる。具体的には、例えば、RAM106に展開されたシステムデータのうち必要なものをROM107に書き出す処理を行う。S1423を終えるとシャットダウン処理を終了する。
以上本実施例によれば、メインSoC101からeMMC112に書き込む際のデータサイズに応じて適切なWAFを選択し、実書き込みデータサイズを計算することが可能になる。その結果、従来よりも正確にホストシステムが実書き込みデータサイズを推定することが可能になる。
さらに本実施例によれば、eMMCへの書き込み処理発生タイミングでは書き込みサイズのカウントアップ処理のみを行い、実書き込みデータの計算は前記カウント値を用いて、別のタイミングで実施するようにしている。その結果、CPU負荷が局所的に集中することを軽減することが可能になる。
(実施例4)
実施例4では、eMMC書き込み処理1100において、書き込みデータサイズカウントアップ処理S1112を、DMA転送の完了割り込み受信(S410)後に実施していた。実施例2では、DMA転送の完了割り込み受信に先だって、書き込みデータサイズカウントアップ処理を実施するフローを示す。
なお、実施例1における図2、図3、図5、図7および実施例3における図10、図12、図13、図14、は実施例4においても同様であるため、ここでは説明を省略する。
図15は、実施例4におけるeMMC書き込み処理1000のフローチャートである。eMMC書き込み処理1000は、メインSoC101がeMMC112に対してデータを書き込むための処理であり、CPU102、DMAC105、コントローラ114が連携して実施される。図11と同様の構成については、同様の符号を付して説明を省略する。なお、図15は、図11とS1511、S1513の処理が異なる。
S403では、CPU102がDMAC105のイネーブルレジスタをオンにすることで、DMAC105によるDMA転送をスタートさせる。S403を終えるとS1511に遷移する。
S1511では、S401で生成されたディスクリプタテーブル500の内容に基づいて、CPU102がカウントアップ処理を実行する。S1511は、図11のS1112に対応し、図12で説明した書き込みデータサイズカウントアップ処理1200と同様である。
S412では、CPU102がS1010で受けた割り込みの種別を判断する。異常割り込みだったと判断されれば、S1513が実行される。異常割り込みでなければ、S1114に遷移する。
S1513では、CPU102がS1511であらかじめカウントアップしておいたデータサイズに対して、カウントダウンする処理を行う。S1513の詳細は図16を用いて後述する。
S414は、再転送などのリカバリ動作を実行したり、異常状態をUI108に表示したりする。S413は本発明に直接関与しないため、詳細は省略する。その後は、図11と同様であるため説明を省略する。
なお、本実施例においても、実施例3の図14で説明したように実書き込みデータサイズ加算処理1300の実施タイミングを異なるタイミングとしてもよい。具体的には、S1115以外に、システムのシャットダウン時、スリープ(節電状態)移行時、一定時間ごと(タイマ割込み発生時)といったタイミングで実施してもよい。
図16は、実施例4における書き込みデータサイズカウントダウン処理1600のフローチャートである。書き込みデータサイズカウントダウン処理1600は、eMMC書き込み処理1500のS1513において、CPU102によって実行される処理である。
S1601では、CPU102がホスト書き込みデータサイズ(Dsize1)に基づいて、デクリメントすべきカウンターを判断する。ホスト書き込みデータサイズ(Dsize1)は図5で説明したディスクリプタテーブル500の内容にて判断可能である。
S1602は、S1601でホスト書き込みデータサイズ(Dsize1)が4kBであると判断された場合に実行される。S1602では、CPU102が4kB_Counter(4kByte用のカウンター)をデクリメントする。
S1603は、S1601でホスト書き込みデータサイズ(Dsize1)が8kBであると判断された場合に実行される。S1603では、CPU102が8kB_Counter(8kByte用のカウンター)をデクリメントする。
S1604は、S1601でホスト書き込みデータサイズ(Dsize1)が16kBであると判断された場合に実行される。S1104では、CPU102が16kB_Counter(16kByte用のカウンター)をデクリメントする。
S1605は、S1101でホスト書き込みデータサイズ(Dsize1)が32kBであると判断された場合に実行される。S1605では、CPU102が32kB_Counter(32kByte用のカウンター)をデクリメントする。
S1606は、S1601でホスト書き込みデータサイズ(Dsize1)が64kBであると判断された場合に実行される。S1106では、CPU102が64kB_Counter(64kByte用のカウンター)をデクリメントする。
なお、本実施例では4kByte用〜64kByte用のカウンターを用意する例を説明したが、システム構成に応じて、これら以外のデータサイズのカウンターを用意しカウントしてもよい。
以上本実施例によれば、メインSoC101からeMMC112に書き込む際のデータサイズに応じて適切なWAFを選択し、実書き込みデータサイズを計算することが可能になる。また、CPU102がDMA転送の完了を待たずに、実書き込みデータサイズの計算を実施できる。その結果、従来よりも正確にホストシステムが実書き込みデータサイズを推定することが可能になるとともに、CPU102の実書き込みデータサイズ計算による処理時間のオーバーヘッドを小さくできる。
さらに本実施例によれば、eMMCへの書き込み処理発生タイミングでは書き込みサイズのカウントアップ処理もしくはカウントダウン処理のみを行い、実書き込みデータの計算は前記カウント値を用いて、別のタイミングで実施するようにしている。その結果、CPU負荷が局所的に集中することを軽減することが可能になる。
(その他の実施形態)
本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施例の機能を実現するソフトウェア(プログラム)をネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム又は装置のコンピュータ(又はCPUやMPU等)がプログラムコードを読み出して実行する処理である。この場合、そのコンピュータプログラム、及び該コンピュータプログラムを記憶した記憶媒体は本発明を構成することになる。

Claims (19)

  1. データを記憶する記憶手段と、
    前記記憶手段にデータの書き込みを指示する書き込み制御手段と、
    前記書き込み制御手段により書き込みが指示されたデータサイズに基づいて、前記記憶手段に実際に書き込まれると推定されるデータサイズを算出する算出手段と、
    前記算出手段により算出されたデータサイズの累計に基づいて通知をする通知手段と、
    を有することを特徴とする情報処理装置。
  2. 前記書き込み制御手段により書き込みが指示されるデータサイズに対応する前記記憶手段に書き込まれると推定されるデータサイズを求めるための数値を選択する選択手段をさらに有し、
    前記算出手段は、前記選択手段により選択された前記数値に基づいて、前記記憶手段に書き込まれたと推定されるデータサイズを求めることを特徴とする請求項1に記載の情報処理装置。
  3. 前記数値は、前記書き込み制御手段により書き込みが指示されたデータサイズに基づいて異なる値をとることを特徴とする請求項2に記載の情報処理装置。
  4. 前記選択手段は、前記記憶手段の種類に基づいて、前記数値を選択することを特徴とする請求項2に記載の情報処理装置。
  5. 前記記憶手段の種類は、前記記憶手段のプロダクトネームであることを特徴とする請求項4に記載の情報処理装置。
  6. 前記記憶手段は、前記書き込み制御手段により書き込みが指示されるデータサイズと、前記記憶手段に書き込まれると推定されるデータサイズを求めるための数値とを対応づけて記憶することを特徴とする請求項1乃至5のいずれか1項に記載の情報処理装置。
  7. 前記算出手段により算出されたデータサイズの累計を閾値と比較する第1比較手段をさらに有し、
    前記通知手段は前記比較手段による比較の結果に基づいて、前記通知を行うことを特徴とする請求項1乃至6のいずれか1項に記載の情報処理装置。
  8. 前記算出手段は、前記書き込み制御手段の指示に基づいて前記記憶手段にデータが書き込まれる度に、当該記憶手段に書き込まれたと推定されるデータサイズを算出することを特徴とする請求項1乃至7のいずれか1項に記載の情報処理装置。
  9. 前記書き込みが指示されたデータサイズの累計を算出する累計算出手段と、
    前記書き込みが指示されたデータサイズの累計を閾値と比較する第2比較手段と、を更に有し、
    前記第2比較手段による比較の結果に基づいて、前記累計算出手段は、前記累計算出手段により算出されたデータサイズの累計を算出することを特徴とする請求項1乃至7のいずれか1項に記載の情報処理装置。
  10. 時間をカウントするカウント手段と、
    前記カウント手段によってカウントされた時間が閾値を超えると、割り込み信号を受け付ける受信手段と、
    前記書き込みが指示されたデータサイズの累計を算出する累計算出手段を更に有し、
    前記受信手段による割込み信号の受信に基づいて、前記累計算出手段は、前記累計算出手段により算出されたデータサイズの累計を算出することを特徴とする請求項1乃至7のいずれか1項に記載の情報処理装置。
  11. 前記情報処理装置を第1電力状態から前記第1電力状態よりも低い電力状態である第2電力状態に遷移させる移行手段と、
    前記書き込みが指示されたデータサイズの累計を算出する累計算出手段を更に有し、
    前記第1電力状態から前記第2電力状態への遷移に基づいて、前記累計算出手段は、前記累計算出手段により算出されたデータサイズの累計を算出することを特徴とする請求項1乃至7のいずれか1項に記載の情報処理装置。
  12. 前記情報処理装置の電力をオフするシャットダウン処理を受け付ける受け付け手段と、
    前記書き込みが指示されたデータサイズの累計を算出する累計算出手段を更に有し、
    前記シャットダウン処理に基づいて、前記累計算出手段は、前記累計算出手段により算出されたデータサイズの累計を算出することを特徴とする請求項1乃至7のいずれか1項に記載の情報処理装置。
  13. 前記通知手段は、前記記憶手段の交換が必要であることの通知であることを特徴とする請求項1乃至12のいずれか1項に記載の情報処理装置。
  14. 前記通知手段は、前記記憶手段の交換を促すメッセージの表示された画面を表示手段に表示することで前記通知を行うことを特徴とする請求項1乃至3のいずれか1項に記載の情報処理装置。
  15. 前記記憶手段は不揮発性のNANDフラッシュメモリであることを特徴とする請求項1乃至14のいずれか1項に記載の情報処理装置。
  16. 画像データを処理する画像処理手段をさらに有し、
    前記記憶手段は前記画像処理手段により処理された画像データを記憶することを特徴とする請求項1乃至15のいずれか1項に記載の情報処理装置。
  17. 前記画像処理手段により生成された前記画像データに基づいて、シートに画像を形成する画像形成手段をさらに有することを特徴とする請求項16に記載の情報処理装置。
  18. データを記憶する不揮発性の記憶手段と、
    前記記憶手段へのデータの書き込みを指示する書き込み制御手段と、を有する情報処理装置の制御方法において、
    前記書き込み制御手段により書き込みが指示されたデータサイズに基づいて、前記記憶手段に書き込まれたと推定されるデータサイズを算出する算出工程と、
    前記算出工程において算出された前記データサイズの累計に基づいて通知をおこなう通知工程と、を有することを特徴とする情報処理装置の制御工程。
  19. 請求項18に記載の情報処理装置の制御工程をコンピュータに実行させるためのコンピュータプログラム。
JP2019025606A 2018-10-25 2019-02-15 情報処理装置および情報処理装置の制御方法、ならびにプログラム Active JP7313840B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US16/780,756 US11435949B2 (en) 2019-02-15 2020-02-03 Information processing apparatus and method for calculating a data size estimated to be written to a storage based on a write data size

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2018201269 2018-10-25
JP2018201269 2018-10-25

Publications (3)

Publication Number Publication Date
JP2020071855A true JP2020071855A (ja) 2020-05-07
JP2020071855A5 JP2020071855A5 (ja) 2022-02-18
JP7313840B2 JP7313840B2 (ja) 2023-07-25

Family

ID=70547922

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019025606A Active JP7313840B2 (ja) 2018-10-25 2019-02-15 情報処理装置および情報処理装置の制御方法、ならびにプログラム

Country Status (1)

Country Link
JP (1) JP7313840B2 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015505078A (ja) * 2012-02-08 2015-02-16 株式会社日立製作所 複数の不揮発性の半導体記憶媒体を有し、ホットデータを長寿命記憶媒体に配置しコールドデータを短寿命記憶媒体に配置するストレージ装置、及び、記憶制御方法
JP2015197832A (ja) * 2014-04-02 2015-11-09 コニカミノルタ株式会社 情報処理装置及びフラッシュメモリの制御方法
JP2017154466A (ja) * 2016-03-04 2017-09-07 キヤノン株式会社 印刷装置及び印刷装置の制御方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015505078A (ja) * 2012-02-08 2015-02-16 株式会社日立製作所 複数の不揮発性の半導体記憶媒体を有し、ホットデータを長寿命記憶媒体に配置しコールドデータを短寿命記憶媒体に配置するストレージ装置、及び、記憶制御方法
JP2015197832A (ja) * 2014-04-02 2015-11-09 コニカミノルタ株式会社 情報処理装置及びフラッシュメモリの制御方法
JP2017154466A (ja) * 2016-03-04 2017-09-07 キヤノン株式会社 印刷装置及び印刷装置の制御方法

Also Published As

Publication number Publication date
JP7313840B2 (ja) 2023-07-25

Similar Documents

Publication Publication Date Title
JP5460167B2 (ja) 情報処理装置、情報処理装置の制御方法及び制御プログラム
JP5780769B2 (ja) データ処理装置、その制御方法およびプログラム、並びに記憶媒体
KR101636184B1 (ko) 화상 형성 장치, 화상 형성 장치의 제어 방법 및 컴퓨터 판독가능 기록매체
US20150012769A1 (en) Information processing apparatus capable of reducing power consumption, and control method and storage medium therefor
JP2011095916A (ja) 電子機器
KR100648665B1 (ko) 화상형성장치 및 화상형성장치 제어방법
JP6164938B2 (ja) 画像形成装置及びその制御方法、並びにプログラム
JP4333717B2 (ja) 画像形成装置
JP2013126717A (ja) 画像形成装置および画像形成方法
US8775768B2 (en) Information processing apparatus and method of controlling the same
US20170041482A1 (en) Printing apparatus having plurality of power states and control method therefor
JP7313840B2 (ja) 情報処理装置および情報処理装置の制御方法、ならびにプログラム
JP5130871B2 (ja) 画像形成装置
US11435949B2 (en) Information processing apparatus and method for calculating a data size estimated to be written to a storage based on a write data size
JP6579324B2 (ja) 画像形成装置およびデータ処理プログラム
CN104754161A (zh) 打印装置以及打印装置的控制方法
JP6641952B2 (ja) 印刷システム
JP6842641B2 (ja) 画像形成装置
JP2016076249A (ja) 画像処理装置、その制御方法、及びプログラム
JP6410055B2 (ja) 画像形成装置およびデータ処理プログラム
US20200012455A1 (en) Memory system and electronic apparatus
JP2012070028A (ja) 画像形成装置
JP2021100182A (ja) 画像形成装置および画像形成装置の制御方法
JP2021093076A (ja) 情報処理装置、その制御方法、およびプログラム
JP2021179787A (ja) 情報処理装置、その制御方法、およびプログラム

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220209

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220209

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20221214

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230131

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230329

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: 20230613

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230712

R151 Written notification of patent or utility model registration

Ref document number: 7313840

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151