JP2021117740A - 情報処理装置、その制御方法、及びプログラム - Google Patents

情報処理装置、その制御方法、及びプログラム Download PDF

Info

Publication number
JP2021117740A
JP2021117740A JP2020010756A JP2020010756A JP2021117740A JP 2021117740 A JP2021117740 A JP 2021117740A JP 2020010756 A JP2020010756 A JP 2020010756A JP 2020010756 A JP2020010756 A JP 2020010756A JP 2021117740 A JP2021117740 A JP 2021117740A
Authority
JP
Japan
Prior art keywords
data
command
information processing
control unit
storage
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.)
Pending
Application number
JP2020010756A
Other languages
English (en)
Inventor
昭浩 松本
Akihiro Matsumoto
昭浩 松本
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 JP2020010756A priority Critical patent/JP2021117740A/ja
Publication of JP2021117740A publication Critical patent/JP2021117740A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Record Information Processing For Printing (AREA)
  • Power Sources (AREA)

Abstract

【課題】製品コストを増大させることなく、瞬断に起因する重要なデータの消失を防止することができる情報処理装置を提供する。【解決手段】MFP100は、キャッシュメモリにデータを保持し、保持したデータをFUA領域管理テーブル600に登録された特定の記憶領域に書き込む書き込み要求を受け付けた場合、FUA系コマンドを発行する。【選択図】図8

Description

