JP2004287979A - Disk controller and method for updating control program for disk device - Google Patents

Disk controller and method for updating control program for disk device Download PDF

Info

Publication number
JP2004287979A
JP2004287979A JP2003080749A JP2003080749A JP2004287979A JP 2004287979 A JP2004287979 A JP 2004287979A JP 2003080749 A JP2003080749 A JP 2003080749A JP 2003080749 A JP2003080749 A JP 2003080749A JP 2004287979 A JP2004287979 A JP 2004287979A
Authority
JP
Japan
Prior art keywords
control program
disk device
update
disk
hdd
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2003080749A
Other languages
Japanese (ja)
Other versions
JP3768967B2 (en
Inventor
Kyoichi Sasamoto
享一 笹本
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.)
Toshiba Corp
Original Assignee
Toshiba Corp
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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2003080749A priority Critical patent/JP3768967B2/en
Publication of JP2004287979A publication Critical patent/JP2004287979A/en
Application granted granted Critical
Publication of JP3768967B2 publication Critical patent/JP3768967B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To safely update a control program for a disk device which is executed by each of a plurality of disk devices belonging to a storage device without complicating a control program for a disk controller. <P>SOLUTION: When HDD firmware for update transferred, for example, from a host computer 13 is received by a host I/F 20 and stored in a buffer area of a program memory 25, a CPU 23 in the disk controller 11 specifies an HDD to be the object of firmware update according to update object disk device information attached to the firmware and stores the HDD firmware for update in a firmware storage area 26 of the HDD. The CPU 23 uses the HDD firmware for update stored in the firmware storage area 26 of the HDD in processing for next starting the HDD to update firmware of the HDD. <P>COPYRIGHT: (C)2005,JPO&NCIPI

Description

