ホスト装置から送信される、不揮発性のメディアにデータをライトすることを指示するライトコマンドに応じて、前記ホスト装置から転送されるデータを格納するデータバッファと、主電源から供給される電力によって充電されるバックアップ電源であって、前記主電源の電圧が規定電圧よりも低下した場合に前記主電源をバックアップするバックアップ電源の放電容量を検出する放電容量検出手段と、前記検出された放電容量に基づき、前記バックアップ電源からの電力の供給によってライトキャッシングが可能な第1の時間を算出し、且つ前記データバッファに格納されていて且つ前記メディアに未書き込みのデータのサイズに基づいて、前記未書き込みデータを前記メディアにライトするのに要する第2の時間を算出する時間算出手段と、前記第1の時間と前記第2の時間とを比較することにより、前記第1の時間内に前記未書き込みデータを前記メディアにライトすることが可能であるかを判別し、ライト可能であるならば、前記ホストにライト完了のレスポンスを送信する判別手段と、前記ライト完了のレスポンスが送信された後、前記データバッファに格納されている前記未書き込みデータを前記メディアにライトするメディアコントローラとを具備するストレージコントローラ。前記判別手段は、ライト不可であると判別されたならば、前記ホストに前記ライト完了のレスポンスを送信することを抑止し、前記メディアコントローラは、前記ライト不可であると判別されたならば、前記データバッファに格納されている前記未書き込みデータを、所定のサイズを単位に前記メディアにライトし、前記所定のサイズのデータを前記メディアにライトする都度、前記データバッファに残されている未書き込みデータのサイズを前記時間算出手段に通知し、前記時間算出手段は、前記通知されたサイズに基づいて、前記第2の時間を再度算出する請求項1記載のストレージコントローラ。前記時間算出手段は、Nを自然数であるとすると、前記通知されたサイズが、前記所定のサイズのN倍より大きく前記所定のサイズのN1倍より小さい場合、前記残されている未書き込みデータに含まれている前記所定のサイズに満たないデータを前記所定のサイズに加工するのに必要な加工時間を算出し、前記算出された加工時間を、前記所定のサイズを単位にN1回前記メディアにデータをライトするのに要する時間に加算することにより、前記第2の時間を算出する請求項2記載のストレージコントローラ。前記メディアが書き換え可能な不揮発性メモリである請求項1記載のストレージコントローラ。前記放電容量検出手段は、前記ライト要求に応じたライト動作とは非同期に前記放電容量を検出する請求項1記載のストレージコントローラ。書き換えが可能な不揮発性のメディアと、ホスト装置からの要求に応じて前記メディアへのアクセスを制御する、請求項1記載のストレージコントローラとを具備するストレージ装置。ホスト装置から送信される、不揮発性のメディアにデータをライトすることを指示するライトコマンドに応じて、前記ホスト装置から転送されるデータを格納するデータバッファを備えたストレージコントローラに適用されるライトキャッシング方法であって、主電源から供給される電力によって充電されるバックアップ電源の放電容量を検出し、前記検出された放電容量に基づき、前記バックアップ電源からの電力の供給によってライトキャッシングが可能な第1の時間を算出し、前記データバッファに格納されていて且つ前記メディアに未書き込みのデータのサイズに基づいて、前記未書き込みデータを前記メディアにライトするのに要する第2の時間を算出し、前記第1の時間と前記第2の時間とを比較することにより、前記第1の時間内に前記未書き込みデータを前記メディアにライトすることが可能であるかを判別し、ライト可能であるならば、前記ホストにライト完了のレスポンスを送信し、前記ライト完了のレスポンスが送信された後、前記データバッファに格納されている前記未書き込みデータを前記メディアにライトするライトキャッシング方法。従来技術では、バックアップ電源の電圧が所定電圧を超えていることをもって、前記所定時間を、主電源の遮断時における動作可能時間として保証している。しかし、バックアップ電源の電圧例えば充電電圧は、必ずしも動作可能時間に対応しているとは限らない。その要因は、バックアップ電源の疲弊度にある。このため従来技術では、疲弊度の高いバックアップ電源に合わせて前記所定時間が設定される。この場合、主電源が遮断した際にライトキャッシングによってメディアにライトすることが可能なデータのサイズ以下、ライトキャッシュサイズと称するは短くなる。つまり、ライトキャッシュサイズは、バックアップ電源が疲弊している状態を基準としたサイズに制限されてしまう。本発明の目的は、バックアップ電源の疲弊度に適合したライトキャッシュサイズを設定することができるストレージコントローラ、ストレージ装置及びライトキャッシング方法を提供することにある。実施形態によれば、ストレージコントローラは、データバッファと、放電容量検出手段と、時間算出手段と、判別手段と、メディアコントローラとを具備する。前記データバッファは、ホスト装置から送信される、不揮発性のメディアにデータをライトすることを指示するライトコマンドに応じて、前記ホスト装置から転送されるデータを格納する。前記放電容量検出手段は、主電源から供給される電力によって充電されるバックアップ電源の放電容量を検出する。前記バックアップ電源は、前記主電源の電圧が規定電圧よりも低下した場合に前記主電源をバックアップする。前記時間算出手段は、前記検出された放電容量に基づき、前記バックアップ電源からの電力の供給によってライトキャッシングが可能な第1の時間を算出する。前記時間算出手段は更に、前記データバッファに格納されていて且つ前記メディアに未書き込みのデータのサイズに基づいて、前記未書き込みデータを前記メディアにライトするのに要する第2の時間を算出する。前記判別手段は、前記第1の時間と前記第2の時間とを比較することにより、前記第1の時間内に前記未書き込みデータを前記メディアにライトすることが可能であるかを判別する。ライト可能であるならば、前記判別手段は、前記ホストにライト完了のレスポンスを送信する。前記メディアコントローラは、前記ライト完了のレスポンスが送信された後、前記データバッファに格納されている前記未書き込みデータを前記メディアにライトする。以下、実施の形態につき図面を参照して説明する。図1は一つの実施形態に係る電子機器の典型的な構成を示すブロック図である。図1に示す電子機器は、ストレージ装置10と、当該ストレージ装置10を利用するホスト装置ホスト20とから構成される。本実施形態において、電子機器はパーソナルコンピュータである。しかし、電子機器がパーソナルコンピュータである必要はなく、パーソナルコンピュータ以外の電子機器、例えばビデオカメラ、音楽プレーヤー、携帯端末、携帯電話機、或いはプリンタ装置であってもよい。ホスト20はホストインタフェース21を介してストレージ装置10と接続されている。ストレージ装置10は、メディア100及びストレージコントローラ110から構成される。メディア100は、データを格納するのに用いられる書き換えが可能な不揮発性の記憶媒体である。本実施形態において、メディア100はフラッシュメモリに代表される不揮発性メモリであり、ストレージ装置10はソリッドステートドライブSSDであるものとする。しかし、メディア100が、例えば磁気ディスクであり、ストレージ装置10がハードディスクドライブHDDであっても構わない。ストレージコントローラ110は、ホスト20からの要求に応じてメディア100へのアクセスを制御する。ストレージコントローラ110は、ホストインタフェースコントローラ111と、データバッファ112と、メディアコントローラ113と、キャパシタ114と、バッファコントローラ115とを備えている。ホストインタフェースコントローラ111、データバッファ112、メディアコントローラ113、キャパシタ114、バッファコントローラ115及びメディア100は、内部バス120によって相互接続されている。ホストインタフェースコントローラ111は、ホストインタフェース21を介してホスト20と通信する。データバッファ112は、ホスト20から受け取ったデータライトデータを一時的に格納するのに用いられる。データバッファ112はまた、メディア100から読み出されたデータリードデータを一時的に格納するのにも用いられる。メディアコントローラ113は、バッファコントローラ115内の後述するライト制御部117からの要求に応じてメディア100にアクセスする。キャパシタ114は、ストレージ装置10のための主電源の電圧が規定電圧よりも低下した場合に当該主電源をバックアップして、当該ストレージ装置10内のデータバッファ112及びメディア100を含む要素群に一時的に電源を供給するのに用いられるバックアップ電源である。前記主電源の電圧が規定電圧よりも低下する例として、前記主電源が遮断した場合が挙げられる。以下の説明では、簡略化のために、主電源の遮断を前提とする。キャパシタ114つまり、バックアップ電源は、通常状態において前記主電源から供給される電力によって充電される。前記主電源は、例えばAC-DC電源である。キャパシタ114は、例えば電気二重層キャパシタである。しかし、キャパシタ114が、電気二重層キャパシタである必要はない。また、キャパシタ114に代えて、例えばリチウムイオン電池のような二次電池を用いてもよい。つまり、バックアップ電源として、二次電池を用いてもよい。また、キャパシタ114がストレージコントローラ110の外部に設けられていてもよい。バッファコントローラ115は、ホスト20からのメディア100へのアクセスの要求に応じて、データバッファ112を制御する。バッファコントローラ115は、リード制御部116と、ライト制御部117と、ライトキャッシング判別部118と、キャパシタ放電容量検出部119とを備えている。リード制御部116は、データバッファ112からのデータのリードを制御する。ライト制御部117は、データバッファ112へのデータのライトを制御する。ライト制御部117は、データバッファ112にライト格納されたデータを周知のバッファ管理テーブル図示せずにより管理する。バッファ管理テーブルは、DRAMのようなメモリに保持される。バッファ管理テーブルは、データバッファ112に格納されたデータの、当該データバッファ112内の位置を示すバッファアドレスと、当該データがライトされるべき例えば論理アドレスとの対応を示す情報を保持する。またバッファ管理テーブルは、データバッファ112に格納されたデータが、メディア100に未書き込みであるかを示す情報も保持する。バッファ管理テーブルは更に、データバッファ112に格納されていて且つメディア100に未書き込みのデータ全体のサイズデータサイズを示す情報も保持する。ライトキャッシング判別部118は時間算出部118aを備えている。時間算出部118aは、キャパシタ114の放電容量mAhより詳細には、キャパシタ114の放電容量及びライトキャッシングに要する単位時間当たりの電力に基づいてキャパシタ駆動可能時間第1の時間TIMEdを算出する。キャパシタ駆動可能時間TIMEdは、主電源が遮断された際に、キャパシタ114からの電力の供給によってライトキャッシングが可能な時間を示す。つまりキャパシタ駆動可能時間TIMEdは、主電源が遮断されたとしても、データバッファ112に格納されていて且つメディア100に未書き込みのデータつまりデータバッファ112内の未書き込みデータを当該データバッファに保持することが保証される時間である。このキャパシタ駆動可能時間TIMEd内に、データバッファ内の未書き込みデータをメディア100にライトできるならば、主電源が遮断されたとしても、当該未書き込みデータが喪失するおそれはない。時間算出部118aはまた、データバッファ112内の未書き込みデータを全てメディア100にライトするのに要する総メディアライト時間第2の時間TIMEtotalを、当該未書き込みデータのサイズSIZEtotalに基づいて算出する。なお、時間算出部118aがライトキャッシング判別部118から独立して設けられていてもよい。ライトキャッシング判別部118は、総メディアライト時間TIMEtotalとキャパシタ駆動可能時間TIMEdとを比較する。ライトキャッシング判別部118は、この比較の結果に基づき、データサイズがSIZEtotalの未書き込みデータのためのライトキャッシングを、主電源の遮断の有無に無関係に実行することが可能かを判別する。キャパシタ放電容量検出部119は、キャパシタ114の放電容量を検出する。キャパシタ114の放電容量は、当該キャパシタ114の放電によって当該キャパシタ114から供給可能な電気量を表す。キャパシタ114の放電容量を検出する手法は、従来から種々知られている。本実施形態では、キャパシタ放電容量検出部119は、キャパシタ114の放電容量を次のように検出する。まずキャパシタ放電容量検出部119は、キャパシタ114をフル放電した後、当該キャパシタ114をフル充電する。キャパシタ放電容量検出部119は、キャパシタ114をフル充電するのに要する時間充電時間を測定する。キャパシタ114の充電時間は、当該キャパシタ114の放電容量に対応する。そこでキャパシタ放電容量検出部119は、キャパシタ114の充電時間毎に、当該充電時間と当該キャパシタ114の放電容量とを関連付けたテーブルを参照することにより、測定された充電時間に関連付けられた当該キャパシタ114の放電容量を検出する。なお、他の周知の手法によってキャパシタ114の放電容量を検出することも可能である。例えば、キャパシタ114の最小保障電圧が定められている場合、キャパシタ放電容量検出部119が、当該最小保障電圧まで当該キャパシタ114を放電した後、当該キャパシタ114をフル充電し、そのフル充電に要する充電時間を測定してもよい。この場合も、キャパシタ放電容量検出部119は、キャパシタ114の充電時間毎に、当該充電時間と当該キャパシタ114の放電容量とを関連付けたテーブルを参照することにより、測定された充電時間に関連付けられた当該キャパシタ114の放電容量を検出することができる。次に、本実施形態で適用されるストレージコントローラ110の制御によるライトキャッシングについて、図2のシーケンスチャートを参照して説明する。まず、ホスト20がストレージ装置10のストレージコントローラ110に対し、ホストインタフェース21を介して、メディア100にデータをライトすることを指示するライトコマンド以下、ライト要求と称するを送信したものとするステップ201。このライト要求は、ホスト20が要求するライトデータのサイズ転送サイズを示す情報と論理アドレスとを含む。本実施形態において、ホストインタフェース21は、SSD或いはHDDに代表される一般的なストレージ装置で採用されるシリアルATASATA或いはシリアルアタッチドSCSISASである。ホストインタフェース21がSATA或いはSASの場合、ホスト20は上述のように、ライトデータを送信転送する前に、転送サイズを含むライト要求をストレージコントローラ110に送信する。ストレージコントローラ110のホストインタフェースコントローラ111は、ホスト20から転送されたライト要求を受信すると、バッファコントローラ115のライト制御部117に対し、受信可能なライトデータのサイズを問い合わせるステップ202。受信可能なライトデータのサイズは、データバッファ112にライト可能なライトデータのサイズライト可能サイズを表す。ライト制御部117は、ホストインタフェースコントローラ111からの問い合わせに応じて、データバッファ112の空き領域のサイズを検出するステップ203。ライト制御部117は、検出されたサイズを、ホスト20からのライトが許可されるデータのサイズライト許可サイズとしてホストインタフェースコントローラ111に通知するステップ204。するとホストインタフェースコントローラ111は、ホスト20に対してライト許可を通知するステップ205。このライト許可は、ライト許可サイズつまりホスト20からの転送が許されるデータのサイズを示す情報を含む。ホスト20は、ホストインタフェースコントローラ111から通知されたライト許可を受け取ると、当該ライト許可で許可されたサイズのライトデータを、ホストインタフェース21及びホストインタフェースコントローラ111を介してデータバッファ112に送信転送するステップ206。なお、ホストインタフェース21が本実施形態のようにSATA或いはSASの場合、ホスト20は、前記許可されたサイズのライトデータを分割して送信してもよい。データバッファ112は、ホスト20から送信されたライトデータをデータバッファ112の空き領域に格納する。データバッファ112は、ホスト20から前記許可されたサイズのライトデータを受信格納し終えると、ライト制御部117に対してデータ受信完了を通知するステップ207。ライト制御部117は、このデータ受信完了の通知に応じて、データバッファ112で受信されたライトデータのサイズをデータサイズSIZEtotalとしてライトキャッシング判別部118に通知するステップ208。本実施形態において、ステップ208で通知されるデータサイズSIZEtotalは、データバッファ112に格納されていて、且つメディア100に未だ書かれていないライトデータのサイズに一致する。一方、キャパシタ放電容量検出部119は、ホスト20からのライト要求に応じたライト動作とは非同期に、キャパシタ114の放電容量を検出する。本実施形態では、キャパシタ放電容量検出部119は、予め定められたタイミングでキャパシタ114の放電容量を検出する。本実施形態では、この予め定められたタイミングは、毎日1回定時に到来する。しかし、キャパシタ放電容量検出部119がキャパシタ114の放電容量を検出するタイミングが、他のタイミングであっても構わない。キャパシタ放電容量検出部119は、キャパシタ114の放電容量を検出すると、その検出された静電容量キャパシタ静電容量をライトキャッシング判別部118に通知するステップ221。ライトキャッシング判別部118の時間算出部118aは、キャパシタ放電容量検出部119から通知されたキャパシタ114の放電容量に基づいてキャパシタ駆動可能時間TIMEdを算出するステップ222。キャパシタ駆動可能時間TIMEdは、主電源が遮断された際に、キャパシタ114からの電力の供給によってライトキャッシングが可能な時間を示す。本実施形態では、時間算出部118aは、キャパシタ114の放電容量を、ライトキャッシングで消費される電流で除することにより、キャパシタ駆動可能時間TIMEdを算出する。キャパシタ駆動可能時間TIMEdは、主電源が遮断したとしても、ライトキャッシングによってデータバッファ112からメディア100にライトすることが可能なデータのサイズ、つまりライトキャッシングが可能なライトキャッシュサイズに対応する。したがって時間算出部118aがキャパシタ駆動可能時間TIMEdを算出することは、ライトキャッシュサイズを算出することと等価である。さて、ライトキャッシング判別部118の時間算出部118aが最新のキャパシタ駆動可能時間TIMEdを既に算出している状態で、上述のように、ライト制御部117から当該ライトキャッシング判別部118に対して、データサイズSIZEtotalが通知されたものとするステップ208。するとライトキャッシング判別部118は、通知されたデータサイズSIZEtotalのライトデータのためのライトキャッシングを、キャパシタ駆動可能時間TIMEd内に実行することが可能であるかを判別するステップ209。つまりライトキャッシング判別部118は、前記データサイズSIZEtotalのライトデータを、たとえ前記主電源が遮断したとしても、キャパシタ114から供給される電力でデータバッファ112からメディア100にライトすることが可能であるかを判別する。この判別処理以下、ライトキャッシング判別処理と称するの具体的な手順については後述する。もし、ライトキャッシング可であるとステップ209において判別されたならば、ライトキャッシング判別部118は、ホスト20からのライト要求に対するレスポンスとしてライト完了のレスポンスをホストインタフェースコントローラ111を介して当該ホスト20に送信する。すると、メディアコントローラ113は、データバッファ112が受信格納したライトデータ、つまりライト制御部117からライトキャッシング判別部118に通知されたデータサイズSIZEtotalのライトデータをメディア100にライトする。このような、ライトキャッシング可であるとステップ209において判別された場合の動作は、図2のシーケンスチャートでは省略されている。本実施形態では、ライトキャッシング不可であるとステップ209において判別されたものとする。この場合、ライトキャッシング判別部118は、ホスト20からのライト要求で指定されたライトデータは全てデータバッファ112に格納されているにも拘わらず、当該ホスト20にライト完了のレスポンスを送信することを抑止する。その理由は、もし主電源が遮断したならば、前記通知されたデータサイズSIZEtotalのライトデータのためのライトキャッシングを、キャパシタ駆動可能時間TIMEd内に実行することは難しく、少なくとも一部のライトデータが喪失する可能性があるためである。一方、ライト制御部117は、ライトキャッシング不可であるとステップ209において判別された場合、データバッファ112に格納されていて且つメディア100に未書き込みのライトデータをメディア100にライトするために、メディアコントローラ113に対してライト要求を発行するステップ210。メディアコントローラ113は、ライト制御部117からのライト要求に応じ、上記未書き込みのライトデータをメディア100にライトするための第1のメディアライト動作ステップ211を少なくとも1回実行する。この第1のメディアライト動作ステップ211は次のように実行される。まずメディアコントローラ113は、データバッファ112に対して、データ転送要求を発行するステップ211a。このデータ転送要求に応じて、メディア100に固有のライト単位メディアライト単位のサイズSIZEunitのデータが、データバッファ112から当該メディア100に転送される。メディアライト単位は、メディア100に1回のアクセスでライト可能なデータのサイズである。つまり、メディア100へのデータライトは、このデータサイズがSIZEunitのメディアライト単位に実行される。データバッファ112からメディア100に転送される、データサイズがSIZEunitのデータは、データバッファ112に格納されていて、且つ最も最近に通知されたデータサイズSIZEtotalのライトデータつまり、メディア100に未書き込みのライトデータに含まれている。メディアコントローラ113は、このデータバッファ112から転送されるライトデータをメディア100にライトするステップ211b。するとメディア100は、ライト単位のサイズのデータのライト完了を示すレスポンスをメディアコントローラ113に返すステップ211c。メディアコントローラ113は、このメディア100からのレスポンスに応じて、データサイズSIZEtotalがメディアライト単位SIZEunitだけ減らされるように、次式SIZEtotalSIZEtotalSIZEunitに従って、当該データサイズSIZEtotalを更新する。更新されたデータサイズSIZEtotalは、最新のメディアライトが完了した時点においてデータバッファ112に格納されていて、且つメディア100に未書き込みのライトデータのサイズを示す。メディアコントローラ113は、更新された最新のデータサイズSIZEtotalをライトキャッシング判別部118に通知するステップ211d。するとライトキャッシング判別部118は、ライト制御部117からデータサイズSIZEtotalが通知された場合と同様に、メディアコントローラ113から通知された最新のデータサイズSIZEtotalに基づいてライトキャッシング可否を判別するステップ209。つまり、ライトキャッシング判別部118は、メディアコントローラ113から通知された最新のデータサイズSIZEtotalのライトデータのためのライトキャッシングを、キャパシタ駆動可能時間TIMEd内に実行することが可能であるかを判別する。もし、ライトキャッシング不可であるならば、上述の第1のメディアライト動作ステップ211が再び実行される。このように、第1のメディアライト動作は、ライトキャッシング可が判別されるまで繰り返される。やがて、ライトキャッシング可であるとステップ209において判別されたものとする。そこでライトキャッシング判別部118は、ホスト20からのライト要求に対するレスポンスとしてライト完了のレスポンスをホストインタフェースコントローラ111を介して当該ホスト20に送信するステップ212。すると、メディアコントローラ113は、データバッファ112に格納されていて且つメディア100に未書き込みのライトデータをメディア100にライトするための第2のメディアライト動作ステップ213を少なくとも1回実行する。この第2のメディアライト動作ステップ213は次のように実行される。まずメディアコントローラ113は、上記ステップ211aと同様に、データバッファ112に対して、データ転送要求を発行するステップ213a。このデータ転送要求に応じて、サイズSIZEunitのデータが、データバッファ112からメディア100に転送される。このメディア100に転送されるデータサイズがSIZEunitのデータは、データバッファ112に格納されていて、且つメディア100に未書き込みのライトデータである。メディアコントローラ113は、このデータバッファ112から転送されるライトデータを、上記ステップ211bと同様に、メディア100にライトするステップ213b。するとメディア100は、ライト単位のサイズのデータのライト完了を示すレスポンスをメディアコントローラ113に返すステップ213c。これにより、1回の第2のライト動作ステップ213が終了する。第2のライト動作は、データバッファ112に格納されていて、且つメディア100に未書き込みのライトデータが全て当該メディア100にライトされるまで繰り返される。この第2のライト動作が繰り返されている間に主電源が遮断したとしても、その時点でデータバッファ112に格納されていて、且つメディア100に未書き込みのライトデータは、全て当該メディア100にライトできることが保証されている。やがて、データバッファ112に残されている最後の未書き込みデータを含むライト単位のサイズのデータがメディア100にライトされたものとするステップ214。するとメディア100は、上記ステップ213cと同様に、ライト単位のサイズのデータのライト完了を示すレスポンスをメディアコントローラ113に返すステップ215。このレスポンスを受けてメディアコントローラ113は、データバッファ112内の未書き込みデータが全てメディア100にライトされたことを示すメディアライト完了をライト制御部117に通知するステップ216。これにより、ホスト20からのライト要求に対応するライト処理は完了する。次に上記ステップ209で実行されるライトキャッシング判別処理の典型的な手順について、図3のフローチャートを参照して説明する。まず、ライトキャッシング判別部118は、ライト制御部117から通知されたデータサイズSIZEtotalを受け付けるステップ301。データバッファ112がホスト20から転送されたライトデータを受信格納したことにより、1回目のライトキャッシング判別処理が実行される場合、ステップ301で受け付けられるデータサイズSIZEtotalは、当該データバッファ112で受信されたライトデータのサイズを表す。ライトキャッシング判別部118の時間算出部118aは、データサイズSIZEtotalをメディアライト単位のデータサイズSIZEunitで除するステップ302。即ち時間算出部118aは、次式SIZEtotal÷SIZEunitNαで示される除算を実行する。ここでNは自然数である。一方、αは端数であり、ゼロまたは小数0≦α<1である。上記除算により、時間算出部118aは、データバッファ112に格納されていて且つメディア100に未書き込みのデータサイズがSIZEtotalのライトデータを、全てメディア100にライトするのに必要なメディアライト回数を算出する。ここで、メディアライト回数は、αがゼロの場合、つまりSIZEtotalがSIZEunitで割り切れる場合、Nとなる。これに対し、αが非ゼロの場合、つまりSIZEtotalがSIZEunitで割り切れないためにN×SIZEunit<SIZEtotal<×SIZEunitである場合、メディアライト回数はN1となる。時間算出部118aは、ステップ302における除算の結果に基づいて、αが非ゼロα≠0であるかを判別するステップ303。もし、αが非ゼロα≠0であるならばステップ303のYes、つまりメディアライト回数がN1であるならば、ライトキャッシング判別部118はステップ304に進む。ステップ304において時間算出部118aは、メディアライト単位に満たない、サイズがSIZEtotalN×SIZEunitのデータを、当該メディアライト単位のサイズに加工するのに要する時間βを算出する。ストレージ装置10では、一般に誤り訂正符号が付されたデータがメディア100にライトされる。このため、メディア100にデータをライトする際には、データサイズをメディアライト単位に揃える必要がある。そこで、上述のようなメディアライト単位に満たないサイズのライトデータを、例えば主電源の遮断時に強制的にメディア100にライトする場合には、メディアライト単位に足りないサイズのデータとして、例えば予め定められたダミーデータ例えば無効なデータが用いられる。このように、ダミーデータで補われたライトデータに基づいて誤り訂正符号を生成される。そして、生成された誤り訂正符号が付されたライトデータがメディア100にライトされる。上記ステップ304では、このようなデータの加工処理に要する時間βが算出される。時間算出部118aは時間βを算出すると、データバッファ112に格納されていて且つメディア100に未書き込みの、データサイズがSIZEtotalのデータを全てメディア100にライトするのに要する総メディアライト時間TIMEtotalを、次式TIMEtotal×TIMEunitβに従って算出するステップ305。ここで、TIMEunitは、メディア100にメディアライト単位にデータをライトするのに要する時間を示す。つまり時間算出部118aは、総メディアライト時間TIMEtotalを、メディアライト回数N1、時間TIMEunit及び時間βに基づき算出する。一方、αが非ゼロα≠0でないならばステップ303のNo、つまりαがゼロのためにメディアライト回数がNであるならば、時間算出部118aはステップ306に進む。ステップ306において時間算出部118aは、総メディアライト時間TIMEtotalを、次式TIMEtotalN×TIMEunitに従って算出する。上述したように、データバッファ112がホスト20から転送されたライトデータを受信したことにより、1回目のライトキャッシング判別処理が実行される場合、当該1回目のライトキャッシング判別処理で用いられるデータサイズSIZEtotalは、当該データバッファ112で受信されたライトデータのサイズを表している。この場合、ステップ305または306で算出される総メディアライト時間TIMEtotalは、データバッファ112が受信格納したライトデータを全てメディア100にライトするのに要する時間を示す。また、n回目nは1より大きい整数のライトキャッシング判別処理が実行される場合、当該n回目のライトキャッシング判別処理で用いられるデータサイズSIZEtotalは、ステップ211のライト動作がn-1回実行された直後に、データバッファ112に格納されていて且つストレージコントローラ110に未書き込みのライトデータのサイズを示す。ライトキャッシング判別部118は、時間算出部118aによって前記総メディアライト時間TIMEtotalが算出されるとステップ305または306、当該総メディアライト時間TIMEtotalを、最新のキャパシタ駆動可能時間TIMEdと比較するステップ307。このキャパシタ駆動可能時間TIMEdは、キャパシタ放電容量検出部119から通知された最新のキャパシタ114の放電容量に基づいて、上記ステップS222で算出されたものである。ライトキャッシング判別部118は、ステップ307における比較の結果に基づいて、ライトキャッシングの可否を判別するステップ308。ここでは、総メディアライト時間TIMEtotalがキャパシタ駆動可能時間TIMEd以下TIMEtotal≦TIMEdであるならば、ライトキャッシング判別部118はライトキャッシングが可であると判別する。これに対し、総メディアライト時間TIMEtotalがキャパシタ駆動可能時間TIMEdを超えているTIMEtotal>TIMEdであるならば、ライトキャッシング判別部118は、少なくとも一部の未書き込みデータについて、ライトキャッシングが不可であると判別する。なお、総メディアライト時間TIMEtotalがキャパシタ駆動可能時間に等しい場合も、ライトキャッシング判別部118はライトキャッシングが不可であると判別してもよい。ステップ308で、ライトキャッシングの可否が判別されると、ライトキャッシング判別処理ステップ209は終了する。ライトキャッシングが可であると判別された場合、前述したように、ライトキャッシングが実行される。つまり、ライトキャッシング判別部118からホスト20にライト完了のレスポンスが送信されステップ212、しかる後にデータバッファ112内の未書き込みデータをメディア100にライトするための第2のメディアライト動作ステップ213が実行される。本実施形態で適用されるキャパシタ駆動可能時間TIMEdは、従来技術における所定時間に対応する。しかし、従来技術における所定時間は、バックアップ電源が疲弊している状態を基準に予め設定される固定の時間である。このため、従来技術では、ストレージ装置の書き込み性能に大きく影響するライトキャッシュサイズがキャパシタ疲弊時の放電容量に制限されてしまう。これに対して本実施形態では、キャパシタ放電容量検出部119によって検出されるキャパシタ114の最新の放電容量に基づき、キャパシタ駆動可能時間TIMEdが算出される。キャパシタ114が疲弊していない状態における当該キャパシタ114の放電容量は、当該キャパシタ114が疲弊している状態におけるそれと比べて大きい。つまりキャパシタ114の放電容量は、当該キャパシタ114の疲弊の程度に対応する。また、ライトキャッシュサイズはキャパシタ駆動可能時間TIMEdに対応し、キャパシタ駆動可能時間TIMEdが長いほど大きくなる。このように本実施形態では、キャパシタ114の最新の放電容量に基づき、当該キャパシタ114の疲弊度に適合したライトキャッシュサイズを動的に設定できる。このため本実施形態によれば、キャパシタ114が疲弊していない状態では、当該キャパシタ114が疲弊している状態に比べて、ストレージコントローラ110からホスト20に対して速やかにライト完了のレスポンスをホスト20送信でき、ストレージ装置10の書き込み性能を向上することができる。上記実施形態では、ストレージ装置10に単一のホスト20が接続されている場合を前提としている。しかし、ホスト20を含む複数のホストがストレージ装置10に接続されていても構わない。以上説明した少なくとも1つの実施形態によれば、バックアップ電源の疲弊度に適合したライトキャッシュサイズを設定することができるストレージコントローラ、ストレージ装置及びライトキャッシング方法を提供することができる。本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。