本発明は、情報処理装置、その制御方法、及びプログラムに関する。
HDDやSSD等のストレージデバイスを備える情報処理装置が知られている。ストレージデバイスは、揮発性のキャッシュメモリ及び当該キャッシュメモリより書き込み速度が遅い不揮発性の記録媒体を備える。情報処理装置では、情報処理装置の制御部が、受け付けた書き込み要求に従って、ストレージデバイスにデータを書き込ませる書き込みコマンドを発行する。ストレージデバイスは、制御部から受信した書き込みコマンドに従って、例えば、データをキャッシュメモリに一時的に保持する。これにより、制御部は、書き込み速度が遅い記録媒体へのデータの書き込みの完了を待つことなく、次のデータの書き込みを指示可能となる。キャッシュメモリに保持されたデータは、不揮発性の記録媒体の記憶領域のうち書き込みコマンドにて指定された記憶領域に任意のタイミングで書き込まれる。
ところで、情報処理装置では、上述したデータの書き込み処理を実行している最中に瞬断が発生すると、キャッシュメモリに保持されたデータが不揮発性の記録媒体に書き込まれる前に、キャッシュメモリへの電力の供給が停止され、当該データが消失してしまう。瞬断の発生に起因して情報処理装置の重要なデータ、例えば、情報処理装置のシステムを動作させるためのシステム関連データが消失すると、情報処理装置が起動不能状態に陥るといった不具合が生じる。
これに対し、従来の情報処理装置には、大容量のコンデンサが設けられる(例えば、特許文献1,2参照)。情報処理装置は、瞬断が発生した際に、上記コンデンサに蓄積された電力をストレージデバイスに供給し、キャッシュメモリに保持されたデータを記録媒体へ書き込む猶予時間を確保する。
特開平6−231053号公報 特開2015−170332号公報
しかしながら、上述したように、情報処理装置に大容量のコンデンサを設けると、部品点数が増え、その結果、製品コストが増大してしまうという問題が生じる。
本発明の目的は、製品コストを増大させることなく、瞬断に起因する重要なデータの消失を防止することができる情報処理装置、その制御方法、及びプログラムを提供することにある。
上記目的を達成するために、本発明の情報処理装置は、揮発性の保持手段及び不揮発性の格納手段を備えるストレージデバイスを備える情報処理装置であって、受け付けた書き込み要求に従ってデータを前記格納手段に書き込ませる書き込みコマンドを発行する発行手段を備え、前記保持手段に前記データを保持し且つ前記格納手段における予め登録された特定の記憶領域に前記保持したデータを書き込ませる書き込み要求を受け付けた場合、前記発行手段は、前記保持手段に前記データを保持させない書き込みコマンドを発行することを特徴とする。
本発明によれば、製品コストを増大させることなく、瞬断に起因する重要なデータの消失を防止することができる。
本発明の実施の形態に係る情報処理装置としてのMFPの構成を概略的に示す構成図である。 図1のSATAホスト制御部及びSATAブリッジ制御部の接続を示す図である。 図1のSATAホスト制御部及びSATAブリッジ制御部の構成を概略的に示す構成図である。 図1のメインCPUが生成するディスクリプタ テーブルの一例を示す図である。 図3のFlashメモリに格納されるコマンド変換テーブルの一例を示す図である。 図3のFlashメモリに格納されるFUA領域管理テーブルを説明するための図である。 図1のSATAホスト制御部によって実行されるコマンド変換処理の手順を示すフローチャートである。 本実施の形態におけるFUA系コマンドの発行を説明するための図である。 図1のSATAブリッジ制御部が受信する拡張コマンドを説明するための図ある。
以下、本発明の実施の形態について図面を参照しながら詳述する。なお、本実施の形態では、情報処理装置としてのMFPに本発明を適用した場合について説明するが、本発明はMFPに限られない。例えば、スマートフォン、タブレット端末、PCといったキャッシュメモリを備えるストレージデバイスを備える装置に本発明を適用してもよい。
図1は、本発明の実施の形態に係る情報処理装置としてのMFP100の構成を概略的に示す構成図である。図1において、MFP100は、メインコントローラ101、スキャナ部110、ストレージ113,114(ストレージデバイス)、パネル部116、及び印刷部118を備える。メインコントローラ101は、スキャナ部110、ストレージ113,114、パネル部116、及び印刷部118と接続されている。メインコントローラ101は、メインCPU102、メモリ制御部103、Flashメモリ104、DRAM105、LANI/F制御部106、リーダI/F部109、SATAホスト制御部111、及びSATAブリッジ制御部112を備える。メインコントローラ101は、更にパネルI/F部115、ビデオ出力I/F部117、電源制御部119、及び画像処理部121を備える。なお、DRAMは、Dynamic Random Access Memoryの略称である。メインCPU102、メモリ制御部103、Flashメモリ104、DRAM105、LANI/F制御部106、リーダI/F部109、SATAホスト制御部111、パネルI/F部115、ビデオ出力I/F部117、電源制御部119、及び画像処理部121は、メインバス120を介して互いに接続されている。SATAブリッジ制御部112は、SATAホスト制御部111と接続されている。
MFP100は、画像形成処理を行う画像形成装置である。メインCPU102は、MFP100のシステム制御や演算処理を行う。メモリ制御部103は、各種記憶デバイスに対するデータの入出力制御やDMA(Direct Memory Access)制御を行う。Flashメモリ104は、書き換え可能な不揮発性の記憶デバイスである。Flashメモリ104は、MFP100のシステム全体の制御プログラムや制御パラメータ等を格納する。DRAM105は、DDR(Double Data Rate)メモリに代表される揮発性の書き換え専用の記憶デバイスである。DRAM105は、メインCPU102の作業領域、印刷データの格納領域、各種テーブルの格納領域等として用いられる。LANI/F制御部106は、ネットワーク107を介して接続されたホストコンピュータ108等の外部装置とのデータ通信を制御する。例えば、LANI/F制御部106は、ホストコンピュータ108から画像データを取得する。LANI/F制御部106は、TCP/IP(Transmission Control Protocol/Internet Protocol)に対応する。
リーダI/F部109は、メインコントローラ101とスキャナ部110との通信を制御する。例えば、リーダI/F部109は、スキャナ部110が原稿を読み取って生成した画像データをスキャナ部110から取得する。MFP100は、当該画像データを印刷することでコピー機能を実現する。SATAホスト制御部111は、暗号モジュールに関するセキュリティ要件の仕様を規定する所定の規格、例えば、SATA規格に準拠するデバイスとの通信を制御する。
SATAブリッジ制御部112は、SATA規格に準拠し、データの暗号化・復号化機能やRAID(Redundant Arrays Of Inexpensive Disk)制御機能を備える。SATAブリッジ制御部112の上流側には、SATAホスト制御部111が接続されている。また、SATAブリッジ制御部112の下流側には、複数のホストI/F、例えば、後述する図2のSATA−IP204,205が設けられている。SATA−IP204にはストレージ113が接続され、SATA−IP205にはストレージ114が接続されている。本実施の形態では、SATAホスト制御部111及びSATAブリッジ制御部112は、それぞれ独立したASICとしてメインコントローラ101に搭載されている。ストレージ113及びストレージ114は、HDDやSSD(Solid State Drive)等の不揮発性の記憶デバイスである。ストレージ113は、揮発性のキャッシュメモリ113a(保持手段)及び不揮発性の記録媒体113b(格納手段)を備える。ストレージ114は、揮発性のキャッシュメモリ114a(保持手段)及び不揮発性の記録媒体114b(格納手段)を備える。
パネルI/F部115は、パネル部116との通信を制御する。パネル部116は、MFP100のUIとして機能する。ユーザは、パネル部116に表示された設定画面やボタン等を操作することにより、MFP100に関する設定を行い、また、MFP100の状態を確認する。ビデオ出力I/F部117は、印刷部118に対するコマンドやステータスの通信を制御する。印刷部118は、給紙部及び排紙部(不図示)を備える。印刷部118は、ビデオ出力I/F部117から取得したコマンドに基づいて、上記給紙部から給紙された用紙に画像を印刷し、印刷済の用紙を排紙部に出力する。電源制御部119は、省電力モードのレベルに応じてメインコントローラ101を構成する各ユニットに対する電力の供給を制御する。メインバス120は、PCIe(PCI Express)やASICの内部バス等を含む。画像処理部121は、LANI/F制御部106やリーダI/F部109から取得した画像データに対して画像処理を施す。
図2は、図1のSATAホスト制御部111及びSATAブリッジ制御部112の接続を示す図である。図2のメインASIC201は、メインコントローラ101のシステム全体を制御する中心的なASICであり、SATAホスト制御部111等を含む。SATAホスト制御部111は、SATA−IP(Intellectual Property)202をホストIFとして持つ。サブASIC112は、SATAブリッジ制御部112であり、メインコントローラ101上に独立したIC(Integrated Circuit)として実装されている。なお、図2では、SATAブリッジ制御部112をASIC化したサブASIC112に対してSATAブリッジ制御部112と同じ符号を付している。SATAブリッジ制御部112は、その上流側にSATA−IP203を備え、また、その下流側にSATA−IP204,205を持つ。SATAブリッジ制御部112の上流側において、SATA−IP203には、SATAI/FであるH−Host−IF206を介してSATAホスト制御部111が接続される。また、SATAブリッジ制御部112の下流側において、SATA−IP204には、SATA I/FであるB−Host1−IF207を介してストレージ113が接続され、SATA−IP205には、SATA I/FであるB−Host2−IF208を介してストレージ114が接続される。SATA−IP203〜SATA−IP205は、SATAリンク層及び物理層で構成される。SATA−IP203〜SATA−IP205は、各種SATAレジスタの設定に応じて、上述したSATAI/Fを介して接続されるデバイスへSATA規格に準拠するコマンドを発行する。SATA規格に準拠するコマンドは、例えば、WRITE DMA EXT、WRITE DMA、WRITE DMA FUA EXTである。さらに、SATA−IP203〜SATA−IP205は、上述したSATAI/Fを介して接続されるデバイスからステータス情報を受信する。
また、SATAブリッジ制御部112は、メインボード(不図示)上に実装された電源制御部119と制御信号線214にて接続されている。電源制御部119は、メインコントローラ101に含まれる各機能モジュールやメインコントローラ101に接続される各構成要素への電力の供給を制御する。例えば、電源制御部119は、電源ライン210を介してメインASIC201へ電力を供給し、電源ライン211を介してSATAブリッジ制御部112へ電力を供給する。さらに、電源制御部119は、電源ライン212を介してストレージ113へ電力を供給し、電源ライン213を介してストレージ114へ電力を供給する。また、電源制御部119は、制御信号線214を介してSATAブリッジ制御部112から受信した制御信号に基づいて、ストレージ113,114への電力の供給のON/OFFを制御する。
図3は、図1のSATAホスト制御部111及びSATAブリッジ制御部112の構成を概略的に示す構成図である。
図3において、SATAホスト制御部111は、図2のSATA−IP202の他に、HCPU301、メモリ制御部302、及びFlashメモリ303(管理テーブル格納手段)を備える。SATAホスト制御部111は、更にSRAM304、割り込み制御部305、レジスタH306、DMAC307、及びバスブリッジ回路309を備える。SATA−IP202、HCPU301、メモリ制御部302、Flashメモリ303、SRAM304、割り込み制御部305、レジスタH306、DMAC307、及びバスブリッジ回路309は、Hバス308を介して互いに接続されている。
HCPU301は、SATAホストコントローラとしての全般的な制御を行う。例えば、HCPU301は、SATAコマンドの発行処理、送受信データの転送処理、及びステータス情報の受信処理の実行を制御する。メモリ制御部302は、Flashメモリ303やSRAM(Static Random Access Memory)304に対するデータの読み書きを制御する。Flashメモリ303は、ブートプログラムやSATAコントローラの制御プログラムを格納する。SRAM304は、HCPU301の作業領域、制御テーブルやパラメータの格納領域、及びデータバッファ等として使用される。なお、本実施の形態では、SATAホスト制御部111が、1つのSRAM304を備える構成について説明するが、この構成に限られず、SATAホスト制御部111は、それぞれ独立して制御される複数のSRAMを備えていても良い。
割り込み制御部305は、HCPU301に対して割り込み信号を出力する。レジスタH306は、制御パラメータやステータス情報等を一時的に記憶するためのレジスタである。DMAC(Direct Memory Access Controller)307は、起動した際に、HCPU301に指定された転送元や転送先における先頭アドレス及びサイズに基づいて、所定のメモリ間のデータ転送を制御する。Hバス308は、バスコントローラを含む。バスブリッジ回路309は、メインバス120及びHバス308間のバスプロトコルを相互に変換するバスブリッジである。これにより、DMAC307は、メインバス120に接続されているDRAM105にアクセス可能となる。
また、図3において、SATAブリッジ制御部112は、図2のSATA−IP203〜SATA−IP205の他に、BCPU310、メモリ制御部311、Flashメモリ312、SRAM313、レジスタB314、電源I/F部315、及び割り込み制御部316を備える。SATA−IP203〜SATA−IP205、BCPU310、メモリ制御部311、Flashメモリ312、SRAM313、レジスタB314、電源I/F部315、及び割り込み制御部316は、Bバス317を介して互いに接続されている。
BCPU310は、SATAコントローラとしての全般的な制御を行う。例えば、BCPU310は、SATAコマンドの発行処理、送受信データの転送処理、及びステータス情報の受信処理の実行を制御する。メモリ制御部311は、Flashメモリ312やSRAM313に対するデータの読み書きを制御する。Flashメモリ312は、不揮発性の記憶デバイスである。Flashメモリ312は、ブートプログラム、ミラーリング処理プログラム、SATAコントローラとしての制御プログラム等を格納する。SRAM313は、BCPU310の作業領域、制御テーブルやパラメータを格納する領域、及びデータバッファ等に使用される。なお、本実施の形態では、SATAブリッジ制御部112が、1つのSRAM313を備える構成について説明するが、この構成に限られず、SATAブリッジ制御部112は、それぞれ独立して制御される複数のSRAMを備えていても良い。
レジスタB314は、制御パラメータやステータス情報等の一時的な記憶や割り込み信号318の発行に利用されるレジスタである。電源I/F部315は、電源制御部119と制御信号線214にて接続され、例えば、SSD113,114の電源ON/OFF制御信号を発行する。割り込み制御部316は、BCPU310がSATA−IP204,205等から割り込み信号を受信する制御、BCPU310がSATA−IP204,205等へ割り込み信号を送信する制御を行う。Bバス317は、バスコントローラを含む。
次に、メインCPU101がSATAホスト制御部111にデータの書き込み要求を行う処理について説明する。まず、メインCPU101は、図4のディスクリプタ テーブル400を作成する。ディスクリプタ テーブル400は、複数のコマンドテーブル1c〜Ncと、複数のデータテーブル1d〜Ndを備える。各コマンドテーブル1c〜Ncは、LBAレジスタ値401、Sector Countレジスタ値402、Commandレジスタ値403、及びEOF404等を含む。LBAレジスタ値401には、SSD113又はSSD114の記憶領域のうち書き込み要求に従った書き込み処理にて使用される記憶領域の開始アドレスが設定される。Sector Countレジスタ値402には、上記書き込み処理にて使用される記憶領域のセクタ数が設定される。Commandレジスタ値403には、上記書き込み要求に従って実行されるコマンドの種別を示すコマンド番号が設定される。EOF404には、ディスクリプタ テーブル400におけるコマンドテーブルの終端を示す値が設定される。コマンドテーブルにおけるEOF404の値が「0」である場合、ディスクリプタ テーブル400において当該コマンドテーブルの次のコマンドテーブルが存在する。一方、コマンドテーブルにおけるEOF404の値が「1」である場合、当該コマンドテーブルがディスクリプタ テーブル400において最後のコマンドテーブルとなる。
データテーブル1dは、コマンドテーブル1cに対応し、データテーブル2dは、コマンドテーブル2cに対応し、データテーブルNdは、コマンドテーブルNcに対応する。データテーブル1d〜データテーブルNdには、EOFや、対応するコマンドテーブルに示されたコマンドの実行に必要となるデータの格納場所を示す開始アドレス及びサイズが設定される。本実施の形態では、コマンドテーブルと同様に、ディスクリプタ テーブル400において最後のデータテーブルであるか否かがコマンドテーブルのEOFの値によって判定される。
次いで、メインCPU101は、作成したディスクリプタ テーブル400をSATAホスト制御部111におけるSRAM304に格納し、書き込み要求を示す割り込み信号をSATAホスト制御部111へ送信する。このようにして、メインCPU101からSATAホスト制御部111に書き込み要求が行われる。
SATAホスト制御部111は、SRAM304に格納されたディスクリプタ テーブル400から一つのコマンドテーブルを読み出し、このコマンドテーブル及びこのコマンドテーブルに対応するデータテーブルに基づいてWコマンドを発行する。また、SATAホスト制御部111は、発行したWコマンドをSATAブリッジ制御部112へ送信する。SATAホスト制御部111は、上述した処理をディスクリプタ テーブル400における先頭のコマンドテーブルから順に実行する。SATAブリッジ制御部112は、受信したWコマンドをストレージ113やストレージ114へ送信する。
SATAブリッジ制御部112がWコマンドを、例えば、ストレージ113へ送信した場合、ストレージ113は、受信したWコマンドに従ってデータを記録媒体113bに書き込む。受信したWコマンドがWRITE DMA EXTやWRITE DMAに基づいて生成されたコマンドである場合、ストレージ113は、書き込み速度が記録媒体113bより速いキャッシュメモリ113aに書き込み対象となるデータを一時的に保持する。これにより、SATAホスト制御部111は、書き込み速度が比較的遅い記録媒体113bへの書き込みの完了を待たずに、次のデータの書き込みを指示することができる。ストレージ113において、キャッシュメモリ113aに保持されたデータは、MFP100が電源OFF状態に移行してもデータを保持可能な記録媒体113bに任意のタイミングで書き込まれる。
例えば、MFP100では、ストレージ113にデータを書き込む処理を実行している最中に瞬断が発生すると、キャッシュメモリ113aに保持されたデータが記録媒体113bに書き込まれる前に、キャッシュメモリ113aへの電力の供給が停止される。その結果、当該データが消失してしまう。瞬断の発生に起因して、例えば、MFP100のシステムを動作させるためのシステム関連データが消失すると、MFP100が起動不能状態に陥るといった不具合が生じる。これに対し、従来の情報処理装置には、キャッシュメモリに保持されたデータを記録媒体へ書き込む猶予時間を確保するための大容量のコンデンサが設けられる。しかしながら、上述したように、情報処理装置に大容量のコンデンサを設けると、部品点数が増え、その結果、製品コストが増大してしまうという問題が生じる。
また、瞬断対策の別の方法として、FUA系コマンドが使用される。FUA系コマンドは、SATA規格で定義された書き込みコマンドであり、データをキャッシュメモリに保持させずに記録媒体に直接書き込ませる書き込みコマンドである。具体的に、FUA系コマンドは、WRITE DMA FUA EXT、WRITE MULTIPLE FUA EXT、WRITE DMA QUEUED FUA EXTである。汎用的なOS(Operating System)では、OS管理のシステム領域の全てをFUA対象領域に設定すると、OS管理のシステム領域への書き込み処理の全てにおいてFUA系コマンドが使用され、瞬断に起因するデータの消失を防止可能となる。しかし、OS管理のシステム領域は比較的大きいので、OS管理のシステム領域への書き込み処理の全てにおいてFUA系コマンドが使用されると、情報処理装置における書き込みパフォーマンスが著しく低下してしまう。このため、OS管理のシステム領域のうち、特定の領域、例えば、システムの動作に関連する重要なデータが格納される記憶領域への書き込み処理にのみFUA系コマンドが使用されるのが好ましいが、従来では、特定の領域への書き込み処理にのみFUA系コマンドを使用する制御を行うことができなかった。
これに対し、本実施の形態では、キャッシュメモリにデータを保持し、保持したデータを後述する図6(a)のFUA領域管理テーブル600に登録された特定の記憶領域に書き込む書き込み要求を受け付けた場合、FUA系コマンドが発行される。すなわち、本実施例ではOS管理対象外のMFPシステムとして重要な領域に対しても適用することが可能となる。MFP100は、Flashメモリ303に予め格納された図5のコマンド変換テーブル500及び図6(a)のFUA領域管理テーブル600を用いてFUA系コマンドを発行する。なお、コマンド変換テーブル500及びFUA領域管理テーブル600は、工場出荷時にFlashメモリ303に格納されていても良く、また、任意のタイミングでメインCPU102によって生成されても良い。
図5は、図1のMFP100にて使用されるコマンド変換テーブル500の一例を示す図である。コマンド変換テーブル500は、対象コマンド501及び変換後コマンド502を含む。対象コマンド501には、SATA規格にて定義された書き込みコマンドであってキャッシュメモリにデータを保持させる書き込みコマンドが設定される。変換後コマンド502には、対象コマンド501に設定された各コマンドの機能等に対応するFUA系コマンドが設定される。
図6(a)は、図1のMFP100にて使用されるFUA領域管理テーブル600の一例を示す図である。FUA領域管理テーブル600は、記録媒体113b又は記録媒体114bの記憶領域のうちMFP100における重要なデータを格納する特定の記憶領域を示す名称、当該特定の記憶領域の開始アドレス、及び当該開始アドレスからのサイズ情報を含む。例えば、FUA領域管理テーブル600の先頭行の設定値は、SSD113の図6(b)の記憶領域601におけるシステム領域602の領域Aを示す名称、領域Aの開始アドレス、及び当該開始アドレスからのサイズ情報を示す。FUA領域管理テーブル600では、登録された特定の記憶領域毎に、FUA系コマンドの発行に関する優先度が設定される。なお、FUA領域管理テーブル600では、レベル1が最も優先度が高く、レベルの値が大きくなる程優先度が低くなる。本実施の形態では、例えば、FUA領域管理テーブル600に設定された複数の記憶領域のうち、ユーザによって予め設定された図6(c)のFUA保護レベル603の値以下のレベルが設定された記憶領域へデータを書き込む書き込み要求を受け付けた場合、コマンド変換テーブル500に基づいてFUA系コマンドが発行される。例えば、FUA保護レベル603に「1」が設定された場合、FUA領域管理テーブル600において「1」以下のレベルが設定されたシステム領域の領域A、アプリ1領域の領域A、アプリ2領域の領域Aの何れかへデータを書き込む書き込み要求を受け付けた場合、FUA系コマンドが発行される。ここで、優先度とパフォーマンスとはトレードオフの関係にある。
図7は、図1のSATAホスト制御部111によって実行されるコマンド変換処理の手順を示すフローチャートである。図7の処理は、SATAホスト制御部111のHCPU301が、Flashメモリ303等に格納されたプログラムを実行することによって実現される。なお、図7の処理では、上述したコマンド変換テーブル500及びFUA領域管理テーブル600がFlashメモリ303からSRAM304に読み出され、更にFUA保護レベル603が既に設定されていることとする。
図7において、HCPU301は、上述したようにメインCPU101から書き込み要求を受けると(ステップS701)、SRAM304に格納されたディスクリプタ テーブル400における先頭のコマンドテーブルを読み出す。次いで、HCPU301は、読み出したコマンドテーブルから、コマンドの種別を示す情報及びLBA等のデータ書き込み領域を示す情報を取得する。次いで、HCPU301は、データ書き込み領域がFUA領域管理テーブル600に登録された記憶領域(以下、「FUA記憶領域」という。)であるか否かを判別する(ステップS702)。
ステップS702の判別の結果、データ書き込み領域がFUA記憶領域であるとき、HCPU301は、FUA領域管理テーブル600においてデータ書き込み領域に対応する記憶領域のレベル値がFUA保護レベル603の値以下であるか否かを判別する(ステップS703)。
ステップS703の判別の結果、上記データ書き込み領域に対応する記憶領域のレベル値がFUA保護レベル603の値以下であるとき、HCPU301は、ディスクリプタ テーブル400から取得したコマンドの種別に対応するFUA系コマンドを発行する。(ステップS704)ステップS704では、例えば、ディスクリプタ テーブル400から取得したコマンドの種別が「WRITE DMA EXT」である場合、HCPU301は、コマンド変換テーブル500に基づいて、取得したコマンドの種別に対応するFUA系コマンドである「WRITE DMA FUA EXT」を発行する。次いで、HCPU301は、発行したコマンドをWコマンドとしてSATAブリッジ制御部112へ送信する。(ステップS705)(例えば、図8(a)の処理801を参照。)。なお、図8では、メインASIC201においてメインCPU101が制御する複数のモジュールのうち、SATAホスト制御部111を除くモジュールを上位システムとする。次いで、HCPU301は、SATAブリッジ制御部112からステータス情報を受信するまで待機する(ステップS706)。SATAブリッジ制御部112は、受信したWコマンドを、例えば、SSD113へ送信する(例えば、図8(a)の処理802を参照。)。SSD113は、受信したWコマンドがFUA系コマンドである場合、データを、キャッシュメモリ113aに保持することなく、記録媒体113bに直接書き込む。データの書き込みを完了すると、SSD113は、SATAブリッジ制御部112を介してSATAホスト制御部111へデータの書き込みを完了した旨を示すステータス情報を送信する。
HCPU301は、SATAブリッジ制御部112からSSD113のステータス情報を受信すると(ステップS706でYES)、読み出したコマンドテーブルがディスクリプタ テーブル400における最後のコマンドテーブルであるか否かを判別する(ステップS707)。ステップS707では、HCPU301は、読み出したコマンドテーブルにおけるEOF404の値に基づいて、読み出したコマンドテーブルがディスクリプタ テーブル400における最後のコマンドテーブルであるか否かを判別する。
ステップS707の判別の結果、読み出したコマンドテーブルがディスクリプタ テーブル400における最後のコマンドテーブルでないとき、HCPU301は、当該コマンドテーブルの次のコマンドテーブルを読み出す(ステップS708)。次いで、HCPU301は、ステップS702の処理に戻る。このようにして、HCPU301は、ディスクリプタ テーブル400における先頭のコマンドテーブルから順にステップS702〜S707の処理を実行する。
ステップS707の判別の結果、読み出したコマンドテーブルがディスクリプタ テーブル400における最後のコマンドテーブルであるとき、HCPU301は、ステップS709の処理を行う。ステップS709では、HCPU301は、書き込み要求に従ったデータの書き込みを完了したことを示す結果通知をメインCPU102へ送信する。次いで、HCPU301は、本処理を終了する。
ステップS702の判別の結果、データ書き込み領域がFUA領域管理テーブル600に登録された記憶領域でないとき、又はステップS703の判別の結果、上記データ書き込み領域に対応する記憶領域のレベル値がFUA保護レベル603の値より大きいとき、HCPU301は、FUA系コマンドではなく、ディスクリプタ テーブル400から取得した種別のコマンドを発行する。次いで、HCPU301は、ステップS705以降の処理を行う。
上述した実施の形態によれば、キャッシュメモリにデータを保持し、保持したデータをFUA領域管理テーブル600に登録された特定の記憶領域に書き込む書き込み要求を受け付けた場合、FUA系コマンドが発行される。これにより、製品コストを増大させることなく、瞬断に起因する重要なデータの消失を防止することができる。
また、上述した実施の形態では、FUA系コマンドは、データを、キャッシュメモリに書き込ませずに、記録媒体に直接書き込ませる書き込みコマンドである。これにより、大容量のコンデンサをMFP100に設けることなく、瞬断に起因する重要なデータの消失を確実に防止することができる。
さらに、上述した実施の形態では、複数の特定の記憶領域が登録されたFUA領域管理テーブル600がFlashメモリ303に格納されている。これにより、FUA系コマンドの発行に関する制御を行うタイミングで、FUA領域管理テーブル600を容易に読み出すことができる。
上述した実施の形態では、ユーザがFUA保護レベル603を設定する。これにより、FUA系コマンドを使用する書き込み対象に関し、ユーザの意図を反映させることができる。
上述した実施の形態では、FUA系コマンドがSATAホスト制御部111によって発行される。これにより、上記上位システムの構成を変更することなく、瞬断に起因する重要なデータの消失を防止することができる。
以上、本発明について、上述した実施の形態を用いて説明したが、本発明は上述した実施の形態に限定されるものではない。例えば、HCPU301は、ディスクリプタ テーブル400における全てのコマンドテーブルに対し、ステップS702〜S704の処理を行った後、発行した複数のFUA系コマンドを1つずつSATAブリッジ制御部112へ送信しても良い。
また、上述した実施の形態では、書き込み要求を行う手段として、複数のコマンドテーブルを備えるディスクリプタ テーブルを用いる構成について説明したが、この構成に限られない。例えば、レジスタ(ローカルメモリ内も含む)に一組のコマンド及びデータを格納して個別に書き込み要求を行う構成であっても良い。
上述した実施の形態では、SATAブリッジ制御部112に接続されるストレージの個数は、2つに限られず、SATAブリッジ制御部112に1つ以上のストレージが接続される構成であれば良い。
また、上述した実施の形態では、SATAブリッジ制御部112を備える構成について説明したが、この構成に限られず、SATAホスト制御部111にストレージ113,114が直接接続される構成であっても良い。
上述した実施の形態では、キャッシュメモリにデータを保持し、保持したデータをFUA領域管理テーブル600に登録された特定の記憶領域に書き込む書き込み要求を受け付けた場合、FLUSH-CACHE-(EXT)コマンドを発行しても良い。FLUSH-CACHE-(EXT)コマンドは、キャッシュメモリに保持されている全てのデータを記録媒体に書き込ませるためのコマンドである。上述した場合に、FLUSH-CACHE-(EXT)コマンドを発行することで、上記特定の記憶領域に書き込まれるデータをキャッシュメモリから記録媒体に即座に書き込むことができる。その結果、製品コストを増大させることなく、瞬断に起因する重要なデータの消失を防止することができる。
上述した実施の形態では、メインCPU102が、FUA領域管理テーブル600に登録された記録領域へデータを書き込むためのディスクリプタ テーブル400の作成時にCommandレジスタ値403にFUA系コマンドの種別を設定しても良い。(例えば、図8(b)を参照。)このような制御を行う構成において、コマンド変換テーブル500及びFUA領域管理テーブル600は、メインCPU102が直接アクセス可能なFlashメモリ104やDRAM104に予め格納されている。
また、上述した実施の形態では、SATAホスト制御部111ではなく、SATAブリッジ制御部112がFUA系コマンドを発行しても良い。SATAブリッジ制御部112がFUA系コマンドを発行する構成において、コマンド変換テーブル500及びFUA領域管理テーブル600は、SATAブリッジ制御部112のFlashメモリ312に予め格納されている。このような構成において、メインCPU102が、SATAホスト制御部111を介してSATAブリッジ制御部112へ図9の拡張コマンド901を送信する。拡張コマンド901は、SATAブリッジ制御部112のみに通用する独自コマンドであり、SATA規格で準備されているユーザー定義のベンダユニークコマンド(例えば、F0h)を用いて作成される。SATAブリッジ制御部112は、受信した拡張コマンド901に従って、Flashメモリ312からSRAM313へコマンド変換テーブル500及びFUA領域管理テーブル600を読み出す。
また、SATAブリッジ制御部112は、SATAホスト制御部111からWコマンドを受信すると、ステップS702〜S705に相当する処理を実行する。具体的に、SATAホスト制御部111のBCPU310は、受信したWコマンドからコマンドの種別を示す情報及びLBA等のデータ書き込み領域を示す情報を取得する。BCPU310は、データ書き込み領域がFUA記憶領域であり且つFUA領域管理テーブル600においてデータ書き込み領域に対応する記憶領域のレベル値がFUA保護レベル603の値以下であるとき、受信したWコマンドの種別に対応するFUA系コマンドを発行する。次いで、BCPU310は、発行したコマンドをWコマンドとしてSSD113又はSSD114へ送信する(例えば、図8(c)の処理803を参照。)。メインCPU102は、SATAホスト制御部111を介してSATAブリッジ制御部112へ図9の拡張コマンド902を送信して、SATAブリッジ制御部112からステータス情報を受信する。
このように、SATAブリッジ制御部112がFUA系コマンドを発行することで、SATAホスト制御部111におけるFUA系コマンドの発行に関する処理の負荷を分散することができる。
本発明は、上述の実施の形態の1以上の機能を実現するプログラムをネットワーク又は記憶媒体を介してシステム又は装置に供給し、該システム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読み出して実行する処理でも実現可能である。また、本発明は、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
100 MFP
113,114 ストレージ
113a,114a キャッシュメモリ
113b,114b 記録媒体
111 SATAホスト制御部
112 SATAブリッジ制御部
600 FUA領域管理テーブル
603 FUA保護レベル

