[go: up one dir, main page]

JP2008046791A - 記憶装置、ファームウェア更新方法、及び制御装置 - Google Patents

記憶装置、ファームウェア更新方法、及び制御装置 Download PDF

Info

Publication number
JP2008046791A
JP2008046791A JP2006220877A JP2006220877A JP2008046791A JP 2008046791 A JP2008046791 A JP 2008046791A JP 2006220877 A JP2006220877 A JP 2006220877A JP 2006220877 A JP2006220877 A JP 2006220877A JP 2008046791 A JP2008046791 A JP 2008046791A
Authority
JP
Japan
Prior art keywords
firmware
update
nonvolatile memory
host
memory
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.)
Withdrawn
Application number
JP2006220877A
Other languages
English (en)
Inventor
Hiroo Iima
博生 飯間
Koji Tsurumi
浩司 鶴見
Tadaaki Tamura
匡章 田村
Masataka Shidara
昌孝 設楽
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2006220877A priority Critical patent/JP2008046791A/ja
Priority to US11/635,983 priority patent/US20080040818A1/en
Publication of JP2008046791A publication Critical patent/JP2008046791A/ja
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

【課題】ファームウェア更新中であっても、ホスト発行コマンドや内部発生コマンドの実行を可能として性能低下を抑止する。
【解決手段】記憶装置は、ディスク媒体に対しデータを記録再生するドライブ制御ソフトウェアであるファームウェアを不揮発メモリ32とディスク媒体20−1に分けて格納し、装置起動時に、不揮発メモリ32とディスク媒体20−1から読出したファームウェアを揮発メモリ30に格納して実行する。更新要求処理部46は、ホストからファームウェアの更新要求を受けた際に、ホストから転送された新ファームウェアを受信してバッファメモリ38に格納した時点でホストに更新終了を通知する。バックグラウンド更新部48は、更新終了の通知後に、ホストが発行したコマンドの処理空き時間を使用するバックグラウンド処理として、新ファームウェアを不揮発メモリ32及びディスク媒体20−1に書き込んで更新する。
【選択図】 図1

Description

