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

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

Info

Publication number
JP2019061483A
JP2019061483A JP2017185317A JP2017185317A JP2019061483A JP 2019061483 A JP2019061483 A JP 2019061483A JP 2017185317 A JP2017185317 A JP 2017185317A JP 2017185317 A JP2017185317 A JP 2017185317A JP 2019061483 A JP2019061483 A JP 2019061483A
Authority
JP
Japan
Prior art keywords
storage
write request
storage devices
cpu
data
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
JP2017185317A
Other languages
English (en)
Other versions
JP2019061483A5 (ja
Inventor
勝彦 柳川
Katsuhiko Yanagawa
勝彦 柳川
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 JP2017185317A priority Critical patent/JP2019061483A/ja
Priority to US16/140,758 priority patent/US10852970B2/en
Publication of JP2019061483A publication Critical patent/JP2019061483A/ja
Publication of JP2019061483A5 publication Critical patent/JP2019061483A5/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0634Configuration or reconfiguration of storage systems by changing the state or mode of one or more devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2056Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2056Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
    • G06F11/2069Management of state, configuration or failover
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2056Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
    • G06F11/2071Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring using a plurality of controllers
    • G06F11/2074Asynchronous techniques
    • 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/18Handling requests for interconnection or transfer for access to memory bus based on priority control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0617Improving the reliability of storage systems in relation to availability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0685Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Quality & Reliability (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Hardware Redundancy (AREA)

Abstract

【課題】複数の記憶装置を関連付けて制御する場合において、起動途中の記憶装置に対して、上位装置からアクセスが発生した際に好適に対応する仕組みを提供する
【解決手段】本記憶制御装置は、上位装置と、複数の記憶装置とに接続され、複数の記憶装置の何れかへのライト要求を上位装置から受信する。ここで、本記憶制御装置は、複数の記憶装置のうちライト要求のアクセス先に指定された記憶装置がまだ起動していない場合に、当該ライト要求に係るデータを保留し、アクセス先に指定された記憶装置がレディ状態になると、保留したライト要求に係るデータを当該記憶装置に書き込む。
【選択図】図2

Description

本発明は、記憶制御装置、その制御方法、プログラム、及び情報処理装置に関するものである。
記憶制御装置には、記憶装置(例えば、Hard Disk Drive、以下ではHDDと略記する。)に格納するデータの保護を目的として、複数の記憶装置に同一のデータを格納するミラーリング(RAID1)を行うものがある。ミラーリングを行う記憶制御装置は、上位装置であるホストと接続され、ホストから見ると1つの記憶装置のように振る舞う。
HDDは、磁性体を塗布したディスクを高速回転し、磁気ヘッドを移動することで、情報を記録し読み出す記憶装置である。しかし、電源を投入してからディスクが所定の回転速度に達して、データのリードライトが可能になるまでに長い時間(スピンアップ時間)を要する。
一方、近年半導体記憶素子であるフラッシュメモリを搭載したSSD(Solid State Drive)が普及してきており、SSDはHDDと比較して、以下の特徴を持っている。
・スピンアップが不要なため起動時間が短い。
・データのリード、ライトが高速。
・記憶容量あたりの単価が高い。
そのため、ミラーリングを構成する記憶装置の全てにSSDを搭載すれば高速な情報処理装置を構築できるが、非常に高価になってしまう。そこで、高速なSSDと安価なHDDという異なるデバイスを用いてミラーリングを行うことが考えられている。
しかし、起動時間の短いSSDを使用しても従来の記憶制御装置では複数の記憶装置に同一データを格納するために、接続されている全ての記憶装置の起動完了を待ってから、ホストに対して起動の完了を通知していた。このような起動完了までの待機時間を低減するために、特許文献1は、ミラーリングでのリード動作については1つの記憶装置のみで完結するため、1つの記憶装置の起動完了のみをもって、ホストに対して起動の完了を通知することを提案している。
特開2016−146087号公報
しかしながら、上記従来技術には以下に記載する課題がある。例えば、上記従来技術においては、リード動作のみに対応しており、ライト動作には対応していない。従って、上記従来技術では、ホストからライトの要求が発生すると、全ての記憶装置の起動を待つ必要がある。このように、ホストの処理が待たされてしまうという課題はまだ解決されていない。
本発明は、上述の問題の少なくとも一つに鑑みて成されたものであり、複数の記憶装置を関連付けて制御する場合において、起動途中の記憶装置に対して、上位装置からアクセスが発生した際に好適に対応する仕組みを提供することを目的とする。
記憶装置において、上位装置からアクセスが発生した際に好適に対応する仕組みを提供することをさらに別の目的とする。
本発明は、上位装置と、複数の記憶装置とに接続された記憶制御装置であって、前記複数の記憶装置の何れかへのライト要求を前記上位装置から受信する受信手段と、前記複数の記憶装置のうち前記ライト要求のアクセス先に指定された記憶装置がまだ起動していない場合に、当該ライト要求に係るデータを保留する保留手段と、前記アクセス先に指定された記憶装置がレディ状態になると、前記保留手段によって保留された前記ライト要求に係るデータを該記憶装置に書き込む書込手段とを備えることを特徴とする。
本発明によれば、複数の記憶装置を関連付けて制御する場合において、起動途中の記憶装置に対して、上位装置からアクセスが発生した際に好適に対応することができる。また、本発明によれば、記憶装置において、上位装置からアクセスが発生した際に好適に対応することができる。
一実施形態に係る印刷システムの構成を示す概略図。 一実施形態に係る記憶装置制御部111の内部構成を示すブロック図。 一実施形態に係る起動時のシーケンス図。 一実施形態に係る記憶装置制御部の動作を表すフローチャート。 一実施形態に係るシングルモード時の動作を表すフローチャート。 一実施形態に係るリカバリモード時の動作を表すフローチャート。 一実施形態に係るミラーリングモード時の動作を表すフローチャート。 一実施形態に係るライト保留レジスタの構成を示す概略図。 一実施形態に係る記憶装置制御部111の内部構成を示すブロック図。 一実施形態に係るライト保留レジスタの構成を示す概略図。 一実施形態に係るシングルモード時の動作を表すフローチャート。 一実施形態に係るリカバリモード時の動作を表すフローチャート。 一実施形態に係るリカバリモード時の動作を表すフローチャート。 一実施形態に係る記憶装置制御部の動作を表すフローチャート。 一実施形態に係る縮退モード時の動作を表すフローチャート。 一実施形態に係るJBODの概要を表す図。 一実施形態に係る記憶装置制御部の動作を表すフローチャート。 一実施形態に係るシングルモード時の動作を表すフローチャート。 一実施形態に係るリカバリモード時の動作を表すフローチャート。 一実施形態に係るハイブリッドモード時の動作を表すフローチャート。 一実施形態に係るライト保留レジスタの構成を示す概略図。
以下に本発明の一実施形態を示す。以下で説明される個別の実施形態は、本発明の上位概念、中位概念及び下位概念など種々の概念を理解するために役立つであろう。また、本発明の技術的範囲は、特許請求の範囲によって確立されるのであって、以下の個別の実施形態によって限定されるわけではない。
<第1の実施形態>
<印刷システムの構成>
以下では、本発明の第1の実施形態について説明する。まず、図1を参照して、本実施形態に係る、印刷システムの構成例について説明する。本印刷システムは、情報処理装置の一例である印刷装置100とパーソナルコンピュータ(以下、PCと略記する。)120とで構成され、これらがLAN(Local area network)等のネットワーク130を介して接続されている。印刷装置100は、メイン制御部101、記憶装置制御部111、操作部112、スキャナ部113、プリンタ部114、SSD115、及びHDD116を含んで構成される。また、メイン制御部101は、メインCPU102、ROM103、RAM104、LAN−IF(インタフェース)105、フラッシュメモリ106、及び画像処理部107を備える。
メインCPU102は、ROM103に記憶されたプログラムをRAM104に読み出して実行することにより、各部の制御や各種演算処理を実現する。ROM103は、不揮発性メモリであり、BIOS(Basic Input/Output System)プログラムや制御パラメータ等が格納される。フラッシュメモリを接続すれば、オンボードでの書き換えも可能である。RAM104は、DRAM等の揮発性メモリであり、プログラムの作業領域や印刷データの格納領域等の用途に用いられる。
LAN−IF105は、印刷装置100に接続されるLAN130とのインタフェースであり、一般的にはTCP/IPプロトコルに対応する。ネットワークケーブルを介して外部のパーソナルコンピュータ120などのネットワーク対応機器と接続され、ネットワーク経由での印刷処理を行うことができる。また、ルータを介してインターネットに接続することも可能である。
フラッシュメモリ106には、起動プログラム、各種アプリケーションプログラム及び各種パラメータ等が格納されている。画像処理部107は、LAN−IF105又はスキャナ部113で取り込んだ画像データに対して、各種画像処理を実行する。操作部112には、不図示の操作パネル上の液晶画面表示やボタン等が設けられ、それらを操作することにより印刷装置100の各種設定及び状態の確認をすることができる。スキャナ部113はCCD等の読み取り素子を用いて画像をデジタルデータとして読み取る。プリンタ部114は、不図示のプリントエンジンと給紙系及び排紙系から構成され、画像処理部107で処理した画像データを紙等に印刷する。
SSD115及びHDD116は、アプリケーションプログラムの設定パラメータや印刷処理時の一時的な作業領域及びユーザデータの格納場所として利用される。記憶装置制御部111は、メイン制御部101内のメインCPU102とSSD115及びHDD116との中間に位置し、それら各々のデバイスとSATA(Serial Advanced Technology Attachment)規格に準拠したインタフェースで接続される。また、記憶装置制御部111はSSD115、HDD116等のストレージデバイスを制御する機能に加え、SSD115とHDD116の同一のデータを格納するミラーリング機能を有する。即ち、ホストであるメインCPU102からのライトデータをSSD115とHDD116の両方に書き込む。一方、ホストからのリード要求に対しては、SSD115及びHDD116の何れかからデータを読み出し、このリードデータをメインCPU102へ転送する。
ここでは、記憶装置制御部111、SSD115、及びHDD116をメイン制御部101に接続される外部装置として構成している。しかし、本発明はこれに限定されず、例えば、記憶装置制御部111、SSD115、及びHDD116をメイン制御部101の内部に組み込んで構成してもよい。
<記憶装置制御部の構成>
次に、図2を参照して、本実施形態に係る記憶装置制御部111の内部構成例について説明する。記憶装置制御部111は、CPU201、メモリ制御部202、フラッシュメモリ203、RAM204、SATA−Device制御部205、SATA−Host制御部206、207、SATA−IF_H208及びSATA−IF_D209、210を備える。各部は、システムバス211によって構成される。
CPU201は、システム制御や各種演算処理を行う。メモリ制御部202は、各種メモリデバイスへの入出力制御やDMA制御を行う。フラッシュメモリ203は、書き換え可能な不揮発性メモリであり、制御プログラムや暗号/復号化プログラム及び制御パラメータ等が格納される。また、フラッシュメモリ203には、ライト保留レジスタ220が設けられる。ライト保留レジスタは、ストレージへのライトができない場合にライト情報を保持しておくためのもので、図8に示すように構成されている。
図8に示すように、ライト保留レジスタ220は、ライトアドレス801、データサイズ802、及びこれらライト情報が有効か否かを示す有効ビット803を格納する領域を含んで構成される。有効ビット803は、「1」で有効、即ちライトアクセスが保留された状態を示し、「0」で無効、即ち保留されたライトアクセスが実行されたことを示す。つまり、有効ビット803が「1」であれば、ライト命令が保留されていることを示す。本実施形態では、ライト保留レジスタ220を記憶装置制御部111のフラッシュメモリ203内に設ける一例を説明したが、本発明を限定する意図はなく、例えば、ライト要求に係るデータを保留(保持)する先の記憶装置、例えばSSD115に設けてもよい。これにより、記憶装置制御部111におけるフラッシュメモリ203の容量を低減することができる。
図2の説明に戻る。RAM204は、書き換え可能で高速にアクセスできる揮発性メモリであり、フラッシュメモリ203に格納されたプログラムの一部のロードやその作業領域、データのバッファ領域として用いられる。SATA−Device制御部205は、SATA規格に準拠したインタフェースであるSATA−IF_H208を介してSATA−Hostであるメイン制御部101内のメインCPU102(以下、「ホスト」と称する。)と接続される。SATA−Device制御部205は、ホストからのデータ入出力要求に対する制御処理を行う。
SATA−Host制御部206は、SATA規格に準拠したインタフェースであるSATA−IF_D209を介してSATA−DeviceであるSSD115と接続され、SSD115とのデータ入出力制御を行う。また、SATA−Host制御部207は、SATA規格に準拠したインタフェースであるSATA−IF_D210を介してSATA−DeviceであるHDD116と接続され、HDD116とのデータ入出力制御を行う。即ち、記憶装置制御部111は、“ホスト”であるメインCPU102から“デバイス”であるSSD115及びHDD116へのデータ入出力要求に対してSATA−SATAブリッジ装置としての機能を有する。システムバス211は、制御バス、データバス及び任意ブロック間のローカルバスを便宜的にまとめて表現したものである。
<省電力モードからの復帰シーケンス>
次に、図3を参照して、本実施形態に係る省電力モードから通常モードへの復帰シーケンスについて説明する。ここでのシーケンスは、メインCPU102、記憶装置制御部111、SSD115及びHDD116間の復帰シーケンスを時系列に表現したものである。SATA規格によれば、まず電源オン時に所定のシーケンス処理を経て各IF間の通信リンクを確立することが必要である。以下ではリンク確立までの過程を時系列に説明する。
まず、印刷装置100に電源が投入された後、メインCPU102と記憶装置制御部111との間でOOB(Out of Band)シーケンス301と呼ばれる特定コマンド(COMRESET、COMINIT、COMWAKE)の相互送信が行われる。このOOBシーケンス301によりメインCPU102と記憶装置制御部111との間で通信リンクが確立する。同様に記憶装置制御部111とSSD115との間でもOOBシーケンス303が行われ通信リンクが確立する。同様に記憶装置制御部111とHDD116との間でもOOBシーケンス304が行われ通信リンクが確立する。
SSD115は、ホスト(メインCPU102)からのコマンドに応答できる状態になったら、DRDY(Device Ready)ビットをセット(1をセット)する。そして、SSD115は、DRDYをセットしたRegDH(Register Device to Host)305を記憶装置制御部111に対して送信する。続いて、記憶装置制御部111は、RegDHを受信すると、メインCPU102に対してDRDYビットをセットしてRegDH306を送信する。
一方、HDD116は、ディスクが回転し所定の回転速度に達するまでに数秒〜10数秒の時間を要するため、すぐにレディ状態にはならない。しかしながら、本実施形態によれば、メインCPU102は、記憶装置制御部111からRegDH(DRDY=1)を受信しているため、HDD116のRegDH(DRDY=1)状態を待たずにリード307やライト308のデータアクセスが可能となる。その後、HDD116からRegDH(DRDY=1)を受信したら、それまでのライトのリカバリを実施して、データの整合をとってミラーリング状態となる。このような動作を行う記憶装置制御部111の詳細な動作を以下にて説明する。
<記憶装置制御部の処理手順>
次に、図4を参照して、記憶装置制御部111の動作の処理手順について説明する。以下で説明する処理は、例えばCPU201がフラッシュメモリ203等に格納されたプログラムをRAM204に読み出して実行することにより実現される。
まず、S401で、CPU201は、メインCPU102、SSD115、及びHDD116の各々とOOBシーケンス処理を行い、通信リンクを確立する。続いて、S402で、CPU201は、SSD115又はHDD116からRegDH(DRDY=1)が通知されるのを待機すべく、一定時間経過しても通知がない場合にリトライを行うためのリトライタイマーを起動する。そして、S403で、CPU201は、SSD115又はHDD116からRegDH(DRDY=1)の通知があるか否かを判断する。
S403でSSD115又はHDD116からアクセス許可(Device Ready)を示すRegDH(DRDY=1)の通知があると判断すると(Yes)、S406に進み、CPU201は、ホスト側のメインCPU102にRegDH(DRDY=1)を通知する。そしてS407で、CPU201は、シングルモードのサブルーチンに進む。サブルーチンS407「シングルモード」については後述する。
一方、S403でSSD115又はHDD116からRegDH(DRDY=1)が通知されない場合(No)、S404に進み、CPU201は、リトライタイマーをチェックし、リトライが必要な時間が経過しているか否かを判断する。S404でリトライが必要な時間が経過していないと判断したら(No)、S403に処理を戻す。一方、リトライが必要な時間が経過していると判断したら(Yes)、S405に進む。
S405で、CPU201は、リトライ回数をチェックし、リトライ回数が所定の回数を超えたか否かを判断する。S405でリトライ回数が所定の回数を超えていない場合(No)は、CPU201は、S401に処理を戻し、OOBシーケンス処理からやり直す。一方、S405でリトライ回数が所定の回数を超えている場合(Yes)は、CPU201は、異常なエラー状態であると判断し、処理を終了する。
S407の後にS408に進み、CPU201は、S403で通知のなかった方のストレージデバイスからのRegDH(DRDY=1)の通知を待機し、全てのストレージデバイスからRegDH(DRDY=1)が通知されたか否かを判断する。S408で全てのストレージデバイスからRegDH(DRDY=1)の通知がない場合(No)、S411に進み、CPU201は、リトライタイマーをチェックし、リトライが必要な時間が経過しているか否かを判断する。S411でリトライが必要な時間が経過していないと判断したら(No)、S407に処理を戻し、リトライが必要な時間が経過していると判断したら(Yes)、S412に進む。
S412で、CPU201は、リトライ回数をチェックし、リトライ回数が所定の回数を超えたか否かを判断する。S412でリトライ回数が所定の回数を超えていない場合(No)、S413に移行し、CPU201は、レディ状態になっていないデバイスに対してOOBシーケンス処理を行う。一方、S412でリトライ回数が所定の回数を超えている場合(Yes)は、片側のストレージデバイスの故障等が考えられるため、縮退モードのサブルーチンであるS415に進む。サブルーチンS415の「縮退モード」については後述する。
一方、S408で全てのストレージデバイスからRegDH(DRDY=1)の通知がある場合(Yes)、リカバリモードのサブルーチンS409に進む。サブルーチンS409の「リカバリモード」については後述する。S409の後、ミラーリングモードのサブルーチンS410に進む。サブルーチンS410の「ミラーリングモード」については後述する。
<シングルモード>
次に、図5を参照して、上記サブルーチンS407の「シングルモード」における処理手順について説明する。以下で説明する処理は、例えばCPU201がフラッシュメモリ203等に格納されたプログラムをRAM204に読み出して実行することにより実現される。ここで、シングルモードとは、SSD115及びHDD116の一方が起動した状態で動作するモードのことを示す。
まずS501で、CPU201は、ホスト側のメインCPU102からリード要求があるか否かを判断する。S501でメインCPU102からリード要求がある場合(Yes)、S502に進み、CPU201は、RegDH(DRDY=1)の通知があったストレージデバイス(ここでは仮にSSD115として説明する。)に対してリードアクセスを行う。さらに、CPU201は、リードしたデータをホスト側のメインCPU102に転送する。そしてメインルーチンに戻る。
一方、S501でメインCPU102からリード要求がない場合(No)S503に進み、CPU201は、メインCPU102からライト要求があるか否かを判断する。S503でメインCPU102からライト要求がある場合(Yes)、S504に進み、CPU201は、RegDH(DRDY=1)の通知があったSSD115に対してライトアクセスを行う。ここでは、シングルモードで動作しており、SSD115はレディ状態であるがHDD116がまだ起動していない状態である。従って、当該ライト要求がHDD116を指定するものであっても、当該ライト要求に係るデータをレディ状態のSSD115に書き込むことにより保留する。続いて、S505で、CPU201は、フラッシュメモリ203内のライト保留レジスタ220の有効ビット803がクリア「0」であるレジスタを検索し、このレジスタに保留情報として、ライトアドレス及びデータサイズを書き込み、有効ビット803を「1」にセットする。一方、S503でメインCPU102からライト要求がない場合(No)は、処理を終了し、メインルーチンに戻る。
<リカバリモード>
次に、図6を参照して、上記サブルーチンS409「リカバリモード」における動作を図6のフローチャートにて説明する。以下で説明する処理は、例えばCPU201がフラッシュメモリ203等に格納されたプログラムをRAM204に読み出して実行することにより実現される。ここで、リカバリモードとは、シングルモード中にライト要求の保留データが例えばSSD115に保持された場合において、もう一方の記憶装置であるHDD116の起動後に当該保留データを用いて当該HDD116へライトアクセスを行うモードである。
まずS601で、CPU201は、フラッシュメモリ203内のライト保留レジスタ220の有効ビット803が「1」にセットされているレジスタがあるか否かを判断する。つまり、ライト保留があるか否かを判断している。有効ビット803が「1」にセットされているレジスタがない場合(No)、処理を終了し、メインルーチンに戻る。
一方、有効ビット803が「1」にセットされているレジスタがある場合(Yes)、S602に進み、CPU201は、当該レジスタのライトアドレス801及びデータサイズ802を読み出す。続いて、S603で、CPU201は、読み出したライトアドレス情報とデータサイズ情報に基づき、SSD115からデータをリードする(取得する)。
次に、S604で、CPU201は、書込手段として機能し、リードデータをHDD116にライトする。ライトが完了するとS605に進み、CPU201は、S602で読み出したレジスタの有効ビットを「0」にクリアし、処理をS601に戻す。
<ミラーリングモード>
次に、図7を参照して、上記サブルーチンS410「ミラーリングモード」における動作を図7のフローチャートにて説明する。以下で説明する処理は、例えばCPU201がフラッシュメモリ203等に格納されたプログラムをRAM204に読み出して実行することにより実現される。ここで、ミラーリングモードとは、SSD115及びHDD116の両方が起動状態にあり、データのライト要求を両方の記憶装置に対して行うモードを示す。
まずS701で、CPU201は、ホスト側のメインCPU102からリード要求があるか否かを判断する。S701でメインCPU102からリード要求がある場合(Yes)、S702に進み、CPU201は、SSD115に対してリードアクセスを行い、リードしたデータをホスト側のメインCPU102に転送し、S705に進む。
一方、S701でメインCPU102からリード要求がない場合(No)、S703に進み、CPU201は、メインCPU102からライト要求があるか否かを判断する。S703でメインCPU102からライト要求がある場合(Yes)は、S704に進み、CPU201は、SSD115とHDD116に対してライトアクセスを行い、S705に進む。
S705で、CPU201は、メインCPU102からストレージの電源をオフする前に発行されるStandby Immediateコマンドを受信したか否かを判断する。S705でStandby Immediateコマンドを受信していない場合(No)、S701に戻る。一方、S705でStandby Immediateコマンドを受信した場合(Yes)、S706に進み、CPU201は、SSD115とHDD116に対してStandby Immediateコマンドを送信し、終了する。
<縮退モード>
次に、図15を参照して、上記サブルーチンS415「縮退モード」における動作を図15のフローチャートにて説明する。以下で説明する処理は、例えばCPU201がフラッシュメモリ203等に格納されたプログラムをRAM204に読み出して実行することにより実現される。ここで、縮退モードとは、ミラーリングモードと異なり、ミラーリングモードではSSD115及びHDD116にデータをライトするのに対し、縮退モードではSSD115のみにデータをライトするモードである。
まずS1501で、CPU201は、ホスト側のメインCPU102からリード要求があるか否かを判断する。S1501でメインCPU102からリード要求がある場合(Yes)、S1502に進み、SSD115に対してリードアクセスを行い、リードしたデータをホスト側のメインCPU102に転送し、S1505に進む。
一方、S1501でメインCPU102からリード要求がない場合(No)、S1503に進み、CPU201は、メインCPU102からライト要求があるか否かを判断する。S1503でメインCPU102からライト要求がある場合(Yes)、S1504に進み、CPU201は、SSD115に対してライトアクセスを行い、S1505に進む。一方、S1503でメインCPU102からライト要求がない場合(No)は、そのままS1505に進む。
S1505で、CPU201は、そしてメインCPU102からストレージの電源をオフする前に発行されるStandby Immediateコマンドを受信したか否かを判断する。S1505でStandby Immediateコマンドを受信していない場合(No)は、S1501に戻る。一方、S1505でStandby Immediateコマンドを受信した場合(Yes)、S1506に進み、SSD115に対してStandby Immediateコマンドを送信し、処理を終了する。このように、ミラーリングモードと縮退モードは、S704とS1504との処理が異なる。
以上説明したように、本実施形態に係る記憶制御装置(記憶装置制御部)は、上位装置と、複数の記憶装置とに接続され、複数の記憶装置の何れかへのライト要求を上位装置から受信する。ここで、本記憶制御装置は、複数の記憶装置のうちライト要求のアクセス先に指定された記憶装置がまだ起動していない場合に、当該ライト要求に係るデータを保留し、アクセス先に指定された記憶装置がレディ状態になると、保留したライト要求に係るデータを当該記憶装置に書き込む。また、本実施形態によれば、複数の記憶装置に含まれる少なくとも1つのSSD115と少なくとも1つのHDD116とを関連付けて制御することにより、ミラーリングを行う。ミラーリング制御には、シングルモードとリカバリモードとを設けることで、全てのストレージデバイスがレディ状態になっていなくても、リードのみならずライトも可能となる。従って、電源投入時の起動時間及び省電力モードからの復帰時間を短縮することが可能となる。このように、本実施形態によれば、複数の記憶装置を関連付けて制御する場合において、起動途中の記憶装置に対して、上位装置からアクセスが発生した際に好適に対応する仕組みを提供することができる。
<第2の実施形態>
以下では、本発明の第2の実施形態について説明する。上記第1の実施形態では、保留したライトデータを最初にレディ状態となったストレージデバイス(上記第1の実施形態ではSSD115)からリードして、そのデータをHDD116にライトしたが、この部分を変更したものである。
<記憶装置制御部の構成>
図9を参照して、本実施形態における記憶装置制御部111の構成例について説明する。図9において上記第1の実施形態と同一の構成は同一の番号を付し、説明を省略する。本実施形態の特徴的なところは、RAM204内に保留データバッファ901を設けたことと、フラッシュメモリ203内のライト保留レジスタ902の構成を変更したことである。まず保留データバッファは、保留するライトのデータを保持しておくものである。
ライト保留レジスタ902の構成を図10に示す。図10において上記第1の実施形態で説明した図8と同一なものは同一の番号を付し、説明を省略する。1001はRAMアドレス保持用領域であり、RAM204内に設けた保留データバッファ内のどこにデータを保持しているかを示すアドレス情報を格納する。
<シングルモード>
以下では、本実施形態に係る記憶装置制御部111の処理手順について説明する。メインフローチャートは上記第1の実施形態で説明した図4と全く同一のため説明は省略する。サブルーチンS407「シングルモード」とサブルーチンS409「リカバリモード」の一部が変更になる。
まず、図11を参照して、本実施形態に係るサブルーチンS407の「シングルモード」の処理手順を説明する。例えばCPU201がフラッシュメモリ203等に格納されたプログラムをRAM204に読み出して実行することにより実現される。S504「RegDH(DRDY=1)の通知があったSSD115に対してライトアクセスを行う」までの動作は上記第1の実施形態で説明した図5のフローチャートと同一のため説明を省略する。
S504に続いてS1101で、CPU201は、ライトデータを保留データバッファ901に書き込む。続いて、S1102で、CPU201は、フラッシュメモリ203内のライト保留レジスタ220の有効ビット803がクリア「0」であるレジスタを検索する。さらに、CPU201は、検索したレジスタにライトアドレス、データサイズ及び保留データバッファ901のRAMアドレスを書き込み、有効ビット803を「1」にセットし、メインルーチンに戻る。
<リカバリモード>
次に、図12を参照して、本実施形態におけるサブルーチンS409「リカバリモード」の処理手順を説明する。例えばCPU201がフラッシュメモリ203等に格納されたプログラムをRAM204に読み出して実行することにより実現される。上記第1の実施形態と同じ番号を付しているステップは上記第1の実施形態と同一の動作のため説明は省略する。
S601でフラッシュメモリ203内のライト保留レジスタ220の有効ビット803が「1」にセットされているレジスタがある場合は、S1201に進む。S1201で、CPU201は、同じレジスタのライトアドレス801、データサイズ802及びRAMアドレスを読み出す。続いて、S1202で、CPU201は、S1201で読み出したRAMアドレス情報とデータサイズ情報をもとにRAM204からデータをリードして、S604に進む。その後は上記第1の実施形態で説明した図6のフローチャートと同様であるため説明を省略する。
以上説明したように、本実施形態によれば、複数の記憶装置のうち何れかの記憶装置がレディ状態でない場合に、当該記憶装置に対するライト要求に係るデータを記憶装置制御部111に設けられたRAM204に格納する。これにより、リカバリモードで保留していたライトデータをSSD115から読み出す必要がなく、ホスト側のメインCPU102からのリードアクセスとの競合がなくなるため、データの処理の高速化が可能となる。
<第3の実施形態>
以下では、本発明の第3の実施形態について説明する。上記第1の実施形態では、サブルーチンS409「リカバリモード」ではHDD116へのライトの保留がある場合は、保留されたライトデータを全てHDD116に書き込むことを優先したが、本実施形態ではこの部分を変更したものである。この「リカバリモード」の動作以外は構成を含めて上記第1の実施形態と同一であるため説明を省略する。
<リカバリモード>
図13を参照して、本実施形態におけるサブルーチンS409「リカバリモード」の処理手順を説明する。例えばCPU201がフラッシュメモリ203等に格納されたプログラムをRAM204に読み出して実行することにより実現される。上記第1の実施形態と比較して特徴的な動作はホスト側のメインCPU102からのアクセス要求(リード要求又はライト要求)を優先するところである。
まずS1301で、CPU201は、ホスト側のメインCPU102からリード要求があるか否かを判断する。S1301でメインCPU102からリード要求がある場合(Yes)、S1302で、CPU201は、SSD115に対してリードアクセスを行い、リードしたデータをホスト側のメインCPU102に転送する。一方、S1301でメインCPU102からリード要求がない場合(No)、S1303で、CPU201は、メインCPU102からライト要求があるか否かを判断する。
S1303でメインCPU102からライト要求がある場合(Yes)、S1304で、CPU201は、SSD115とHDD116に対してライトアクセスを行い、S601に進む。一方、S1303でメインCPU102からライト要求がない場合(No)はS601に進む。S601からS605までの動作は上記第1の実施形態と同一であるため説明を省略する。S605に続いてS1301に戻り、CPU201は、メインCPU102からリード要求があるか否かを判断する。
以上説明したように、本実施形態によれば、リカバリモードで保留していたライトデータの処理よりホスト側のメインCPU102からのリード要求又はライト要求のアクセス要求を優先して処理する。これにより、情報処理装置の起動時間及び復帰時間の短縮がより高速化される。
<第4の実施形態>
以下では、本発明の第4の実施形態について説明する。本実施形態は、上記第1の実施形態のシングルモード又はリカバリモードの途中で不意の電源遮断が発生し、HDD116へのライト保留が残った状態でパワーオンした場合を考慮したものである。上記第1の実施形態と動作が同一であるステップには同一の番号を付し、説明を省略する。
<記憶装置制御部の処理手順>
図14を参照して、本実施形態に係る記憶装置制御部111の動作の処理手順を説明する。以下で説明する処理は、例えばCPU201がフラッシュメモリ203等に格納されたプログラムをRAM204に読み出して実行することにより実現される。図14において上記第1の実施形態で説明した図4のフローチャートと同一であるステップについては同一の番号を付し説明を省略する。
S403でSSD115又はHDD116からRegDH(DRDY=1)の通知がある場合、S1401に進む。S1401で、CPU201は、フラッシュメモリ203内のライト保留レジスタ220の有効ビット803が「1」にセットされているレジスタがあるか否かを判断する。S1401で有効ビット803が「1」にセットされているレジスタがない場合(No)、S406に移行し以降の動作は上記第1の実施形態で説明した図4のフローチャートと同一である。
一方、S1401で有効ビット803が「1」にセットされているレジスタがある場合(Yes)、S1402に進む。S1402で、CPU201は、S403で通知がない方のストレージデバイスからのRegDH(DRDY=1)の通知を待ち、全てのストレージデバイスからRegDH(DRDY=1)が通知されたか否かを判断する。S1402で全てのストレージデバイスからRegDH(DRDY=1)の通知があったと判断しない場合(No)、S1405に進み、CPU201は、リトライタイマーをチェックし、リトライが必要な時間が経過しているか否かを判断する。S1405でリトライが必要な時間が経過していないと判断したら(No)、S1402に戻り、リトライが必要な時間が経過していると判断したら(Yes)、S1406に進む。
S1406で、CPU201は、次にリトライ回数をチェックし、リトライ回数が所定の回数を超えたか否かを判断する。S1406でリトライ回数が所定の回数を超えていない場合(No)、S1407に移行し、CPU201は、レディ状態になっていないデバイスに対してOOBシーケンス処理を行う。続いて、S1408で、CPU201は、リトライタイマーを起動してS1402に処理を戻す。
一方、S1406でリトライ回数が所定の回数を超えている場合(Yes)は、片側のストレージデバイスの故障等が考えられるため、縮退モードのサブルーチンS415に進む。またS1402で全てのストレージデバイスからRegDH(DRDY=1)の通知がある場合(Yes)は、リカバリモードのサブルーチンS1403に進む。サブルーチンS1403「リカバリモード」の動作は、上記第1の実施形態のサブルーチンS409「リカバリモード」と同一のため、説明を省略する。そしてリカバリモード終了後、S1404で、CPU201は、ホスト側のメインCPU102にRegDH(DRDY=1)を通知する。そしてサブルーチンS410「ミラーリングモード」に進む。
以上説明したように、本実施形態によれば、リカバリモードの完了前に不意な電源遮断が発生した場合であっても、次の起動時にライト保留の有無を判断しライト保留が残っている場合は、最初にリカバリを行う。従って、不意の電源遮断が発生した場合であっても、複数のストレージデバイス間のデータの整合を保つことができる。
<第5の実施形態>
以下では、本発明の第5の実施形態について説明する。上記第1乃至第4の実施形態では、複数のストレージデバイスに同一のデータを格納するミラーリングモードで動作させたとの形態について説明した。しかし、本発明は、複数のディスクをまとめて大容量のストレージを実現するJBOD(Just a Bunch Of Disks)にも適用でき、これについて本実施形態で説明する。
<JBOD>
図16を参照して、JBODの概要を説明する。図16において、115と116はそれぞれ記憶装置であり、本実施形態において115は容量64GBのSSD、116は容量256GBのHDDとする。
印刷装置100の記憶装置制御部111は、これらSSD115とHDD116を仮想的に結合し、印刷装置100内のメイン制御部101のメインCPU102に対して容量が320GBの1つの記憶装置1601として取り扱う。ただし、ライトデータを一時的に格納しておくためのテンポラリ領域1602を予め確保しておく。
また、記憶装置制御部111の内部構成は、フラッシュメモリ203内のライト保留レジスタ220の構成が異なるのみで他は上記第1の実施形態と同じである。ここで、図21を参照して、本実施形態に係るライト保留レジスタ220の構成例について説明する。図21において上記第1の実施形態で説明した図8と同一なものは同一の番号を付し、説明を省略する。2101はテンポラリアドレス保持用領域であり、テンポラリ領域1602内のどこに保持したかを示すアドレス情報を格納する。
<記憶装置制御部の処理手順>
次に、図17を参照して、本実施形態に係る記憶装置制御部111の動作の処理手順を説明する。以下で説明する処理は、例えばCPU201がフラッシュメモリ203等に格納されたプログラムをRAM204に読み出して実行することにより実現される。図17において上記第4の実施形態で説明した図14のフローチャートと同一であるステップについては同一の番号を付し、説明を省略する。
上記第4の実施形態ではS412でリトライ回数が所定の回数を超えている場合(Yes)には、サブルーチンS415「縮退モード」に移行した。しかし、本実施形態では、JBODが機能できなくなるため、ホスト側のメインCPUにRegDH(DRDY=0)、即ちDevice Not Readyを通知する。上記第4の実施形態とは、サブルーチンS1702の「シングルモード」と、サブルーチンS1701及びS1703の「リカバリモード」との動作が異なる。また、サブルーチン「ミラーリングモード」がサブルーチンS1704「ハイブリッドモード」に変更される。以下では順に説明する。
<シングルモード>
図18を参照して、サブルーチンS1702の「シングルモード」における動作の処理手順について説明する。例えばCPU201がフラッシュメモリ203等に格納されたプログラムをRAM204に読み出して実行することにより実現される。
まず、S1801で、CPU201は、ホスト側のメインCPU102からリード要求があるか否かを判断する。S1801でメインCPU102からリード要求がある場合(Yes)、S1802に進み、CPU201は、アクセス先がRegDH(DRDY=1)を通知したストレージデバイス(ここではSSD115とする。)であるか否かを判断する。S1802でアクセス先がSSD115であると判断した場合(Yes)、S1803に進み、CPU201は、SSD115に対してリードアクセスを行い、リードしたデータをホスト側のメインCPU102に転送する。そしてメインルーチンに戻る。また、S1802でアクセス先がSSD115でないと判断した場合(No)、何もせずにメインルーチンに戻る。
一方、S1801でメインCPU102からリード要求がない場合(No)、S1804に進み、CPU201は、メインCPU102からライト要求があるか否かを判断する。S1804でメインCPU102からライト要求がある場合(Yes)、S1805に進み、CPU201は、アクセス先がRegDH(DRDY=1)を通知したストレージデバイスか否かを判断する。S1805でアクセス先がSSD115であると判断した場合(Yes)、S1806に進み、CPU201は、SSD115に対してライトアクセスを行い、メインルーチンに戻る。
一方、S1805でアクセス先がSSD115でないと判断した場合(No)、S1807に進み、CPU201は、SSD115のテンポラリ領域1602にデータをライトする。続いて、S1808で、CPU201は、フラッシュメモリ203内のライト保留レジスタ220の有効ビット803がクリア「0」であるレジスタを検索する。さらに、CPU201は、検索したレジスタにライトアドレス、データサイズ、そしてS1807でSSD115のテンポラリ領域1602に書き込んだアドレスをテンポラリアドレスとして書き込み、有効ビット803を「1」にセットする。そしてメインルーチンに戻る。
<リカバリモード>
次に、図19を参照して、サブルーチンS1701、1703「リカバリモード」における動作の処理手順について説明する。例えばCPU201がフラッシュメモリ203等に格納されたプログラムをRAM204に読み出して実行することにより実現される。
まず、S1901で、CPU201は、フラッシュメモリ203内のライト保留レジスタ220の有効ビット803が「1」にセットされているレジスタがあるか否かを判断する。有効ビット803が「1」にセットされているレジスタがない場合(No)、メインルーチンに戻る。
一方、有効ビット803が「1」にセットされているレジスタがある場合(Yes)、S1902に進み、CPU201は、同じレジスタのライトアドレス801及びデータサイズ802、テンポラリアドレス2101を読み出す。続いて、S1903で、CPU201は、読み出したテンポラリアドレス情報とデータサイズ情報に基づいて、SSD115からデータをリードする。S1904で、CPU201は、リードデータをS1902で読み出したライトアドレス情報に基づいて、HDD116にライトする。さらに、S1905で、CPU201は、ライトが完了したらS1902で読み出したレジスタの有効ビットを「0」にクリアし、S1901に戻る。
<ハイブリッドモード>
次に、図20を参照して、サブルーチンS1704「ハイブリッドモード」における動作の処理手順について説明する。例えばCPU201がフラッシュメモリ203等に格納されたプログラムをRAM204に読み出して実行することにより実現される。ここで、ハイブリッドモードとは、上記第1乃至第4のミラーリングモードとは異なり、SSD115及びHDD116の何れか一方のみに、例えばアクセス先の記憶装置に対してのみライトアクセス又はリードアクセスを行うモードである。
まず、S2001で、CPU201は、ホスト側のメインCPU102からリード要求があるか否かを判断する。S2001でメインCPU102からリード要求がある場合(Yes)、S2002に進み、CPU201は、アクセス先のデバイスに対してリードアクセスを行い、リードしたデータをホスト側のメインCPU102に転送して、S2005に進む。
一方、S2001でメインCPU102からリード要求がない場合(No)、S2003に進み、CPU201は、メインCPU102からライト要求があるか否かを判断する。S2003でメインCPU102からライト要求がある場合(Yes)、S2004に進み、CPU201は、アクセス先のデバイスに対してライトアクセスを行う。続いて、S2005で、CPU201は、メインCPU102からストレージの電源をオフする前に発行されるStandby Immediateコマンドを受信したか否かを判断する。S2005でStandby Immediateコマンドを受信していない場合(No)は、S2001に戻る。一方、S2005でStandby Immediateコマンドを受信した場合(Yes)、S2206に進み、CPU201は、SSD115とHDD116に対してStandby Immediateコマンドを送信するし、メインルーチンに戻る。
以上説明したように、本実施形態によれば、JBOD制御にシングルモードとリカバリモードを設ける。これにより、全ての記憶装置がレディ状態になっていなくても、レディ状態になっている記憶装置のリードライトのみならず、レディ状態になっていない記憶装置のライトも可能となる。よって、パワーオン時の起動時間及び省電力モードからの復帰時間を短縮することが可能となる。
なお、本発明は上記実施形態に限らず様々な変形が可能である。例えば、ライト要求に係るデータのアクセス先が既に保持している保留データとして保持しているアドレスへのライト要求である場合には、既に保持している保留データに上書きするように制御してもよい。これにより、不要なリカバリ処理を削減することができ、起動時間や復帰時間を短縮することができる。
<その他の実施形態>
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
100:印刷装置、101:メイン制御部、102:メインCPU、103:ROM、104:RAM、105:LAN−IF、106:フラッシュメモリ、107:画像処理部、111:記憶装置制御部、112:操作部、113:スキャナ部、114:プリンタ部、115:SSD、116:HDD、120:PC、130:ネットワーク

Claims (14)

  1. 上位装置と、複数の記憶装置とに接続された記憶制御装置であって、
    前記複数の記憶装置の何れかへのライト要求を前記上位装置から受信する受信手段と、
    前記複数の記憶装置のうち前記ライト要求のアクセス先に指定された記憶装置がまだ起動していない場合に、当該ライト要求に係るデータを保留する保留手段と、
    前記アクセス先に指定された記憶装置がレディ状態になると、前記保留手段によって保留された前記ライト要求に係るデータを該記憶装置に書き込む書込手段と
    を備えることを特徴とする記憶制御装置。
  2. 前記保留手段は、前記複数の記憶装置のうち既にレディ状態である記憶装置に前記ライト要求に係るデータを書き込むことによって該データを保留することを特徴とする請求項1に記載の記憶制御装置。
  3. 前記保留手段は、前記記憶制御装置に設けられたRAMに、前記ライト要求に係るデータを書き込むことによって該データを保留することを特徴とする請求項1に記載の記憶制御装置。
  4. 前記保留手段は、前記記憶制御装置に設けられたフラッシュメモリに、前記ライト要求を保留していること、及び前記ライト要求に係るデータを保留している場所を示す保留情報を格納し、
    前記書込手段は、前記保留手段によって前記フラッシュメモリに格納された保留情報を参照して、保留された前記ライト要求に係るデータを取得することを特徴とする請求項1乃至3の何れか1項に記載の記憶制御装置。
  5. 前記書込手段は、前記複数の記憶装置の全てがレディ状態にある場合に、ライト要求を受け付けると、前記複数の記憶装置の全てに対して該ライト要求に係るデータを書き込むことを特徴とする請求項1乃至4の何れか1項に記載の記憶制御装置。
  6. 前記書込手段は、前記保留手段によって保留された前記ライト要求に係るデータを当該記憶装置に書き込む際に、前記上位装置からの他のアクセス要求を前記受信手段によって受信すると、前記ライト要求に係るデータを当該記憶装置に書き込む前に、前記上位装置からの他のアクセス要求を優先して処理することを特徴とする請求項1乃至5の何れか1項に記載の記憶制御装置。
  7. 前記複数の記憶装置の何れか1つがレディ状態になると前記上位装置にアクセス許可を通知する通知手段をさらに備えることを特徴とする請求項1乃至6の何れか1項に記載の記憶制御装置。
  8. 前記複数の記憶装置の何れか1つがレディ状態になった際に、前記保留手段によって保留された前記ライト要求に係るデータがあれば、前記通知手段による通知の前に、前記書込手段による書き込みが行われることを特徴とする請求項7に記載の記憶制御装置。
  9. 前記複数の記憶装置は、少なくとも1つのSSD(Solid State Drive)と、前記SSDよりも起動が遅い、少なくとも1つのHDD(Hard Disk Drive)を含むことを特徴とする請求項1乃至8の何れか1項に記載の記憶制御装置。
  10. 前記SSDと前記HDDとの間でミラーリングを実行する実行手段をさらに備えることを特徴とする請求項9に記載の記憶制御装置。
  11. 前記SSDと前記HDDとは、1つの記憶装置として取り扱われることを特徴とする請求項9に記載の記憶制御装置。
  12. 情報処理装置であって、
    上位装置と、
    複数の記憶装置と、
    請求項1乃至11の何れか1項に記載の記憶制御装置と
    を備えることを特徴とする情報処理装置。
  13. 上位装置と、複数の記憶装置とに接続された記憶制御装置の制御方法であって、
    受信手段が、前記複数の記憶装置の何れかへのライト要求を前記上位装置から受信する受信工程と、
    保留手段が、前記複数の記憶装置のうち前記ライト要求のアクセス先に指定された記憶装置がまだ起動していない場合に、当該ライト要求に係るデータを保留する保留工程と、
    書込手段が、前記アクセス先に指定された記憶装置がレディ状態になると、前記保留工程で保留された前記ライト要求に係るデータを該記憶装置に書き込む書込工程と
    を含むことを特徴とする記憶制御装置の制御方法。
  14. 上位装置と、複数の記憶装置とに接続された記憶制御装置の制御方法における各工程をコンピュータに実行させるためのプログラムであって、前記制御方法は、
    受信手段が、前記複数の記憶装置の何れかへのライト要求を前記上位装置から受信する受信工程と、
    保留手段が、前記複数の記憶装置のうち前記ライト要求のアクセス先に指定された記憶装置がまだ起動していない場合に、当該ライト要求に係るデータを保留する保留工程と、
    書込手段が、前記アクセス先に指定された記憶装置がレディ状態になると、前記保留工程で保留された前記ライト要求に係るデータを該記憶装置に書き込む書込工程と
    を含むことを特徴とするプログラム。
JP2017185317A 2017-09-26 2017-09-26 記憶制御装置、その制御方法、プログラム、及び情報処理装置 Pending JP2019061483A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2017185317A JP2019061483A (ja) 2017-09-26 2017-09-26 記憶制御装置、その制御方法、プログラム、及び情報処理装置
US16/140,758 US10852970B2 (en) 2017-09-26 2018-09-25 Storage control apparatus, control method thereof, storage medium, and information processing apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017185317A JP2019061483A (ja) 2017-09-26 2017-09-26 記憶制御装置、その制御方法、プログラム、及び情報処理装置

Publications (2)

Publication Number Publication Date
JP2019061483A true JP2019061483A (ja) 2019-04-18
JP2019061483A5 JP2019061483A5 (ja) 2020-11-12

Family

ID=65808739

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017185317A Pending JP2019061483A (ja) 2017-09-26 2017-09-26 記憶制御装置、その制御方法、プログラム、及び情報処理装置

Country Status (2)

Country Link
US (1) US10852970B2 (ja)
JP (1) JP2019061483A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021086583A (ja) * 2019-11-29 2021-06-03 キヤノン株式会社 情報処理装置、制御装置および制御装置の制御方法

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115310136B (zh) * 2022-10-09 2023-02-03 山东华翼微电子技术股份有限公司 基于sata桥接芯片的数据安全保障方法

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008097237A (ja) * 2006-10-11 2008-04-24 Hitachi Ltd ストレージ装置及びその制御方法
JP2009187450A (ja) * 2008-02-08 2009-08-20 Nec Corp ディスクアレイシステム,ディスクアレイ制御方法及びディスクアレイ制御用プログラム
JP2009251786A (ja) * 2008-04-03 2009-10-29 Fujitsu Ltd データ処理方法、ストレージ装置およびストレージシステム
JP2012203437A (ja) * 2011-03-23 2012-10-22 Nec Corp ストレージ装置、方法及びプログラム
JP2014052856A (ja) * 2012-09-07 2014-03-20 Nec Corp ディスクアレイ制御装置、ディスクアレイ制御方法、及びそのプログラム
JP2016041470A (ja) * 2014-08-14 2016-03-31 キヤノン株式会社 印刷装置、印刷装置に接続されたストレージの制御装置、印刷装置の制御方法及びプログラム
JP2016057811A (ja) * 2014-09-09 2016-04-21 株式会社 日立産業制御ソリューションズ 蓄積配信サーバ及び蓄積配信システム

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7120824B2 (en) * 2003-05-09 2006-10-10 International Business Machines Corporation Method, apparatus and program storage device for maintaining data consistency and cache coherency during communications failures between nodes in a remote mirror pair
US8046548B1 (en) * 2007-01-30 2011-10-25 American Megatrends, Inc. Maintaining data consistency in mirrored cluster storage systems using bitmap write-intent logging
US20140129765A1 (en) * 2012-11-07 2014-05-08 Taejin Info Tech Co., Ltd. Method to improve data reliability in dram ssd using asynchronous logging and incremental backup
US9472222B2 (en) * 2014-05-16 2016-10-18 Western Digital Technologies, Inc. Vibration mitigation for a data storage device
JP6532240B2 (ja) 2015-02-09 2019-06-19 キヤノン株式会社 情報処理装置およびその制御方法
US9836368B2 (en) * 2015-10-22 2017-12-05 Netapp, Inc. Implementing automatic switchover

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008097237A (ja) * 2006-10-11 2008-04-24 Hitachi Ltd ストレージ装置及びその制御方法
JP2009187450A (ja) * 2008-02-08 2009-08-20 Nec Corp ディスクアレイシステム,ディスクアレイ制御方法及びディスクアレイ制御用プログラム
JP2009251786A (ja) * 2008-04-03 2009-10-29 Fujitsu Ltd データ処理方法、ストレージ装置およびストレージシステム
JP2012203437A (ja) * 2011-03-23 2012-10-22 Nec Corp ストレージ装置、方法及びプログラム
JP2014052856A (ja) * 2012-09-07 2014-03-20 Nec Corp ディスクアレイ制御装置、ディスクアレイ制御方法、及びそのプログラム
JP2016041470A (ja) * 2014-08-14 2016-03-31 キヤノン株式会社 印刷装置、印刷装置に接続されたストレージの制御装置、印刷装置の制御方法及びプログラム
JP2016057811A (ja) * 2014-09-09 2016-04-21 株式会社 日立産業制御ソリューションズ 蓄積配信サーバ及び蓄積配信システム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021086583A (ja) * 2019-11-29 2021-06-03 キヤノン株式会社 情報処理装置、制御装置および制御装置の制御方法
US11842064B2 (en) 2019-11-29 2023-12-12 Canon Kabushiki Kaisha Information processing apparatus, control device, and control method of control device

Also Published As

Publication number Publication date
US20190095118A1 (en) 2019-03-28
US10852970B2 (en) 2020-12-01

Similar Documents

Publication Publication Date Title
JP4439960B2 (ja) ストレージ装置
EP2453362A2 (en) Data transferring apparatus and control method thereof
KR101311624B1 (ko) 정보 처리 장치, 정보 처리 장치의 제어 방법 및 기록 매체
JP2007011522A (ja) データの消去方法、ストレージ・デバイス及び計算機システム
US7694089B2 (en) Resource efficient remote copy pair for data retention
JP2019061483A (ja) 記憶制御装置、その制御方法、プログラム、及び情報処理装置
JP5398761B2 (ja) メモリシステム
JP2008090798A (ja) データ処理システムのバックアップ制御装置及びシステム
KR101427535B1 (ko) 정보 처리 장치, 기록 매체 및 영역 해방 제어 방법
JP5209535B2 (ja) Usbホストコントローラ及びusbホストコントローラの制御方法
JP5775367B2 (ja) 情報処理装置及びその制御方法と、ミラーリングシステム及びraid制御装置
JP2008065559A (ja) ストレージ装置、ストレージシステム、ストレージ装置の制御方法
EP1035467B1 (en) Printer and printer data processing method
JP4076316B2 (ja) 不揮発性キャッシュメモリを用いたデータ書き込みシステム
JP6000754B2 (ja) 画像処理装置、画像処理装置の制御方法、及びプログラム
JP2007193839A (ja) ストレージシステム、ストレージシステムにおけるデータ送受信方法及びシステム
JP6704127B2 (ja) 情報処理装置
JP2018073005A (ja) 情報処理装置とその制御方法、及びプログラム
JP2005267498A (ja) ソフトウェアインストール方法およびシステム
JPH07160432A (ja) 磁気ディスクコントロ−ラの二重化方式
JP2021072016A (ja) 画像形成装置、その制御方法、及びプログラム
JP2003345524A (ja) 記憶制御装置の制御方法及び記憶制御装置
JP2021179730A (ja) 情報処理装置、その制御方法、およびプログラム
JP2000259366A (ja) 記憶制御装置及び該記憶制御装置を有するプリンタ
JP2022071543A (ja) 制御装置および制御装置の制御方法

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200928

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200928

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20210103

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210113

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210428

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210524

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210726

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20211217

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220214

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20220624