【0001】
【発明の属する技術分野】
本発明は、複数のディスク装置を備えたストレージ装置において当該複数のディスク装置を制御するディスク制御装置に係り、特に各ディスク装置でそれぞれ実行されるディスク装置用制御プログラムを更新するのに好適なディスク制御装置及びディスク装置用制御プログラムの更新方法に関する。
【0002】
【従来の技術】
近年、計算機システムでは、当該システムの外部記憶装置として、複数のディスク装置を備えた、ディスクアレイ装置に代表される大容量のストレージ装置が用いられることが多くなっている。このストレージ装置内の各ディスク装置には、一般にハードディスクドライブ(以下、HDDと称する)が用いられる。各HDDは、それぞれHDD用の制御プログラム(HDDファームウェア)に従って動作する。また、ストレージ装置内の複数のHDDの各々は、当該ストレージ装置を外部記憶装置として利用するホスト計算機からは個々に認識されず、当該複数のHDD全体が例えば1つのディスク(論理ディスク)として認識される。
【0003】
従来、ストレージ装置内の各HDDでそれぞれ実行されるHDD用制御プログラムを更新する方法として、以下に述べる2つの方法のいずれかが適用されるのが一般的である。
【0004】
第1の更新方法では、まず、ストレージ装置内の各HDDが、当該ストレージ装置から1台ずつ取り外される。取り外されたHDDは専用の治具に接続される。この状態で、プログラム更新の対象となるHDDが有するプログラム(ファームウェア)更新手段が起動される。するとプログラム更新手段は、更新用の制御プログラムを対象となるHDDへ適用し、現在のHDD用制御プログラム(ファームウェア)を新HDD用制御プログラム(新ファームウェア)に更新する。この第1の更新方法は最も汎用的な方法であり、複数のHDDを含むストレージ装置に特殊な仕組みを加える必要はない。しかし、この第1の更新方法では、1台ずつHDDの取り外しを行う手間(作業時間が長時間化)や、HDDの抜き差しに起因する嵌合不良や実装位置の間違いなど、作業ミスを誘発する危険が大きい。
【0005】
次に、第2の更新方法は、ストレージ装置が稼動している状態で、プログラム更新の対象となるHDDを含む論理ディスクを一時的にオフラインとすることにより、当該論理ディスクに外部(ホスト計算機など)からアクセスできない状態に設定する。この状態では、プログラム更新の対象となるHDDに外部からアクセスできない。そこで、この状態で、更新の対象となるHDD用制御プログラムを更新する。この第2の更新方法は、ストレージ装置の部分的な停止のみでHDD用制御プログラムを更新できる点で優れている。しかし、この第2の更新方法を実現するためには、以下に述べるように、ディスク制御装置の動作に必要なプログラム(ディスク制御装置用制御プログラム)などに相当量の処理の作りこみが必要となる。まず、HDDが有するプログラム(ファームウェア)更新手段では、HDDの一時的な停止(モータ停止)を含む更新処理に数十秒以上を要する。このため、例えばHDDへのホスト計算機からのアクセス以外に、内部的なパトロール処理など、全てのアクセスを抑止する特別な仕組みを作り込む必要がある。したがって、ディスク制御装置用制御プログラムが非常に複雑となる。また、HDDが有するプログラム更新手段の処理手順は、当該HDDのメーカ或いは製品により異なっていることが多く、必要な処理時間も異なる。このことが、更にディスク制御装置用制御プログラムを複雑にする。
【0006】
一方、ディスク制御装置(ディスクアレイ制御装置)用制御プログラムを、ディスクアレイ内の1つのHDDの所定領域に格納しておき、装置の電源投入時に、当該所定領域から制御プログラムを読み出して、ディスク制御装置(ディスクアレイ制御装置)のメインメモリをなすRAMにロードすることにより、当該制御プログラムの実行を可能とするディスクアレイ装置が知られている(例えば、特許文献1参照)。このディスクアレイ装置においては、外部接続ポートを介して接続された外部装置から更新用の制御プログラムを受け取って、当該プログラムを上記所定領域に書き込んでおくことにより、次に当該ディスクアレイ装置の電源が投入された際に、ディスク制御装置用の制御プログラムを更新する技術が適用される。この特許文献1に記載されたプログラム更新方法においては、ディスク制御装置用の制御プログラムを、ディスクアレイ装置を停止させることなく当該装置の電源投入時に自動的に更新できる。
【0007】
【特許文献1】
特開平9−101887号公報(段落0022〜0024,段落0041〜0045、図1、図2)
【0008】
【発明が解決しようとする課題】
上記したように、複数のHDD(ディスク装置)を備えた従来のストレージ装置において、各HDDでそれぞれ実行されるHDD用制御プログラムを更新する方法として、第1及び第2の更新方法が知られている。しかし、第1の更新方法は、ストレージ装置に特殊な仕組みを加える必要はないものの、作業ミスを誘発する危険が大きいという問題がある。一方、第2の更新方法は、ストレージ装置の部分的な停止のみでHDD用制御プログラムを更新できる点で優れているものの、ディスク制御装置用プログラムが非常に複雑となるという問題がある。
【0009】
一方、特許文献1に記載された、ディスク制御装置用制御プログラムの更新方法によれば、ディスク制御装置用制御プログラムを、ディスクアレイ装置を停止させることなく更新することができる。そこで、特許文献1に記載されたプログラム更新方法をディスク装置用制御プログラム(HDD用制御プログラム)の更新に適用することが考えられる。しかし、ディスク装置(HDD)が有するプログラム更新手段の処理手順は、当該ディスク装置のメーカ或いは製品により異なっていることが多く、必要な処理時間も異なることから、上記第2の更新方法と同様に、ディスク制御装置用制御プログラムが複雑となる。
【0010】
本発明は上記事情を考慮してなされたものでその目的は、ストレージ装置が有する複数のディスク装置の各々でそれぞれ実行されるディスク装置用の制御プログラムを更新するための処理手順または処理時間が異なっていても、当該ディスク装置用の制御プログラムを、ディスク制御装置用の制御プログラムを複雑にすることなく安全に更新できる、ディスク制御装置及びディスク装置用制御プログラムの更新方法を提供することにある。
【0011】
【課題を解決するための手段】
本発明の1つの観点によれば、ディスク装置用制御プログラムに従って動作する複数のディスク装置を備え、当該ディスク装置には当該ディスク装置用制御プログラムの更新に用いられる更新用制御プログラムを保存するための更新用制御プログラム保存領域が確保されているストレージ装置に適用されて、上記複数のディスク装置を制御するディスク制御装置が提供される。このディスク制御装置は、外部装置から転送された、ディスク装置用制御プログラムの更新の対象となるディスク装置が識別可能な更新対象ディスク装置情報を含むヘッダ情報が付加された更新用制御プログラムの受信時に、少なくとも上記更新対象ディスク装置情報に基づいて、上記複数のディスク装置のうちの更新対象となるディスク装置を決定する手段と、この決定手段により決定されたディスク装置の更新用制御プログラム保存領域に、上記受信された更新用制御プログラムを保存する手段と、上記ディスク装置の起動時に、当該ディスク装置上で動作するディスク装置用の制御プログラムの更新に用いられるべき更新用制御プログラムが当該ディスク装置の更新用制御プログラム保存領域に保存されていることを判別する手段と、この判別手段の判別結果に応じ、上記ディスク装置の更新用制御プログラム保存領域に保存されている更新用制御プログラムにより、当該ディスク装置で動作するディスク装置用制御プログラムを更新する手段とを備えたことを特徴とする。
【0012】
上記構成のディスク制御装置においては、外部装置(例えば、ホスト計算機、或いは保守端末)から受信した更新用制御プログラムが、当該プログラムに付加されているヘッダ情報中の更新対象ディスク装置情報に基づいて決定される更新の対象となるディスク装置の更新用制御プログラム保存領域に一時的に保存される。そして上記構成のディスク制御装置においては、次にストレージ装置全体または当該ストレージ装置内の各ディスク装置が起動される際に、当該ディスク装置上で動作するディスク装置用制御プログラムの更新に用いられるべき更新用制御プログラムが当該ディスク装置の更新用制御プログラム保存領域に保存されているならば、その更新用制御プログラムを用いて、ディスク装置で動作するディスク装置用制御プログラムが更新される。
【0013】
このように上記構成のディスク制御装置においては、ストレージ装置の各ディスク装置を起動する起動処理の中でディスク装置用制御プログラムが更新されるため、当該ストレージ装置のオンライン状態におけるディスク装置用制御プログラムの更新と比べ安全に且つ簡単に行うことができる。しかも上記構成のディスク制御装置においては、ディスク装置の更新用制御プログラム保存領域に更新用制御プログラムを保存しておくだけで、あとはシステムの都合に合わせてストレージ装置を改めて起動した際に自動的に制御プログラムの更新が行われる。このため、特別なシステムオペレーションなどの作業を必要としない。
【0014】
また、上記構成のディスク制御装置においては、当該ディスク制御装置で受信された更新用制御プログラムが適用可能なディスク装置が、当該更新用制御プログラムに付されている更新対象ディスク装置情報に従って精度良く特定される。このため、ストレージ装置内の複数のディスク装置が必ずしも同一メーカ製の同一製品型番のディスク装置でなくても、更新対象ディスク装置情報に従って特定されたディスク装置を対象に当該ディスク装置の制御プログラムを確実に更新できる。
【0015】
ここで、上記保存手段が、ディスク装置の更新用制御プログラム保存領域に更新用制御プログラムを保存する際に、当該ディスク装置で動作するディスク装置用制御プログラムを当該保存される更新用制御プログラムにより更新すべきことを示す「更新あり」指定状態のフラグ情報を当該更新用制御プログラム保存領域に保存する構成とするならば、上記判別手段は、ディスク装置の起動時に、当該ディスク装置の更新用制御プログラム保存領域に上記「更新あり」指定状態のフラグ情報が保存されているか否かにより、当該ディスク装置上で動作するディスク装置用の制御プログラムの更新に用いられるべき更新用制御プログラムが当該更新用制御プログラム保存領域に保存されているか否かを簡単に判別できる。また、上記更新手段によるディスク装置用制御プログラムの更新に応じて、対応するディスク装置の更新用制御プログラム保存領域に保存されているフラグ情報の状態を、当該保存領域に保存されている更新用制御プログラムによる更新が不要なことを示す「更新なし」指定状態に変更する構成とするならば、不要なプログラム更新処理が発生するのを防止できる。
【0016】
【発明の実施の形態】
以下、本発明の実施の形態につき図面を参照して説明する。図1は本発明の一実施形態に係るストレージ装置10の構成を示すブロック図である。図1のストレージ装置10は、主として、ディスク制御装置11と、複数のディスク装置、例えばn台のHDD(ハードディスクドライブ)12−1〜12−nとから構成される。ディスク制御装置11は、ストレージ装置10を利用するホスト計算機13からの指示(例えば、ホスト計算機13上のファイルシステムからのデータ読み出し/書き込みの指示)に応じて各HDD12−1〜12−nを制御することにより、当該HDDに対するデータの読み出し/書き込み及びホスト計算機13との間のデータ送受信を行う。HDD12−1〜12−nには、当該HDDの識別情報としてのHDD番号#1〜#nが割り当てられている。
【0017】
ディスク制御装置11は、ホスト計算機13の他に、保守コンソール14と接続されている。保守コンソール14は、ディスク制御装置11の状態監視、及び当該ディスク制御装置11への各種の設定操作を含む保守作業に用いられる端末(保守端末)である。
【0018】
ディスク制御装置11は、ホストインタフェース制御回路(以下、ホストI/Fと称する)20と、HDDインタフェース制御回路(以下、HDD I/Fと称する)21と、保守用コンソールインタフェース制御回路(以下、コンソールI/Fと称する)22と、CPU23と、バッファメモリ24と、プログラムメモリ25とを備えている。ホストI/F20は、SCSI(Small Computer System Interface)またはファイバチャネル(Fibre Channel)に代表されるホスト計算機接続用インタフェースの制御回路である。HDD I/F21は、SCSIまたはファイバチャネルに代表されるHDD接続用インタフェースの制御回路である。コンソールI/F22は、RS232CまたはLANに代表される保守コンソール接続用インタフェースの制御回路である。
【0019】
CPU23は、プログラムメモリ25に格納されたディスク制御装置用のプログラムコードに従い、ディスク制御装置11における各種処理動作を実行する。バッファメモリ24は、ホスト計算機13から指定された読み書きデータを一時的に保持するのに用いられる。プログラムメモリ25は、ディスク制御装置11の各種処理動作に関するプログラム(ディスク制御装置用プログラム)を格納するのに用いられる。プログラムメモリ25の一部領域は、CPU23が動作する上で使用するワーク領域に割り当てられる。本実施形態において、プログラムメモリ25は、ホスト計算機13または保守コンソール14からHDD用制御プログラム(以下、HDDファームウェアと称する)のデータが転送された際に、当該HDDファームウェアのデータを一時的に保持するバッファとして使用される。なお、HDDファームウェアのデータを一時的に保持するバッファとして、プログラムメモリ25に代えてバッファメモリ24を使用することも可能である。
【0020】
HDD12−i(i=1〜n)の記憶領域の一部は、ホスト計算機13または保守コンソール14から転送された当該HDD12用のファームウェア(HDDファームウェア)のデータを、そのファームウェアが当該HDD12に実際に適用されるまでの間保存しておくためのファームウェア保存領域26として割り当てられる。このファームウェア保存領域26はユーザ領域と区別して管理される。HDD12−iのユーザ領域は、当該HDD12−iの全領域から当該領域26を除いた領域となる。
【0021】
ディスク制御装置11(内のホストI/F20)は、SCSIまたはファイバチャネルに代表されるホスト計算機接続用インタフェース30を介してホスト計算機13と接続されている。またディスク制御装置11(内のHDD I/F21)は、SCSIまたはファイバチャネルに代表されるHDD接続用インタフェース31を介して各HDD12−1〜12−nと接続されている。またディスク制御装置11(内のホスト計算機13)は、RS232CまたはLANに代表される保守コンソール接続用インタフェース32を介して保守コンソール14と接続されている。ディスク制御装置11内のホストI/F20、HDD I/F21、コンソールI/F22、CPU23、バッファメモリ24及びプログラムメモリ25は、PCI(Peripheral Component Interconnect Bus)またはPCI−Xに代表される内部バス33により相互接続されている。
【0022】
図2は、ホスト計算機13または保守コンソール14からディスク制御装置11に転送されて当該ディスク制御装置11で受信された更新用のHDDファームウェアデータ40のデータ構造の一例と、HDD12−iのファームウェア保存領域26に一時的に保存される更新用のHDDファームウェアデータ41のデータ構造の一例とを対比して示す。
【0023】
HDDファームウェアデータ40は、図2(a)に示すように、ファームウェア本体42とヘッダ情報43とから構成される。ファームウェア本体42は、HDD12−iで動作するファームウェア(HDDファームウェア)を更新するのに用いられる更新用のファームウェア(更新ファームウェア)を構成する。ヘッダ情報43は、ファームウェア本体42に付加された固定サイズの情報であり、ホスト計算機13または保守コンソール14からHDDファームウェアデータ40を受信した際にディスク制御装置11で使用される。
【0024】
ヘッダ情報43は、HDD番号431とHDDタイプ情報432とレビジョン情報433とサイズ情報434を含む。HDD番号リスト431は、対応するファームウェア本体42が適用可能なHDD(更新対象HDD)12−iの識別情報としてのHDD番号(更新対象HDD番号)のリストを示す更新対象ディスク装置情報である。ここで、「適用」とは、受信したファームウェア本体42を一時的に対象HDD12−iのファームウェア保存領域26に保存し、次のストレージ装置10または当該HDD12−iの立ち上げ時にそのファームウェア本体42をファームウェア保存領域26から読み出して当該HDD12−iでの実行に供すること全体を示す。HDDタイプ情報432は、ファームウェア本体42が適用可能なHDD12−iのタイプを示し、対象HDD12−iのメーカ名及び製品コードを含む。
【0025】
レビジョン情報433は、ファームウェア本体42のレビジョンを示す。ファームウェア本体42には、当該ファームウェア本体42のレビジョンの情報が含まれている。しかし、ファームウェア本体42中のレビジョン情報の位置は、当該ファームウェア本体が適用されるHDD(のメーカ、製品コード)などによって異なり、ディスク制御装置11からは認識できない。そこで本実施形態では、ファームウェア本体42のレビジョンをディスク制御装置11から認識可能とするために、ファームウェア本体42に付加される固定サイズのヘッダ情報43中の所定位置に、当該ファームウェア本体42に含まれている当該ファームウェア本体42のレビジョンの情報がレビジョン情報433として設定される構成を適用している。サイズ情報434は、ファームウェア本体42のサイズを例えばバイト数で示す。
【0026】
一方、HDDファームウェアデータ41は、図2(b)に示すように、ファームウェア本体42’とヘッダ情報44とから構成される。ファームウェア本体42’はHDDファームウェアデータ40中のファームウェア本体42に一致する。ヘッダ情報44は、ファームウェア本体42’に付加された情報であり、ディスク制御装置11で受信されたHDDファームウェアデータ40中のファームウェア本体42をファームウェア本体42’として対象HDD12−iのファームウェア保存領域26に保存する際に生成されて使用される。ヘッダ情報44は、HDDファームウェアデータ40中のヘッダ情報43に含まれているレビジョン情報433及びサイズ情報434に一致するレビジョン情報433’及びサイズ情報434’と、実行フラグ441とを含む。実行フラグ441は、次のストレージ装置10またはHDD12−iの立ち上げ時に、当該HDD12−iのファームウェア保存領域26に保存されているファームウェア本体(更新用ファームウェア)42’により、当該HDD12−iで実行されるHDDファームウェアを更新するか否かを指示するのに用いられる。ここでは、実行フラグ441は、ONで“ファームウェア更新あり”を、OFFで“ファームウェア更新なし”を示す。
【0027】
次に、図1のストレージ装置10の動作について、(1)HDDファームウェア受信時の処理、(2)HDD起動処理を例に、順次説明する。
(1)HDDファームウェア受信時の処理
まず、ディスク制御装置11におけるHDDファームウェア受信時の処理について、図3のフローチャートを参照して説明する。今、ホスト計算機13または保守コンソール14からストレージ装置10のディスク制御装置11に対し、図2(a)に示すデータ構造の更新用のHDDファームウェアデータ40が転送(送信)され、当該ディスク制御装置11内のホストI/F20またはコンソールI/F22で受信されたものとする。なお、ディスク制御装置11に対してHDDファームウェアデータ40を転送する外部の装置は、ホスト計算機13または保守コンソール14に限らない。
【0028】
ディスク制御装置11内のコンソールI/F22で受信されたHDDファームウェアデータ40は、ディスク制御装置11内のプログラムメモリ25のバッファ領域に保持される。すると、ディスク制御装置11内のCPU23は、プログラムメモリ25に格納されているディスク制御装置用の制御プログラムに従ってHDDファームウェア受信時の処理を開始し、まずHDD番号#iを初期値1に設定する(ステップS1)。このHDD番号#iは、HDD接続用インタフェース31を介してディスク制御装置11と接続されているHDD12〜12−nの1つを指定する。次にCPU23は、プログラムメモリ25のバッファ領域に保持された受信HDDファームウェアデータ40中のヘッダ情報43に含まれているHDD番号リスト431を参照する(ステップS2)。そしてCPU23は、HDD番号#iに一致するHDD番号がHDD番号リスト431に含まれているか否かを判定する(ステップS3)。
【0029】
もし、HDD番号#iに一致するHDD番号がHDD番号リスト431に含まれているならば、CPU23は、当該HDD番号#iによって指定されるHDD12−iが受信HDDファームウェアデータ40に従うファームウェア更新の候補となるHDDであると判断する。この場合、CPU23は、HDD12−iで現在動作中のHDDファームウェアのレビジョン(現在のレビジョン)を確認する(ステップS4)。このレビジョン確認の方法については後述する。そしてCPU23は、確認された現在のレビジョンが、受信HDDファームウェアデータ40中のヘッダ情報43に含まれているレビジョン情報433の示すレビジョンに一致するか否かを判定する(ステップS5)。
【0030】
もし、上記両レビジョンが一致していないならば、CPU23は、プログラムメモリ25のバッファ領域に保持されている受信HDDファームウェアデータ40がHDD12−iに適用可能であると判断する。この場合、CPU23は、受信HDDファームウェアデータ40のファームウェア本体42をファームウェア本体42’として、HDD12−iのファームウェア保存領域26に保存する(ステップS6)。またCPU23は、“ファームウェア更新あり”指定状態(ON状態)に設定された実行フラグ441を含むヘッダ情報44をファームウェア保存領域26に保存して、当該ヘッダ情報44をファームウェア本体42’に付加する(ステップS7)。これにより、ファームウェア保存領域26に、ヘッダ情報44及びファームウェア本体42’を含むHDDファームウェアデータ41が保存されたことになる。ここで、ヘッダ情報44中のレビジョン情報433’及びサイズ情報434’には、プログラムメモリ25のバッファ領域に保持された受信HDDファームウェアデータ40中のヘッダ情報43に含まれているレビジョン情報433及びサイズ情報434が用いられる。
【0031】
次にCPU23は、HDD番号#iが最終HDD番号(ここではn)であるか否か、つまりHDD番号#iはHDD12−1〜12−nのうちのHDD12−nのHDD番号=nを指定しているか否かを判定する(S8)。もし、HDD番号#iが最終HDD番号でないならば、CPU23はHDD番号#iを1インクリメントして(ステップS9)、ステップS2に戻る。
【0032】
また、上記ステップS3でHDD番号#iに一致するHDD番号がHDD番号リスト431に含まれていないと判定された場合、CPU23は、プログラムメモリ25のバッファ領域に保持されている受信HDDファームウェアデータ40(中のファームウェア本体42)はHDD12−iに適用できないと判断する。この場合、CPU23は上記ステップS8に進み、HDD番号#iが最終HDD番号に一致しないならば、HDD番号#iを1インクリメントした後(ステップS9)、ステップS2に戻る。
【0033】
また、上記ステップS5で上記両レビジョンが一致していると判定された場合にも、CPU23は、上記受信HDDファームウェアデータ40はHDD12−iに適用できないと判断する。この場合、CPU23は上記ステップS8に進み、HDD番号#iが最終HDD番号に一致しないならば、HDD番号#iを1インクリメントした後(ステップS9)、ステップS2に戻る。
【0034】
このようにして、上記ステップS2から始まる処理が、HDD番号#iが最終HDD番号に一致するまで繰り返された後、上記ステップS8に進んだものとする。ここでは、HDD番号#iが最終HDD番号であると判定される。この場合、CPU23はHDDファームウェア受信時の処理を終了する。
【0035】
このように本実施形態においては、ストレージ装置10のディスク制御装置11で更新用のHDDファームウェアデータ40を受信した際に、当該HDDファームウェアデータ40のヘッダ情報43に含まれているHDD番号リスト431に設定されたHDD番号で指定される全てのHDD12−iについて、当該HDDファームウェアデータ40中のファームウェア本体42(更新用ファームウェア)の適用の可否がレビジョンの比較により判定される。そしてHDD12−iへの更新用ファームウェアの適用の正当性が確認された場合に限り、ファームウェア本体42をファームウェア本体42’として含むHDDファームウェアデータ41が、当該HDD12−iのファームウェア保存領域26に保存される。ここで、HDDファームウェアデータ41のヘッダ情報44中の実行フラグ441(即ちHDDファームウェアデータ41中のファームウェア本体42’に付加されているヘッダ情報44中の実行フラグ441)は、“ファームウェア更新あり”を示すON状態に設定される。
【0036】
(2)HDD起動処理
次に、ストレージ装置10の立ち上げに伴ってHDD12−1〜12−nを起動するHDD起動処理について、図4のフローチャートを参照して説明する。まず、ストレージ装置10の立ち上げ時には、ディスク制御装置11内のCPU23は、プログラムメモリ25に格納されているディスク制御装置用の制御プログラムに従い、HDD番号#iを初期値1に設定する(ステップS11)。
【0037】
次にCPU23は、HDD番号#iによって指定されるHDD12−iを起動する(ステップS12)。これにより、HDD12−iのモータ、即ちディスクを回転させるスピンドルモータが起動される。
【0038】
次にCPU23は、HDD12−iのファームウェア保存領域26に保存されているHDDファームウェアデータ41のヘッダ情報44を読み出す(ステップS13)。そしてCPU23は、ヘッダ情報44中に“ファームウェア更新あり”を示す実行フラグ441が設定されているか否かを判定する(ステップS14)。
【0039】
もし、HDDファームウェアデータ41のヘッダ情報44中に“ファームウェア更新あり”を示す実行フラグ441が設定されているならば、CPU23は当該ヘッダ情報44に含まれているサイズ情報434’により指定されるサイズ分(バイト数)のファームウェア本体42’を、HDD12−iのファームウェア保存領域26からプログラムメモリ25のバッファ領域に読み出す(ステップS15)。そしてCPU23は、プログラムメモリ25に読み出されたファームウェア本体42’を、HDD12−iがファームウェアメモリとして有している、例えばフラッシュROM(FROM)に代表される書き換え可能な不揮発性メモリ(図示せず)にダウンロードして、当該不揮発性メモリ上のファームウェアを更新させる(ステップS16)。このHDDファームウェア更新処理は、HDD12−iが提供するファームウェア更新手順を用いて実現される。ここでは、SCSIコマンドの1つである例えばWRITE BUFFERコマンドをCPU23からHDD12−iに発行することにより、当該HDD12−iでのファームウェア更新が行われる。
【0040】
次にCPU23は、更新されたHDD12−iの不揮発性メモリ上のファームウェアのレビジョンを確認する(ステップS17)。この確認動作は、CPU23からHDD12−iに対して、ファームウェアのレビジョン確認のためのコマンドを発行することで実現される。次にCPU23は、確認されたレビジョンが、HDD12−iのファームウェア保存領域26に保存されているファームウェア本体42’のレビジョン(即ち、ファームウェア本体42’に付されているヘッダ情報44中のレビジョン情報433’の示すレビジョン)に一致するか否かを判定する(ステップS18)。
【0041】
もし、レビジョンが一致していない場合、CPU23はステップS16のHDDファームウェアの更新に失敗したものと判断する。この場合、CPU23はステップS16に戻って、HDDファームウェアの更新処理を再度実行(リトライ)する(ステップS16)。図4のフローチャートでは省略されているが、このHDDファームウェアの更新処理のリトライは、一定回数を上限に行われる。もし、一定回数のリトライを行ってもHDDファームウェアの更新に成功しなかった場合、CPU23はHDD12−iの故障であると判断し、当該HDD12−iの起動処理を異常終了させる。
【0042】
一方、レビジョンが一致しているならば、CPU23はステップS16のHDDファームウェアの更新に成功したものと判断する。この場合、CPU23は、HDD12−iのファームウェア保存領域26内のHDDファームウェアデータ41中のヘッダ情報44に含まれている実行フラグ441の状態を“ファームウェア更新なし”指定状態(OFF状態)に変更する(ステップS19)。
【0043】
上記実施形態では、HDD12−iでのファームウェアの更新(ダウンロード)に成功したか否かの判定に、更新されたファームウェアのレビジョンと、その更新に用いられたファームウェア本体42’のレビジョン(HDD12−iのファームウェア保存領域26に保存されているファームウェア本体42’に付されているヘッダ情報44中のレビジョン情報433’の示すレビジョン)との一致の有無が用いられている(ステップS17,S18)。しかし、ファームウェアの更新に成功したか否かの判定に、他の条件を適用することも可能である。例えば、ヘッダ情報44(43)中にファームウェア本体42’(42)のチェックサムを持たせ、更新後のチェックサムと当該ヘッダ情報44中のチェックサムとの一致の有無を判定条件に適用することも可能である。
【0044】
また、上記実施形態では、ストレージ装置10のディスク制御装置11で受信されたHDDファームウェアデータ40(中のファームウェア本体42)が適用されるHDDの候補が、当該HDDファームウェアデータ40中のヘッダ情報43に含まれているHDD番号リスト431によって、HDD番号により指定される。しかし、HDD番号リスト431を用いてHDD番号により指定する代わりに、ヘッダ情報43中のHDDタイプ情報432、つまりメーカ名及び製品コードにより、HDDファームウェアデータ40が適用されるHDD候補が指定される構成とすることも可能である。この場合、CPU23は、HDD12−1〜12−nのうち、受信HDDファームウェアデータ40中のヘッダ情報43に含まれているHDDタイプ情報432により示されるメーカ名及び製品コードに合致するHDDのみを、当該HDDファームウェアデータ40が適用されるHDD候補として選択すればよい。ここでは、HDDタイプ情報432(により示されるメーカ名及び製品コードの情報)が、更新対象ディスク装置情報として用いられる。また、ヘッダ情報43中のHDD番号リスト431及びHDDタイプ情報432を組み合わせることも可能である。例えば、HDD番号リスト431で指定されるHDDのそれぞれについて、当該HDDが、HDDタイプ情報432により示されるメーカ名及び製品コードに合致するか否かにより、当該HDDにHDDファームウェアデータ40を適用する候補とすることの正当性を判定してもよい。
【0045】
また、上記実施形態では、上述の候補に対して実際にHDDファームウェアデータ40(に対応するHDDファームウェアデータ41)を適用する条件に、レビジョンが同一でないことが用いられている(ステップS4,S5)。しかし、レビジョンが同一でなくても、更新用ファームウェアより現在HDD12−iで用いられているファームウェアのレビジョンの方が新しい場合には、当該HDD12−iへのHDDファームウェアデータ40(に対応するHDDファームウェアデータ41)の適用を抑止するようにしてもよい。
【0046】
さて、CPU23は実行フラグ441を“ファームウェア更新なし”指定状態に変更すると(ステップS19)、前記ステップS8と同様に、HDD番号#iが最終HDD番号(=n)であるか否かを判定する(S20)。もし、HDD番号#iが最終HDD番号でないならば、CPU23はHDD番号#iを1インクリメントして(ステップS21)、ステップS12に戻る。
【0047】
また、上記ステップS14で、ヘッダ情報44中に“ファームウェア更新あり”を示す実行フラグ441が設定されていないと判定された場合、即ちヘッダ情報44中に“ファームウェア更新なし”を示す実行フラグ441が設定されている場合、CPU23はHDDファームウェアの更新が不要であると判断する。この場合、CPU23は上記ステップS20に進み、HDD番号#iが最終HDD番号に一致しないならば、HDD番号#iを1インクリメントした後(ステップS21)、ステップS12に戻る。
【0048】
このようにして、上記ステップS12から始まる処理が、HDD番号#iが最終HDD番号に一致するまで繰り返された後、上記ステップS20に進んだものとする。ここでは、HDD番号#iが最終HDD番号であると判定される。この場合、CPU23はHDD起動処理を終了する。
【0049】
以上の説明から明らかなように、本実施形態においては、ストレージ装置10の立ち上げに伴う各HDD12−iの起動処理の中でHDDファームウェアを更新するため、当該ストレージ装置10のオンライン状態におけるHDDファームウェアの更新と比べ安全に且つ簡単に行うことができる。しかも本実施形態においては、HDD12−iのファームウェア保存領域26に予め更新用ファームウェア(ファームウェア本体42’を含むHDDファームウェアデータ41)をダウンロードしておくだけで、あとはシステムの都合に合わせてストレージ装置10を改めて起動した際に自動的にHDDファームウェアの更新が行われる。このため、特別なシステムオペレーションなどの作業を必要としない。
【0050】
また、本実施形態においては、ディスク制御装置11で受信されたHDDファームウェアデータ40(中のファームウェア本体42)が適用可能なHDDが、当該HDDファームウェアデータ40中のヘッダ情報43に含まれているHDD番号リスト431に従って特定される。このため、ストレージ装置10内のHDD12−1〜12−nが必ずしも同一メーカ製の同一製品型番のHDDでなくても、HDD番号リスト431に従って特定されたHDDを対象に当該HDDのファームウェアを確実に更新できる。
【0051】
[変形例]
上記実施形態では、HDD12−iのファームウェア保存領域26にHDDファームウェアデータ41が保存されると、現在HDD12−iで用いられているHDDファームウェアは、ファームウェア保存領域26から失われる。このため、更新後のファームウェアに不具合がある場合、或いは更新後のファームウェアが期待した性能を発揮しない場合には、HDD12−iのファームウェアを更新前の状態に戻せなくなる。そこで、図1のストレージ装置10において、HDD12−iで実行されるファームウェアを以前に適用されていたファームウェアに戻すことを可能とする、上記実施形態の変形例について説明する。
【0052】
この変形例では、HDD12−iの記憶領域の一部は、図5に示すように、複数、例えばm個(mは1より大きい整数)の一定サイズのファームウェア保存領域26−1〜26−mに分割して管理される。このファームウェア保存領域26−1〜26−mはホスト計算機13または保守コンソール14(外部装置)から認識可能である。ファームウェア保存領域26−1〜26−mは、領域識別情報としての例えば領域番号#1〜#mにより指定される。また、この変形例では、HDDファームウェアデータ40のヘッダ情報43中のHDD番号リスト431には、HDD番号#iだけでなく、図6に示すように、当該HDD番号#iと対をなして領域番号#j(jは1〜mのいずれか)が設定される。この領域番号#jは、HDDファームウェアデータ40に対応するHDDファームウェアデータ41の保存先を、HDD番号#iにより示されるHDD12−i内のファームウェア保存領域26−jとすべきことを指定する。
【0053】
これにより、ホスト計算機13または保守コンソール14は、HDDファームウェアデータ40のヘッダ情報43中のHDD番号リスト431により、当該HDDファームウェアデータ40に対応するHDDファームウェアデータ41の保存先として、HDD12−iだけでなく当該HDD12−i内のファームウェア保存領域26−jをも指定できる。よって本実施形態の変形例では、ホスト計算機13または保守コンソール14は、HDD12−1〜12−n毎に、それぞれm種類のファームウェアをファームウェア保存領域26−1〜26−mに保存させることができる。この場合、ホスト計算機13または保守コンソール14からの指定により、現在HDD12−iで適用(実行)されているHDDファームウェアを、HDD12−iの例えばファームウェア保存領域26−jに保存されている更新用ファームウェアに切り替える(更新する)ことが可能となる。
【0054】
以下、このファームウェア切り替えを、(1)ファームウェア切り替えコマンド受信時の処理と、(2)HDD起動処理とに分けて、順次説明する。
(1)ファームウェア切り替えコマンド受信時の処理
まず、ディスク制御装置11におけるファームウェア切り替えコマンド受信時の処理について、図7のフローチャートを参照して説明する。今、HDD12−iで実行されているファームウェアに対応するHDDファームウェアデータ41が、当該HDD12−iのファームウェア保存領域26−k(kは1〜mのいずれか)に保存されているものとする。また、ホスト計算機13または保守コンソール14は、現在HDD12−iで実行されているファームウェアを、当該HDD12−iのファームウェア保存領域26−j(j≠k)に保存されているファームウェア本体42’に切り替えたいものとする。この場合、ホスト計算機13または保守コンソール14は、図6のデータ構造のHDD番号リスト431が付加された、ファームウェア切り替えコマンドをディスク制御装置11に送信する。
【0055】
ホスト計算機13または保守コンソール14からディスク制御装置11に送信されたファームウェア切り替えコマンドは、ディスク制御装置11内のホストI/F20またはコンソールI/F22で受信される。ディスク制御装置11内のCPU23は、受信されたファームウェア切り替えコマンドを受け取ると、ファームウェア切り替えコマンド受信時の処理を開始し、まずHDD番号#iを初期値1に設定する(ステップS31)。次にCPU23は、ファームウェア切り替えコマンドに付されているHDD番号リスト431を参照する(ステップS32)。そしてCPU23は、HDD番号#iに一致するHDD番号がHDD番号リスト431に含まれているか否かを判定する(ステップS33)。
【0056】
もし、HDD番号#iに一致するHDD番号がHDD番号リスト431に含まれているならば、CPU23は、当該HDD番号#iによって指定されるHDD12−iがファームウェア切り替え(更新)の対象となるHDDであると判断する。この場合、CPU23はHDD番号#iに一致するHDD番号と対をなしてHDD番号リスト431に設定されている領域番号を調べる(ステップS34)。この領域番号がファームウェア保存領域26−jを示すjである、つまり領域番号#jであるものとする。この場合、CPU23は、HDD12−iのファームウェア保存領域26−jに保存されているHDDファームウェアデータ41のヘッダ情報44中の実行フラグ441を“ファームウェア更新あり”を示すON状態に設定する(ステップS35)。
【0057】
次にCPU23は、上記実施形態と同様に、HDD番号#iが最終HDD番号(ここではn)であるか否か判定する(ステップS36)。もし、HDD番号#iが最終HDD番号でないならば、CPU23はHDD番号#iを1インクリメントして(ステップS37)、ステップS32に戻る。このようにして、上記ステップS32から始まる処理が、HDD番号#iが最終HDD番号に一致するまで繰り返されると、CPU23はファームウェア切り替えコマンド受信時の処理を終了する。
【0058】
(2)HDD起動処理
次に、ストレージ装置10の立ち上げに伴うHDD12−1〜12−nの起動処理を、主として図4のフローチャートと相異する部分について、図8及び図9のフローチャートを参照して説明する。
【0059】
CPU23は、HDD番号#iで指定されるHDD12−iを起動すると(ステップS42)、領域番号#jを初期値1に設定する(ステップS43)。次にCPU23は、HDD12−iのファームウェア保存領域26−jに保存されているHDDファームウェアデータ41のヘッダ情報44を読み出す(ステップS44)。そしてCPU23は、ヘッダ情報44中に“ファームウェア更新あり”を示す実行フラグ441が設定されているか否かを判定する(ステップS45)。
【0060】
もし、HDDファームウェアデータ41のヘッダ情報44中に“ファームウェア更新あり”を示す実行フラグ441が設定されているならば、CPU23は、HDD12−iのファームウェア保存領域26−jに保存されているファームウェア本体42’(更新用ファームウェア)で、現在のHDDファームウェアを更新する処理(ステップS46〜48)を行う。これにより、CPU23は、HDD12−iにおける現在のファームウェアを、ホスト計算機13または保守コンソール14から指定された当該HDD12−iのファームウェア保存領域26−jに保存されているファームウェアに切り替えることができる。このファームウェア切り替え技術は、HDD12−iを利用する用途に応じて、当該HDD12−iで実行されるファームウェアを切り替えたい場合にも適用できる。
【0061】
CPU23は、ファームウェアの更新に成功した場合(ステップS49)、HDD12−iのファームウェア保存領域26−j内のHDDファームウェアデータ41中のヘッダ情報44に含まれている実行フラグ441の状態を“ファームウェア更新なし”指定状態(OFF状態)に変更する(ステップS50)。この場合、CPU23は、図4中のステップS20と同様に、HDD番号#iが最終HDD番号であるか否かを判定する(ステップS51)。もしHDD番号#iが最終HDD番号でなければ、CPU23はHDD番号#iを1インクリメントして(ステップS52)、ステップS42に戻る。
【0062】
一方、HDD12−iのファームウェア保存領域26−jから読み出されたHDDファームウェアデータ41のヘッダ情報44中に“ファームウェア更新あり”を示す実行フラグ441が設定されていないならば(ステップS45)、CPU23は領域番号#jが最終領域番号(=m)であるか否かを判定する(S53)。もし、領域番号#jが最終領域番号でないならば、CPU23は領域番号#jを1インクリメントして(ステップS54)、ステップS44に戻る。これに対し、領域番号#jが最終領域番号であるならば、CPU23は上記ステップS51の判定処理を実行する。
【0063】
なお、本発明は、上記実施形態及びその変形例に限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で種々に変形することが可能である。更に、上記実施形態及びその変形例には種々の段階の発明が含まれており、開示される複数の構成要件における適宜な組み合わせにより種々の発明が抽出され得る。例えば、実施形態に示される全構成要件から幾つかの構成要件が削除されても、発明が解決しようとする課題の欄で述べた課題が解決でき、発明の効果の欄で述べられている効果が得られる場合には、この構成要件が削除された構成が発明として抽出され得る。
【0064】
【発明の効果】
以上詳述したように本発明においては、ストレージ装置が有する複数のディスク装置のうち、ディスク制御装置で受信された更新用制御プログラムが適用可能なディスク装置を、当該プログラムに付されている更新対象ディスク装置情報に従って特定し、その特定されたディスク装置の更新用制御プログラム保存領域に、当該受信された更新用制御プログラムを保存し、ストレージ装置の各ディスク装置を起動する起動処理の中で、当該更新用制御プログラム保存領域に保存された更新用制御プログラムを用いて、ディスク装置で動作するディスク装置用制御プログラムを更新する構成とした。これにより、ストレージ装置の各ディスク装置でそれぞれ実行されるディスク装置用制御プログラムを更新するための処理手順または処理時間が異なっていても、当該ディスク装置用制御プログラムを、ディスク制御装置用の制御プログラムを複雑にすることなく安全に更新することができる。
【図面の簡単な説明】
【図1】本発明の一実施形態に係るストレージ装置のブロック構成図。
【図2】図1中のディスク制御装置11で受信されるHDDファームウェアデータ40のデータ構造の一例と、HDD12−iのファームウェア保存領域26に一時的に保存されるHDDファームウェアデータ41のデータ構造の一例とを対比して示す図。
【図3】ディスク制御装置11におけるHDDファームウェア受信時の処理を説明するためのフローチャート。
【図4】ストレージ装置10の立ち上げに伴うHDD起動処理を説明するためのフローチャート。
【図5】HDD12−i(i=1〜n)の記憶領域の一部にm個のファームウェア保存領域26−1〜26−mが割り当てられる、上記実施形態の変形例を説明するための図。
【図6】上記変形例で適用されるHDD番号リスト431のデータ構造例を示す図。
【図7】上記変形例におけるファームウェア切り替えコマンド受信時の処理を説明するためのフローチャート。
【図8】上記変形例におけるHDD起動処理を説明するためのフローチャートの一部を示す図。
【図9】上記変形例におけるHDD起動処理を説明するためのフローチャートの残りを示す図。
【符号の説明】
10…ストレージ装置、11…ディスク制御装置、12−1〜12−n,12−i…HDD(ディスク装置)、13…ホスト計算機(外部装置)、14…保守コンソール(外部装置)、23…CPU、24…バッファメモリ、25…プログラムメモリ、26,26−1〜26−m…ファームウェア保存領域(更新用制御プログラム保存領域)、40,41…HDDファームウェアデータ、42,42’…ファームウェア本体(更新用制御プログラム)、43,44…ヘッダ情報、431…HDD番号リスト(ディスク装置識別情報リスト)、432…HDDタイプ情報、433,433’…レビジョン情報、434,434’…サイズ情報、441…実行フラグ。
[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to a disk control device that controls a plurality of disk devices in a storage device having a plurality of disk devices, and particularly to a disk device suitable for updating a disk device control program executed on each disk device. The present invention relates to a control device and a method of updating a disk device control program.
[0002]
[Prior art]
In recent years, in computer systems, large-capacity storage devices, such as disk array devices, having a plurality of disk devices are often used as external storage devices of the computer systems. Generally, a hard disk drive (hereinafter, referred to as an HDD) is used for each disk device in the storage device. Each HDD operates according to an HDD control program (HDD firmware). Further, each of the plurality of HDDs in the storage device is not individually recognized by the host computer using the storage device as an external storage device, and the entire plurality of HDDs is recognized as, for example, one disk (logical disk). You.
[0003]
Conventionally, one of the following two methods is generally applied as a method of updating an HDD control program executed in each HDD in a storage device.
[0004]
In the first update method, first, each HDD in the storage device is removed one by one from the storage device. The removed HDD is connected to a dedicated jig. In this state, the program (firmware) updating means of the HDD to be updated is activated. Then, the program updating means applies the update control program to the target HDD, and updates the current HDD control program (firmware) to the new HDD control program (new firmware). This first update method is the most general method, and does not require a special mechanism to be added to a storage device including a plurality of HDDs. However, in the first updating method, troubles such as trouble of removing HDDs one by one (long working time), poor fitting and incorrect mounting position due to removal and insertion of HDDs, and the like, are induced. The danger is great.
[0005]
Next, in the second update method, while the storage device is operating, the logical disk including the HDD to be updated is temporarily taken offline, so that the logical disk can be externally connected (such as a host computer). ) So that it cannot be accessed. In this state, the HDD to be updated cannot be accessed from outside. Therefore, in this state, the HDD control program to be updated is updated. The second updating method is excellent in that the HDD control program can be updated only by partially stopping the storage device. However, in order to realize the second update method, as described below, it is necessary to incorporate a considerable amount of processing into a program necessary for the operation of the disk control device (a control program for the disk control device). Become. First, in the program (firmware) updating means included in the HDD, an update process including a temporary stop (motor stop) of the HDD requires several tens of seconds or more. For this reason, it is necessary to create a special mechanism for suppressing all accesses, such as internal patrol processing, other than the access from the host computer to the HDD, for example. Therefore, the control program for the disk controller becomes very complicated. Also, the processing procedure of the program updating means of the HDD often differs depending on the manufacturer or product of the HDD, and the required processing time also differs. This further complicates the control program for the disk controller.
[0006]
On the other hand, a control program for the disk control device (disk array control device) is stored in a predetermined area of one HDD in the disk array, and when the device is powered on, the control program is read from the predetermined area and the disk control is executed. 2. Description of the Related Art There is known a disk array device that can execute the control program by loading the RAM into a main memory of the device (disk array control device) (for example, see Patent Document 1). In this disk array device, a control program for updating is received from an external device connected via an external connection port, and the program is written in the predetermined area. A technology for updating a control program for a disk control device when the disk drive is inserted is applied. In the program updating method described in Patent Document 1, the control program for the disk control device can be automatically updated when the power of the disk array device is turned on without stopping the disk array device.
[0007]
[Patent Document 1]
JP-A-9-101877 (paragraphs 0022 to 0024, paragraphs 0041 to 0045, FIGS. 1 and 2)
[0008]
[Problems to be solved by the invention]
As described above, in a conventional storage device provided with a plurality of HDDs (disk devices), the first and second update methods are known as methods for updating the HDD control program executed on each HDD. I have. However, although the first update method does not require a special mechanism to be added to the storage device, it has a problem that the risk of inducing a work error is large. On the other hand, the second update method is excellent in that the HDD control program can be updated only by partially stopping the storage device, but has a problem that the disk control device program becomes very complicated.
[0009]
On the other hand, according to the method for updating a disk control device control program described in Patent Document 1, the disk control device control program can be updated without stopping the disk array device. Therefore, it is conceivable to apply the program updating method described in Patent Document 1 to updating of a disk device control program (HDD control program). However, the processing procedure of the program updating means of the disk device (HDD) often differs depending on the maker or product of the disk device, and the required processing time also differs. Thus, the control program for the disk control device becomes complicated.
[0010]
The present invention has been made in consideration of the above circumstances, and has as its object to provide a different processing procedure or processing time for updating a disk device control program executed on each of a plurality of disk devices included in a storage device. Even so, it is an object of the present invention to provide a disk control device and a method for updating a disk device control program that can safely update the disk device control program without complicating the disk control device control program.
[0011]
[Means for Solving the Problems]
According to one aspect of the present invention, there are provided a plurality of disk devices that operate according to a disk device control program, and the disk device stores an update control program used for updating the disk device control program. A disk control device that is applied to a storage device in which an update control program storage area is secured and controls the plurality of disk devices is provided. The disk control device receives the update control program to which the header information including the disk device information to be updated, which can identify the disk device for which the disk device control program is to be updated, is transferred from the external device. Means for determining a disk device to be updated among the plurality of disk devices based on at least the disk device information to be updated, and an update control program storage area of the disk device determined by the determining unit. Means for storing the received update control program, and an update control program to be used for updating the control program for the disk device operating on the disk device when the disk device is started, updates the disk device. Means for determining that it is stored in the control program storage area for Means for updating the disk device control program operating on the disk device with the update control program stored in the update control program storage area of the disk device in accordance with the determination result of the determination device. It is characterized.
[0012]
In the disk control device having the above configuration, the update control program received from the external device (for example, the host computer or the maintenance terminal) is determined based on the update target disk device information in the header information added to the program. Is temporarily stored in the update control program storage area of the disk device to be updated. In the disk control device having the above configuration, the next time the entire storage device or each disk device in the storage device is started, the update to be used for updating the disk device control program operating on the disk device is performed. If the disk control program is stored in the update control program storage area of the disk device, the disk device control program operating on the disk device is updated using the update control program.
[0013]
As described above, in the disk control device having the above-described configuration, the disk device control program is updated during the boot processing for activating each disk device of the storage device. It is safer and easier than updating. Moreover, in the disk control device having the above configuration, the update control program is only stored in the update control program storage area of the disk device, and when the storage device is started up again according to the system convenience, the update is automatically performed. Then, the control program is updated. Therefore, no special operation such as system operation is required.
[0014]
Further, in the disk control device having the above configuration, the disk device to which the update control program received by the disk control device can be applied is accurately identified according to the update target disk device information attached to the update control program. Is done. For this reason, even if a plurality of disk devices in the storage device are not necessarily disk devices of the same product type made by the same manufacturer, the control program of the disk device specified for the disk device specified according to the update target disk device information can be reliably executed. Can be updated.
[0015]
Here, when the storage unit stores the update control program in the update control program storage area of the disk device, the storage device updates the disk device control program operating on the disk device with the stored update control program. If the flag information of the "updated" designation state indicating that the update is to be performed is stored in the update control program storage area, the discriminating unit may be configured to execute the update control program of the disk device when the disk device is started. The update control program to be used for updating the control program for the disk device operating on the disk device depends on whether the flag information of the “updated” designation state is stored in the storage area. It can be easily determined whether or not the program is stored in the program storage area. Further, in response to the update of the disk device control program by the updating means, the state of the flag information stored in the update control program storage area of the corresponding disk device is changed to the update control stored in the storage area. If the configuration is changed to the “no update” designation state indicating that update by the program is unnecessary, unnecessary program update processing can be prevented from occurring.
[0016]
BEST MODE FOR CARRYING OUT THE INVENTION
Hereinafter, embodiments of the present invention will be described with reference to the drawings. FIG. 1 is a block diagram illustrating a configuration of a storage device 10 according to an embodiment of the present invention. The storage device 10 in FIG. 1 mainly includes a disk control device 11 and a plurality of disk devices, for example, n HDDs (hard disk drives) 12-1 to 12-n. The disk control device 11 controls each of the HDDs 12-1 to 12-n according to an instruction from the host computer 13 using the storage device 10 (for example, an instruction to read / write data from a file system on the host computer 13). By doing so, data read / write to / from the HDD and data transmission / reception with the host computer 13 are performed. HDD numbers # 1 to #n as identification information of the HDDs are assigned to the HDDs 12-1 to 12-n.
[0017]
The disk control device 11 is connected to a maintenance console 14 in addition to the host computer 13. The maintenance console 14 is a terminal (maintenance terminal) used for maintenance work including status monitoring of the disk control device 11 and various setting operations for the disk control device 11.
[0018]
The disk controller 11 includes a host interface control circuit (hereinafter, referred to as host I / F) 20, an HDD interface control circuit (hereinafter, referred to as HDD I / F) 21, a maintenance console interface control circuit (hereinafter, console). (Referred to as an I / F) 22, a CPU 23, a buffer memory 24, and a program memory 25. The host I / F 20 is a control circuit of a host computer connection interface typified by a SCSI (Small Computer System Interface) or a fiber channel (Fibre Channel). The HDD I / F 21 is a control circuit of an HDD connection interface represented by SCSI or Fiber Channel. The console I / F 22 is a control circuit for a maintenance console connection interface represented by RS232C or LAN.
[0019]
The CPU 23 executes various processing operations in the disk control device 11 in accordance with the disk control device program code stored in the program memory 25. The buffer memory 24 is used to temporarily hold read / write data specified by the host computer 13. The program memory 25 is used to store programs relating to various processing operations of the disk controller 11 (disk controller programs). Part of the area of the program memory 25 is allocated to a work area used when the CPU 23 operates. In the present embodiment, when the data of the HDD control program (hereinafter, referred to as HDD firmware) is transferred from the host computer 13 or the maintenance console 14, the program memory 25 temporarily holds the data of the HDD firmware. Used as a buffer. Note that a buffer memory 24 can be used instead of the program memory 25 as a buffer for temporarily storing HDD firmware data.
[0020]
A part of the storage area of the HDD 12-i (i = 1 to n) stores data of firmware (HDD firmware) for the HDD 12 transferred from the host computer 13 or the maintenance console 14, and the firmware actually stores the data in the HDD 12. The firmware is allocated as a firmware storage area 26 to be stored until it is applied. The firmware storage area 26 is managed separately from the user area. The user area of the HDD 12-i is an area obtained by removing the area 26 from the entire area of the HDD 12-i.
[0021]
The disk controller 11 (the host I / F 20 therein) is connected to the host computer 13 via a host computer connection interface 30 represented by SCSI or Fiber Channel. The disk controller 11 (the HDD I / F 21 therein) is connected to each of the HDDs 12-1 to 12-n via an HDD connection interface 31 typified by SCSI or Fiber Channel. The disk controller 11 (the host computer 13 therein) is connected to the maintenance console 14 via a maintenance console connection interface 32 represented by RS232C or LAN. The host I / F 20, the HDD I / F 21, the console I / F 22, the CPU 23, the buffer memory 24, and the program memory 25 in the disk control device 11 include an internal bus 33 represented by a PCI (Peripheral Component Interconnect Bus) or a PCI-X. Interconnected by
[0022]
FIG. 2 shows an example of the data structure of the update HDD firmware data 40 transferred from the host computer 13 or the maintenance console 14 to the disk controller 11 and received by the disk controller 11, and the firmware storage area of the HDD 12-i. 26 shows an example of the data structure of the update HDD firmware data 41 temporarily stored in FIG.
[0023]
The HDD firmware data 40 includes a firmware body 42 and header information 43, as shown in FIG. The firmware main body 42 constitutes update firmware (update firmware) used for updating firmware (HDD firmware) operating on the HDD 12-i. The header information 43 is information of a fixed size added to the firmware main body 42, and is used by the disk control device 11 when the HDD firmware data 40 is received from the host computer 13 or the maintenance console 14.
[0024]
The header information 43 includes an HDD number 431, HDD type information 432, revision information 433, and size information 434. The HDD number list 431 is update target disk device information indicating a list of HDD numbers (update target HDD numbers) as identification information of the HDDs (update target HDDs) 12-i applicable to the corresponding firmware main body 42. Here, "apply" means that the received firmware body 42 is temporarily stored in the firmware storage area 26 of the target HDD 12-i, and the firmware body 42 is stored when the next storage device 10 or the HDD 12-i starts. This shows the entirety of reading from the firmware storage area 26 and providing the execution to the HDD 12-i. The HDD type information 432 indicates the type of the HDD 12-i to which the firmware main body 42 can be applied, and includes a maker name and a product code of the target HDD 12-i.
[0025]
The revision information 433 indicates the revision of the firmware 42. The firmware main body 42 contains information on the revision of the firmware main body 42. However, the position of the revision information in the firmware main body 42 differs depending on the HDD (manufacturer and product code) to which the firmware main body is applied, and cannot be recognized by the disk control device 11. Therefore, in the present embodiment, in order for the revision of the firmware main body 42 to be recognizable from the disk control device 11, the firmware main body 42 is included in a predetermined position in the fixed-size header information 43 added to the firmware main body 42. The configuration in which the information of the revision of the firmware main body 42 is set as the revision information 433 is applied. The size information 434 indicates the size of the firmware main body 42 in, for example, the number of bytes.
[0026]
On the other hand, the HDD firmware data 41 is composed of a firmware body 42 'and header information 44, as shown in FIG. The firmware main body 42 ′ matches the firmware main body 42 in the HDD firmware data 40. The header information 44 is information added to the firmware main body 42 ′, and the firmware main body 42 in the HDD firmware data 40 received by the disk control device 11 is stored in the firmware storage area 26 of the target HDD 12-i as the firmware main body 42 ′. Generated and used when saving. The header information 44 includes revision information 433 ′ and size information 434 ′ that match the revision information 433 and size information 434 included in the header information 43 in the HDD firmware data 40, and an execution flag 441. The execution flag 441 is executed by the firmware main body (update firmware) 42 ′ stored in the firmware storage area 26 of the HDD 12-i when the next storage device 10 or HDD 12-i is started up. Is used to indicate whether or not the HDD firmware to be updated is updated. Here, the execution flag 441 indicates “with firmware update” when ON, and indicates “without firmware update” when OFF.
[0027]
Next, the operation of the storage device 10 of FIG. 1 will be sequentially described with an example of (1) a process at the time of receiving HDD firmware and (2) an HDD start process.
(1) Processing when receiving HDD firmware
First, a process when the disk control device 11 receives the HDD firmware will be described with reference to a flowchart of FIG. Now, the HDD firmware data 40 for updating the data structure shown in FIG. 2A is transferred (transmitted) from the host computer 13 or the maintenance console 14 to the disk control device 11 of the storage device 10. It is assumed that the data has been received by the host I / F 20 or console I / F 22. The external device that transfers the HDD firmware data 40 to the disk control device 11 is not limited to the host computer 13 or the maintenance console 14.
[0028]
The HDD firmware data 40 received by the console I / F 22 in the disk control device 11 is held in a buffer area of the program memory 25 in the disk control device 11. Then, the CPU 23 in the disk control device 11 starts the process when receiving the HDD firmware according to the disk control device control program stored in the program memory 25, and first sets the HDD number #i to the initial value 1 ( Step S1). The HDD number #i designates one of the HDDs 12 to 12-n connected to the disk controller 11 via the HDD connection interface 31. Next, the CPU 23 refers to the HDD number list 431 included in the header information 43 in the received HDD firmware data 40 held in the buffer area of the program memory 25 (step S2). Then, the CPU 23 determines whether or not the HDD number that matches the HDD number #i is included in the HDD number list 431 (Step S3).
[0029]
If the HDD number matching the HDD number #i is included in the HDD number list 431, the CPU 23 determines that the HDD 12-i designated by the HDD number #i is a candidate for the firmware update according to the received HDD firmware data 40. Is determined. In this case, the CPU 23 checks the revision (current revision) of the HDD firmware currently operating on the HDD 12-i (step S4). The method of confirming the revision will be described later. Then, the CPU 23 determines whether or not the confirmed current revision matches the revision indicated by the revision information 433 included in the header information 43 in the received HDD firmware data 40 (Step S5).
[0030]
If the two revisions do not match, the CPU 23 determines that the received HDD firmware data 40 stored in the buffer area of the program memory 25 is applicable to the HDD 12-i. In this case, the CPU 23 stores the firmware main body 42 of the received HDD firmware data 40 as the firmware main body 42 'in the firmware storage area 26 of the HDD 12-i (step S6). Further, the CPU 23 saves the header information 44 including the execution flag 441 set to the “firmware updated” designated state (ON state) in the firmware saving area 26, and adds the header information 44 to the firmware body 42 ′ ( Step S7). This means that the HDD firmware data 41 including the header information 44 and the firmware main body 42 'has been saved in the firmware saving area 26. Here, the revision information 433 ′ and the size information 434 ′ in the header information 44 include the revision information 433 and the size included in the header information 43 in the received HDD firmware data 40 held in the buffer area of the program memory 25. Information 434 is used.
[0031]
Next, the CPU 23 determines whether or not the HDD number #i is the last HDD number (here, n), that is, the HDD number #i designates the HDD number of the HDD 12-n among the HDDs 12-1 to 12-n = n. It is determined whether or not it has been performed (S8). If the HDD number #i is not the last HDD number, the CPU 23 increments the HDD number #i by 1 (step S9), and returns to step S2.
[0032]
If it is determined in step S3 that the HDD number corresponding to the HDD number #i is not included in the HDD number list 431, the CPU 23 determines whether the received HDD firmware data 40 stored in the buffer area of the program memory 25 is available. (The main firmware 42) is determined not to be applicable to the HDD 12-i. In this case, the CPU 23 proceeds to step S8. If the HDD number #i does not match the final HDD number, the CPU 23 increments the HDD number #i by 1 (step S9) and returns to step S2.
[0033]
Also, when it is determined in step S5 that the two revisions match, the CPU 23 determines that the received HDD firmware data 40 cannot be applied to the HDD 12-i. In this case, the CPU 23 proceeds to step S8. If the HDD number #i does not match the final HDD number, the CPU 23 increments the HDD number #i by 1 (step S9) and returns to step S2.
[0034]
In this way, it is assumed that the process starting from step S2 is repeated until the HDD number #i matches the final HDD number, and then the process proceeds to step S8. Here, it is determined that HDD number #i is the last HDD number. In this case, the CPU 23 ends the process when receiving the HDD firmware.
[0035]
As described above, in the present embodiment, when the HDD firmware data 40 for update is received by the disk control device 11 of the storage device 10, the HDD number list 431 included in the header information 43 of the HDD firmware data 40 is added to the HDD firmware data 40. For all the HDDs 12-i specified by the set HDD number, whether or not the firmware main body 42 (update firmware) in the HDD firmware data 40 is applicable is determined by comparing the revisions. Only when the validity of the application of the update firmware to the HDD 12-i is confirmed, the HDD firmware data 41 including the firmware main body 42 as the firmware main body 42 'is stored in the firmware storage area 26 of the HDD 12-i. You. Here, the execution flag 441 in the header information 44 of the HDD firmware data 41 (that is, the execution flag 441 in the header information 44 added to the firmware main body 42 'in the HDD firmware data 41) indicates "firmware updated". The ON state shown is set.
[0036]
(2) HDD startup processing
Next, an HDD boot process for booting the HDDs 12-1 to 12-n when the storage device 10 starts up will be described with reference to the flowchart in FIG. First, when the storage device 10 is started up, the CPU 23 in the disk control device 11 sets the HDD number #i to the initial value 1 according to the disk control device control program stored in the program memory 25 (step S11). ).
[0037]
Next, the CPU 23 activates the HDD 12-i designated by the HDD number #i (step S12). Thereby, the motor of the HDD 12-i, that is, the spindle motor for rotating the disk is started.
[0038]
Next, the CPU 23 reads the header information 44 of the HDD firmware data 41 stored in the firmware storage area 26 of the HDD 12-i (Step S13). Then, the CPU 23 determines whether or not the execution flag 441 indicating “the firmware has been updated” is set in the header information 44 (step S14).
[0039]
If the execution flag 441 indicating “firmware is updated” is set in the header information 44 of the HDD firmware data 41, the CPU 23 determines the size specified by the size information 434 ′ included in the header information 44. The firmware main body 42 'for the minute (number of bytes) is read from the firmware storage area 26 of the HDD 12-i to the buffer area of the program memory 25 (step S15). Then, the CPU 23 stores the firmware main body 42 ′ read into the program memory 25 as a firmware memory in the HDD 12-i, for example, a rewritable nonvolatile memory represented by a flash ROM (FROM) (not shown). ) To update the firmware in the nonvolatile memory (step S16). This HDD firmware update process is realized using a firmware update procedure provided by the HDD 12-i. Here, the firmware is updated in the HDD 12-i by issuing, for example, a WRITE BUFFER command, which is one of the SCSI commands, from the CPU 23 to the HDD 12-i.
[0040]
Next, the CPU 23 confirms the updated firmware revision in the nonvolatile memory of the HDD 12-i (step S17). This confirmation operation is realized by issuing a command for confirming the firmware revision from the CPU 23 to the HDD 12-i. Next, the CPU 23 determines that the confirmed revision is the revision of the firmware main body 42 ′ stored in the firmware storage area 26 of the HDD 12-i (that is, the revision information 433 in the header information 44 attached to the firmware main body 42 ′). (Revision indicated by ') is determined (step S18).
[0041]
If the revisions do not match, the CPU 23 determines that the update of the HDD firmware in step S16 has failed. In this case, the CPU 23 returns to step S16 to execute (retry) the update process of the HDD firmware again (step S16). Although omitted in the flowchart of FIG. 4, the retry of the HDD firmware update process is performed up to a certain number of times. If the update of the HDD firmware has not been successful even after performing the retry a predetermined number of times, the CPU 23 determines that the HDD 12-i has failed, and abnormally ends the startup processing of the HDD 12-i.
[0042]
On the other hand, if the revisions match, the CPU 23 determines that the update of the HDD firmware in step S16 has been successful. In this case, the CPU 23 changes the state of the execution flag 441 included in the header information 44 in the HDD firmware data 41 in the firmware storage area 26 of the HDD 12-i to the “no firmware update” designated state (OFF state). (Step S19).
[0043]
In the above embodiment, the determination of whether or not the update (download) of the firmware in the HDD 12-i was successful is performed by determining the revision of the updated firmware and the revision of the firmware main body 42 ′ used for the update (HDD 12-i (Revision indicated by the revision information 433 'in the header information 44 attached to the firmware main body 42' stored in the firmware storage area 26) (steps S17, S18). However, it is also possible to apply another condition to determine whether or not the firmware has been successfully updated. For example, the checksum of the firmware main body 42 '(42) is provided in the header information 44 (43), and the presence or absence of a match between the updated checksum and the checksum in the header information 44 is applied to the determination condition. Is also possible.
[0044]
In the above embodiment, the HDD candidate to which the HDD firmware data 40 (the firmware main body 42) received by the disk control device 11 of the storage device 10 is applied is included in the header information 43 in the HDD firmware data 40. The HDD number is specified by the included HDD number list 431. However, instead of using the HDD number list 431 to specify by HDD number, the HDD candidate to which the HDD firmware data 40 is applied is specified by the HDD type information 432 in the header information 43, that is, the manufacturer name and the product code. It is also possible. In this case, the CPU 23 selects only the HDDs that match the manufacturer name and product code indicated by the HDD type information 432 included in the header information 43 in the received HDD firmware data 40 from among the HDDs 12-1 to 12-n. What is necessary is just to select as the HDD candidate to which the said HDD firmware data 40 is applied. Here, the HDD type information 432 (information of the manufacturer name and product code indicated by) is used as the disk device information to be updated. Further, the HDD number list 431 and the HDD type information 432 in the header information 43 can be combined. For example, for each of the HDDs specified in the HDD number list 431, a candidate for applying the HDD firmware data 40 to the HDD depends on whether or not the HDD matches the manufacturer name and product code indicated by the HDD type information 432. May be determined.
[0045]
In the above embodiment, the condition that the revisions are not the same is used as the condition for actually applying the HDD firmware data 40 (the corresponding HDD firmware data 41) to the above candidates (steps S4 and S5). . However, even if the revisions are not the same, if the revision of the firmware currently used in the HDD 12-i is newer than the update firmware, the HDD firmware data 40 ( The application of the data 41) may be suppressed.
[0046]
When the CPU 23 changes the execution flag 441 to the "no firmware update" designation state (step S19), similarly to the step S8, the CPU 23 determines whether or not the HDD number #i is the last HDD number (= n). (S20). If the HDD number #i is not the last HDD number, the CPU 23 increments the HDD number #i by 1 (step S21), and returns to step S12.
[0047]
In step S14, when it is determined that the execution flag 441 indicating “with firmware update” is not set in the header information 44, that is, the execution flag 441 indicating “no firmware update” is set in the header information 44. If set, the CPU 23 determines that the update of the HDD firmware is unnecessary. In this case, the CPU 23 proceeds to step S20. If the HDD number #i does not match the final HDD number, the CPU 23 increments the HDD number #i by 1 (step S21) and returns to step S12.
[0048]
It is assumed that the process starting from step S12 is repeated until the HDD number #i matches the final HDD number, and then the process proceeds to step S20. Here, it is determined that HDD number #i is the last HDD number. In this case, the CPU 23 ends the HDD startup processing.
[0049]
As is apparent from the above description, in the present embodiment, since the HDD firmware is updated during the startup processing of each HDD 12-i when the storage device 10 is started, the HDD firmware in the online state of the storage device 10 is updated. It can be done safely and easily compared to the update of In addition, in the present embodiment, the update firmware (the HDD firmware data 41 including the firmware main body 42 ') is simply downloaded in advance to the firmware storage area 26 of the HDD 12-i, and the storage device is then adapted to the convenience of the system. The HDD firmware is automatically updated when 10 is started again. Therefore, no special operation such as system operation is required.
[0050]
In the present embodiment, the HDD to which the HDD firmware data 40 (the firmware main body 42 therein) received by the disk control device 11 is applicable is included in the HDD information included in the header information 43 in the HDD firmware data 40. It is specified according to the number list 431. Therefore, even if the HDDs 12-1 to 12-n in the storage device 10 are not necessarily HDDs of the same product model number manufactured by the same manufacturer, the firmware of the HDDs specified for the HDD number list 431 can be reliably downloaded. Can be updated.
[0051]
[Modification]
In the above embodiment, when the HDD firmware data 41 is stored in the firmware storage area 26 of the HDD 12-i, the HDD firmware currently used in the HDD 12-i is lost from the firmware storage area 26. Therefore, if there is a defect in the updated firmware or the updated firmware does not exhibit the expected performance, the firmware of the HDD 12-i cannot be returned to the state before the update. Therefore, in the storage device 10 of FIG. 1, a modified example of the above-described embodiment that enables the firmware executed on the HDD 12-i to be returned to the previously applied firmware will be described.
[0052]
In this modification, as shown in FIG. 5, a part of the storage area of the HDD 12-i has a plurality of, for example, m (m is an integer greater than 1) firmware storage areas 26-1 to 26-m of a fixed size. It is divided and managed. The firmware storage areas 26-1 to 26-m can be recognized from the host computer 13 or the maintenance console 14 (external device). The firmware storage areas 26-1 to 26-m are designated by, for example, area numbers # 1 to #m as area identification information. In this modified example, the HDD number list 431 in the header information 43 of the HDD firmware data 40 includes not only the HDD number #i but also an area paired with the HDD number #i as shown in FIG. A number #j (j is any one of 1 to m) is set. The area number #j specifies that the storage destination of the HDD firmware data 41 corresponding to the HDD firmware data 40 should be the firmware storage area 26-j in the HDD 12-i indicated by the HDD number #i.
[0053]
As a result, the host computer 13 or the maintenance console 14 uses the HDD number list 431 in the header information 43 of the HDD firmware data 40 to specify only the HDD 12-i as a storage destination of the HDD firmware data 41 corresponding to the HDD firmware data 40. Alternatively, the firmware storage area 26-j in the HDD 12-i can be designated. Therefore, in a modification of the present embodiment, the host computer 13 or the maintenance console 14 can store m types of firmware in the firmware storage areas 26-1 to 26-m for each of the HDDs 12-1 to 12-n. . In this case, the HDD firmware currently applied (executed) in the HDD 12-i is designated by the host computer 13 or the maintenance console 14, and the update firmware stored in, for example, the firmware storage area 26-j of the HDD 12-i is updated. (Update).
[0054]
Hereinafter, the firmware switching will be described in order of (1) processing at the time of receiving a firmware switching command and (2) HDD boot processing.
(1) Processing when receiving firmware switching command
First, the processing when the disk control device 11 receives the firmware switching command will be described with reference to the flowchart in FIG. Now, it is assumed that the HDD firmware data 41 corresponding to the firmware executed on the HDD 12-i is stored in the firmware storage area 26-k (k is one of 1 to m) of the HDD 12-i. Further, the host computer 13 or the maintenance console 14 switches the firmware currently being executed on the HDD 12-i to the firmware main body 42 ′ stored in the firmware storage area 26-j (j ≠ k) of the HDD 12-i. I want to. In this case, the host computer 13 or the maintenance console 14 transmits to the disk control device 11 a firmware switching command to which the HDD number list 431 having the data structure of FIG.
[0055]
The firmware switching command transmitted from the host computer 13 or the maintenance console 14 to the disk controller 11 is received by the host I / F 20 or the console I / F 22 in the disk controller 11. Upon receiving the received firmware switching command, the CPU 23 in the disk control device 11 starts processing upon receiving the firmware switching command, and first sets the HDD number #i to the initial value 1 (step S31). Next, the CPU 23 refers to the HDD number list 431 attached to the firmware switching command (step S32). Then, the CPU 23 determines whether or not the HDD number that matches the HDD number #i is included in the HDD number list 431 (Step S33).
[0056]
If the HDD number that matches the HDD number #i is included in the HDD number list 431, the CPU 23 determines that the HDD 12-i specified by the HDD number #i is the target of the firmware switching (update). Is determined. In this case, the CPU 23 checks the area number set in the HDD number list 431 in pairs with the HDD number that matches the HDD number #i (step S34). This area number is j indicating the firmware storage area 26-j, that is, the area number #j. In this case, the CPU 23 sets the execution flag 441 in the header information 44 of the HDD firmware data 41 stored in the firmware storage area 26-j of the HDD 12-i to an ON state indicating "firmware updated" (step S35). ).
[0057]
Next, the CPU 23 determines whether or not the HDD number #i is the last HDD number (here, n) as in the above embodiment (step S36). If the HDD number #i is not the last HDD number, the CPU 23 increments the HDD number #i by 1 (step S37), and returns to step S32. In this way, when the process starting from step S32 is repeated until the HDD number #i matches the final HDD number, the CPU 23 ends the process at the time of receiving the firmware switching command.
[0058]
(2) HDD startup processing
Next, the startup process of the HDDs 12-1 to 12-n when the storage device 10 is started will be described with reference to the flowcharts of FIGS. 8 and 9 mainly for parts different from the flowchart of FIG.
[0059]
When activating the HDD 12-i designated by the HDD number #i (step S42), the CPU 23 sets the area number #j to the initial value 1 (step S43). Next, the CPU 23 reads the header information 44 of the HDD firmware data 41 stored in the firmware storage area 26-j of the HDD 12-i (Step S44). Then, the CPU 23 determines whether or not the execution flag 441 indicating “the firmware has been updated” is set in the header information 44 (step S45).
[0060]
If the execution flag 441 indicating “firmware has been updated” is set in the header information 44 of the HDD firmware data 41, the CPU 23 determines whether the firmware main unit stored in the firmware storage area 26-j of the HDD 12-i is At 42 ′ (update firmware), processing for updating the current HDD firmware (steps S46 to S48) is performed. Accordingly, the CPU 23 can switch the current firmware in the HDD 12-i to the firmware stored in the firmware storage area 26-j of the HDD 12-i specified from the host computer 13 or the maintenance console 14. This firmware switching technology can also be applied to a case where it is desired to switch the firmware executed on the HDD 12-i according to the use of the HDD 12-i.
[0061]
When the firmware has been successfully updated (step S49), the CPU 23 changes the state of the execution flag 441 included in the header information 44 in the HDD firmware data 41 in the firmware storage area 26-j of the HDD 12-i to “firmware update”. The state is changed to "none" designated state (OFF state) (step S50). In this case, the CPU 23 determines whether or not the HDD number #i is the last HDD number, similarly to step S20 in FIG. 4 (step S51). If the HDD number #i is not the last HDD number, the CPU 23 increments the HDD number #i by 1 (step S52), and returns to step S42.
[0062]
On the other hand, if the execution flag 441 indicating “firmware has been updated” is not set in the header information 44 of the HDD firmware data 41 read from the firmware storage area 26-j of the HDD 12-i (step S45), the CPU 23 Determines whether the area number #j is the last area number (= m) (S53). If the area number #j is not the last area number, the CPU 23 increments the area number #j by 1 (step S54), and returns to step S44. On the other hand, if the area number #j is the last area number, the CPU 23 executes the determination processing in step S51.
[0063]
The present invention is not limited to the above-described embodiment and its modifications, and can be variously modified in the implementation stage without departing from the scope of the invention. Furthermore, the above-described embodiment and its modifications include inventions at various stages, and various inventions can be extracted by appropriately combining a plurality of disclosed constituent elements. For example, even if some components are deleted from all the components shown in the embodiment, the problems described in the column of the problem to be solved by the invention can be solved, and the effects described in the column of the effect of the invention can be solved. Is obtained, a configuration from which this configuration requirement is deleted can be extracted as an invention.
[0064]
【The invention's effect】
As described above in detail, in the present invention, among the plurality of disk devices included in the storage device, a disk device to which the update control program received by the disk control device can be applied is designated as an update target attached to the program. In the startup process of specifying the disk device information, storing the received update control program in the specified update control program storage area of the disk device, and starting each disk device of the storage device, The configuration is such that the disk device control program operating on the disk device is updated using the update control program stored in the update control program storage area. Accordingly, even if the processing procedure or processing time for updating the disk device control program executed in each disk device of the storage device is different, the disk device control program is changed to the disk control device control program. Can be safely updated without complication.
[Brief description of the drawings]
FIG. 1 is a block configuration diagram of a storage device according to an embodiment of the present invention.
FIG. 2 shows an example of a data structure of HDD firmware data 40 received by a disk control device 11 in FIG. 1 and a data structure of HDD firmware data 41 temporarily stored in a firmware storage area 26 of an HDD 12-i. The figure which contrasts with an example and shows.
FIG. 3 is a flowchart for explaining processing when the disk control device 11 receives HDD firmware.
FIG. 4 is a flowchart for explaining an HDD start-up process when the storage device 10 is started.
FIG. 5 is a diagram for explaining a modification of the above embodiment in which m firmware storage areas 26-1 to 26-m are allocated to a part of a storage area of an HDD 12-i (i = 1 to n). .
FIG. 6 is a diagram showing an example of the data structure of an HDD number list 431 applied in the above modification.
FIG. 7 is a flowchart for explaining processing at the time of receiving a firmware switching command in the modification.
FIG. 8 is a diagram showing a part of a flowchart for describing HDD startup processing in the modification.
FIG. 9 is a view showing the rest of the flowchart for explaining the HDD startup processing in the modification.
[Explanation of symbols]
DESCRIPTION OF SYMBOLS 10 ... Storage apparatus, 11 ... Disk control apparatus, 12-1 to 12-n, 12-i ... HDD (disk apparatus), 13 ... Host computer (external apparatus), 14 ... Maintenance console (external apparatus), 23 ... CPU , 24: buffer memory, 25: program memory, 26, 26-1 to 26-m: firmware storage area (control program storage area for update), 40, 41: HDD firmware data, 42, 42 ': firmware body (update) 43, 44 ... header information, 431 ... HDD number list (disk device identification information list), 432 ... HDD type information, 433, 433 '... revision information, 434, 434' ... size information, 441 ... execution flag.

Claims (10)

ディスク装置用制御プログラムに従って動作する複数のディスク装置を備え、当該ディスク装置には当該ディスク装置用制御プログラムの更新に用いられる更新用制御プログラムを保存するための更新用制御プログラム保存領域が確保されているストレージ装置に適用されて、前記複数のディスク装置を制御するディスク制御装置であって、
外部装置から転送された、ディスク装置用制御プログラムの更新の対象となるディスク装置が識別可能な更新対象ディスク装置情報を含むヘッダ情報が付加された更新用制御プログラムの受信時に、少なくとも前記更新対象ディスク装置情報に基づいて、前記複数のディスク装置のうちの更新対象となるディスク装置を決定する手段と、
前記決定手段により決定されたディスク装置の前記更新用制御プログラム保存領域に、前記受信された更新用制御プログラムを保存する手段と、
前記ディスク装置の起動時に、当該ディスク装置上で動作するディスク装置用制御プログラムの更新に用いられるべき更新用制御プログラムが当該ディスク装置の前記更新用制御プログラム保存領域に保存されていることを判別する手段と、
前記判別手段の判別結果に応じ、前記ディスク装置の前記更新用制御プログラム保存領域に保存されている更新用制御プログラムにより、当該ディスク装置で動作するディスク装置用制御プログラムを更新する手段と
を具備することを特徴とするディスク制御装置。
A plurality of disk devices that operate in accordance with the disk device control program are provided, and the disk device has an update control program storage area for storing an update control program used for updating the disk device control program. A disk controller that is applied to a storage device and controls the plurality of disk devices,
When receiving the update control program added with the header information including the update target disk device information that can identify the disk device to be updated of the disk device control program transferred from the external device, at least the update target disk is received. Means for determining a disk device to be updated among the plurality of disk devices based on device information;
Means for storing the received update control program in the update control program storage area of the disk device determined by the determination means;
When the disk device is started, it is determined that an update control program to be used for updating the disk device control program operating on the disk device is stored in the update control program storage area of the disk device. Means,
Means for updating a disk device control program operating on the disk device with an update control program stored in the update control program storage area of the disk device in accordance with a result of the determination by the determination means. A disk controller characterized by the above-mentioned.
前記更新手段は、前記判別手段の判別結果に応じ、前記ディスク装置の前記更新用制御プログラム保存領域に保存されている更新用制御プログラムを読み出す手段と、前記読み出し手段により前記ディスク装置の前記更新用制御プログラム保存領域から読み出された更新用制御プログラムを当該ディスク装置にダウンロードすることにより、当該ディスク装置で動作するディスク装置用制御プログラムを更新する手段とを含むことを特徴とする請求項1記載のディスク制御装置。The updating means reads out an update control program stored in the update control program storage area of the disk device in accordance with a result of the determination by the determination means. 2. A means for updating a disk device control program operating on the disk device by downloading the update control program read from the control program storage area to the disk device. Disk controller. 前記保存手段は、前記ディスク装置の前記更新用制御プログラム保存領域に前記更新用制御プログラムを保存する際、当該ディスク装置で動作するディスク装置用制御プログラムを当該保存される更新用制御プログラムにより更新すべきことを示す「更新あり」指定状態のフラグ情報を当該更新用制御プログラム保存領域に保存し、
前記判別手段は、前記ディスク装置の起動時に、当該ディスク装置の前記更新用制御プログラム保存領域に前記「更新あり」指定状態のフラグ情報が保存されているか否かにより、当該ディスク装置上で動作するディスク装置用制御プログラムの更新に用いられるべき更新用制御プログラムが当該更新用制御プログラム保存領域に保存されているか否かを判別する
ことを特徴とする請求項1記載のディスク制御装置。
The storage means, when storing the update control program in the update control program storage area of the disk device, updates the disk device control program operating on the disk device with the stored update control program. Save the flag information in the "updated" designated state indicating that it should be in the update control program storage area,
The determination means operates on the disk device when the disk device is started, based on whether or not the flag information of the “updated” designation state is stored in the update control program storage area of the disk device. 2. The disk control device according to claim 1, wherein whether the update control program to be used for updating the disk device control program is stored in the update control program storage area is determined.
前記更新手段によるディスク装置用制御プログラムの更新に応じて、対応する前記ディスク装置の前記更新用制御プログラム保存領域に保存されている前記フラグ情報の状態を、当該保存領域に保存されている更新更新用制御プログラムによる更新が不要なことを示す「更新なし」指定状態に変更する手段を更に具備することを特徴とする請求項3記載のディスク制御装置。In response to the update of the disk device control program by the updating unit, the status of the flag information stored in the update control program storage area of the corresponding disk device is updated by the update update stored in the storage area. 4. The disk control device according to claim 3, further comprising means for changing to a "no update" designation state indicating that update by the application control program is unnecessary. 前記更新対象ディスク装置情報は、前記複数のディスク装置のうち、当該更新対象ディスク装置情報を含むヘッダ情報が付加された更新用制御プログラムによる更新対象の候補となるディスク装置の識別情報のリストを含み、
前記決定手段は、少なくとも前記ディスク装置識別情報リストに従って更新対象となるディスク装置を決定する
ことを特徴とする請求項3記載のディスク制御装置。
The update target disk device information includes a list of identification information of disk devices that are candidates for update by the update control program to which the header information including the update target disk device information is added among the plurality of disk devices. ,
4. The disk control device according to claim 3, wherein the determination unit determines a disk device to be updated according to at least the disk device identification information list.
前記各ディスク装置には、複数の前記更新用制御プログラム保存領域が確保され、
前記ディスク装置識別情報リストは、ディスク装置識別情報と対をなし、当該ディスク装置識別情報で指定されるディスク装置の前記複数の更新用制御プログラム保存領域のうち更新用制御プログラムの保存先となる更新用制御プログラム保存領域を指定するための領域識別情報を含み、
前記保存手段は、前記決定手段により決定されたディスク装置の前記複数の更新用制御プログラム保存領域のうち、前記ディスク装置識別情報リスト中の当該ディスク装置を示すディスク装置識別情報と対をなす領域識別情報の示す更新用制御プログラム保存領域に、前記更新用制御プログラムを保存する
ことを特徴とする請求項3記載のディスク制御装置。
In each of the disk devices, a plurality of update control program storage areas are secured,
The disk device identification information list is paired with the disk device identification information, and is an update destination of the update control program among the plurality of update control program storage areas of the disk device specified by the disk device identification information. Area identification information for specifying the control program storage area for
The storage unit includes an area identification pair of the plurality of update control program storage areas of the disk device determined by the determination unit, which is paired with disk device identification information indicating the disk device in the disk device identification information list. 4. The disk control device according to claim 3, wherein the update control program is stored in an update control program storage area indicated by information.
前記決定手段は、前記外部装置から転送された、前記ディスク装置識別情報リストが付加されたプログラム切り替えコマンドの受信時に、当該コマンドに付加されている前記ディスク装置識別情報リストに従ってディスク装置用制御プログラムの切り替えの対象となるディスク装置を決定し、
前記保存手段は、プログラム切り替えコマンドの受信時には、前記決定手段により決定されたディスク装置の前記複数の更新用制御プログラム保存領域のうち、前記ディスク装置識別情報リスト中の当該ディスク装置を示すディスク装置識別情報と対をなす領域識別情報の示す更新用制御プログラム保存領域に保存されている前記フラグ情報の状態を前記「更新あり」指定状態に変更する
ことを特徴とする請求項6記載のディスク制御装置。
The determining means, upon receiving a program switching command added with the disk device identification information list transferred from the external device, executes a disk device control program according to the disk device identification information list added to the command. Determine the disk device to be switched,
The storage means, when receiving the program switching command, includes, among the plurality of update control program storage areas of the disk device determined by the determination means, a disk device identification indicating the disk device in the disk device identification information list. 7. The disk control apparatus according to claim 6, wherein the status of the flag information stored in the update control program storage area indicated by the area identification information paired with the information is changed to the "updated" specified state. .
前記更新対象ディスク装置情報は、当該更新対象ディスク装置情報を含むヘッダ情報が付加された更新用制御プログラムによる更新対象の候補となるディスク装置のタイプを示すディスク装置タイプ情報を含み、
前記決定手段は、少なくとも前記ディスク装置タイプ情報に従って更新対象となるディスク装置を決定する
ことを特徴とする請求項3記載のディスク制御装置。
The update target disk device information includes disk device type information indicating a type of a disk device that is a candidate for update by the update control program to which header information including the update target disk device information is added,
4. The disk control device according to claim 3, wherein the determination unit determines a disk device to be updated according to at least the disk device type information.
前記ディスク装置用制御プログラム及び前記更新用制御プログラムは当該プログラムのレビジョンを示すレビジョン情報を含み、前記更新用制御プログラムに付加される前記ヘッダ情報は、当該更新用制御プログラムのレビジョンを示すレビジョン情報を含み、
前記決定手段は、前記更新用制御プログラムの受信時に、当該プログラムに付加されている前記ヘッダ情報中の前記更新対象ディスク装置情報に基づいて、前記複数のディスク装置のうちの更新対象の候補となるディスク装置を決定する第1の決定手段と、前記第1の決定手段により更新対象の候補として決定されたディスク装置上で動作する現在のディスク装置用制御プログラムのレビジョンと前記ヘッダ情報中のレビジョン情報の示すレビジョンとを比較し、その比較結果に応じて、当該更新対象の候補として決定されたディスク装置を更新対象として決定する第2の決定手段とを含む
ことを特徴とする請求項1記載のディスク制御装置。
The disk device control program and the update control program include revision information indicating a revision of the program, and the header information added to the update control program includes revision information indicating a revision of the update control program. Including
The determining unit is a candidate for an update target among the plurality of disk devices based on the update target disk device information in the header information added to the update control program when the update control program is received. First determining means for determining a disk device, a current revision of the disk device control program operating on the disk device determined as a candidate for update by the first determining device, and revision information in the header information And a second determination unit that determines the disk device determined as the update target candidate as an update target in accordance with the comparison result. Disk control unit.
ディスク装置用制御プログラムに従って動作する複数のディスク装置を備え、当該ディスク装置には当該ディスク装置用制御プログラムの更新に用いられる更新用制御プログラムを保存するための更新用制御プログラム保存領域が確保されているストレージ装置に適用されるディスク装置用制御プログラムの更新方法であって、
外部装置から転送された、ディスク装置用制御プログラムの更新の対象となるディスク装置が識別可能な更新対象ディスク装置情報を含むヘッダ情報が付加された更新用制御プログラムの受信時に、少なくとも前記更新対象ディスク装置情報に基づいて、前記複数のディスク装置のうちの更新対象となるディスク装置を決定するステップと、
前記決定されたディスク装置の前記更新用制御プログラム保存領域に、前記受信された更新用制御プログラムを保存するステップと、
前記ディスク装置の起動時に、当該ディスク装置上で動作するディスク装置用の制御プログラムの更新に用いられるべき更新用制御プログラムが当該ディスク装置の前記更新用制御プログラム保存領域に保存されているか否かを判別するステップと、
前記判別結果に応じ、前記ディスク装置の前記更新用制御プログラム保存領域に保存されている更新用制御プログラムにより、当該ディスク装置で動作するディスク装置用制御プログラムを更新するステップと
を具備することを特徴とするディスク装置用制御プログラムの更新方法。
A plurality of disk devices that operate in accordance with the disk device control program are provided, and the disk device has an update control program storage area for storing an update control program used for updating the disk device control program. A method of updating a disk device control program applied to a storage device,
When receiving the update control program added with the header information including the update target disk device information that can identify the disk device to be updated of the disk device control program transferred from the external device, at least the update target disk is received. Determining a disk device to be updated among the plurality of disk devices based on device information;
Storing the received update control program in the update control program storage area of the determined disk device;
When the disk device is started, it is determined whether or not an update control program to be used for updating the control program for the disk device operating on the disk device is stored in the update control program storage area of the disk device. Determining;
Updating the disk device control program operating on the disk device with an update control program stored in the update control program storage area of the disk device according to the determination result. Method for updating a disk device control program.
JP2003080749A 2003-03-24 2003-03-24 Disk control device and disk device control program update method Expired - Fee Related JP3768967B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003080749A JP3768967B2 (en) 2003-03-24 2003-03-24 Disk control device and disk device control program update method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003080749A JP3768967B2 (en) 2003-03-24 2003-03-24 Disk control device and disk device control program update method

Publications (2)

Publication Number Publication Date
JP2004287979A true JP2004287979A (en) 2004-10-14
JP3768967B2 JP3768967B2 (en) 2006-04-19

Family

ID=33294520

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003080749A Expired - Fee Related JP3768967B2 (en) 2003-03-24 2003-03-24 Disk control device and disk device control program update method

Country Status (1)

Country Link
JP (1) JP3768967B2 (en)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006268272A (en) * 2005-03-23 2006-10-05 Hitachi Global Storage Technologies Netherlands Bv Data storage, and processing method for rewriting data in nonvolatile memory thereof
KR100801014B1 (en) 2006-08-21 2008-02-04 삼성전자주식회사 Hard disk drive having a disk embedded dos boot program and computer system using the same, a firmware download method of the hard disc drive and a record media using the same
JP2008217326A (en) * 2007-03-02 2008-09-18 Nec System Technologies Ltd Hard disk built-in apparatus and method, and disk array system
JP2008217202A (en) * 2007-03-01 2008-09-18 Nec Corp Disk array device and firmware update method
CN108804117A (en) * 2017-05-02 2018-11-13 广达电脑股份有限公司 The method and system of hard disk is updated by Management Controller
JP2019149086A (en) * 2018-02-28 2019-09-05 日本電信電話株式会社 Data processing apparatus and data transfer method
JP2022513462A (en) * 2018-12-13 2022-02-08 マイクロン テクノロジー,インク. Automatic power down based on firmware status

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05134877A (en) * 1991-11-15 1993-06-01 Fuji Electric Co Ltd Starting system for computer system
JPH06295238A (en) * 1993-04-07 1994-10-21 Nec Ibaraki Ltd Magnetic disk controller
JPH09101887A (en) * 1995-10-06 1997-04-15 Nissin Electric Co Ltd Disk array device
JPH10260788A (en) * 1997-03-19 1998-09-29 Toshiba Corp Disk array system
JPH11353127A (en) * 1998-06-05 1999-12-24 Nec Corp Disk array device

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05134877A (en) * 1991-11-15 1993-06-01 Fuji Electric Co Ltd Starting system for computer system
JPH06295238A (en) * 1993-04-07 1994-10-21 Nec Ibaraki Ltd Magnetic disk controller
JPH09101887A (en) * 1995-10-06 1997-04-15 Nissin Electric Co Ltd Disk array device
JPH10260788A (en) * 1997-03-19 1998-09-29 Toshiba Corp Disk array system
JPH11353127A (en) * 1998-06-05 1999-12-24 Nec Corp Disk array device

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006268272A (en) * 2005-03-23 2006-10-05 Hitachi Global Storage Technologies Netherlands Bv Data storage, and processing method for rewriting data in nonvolatile memory thereof
JP4679943B2 (en) * 2005-03-23 2011-05-11 ヒタチグローバルストレージテクノロジーズネザーランドビーブイ Data storage device and data rewrite processing method in nonvolatile memory thereof
KR100801014B1 (en) 2006-08-21 2008-02-04 삼성전자주식회사 Hard disk drive having a disk embedded dos boot program and computer system using the same, a firmware download method of the hard disc drive and a record media using the same
US8266611B2 (en) 2006-08-21 2012-09-11 Seagate Technology International Hard disk drive with disk embedded DOS boot image and firmware download method
JP2008217202A (en) * 2007-03-01 2008-09-18 Nec Corp Disk array device and firmware update method
JP2008217326A (en) * 2007-03-02 2008-09-18 Nec System Technologies Ltd Hard disk built-in apparatus and method, and disk array system
CN108804117A (en) * 2017-05-02 2018-11-13 广达电脑股份有限公司 The method and system of hard disk is updated by Management Controller
JP2018190376A (en) * 2017-05-02 2018-11-29 廣達電脳股▲ふん▼有限公司 Sas/sata hard disk drive update by management controller
US10747437B2 (en) 2017-05-02 2020-08-18 Quanta Computer Inc. SAS hard disk drive update via management controller
US10884624B2 (en) 2017-05-02 2021-01-05 Quanta Computer Inc. SAS/SATA hard disk drive update via management controller
JP2019149086A (en) * 2018-02-28 2019-09-05 日本電信電話株式会社 Data processing apparatus and data transfer method
JP2022513462A (en) * 2018-12-13 2022-02-08 マイクロン テクノロジー,インク. Automatic power down based on firmware status
JP7137708B2 (en) 2018-12-13 2022-09-14 マイクロン テクノロジー,インク. Automatic power down based on firmware state
US11847014B2 (en) 2018-12-13 2023-12-19 Micron Technology, Inc. Automated power down based on state of firmware

Also Published As

Publication number Publication date
JP3768967B2 (en) 2006-04-19

Similar Documents

Publication Publication Date Title
EP1691281B1 (en) Memory dump program boot method
TW201025008A (en) System of updating firmware and method thereof, and method of creating firmware
US7739490B2 (en) Control apparatus, upgrade method and program product of the same
JP5491675B2 (en) Information processing apparatus and information processing apparatus control method
WO2000051003A1 (en) Disk system and method of updating firmware
JP3768967B2 (en) Disk control device and disk device control program update method
US20140101423A1 (en) Processing device and management board
JPH10307726A (en) System for firmware recovery at time of start error
US20230132494A1 (en) Information processing apparatus, method of controlling the same, and storage medium
US6388763B1 (en) Method for processing a ROM image when electrical power supplied to a laser printer has been interrupted
US10120677B2 (en) Method of rewriting printer firmware, and printer
JP2002189609A (en) System and method for updating software adapted to accident
EP1359500B1 (en) File management of one-time-programmable nonvolatile memory devices
US20040236932A1 (en) Apparatus and method for firmware upgrade in microprocessor-based processing units
JP3715631B2 (en) Information processing apparatus, CPU frequency control method, and program
JP4062429B2 (en) Memory rewrite control method and program for executing each step of memory rewrite control method
US11507385B1 (en) Embedded electronic device, boot method, and embedded electronic device readable recording medium with stored program
JPH08161160A (en) Method for updating firmware of optical disk reproducing device
JP2003288276A (en) Electronic apparatus
JP2005242930A (en) Information processor, program updating method, program updating program, and computer-readable storage medium recording program updating program
JP2018037052A (en) Information processing device, information processing system, computer program, and method
JP2004054421A (en) Memory, information processor, storage method and information processing method
CN113726554A (en) Method for restoring network equipment version and network equipment
JP2004013782A (en) Method for downloading firmware
JPH11149371A (en) Information processor and its control method

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20050609

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050621

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20060131

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060202

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100210

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100210

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110210

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120210

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130210

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140210

Year of fee payment: 8

LAPS Cancellation because of no payment of annual fees