本発明は、ホストからの更新要求によりデータを記録再生するドライブ制御ソフトウェアであるファームウェアをダウンロードして更新する記憶装置、ファームウェア更新方法、及び制御装置に関し、特に、装置の稼動状態でホストからの新ファームウェアを転送して装置側の旧ファームウェアを更新する記憶装置、ファームウェア更新方法、及び制御装置に関する。
従来、ドライブ制御ソフトウェアとして磁気ディスク装置のコンドローラに実装されたファームウェアについては、ユーザに装置を出荷した後の運用中にあっても、その後に発生した様々な要因に対する対応策を講ずることでバージョンアップされており、逐次、新バージョンのファームウェアをダウンロードして更新するようにしている。
このような磁気ディスク装置におけるファームウェアの更新は、磁気ディスク装置1台ごとに行う必要があり、例えばホストに対しサブシステムとして接続されたディスクアレイシステムにあっては、ディスクアレイに実装されている多数の磁気ディスク装置に対し、ホストから新バージョンのファームウェアを装置側に転送してダウンロードし、装置内部でファームウェアの更新を実行させている。
従来の磁気ディスク装置にあっては、装置内に設けた不揮発メモリであるフラッシュメモリと磁気ディスクとに分けてファームウェアを格納しており、装置を起動すると、フラッシュメモリの先頭位置に記憶されたブートコードを実行してフラッシュメモリ内のファームウェア及び磁気ディスク媒体のファームウェアを読み出して揮発メモリであるバッファメモリとSRAMに書き込み、CPUにより実行して磁気ディスク媒体に対するデータの記録再生を実行している。
このような磁気ディスク装置に対する従来のファームウェアの更新処理は次の手順で行っている。
(1)ホストから磁気ディスク装置に新バージョンの新ファームウェアを転送し、バッファメモリに格納する(ファームウェアダウンロード)。
(2)SRAMに展開している旧バージョンの旧ファームウェアを、バッファメモリに格納した新ファームウェアで上書きし、新バージョンのファームウェアに切り替える。
(3)切替え後に、新バージョンのファームウェアの対応する部分をフラッシュメモリ及び磁気ディスク媒体のファームウェア格納領域に書き込んで更新する。
(4)更新終了をホストに通知し、ホストとの接続を切離す。
特許第2972742号公報 特開2006−072761号公報 特開2001−100987号公報
しかしながら、このような従来のファームウェア更新方法にあっては、次の問題がある。
まず、磁気ディスク装置のファームウェアの更新時間は、通常のリードコマンドやライトコマンドなどのコマンド実行時間に比べ非常に長い時間を要し、ファームウェアの更新要求を行ったホストは、磁気ディスク装置から更新終了が通知されるまで待たなければならず、そのため更新中はリードコマンドやライトコマンドを実行させることができず、多数の磁気ディスク装置を備えたディスクアレイシステムにあっては、ファームウェアの更新は、システムのパフォーマンスの低下を招く要因となる。
また磁気ディスク装置にあっては、従来よりコマンド待ちとなるアイドル状態での実行されるバックグラウンド機能として、セルフテストなど内部的に実施する処理があるが、ファームウェアの更新中は中断され、これに掛かる時間は、セルフテストや故障予測機能の対象とならず、定期的な品質・機能チェックが働かないという問題がある。
本発明は、ファームウェア更新中であっても、ホスト発行コマンドや内部発生コマンドの実行を可能として性能低下の抑止、および、品質・機能チェックを中断しない記憶装置、ファームウェア更新方法及び制御装置を提供することを目的とする。
(装置)
本発明は、記憶媒体に対しデータを記録再生するドライブ制御ソフトウェアであるファームウェアを不揮発メモリと記憶媒体に分けて格納し、装置起動時に、不揮発メモリと記憶媒体から読出したファームウェアを揮発メモリに格納して実行する記憶装置に於いて、
上位装置(ホスト)からファームウェアの更新要求を受けた際に、上位装置から転送された新ファームウェアを受信してバッファメモリに格納した時点で上位装置に更新終了を通知する更新要求処理部と、
更新終了の通知後に、上位装置が発行したコマンドの処理空き時間を使用するバックグラウンド処理として、前記新ファームウェアを前記不揮発メモリ及び記憶媒体に書き込んで更新するバックグラウンド更新部と、
を備えたことを特徴とする。
ここで、更新要求処理部は、
バッファメモリに格納した新ファームウェアをバッファメモリ及び揮発メモリに展開されている旧ファームウェアに上書きして更新した後に装置を起動して新ファームウェアの処理に切り替え、切替後の新ファームウェアの実行により上位装置に更新要求に対する終了応答を通知する。
バックグラウンド更新部は、
バッファメモリ及び揮発メモリに格納されている新ファームウェアの内、ディスク媒体に対応するファームウェア部分は、全体として記憶媒体の旧ファームウェア部分に上書きして更新し、
バッファメモリ及び揮発メモリに格納されている新ファームウェアの内、不揮発メモリに対応するファームウェア部分は、不揮発メモリに書き込み可能な最小単位に分割して前記不揮発メモリの旧ファームウェア部分に順次上書きして更新する。
バックグラウンド更新部は、記憶媒体及び不揮発メモリに対する新ファームウェアの更新処理中に、更新処理が割り当てられる空き時間の発生が制約される制御処理を禁止する。
バックグラウンド更新部は、記憶媒体及び不揮発メモリに対する新ファームウェアの更新処理中に、更新処理が割り当てられる空き時間の発生が制約されるコマンドを受領した場合は、更新処理の終了までコマンドの実行を待ち状態とし、更新処理が終了した際に実行させる。
バックグラウンド更新部は、前記記憶媒体及び不揮発メモリに対する新ファームウェアの更新処理中に、上位装置にエラー又はビジー等を通知するステータスコマンドを受領した場合は、更新処理が終了するまでステータスコマンドの送信を待ち状態とし、更新処理が終了した際に送信させる。
(方法)
本発明は、記憶媒体に対しデータを記録再生するドライブ制御ソフトウェアであるファームウェアを不揮発メモリと記憶媒体に分けて格納し、装置起動時に、不揮発メモリと記憶媒体からファームウェアを読出して揮発メモリに格納して実行する記憶装置のファームウェア更新方法に於いて、
上位装置から前記ファームウェアの更新要求を受けた際に、上位装置から転送された新ファームウェアを受信してバッファメモリに格納した時点で上位装置に更新終了を通知する更新要求処理ステップと、
更新終了の通知後に、上位装置が発行したコマンドの処理空き時間を使用するバックグラウンド処理として、前記新ファームウェアを前記不揮発メモリ及び記憶媒体に書き込んで更新するバックグラウンド更新ステップと、
を備えたことを特徴とする。
(制御装置)
本発明は、記憶媒体に対しデータを記録再生するドライブ制御ソフトウェアであるファームウェアを不揮発メモリと記憶媒体に分けて格納し、装置起動時に、前記不揮発メモリと記憶媒体からファームウェアを読出して揮発メモリに格納して実行する記憶装置の制御装置に於いて、
上位装置からファームウェアの更新要求を受けた際に、上位装置から転送された新ファームウェアを受信してバッファメモリに格納した時点で上位装置に更新終了を通知する更新要求処理部と、
更新終了の通知後に、上位装置が発行したコマンドの処理空き時間を使用するバックグラウンド処理として、前記新ファームウェアを前記不揮発メモリ及び記憶媒体に書き込んで更新するバッグラウンド更新部と、
を備えたことを特徴とする。
本発明によれば、上位装置からファームウェアの更新要求コマンドが発行されて新ファームウェアがデバイスインタフェースにより転送された場合、新ファームウェアをバッファメモリに格納し、新ファームウェアの実行に切り替えた段階で上位装置に更新終了を通知することで、記憶装置内での不揮発メモリや記憶媒体でのファームウェアの更新を待つことなく短時間で更新要求コマンドに対し更新終了を応答することができ、記憶アレイシステムのように上位装置の配下に多数の記憶装置が存在する場合、システム全体から見たパフォーマンスの低下を回避することができる。
また記憶装置内でバッファメモリに格納された新ファームウェアをバックグラウンド処理により不揮発メモリに書込んで更新する際に、新ファームウェアを分割して更新することで、ファームウェア更新のバックグラウンド処理とホスト発行コマンドや内部発行コマンドの処理と並行して実行することができ、ファームウェア更新に伴う装置及びシステムの性能と信頼性の低下を最小限に抑えることができる。
更にバックグラウンド機能として行うファームウェアの更新中は、時間のかかる内部処理を禁止すると共に、待たせても問題の少ないコマンドやエラーやビジーなどのステータスコマンドは実行せずに更新終了まで待ち状態とし、バックグラウンド処理として行うファームウェア更新を短時間で処理することができる。
図1は本発明が適用される磁気ディスク装置のブロック図である。図1において、ハードディスクドライブ(HDD)として知られた磁気ディスク装置10は、ディスクエンクロージャ12と制御ボード14で構成される。ディスクエンクロージャ12にはスピンドルモータ16が設けられ、スピンドルモータ16の回転軸にディスク媒体として磁気ディスク20−1、20−2を装着し、一定時間例えば10000rpmで回転させる。
またディスクエンクロージャ12にはボイスコイルモータ18が設けられ、ボイスコイルモータ18はヘッドアクチュエータのアーム先端にヘッド22−1〜22−4を搭載しており、磁気ディスク20−1、20−2の記録面に対するヘッドの位置決めを行う。
ヘッド22−1〜22−4にはライトヘッド素子とリードヘッド素子が一体化されて搭載されている。また磁気ディスク20−1、20−2に対するヘッド22−1〜22−4による磁気記録方式としては、長手磁気記録方式または垂直磁気記録方式にいずれであっても良い。
ヘッド22−1〜22−4はヘッドIC24に対し信号線接続されており、ヘッドIC24は上位装置となるホストからのライトコマンドまたはリードコマンドに基づくヘッドセレクト信号で1つのヘッドを選択して書込みまたは読出しを行う。またヘッドIC24には、ライト系についてはライトドライバが設けられ、リード系についてはプリアンプが設けられている。
制御ボード14にはMPU26が設けられ、MPU26のバス28に対し、装置の起動時に、制御コードと変数を含むドライブ制御ソフトウェアであるファームウェアが展開されるSRAMなどを用いた揮発メモリ30、揮発メモリ30に展開するファームウェアの格納するフラッシュROM等を用いた不揮発メモリ32が設けられている。なお、本実施形態にあっては、ファームウェアは不揮発メモリ32と例えば磁気ディスク20−1とに分けて格納されている。
またMPU26のバス28には、ホストインタフェース制御部34、SDRAMなどを用いたバッファメモリ38を制御するバッファメモリ制御部36、フォーマットとして機能するハードディスクコンドローラ40、ライト変調部及びリード復調部として機能するリードチャネル42、ボイスコイルモータ18及びスピンドルモータ16を制御するモータ駆動制御部44が設けられている。
本実施形態において、バッファメモリ38の一部の領域はMPU26のダイレクトアクセス領域に割当られており、装置の起動時に、ダイレクトアクセス領域に不揮発メモリ32及び磁気ディスク20−1から読み出したファームウェアの一部を書き込んで配置する。
磁気ディスク装置10は、ホストからのコマンドに基づきファームウェアの制御コードの実行により書込処理及び読出処理を行う。ここで、磁気ディスク装置における通常の動作を説明すると次のようになる。
ホストからのライトコマンドとライトデータをホストインタフェース制御部34で受けると、ライトコマンドをMPU26で解読し、受信したライトデータを必要に応じてバッファメモリ38に格納した後、ハードディスクコンドローラ40で所定のデータ形式に変換すると共にECC符号化処理によりECC符号を付加し、リードチャネル42におけるライト変調系でスクランブル、RLL符号変換、更に書込補償を行った後、ライトアンプからヘッドIC24を介して選択した例えばヘッド22−1のライトヘッドからディスク媒体20−1に書き込む。
このときMPU26からDSPなどを用いたモータ駆動制御部44にヘッド位置決め信号が与えられており、ボイスコイルモータ18によりヘッドをコマンドで指示された目標トラックにシークした後にオンドラックしてトラック追従制御を行っている。
一方、ホストからのリードコマンドをホストインタフェース制御部34で受けると、リードコマンドをMPU26で解読し、ヘッドIC24のヘッドセレクトで選択されたリードヘッドから読み出された読出信号をプリアンプで増幅した後に、リードチャネル42のリード復調系に入力し、パーシャルレスポンス最尤検出(PRML)などによりリードデータを復調し、ハードディスクコンドローラ40でECC復号処理を行ってエラーを訂正した後、バッファメモリ38にバッファリングし、ホストインタフェース制御部34からリードデータをホストに転送する。
図2は本実施形態の磁気ディスク装置を複数設けたディスクアレイ装置のブロック図である。図2において、ディスクアレイ装置52には、2系統に分けてチャネルアダプタ54−11、54−12とチャネルアダプタ54−21、54−22が設けられており、サーバなどのホスト50−1、50−2を接続している。
またディスクアレイ装置52には二重化された制御モジュール56−1、56−2が設けられている。制御モジュール56−1、56−2に対してはディスクエンクロージャ58−1、58−2が設けられ、それぞれ図1に示したと同じ磁気ディスク装置10−11〜10−15及び10−21〜10−25を設けている。
ディスクエンクロージャ58−1、58−2の各5台の磁気ディスク装置10−11〜10−15、10−21〜10−25は、所定のRAIDレベル例えばRAID1あるいはRAID5といったRAID構成によるディスクアレイを構成している。
制御モジュール56−1、56−2には、CPU62−1、62−2、DMAコンドローラ60−1、60−2、メモリ64−1、64−2、デバイスインタフェース66−11、66−12、66−21、66−22が設けられている。
ディスクアレイ装置52はホスト50−1、50−2からの入出力要求に応じてディスクエンクロージャ58−1、58−2に設けている磁気ディスク装置10−11〜10−15、10−21〜10−25に対するリード処理およびライト処理を実行する。
図3は図1の実施形態におけるファームウェアの格納と装置起動時の読出し配置を示した説明図であり、図1の実施形態における不揮発メモリ32、磁気ディスク20−1、バッファメモリ38及び揮発メモリ30を取り出して示している。
不揮発メモリ32はフラッシュROMであり、先頭領域に装置起動用のブートコード68を格納し、続いて所定サイズのファームウェア領域70−1が設けられ、ファームウェア領域70−1にファームウェアFW1を格納している。ファームウェア領域70−1に格納されたファームウェアFW1は、不揮発メモリ32としてフラッシュROMを使用した場合、例えば256KWの最小単位でデータ書き換えの為のイレーズと書き込みが行われることから、ファームウェア領域70−1を例えば破線で示す6つの領域にわけ、それぞれの領域に格納されているファームウェアFW1の分割部分をファームウェアFW1〜FW16として表している。
磁気ディスク20−1のファームウェア領域70−2にはファームウェアFW2が格納されている。
本実施形態のファームウェアは図3に示したように不揮発メモリ32のファームウェア領域70−1に格納されたファームウェアFW1と磁気ディスク20−1のファームウェア領域70−2に格納されたファームウェアFW2を合わせたファームウェアである。
本実施形態の磁気ディスク装置の電源を投入すると、MPU26内のマスクROM領域45に格納されているMaskROMコードによりデバイスの診断と初期化が行われ、不揮発メモリ32についても診断と初期化が行われ、診断正常の場合にブートコード68の実行に基づきファームウェアFW1、FW2をバッファメモリ38及び揮発メモリ30側に読出し配置して実行される。
本実施形態にあってはMPU26のダイレクトアクセス領域を構成している揮発メモリ30に不揮発メモリ32及び磁気ディスク20−1から読み出した全てのファームウェアFW1、FW2を書込み配置するには容量が不足することから、バッファメモリ38の一部にMPU26のダイレクトアクセス領域72−1を確保し、ここに不揮発メモリ32及び磁気ディスク20−1から読み出したFW1、FW2の一部を書込み配置している。
不揮発メモリ32及び磁気ディスク媒体20−1に格納されているファームウェアFW1、FW2は、図1の磁気ディスク装置10のドライブ制御ソフトウェアを構成する制御コード及び変数で構成されており、制御コードは図1のホストインタフェース制御部32、バッファメモリ制御部36、ハードディスクコンドローラ40、リードチャネル42、モータ駆動制御部44及びヘッドIC24のそれぞれを制御するための制御コード及び変数である。
ファームウェアFW1、FW2について、図3の場合にはバッファメモリ38のダイレクトアクセス領域72−1にファームウェアFW1の一部のファームウェアFW11、FW12を読出して書き込み、揮発メモリ30のファームウェア領域72−2にファームウェアFW1の一部のファームウェアFW13〜FW16と磁気ディスク20−1のファームウェアFW2を読出して書き込んでいる。
図3にあっては、バッファメモリ38及び揮発メモリ30に対するファームウェアFW1、FW2の配置は説明を簡単にするために、単純な領域分けで示しているが、実際のファームウェアFW1、FW2のバッファメモリ38及び揮発メモリ30に対する配置は、揮発メモリ30のファームウェア領域72−2には処理性能を確保するために処理時間を短くする必要のある制御コード及び頻度の高い変数を配置し、一方、バッファメモリ38のダイレクトアクセス領域72−1には性能確保には直接関係しない試験用コードやセルフテストコード及び参照頻度の低い変数およびデータなどを配置する。
図3のようにバッファメモリ38及び揮発メモリ30に読出し配置されたファームウェアFW11〜FW16から成るファームウェアFW1及びファームウェアFW2を実行中図1のMPU26は、ホスト側からファームウェア更新要求が行われると、このファームウェア更新要求に基づきファームウェア更新処理を実行する。
このようなファームウェア更新処理のため、MPU26には更新要求処理部46とバックグラウンド更新部48のプログラムにより実現される機能が設けられている。
更新要求処理部46はホストからファームウェアの更新要求を受けた際にホストから転送された新ファームウェアを受信してバッファメモリ38に格納し、バッファメモリ38に格納した時点でホストに対し終了応答を通知する。
より具体的には、更新要求処理部46はホストからホストインタフェース制御部34を介して受信した新ファームウェアをバッファメモリ38に格納した後に、新ファーム入替後の更新完了要求フラグをセットし、装置を再起動(パワーオンスタート処理によるリブート)する。
ブートコード68によって、図3のようにバッファメモリ38及び揮発メモリ30に配置されている旧ファームウェアに上書きして更新し、新ファームウェアの実行に切り替え、入替後の新ファームウェアにより(更新完了要求フラグに従って)ホストに対し更新要求に対する更新終了を通知する。
このため本実施形態にあっては、ホストからダウンロードしてバッファ上で旧ファームウェアに上書きして新ファームウェアの実行に切り替えた状態で、ホストに対し更新終了を通知することができ、更新された新ファームウェアを磁気ディスク20−1及び不揮発メモリ32に書き込んで旧ファームウェアに上書きする本来の更新を内部的に行う前にホストに対し更新終了を通知することができる。
このため図2に示すようにホスト50−1、50−2の入出力要求に対し、ディスクエンクロージャ58−1、58−2に設けた複数の磁気ディスク装置10−11〜15、10−21〜25に対しリード処理やライト処理を行う場合にあっては、ホスト側からのファームウェア更新要求に対し、ディスクアレイ装置52の制御モジュール56−1が実質的なホストとしてディスクエンクロージャ58−1、58−2の磁気ディスク装置10−11〜15、10−21〜25に対し順次ファームウェア更新要求を発行して更新処理を行わせることになり、この場合に磁気ディスク装置10−11〜10−25における内部的はファームウェア更新を待つことなく更新終了通知が得られることでディスクアレイ装置52の制御モジュール56−1における更新処理のための拘束時間を短くすることができる。
これによってディスクアレイ装置52におけるファームウェア更新時のアクセス性能の低下を最小限に抑えることができる。もちろんディスクアレイ装置52に対する上位装置としてのホスト50−1、5−2から見た入出力処理性能を見てもファームウェア更新による性能低下を最小限に抑えることができる。
再び図1を参照するにMPU26に設けたバックグラウンド更新部48は、更新要求処理部46によるホスト側に対する更新終了の通知後に、ホストが発行したコマンドの処理空き時間を利用するバックグラウンド処理として、バッファメモリ38及び揮発メモリ30上で書き換えられた新ファームウェアを不揮発メモリ32及び磁気ディスク20−1に書き込んで更新する。
このバックグラウンド更新部48による更新は、磁気ディスク20−1については対応する新ファームウェアの部分を一括して書き込むが、不揮発メモリ32に対する新ファームウェアの書込みについては、不揮発メモリ32のアクセス最小単位に分割して順次対応する旧ファームウェアの分割部分に対応して書き込む。この新ファームウェアの不揮発メモリ32に対する分割書込みにより、ファームウェア更新途中におけるリードコマンドやライトコマンドの実行を可能とし、バックグラウンド更新部48による更新処理により磁気ディスク装置10の性能低下を最小限に抑えることができる。
更にバックグラウンド更新部48にあってはバックグラウンド処理として実行する更新処理を妨げる処理、コマンド実行及びコマンド送信などを禁止もしくは更新終了まで待たせるようにしている。
バックグラウンド更新部48においてファームウェア更新処理中に禁止する内部処理としては、例えばシーケンシャルハードウェア処理のように終了までに時間のかかる処理である。またバックグラウンド更新部48により更新処理を妨げるようなコマンドがきた場合にはこの実行を更新処理が終わるまで待たせるようにする。
このような更新処理を妨げるコマンドとしてはアクセスコマンド、ユーザー情報リードコマンド、バッファライトコマンドなど処理に時間のかかるコマンドを対象とする。更にバックグラウンド更新部48にあっては、バックグラウンド更新中にホストからエラーまたはビジーなどのステータス要求コマンドを受信した場合には、ステータス要求コマンドの実行をバックグラウンド更新処理が終わるまで待たせ、更新終了でエラーステータスまたはビジーステータスを応答する。
図4は図1のMPU26に設けた更新要求処理部46によるホストから更新要求を受けた際のバッファ受信処理とその後の旧ファームウェアを新ファームウェアに切り替えて実行する際の記憶配置の説明図である。
図1において、ホストからファームウェア更新要求コマンドがホストインタフェース制御部34で受信されると、デバイスインタフェースの接続を確立するインタフェース処理を通じて、ホストから新ファームウェアを受信し、図4のバッファメモリ38に示すように、適宜のファームウェアバッファ領域76にファームウェアダウンロード74により受信した新ファームウェアNFW1、NFW2を格納する。
尚、説明の都合上、新ファームウェアをNFW1、NFW2の2つにわけ、更に新ファームウェアNFW1については不揮発メモリ32のアクセス可能な最小単位に応じて6つの新ファームウェアNFW11〜NFW16に分けて示しているが、実態としてはひとつのファームウェアである。
バッファメモリ38に新ファームウェアNFW1、NFW2が格納されると、新ファームウェアNFW1、NFW2のチェックサムにより正当性を確認する。次にバックグラウンド更新処理部48の制御に必要な内部フラグを設定した後、現在バッファメモリ38のダイレクトアクセス領域72−1及び揮発メモリ30のファームウェア領域72−2に配置して実行している旧ファームウェアFW11〜FW16、FW2に対し、新ファームウェアNFW11〜NFW16、NFW2を上書きするライト処理78−1、78−2を実行して更新する。
続いて、装置の起動によるリブートを行うことでメモリのダイレクトアクセス領域72−1及び揮発メモリ30のファームウェア領域72−2において、更新した新ファームウェアNFW11〜NFW16、NFW2の実行に切り替える。そしてホストに対するファームウェア更新終了の通知はバッファメモリ38及び揮発メモリ30上で更新した新ファームウェアの実行により行うことになる。
図5は図1のMPU26に設けたバックグラウンド更新部48によるホストに対するファームウェア更新処理の終了通知後にバックグラウンド処理として行うファームウェア更新時の記憶配置の説明図である。
図5において、バッファメモリ38及び揮発メモリ30上で更新された新ファームウェアNFW11〜NFW16、NFW2の更新は、まず揮発メモリ30側に配置している新ファームウェアNFW2を一括して磁気ディスク20−1のファームウェア領域70−2に書き込む更新処理80−1を行う。
続いて図6に示すように、バッファメモリ38及び揮発メモリ30側に配置している新ファームウェア、即ちNFW1の分割ファームウェアである新ファームウェアNFW11〜NFW16のそれぞれについて、ホストからのコマンド実行の空き時間のタイミングで不揮発メモリ32のファームウェア領域70−1に最小アクセス単位となる分割された新ファームウェアNFW11、NFW12、NFW13・・・に示すように順次書き込む更新処理82−1、82−2、82−3・・・を行う。
このような分割したファームウェアによる不揮発メモリ32の更新処理にあっては、一回の更新が終了するごとに、もしそのときホストからのリードコマンドもしくはライトコマンドがコマンドキューに格納されて実行待ちにあった場合には、分割した新ファームウェアの更新終了でコマンドキューから処理待ちのリードコマンドまたはライトコマンドを取り出して実行する。
このため不揮発メモリ32に対する新ファームウェアの全ての更新がすむまでコマンドキューに格納されているホストからのアクセスコマンドの処理が待たされることがなく、新ファームウェアの更新処理と上位装置のアクセスコマンドの並列的な実行可能とし、ファームウェア更新中におけるホスト側におけるシステムの処理性能の低下を最小限に抑えることができる。
また不揮発メモリ32に対する新ファームウェアの分割更新中において、ファームウェア更新処理を妨げるようなシーケンシャルハードウェア処理、シーケンシャルコマンド、ユーザ情報リードコマンド、バッファライトコマンドなどの処理に時間のかかるコマンド、更にはホストからのエラーまたはビジーなどの応答を要求するステータス要求コマンドなどについては、バックグラウンド処理の更新中は処理を禁止したり、コマンドについてはコマンドを待たせて更新終了後に処理をすることで、ホストからのアクセスコマンドにより必要以上にファームウェアのバックグラウンド処理が制約されてしまうことを防止し、ファームウェア更新中における処理性能の低下の抑制と更新処理の処理時間の短縮化を両立させることができる。
図7はファームウェア更新終了時の記憶配置の説明図であり、バッファメモリ38及び揮発メモリ30に配置しているファームウェアは、更新後の新ファームウェアNFW11〜NFW16、NFW2となり、また不揮発メモリ32及び磁気ディスク20−1に格納しているファームウェアは更新済みの新ファームウェアNFW11〜NFW16、NFW2となっている。
したがって、その後に磁気ディスク装置が電源オフとなるまでは、バッファメモリ38及び揮発メモリ30に配置された新ファームウェアにより磁気ディスク装置の制御が行われ、磁気ディスク装置の電源を切断した後の再起動時には、図3に示したと同様、不揮発メモリ32のブートコード68の実行により、不揮発メモリ32及び磁気ディスク20−1から更新済みの新ファームウェアがバッファメモリ38及び揮発メモリ30に読出し配置され、実行されることになる。
図8は本実施形態によるファームウェアダウンロード処理の説明図であり、図1のMPU26に示した更新要求処理部46による処理手順となる。図8において、ステップS1でホストインタフェース制御部34がホストからファームウェア更新要求コマンドを受信すると、ホストインタフェース応答処理を行うことでホストとのインタフェース接続を確立し、ステップS2でホストから送信されたファームウェアを受信してバッファメモリ38に図4に示すように新ファームウェアを格納する。
続いてステップS3でバッファメモリ38に格納した受信済みの新ファームウェアに対し、チェックサムなどにより正当性を確認し、正当性が確認できるとステップS4で図1のMPU26に設けたバックグラウンド更新部48の処理で使用する内部フラグを設定する。
本実施形態で設定する内部フラグはバックグラウンドセーブフラグFL1、媒体更新フラグFL2及びフラッシュメモリ更新フラグFL3であり、各フラグFL1、FL2、FL3を「1」にセットする。
次にステップS5で図4に示したようにバッファメモリ38に格納した新ファームウェアをバッファメモリ38のダイレクトアクセス領域72−1及び揮発メモリ30のファームウェア領域72−2の旧ファームウェアに上書きするライト処理78−1、78−2を行い、これによって旧ファームウェアを新ファームウェアに切り替える。
続いてステップS6でパワーオン処理として起動処理を行うことで、切替済みの新ファームウェアを実行し、ステップS7で新ファームウェアによりホストに対しファームウェア更新要求に対する更新終了を通知し、一連のファームウェアダウンロード処理を終了してアイドルループに移行する。
図9は図8のファームウェアダウンロード処理が終了した後のアイドルループにおけるバックグラウンド処理として実行するファームウェア更新処理のフローチャートであり、図1のMPU26に設けたバックグラウンド更新部48による処理手順となる。
図9において、ステップS1でホストもしくは装置内部で発生したコマンド受領の有無をチェックしており、コマンドを受領するとステップS9に進み、バックグラウンド更新優先コマンドか否かチェックする。
リードコマンドやライトコマンドのようにバックグラウンド更新に対する非優先のコマンドであった場合にはステップS10に進み、コマンドを実行する。一方、ステップS9でコマンドがシーケンシャルアクセスコマンド、ステータスコマンドなどのバックグラウンド更新優先コマンドであった場合にはステップS11に進み、バックグラウンドセーブフラグFL1がFL1=1か否かチェックする。
ここでバックグラウンドセーブフラグFL1は図8のファームウェアダウンロード処理におけるステップS4でFL1=1にセットされていることから、ステップS12に進み、媒体更新フラグFL2=1か否かチェックする。媒体更新フラグはFL2=1であることからステップS13に進み、図5に示したように磁気ディスク20−1に対応する新ファームウェア部分を磁気ディスク20−1のファームウェア領域72−2に一括してライトして更新する。続いてステップS14で媒体更新フラグFL2をリセットしてFL2=0とする。
続いてステップS8に戻り、コマンド受領の有無をチェックし、受領していればステップS9に進み、受領していなければステップS11に進み、バックグラウンドセーブフラグFL1=1であることからステップS12に進む。
このとき媒体更新フラグFL2はFL2=0になっていることからステップS15に進み、フラッシュメモリ更新フラグFL3がFL3=1か否かチェックする。ここでFL3=1であることからステップ16に進み、新ファームウェアを不揮発メモリであるフラッシュROMのアクセス最小単位に分割して図6に示すようにライトする。
続いてステップS17でフラッシュROMである不揮発メモリ32に対する新ファームウェアの更新終了か否かチェックし、未終了であれば再びステップS8からの処理を繰り返す。
ステップS17でフラッシュROMを用いた不揮発メモリ32に対する新ファームウェアの分割ライトによる更新終了を判別すると、ステップS18でフラッシュメモリ更新フラグFL3をFL3=0にリセットし、ステップS8に戻る。そして更新が終了したことからステップS8、S9、S10による通常のコマンド実行処理に戻る。
また本発明は図1のMPU26により実行されるプログラムを提供するものであり、このプログラムは図8及び図9のフローチャートに示した内容となる。
更に本発明は図8、図9のファームウェ更新処理を実行するプログラムを記憶したコンピュータ、読取可能は記憶媒体を提供する。この記憶媒体としてはCD−ROM、フロッピーディスク(R)、DVDディスク、光磁気ディスク、ICカードなどの記憶媒体などやコンピュータシステムの内外に備えられたハードディスクドライブなどの記憶装置のほか、回線を介してプログラムを保持するデータベース、あるいは他のコンピュータシステムならびにデータベースならびに回線上の伝送媒体を含むものである。
尚、上記の実施形態にあっては磁気ディスク装置を組み込むシステムとして図2のにディスクアレイ装置を例にとるものであったが、上位装置として機能するコンドローラの配下に配置して入出力処理に適用される複数のディスク装置を用いた適宜のシステムを含むものである。
また本発明はホストの配下に配置される複数の磁気ディスク装置に限定されず、通常のパーソナルコンピュータやプレーヤで使用される磁気ディスク装置や光ディスク装置などの記憶装置を含むことはもちろんである。
また上記の実施形態にあっては、フラッシュROMなどの不揮発メモリ及び磁気ディスクに格納しているファームウェアをバッファメモリ及び揮発メモリに書き込み配置することで実行する場合を例にとっているが、揮発メモリ30の記憶容量が十分であればバッファメモリ38のダイレクトアクセス領域を使用せず、揮発メモリ30に対してのみファームウェアを書込み配置するようにしても良い。
また本発明はその目的と利点を損なうことのない適宜の変形を含み、さらに上記の実施形態に示した数値による限定は受けない。
ここで本発明の特徴をまとめて列挙すると次の付記のようになる。