Claims (8)

  1. 揮発性の保持手段及び不揮発性の格納手段を備えるストレージデバイスを備える情報処理装置であって、
    受け付けた書き込み要求に従ってデータを前記格納手段に書き込ませる書き込みコマンドを発行する発行手段を備え、
    前記保持手段に前記データを保持し且つ前記格納手段における予め登録された特定の記憶領域に前記保持したデータを書き込ませる書き込み要求を受け付けた場合、前記発行手段は、前記保持手段に前記データを保持させない書き込みコマンドを発行することを特徴とする情報処理装置。
  2. 前記保持手段にデータを保持させない書き込みコマンドは、前記データを、前記保持手段に書き込ませずに、前記格納手段に直接書き込ませる書き込みコマンドであることを特徴とする請求項1記載の情報処理装置。
  3. 前記保持手段にデータを保持させない書き込みコマンドは、前記保持手段に保持された全てのデータを前記格納手段に書き込ませる書き込みコマンドであることを特徴とする請求項1記載の情報処理装置。
  4. 前記格納手段における複数の記憶領域が登録された管理テーブルを格納する管理テーブル格納手段を更に備えることを特徴とする請求項1乃至3のいずれか1項に記載の情報処理装置。
  5. 前記保持手段に前記データを保持させない書き込みコマンドの発行に関する優先度を示すレベルをユーザに設定させる設定手段を更に備え、
    前記特定の記憶領域は、前記管理テーブルに登録された前記複数の記憶領域のうち、前記設定されたレベル以下のレベルで登録された記憶領域であることを特徴とする請求項4記載の情報処理装置。
  6. 前記情報処理装置は、画像形成処理を行う画像形成装置であることを特徴とする請求項1乃至5のいずれか1項に記載の情報処理装置。
  7. 揮発性の保持手段及び不揮発性の格納手段を備えるストレージデバイスを備える情報処理装置の制御方法であって、
    受け付けた書き込み要求に従ってデータを前記格納手段に書き込ませる書き込みコマンドを発行する発行ステップを有し、
    前記保持手段に前記データを保持し且つ前記格納手段における予め登録された特定の記憶領域に前記保持したデータを書き込ませる書き込み要求を受け付けた場合、前記発行ステップは、前記保持手段に前記データを保持させない書き込みコマンドを発行することを特徴とする情報処理装置の制御方法。
  8. 揮発性の保持手段及び不揮発性の格納手段を備えるストレージデバイスを備える情報処理装置の制御方法をコンピュータに実行させるプログラムであって、
    前記情報処理装置の制御方法は、
    受け付けた書き込み要求に従ってデータを前記格納手段に書き込ませる書き込みコマンドを発行する発行ステップを有し、
    前記保持手段に前記データを保持し且つ前記格納手段における予め登録された特定の記憶領域に前記保持したデータを書き込ませる書き込み要求を受け付けた場合、前記発行ステップは、前記保持手段に前記データを保持させない書き込みコマンドを発行することを特徴とするプログラム。
JP2020010756A 2020-01-27 2020-01-27 情報処理装置、その制御方法、及びプログラム Pending JP2021117740A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2020010756A JP2021117740A (ja) 2020-01-27 2020-01-27 情報処理装置、その制御方法、及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2020010756A JP2021117740A (ja) 2020-01-27 2020-01-27 情報処理装置、その制御方法、及びプログラム

Publications (1)

Publication Number Publication Date
JP2021117740A true JP2021117740A (ja) 2021-08-10

Family

ID=77175269

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020010756A Pending JP2021117740A (ja) 2020-01-27 2020-01-27 情報処理装置、その制御方法、及びプログラム

Country Status (1)

Country Link
JP (1) JP2021117740A (ja)

Similar Documents

Publication Publication Date Title
US10909012B2 (en) System having persistent memory
KR102320386B1 (ko) 화상 형성 장치 및 화상 형성 장치의 전력 제어 방법
US20130007367A1 (en) Information processing apparatus and method of controlling same
KR100827287B1 (ko) 반도체 보조 기억 장치 및 이를 이용한 데이터 저장 방법
US11204632B2 (en) Electronic device and method for controlling the same
US20170257518A1 (en) Data processing apparatus, method for controlling data processing apparatus, and storage medium
JP2022050757A (ja) メモリシステム
US8526039B2 (en) Image processing apparatus, and control method thereof and program
US10852970B2 (en) Storage control apparatus, control method thereof, storage medium, and information processing apparatus
JP2021117740A (ja) 情報処理装置、その制御方法、及びプログラム
JP2019220787A (ja) 制御装置、画像形成装置、制御方法及び制御プログラム
US11095778B2 (en) Storing and outputting log for failure analysis in image forming apparatus equipped with SATA system, control method therefor, and storage medium
JP7374622B2 (ja) 情報処理装置
US10747483B2 (en) Image forming apparatus that updates firmware
JP2018063676A (ja) 情報処理装置及びその制御方法、並びにプログラム
WO2016006108A1 (ja) ストレージおよびその制御方法
JP2021182300A (ja) メモリコントローラ、メモリシステムおよびメモリシステムの制御方法
JP2016103112A (ja) データ転送制御装置、情報処理装置、画像形成装置
JP2021074974A (ja) 画像形成装置および画像形成装置の制御方法
JP2023021707A (ja) 情報処理装置、情報処理装置の制御方法、及びプログラム
JP5594127B2 (ja) 電子機器、及び画像処理装置
JP5216719B2 (ja) 情報処理装置および制御装置
US10768846B2 (en) Information processing apparatus and control method of information processing apparatus
JP4800701B2 (ja) コンピュータシステム
JP2009205410A (ja) メモリコントローラおよびメモリシステム