(付記)
(付記1)
記憶媒体に対しデータを記録再生するドライブ制御ソフトウェアであるファームウェアを不揮発メモリと記憶媒体に分けて格納し、装置起動時に、前記不揮発メモリと記憶媒体から読出した前記ファームウェアを揮発メモリに格納して実行する記憶装置に於いて、
上位装置から前記ファームウェアの更新要求を受けた際に、前記上位装置から転送された新ファームウェアを受信してバッファメモリに格納した時点で前記上位装置に終了応答を通知する更新要求処理部と、
前記更新終了の通知後に、前記上位装置が発行したコマンドの処理空き時間を使用するバックグラウンド処理として、前記新ファームウェアを前記不揮発メモリ及び記憶媒体に書き込んで更新するバックグラウンド更新部と、
を備えたことを特徴とする記憶装置。(1)
(付記2)
付記1記載の記憶装置に於いて、前記更新要求処理部は、
前記バッファメモリに格納した新ファームウェアを前記バッファメモリ及び前記揮発メモリに展開されている旧ファームウェアに上書きして更新した後に装置を起動して新ファームウェアの処理に切り替えるファーム切替部と、
切替後の新ファームウェアの実行により前記上位装置に更新要求に対する終了応答を通知する応答通知部と、
を備えたことを特徴とする記憶装置。(2)
(付記3)
付記1記載の記憶装置に於いて、前記バックグラウンド更新部は、
前記バッファメモリ及び揮発メモリに格納されている新ファームウェアの内、前記ディスク媒体に対応する第1ファームウェア部分は、全体として前記記憶媒体の旧ファームウェア部分に上書きして更新し、
前記バッファメモリ及び揮発メモリに格納されている新ファームウェアの内、前記不揮発メモリに対応する第2ファームウェア部分は、前記不揮発メモリに書き込み可能な最小単位に分割して前記不揮発メモリの旧ファームウェア部分に順次上書きして更新することを特徴とする記憶装置のファームウェア更新方法。(3)
(付記4)
付記1記載の記憶装置に於いて、前記バックグラウンド更新部は、前記記憶媒体及び不揮発メモリに対する新ファームウェアの更新処理中に、更新処理が割り当てられる空き時間の発生が制約される制御処理を禁止することを特徴とする記憶装置。
(付記5)
付記1記載の記憶装置に於いて、前記バックグラウンド更新部は、前記記憶媒体及び不揮発メモリに対する新ファームウェアの更新処理中に、更新処理が割り当てられる空き時間の発生が制約されるコマンドを受領した場合は、更新処理の終了まで前記コマンドの実行を待ち状態とし、更新処理が終了した際に実行させることを特徴とする記憶装置。
(付記6)
付記1記載の記憶装置に於いて、前記バックグラウンド更新部は、前記記憶媒体及び不揮発メモリに対する新ファームウェアの更新処理中に、前記上位装置にエラー又はビジー等を通知するステータスコマンドを受領した場合は、更新処理が終了するまで前記ステータスコマンドの送信を待ち状態とし、更新処理が終了した際に送信させることを特徴とする記憶装置。
(付記7)
記憶媒体に対しデータを記録再生するドライブ制御ソフトウェアであるファームウェアを不揮発メモリと記憶媒体に分けて格納し、装置起動時に、前記不揮発メモリと記憶媒体から読出した前記ファームウェアを揮発メモリに格納して実行する記憶装置のファームウェア更新方法に於いて、
上位装置から前記ファームウェアの更新要求を受けた際に、前記上位装置から転送された新ファームウェアを受信してバッファメモリに格納した時点で前記上位装置に終了応答を通知する更新要求処理ステップと、
前記更新終了の通知後に、前記上位装置が発行したコマンドの処理空き時間を使用するバックグラウンド処理として、前記新ファームウェアを前記不揮発メモリ及び記憶媒体に書き込んで更新するバックグラウンド更新ステップと、
更新ステップと、
を備えたことを特徴とする記憶装置のファームウェア更新方法。(4)
(付記8)
付記7記載の記憶装置のファームウェア更新方法に於いて、前記更新要求処理ステップは、
前記バッファメモリに格納した新ファームウェアを前記バッファメモリ及び前記揮発メモリに展開されている旧ファームウェアに上書きして更新した後に装置を起動して新ファームウェアの処理に切り替え、
切替後の新ファームウェアの実行により前記上位装置に更新要求に対する終了応答を通知することを特徴とする記憶装置のファームウェア更新方法。
(付記9)
付記7記載の記憶装置のファームウェア更新方法に於いて、前記バックグラウンド更新ステップは、
前記バッファメモリ及び揮発メモリに格納されている新ファームウェアの内、前記ディスク媒体に対応する第1ファームウェア部分は、全体として前記記憶媒体の旧ファームウェア部分に上書きして更新し、
前記バッファメモリ及び揮発メモリに格納されている新ファームウェアの内、前記不揮発メモリに対応する第2ファームウェア部分は、前記不揮発メモリに書き込み可能な最小単位に分割して前記不揮発メモリの旧ファームウェア部分に順次上書きして更新するとを特徴とする記憶装置のファームウェア更新方法。
(付記10)
付記7記載の記憶装置のファームウェア更新方法に於いて、前記バックグラウンド更新ステップは、前記記憶媒体及び不揮発メモリに対する新ファームウェアの更新処理中に、更新処理が割り当てられる空き時間の発生が制約される制御処理を禁止することを特徴とする記憶装置のファームウェア更新方法。
(付記11)
付記7記載の記憶装置のファームウェア更新方法に於いて、前記バックグラウンド更新ステップは、前記記憶媒体及び不揮発メモリに対する新ファームウェアの更新処理中に、更新処理が割り当てられる空き時間の発生が制約されるコマンドを受領した場合は、更新処理の終了まで前記コマンドの実行を待ち状態とし、更新処理が終了した際に実行させることを特徴とする記憶装置のファームウェア更新方法。
(付記12)
付記7記載の記憶装置のファームウェア更新方法に於いて、前記バックグラウンド更新ステップは、前記記憶媒体及び不揮発メモリに対する新ファームウェアの更新処理中に、前記上位装置にエラー又はビジー等を通知するステータスコマンドを受領した場合は、更新処理が終了するまで前記ステータスコマンドの送信を待ち状態とし、更新処理が終了した際に送信させることを特徴とする記憶装置のファームウェア更新方法。
(付記13)
記憶媒体に対しデータを記録再生するドライブ制御ソフトウェアであるファームウェアを不揮発メモリと記憶媒体に分けて格納し、装置起動時に、前記不揮発メモリと記憶媒体から読出した前記ファームウェアを揮発メモリに格納して実行する記憶装置の制御装置に於いて、
上位装置から前記ファームウェアの更新要求を受けた際に、前記上位装置から転送された新ファームウェアを受信してバッファメモリに格納した時点で前記上位装置に終了応答を通知する更新要求処理部と、
前記更新終了の通知後に、前記上位装置が発行したコマンドの処理空き時間を使用するバックグラウンド処理として、前記新ファームウェアを前記不揮発メモリ及び記憶媒体に書き込んで更新するバックグラウンド更新部と、
を備えたことを特徴とする記憶装置の制御装置。(5)
(付記14)
付記13記載の記憶装置の制御装置に於いて、前記更新要求処理部は、
前記バッファメモリに格納した新ファームウェアを前記バッファメモリ及び前記揮発メモリに展開されている旧ファームウェアに上書きして更新した後に装置を起動して新ファームウェアの処理に切り替え、
切替後の新ファームウェアの実行により前記上位装置に更新要求に対する終了応答を通知する、ことを特徴とする記憶装置の制御装置。
(付記15)
付記13記載の記憶装置の制御装置に於いて、前記バッグラウンド更新部は、
前記バッファメモリ及び揮発メモリに格納されている新ファームウェアの内、前記ディスク媒体に対応する第1ファームウェア部分は、全体として前記記憶媒体の旧ファームウェア部分に上書きして更新し、
前記バッファメモリ及び揮発メモリに格納されている新ファームウェアの内、前記不揮発メモリに対応する第2ファームウェア部分は、前記不揮発メモリに書き込み可能な最小単位に分割して前記不揮発メモリの旧ファームウェア部分に順次上書きして更新する、ことを特徴とする記憶装置の制御装置。
(付記16)
付記1記載の記憶装置の制御装置に於いて、前記バックグラウンド更新部は、前記記憶媒体及び不揮発メモリに対する新ファームウェアの更新処理中に、更新処理が割り当てられる空き時間の発生が制約される制御処理を禁止することを特徴とする記憶装置の制御装置。
(付記17)
付記13記載の記憶装置の制御装置に於いて、前記バックグラウンド更新部は、前記記憶媒体及び不揮発メモリに対する新ファームウェアの更新処理中に、更新処理が割り当てられる空き時間の発生が制約されるコマンドを受領した場合は、更新処理の終了まで前記コマンドの実行を待ち状態とし、更新処理が終了した際に実行させることを特徴とする記憶装置の制御装置。
(付記18)
付記13記載の記憶装置の制御装置に於いて、前記バックグラウンド更新部は、前記記憶媒体及び不揮発メモリに対する新ファームウェアの更新処理中に、前記上位装置にエラー又はビジー等を通知するステータスコマンドを受領した場合は、更新処理が終了するまで前記ステータスコマンドの送信を待ち状態とし、更新処理が終了した際に送信させることを特徴とする記憶装置の制御装置。
本発明の一実施形態を示した磁気ディスク装置のブロック図 本実施形態の磁気ディスク装置を備えたディスクアレイ装置のブロック図 本実施形態におけるファームウェアの格納と起動時の読出し配置を示した説明図 更新要求の受信と旧ファームウェアを新ファームウェアに切り替えて実行する記憶配置の説明図 ディスク媒体に対するファームウェア更新時の記憶配置の説明図 不揮発メモリに対するファームウェア更新時の記憶配置の説明図 ファームウェア更新終了時の記憶配置の説明図 本実施形態によるファームウェアダウンロード処理の説明図 アイドルループを起点とした本実施形態によるファームウェア更新処理を含む制御処理のフローチャート
符号の説明
10、10−11〜10−15,10−21〜10−25:磁気ディスク装置
12:ディスクエンクロージャ
14:制御ボード
15:ロータリアクチュエータ
16:スピンドルモータ
18:ボイスコイルモータ
20、20−1、20−2:磁気ディスク
22−1〜22−4:ヘッド
24:ヘッドIC
26:MPU
28:バス
30:揮発メモリ
32:不揮発メモリ
34:ホストインタフェース制御部
36:バッファメモリ制御部
38:バッファメモリ
40:ハードディスクコンドローラ
42:リードチャネル
44:モータ駆動制御部
45:マスクROM領域
46:更新要求処理部
48:バックグラウンド更新部
50−1、50−2:ホスト
52:ディスクアレイ装置
54−11、54−12、54−21、54−22:チャネルアダプタ
56−1、56−2:制御モジュール
58−1、58−2:ディスクエンクロージャ
60−1、60−2:DMAコンドローラ
62−1、62−2:CPU
64−1、64−2:メモリ(揮発性)
66−11、66−12、66−21、66−22:デバイスインタフェース
68:ブートコード
70−1、70−2,72−2:ファームウェア領域
72−1:ダイレクトアクセス領域
76:ファームウェアバッファ領域

Claims (5)

  1. 記憶媒体に対しデータを記録再生するドライブ制御ソフトウェアであるファームウェアを不揮発メモリと記憶媒体に分けて格納し、装置起動時に、前記不揮発メモリと記憶媒体から読出した前記ファームウェアを揮発メモリに格納して実行する記憶装置に於いて、
    上位装置から前記ファームウェアの更新要求を受けた際に、前記上位装置から転送された新ファームウェアを受信してバッファメモリに格納した時点で前記上位装置に終了応答を通知する更新要求処理部と、
    前記更新終了の通知後に、前記上位装置が発行したコマンドの処理空き時間を使用するバックグラウンド処理として、前記新ファームウェアを前記不揮発メモリ及び記憶媒体に書き込んで更新するバックグラウンド更新部と、
    を備えたことを特徴とする記憶装置。
  2. 請求項1記載の記憶装置に於いて、前記更新要求処理部は、
    前記バッファメモリに格納した新ファームウェアを前記バッファメモリ及び前記揮発メモリに展開されている旧ファームウェアに上書きして更新した後に装置を起動して新ファームウェアの処理に切り替えるファーム切替部と、
    切替後の新ファームウェアの実行により前記上位装置に更新要求に対する終了応答を通知する応答通知部と、
    を備えたことを特徴とする記憶装置。
  3. 請求項1記載の記憶装置に於いて、前記バックグラウンド更新部は、
    前記バッファメモリ及び揮発メモリに格納されている新ファームウェアの内、前記ディスク媒体に対応する第1ファームウェア部分は、全体として前記記憶媒体の旧ファームウェア部分に上書きして更新し、
    前記バッファメモリ及び揮発メモリに格納されている新ファームウェアの内、前記不揮発メモリに対応する第2ファームウェア部分は、前記不揮発メモリに書き込み可能な最小単位に分割して前記不揮発メモリの旧ファームウェア部分に順次上書きして更新することを特徴とする記憶装置のファームウェア更新方法。
  4. 記憶媒体に対しデータを記録再生するドライブ制御ソフトウェアであるファームウェアを不揮発メモリと記憶媒体に分けて格納し、装置起動時に、前記不揮発メモリと記憶媒体から読出した前記ファームウェアを揮発メモリに格納して実行する記憶装置のファームウェア更新方法に於いて、
    上位装置から前記ファームウェアの更新要求を受けた際に、前記上位装置から転送された新ファームウェアを受信してバッファメモリに格納した時点で前記上位装置に終了応答を通知する更新要求処理ステップと、
    前記更新終了の通知後に、前記上位装置が発行したコマンドの処理空き時間を使用するバックグラウンド処理として、前記新ファームウェアを前記不揮発メモリ及び記憶媒体に書き込んで更新するバックグラウンド更新ステップと、
    を備えたことを特徴とする記憶装置のファームウェア更新方法。
  5. 記憶媒体に対しデータを記録再生するドライブ制御ソフトウェアであるファームウェアを不揮発メモリと記憶媒体に分けて格納し、装置起動時に、前記不揮発メモリと記憶媒体から読出した前記ファームウェアを揮発メモリに格納して実行する記憶装置の制御装置に於いて、
    上位装置から前記ファームウェアの更新要求を受けた際に、前記上位装置から転送された新ファームウェアを受信してバッファメモリに格納した時点で前記上位装置に終了応答を通知する更新要求処理部と、
    前記更新終了の通知後に、前記上位装置が発行したコマンドの処理空き時間を使用するバックグラウンド処理として、前記新ファームウェアを前記不揮発メモリ及び記憶媒体に書き込んで更新するバックグラウンド更新部と、
    を備えたことを特徴とする記憶装置の制御装置。
JP2006220877A 2006-08-14 2006-08-14 記憶装置、ファームウェア更新方法、及び制御装置 Withdrawn JP2008046791A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2006220877A JP2008046791A (ja) 2006-08-14 2006-08-14 記憶装置、ファームウェア更新方法、及び制御装置
US11/635,983 US20080040818A1 (en) 2006-08-14 2006-12-08 Storage apparatus, firmware renewal method, and control device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006220877A JP2008046791A (ja) 2006-08-14 2006-08-14 記憶装置、ファームウェア更新方法、及び制御装置

Publications (1)

Publication Number Publication Date
JP2008046791A true JP2008046791A (ja) 2008-02-28

Family

ID=39052346

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006220877A Withdrawn JP2008046791A (ja) 2006-08-14 2006-08-14 記憶装置、ファームウェア更新方法、及び制御装置

Country Status (2)

Country Link
US (1) US20080040818A1 (ja)
JP (1) JP2008046791A (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010061288A (ja) * 2008-09-02 2010-03-18 Hitachi Ltd ストレージ装置及びファームウェア更新指示方法
JP2010170197A (ja) * 2009-01-20 2010-08-05 Toshiba Storage Device Corp ファームウェア管理プログラム、記憶装置およびファームウェア管理方法
KR101605875B1 (ko) 2009-04-03 2016-03-24 삼성전자주식회사 메모리 장치 및 메모리 장치의 펌웨어 업데이트 방법
JP2018185584A (ja) * 2017-04-24 2018-11-22 富士通株式会社 ストレージ装置、ストレージ装置の制御プログラムおよびストレージ装置の制御方法
JP2018195088A (ja) * 2017-05-17 2018-12-06 富士通株式会社 ストレージ装置、ストレージ制御装置、およびストレージ制御プログラム
KR20190131012A (ko) * 2017-03-24 2019-11-25 웨스턴 디지털 테크놀로지스, 인코포레이티드 제어기 메모리 버퍼를 사용한 적응적 조기 완료 포스팅을 위한 시스템 및 방법
US11169709B2 (en) 2017-03-24 2021-11-09 Western Digital Technologies, Inc. System and method for adaptive command fetch aggregation

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4315201B2 (ja) * 2007-01-31 2009-08-19 ブラザー工業株式会社 画像処理装置および画像処理装置制御プログラム
US8825920B2 (en) * 2010-01-20 2014-09-02 Spansion Llc Field upgradable firmware for electronic devices
US8595716B2 (en) 2011-04-06 2013-11-26 Robert Bosch Gmbh Failsafe firmware updates
JP2012252416A (ja) * 2011-05-31 2012-12-20 Toshiba Corp 記憶装置、データ制御方法、及びデータコントローラ
US8625353B2 (en) 2011-06-16 2014-01-07 Spansion Llc Method and apparatus for staggered start-up of a predefined, random, or dynamic number of flash memory devices
US10657262B1 (en) * 2014-09-28 2020-05-19 Red Balloon Security, Inc. Method and apparatus for securing embedded device firmware
KR102261815B1 (ko) * 2014-10-30 2021-06-07 삼성전자주식회사 펌웨어 업데이트 시간을 줄일 수 있는 데이터 저장 장치, 및 이를 포함하는 데이터 처리 시스템
CN110073323B (zh) * 2017-03-24 2022-10-25 西部数据技术公司 使用控制器存储器缓冲区进行推测性执行命令的系统和方法
US10678458B2 (en) 2018-02-09 2020-06-09 Micron Technology, Inc. Data storage device idle time processing
US10489085B2 (en) 2018-02-28 2019-11-26 Micron Technology, Inc. Latency-based scheduling of command processing in data storage devices
CN111984458B (zh) * 2019-05-23 2023-07-07 建兴储存科技(广州)有限公司 使用预测方程式的固态储存装置

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5606660A (en) * 1994-10-21 1997-02-25 Lexar Microsystems, Inc. Method and apparatus for combining controller firmware storage and controller logic in a mass storage system
US5586291A (en) * 1994-12-23 1996-12-17 Emc Corporation Disk controller with volatile and non-volatile cache memories
JP3437083B2 (ja) * 1998-02-23 2003-08-18 富士通株式会社 入出力制御装置およびそのファームウェア更新方法
US6631520B1 (en) * 1999-05-14 2003-10-07 Xilinx, Inc. Method and apparatus for changing execution code for a microcontroller on an FPGA interface device
US6708231B1 (en) * 1999-08-12 2004-03-16 Mitsumi Electric Co., Ltd. Method and system for performing a peripheral firmware update
US6944854B2 (en) * 2000-11-30 2005-09-13 International Business Machines Corporation Method and apparatus for updating new versions of firmware in the background
US7380113B2 (en) * 2002-05-17 2008-05-27 Xiotech Corporation Method for updating memory resident firmware as a background operation
US6907504B2 (en) * 2002-07-29 2005-06-14 International Business Machines Corporation Method and system for upgrading drive firmware in a non-disruptive manner
JP2007025933A (ja) * 2005-07-14 2007-02-01 Hitachi Ltd ストレージシステム及びそのファームウェア自動更新方法
JP2008084291A (ja) * 2006-08-28 2008-04-10 Fujitsu Ltd 記憶装置、制御方法及び制御装置

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010061288A (ja) * 2008-09-02 2010-03-18 Hitachi Ltd ストレージ装置及びファームウェア更新指示方法
US8527981B2 (en) 2008-09-02 2013-09-03 Hitachi, Ltd. Storage device and method of instructing to update firmware
JP2010170197A (ja) * 2009-01-20 2010-08-05 Toshiba Storage Device Corp ファームウェア管理プログラム、記憶装置およびファームウェア管理方法
KR101605875B1 (ko) 2009-04-03 2016-03-24 삼성전자주식회사 메모리 장치 및 메모리 장치의 펌웨어 업데이트 방법
KR20190131012A (ko) * 2017-03-24 2019-11-25 웨스턴 디지털 테크놀로지스, 인코포레이티드 제어기 메모리 버퍼를 사용한 적응적 조기 완료 포스팅을 위한 시스템 및 방법
US10817182B2 (en) 2017-03-24 2020-10-27 Western Digital Technologies, Inc. System and method for adaptive early completion posting using controller memory buffer
KR102175032B1 (ko) 2017-03-24 2020-11-05 웨스턴 디지털 테크놀로지스, 인코포레이티드 제어기 메모리 버퍼를 사용한 적응적 조기 완료 포스팅을 위한 시스템 및 방법
US11169709B2 (en) 2017-03-24 2021-11-09 Western Digital Technologies, Inc. System and method for adaptive command fetch aggregation
US11487434B2 (en) 2017-03-24 2022-11-01 Western Digital Technologies, Inc. Data storage device and method for adaptive command completion posting
US11635898B2 (en) 2017-03-24 2023-04-25 Western Digital Technologies, Inc. System and method for adaptive command fetch aggregation
JP2018185584A (ja) * 2017-04-24 2018-11-22 富士通株式会社 ストレージ装置、ストレージ装置の制御プログラムおよびストレージ装置の制御方法
JP2018195088A (ja) * 2017-05-17 2018-12-06 富士通株式会社 ストレージ装置、ストレージ制御装置、およびストレージ制御プログラム
US10606514B2 (en) 2017-05-17 2020-03-31 Fujitsu Limited Storage device, storage control device, and storage control program

Also Published As

Publication number Publication date
US20080040818A1 (en) 2008-02-14

Similar Documents

Publication Publication Date Title
US7818556B2 (en) Storage apparatus, control method, and control device which can be reliably started up when power is turned on even after there is an error during firmware update
JP2008046791A (ja) 記憶装置、ファームウェア更新方法、及び制御装置
JP3310060B2 (ja) 記憶装置および同装置の制御プログラム書換え方法
JP2009110287A (ja) アクセス制御装置およびアクセス制御方法
JP2001166993A (ja) 記憶制御装置およびキャッシュメモリの制御方法
JP2002318666A (ja) ディスクアレイ装置に実装されたハードディスクユニットのファームウエアの更新方法およびこの更新方法を実行する機能を備えたディスクアレイ装置
US20110072232A1 (en) Disk drive including a host interface supporting different sizes of data sectors and method for writing data thereto
JP2005011317A (ja) ストレージシステムを初期化する方法と装置
JP4486609B2 (ja) ストレージ装置、ストレージ装置のストレージ制御ファームウェアの活性プログラム交換方法及びストレージ制御ファームウェアの活性プログラム交換のためのプログラム
US20080126784A1 (en) Storage apparatus, control method, and control device
JP2006236193A (ja) 起動プログラム実行方法、デバイス、記憶媒体及びプログラム
JP2001216746A (ja) ディスク記憶装置及びリトライ制御方法
US20170090768A1 (en) Storage device that performs error-rate-based data backup
JP3708914B2 (ja) ディスク記憶装置において実行されるプログラムを書き換えるための方法及び装置
JP2002100126A (ja) 記録再生装置、記憶装置、コンピュータ装置、データ処理方法、プログラム伝送装置
US11899968B2 (en) Magnetic disk apparatus and method
JP2006252733A (ja) 媒体記憶装置及び媒体記憶装置のライト系経路診断方法。
US20060277353A1 (en) Virtual tape library device, virtual tape library system, and method for writing data to a virtual tape
US20050240686A1 (en) Method for downloading firmware of peripheral equipment, and peripheral equipment
JP7249968B2 (ja) 情報処理装置およびストレージ
US7239468B2 (en) Disk drive and control method for disk drive
JP2002278706A (ja) ディスクアレイ装置
JP2003122644A (ja) 計算機及びその記憶装置
JPH03290873A (ja) ディスク型記憶装置、ディスク型記憶装置の制御装置、及びディスク型記憶装置の制御方法
JPH06348600A (ja) ディスクキャッシュ装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090605

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20091023

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20110401